WebKit Bugzilla
Attachment 358896 Details for
Bug 193348
: AX: Introduce isolated accessibility tree
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
patch (text/plain), 94.44 KB, created by
chris fleizach
on 2019-01-11 07:50:04 PST
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
chris fleizach
Created:
2019-01-11 07:50:04 PST
Size:
94.44 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 239718) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,13 @@ >+2019-01-11 Chris Fleizach <cfleizach@apple.com> >+ >+ AX: Introduce a static accessibility tree >+ https://bugs.webkit.org/show_bug.cgi?id=193348 >+ <rdar://problem/47203295> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2019-01-07 Devin Rousso <drousso@apple.com> > > Web Inspector: extend XHR breakpoints to work with fetch >Index: Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >=================================================================== >--- Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig (revision 239718) >+++ Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig (working copy) >@@ -40,6 +40,8 @@ > ENABLE_ACCELERATED_OVERFLOW_SCROLLING = $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING_$(WK_COCOA_TOUCH)); > ENABLE_ACCELERATED_OVERFLOW_SCROLLING_cocoatouch = ENABLE_ACCELERATED_OVERFLOW_SCROLLING; > >+ENABLE_ACCESSIBILITY_STATIC_TREE = ; >+ > ENABLE_APPLE_PAY = $(ENABLE_APPLE_PAY_$(WK_PLATFORM_NAME)); > ENABLE_APPLE_PAY_iphoneos = ENABLE_APPLE_PAY; > ENABLE_APPLE_PAY_iphonesimulator = ENABLE_APPLE_PAY; >@@ -402,4 +404,4 @@ > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_ACCESSIBILITY_STATIC_TREE) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLKEYBOARD_ACCESS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 239718) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,44 @@ >+2019-01-11 Chris Fleizach <cfleizach@apple.com> >+ >+ AX: Introduce a static accessibility tree >+ https://bugs.webkit.org/show_bug.cgi?id=193348 >+ <rdar://problem/47203295> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ In order to improve performance when requesting the accessibility hierarchy, we introduce the idea of a "static accessibility tree" which could be accessed on a different thread by assistive technologies. >+ That is accomplished by storing all the data needed to answer accessibility attribute queries in a static object that mirrors the "live" AccessibilityObjects (which interact with both DOM and Render trees). >+ These static objects are generally created after layout is done and final tasks are being performed. They are then stored in the static tree representation and able to be read from anywhere. >+ Tactically this is done with AXStaticTreeNodes inside of an AXStaticTreeCache. The TreeNodes implement an AccessibilityObjectInterface shared with AccessibilityObject >+ This allows the wrappers to access either one depending on conditions and platforms without significant code duplication or re-organization. >+ >+ * Configurations/FeatureDefines.xcconfig: >+ * Sources.txt: >+ * WebCore.xcodeproj/project.pbxproj: >+ * accessibility/AXObjectCache.cpp: >+ (WebCore::AXObjectCache::performDeferredCacheUpdate): >+ (WebCore::AXObjectCache::walkAccessibilityTreeForStaticTree): >+ (WebCore::AXObjectCache::generateStaticAccessibilityTreeIfNeeded): >+ * accessibility/AXObjectCache.h: >+ * accessibility/AccessibilityObject.h: >+ (WebCore::AccessibilityObject::setInitializedStaticTreeNode): >+ (WebCore::AccessibilityObject::initializedStaticTreeNode const): >+ * accessibility/mac/AXObjectCacheMac.mm: >+ (WebCore::AXObjectCache::associateStaticTreeNode): >+ * accessibility/mac/WebAccessibilityObjectWrapperBase.h: >+ * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: >+ (-[WebAccessibilityObjectWrapperBase setStaticTreeNode:]): >+ (-[WebAccessibilityObjectWrapperBase staticTreeNode]): >+ (-[WebAccessibilityObjectWrapperBase hasStaticBacking]): >+ (-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]): >+ (-[WebAccessibilityObjectWrapperBase axBackingObject]): >+ (-[WebAccessibilityObjectWrapperBase baseAccessibilityDescription]): >+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: >+ (-[WebAccessibilityObjectWrapper role]): >+ (-[WebAccessibilityObjectWrapper subrole]): >+ (-[WebAccessibilityObjectWrapper roleDescription]): >+ (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): >+ > 2019-01-07 Youenn Fablet <youenn@apple.com> > > Crash in SWServer::Connection::resolveRegistrationReadyRequests >Index: Source/WebCore/Configurations/FeatureDefines.xcconfig >=================================================================== >--- Source/WebCore/Configurations/FeatureDefines.xcconfig (revision 239718) >+++ Source/WebCore/Configurations/FeatureDefines.xcconfig (working copy) >@@ -40,6 +40,8 @@ > ENABLE_ACCELERATED_OVERFLOW_SCROLLING = $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING_$(WK_COCOA_TOUCH)); > ENABLE_ACCELERATED_OVERFLOW_SCROLLING_cocoatouch = ENABLE_ACCELERATED_OVERFLOW_SCROLLING; > >+ENABLE_ACCESSIBILITY_STATIC_TREE = ; >+ > ENABLE_APPLE_PAY = $(ENABLE_APPLE_PAY_$(WK_PLATFORM_NAME)); > ENABLE_APPLE_PAY_iphoneos = ENABLE_APPLE_PAY; > ENABLE_APPLE_PAY_iphonesimulator = ENABLE_APPLE_PAY; >@@ -402,4 +404,4 @@ > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_ACCESSIBILITY_STATIC_TREE) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLKEYBOARD_ACCESS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >Index: Source/WebCore/PAL/ChangeLog >=================================================================== >--- Source/WebCore/PAL/ChangeLog (revision 239718) >+++ Source/WebCore/PAL/ChangeLog (working copy) >@@ -1,3 +1,13 @@ >+2019-01-11 Chris Fleizach <cfleizach@apple.com> >+ >+ AX: Introduce a static accessibility tree >+ https://bugs.webkit.org/show_bug.cgi?id=193348 >+ <rdar://problem/47203295> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2019-01-07 Devin Rousso <drousso@apple.com> > > Web Inspector: Network: show secure connection details per-request >Index: Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >=================================================================== >--- Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig (revision 239718) >+++ Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig (working copy) >@@ -40,6 +40,8 @@ > ENABLE_ACCELERATED_OVERFLOW_SCROLLING = $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING_$(WK_COCOA_TOUCH)); > ENABLE_ACCELERATED_OVERFLOW_SCROLLING_cocoatouch = ENABLE_ACCELERATED_OVERFLOW_SCROLLING; > >+ENABLE_ACCESSIBILITY_STATIC_TREE = ; >+ > ENABLE_APPLE_PAY = $(ENABLE_APPLE_PAY_$(WK_PLATFORM_NAME)); > ENABLE_APPLE_PAY_iphoneos = ENABLE_APPLE_PAY; > ENABLE_APPLE_PAY_iphonesimulator = ENABLE_APPLE_PAY; >@@ -402,4 +404,4 @@ > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_ACCESSIBILITY_STATIC_TREE) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLKEYBOARD_ACCESS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >Index: Source/WebCore/Sources.txt >=================================================================== >--- Source/WebCore/Sources.txt (revision 239718) >+++ Source/WebCore/Sources.txt (working copy) >@@ -366,6 +366,8 @@ > accessibility/AccessibilityTree.cpp > accessibility/AccessibilityTreeItem.cpp > accessibility/AccessibleSetValueEvent.cpp >+accessibility/AXStaticTree/AXStaticTreeCache.cpp >+accessibility/AXStaticTree/AXStaticTreeNode.cpp > > animation/AnimationEffect.cpp > animation/AnimationPlaybackEvent.cpp >Index: Source/WebCore/WebCore.xcodeproj/project.pbxproj >=================================================================== >--- Source/WebCore/WebCore.xcodeproj/project.pbxproj (revision 239718) >+++ Source/WebCore/WebCore.xcodeproj/project.pbxproj (working copy) >@@ -694,6 +694,7 @@ > 26F9A83818A046AC00AEB88A /* ViewportConfiguration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26F9A83618A046AC00AEB88A /* ViewportConfiguration.cpp */; }; > 26F9A83918A046AC00AEB88A /* ViewportConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 26F9A83718A046AC00AEB88A /* ViewportConfiguration.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 2914E3081CAB5A440049966F /* AccessibilityAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 2914E3061CAB5A440049966F /* AccessibilityAttachment.h */; }; >+ 2936BF5C21D69E4B004A8FC9 /* AccessibilityObjectInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 2936BF5A21D6999E004A8FC9 /* AccessibilityObjectInterface.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 293EAE1F1356B2FE0067ACF9 /* RuntimeApplicationChecks.h in Headers */ = {isa = PBXBuildFile; fileRef = 293EAE1E1356B2FE0067ACF9 /* RuntimeApplicationChecks.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 29489FC712C00F0300D83F0F /* AccessibilityScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 29489FC512C00F0300D83F0F /* AccessibilityScrollView.h */; }; > 297BE3D516C03C08003316BD /* PlatformSpeechSynthesisUtterance.h in Headers */ = {isa = PBXBuildFile; fileRef = 2527CC9116BF8BA1009DDAC0 /* PlatformSpeechSynthesisUtterance.h */; }; >@@ -715,6 +716,8 @@ > 29A812430FBB9C1D00510293 /* AccessibilityListBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 29A812250FBB9C1D00510293 /* AccessibilityListBox.h */; }; > 29A812490FBB9CA900510293 /* WebAccessibilityObjectWrapperBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 29A812450FBB9CA900510293 /* WebAccessibilityObjectWrapperBase.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 29ACB212143E7128006BCA5F /* AccessibilityMockObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 29ACB211143E7128006BCA5F /* AccessibilityMockObject.h */; }; >+ 29AE212D21AB9EEB00869283 /* AXStaticTreeCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 29AE212B21AB9EEB00869283 /* AXStaticTreeCache.h */; settings = {ATTRIBUTES = (Private, ); }; }; >+ 29AE213521ABA48A00869283 /* AXStaticTreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 29AE213321ABA48A00869283 /* AXStaticTreeNode.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 29D7BCFA1444AF7D0070619C /* AccessibilitySpinButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 29D7BCF91444AF7D0070619C /* AccessibilitySpinButton.h */; }; > 29FAF4B6195AB08900A522DC /* TextUndoInsertionMarkupMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 29FAF4B5195AB08900A522DC /* TextUndoInsertionMarkupMac.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 2B365C841525119E0091D27B /* RenderSVGEllipse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B4235A015250F6000DBBCD8 /* RenderSVGEllipse.h */; }; >@@ -6530,6 +6533,7 @@ > 28DB9BC72020EA0400E54A07 /* PerformanceServerTiming.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceServerTiming.idl; sourceTree = "<group>"; }; > 2914E3051CAB5A440049966F /* AccessibilityAttachment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilityAttachment.cpp; sourceTree = "<group>"; }; > 2914E3061CAB5A440049966F /* AccessibilityAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilityAttachment.h; sourceTree = "<group>"; }; >+ 2936BF5A21D6999E004A8FC9 /* AccessibilityObjectInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessibilityObjectInterface.h; sourceTree = "<group>"; }; > 293EAE1E1356B2FE0067ACF9 /* RuntimeApplicationChecks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RuntimeApplicationChecks.h; sourceTree = "<group>"; }; > 29489FC512C00F0300D83F0F /* AccessibilityScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilityScrollView.h; sourceTree = "<group>"; }; > 29498681195341940072D2BD /* TextUndoInsertionMarkupMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TextUndoInsertionMarkupMac.mm; sourceTree = "<group>"; }; >@@ -6577,6 +6581,10 @@ > 29A812470FBB9CA900510293 /* AXObjectCacheMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AXObjectCacheMac.mm; sourceTree = "<group>"; }; > 29ACB211143E7128006BCA5F /* AccessibilityMockObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilityMockObject.h; sourceTree = "<group>"; }; > 29ACB213143E7498006BCA5F /* AccessibilityMockObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilityMockObject.cpp; sourceTree = "<group>"; }; >+ 29AE212B21AB9EEB00869283 /* AXStaticTreeCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AXStaticTreeCache.h; sourceTree = "<group>"; }; >+ 29AE212C21AB9EEB00869283 /* AXStaticTreeCache.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AXStaticTreeCache.cpp; sourceTree = "<group>"; }; >+ 29AE213321ABA48A00869283 /* AXStaticTreeNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AXStaticTreeNode.h; sourceTree = "<group>"; }; >+ 29AE213421ABA48A00869283 /* AXStaticTreeNode.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AXStaticTreeNode.cpp; sourceTree = "<group>"; }; > 29D7BCF51444AF580070619C /* AccessibilitySpinButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilitySpinButton.cpp; sourceTree = "<group>"; }; > 29D7BCF91444AF7D0070619C /* AccessibilitySpinButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySpinButton.h; sourceTree = "<group>"; }; > 29E04A27BED2F81F98E9022B /* JSBeforeUnloadEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSBeforeUnloadEvent.h; sourceTree = "<group>"; }; >@@ -16977,6 +16985,7 @@ > 2985709315CC532D006355CD /* AccessibilityNodeObject.h */, > 2981CAA5131822EC00D12F2A /* AccessibilityObject.cpp */, > 29A812180FBB9C1D00510293 /* AccessibilityObject.h */, >+ 2936BF5A21D6999E004A8FC9 /* AccessibilityObjectInterface.h */, > A409C982116D0DDD007197BD /* AccessibilityProgressIndicator.cpp */, > A409C983116D0DDD007197BD /* AccessibilityProgressIndicator.h */, > 2981CAA6131822EC00D12F2A /* AccessibilityRenderObject.cpp */, >@@ -17015,6 +17024,7 @@ > 2981CAAF131822EC00D12F2A /* AXObjectCache.cpp */, > 29A8121A0FBB9C1D00510293 /* AXObjectCache.h */, > 91C9F2F81AE3BE240095B61C /* AXTextStateChangeIntent.h */, >+ 29AE212921AB9ECB00869283 /* AXStaticTree */, > ); > path = accessibility; > sourceTree = "<group>"; >@@ -17032,6 +17042,17 @@ > path = mac; > sourceTree = "<group>"; > }; >+ 29AE212921AB9ECB00869283 /* AXStaticTree */ = { >+ isa = PBXGroup; >+ children = ( >+ 29AE212B21AB9EEB00869283 /* AXStaticTreeCache.h */, >+ 29AE212C21AB9EEB00869283 /* AXStaticTreeCache.cpp */, >+ 29AE213321ABA48A00869283 /* AXStaticTreeNode.h */, >+ 29AE213421ABA48A00869283 /* AXStaticTreeNode.cpp */, >+ ); >+ path = AXStaticTree; >+ sourceTree = "<group>"; >+ }; > 2D0621461DA639EC00A7FB26 /* legacy */ = { > isa = PBXGroup; > children = ( >@@ -29592,6 +29613,7 @@ > 1AE2AA980A1CDD2D00B42B25 /* JSHTMLImageElement.h in Headers */, > A80E7E970A1A83E3007FB8C5 /* JSHTMLInputElement.h in Headers */, > 836B09561F5F34D9003C3702 /* JSHTMLInputElementEntriesAPI.h in Headers */, >+ 2936BF5C21D69E4B004A8FC9 /* AccessibilityObjectInterface.h in Headers */, > A6148A7912E41E3B0044A784 /* JSHTMLKeygenElement.h in Headers */, > 1AE2AB220A1CE63B00B42B25 /* JSHTMLLabelElement.h in Headers */, > 1AE2AB240A1CE63B00B42B25 /* JSHTMLLegendElement.h in Headers */, >@@ -31043,6 +31065,7 @@ > 51405C89190B014400754F94 /* SelectionRectGatherer.h in Headers */, > E44B4BB4141650D7002B1D8B /* SelectorChecker.h in Headers */, > 432D3FE818A8658400D7DC03 /* SelectorCheckerTestFunctions.h in Headers */, >+ 29AE213521ABA48A00869283 /* AXStaticTreeNode.h in Headers */, > 26B999971804D54200D01121 /* SelectorCompiler.h in Headers */, > 415071581685067300C3C7B3 /* SelectorFilter.h in Headers */, > 43107BE218CC19DE00CC18E8 /* SelectorPseudoTypeMap.h in Headers */, >@@ -31973,6 +31996,7 @@ > 977E2E0F12F0FC9C00C13380 /* XSSAuditorDelegate.h in Headers */, > A5416FE618810EF80009FC5F /* YouTubeEmbedShadowElement.h in Headers */, > 7A5515F5191830A3009687D2 /* YouTubePluginReplacement.h in Headers */, >+ 29AE212D21AB9EEB00869283 /* AXStaticTreeCache.h in Headers */, > FD537353137B651800008DCE /* ZeroPole.h in Headers */, > ); > runOnlyForDeploymentPostprocessing = 0; >Index: Source/WebCore/accessibility/AXObjectCache.cpp >=================================================================== >--- Source/WebCore/accessibility/AXObjectCache.cpp (revision 239718) >+++ Source/WebCore/accessibility/AXObjectCache.cpp (working copy) >@@ -32,6 +32,8 @@ > > #include "AXObjectCache.h" > >+#include "AXStaticTreeCache.h" >+#include "AXStaticTreeNode.h" > #include "AccessibilityARIAGrid.h" > #include "AccessibilityARIAGridCell.h" > #include "AccessibilityARIAGridRow.h" >@@ -2905,8 +2907,36 @@ > for (auto& deferredFocusedChangeContext : m_deferredFocusedNodeChange) > handleFocusedUIElementChanged(deferredFocusedChangeContext.first, deferredFocusedChangeContext.second); > m_deferredFocusedNodeChange.clear(); >+ >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ generateStaticAccessibilityTreeIfNeeded(); >+#endif > } > >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+RefPtr<AXStaticTreeNode> AXObjectCache::walkAccessibilityTreeForStaticTree(AccessibilityObject* object) >+{ >+ RefPtr<AXStaticTreeNode> staticTreeNode = AXStaticTreeNode::create(object); >+ object->setInitializedStaticTreeNode(true); >+ associateStaticTreeNode(object, staticTreeNode.get()); >+ for (auto child : object->children()) { >+ auto staticChild = walkAccessibilityTreeForStaticTree(child.get()); >+ staticChild->setParent(staticTreeNode.get()); >+ staticTreeNode->children().append(staticChild); >+ } >+ return staticTreeNode; >+} >+ >+void AXObjectCache::generateStaticAccessibilityTreeIfNeeded() >+{ >+ if (rootObject()->initializedStaticTreeNode()) >+ return; >+ >+ RefPtr<AXStaticTreeNode> root = walkAccessibilityTreeForStaticTree(rootObject()); >+ AXStaticTreeCache::updateStaticTreeCache(root, m_document.page()); >+} >+#endif >+ > void AXObjectCache::deferRecomputeIsIgnoredIfNeeded(Element* element) > { > if (!nodeAndRendererAreValid(element)) >Index: Source/WebCore/accessibility/AXObjectCache.h >=================================================================== >--- Source/WebCore/accessibility/AXObjectCache.h (revision 239718) >+++ Source/WebCore/accessibility/AXObjectCache.h (working copy) >@@ -39,6 +39,9 @@ > > namespace WebCore { > >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+class AXStaticTreeNode; >+#endif > class Document; > class HTMLAreaElement; > class HTMLTextFormControlElement; >@@ -180,6 +183,13 @@ > void deferAttributeChangeIfNeeded(const QualifiedName&, Element*); > void recomputeIsIgnored(RenderObject* renderer); > >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ WEBCORE_EXPORT void generateStaticAccessibilityTreeIfNeeded(); >+ >+ void associateStaticTreeNode(AccessibilityObject*, AXStaticTreeNode*); >+ RefPtr<AXStaticTreeNode> walkAccessibilityTreeForStaticTree(AccessibilityObject*); >+#endif >+ > #if HAVE(ACCESSIBILITY) > WEBCORE_EXPORT static void enableAccessibility(); > WEBCORE_EXPORT static void disableAccessibility(); >Index: Source/WebCore/accessibility/AXStaticTree/AXStaticTreeCache.cpp >=================================================================== >--- Source/WebCore/accessibility/AXStaticTree/AXStaticTreeCache.cpp (nonexistent) >+++ Source/WebCore/accessibility/AXStaticTree/AXStaticTreeCache.cpp (working copy) >@@ -0,0 +1,108 @@ >+/* >+ * Copyright (C) 2019 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ >+#include "config.h" >+#include "AXStaticTreeCache.h" >+ >+#include "AXStaticTreeNode.h" >+#include "Page.h" >+#include <wtf/NeverDestroyed.h> >+ >+namespace WebCore { >+ >+static Lock s_staticTreeLock; >+HashMap<Page*, RefPtr<AXStaticTreeCache>>& AXStaticTreeCache::pageRootMap() >+{ >+ static NeverDestroyed<HashMap<Page*, RefPtr<AXStaticTreeCache>>> map; >+ return map; >+} >+ >+AXStaticTreeCache::AXStaticTreeCache() >+{ >+} >+ >+AXStaticTreeCache::~AXStaticTreeCache() = default; >+ >+Ref<AXStaticTreeCache> AXStaticTreeCache::create() >+{ >+ return adoptRef(*new AXStaticTreeCache()); >+} >+ >+AXStaticTreeNode* AXStaticTreeCache::rootStaticTreeNode(Page* page) >+{ >+ s_staticTreeLock.lock(); >+ auto cache = pageRootMap().get(page); >+ s_staticTreeLock.unlock(); >+ if (cache && cache->m_rootNode) >+ return cache->m_rootNode.get(); >+ >+ return nullptr; >+} >+ >+void AXStaticTreeCache::updateStaticTreeCache(RefPtr<AXStaticTreeNode> root, Page* page) >+{ >+ s_staticTreeLock.lock(); >+ auto cache = pageRootMap().get(page); >+ if (!cache) { >+ RefPtr<AXStaticTreeCache> newCache = AXStaticTreeCache::create(); >+ pageRootMap().set(page, newCache); >+ cache = newCache.get(); >+ } >+ >+ cache->internalUpdateStaticTreeCache(root); >+ s_staticTreeLock.unlock(); >+} >+ >+static bool searchTreeAndReplace(RefPtr<AXStaticTreeNode> searchNode, RefPtr<AXStaticTreeNode> newRoot) >+{ >+ auto children = searchNode->children(); >+ size_t count = children.size(); >+ for (size_t index = 0; index < count; ++index) { >+ if (children[index]->identifier() == newRoot->identifier()) { >+ children.insert(index, newRoot); >+ return true; >+ } >+ >+ if (searchTreeAndReplace(children[index], newRoot)) >+ return true; >+ } >+ >+ return false; >+} >+ >+void AXStaticTreeCache::internalUpdateStaticTreeCache(RefPtr<AXStaticTreeNode> subRoot) >+{ >+ ASSERT(s_staticTreeLock.isLocked()); >+ if (!m_rootNode) >+ m_rootNode = subRoot; >+ else >+ searchTreeAndReplace(m_rootNode, subRoot); >+} >+ >+} // namespace WebCore >+ >+#endif // ENABLE(ACCESSIBILITY_STATIC_TREE) >Index: Source/WebCore/accessibility/AXStaticTree/AXStaticTreeCache.h >=================================================================== >--- Source/WebCore/accessibility/AXStaticTree/AXStaticTreeCache.h (nonexistent) >+++ Source/WebCore/accessibility/AXStaticTree/AXStaticTreeCache.h (working copy) >@@ -0,0 +1,58 @@ >+/* >+ * Copyright (C) 2019 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY >+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR >+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#pragma once >+ >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ >+#include "AXStaticTreeNode.h" >+#include <wtf/HashMap.h> >+#include <wtf/RefCounted.h> >+#include <wtf/RefPtr.h> >+ >+namespace WebCore { >+ >+class Page; >+ >+class AXStaticTreeCache : public RefCounted<AXStaticTreeCache> { >+ WTF_MAKE_NONCOPYABLE(AXStaticTreeCache); WTF_MAKE_FAST_ALLOCATED; >+ >+public: >+ static Ref<AXStaticTreeCache> create(); >+ static void updateStaticTreeCache(RefPtr<AXStaticTreeNode>, Page*); >+ WEBCORE_EXPORT static AXStaticTreeNode* rootStaticTreeNode(Page*); >+ AXStaticTreeCache(); >+ virtual ~AXStaticTreeCache(); >+ >+private: >+ void internalUpdateStaticTreeCache(RefPtr<AXStaticTreeNode>); >+ static HashMap<Page*, RefPtr<AXStaticTreeCache>>& pageRootMap(); >+ >+ RefPtr<AXStaticTreeNode> m_rootNode; >+}; >+ >+} // namespace WebCore >+ >+#endif >Index: Source/WebCore/accessibility/AXStaticTree/AXStaticTreeNode.cpp >=================================================================== >--- Source/WebCore/accessibility/AXStaticTree/AXStaticTreeNode.cpp (nonexistent) >+++ Source/WebCore/accessibility/AXStaticTree/AXStaticTreeNode.cpp (working copy) >@@ -0,0 +1,118 @@ >+/* >+ * Copyright (C) 2019 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ >+#include "config.h" >+#include "AXStaticTreeNode.h" >+ >+#include "AccessibilityObject.h" >+ >+namespace WebCore { >+ >+AXStaticTreeNode::AXStaticTreeNode(AccessibilityObject* object) >+{ >+ m_identifier = object->axObjectID(); >+ initializeAttributeData(object); >+} >+ >+Ref<AXStaticTreeNode> AXStaticTreeNode::create(AccessibilityObject* object) >+{ >+ return adoptRef(*new AXStaticTreeNode(object)); >+} >+ >+AXStaticTreeNode::~AXStaticTreeNode() = default; >+ >+void AXStaticTreeNode::initializeAttributeData(AccessibilityObject* object) >+{ >+ setProperty(AXPropertyName::RoleValue, static_cast<int>(object->roleValue())); >+ setProperty(AXPropertyName::IsAttachment, object->isAttachment()); >+ setProperty(AXPropertyName::IsMediaControlLabel, object->isMediaControlLabel()); >+ setProperty(AXPropertyName::IsAttachment, object->isAttachment()); >+} >+ >+void AXStaticTreeNode::setProperty(AXPropertyName propertyName, AttributeValueVariant&& value, bool shouldRemove) >+{ >+ if (shouldRemove) >+ m_attributeMap.remove(propertyName); >+ else >+ m_attributeMap.set(propertyName, value); >+} >+ >+double AXStaticTreeNode::doubleAttributeValue(AXPropertyName propertyName) const >+{ >+ auto value = m_attributeMap.get(propertyName); >+ return WTF::switchOn(value, [&] (double& typedValue) { >+ return typedValue; >+ }, [&] (auto&) { >+ return 0.0; >+ }); >+} >+ >+unsigned AXStaticTreeNode::unsignedAttributeValue(AXPropertyName propertyName) const >+{ >+ auto value = m_attributeMap.get(propertyName); >+ return WTF::switchOn(value, [&] (unsigned& typedValue) { >+ return typedValue; >+ }, [&] (auto&) { >+ return 0; >+ }); >+} >+ >+bool AXStaticTreeNode::boolAttributeValue(AXPropertyName propertyName) const >+{ >+ auto value = m_attributeMap.get(propertyName); >+ return WTF::switchOn(value, [&] (bool& typedValue) { >+ return typedValue; >+ }, [&] (auto&) { >+ return false; >+ }); >+} >+ >+const String& AXStaticTreeNode::stringAttributeValue(AXPropertyName propertyName) const >+{ >+ auto value = m_attributeMap.get(propertyName); >+ return WTF::switchOn(value, [&] (String& typedValue) { >+ return typedValue; >+ }, [&] (auto&) { >+ return nullAtom(); >+ }); >+} >+ >+int AXStaticTreeNode::intAttributeValue(AXPropertyName propertyName) const >+{ >+ auto value = m_attributeMap.get(propertyName); >+ return WTF::switchOn(value, [&] (int& typedValue) { >+ return typedValue; >+ }, [&] (auto&) { >+ return 0; >+ }); >+} >+ >+#pragma mark - Overrides >+ >+} // namespace WebCore >+ >+#endif // ENABLE((ACCESSIBILITY_STATIC_TREE) >Index: Source/WebCore/accessibility/AXStaticTree/AXStaticTreeNode.h >=================================================================== >--- Source/WebCore/accessibility/AXStaticTree/AXStaticTreeNode.h (nonexistent) >+++ Source/WebCore/accessibility/AXStaticTree/AXStaticTreeNode.h (working copy) >@@ -0,0 +1,114 @@ >+/* >+* Copyright (C) 2019 Apple Inc. All rights reserved. >+* >+* Redistribution and use in source and binary forms, with or without >+* modification, are permitted provided that the following conditions >+* are met: >+* 1. Redistributions of source code must retain the above copyright >+* notice, this list of conditions and the following disclaimer. >+* 2. Redistributions in binary form must reproduce the above copyright >+* notice, this list of conditions and the following disclaimer in the >+* documentation and/or other materials provided with the distribution. >+* >+* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+* THE POSSIBILITY OF SUCH DAMAGE. >+*/ >+ >+#pragma once >+ >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ >+#include "AccessibilityObjectInterface.h" >+#include <wtf/Forward.h> >+#include <wtf/HashMap.h> >+#include <wtf/RefCounted.h> >+#include <wtf/RefPtr.h> >+#include <wtf/Variant.h> >+#include <wtf/Vector.h> >+ >+namespace WebCore { >+ >+class AccessibilityObject; >+ >+class AXStaticTreeNode final : public AccessibilityObjectInterface, public RefCounted<AXStaticTreeNode> { >+ >+enum class AXPropertyName : int { >+ None = 0, >+ RoleValue = 1, >+ IsAttachment, >+ IsMediaControlLabel, >+}; >+ >+struct AXPropertyHashTraits : WTF::GenericHashTraits<AXPropertyName> { >+ static const bool emptyValueIsZero = false; >+ static AXPropertyName emptyValue() { return AXPropertyName::None; }; >+ static void constructDeletedValue(AXPropertyName& slot) >+ { >+ slot = static_cast<AXPropertyName>(static_cast<int>(AXPropertyName::None) - 1); >+ } >+ static bool isDeletedValue(AXPropertyName value) >+ { >+ return static_cast<int>(value) == static_cast<int>(AXPropertyName::None) - 1; >+ } >+}; >+ >+protected: >+ AXStaticTreeNode() = default; >+ >+public: >+ static Ref<AXStaticTreeNode> create(AccessibilityObject*); >+ virtual ~AXStaticTreeNode(); >+ >+ AXID identifier() const { return m_identifier; } >+ >+ Vector<RefPtr<AXStaticTreeNode>>& children() { return m_children; }; >+ >+ void setParent(AXStaticTreeNode* parent) { m_parent = parent; } >+ AXStaticTreeNode* parent() const { return m_parent; } >+ >+ AccessibilityObjectWrapper* wrapper() const { return m_wrapper.get(); } >+ void setWrapper(AccessibilityObjectWrapper* wrapper) >+ { >+ m_wrapper = wrapper; >+ } >+ >+private: >+ AXStaticTreeNode(AccessibilityObject*); >+ void initializeAttributeData(AccessibilityObject*); >+ >+ bool isMediaControlLabel() const override { return boolAttributeValue(AXPropertyName::IsMediaControlLabel); } >+ bool isAttachment() const override { return boolAttributeValue(AXPropertyName::IsAttachment); } >+ AccessibilityRole roleValue() const override { return static_cast<AccessibilityRole>(intAttributeValue(AXPropertyName::RoleValue)); } >+ >+ using AttributeValueVariant = Variant<std::nullptr_t, String, bool, int, unsigned, double>; >+ void setProperty(AXPropertyName, AttributeValueVariant&&, bool shouldRemove = false); >+ >+ bool boolAttributeValue(AXPropertyName) const; >+ const String& stringAttributeValue(AXPropertyName) const; >+ int intAttributeValue(AXPropertyName) const; >+ unsigned unsignedAttributeValue(AXPropertyName) const; >+ double doubleAttributeValue(AXPropertyName) const; >+ >+ AXID m_identifier; >+ Vector<RefPtr<AXStaticTreeNode>> m_children; >+ AXStaticTreeNode* m_parent; >+ >+#if PLATFORM(COCOA) >+ RetainPtr<WebAccessibilityObjectWrapper> m_wrapper; >+#endif >+ >+ HashMap<AXPropertyName, AttributeValueVariant, WTF::IntHash<AXPropertyName>, AXPropertyHashTraits> m_attributeMap; >+}; >+ >+} // namespace WebCore >+ >+#endif // ENABLE((ACCESSIBILITY_STATIC_TREE)) >Index: Source/WebCore/accessibility/AccessibilityObject.h >=================================================================== >--- Source/WebCore/accessibility/AccessibilityObject.h (revision 239718) >+++ Source/WebCore/accessibility/AccessibilityObject.h (working copy) >@@ -29,6 +29,7 @@ > > #pragma once > >+#include "AccessibilityObjectInterface.h" > #include "FloatQuad.h" > #include "HTMLTextFormControlElement.h" > #include "LayoutRect.h" >@@ -89,157 +90,6 @@ > class ScrollView; > class Widget; > >-typedef unsigned AXID; >- >-enum class AccessibilityRole { >- Annotation = 1, >- Application, >- ApplicationAlert, >- ApplicationAlertDialog, >- ApplicationDialog, >- ApplicationGroup, >- ApplicationLog, >- ApplicationMarquee, >- ApplicationStatus, >- ApplicationTextGroup, >- ApplicationTimer, >- Audio, >- Blockquote, >- Browser, >- BusyIndicator, >- Button, >- Canvas, >- Caption, >- Cell, >- CheckBox, >- ColorWell, >- Column, >- ColumnHeader, >- ComboBox, >- Definition, >- DescriptionList, >- DescriptionListTerm, >- DescriptionListDetail, >- Details, >- Directory, >- DisclosureTriangle, >- Div, >- Document, >- DocumentArticle, >- DocumentMath, >- DocumentNote, >- Drawer, >- EditableText, >- Feed, >- Figure, >- Footer, >- Footnote, >- Form, >- GraphicsDocument, >- GraphicsObject, >- GraphicsSymbol, >- Grid, >- GridCell, >- Group, >- GrowArea, >- Heading, >- HelpTag, >- HorizontalRule, >- Ignored, >- Inline, >- Image, >- ImageMap, >- ImageMapLink, >- Incrementor, >- Label, >- LandmarkBanner, >- LandmarkComplementary, >- LandmarkContentInfo, >- LandmarkDocRegion, >- LandmarkMain, >- LandmarkNavigation, >- LandmarkRegion, >- LandmarkSearch, >- Legend, >- Link, >- List, >- ListBox, >- ListBoxOption, >- ListItem, >- ListMarker, >- Mark, >- MathElement, >- Matte, >- Menu, >- MenuBar, >- MenuButton, >- MenuItem, >- MenuItemCheckbox, >- MenuItemRadio, >- MenuListPopup, >- MenuListOption, >- Outline, >- Paragraph, >- PopUpButton, >- Pre, >- Presentational, >- ProgressIndicator, >- RadioButton, >- RadioGroup, >- RowHeader, >- Row, >- RowGroup, >- RubyBase, >- RubyBlock, >- RubyInline, >- RubyRun, >- RubyText, >- Ruler, >- RulerMarker, >- ScrollArea, >- ScrollBar, >- SearchField, >- Sheet, >- Slider, >- SliderThumb, >- SpinButton, >- SpinButtonPart, >- SplitGroup, >- Splitter, >- StaticText, >- Summary, >- Switch, >- SystemWide, >- SVGRoot, >- SVGText, >- SVGTSpan, >- SVGTextPath, >- TabGroup, >- TabList, >- TabPanel, >- Tab, >- Table, >- TableHeaderContainer, >- TextArea, >- TextGroup, >- Term, >- Time, >- Tree, >- TreeGrid, >- TreeItem, >- TextField, >- ToggleButton, >- Toolbar, >- Unknown, >- UserInterfaceTooltip, >- ValueIndicator, >- Video, >- WebApplication, >- WebArea, >- WebCoreLink, >- Window, >-}; >- > enum class AccessibilityTextSource { > Alternative, > Children, >@@ -491,7 +341,7 @@ > > bool nodeHasPresentationRole(Node*); > >-class AccessibilityObject : public RefCounted<AccessibilityObject> { >+class AccessibilityObject : public RefCounted<AccessibilityObject>, public AccessibilityObjectInterface { > protected: > AccessibilityObject() = default; > >@@ -1150,6 +1000,11 @@ > void clearIsIgnoredFromParentData() { m_isIgnoredFromParentData = AccessibilityIsIgnoredFromParentData(); } > void setIsIgnoredFromParentDataForChild(AccessibilityObject*); > >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ void setInitializedStaticTreeNode(bool initialized) { m_staticTreeNodeInitialized = initialized; } >+ bool initializedStaticTreeNode() const { return m_staticTreeNodeInitialized; } >+#endif >+ > protected: > AXID m_id { 0 }; > AccessibilityChildrenVector m_children; >@@ -1159,7 +1014,10 @@ > AccessibilityIsIgnoredFromParentData m_isIgnoredFromParentData { }; > bool m_childrenDirty { false }; > bool m_subtreeDirty { false }; >- >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ bool m_staticTreeNodeInitialized { false }; >+#endif >+ > void setIsIgnoredFromParentData(AccessibilityIsIgnoredFromParentData& data) { m_isIgnoredFromParentData = data; } > > virtual bool computeAccessibilityIsIgnored() const { return true; } >Index: Source/WebCore/accessibility/AccessibilityObjectInterface.h >=================================================================== >--- Source/WebCore/accessibility/AccessibilityObjectInterface.h (nonexistent) >+++ Source/WebCore/accessibility/AccessibilityObjectInterface.h (working copy) >@@ -0,0 +1,192 @@ >+/* >+ * Copyright (C) 2019 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#pragma once >+ >+namespace WebCore { >+ >+typedef unsigned AXID; >+ >+enum class AccessibilityRole { >+ Annotation = 1, >+ Application, >+ ApplicationAlert, >+ ApplicationAlertDialog, >+ ApplicationDialog, >+ ApplicationGroup, >+ ApplicationLog, >+ ApplicationMarquee, >+ ApplicationStatus, >+ ApplicationTextGroup, >+ ApplicationTimer, >+ Audio, >+ Blockquote, >+ Browser, >+ BusyIndicator, >+ Button, >+ Canvas, >+ Caption, >+ Cell, >+ CheckBox, >+ ColorWell, >+ Column, >+ ColumnHeader, >+ ComboBox, >+ Definition, >+ DescriptionList, >+ DescriptionListTerm, >+ DescriptionListDetail, >+ Details, >+ Directory, >+ DisclosureTriangle, >+ Div, >+ Document, >+ DocumentArticle, >+ DocumentMath, >+ DocumentNote, >+ Drawer, >+ EditableText, >+ Feed, >+ Figure, >+ Footer, >+ Footnote, >+ Form, >+ GraphicsDocument, >+ GraphicsObject, >+ GraphicsSymbol, >+ Grid, >+ GridCell, >+ Group, >+ GrowArea, >+ Heading, >+ HelpTag, >+ HorizontalRule, >+ Ignored, >+ Inline, >+ Image, >+ ImageMap, >+ ImageMapLink, >+ Incrementor, >+ Label, >+ LandmarkBanner, >+ LandmarkComplementary, >+ LandmarkContentInfo, >+ LandmarkDocRegion, >+ LandmarkMain, >+ LandmarkNavigation, >+ LandmarkRegion, >+ LandmarkSearch, >+ Legend, >+ Link, >+ List, >+ ListBox, >+ ListBoxOption, >+ ListItem, >+ ListMarker, >+ Mark, >+ MathElement, >+ Matte, >+ Menu, >+ MenuBar, >+ MenuButton, >+ MenuItem, >+ MenuItemCheckbox, >+ MenuItemRadio, >+ MenuListPopup, >+ MenuListOption, >+ Outline, >+ Paragraph, >+ PopUpButton, >+ Pre, >+ Presentational, >+ ProgressIndicator, >+ RadioButton, >+ RadioGroup, >+ RowHeader, >+ Row, >+ RowGroup, >+ RubyBase, >+ RubyBlock, >+ RubyInline, >+ RubyRun, >+ RubyText, >+ Ruler, >+ RulerMarker, >+ ScrollArea, >+ ScrollBar, >+ SearchField, >+ Sheet, >+ Slider, >+ SliderThumb, >+ SpinButton, >+ SpinButtonPart, >+ SplitGroup, >+ Splitter, >+ StaticText, >+ Summary, >+ Switch, >+ SystemWide, >+ SVGRoot, >+ SVGText, >+ SVGTSpan, >+ SVGTextPath, >+ TabGroup, >+ TabList, >+ TabPanel, >+ Tab, >+ Table, >+ TableHeaderContainer, >+ TextArea, >+ TextGroup, >+ Term, >+ Time, >+ Tree, >+ TreeGrid, >+ TreeItem, >+ TextField, >+ ToggleButton, >+ Toolbar, >+ Unknown, >+ UserInterfaceTooltip, >+ ValueIndicator, >+ Video, >+ WebApplication, >+ WebArea, >+ WebCoreLink, >+ Window, >+}; >+ >+class AccessibilityObjectInterface { >+public: >+ virtual ~AccessibilityObjectInterface() = default; >+ >+ virtual bool isMediaControlLabel() const = 0; >+ virtual AccessibilityRole roleValue() const = 0; >+ virtual bool isAttachment() const = 0; >+}; >+ >+} >+ >+#endif /* AccessibilityObjectInterface_h */ >Index: Source/WebCore/accessibility/mac/AXObjectCacheMac.mm >=================================================================== >--- Source/WebCore/accessibility/mac/AXObjectCacheMac.mm (revision 239718) >+++ Source/WebCore/accessibility/mac/AXObjectCacheMac.mm (working copy) >@@ -28,6 +28,7 @@ > > #if HAVE(ACCESSIBILITY) && PLATFORM(MAC) > >+#import "AXStaticTreeNode.h" > #import "AccessibilityObject.h" > #import "AccessibilityTable.h" > #import "RenderObject.h" >@@ -237,6 +238,14 @@ > obj->setWrapper(nullptr); > } > >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+void AXObjectCache::associateStaticTreeNode(AccessibilityObject* object, AXStaticTreeNode* node) >+{ >+ object->wrapper().staticTreeNode = node; >+ node->setWrapper(object->wrapper()); >+} >+#endif >+ > void AXObjectCache::attachWrapper(AccessibilityObject* obj) > { > RetainPtr<WebAccessibilityObjectWrapper> wrapper = adoptNS([[WebAccessibilityObjectWrapper alloc] initWithAccessibilityObject:obj]); >Index: Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h >=================================================================== >--- Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h (revision 239718) >+++ Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h (working copy) >@@ -31,9 +31,13 @@ > > #include "AccessibilityObject.h" > #include <CoreGraphics/CoreGraphics.h> >+#include <wtf/Variant.h> > > namespace WebCore { > class AccessibilityObject; >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+class AXStaticTreeNode; >+#endif > struct AccessibilitySearchCriteria; > class IntRect; > class FloatPoint; >@@ -44,10 +48,22 @@ > > @interface WebAccessibilityObjectWrapperBase : NSObject { > WebCore::AccessibilityObject* m_object; >+ >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ WebCore::AXStaticTreeNode* m_staticTreeNode; >+#endif > } > > - (id)initWithAccessibilityObject:(WebCore::AccessibilityObject*)axObject; >+ >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+@property (nonatomic, assign) WebCore::AXStaticTreeNode *staticTreeNode; >+#endif >+ > - (void)detach; >+ >+- (WebCore::AccessibilityObjectInterface *)axBackingObject; >+ > - (WebCore::AccessibilityObject*)accessibilityObject; > - (BOOL)updateObjectBackingStore; > >Index: Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm >=================================================================== >--- Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm (revision 239718) >+++ Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm (working copy) >@@ -32,9 +32,11 @@ > #if HAVE(ACCESSIBILITY) > > #import "AXObjectCache.h" >+#import "AXStaticTreeNode.h" > #import "AccessibilityARIAGridRow.h" > #import "AccessibilityList.h" > #import "AccessibilityListBox.h" >+#import "AccessibilityObjectInterface.h" > #import "AccessibilityRenderObject.h" > #import "AccessibilityScrollView.h" > #import "AccessibilitySpinButton.h" >@@ -274,6 +276,28 @@ > return self; > } > >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+- (void)setStaticTreeNode:(WebCore::AXStaticTreeNode*)staticTreeNode >+{ >+ m_staticTreeNode = staticTreeNode; >+} >+ >+- (WebCore::AXStaticTreeNode*)staticTreeNode >+{ >+ return m_staticTreeNode; >+} >+ >+#endif >+ >+- (BOOL)hasStaticBacking >+{ >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ return m_staticTreeNode != nullptr; >+#else >+ return NO; >+#endif >+} >+ > - (void)detach > { > m_object = nullptr; >@@ -281,6 +305,11 @@ > > - (BOOL)updateObjectBackingStore > { >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ if (m_staticTreeNode) >+ return YES; >+#endif >+ > // Calling updateBackingStore() can invalidate this element so self must be retained. > // If it does become invalidated, m_object will be nil. > CFRetain((__bridge CFTypeRef)self); >@@ -355,11 +384,21 @@ > return [NSString string]; > } > >+#define _axBackingObject self.axBackingObject >+- (WebCore::AccessibilityObjectInterface *)axBackingObject >+{ >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ return m_staticTreeNode; >+#else >+ return m_object; >+#endif >+} >+ > - (NSString *)baseAccessibilityDescription > { > // Static text objects should not have a description. Its content is communicated in its AXValue. > // One exception is the media control labels that have a value and a description. Those are set programatically. >- if (m_object->roleValue() == AccessibilityRole::StaticText && !m_object->isMediaControlLabel()) >+ if (_axBackingObject->roleValue() == AccessibilityRole::StaticText && !_axBackingObject->isMediaControlLabel()) > return [NSString string]; > > Vector<AccessibilityText> textOrder; >Index: Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm >=================================================================== >--- Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (revision 239718) >+++ Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (working copy) >@@ -412,6 +412,8 @@ > #define NSAccessibilityLinkRelationshipTypeAttribute @"AXLinkRelationshipType" > #endif > >+#define _axBackingObject self.axBackingObject >+ > extern "C" AXUIElementRef NSAccessibilityCreateAXUIElementRef(id element); > > @implementation WebAccessibilityObjectWrapper >@@ -2009,10 +2011,10 @@ > - (NSString*)role > { > ALLOW_DEPRECATED_DECLARATIONS_BEGIN >- if (m_object->isAttachment()) >+ if (_axBackingObject->isAttachment()) > return [[self attachmentView] accessibilityAttributeValue:NSAccessibilityRoleAttribute]; > ALLOW_DEPRECATED_DECLARATIONS_END >- AccessibilityRole role = m_object->roleValue(); >+ AccessibilityRole role = _axBackingObject->roleValue(); > > if (role == AccessibilityRole::Label && is<AccessibilityLabel>(*m_object) && downcast<AccessibilityLabel>(*m_object).containsOnlyStaticText()) > role = AccessibilityRole::StaticText; >@@ -2039,7 +2041,7 @@ > if (m_object->isSearchField()) > return NSAccessibilitySearchFieldSubrole; > >- if (m_object->isAttachment()) { >+ if (_axBackingObject->isAttachment()) { > NSView* attachView = [self attachmentView]; > if ([[attachView accessibilityAttributeNames] containsObject:NSAccessibilitySubroleAttribute]) > return [attachView accessibilityAttributeValue:NSAccessibilitySubroleAttribute]; >@@ -2250,7 +2252,7 @@ > > ALLOW_DEPRECATED_DECLARATIONS_BEGIN > // attachments have the AXImage role, but a different subrole >- if (m_object->isAttachment()) >+ if (_axBackingObject->isAttachment()) > return [[self attachmentView] accessibilityAttributeValue:NSAccessibilityRoleDescriptionAttribute]; > ALLOW_DEPRECATED_DECLARATIONS_END > >@@ -2607,7 +2609,7 @@ > return [NSNumber numberWithBool: m_object->isVisited()]; > > if ([attributeName isEqualToString: NSAccessibilityTitleAttribute]) { >- if (m_object->isAttachment()) { >+ if (_axBackingObject->isAttachment()) { > if ([[[self attachmentView] accessibilityAttributeNames] containsObject:NSAccessibilityTitleAttribute]) > return [[self attachmentView] accessibilityAttributeValue:NSAccessibilityTitleAttribute]; > } >@@ -2624,7 +2626,7 @@ > } > > if ([attributeName isEqualToString: NSAccessibilityDescriptionAttribute]) { >- if (m_object->isAttachment()) { >+ if (_axBackingObject->isAttachment()) { > if ([[[self attachmentView] accessibilityAttributeNames] containsObject:NSAccessibilityDescriptionAttribute]) > return [[self attachmentView] accessibilityAttributeValue:NSAccessibilityDescriptionAttribute]; > } >@@ -2632,7 +2634,7 @@ > } > > if ([attributeName isEqualToString: NSAccessibilityValueAttribute]) { >- if (m_object->isAttachment()) { >+ if (_axBackingObject->isAttachment()) { > if ([[[self attachmentView] accessibilityAttributeNames] containsObject:NSAccessibilityValueAttribute]) > return [[self attachmentView] accessibilityAttributeValue:NSAccessibilityValueAttribute]; > } >Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 239718) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,15 @@ >+2019-01-11 Chris Fleizach <cfleizach@apple.com> >+ >+ AX: Introduce a static accessibility tree >+ https://bugs.webkit.org/show_bug.cgi?id=193348 >+ <rdar://problem/47203295> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Configurations/FeatureDefines.xcconfig: >+ * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: >+ (-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]): >+ > 2019-01-07 Alex Christensen <achristensen@webkit.org> > > Remove use of NetworkProcess::singleton from CacheStorage::Engine::from >Index: Source/WebKit/Configurations/FeatureDefines.xcconfig >=================================================================== >--- Source/WebKit/Configurations/FeatureDefines.xcconfig (revision 239718) >+++ Source/WebKit/Configurations/FeatureDefines.xcconfig (working copy) >@@ -40,6 +40,8 @@ > ENABLE_ACCELERATED_OVERFLOW_SCROLLING = $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING_$(WK_COCOA_TOUCH)); > ENABLE_ACCELERATED_OVERFLOW_SCROLLING_cocoatouch = ENABLE_ACCELERATED_OVERFLOW_SCROLLING; > >+ENABLE_ACCESSIBILITY_STATIC_TREE = ; >+ > ENABLE_APPLE_PAY = $(ENABLE_APPLE_PAY_$(WK_PLATFORM_NAME)); > ENABLE_APPLE_PAY_iphoneos = ENABLE_APPLE_PAY; > ENABLE_APPLE_PAY_iphonesimulator = ENABLE_APPLE_PAY; >@@ -402,4 +404,4 @@ > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_ACCESSIBILITY_STATIC_TREE) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLKEYBOARD_ACCESS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >Index: Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm >=================================================================== >--- Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm (revision 239718) >+++ Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm (working copy) >@@ -35,6 +35,7 @@ > #import "WKString.h" > #import "WKStringCF.h" > #import <WebCore/AXObjectCache.h> >+#import <WebCore/AXStaticTreeCache.h> > #import <WebCore/Document.h> > #import <WebCore/Frame.h> > #import <WebCore/FrameView.h> >@@ -47,6 +48,18 @@ > > @implementation WKAccessibilityWebPageObjectBase > >+- (WebCore::AXObjectCache*)axObjectCache >+{ >+ WebCore::Page* page = m_page->corePage(); >+ if (!page) >+ return nil; >+ WebCore::Frame& core = page->mainFrame(); >+ if (!core.document()) >+ return nil; >+ >+ return core.document()->axObjectCache(); >+} >+ > - (id)accessibilityRootObjectWrapper > { > if (!WebCore::AXObjectCache::accessibilityEnabled()) >@@ -62,18 +75,30 @@ > WebCore::Page* page = m_page->corePage(); > if (!page) > return nil; >- >- WebCore::Frame& core = page->mainFrame(); >- if (!core.document()) >- return nil; >- >- WebCore::AXObjectCache* cache = core.document()->axObjectCache(); >+ >+ AXObjectCache* cache = [self axObjectCache]; > if (!cache) > return nil; > >+#if ENABLE(ACCESSIBILITY_STATIC_TREE) >+ AXStaticTreeNode* staticRoot = AXStaticTreeCache::rootStaticTreeNode(page); >+ if (!staticRoot) { >+ auto generateBlock = [&cache] { >+ cache->generateStaticAccessibilityTreeIfNeeded(); >+ }; >+ >+ if (RunLoop::isMain()) >+ generateBlock(); >+ else >+ dispatch_sync(dispatch_get_main_queue(), generateBlock); >+ } >+ >+ if ((staticRoot = AXStaticTreeCache::rootStaticTreeNode(page))) >+ return staticRoot->wrapper(); >+#else > if (WebCore::AccessibilityObject* root = cache->rootObject()) > return root->wrapper(); >- >+#endif > return nil; > } > >Index: Source/WebKitLegacy/mac/ChangeLog >=================================================================== >--- Source/WebKitLegacy/mac/ChangeLog (revision 239718) >+++ Source/WebKitLegacy/mac/ChangeLog (working copy) >@@ -1,3 +1,13 @@ >+2019-01-11 Chris Fleizach <cfleizach@apple.com> >+ >+ AX: Introduce a static accessibility tree >+ https://bugs.webkit.org/show_bug.cgi?id=193348 >+ <rdar://problem/47203295> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2019-01-07 David Kilzer <ddkilzer@apple.com> > > Prefer RetainPtr<NSObject> to RetainPtr<NSObject *> >Index: Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >=================================================================== >--- Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig (revision 239718) >+++ Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig (working copy) >@@ -40,6 +40,8 @@ > ENABLE_ACCELERATED_OVERFLOW_SCROLLING = $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING_$(WK_COCOA_TOUCH)); > ENABLE_ACCELERATED_OVERFLOW_SCROLLING_cocoatouch = ENABLE_ACCELERATED_OVERFLOW_SCROLLING; > >+ENABLE_ACCESSIBILITY_STATIC_TREE = ; >+ > ENABLE_APPLE_PAY = $(ENABLE_APPLE_PAY_$(WK_PLATFORM_NAME)); > ENABLE_APPLE_PAY_iphoneos = ENABLE_APPLE_PAY; > ENABLE_APPLE_PAY_iphonesimulator = ENABLE_APPLE_PAY; >@@ -402,4 +404,4 @@ > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_ACCESSIBILITY_STATIC_TREE) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLKEYBOARD_ACCESS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >Index: Source/cmake/WebKitFeatures.cmake >=================================================================== >--- Source/cmake/WebKitFeatures.cmake (revision 239718) >+++ Source/cmake/WebKitFeatures.cmake (working copy) >@@ -187,6 +187,7 @@ > WEBKIT_OPTION_DEFINE(ENABLE_SMOOTH_SCROLLING "Toggle smooth scrolling" PRIVATE ON) > WEBKIT_OPTION_DEFINE(ENABLE_SPEECH_SYNTHESIS "Toggle Speech Synthesis API support" PRIVATE OFF) > WEBKIT_OPTION_DEFINE(ENABLE_SPELLCHECK "Toggle Spellchecking support (requires Enchant)" PRIVATE OFF) >+ WEBKIT_OPTION_DEFINE(ENABLE_ACCESSIBILITY_STATIC_TREE "Toggle static accessibility tree support" PRIVATE OFF) > WEBKIT_OPTION_DEFINE(ENABLE_STREAMS_API "Toggle Streams API support" PRIVATE ON) > WEBKIT_OPTION_DEFINE(ENABLE_SVG_FONTS "Toggle SVG Fonts support" PRIVATE ON) > WEBKIT_OPTION_DEFINE(ENABLE_TELEPHONE_NUMBER_DETECTION "Toggle telephone number detection support" PRIVATE OFF) >Index: Tools/ChangeLog >=================================================================== >--- Tools/ChangeLog (revision 239861) >+++ Tools/ChangeLog (working copy) >@@ -1,3 +1,13 @@ >+2019-01-11 Chris Fleizach <cfleizach@apple.com> >+ >+ AX: Introduce a static accessibility tree >+ https://bugs.webkit.org/show_bug.cgi?id=193348 >+ <rdar://problem/47203295> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: >+ > 2019-01-10 Ryan Haddad <ryanhaddad@apple.com> > > Unreviewed, fix typo that breaks dashboard link. >Index: Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >=================================================================== >--- Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig (revision 239718) >+++ Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig (working copy) >@@ -40,6 +40,8 @@ > ENABLE_ACCELERATED_OVERFLOW_SCROLLING = $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING_$(WK_COCOA_TOUCH)); > ENABLE_ACCELERATED_OVERFLOW_SCROLLING_cocoatouch = ENABLE_ACCELERATED_OVERFLOW_SCROLLING; > >+ENABLE_ACCESSIBILITY_STATIC_TREE = ; >+ > ENABLE_APPLE_PAY = $(ENABLE_APPLE_PAY_$(WK_PLATFORM_NAME)); > ENABLE_APPLE_PAY_iphoneos = ENABLE_APPLE_PAY; > ENABLE_APPLE_PAY_iphonesimulator = ENABLE_APPLE_PAY; >@@ -402,4 +404,4 @@ > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_ACCESSIBILITY_STATIC_TREE) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_PAINTING_API) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS_TYPED_OM) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_CSS_CONIC_GRADIENTS) $(ENABLE_DARK_MODE_CSS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLKEYBOARD_ACCESS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_LOAD_STATISTICS) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_WEB_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WEBMETAL) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193348
:
358884
|
358885
|
358886
|
358896
|
358899
|
358900
|
359627
|
359628
|
359629
|
359634
|
359635
|
359637
|
359768
|
359863
|
359864
|
359879
|
359896
|
360093
|
360097
|
360161
|
360262
|
360263
|
360271