Changeset 53644 in webkit
- Timestamp:
- Jan 21, 2010 1:31:39 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r53643 r53644 1 2010-01-21 Beth Dakin <bdakin@apple.com> 2 3 Reviewed by Oliver Hunt. 4 5 Test for https://bugs.webkit.org/show_bug.cgi?id=33923 REGRESSION 6 (Safari 4): AXValueChanged no longer sent for text area scrollbars 7 -and corresponding- 8 <rdar://problem/6942686> 9 10 * platform/mac/accessibility/change-notification-on-scroll-expected.txt: Added. 11 * platform/mac/accessibility/change-notification-on-scroll.html: Added. 12 1 13 2010-01-21 Simon Fraser <simon.fraser@apple.com> 2 14 -
trunk/WebCore/ChangeLog
r53641 r53644 1 2010-01-21 Beth Dakin <bdakin@apple.com> 2 3 Reviewed by Oliver Hunt. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=33923 REGRESSION 6 (Safari 4): AXValueChanged no longer sent for text area scrollbars 7 -and corresponding- 8 <rdar://problem/6942686> 9 10 New class AccessibilityScrollbar inherits directly from 11 AccessibilityObject. 12 * accessibility/AccessibilityScrollbar.cpp: Added. 13 (WebCore::AccessibilityScrollbar::AccessibilityScrollbar): 14 (WebCore::AccessibilityScrollbar::create): 15 (WebCore::AccessibilityScrollbar::valueForRange): 16 * accessibility/AccessibilityScrollbar.h: Added. 17 (WebCore::AccessibilityScrollbar::setScrollbar): 18 (WebCore::AccessibilityScrollbar::roleValue): 19 (WebCore::AccessibilityScrollbar::accessibilityIsIgnored): 20 (WebCore::AccessibilityScrollbar::size): 21 (WebCore::AccessibilityScrollbar::elementRect): 22 (WebCore::AccessibilityScrollbar::parentObject): 23 24 AXObjectCache::getOrCreate() now has a case for ScrollBarRole, 25 which will create a new AccessibilityScrollbar. I also added a new 26 version of postNotification() that does not require a renderer. The 27 old postNotification() calls the new one. 28 * accessibility/AXObjectCache.cpp: 29 (WebCore::AXObjectCache::getOrCreate): 30 (WebCore::AXObjectCache::postNotification): 31 * accessibility/AXObjectCache.h: 32 33 When AX is enabled, getOrCreate an AccessibilityScrollbar and send 34 a notification. 35 * platform/Scrollbar.cpp: 36 (WebCore::Scrollbar::scroll): 37 38 Fix project files. 39 * GNUmakefile.am: 40 * WebCore.vcproj/WebCore.vcproj: 41 * WebCore.xcodeproj/project.pbxproj: 42 * WebCoreSources.bkl: 43 1 44 2010-01-21 Eric Uhrhane <ericu@chromium.org> 2 45 -
trunk/WebCore/GNUmakefile.am
r53621 r53644 329 329 WebCore/accessibility/AccessibilityRenderObject.cpp \ 330 330 WebCore/accessibility/AccessibilityRenderObject.h \ 331 WebCore/accessibility/AccessibilityScrollbar.cpp \ 332 WebCore/accessibility/AccessibilityScrollbar.h \ 331 333 WebCore/accessibility/AccessibilitySlider.cpp \ 332 334 WebCore/accessibility/AccessibilitySlider.h \ -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r53628 r53644 20130 20130 </File> 20131 20131 <File 20132 RelativePath="..\accessibility\AccessibilityScrollbar.cpp" 20133 > 20134 <FileConfiguration 20135 Name="Debug|Win32" 20136 ExcludedFromBuild="true" 20137 > 20138 <Tool 20139 Name="VCCLCompilerTool" 20140 /> 20141 </FileConfiguration> 20142 <FileConfiguration 20143 Name="Release|Win32" 20144 ExcludedFromBuild="true" 20145 > 20146 <Tool 20147 Name="VCCLCompilerTool" 20148 /> 20149 </FileConfiguration> 20150 <FileConfiguration 20151 Name="Debug_Internal|Win32" 20152 ExcludedFromBuild="true" 20153 > 20154 <Tool 20155 Name="VCCLCompilerTool" 20156 /> 20157 </FileConfiguration> 20158 <FileConfiguration 20159 Name="Debug_Cairo|Win32" 20160 ExcludedFromBuild="true" 20161 > 20162 <Tool 20163 Name="VCCLCompilerTool" 20164 /> 20165 </FileConfiguration> 20166 <FileConfiguration 20167 Name="Release_Cairo|Win32" 20168 ExcludedFromBuild="true" 20169 > 20170 <Tool 20171 Name="VCCLCompilerTool" 20172 /> 20173 </FileConfiguration> 20174 <FileConfiguration 20175 Name="Debug_All|Win32" 20176 ExcludedFromBuild="true" 20177 > 20178 <Tool 20179 Name="VCCLCompilerTool" 20180 /> 20181 </FileConfiguration> 20182 </File> 20183 <File 20184 RelativePath="..\accessibility\AccessibilityScrollbar.h" 20185 > 20186 </File> 20187 <File 20132 20188 RelativePath="..\accessibility\AccessibilitySlider.cpp" 20133 20189 > -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r53621 r53644 2354 2354 93C441F00F813A1A00C1A634 /* CollectionCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 93C441EE0F813A1A00C1A634 /* CollectionCache.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2355 2355 93C442000F813AE100C1A634 /* CollectionType.h in Headers */ = {isa = PBXBuildFile; fileRef = 93C441FF0F813AE100C1A634 /* CollectionType.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2356 93C4F6EA1108F9A50099D0DB /* AccessibilityScrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93C4F6E81108F9A50099D0DB /* AccessibilityScrollbar.cpp */; }; 2357 93C4F6EB1108F9A50099D0DB /* AccessibilityScrollbar.h in Headers */ = {isa = PBXBuildFile; fileRef = 93C4F6E91108F9A50099D0DB /* AccessibilityScrollbar.h */; }; 2356 2358 93C841F809CE855C00DFF5E5 /* DOMImplementationFront.h in Headers */ = {isa = PBXBuildFile; fileRef = 93C841F709CE855C00DFF5E5 /* DOMImplementationFront.h */; }; 2357 2359 93C841FF09CE858300DFF5E5 /* DOMImplementationFront.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93C841FE09CE858300DFF5E5 /* DOMImplementationFront.cpp */; }; … … 7701 7703 93C441EE0F813A1A00C1A634 /* CollectionCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionCache.h; sourceTree = "<group>"; }; 7702 7704 93C441FF0F813AE100C1A634 /* CollectionType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionType.h; sourceTree = "<group>"; }; 7705 93C4F6E81108F9A50099D0DB /* AccessibilityScrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilityScrollbar.cpp; sourceTree = "<group>"; }; 7706 93C4F6E91108F9A50099D0DB /* AccessibilityScrollbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilityScrollbar.h; sourceTree = "<group>"; }; 7703 7707 93C841F709CE855C00DFF5E5 /* DOMImplementationFront.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMImplementationFront.h; sourceTree = "<group>"; }; 7704 7708 93C841FE09CE858300DFF5E5 /* DOMImplementationFront.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMImplementationFront.cpp; sourceTree = "<group>"; }; … … 10641 10645 76CDD2EC1103DA6600680521 /* AccessibilityMenuList.cpp */, 10642 10646 76CDD2ED1103DA6600680521 /* AccessibilityMenuList.h */, 10647 76CDD2F01103DA6600680521 /* AccessibilityMenuListOption.cpp */, 10648 76CDD2F11103DA6600680521 /* AccessibilityMenuListOption.h */, 10643 10649 76CDD2EE1103DA6600680521 /* AccessibilityMenuListPopup.cpp */, 10644 10650 76CDD2EF1103DA6600680521 /* AccessibilityMenuListPopup.h */, 10645 76CDD2F01103DA6600680521 /* AccessibilityMenuListOption.cpp */,10646 76CDD2F11103DA6600680521 /* AccessibilityMenuListOption.h */,10647 10651 29A8121E0FBB9C1D00510293 /* AccessibilityObject.cpp */, 10648 10652 29A812180FBB9C1D00510293 /* AccessibilityObject.h */, 10649 10653 29A812080FBB9C1D00510293 /* AccessibilityRenderObject.cpp */, 10650 10654 29A8121B0FBB9C1D00510293 /* AccessibilityRenderObject.h */, 10655 93C4F6E81108F9A50099D0DB /* AccessibilityScrollbar.cpp */, 10656 93C4F6E91108F9A50099D0DB /* AccessibilityScrollbar.h */, 10651 10657 0709FC4B1025DED80059CDBA /* AccessibilitySlider.cpp */, 10652 10658 0709FC4D1025DEE30059CDBA /* AccessibilitySlider.h */, … … 18441 18447 2E2D99EA10E2BC3800496337 /* DOMBlobInternal.h in Headers */, 18442 18448 59B5977511086579007159E8 /* BridgeJSC.h in Headers */, 18449 93C4F6EB1108F9A50099D0DB /* AccessibilityScrollbar.h in Headers */, 18443 18450 ); 18444 18451 runOnlyForDeploymentPostprocessing = 0; … … 20614 20621 2E2D99E810E2BC1C00496337 /* DOMBlob.mm in Sources */, 20615 20622 59B597731108656B007159E8 /* BridgeJSC.cpp in Sources */, 20623 93C4F6EA1108F9A50099D0DB /* AccessibilityScrollbar.cpp in Sources */, 20616 20624 ); 20617 20625 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/WebCoreSources.bkl
r53620 r53644 44 44 accessibility/AccessibilityListBoxOption.cpp 45 45 accessibility/AccessibilityRenderObject.cpp 46 accessibility/AccessibilityScrollbar.cpp 46 47 accessibility/AccessibilitySlider.cpp 47 48 accessibility/AccessibilityTable.cpp -
trunk/WebCore/accessibility/AXObjectCache.cpp
r53512 r53644 42 42 #include "AccessibilityMenuListOption.h" 43 43 #include "AccessibilityRenderObject.h" 44 #include "AccessibilityScrollbar.h" 44 45 #include "AccessibilitySlider.h" 45 46 #include "AccessibilityTable.h" … … 221 222 obj = AccessibilityMenuListOption::create(); 222 223 break; 224 case ScrollBarRole: 225 obj = AccessibilityScrollbar::create(); 226 break; 223 227 default: 224 228 obj = 0; … … 369 373 // Get an accessibility object that already exists. One should not be created here 370 374 // because a render update may be in progress and creating an AX object can re-trigger a layout 371 RefPtr<AccessibilityObject> obj = get(renderer);372 while (!obj && renderer) {375 RefPtr<AccessibilityObject> object = get(renderer); 376 while (!object && renderer) { 373 377 renderer = renderer->parent(); 374 obj = get(renderer); 375 } 376 377 if (!renderer) 378 return; 379 380 if (obj && !postToElement) 381 obj = obj->observableObject(); 382 383 Document* document = renderer->document(); 384 if (!obj && document) 385 obj = get(document->renderer()); 386 387 if (!obj) 378 object = get(renderer); 379 } 380 381 if (!renderer) 382 return; 383 384 postNotification(object.get(), renderer->document(), notification, postToElement, postType); 385 } 386 387 void AXObjectCache::postNotification(AccessibilityObject* object, Document* document, AXNotification notification, bool postToElement, PostType postType) 388 { 389 if (object && !postToElement) 390 object = object->observableObject(); 391 392 if (!object && document) 393 object = get(document->renderer()); 394 395 if (!object) 388 396 return; 389 397 390 398 if (postType == PostAsynchronously) { 391 m_notificationsToPost.append(make_pair(obj , notification));399 m_notificationsToPost.append(make_pair(object, notification)); 392 400 if (!m_notificationPostTimer.isActive()) 393 401 m_notificationPostTimer.startOneShot(0); 394 402 } else 395 postPlatformNotification(obj .get(), notification);403 postPlatformNotification(object, notification); 396 404 } 397 405 -
trunk/WebCore/accessibility/AXObjectCache.h
r52786 r53644 119 119 120 120 void postNotification(RenderObject*, AXNotification, bool postToElement, PostType = PostAsynchronously); 121 void postNotification(AccessibilityObject*, Document*, AXNotification, bool postToElement, PostType = PostAsynchronously); 121 122 122 123 protected: -
trunk/WebCore/platform/Scrollbar.cpp
r47737 r53644 27 27 #include "Scrollbar.h" 28 28 29 #include "AccessibilityScrollbar.h" 30 #include "AXObjectCache.h" 29 31 #include "EventHandler.h" 30 32 #include "Frame.h" … … 118 120 bool Scrollbar::scroll(ScrollDirection direction, ScrollGranularity granularity, float multiplier) 119 121 { 122 if (AXObjectCache::accessibilityEnabled()) { 123 if (parent() && parent()->isFrameView()) { 124 Document* document = static_cast<FrameView*>(parent())->frame()->document(); 125 AXObjectCache* cache = document->axObjectCache(); 126 AccessibilityScrollbar* axObject = static_cast<AccessibilityScrollbar*>(cache->getOrCreate(ScrollBarRole)); 127 axObject->setScrollbar(this); 128 cache->postNotification(axObject, document, AXObjectCache::AXValueChanged, true); 129 } 130 } 131 120 132 float step = 0; 121 133 if ((direction == ScrollUp && m_orientation == VerticalScrollbar) || (direction == ScrollLeft && m_orientation == HorizontalScrollbar))
Note: See TracChangeset
for help on using the changeset viewer.