Diff
Modified: tags/Safari-537.47/Source/WebCore/ChangeLog (152105 => 152106)
--- tags/Safari-537.47/Source/WebCore/ChangeLog 2013-06-27 16:51:01 UTC (rev 152105)
+++ tags/Safari-537.47/Source/WebCore/ChangeLog 2013-06-27 17:34:30 UTC (rev 152106)
@@ -1,3 +1,26 @@
+2013-06-27 Lucas Forschler <lforsch...@apple.com>
+
+ Merge r151745
+
+ 2013-06-19 Brent Fulgham <bfulg...@apple.com>
+
+ [Windows] AX: Extend notification handling
+ https://bugs.webkit.org/show_bug.cgi?id=117761.
+
+ Reviewed by Anders Carlsson.
+
+ accessibility/press-works-on-control-types.html
+
+ * accessibility/win/AXObjectCacheWin.cpp:
+ (WebCore::AXObjectCache::postPlatformNotification): Add handlers for more event notifications.
+ * accessibility/win/AccessibilityObjectWrapperWin.cpp:
+ (WebCore::AccessibilityObjectWrapper::accessibilityAttributeValue): Protect against null
+ pointer dereference found during testing.
+ * dom/Document.cpp:
+ (WebCore::Document::implicitClose): Execute notification handler for Windows as well as Mac.
+ * page/FrameView.cpp:
+ (WebCore::FrameView::layout): Ditto.
+
2013-06-26 Lucas Forschler <lforsch...@apple.com>
Merge r152020
Modified: tags/Safari-537.47/Source/WebCore/accessibility/win/AXObjectCacheWin.cpp (152105 => 152106)
--- tags/Safari-537.47/Source/WebCore/accessibility/win/AXObjectCacheWin.cpp 2013-06-27 16:51:01 UTC (rev 152105)
+++ tags/Safari-537.47/Source/WebCore/accessibility/win/AXObjectCacheWin.cpp 2013-06-27 17:34:30 UTC (rev 152106)
@@ -1,5 +1,6 @@
/*
- * Copyright (C) 2008, 2009, 2010 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008, 2009, 2010, 2013 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2012 Serotek Corporation. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -33,6 +34,9 @@
#include "Page.h"
#include "RenderObject.h"
+// Provided by IAccessibleEventID.idl
+#define IA2_EVENT_DOCUMENT_LOAD_COMPLETE 261
+
using namespace std;
namespace WebCore {
@@ -74,6 +78,10 @@
DWORD msaaEvent;
switch (notification) {
+ case AXCheckedStateChanged:
+ msaaEvent = EVENT_OBJECT_STATECHANGE;
+ break;
+
case AXFocusedUIElementChanged:
case AXActiveDescendantChanged:
msaaEvent = EVENT_OBJECT_FOCUS;
@@ -83,6 +91,14 @@
msaaEvent = EVENT_SYSTEM_SCROLLINGSTART;
break;
+ case AXLayoutComplete:
+ msaaEvent = EVENT_OBJECT_REORDER;
+ break;
+
+ case AXLoadComplete:
+ msaaEvent = IA2_EVENT_DOCUMENT_LOAD_COMPLETE;
+ break;
+
case AXValueChanged:
case AXMenuListValueChanged:
msaaEvent = EVENT_OBJECT_VALUECHANGE;
Modified: tags/Safari-537.47/Source/WebCore/accessibility/win/AccessibilityObjectWrapperWin.cpp (152105 => 152106)
--- tags/Safari-537.47/Source/WebCore/accessibility/win/AccessibilityObjectWrapperWin.cpp 2013-06-27 16:51:01 UTC (rev 152105)
+++ tags/Safari-537.47/Source/WebCore/accessibility/win/AccessibilityObjectWrapperWin.cpp 2013-06-27 17:34:30 UTC (rev 152106)
@@ -49,8 +49,10 @@
if (obj) {
ASSERT(V_VT(result) == VT_EMPTY);
V_VT(result) = VT_UNKNOWN;
- V_UNKNOWN(result) = obj->wrapper();
- obj->wrapper()->AddRef();
+ AccessibilityObjectWrapper* wrapper = obj->wrapper();
+ V_UNKNOWN(result) = wrapper;
+ if (wrapper)
+ wrapper->AddRef();
}
return;
}
Modified: tags/Safari-537.47/Source/WebCore/dom/Document.cpp (152105 => 152106)
--- tags/Safari-537.47/Source/WebCore/dom/Document.cpp 2013-06-27 16:51:01 UTC (rev 152105)
+++ tags/Safari-537.47/Source/WebCore/dom/Document.cpp 2013-06-27 17:34:30 UTC (rev 152106)
@@ -2446,7 +2446,7 @@
m_processingLoadEvent = false;
-#if PLATFORM(MAC)
+#if PLATFORM(MAC) || PLATFORM(WIN)
if (f && renderer() && AXObjectCache::accessibilityEnabled()) {
// The AX cache may have been cleared at this point, but we need to make sure it contains an
// AX object to send the notification to. getOrCreate will make sure that an valid AX object
Modified: tags/Safari-537.47/Source/WebCore/page/FrameView.cpp (152105 => 152106)
--- tags/Safari-537.47/Source/WebCore/page/FrameView.cpp 2013-06-27 16:51:01 UTC (rev 152105)
+++ tags/Safari-537.47/Source/WebCore/page/FrameView.cpp 2013-06-27 17:34:30 UTC (rev 152106)
@@ -1359,7 +1359,7 @@
m_layoutCount++;
-#if PLATFORM(MAC)
+#if PLATFORM(MAC) || PLATFORM(WIN)
if (AXObjectCache* cache = root->document()->existingAXObjectCache())
cache->postNotification(root, AXObjectCache::AXLayoutComplete, true);
#endif
Modified: tags/Safari-537.47/Source/WebKit/win/AccessibleDocument.cpp (152105 => 152106)
--- tags/Safari-537.47/Source/WebKit/win/AccessibleDocument.cpp 2013-06-27 16:51:01 UTC (rev 152105)
+++ tags/Safari-537.47/Source/WebKit/win/AccessibleDocument.cpp 2013-06-27 17:34:30 UTC (rev 152106)
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2008, 2013 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2012 Serotek Corporation. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -49,3 +50,17 @@
return 0;
return m_object->document();
}
+
+long AccessibleDocument::state() const
+{
+ long state = AccessibleBase::state();
+
+ // The document is considered focusable on Windows.
+ state |= STATE_SYSTEM_FOCUSABLE;
+
+ // The document must expose itself as focused if no element has focus.
+ if (m_object->focusedUIElement() == m_object)
+ state |= STATE_SYSTEM_FOCUSED;
+
+ return state;
+}
Modified: tags/Safari-537.47/Source/WebKit/win/AccessibleDocument.h (152105 => 152106)
--- tags/Safari-537.47/Source/WebKit/win/AccessibleDocument.h 2013-06-27 16:51:01 UTC (rev 152105)
+++ tags/Safari-537.47/Source/WebKit/win/AccessibleDocument.h 2013-06-27 17:34:30 UTC (rev 152106)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008,2013 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008, 2013 Apple Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -34,7 +34,8 @@
WebCore::Document* document() const;
protected:
- virtual long role() const;
+ virtual long role() const OVERRIDE;
+ virtual long state() const OVERRIDE;
};
#endif // AccessibleDocument_h
Modified: tags/Safari-537.47/Source/WebKit/win/ChangeLog (152105 => 152106)
--- tags/Safari-537.47/Source/WebKit/win/ChangeLog 2013-06-27 16:51:01 UTC (rev 152105)
+++ tags/Safari-537.47/Source/WebKit/win/ChangeLog 2013-06-27 17:34:30 UTC (rev 152106)
@@ -1,3 +1,18 @@
+2013-06-27 Lucas Forschler <lforsch...@apple.com>
+
+ Merge r151745
+
+ 2013-06-19 Brent Fulgham <bfulg...@apple.com>
+
+ [Windows] AX: Extend notification support.
+ https://bugs.webkit.org/show_bug.cgi?id=117761
+
+ Reviewed by Anders Carlsson.
+
+ * AccessibleDocument.cpp:
+ (AccessibleDocument::state): Improve handling of focus state.
+ * AccessibleDocument.h: Provide signature for new state override.
+
2013-06-26 Lucas Forschler <lforsch...@apple.com>
Merge r151832