WebKit Bugzilla
Attachment 346283 Details for
Bug 184676
: AX: AOM: Add ARIA IDL Attribute Reflection
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
patch.txt (text/plain), 42.00 KB, created by
Nan Wang
on 2018-08-01 11:20:29 PDT
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Nan Wang
Created:
2018-08-01 11:20:29 PDT
Size:
42.00 KB
patch
obsolete
>Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 234401) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,23 @@ >+2018-08-01 Nan Wang <n_wang@apple.com> >+ >+ AX: AOM: Add ARIA IDL Attribute Reflection >+ https://bugs.webkit.org/show_bug.cgi?id=184676 >+ <rdar://problem/39476882> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Test: accessibility/ARIA-reflection.html >+ >+ * CMakeLists.txt: >+ * DerivedSources.make: >+ * WebCore.xcodeproj/project.pbxproj: >+ * accessibility/AccessibilityRole.idl: Added. >+ * accessibility/AriaAttributes.idl: Added. >+ * dom/Element.idl: >+ * page/RuntimeEnabledFeatures.h: >+ (WebCore::RuntimeEnabledFeatures::setAriaReflectionEnabled): >+ (WebCore::RuntimeEnabledFeatures::ariaReflectionEnabled const): >+ > 2018-07-30 Simon Fraser <simon.fraser@apple.com> > > Shrink GraphicsLayerCA >Index: Source/WebCore/CMakeLists.txt >=================================================================== >--- Source/WebCore/CMakeLists.txt (revision 234382) >+++ Source/WebCore/CMakeLists.txt (working copy) >@@ -439,7 +439,9 @@ set(WebCore_NON_SVG_IDL_FILES > Modules/webvr/VRPose.idl > Modules/webvr/VRStageParameters.idl > >+ accessibility/AccessibilityRole.idl > accessibility/AccessibleSetValueEvent.idl >+ accessibility/AriaAttributes.idl > > animation/Animatable.idl > animation/AnimationEffectReadOnly.idl >Index: Source/WebCore/DerivedSources.make >=================================================================== >--- Source/WebCore/DerivedSources.make (revision 234382) >+++ Source/WebCore/DerivedSources.make (working copy) >@@ -360,7 +360,9 @@ JS_BINDING_IDLS = \ > $(WebCore)/Modules/webvr/VRLayerInit.idl \ > $(WebCore)/Modules/webvr/VRPose.idl \ > $(WebCore)/Modules/webvr/VRStageParameters.idl \ >+ $(WebCore)/accessibility/AccessibilityRole.idl \ > $(WebCore)/accessibility/AccessibleSetValueEvent.idl \ >+ $(WebCore)/accessibility/AriaAttributes.idl \ > $(WebCore)/animation/Animatable.idl \ > $(WebCore)/animation/AnimationEffectReadOnly.idl \ > $(WebCore)/animation/AnimationEffectTiming.idl \ >Index: Source/WebCore/WebCore.xcodeproj/project.pbxproj >=================================================================== >--- Source/WebCore/WebCore.xcodeproj/project.pbxproj (revision 234382) >+++ Source/WebCore/WebCore.xcodeproj/project.pbxproj (working copy) >@@ -11750,6 +11750,8 @@ > A9D248030D757E7D00FDF959 /* JSDOMMimeType.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSDOMMimeType.h; sourceTree = "<group>"; }; > A9D248040D757E7D00FDF959 /* JSDOMMimeTypeArray.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMMimeTypeArray.cpp; sourceTree = "<group>"; }; > A9D248050D757E7D00FDF959 /* JSDOMMimeTypeArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSDOMMimeTypeArray.h; sourceTree = "<group>"; }; >+ A9EE448C210FC9AD00B6EAE6 /* AriaAttributes.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AriaAttributes.idl; sourceTree = "<group>"; }; >+ A9EE448F210FD69A00B6EAE6 /* AccessibilityRole.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = AccessibilityRole.idl; sourceTree = "<group>"; }; > A9F2E0E720475CDC00512855 /* AccessibleSetValueEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibleSetValueEvent.cpp; sourceTree = "<group>"; }; > A9F2E0E820475CDC00512855 /* AccessibleSetValueEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibleSetValueEvent.h; sourceTree = "<group>"; }; > A9F2E0E920475CDE00512855 /* AccessibleSetValueEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AccessibleSetValueEvent.idl; sourceTree = "<group>"; }; >@@ -16556,6 +16558,8 @@ > A9F2E0E720475CDC00512855 /* AccessibleSetValueEvent.cpp */, > A9F2E0E820475CDC00512855 /* AccessibleSetValueEvent.h */, > A9F2E0E920475CDE00512855 /* AccessibleSetValueEvent.idl */, >+ A9EE448F210FD69A00B6EAE6 /* AccessibilityRole.idl */, >+ A9EE448C210FC9AD00B6EAE6 /* AriaAttributes.idl */, > 2981CAAF131822EC00D12F2A /* AXObjectCache.cpp */, > 29A8121A0FBB9C1D00510293 /* AXObjectCache.h */, > 91C9F2F81AE3BE240095B61C /* AXTextStateChangeIntent.h */, >Index: Source/WebCore/accessibility/AccessibilityRole.idl >=================================================================== >--- Source/WebCore/accessibility/AccessibilityRole.idl (nonexistent) >+++ Source/WebCore/accessibility/AccessibilityRole.idl (working copy) >@@ -0,0 +1,31 @@ >+/* >+ * Copyright (C) 2018 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. >+ */ >+ >+[ >+ EnabledAtRuntime=AriaReflection, >+ NoInterfaceObject, >+] interface AccessibilityRole { >+ [Reflect] attribute DOMString? role; >+}; >Index: Source/WebCore/accessibility/AriaAttributes.idl >=================================================================== >--- Source/WebCore/accessibility/AriaAttributes.idl (nonexistent) >+++ Source/WebCore/accessibility/AriaAttributes.idl (working copy) >@@ -0,0 +1,76 @@ >+/* >+ * Copyright (C) 2018 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. >+ */ >+ >+[ >+ EnabledAtRuntime=AriaReflection, >+ NoInterfaceObject, >+] interface AriaAttributes { >+ [Reflect=aria_activedescendant] attribute DOMString? ariaActiveDescendant; >+ [Reflect=aria_atomic] attribute DOMString? ariaAtomic; >+ [Reflect=aria_autocomplete] attribute DOMString? ariaAutoComplete; >+ [Reflect=aria_busy] attribute DOMString? ariaBusy; >+ [Reflect=aria_checked] attribute DOMString? ariaChecked; >+ [Reflect=aria_colcount] attribute DOMString? ariaColCount; >+ [Reflect=aria_colindex] attribute DOMString? ariaColIndex; >+ [Reflect=aria_colspan] attribute DOMString? ariaColSpan; >+ [Reflect=aria_controls] attribute DOMString? ariaControls; >+ [Reflect=aria_current] attribute DOMString? ariaCurrent; >+ [Reflect=aria_describedby] attribute DOMString? ariaDescribedBy; >+ [Reflect=aria_details] attribute DOMString? ariaDetails; >+ [Reflect=aria_disabled] attribute DOMString? ariaDisabled; >+ [Reflect=aria_errormessage] attribute DOMString? ariaErrorMessage; >+ [Reflect=aria_expanded] attribute DOMString? ariaExpanded; >+ [Reflect=aria_flowto] attribute DOMString? ariaFlowTo; >+ [Reflect=aria_haspopup] attribute DOMString? ariaHasPopup; >+ [Reflect=aria_hidden] attribute DOMString? ariaHidden; >+ [Reflect=aria_invalid] attribute DOMString? ariaInvalid; >+ [Reflect=aria_keyshortcuts] attribute DOMString? ariaKeyShortcuts; >+ [Reflect=aria_label] attribute DOMString? ariaLabel; >+ [Reflect=aria_labelledby] attribute DOMString? ariaLabelledBy; >+ [Reflect=aria_level] attribute DOMString? ariaLevel; >+ [Reflect=aria_live] attribute DOMString? ariaLive; >+ [Reflect=aria_modal] attribute DOMString? ariaModal; >+ [Reflect=aria_multiline] attribute DOMString? ariaMultiLine; >+ [Reflect=aria_multiselectable] attribute DOMString? ariaMultiSelectable; >+ [Reflect=aria_orientation] attribute DOMString? ariaOrientation; >+ [Reflect=aria_owns] attribute DOMString? ariaOwns; >+ [Reflect=aria_placeholder] attribute DOMString? ariaPlaceholder; >+ [Reflect=aria_posinset] attribute DOMString? ariaPosInSet; >+ [Reflect=aria_pressed] attribute DOMString? ariaPressed; >+ [Reflect=aria_readonly] attribute DOMString? ariaReadOnly; >+ [Reflect=aria_relevant] attribute DOMString? ariaRelevant; >+ [Reflect=aria_required] attribute DOMString? ariaRequired; >+ [Reflect=aria_roledescription] attribute DOMString? ariaRoleDescription; >+ [Reflect=aria_rowcount] attribute DOMString? ariaRowCount; >+ [Reflect=aria_rowindex] attribute DOMString? ariaRowIndex; >+ [Reflect=aria_rowspan] attribute DOMString? ariaRowSpan; >+ [Reflect=aria_selected] attribute DOMString? ariaSelected; >+ [Reflect=aria_setsize] attribute DOMString? ariaSetSize; >+ [Reflect=aria_sort] attribute DOMString? ariaSort; >+ [Reflect=aria_valuemax] attribute DOMString? ariaValueMax; >+ [Reflect=aria_valuemin] attribute DOMString? ariaValueMin; >+ [Reflect=aria_valuenow] attribute DOMString? ariaValueNow; >+ [Reflect=aria_valuetext] attribute DOMString? ariaValueText; >+}; >Index: Source/WebCore/dom/Element.idl >=================================================================== >--- Source/WebCore/dom/Element.idl (revision 234382) >+++ Source/WebCore/dom/Element.idl (working copy) >@@ -158,6 +158,8 @@ dictionary ShadowRootInit { > required ShadowRootMode mode; > }; > >+Element implements AccessibilityRole; >+Element implements AriaAttributes; > Element implements Animatable; > Element implements ChildNode; > Element implements DocumentAndElementEventHandlers; >Index: Source/WebCore/page/RuntimeEnabledFeatures.h >=================================================================== >--- Source/WebCore/page/RuntimeEnabledFeatures.h (revision 234382) >+++ Source/WebCore/page/RuntimeEnabledFeatures.h (working copy) >@@ -243,6 +243,9 @@ public: > > void setAccessibilityObjectModelEnabled(bool isEnabled) { m_accessibilityObjectModelEnabled = isEnabled; } > bool accessibilityObjectModelEnabled() const { return m_accessibilityObjectModelEnabled; } >+ >+ void setAriaReflectionEnabled(bool isEnabled) { m_ariaReflectionEnabled = isEnabled; } >+ bool ariaReflectionEnabled() const { return m_ariaReflectionEnabled; } > > void setMediaCapabilitiesEnabled(bool isEnabled) { m_mediaCapabilitiesEnabled = isEnabled; } > bool mediaCapabilitiesEnabled() const { return m_mediaCapabilitiesEnabled; } >@@ -402,6 +405,7 @@ private: > bool m_inspectorAdditionsEnabled { false }; > bool m_webVREnabled { false }; > bool m_accessibilityObjectModelEnabled { false }; >+ bool m_ariaReflectionEnabled { true }; > bool m_mediaCapabilitiesEnabled { false }; > bool m_resourceLoadStatisticsDebugMode { false }; > bool m_isRestrictedHTTPResponseAccess { true }; >Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 234382) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,21 @@ >+2018-08-01 Nan Wang <n_wang@apple.com> >+ >+ AX: AOM: Add ARIA IDL Attribute Reflection >+ https://bugs.webkit.org/show_bug.cgi?id=184676 >+ <rdar://problem/39476882> >+ >+ Added ARIA property string reflection on Element, behind >+ a new runtime flag. >+ Spec: https://w3c.github.io/aria/#idl-interface >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Shared/WebPreferences.yaml: >+ * UIProcess/API/C/WKPreferences.cpp: >+ (WKPreferencesSetAriaReflectionEnabled): >+ (WKPreferencesGetAriaReflectionEnabled): >+ * UIProcess/API/C/WKPreferencesRefPrivate.h: >+ > 2018-07-30 Devin Rousso <webkit@devinrousso.com> > > Add missing CoreGraphics SPI >Index: Source/WebKit/Shared/WebPreferences.yaml >=================================================================== >--- Source/WebKit/Shared/WebPreferences.yaml (revision 234382) >+++ Source/WebKit/Shared/WebPreferences.yaml (working copy) >@@ -1231,6 +1231,11 @@ AccessibilityObjectModelEnabled: > category: experimental > webcoreBinding: RuntimeEnabledFeatures > >+AriaReflectionEnabled: >+ type: bool >+ defaultValue: true >+ webcoreBinding: RuntimeEnabledFeatures >+ > WebVREnabled: > type: bool > defaultValue: DEFAULT_EXPERIMENTAL_FEATURES_ENABLED >Index: Source/WebKit/UIProcess/API/C/WKPreferences.cpp >=================================================================== >--- Source/WebKit/UIProcess/API/C/WKPreferences.cpp (revision 234382) >+++ Source/WebKit/UIProcess/API/C/WKPreferences.cpp (working copy) >@@ -1958,6 +1958,16 @@ bool WKPreferencesGetAccessibilityObject > return toImpl(preferencesRef)->accessibilityObjectModelEnabled(); > } > >+void WKPreferencesSetAriaReflectionEnabled(WKPreferencesRef preferencesRef, bool flag) >+{ >+ toImpl(preferencesRef)->setAriaReflectionEnabled(flag); >+} >+ >+bool WKPreferencesGetAriaReflectionEnabled(WKPreferencesRef preferencesRef) >+{ >+ return toImpl(preferencesRef)->ariaReflectionEnabled(); >+} >+ > void WKPreferencesSetShouldAllowUserInstalledFonts(WKPreferencesRef preferencesRef, bool flag) > { > toImpl(preferencesRef)->setShouldAllowUserInstalledFonts(flag); >Index: Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h >=================================================================== >--- Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h (revision 234382) >+++ Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h (working copy) >@@ -557,6 +557,10 @@ WK_EXPORT bool WKPreferencesGetStorageAc > WK_EXPORT void WKPreferencesSetAccessibilityObjectModelEnabled(WKPreferencesRef, bool flag); > WK_EXPORT bool WKPreferencesGetAccessibilityObjectModelEnabled(WKPreferencesRef); > >+// Defaults to true >+WK_EXPORT void WKPreferencesSetAriaReflectionEnabled(WKPreferencesRef, bool flag); >+WK_EXPORT bool WKPreferencesGetAriaReflectionEnabled(WKPreferencesRef); >+ > // Defaults to false. > WK_EXPORT void WKPreferencesSetShouldAllowUserInstalledFonts(WKPreferencesRef, bool flag); > WK_EXPORT bool WKPreferencesGetShouldAllowUserInstalledFonts(WKPreferencesRef); >Index: Source/WebKitLegacy/mac/ChangeLog >=================================================================== >--- Source/WebKitLegacy/mac/ChangeLog (revision 234382) >+++ Source/WebKitLegacy/mac/ChangeLog (working copy) >@@ -1,3 +1,20 @@ >+2018-08-01 Nan Wang <n_wang@apple.com> >+ >+ AX: AOM: Add ARIA IDL Attribute Reflection >+ https://bugs.webkit.org/show_bug.cgi?id=184676 >+ <rdar://problem/39476882> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebView/WebPreferenceKeysPrivate.h: >+ * WebView/WebPreferences.mm: >+ (+[WebPreferences initialize]): >+ (-[WebPreferences ariaReflectionEnabled]): >+ (-[WebPreferences setAriaReflectionEnabled:]): >+ * WebView/WebPreferencesPrivate.h: >+ * WebView/WebView.mm: >+ (-[WebView _preferencesChanged:]): >+ > 2018-07-30 Rob Buis <rbuis@igalia.com> > > Merge PlatformCookieJar functions into NetworkStorageSession >Index: Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h >=================================================================== >--- Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (revision 234382) >+++ Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (working copy) >@@ -258,5 +258,6 @@ > #define WebKitAllowMediaContentTypesRequiringHardwareSupportAsFallbackKey @"WebKitAllowMediaContentTypesRequiringHardwareSupportAsFallback" > #define WebKitInspectorAdditionsEnabledPreferenceKey @"WebKitInspectorAdditionsEnabled" > #define WebKitAccessibilityObjectModelEnabledPreferenceKey @"WebKitAccessibilityObjectModelEnabled" >+#define WebKitAriaReflectionEnabledPreferenceKey @"WebKitAriaReflectionEnabled" > #define WebKitMediaCapabilitiesEnabledPreferenceKey @"WebKitMediaCapabilitiesEnabled" > #define WebKitServerTimingEnabledPreferenceKey @"WebKitServerTimingEnabled" >Index: Source/WebKitLegacy/mac/WebView/WebPreferences.mm >=================================================================== >--- Source/WebKitLegacy/mac/WebView/WebPreferences.mm (revision 234382) >+++ Source/WebKitLegacy/mac/WebView/WebPreferences.mm (working copy) >@@ -682,6 +682,7 @@ + (void)initialize > @NO, WebKitInspectorAdditionsEnabledPreferenceKey, > (NSString *)Settings::defaultMediaContentTypesRequiringHardwareSupport(), WebKitMediaContentTypesRequiringHardwareSupportPreferenceKey, > @NO, WebKitAccessibilityObjectModelEnabledPreferenceKey, >+ @YES, WebKitAriaReflectionEnabledPreferenceKey, > @NO, WebKitMediaCapabilitiesEnabledPreferenceKey, > @NO, WebKitFetchAPIKeepAliveEnabledPreferenceKey, > @NO, WebKitServerTimingEnabledPreferenceKey, >@@ -3323,6 +3324,16 @@ - (void)setAccessibilityObjectModelEnabl > [self _setBoolValue:flag forKey:WebKitAccessibilityObjectModelEnabledPreferenceKey]; > } > >+- (BOOL)ariaReflectionEnabled >+{ >+ return [self _boolValueForKey:WebKitAriaReflectionEnabledPreferenceKey]; >+} >+ >+- (void)setAriaReflectionEnabled:(BOOL)flag >+{ >+ [self _setBoolValue:flag forKey:WebKitAriaReflectionEnabledPreferenceKey]; >+} >+ > - (BOOL)mediaCapabilitiesEnabled > { > return [self _boolValueForKey:WebKitMediaCapabilitiesEnabledPreferenceKey]; >Index: Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h >=================================================================== >--- Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (revision 234382) >+++ Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (working copy) >@@ -608,6 +608,7 @@ @interface WebPreferences (WebPrivate) > @property (nonatomic) BOOL inspectorAdditionsEnabled; > @property (nonatomic) BOOL allowMediaContentTypesRequiringHardwareSupportAsFallback; > @property (nonatomic) BOOL accessibilityObjectModelEnabled; >+@property (nonatomic) BOOL ariaReflectionEnabled; > @property (nonatomic) BOOL mediaCapabilitiesEnabled; > @property (nonatomic) BOOL allowCrossOriginSubresourcesToAskForCredentials; > >Index: Source/WebKitLegacy/mac/WebView/WebView.mm >=================================================================== >--- Source/WebKitLegacy/mac/WebView/WebView.mm (revision 234382) >+++ Source/WebKitLegacy/mac/WebView/WebView.mm (working copy) >@@ -3125,6 +3125,7 @@ - (void)_preferencesChanged:(WebPreferen > RuntimeEnabledFeatures::sharedFeatures().setDirectoryUploadEnabled([preferences directoryUploadEnabled]); > RuntimeEnabledFeatures::sharedFeatures().setMenuItemElementEnabled([preferences menuItemElementEnabled]); > RuntimeEnabledFeatures::sharedFeatures().setAccessibilityObjectModelEnabled([preferences accessibilityObjectModelEnabled]); >+ RuntimeEnabledFeatures::sharedFeatures().setAriaReflectionEnabled([preferences ariaReflectionEnabled]); > RuntimeEnabledFeatures::sharedFeatures().setMediaCapabilitiesEnabled([preferences mediaCapabilitiesEnabled]); > RuntimeEnabledFeatures::sharedFeatures().setFetchAPIKeepAliveEnabled([preferences fetchAPIKeepAliveEnabled]); > >Index: Tools/ChangeLog >=================================================================== >--- Tools/ChangeLog (revision 234465) >+++ Tools/ChangeLog (working copy) >@@ -1,3 +1,16 @@ >+2018-08-01 Nan Wang <n_wang@apple.com> >+ >+ AX: AOM: Add ARIA IDL Attribute Reflection >+ https://bugs.webkit.org/show_bug.cgi?id=184676 >+ <rdar://problem/39476882> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * DumpRenderTree/mac/DumpRenderTree.mm: >+ (enableExperimentalFeatures): >+ * WebKitTestRunner/TestController.cpp: >+ (WTR::TestController::resetPreferencesToConsistentValues): >+ > 2018-08-01 Commit Queue <commit-queue@webkit.org> > > Unreviewed, rolling out r234443 and r234445. >Index: Tools/DumpRenderTree/mac/DumpRenderTree.mm >=================================================================== >--- Tools/DumpRenderTree/mac/DumpRenderTree.mm (revision 234382) >+++ Tools/DumpRenderTree/mac/DumpRenderTree.mm (working copy) >@@ -862,6 +862,7 @@ static void enableExperimentalFeatures(W > [preferences setWritableStreamAPIEnabled:YES]; > preferences.encryptedMediaAPIEnabled = YES; > [preferences setAccessibilityObjectModelEnabled:YES]; >+ [preferences setAriaReflectionEnabled:YES]; > [preferences setVisualViewportAPIEnabled:YES]; > [preferences setColorFilterEnabled:YES]; > [preferences setCrossOriginWindowPolicySupportEnabled:YES]; >Index: Tools/WebKitTestRunner/TestController.cpp >=================================================================== >--- Tools/WebKitTestRunner/TestController.cpp (revision 234382) >+++ Tools/WebKitTestRunner/TestController.cpp (working copy) >@@ -772,6 +772,7 @@ void TestController::resetPreferencesToC > WKPreferencesSetStorageAccessAPIEnabled(preferences, true); > > WKPreferencesSetAccessibilityObjectModelEnabled(preferences, true); >+ WKPreferencesSetAriaReflectionEnabled(preferences, true); > WKPreferencesSetMediaCapabilitiesEnabled(preferences, true); > > WKPreferencesSetCrossOriginWindowPolicyEnabled(preferences, true); >Index: LayoutTests/ChangeLog >=================================================================== >--- LayoutTests/ChangeLog (revision 234382) >+++ LayoutTests/ChangeLog (working copy) >@@ -1,3 +1,16 @@ >+2018-08-01 Nan Wang <n_wang@apple.com> >+ >+ AX: AOM: Add ARIA IDL Attribute Reflection >+ https://bugs.webkit.org/show_bug.cgi?id=184676 >+ <rdar://problem/39476882> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * accessibility/ARIA-reflection-expected.txt: Added. >+ * accessibility/ARIA-reflection.html: Added. >+ * js/dom/dom-static-property-for-in-iteration.html: >+ * platform/win/TestExpectations: >+ > 2018-07-30 Justin Fan <justin_fan@apple.com> > > [WebGL2] Support compilation of GLSL ES version 300 shaders >Index: LayoutTests/accessibility/ARIA-reflection-expected.txt >=================================================================== >--- LayoutTests/accessibility/ARIA-reflection-expected.txt (nonexistent) >+++ LayoutTests/accessibility/ARIA-reflection-expected.txt (working copy) >@@ -0,0 +1,388 @@ >+This tests ARIA IDL Attribute Reflection. >+ >+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". >+ >+ >+ >+Test role < - > role >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["role"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("role", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaActiveDescendant < - > aria-activedescendant >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaActiveDescendant"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-activedescendant", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaAtomic < - > aria-atomic >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaAtomic"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-atomic", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaAutoComplete < - > aria-autocomplete >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaAutoComplete"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-autocomplete", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaBusy < - > aria-busy >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaBusy"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-busy", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaChecked < - > aria-checked >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaChecked"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-checked", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaColCount < - > aria-colcount >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaColCount"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-colcount", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaColIndex < - > aria-colindex >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaColIndex"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-colindex", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaColSpan < - > aria-colspan >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaColSpan"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-colspan", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaControls < - > aria-controls >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaControls"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-controls", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaCurrent < - > aria-current >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaCurrent"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-current", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaDescribedBy < - > aria-describedby >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaDescribedBy"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-describedby", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaDetails < - > aria-details >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaDetails"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-details", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaDisabled < - > aria-disabled >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaDisabled"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-disabled", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaErrorMessage < - > aria-errormessage >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaErrorMessage"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-errormessage", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaExpanded < - > aria-expanded >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaExpanded"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-expanded", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaFlowTo < - > aria-flowto >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaFlowTo"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-flowto", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaHasPopup < - > aria-haspopup >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaHasPopup"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-haspopup", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaHidden < - > aria-hidden >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaHidden"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-hidden", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaInvalid < - > aria-invalid >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaInvalid"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-invalid", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaKeyShortcuts < - > aria-keyshortcuts >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaKeyShortcuts"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-keyshortcuts", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaLabel < - > aria-label >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaLabel"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-label", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaLabelledBy < - > aria-labelledby >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaLabelledBy"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-labelledby", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaLevel < - > aria-level >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaLevel"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-level", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaLive < - > aria-live >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaLive"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-live", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaModal < - > aria-modal >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaModal"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-modal", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaMultiLine < - > aria-multiline >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaMultiLine"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-multiline", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaMultiSelectable < - > aria-multiselectable >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaMultiSelectable"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-multiselectable", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaOrientation < - > aria-orientation >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaOrientation"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-orientation", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaOwns < - > aria-owns >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaOwns"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-owns", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaPlaceholder < - > aria-placeholder >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaPlaceholder"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-placeholder", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaPosInSet < - > aria-posinset >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaPosInSet"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-posinset", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaPressed < - > aria-pressed >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaPressed"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-pressed", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaReadOnly < - > aria-readonly >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaReadOnly"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-readonly", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaRelevant < - > aria-relevant >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaRelevant"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-relevant", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaRequired < - > aria-required >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaRequired"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-required", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaRoleDescription < - > aria-roledescription >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaRoleDescription"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-roledescription", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaRowCount < - > aria-rowcount >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaRowCount"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-rowcount", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaRowIndex < - > aria-rowindex >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaRowIndex"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-rowindex", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaRowSpan < - > aria-rowspan >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaRowSpan"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-rowspan", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaSelected < - > aria-selected >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaSelected"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-selected", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaSetSize < - > aria-setsize >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaSetSize"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-setsize", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaSort < - > aria-sort >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaSort"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-sort", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaValueMax < - > aria-valuemax >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaValueMax"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-valuemax", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaValueMin < - > aria-valuemin >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaValueMin"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-valuemin", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaValueNow < - > aria-valuenow >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaValueNow"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-valuenow", otherData); >+PASS element[currentProperty] is otherData >+ >+Test ariaValueText < - > aria-valuetext >+PASS element[currentProperty] is null >+PASS element.getAttribute(currentAttribute) is null >+element["ariaValueText"] = data; >+PASS element.getAttribute(currentAttribute) is data >+element.setAttribute("aria-valuetext", otherData); >+PASS element[currentProperty] is otherData >+ >+ >+PASS count is 46 >+PASS successfullyParsed is true >+ >+TEST COMPLETE >+ >Index: LayoutTests/accessibility/ARIA-reflection.html >=================================================================== >--- LayoutTests/accessibility/ARIA-reflection.html (nonexistent) >+++ LayoutTests/accessibility/ARIA-reflection.html (working copy) >@@ -0,0 +1,72 @@ >+<!DOCTYPE html> >+<html> >+<body id="body"> >+<script src="../resources/js-test-pre.js"></script> >+<div id="content"> >+ >+<div id="test" data="some data"> >+ >+</div> >+ >+<p id="description"></p> >+<div id="console"></div> >+ >+<script> >+ >+ description("This tests ARIA IDL Attribute Reflection."); >+ >+ var element = document.getElementById("test"); >+ var data = element.getAttribute("data"); >+ var otherData = "other data"; >+ var currentProperty; >+ var currentAttribute; >+ >+ function testElement() { >+ currentAttribute = currentProperty.replace("aria", "aria-").toLowerCase(); >+ >+ debug("\nTest " + currentProperty + " < - > " + currentAttribute); >+ shouldBeNull("element[currentProperty]"); >+ shouldBeNull("element.getAttribute(currentAttribute)"); >+ >+ // Set the property value >+ debug("element[\"" + currentProperty + "\"] = data;"); >+ element[currentProperty] = data; >+ shouldBe("element.getAttribute(currentAttribute)", "data"); >+ >+ // Set the attribute value >+ debug("element.setAttribute(\"" + currentAttribute + "\", otherData);"); >+ element.setAttribute(currentAttribute, otherData); >+ shouldBe("element[currentProperty]", "otherData"); >+ } >+ >+ function testRole() { >+ currentProperty = "role"; >+ testElement(); >+ } >+ >+ if (window.accessibilityController) { >+ >+ testRole(); >+ >+ // There are 46 ARIA attributes in total. >+ var count = 0; >+ for (var propertyName in element) { >+ if (propertyName.startsWith("aria")) { >+ currentProperty = propertyName; >+ testElement(); >+ count++; >+ } >+ } >+ >+ debug("\n"); >+ shouldBe("count", "46"); >+ >+ } else { >+ testFailed("Could not load accessibility controller"); >+ } >+ >+</script> >+ >+<script src="../resources/js-test-post.js"></script> >+</body> >+</html> >Index: LayoutTests/js/dom/dom-static-property-for-in-iteration.html >=================================================================== >--- LayoutTests/js/dom/dom-static-property-for-in-iteration.html (revision 234382) >+++ LayoutTests/js/dom/dom-static-property-for-in-iteration.html (working copy) >@@ -27,6 +27,9 @@ > continue; > if (i === "href" || i === "pathname" || i === "baseURI") > continue; >+ // ARIA attributes are tested in another test. >+ if (i === "role" || i.startsWith("aria")) >+ continue; > realShouldBe(expected, "a[\"" + i + "\"]", actual); > } > } >Index: LayoutTests/platform/win/TestExpectations >=================================================================== >--- LayoutTests/platform/win/TestExpectations (revision 234382) >+++ LayoutTests/platform/win/TestExpectations (working copy) >@@ -1715,6 +1715,8 @@ webkit.org/b/138566 accessibility/aria-m > # Text marker tests are not supported > webkit.org/b/153292 accessibility/text-marker [ Skip ] > >+webkit.org/b/184676 accessibility/ARIA-reflection.html [ Skip ] >+ > ################################################################################ > ####################### End Accessibility Issues ########################### > ################################################################################
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
Flags:
cfleizach
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 184676
:
346133
|
346139
|
346144
| 346283