Changeset 148823 in webkit
- Timestamp:
- Apr 21, 2013 3:07:28 AM (11 years ago)
- Location:
- trunk/Source
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r148802 r148823 1 2013-04-21 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 Widget should not depend on AXObjectCache 4 https://bugs.webkit.org/show_bug.cgi?id=114514 5 6 Reviewed by Chris Fleizach. 7 8 Move AXObjectCache usage from platform files to FrameView. 9 10 * WebCore.exp.in: Update symbols. 11 * page/FrameView.cpp: 12 (WebCore::FrameView::didAddScrollbar): Handle scrollbar updates in 13 AXObjectCache. 14 (WebCore::FrameView::willRemoveScrollbar): Handle scrollbar 15 updates in AXObjectCache and remove the scrollbar from the cache. 16 * page/FrameView.h: 17 * platform/ScrollView.cpp: 18 (WebCore::ScrollView::setHasHorizontalScrollbar): Use 19 didAddScrollbar/willRemoveScrollbar 20 (WebCore::ScrollView::setHasVerticalScrollbar): Ditto. 21 * platform/ScrollableArea.cpp: 22 (WebCore::ScrollableArea::didAddScrollbar): This is the old 23 didAddVerticalScrollbar and didAddHorizontalScrollbar joined in a 24 single method that receives a ScrollbarOrientation parameter. 25 (WebCore::ScrollableArea::willRemoveScrollbar): This is the old 26 willRemoveVerticalScrollbar and 27 willRemoveHorizontalScrollbarScrollbar joined in a single method 28 that receives a ScrollbarOrientation parameter. 29 * platform/ScrollableArea.h: 30 (ScrollableArea): 31 * platform/Scrollbar.cpp: 32 (WebCore::Scrollbar::~Scrollbar): Remove AXObjectCache usage. 33 * platform/Scrollbar.h: 34 * platform/Widget.h: 35 (Widget): Remove axObjectCache() method. 36 * platform/mac/ScrollAnimatorMac.h: 37 (ScrollAnimatorMac): 38 * rendering/RenderLayer.cpp: 39 (WebCore::RenderLayer::createScrollbar): Use didAddScrollbar. 40 (WebCore::RenderLayer::destroyScrollbar): Use willRemoveScrollbar. 41 * rendering/RenderListBox.cpp: 42 (WebCore::RenderListBox::createScrollbar): Use didAddScrollbar. 43 (WebCore::RenderListBox::destroyScrollbar): Use willRemoveScrollbar. 44 1 45 2013-04-20 Dirk Schulze <krit@webkit.org> 2 46 -
trunk/Source/WebCore/WebCore.exp.in
r148712 r148823 366 366 __ZN7WebCore14SchemeRegistry62registerURLSchemeAsAllowingLocalStorageAccessInPrivateBrowsingERKN3WTF6StringE 367 367 __ZN7WebCore14ScrollableArea15contentsResizedEv 368 __ZN7WebCore14ScrollableArea15didAddScrollbarEPNS_9ScrollbarENS_20ScrollbarOrientationE 368 369 __ZN7WebCore14ScrollableArea16handleWheelEventERKNS_18PlatformWheelEventE 369 370 __ZN7WebCore14ScrollableArea17willEndLiveResizeEv 371 __ZN7WebCore14ScrollableArea19willRemoveScrollbarEPNS_9ScrollbarENS_20ScrollbarOrientationE 370 372 __ZN7WebCore14ScrollableArea19willStartLiveResizeEv 371 373 __ZN7WebCore14ScrollableArea19invalidateScrollbarEPNS_9ScrollbarERKNS_7IntRectE 372 374 __ZNK7WebCore14ScrollableArea21mouseEnteredScrollbarEPNS_9ScrollbarE 373 375 __ZN7WebCore14ScrollableArea22invalidateScrollCornerERKNS_7IntRectE 374 __ZN7WebCore14ScrollableArea23didAddVerticalScrollbarEPNS_9ScrollbarE375 376 __ZN7WebCore14ScrollableArea24setScrollbarOverlayStyleENS_21ScrollbarOverlayStyleE 376 __ZN7WebCore14ScrollableArea25didAddHorizontalScrollbarEPNS_9ScrollbarE377 __ZN7WebCore14ScrollableArea27willRemoveVerticalScrollbarEPNS_9ScrollbarE378 377 __ZN7WebCore14ScrollableArea27notifyScrollPositionChangedERKNS_8IntPointE 379 378 __ZN7WebCore14ScrollableArea28setScrollOffsetFromInternalsERKNS_8IntPointE 380 __ZN7WebCore14ScrollableArea29willRemoveHorizontalScrollbarEPNS_9ScrollbarE381 379 __ZN7WebCore14ScrollableArea30scrollToOffsetWithoutAnimationERKNS_10FloatPointE 382 380 __ZN7WebCore14ScrollableArea6scrollENS_15ScrollDirectionENS_17ScrollGranularityEf -
trunk/Source/WebCore/page/FrameView.cpp
r148643 r148823 4130 4130 } 4131 4131 4132 void FrameView::didAddScrollbar(Scrollbar* scrollbar, ScrollbarOrientation orientation) 4133 { 4134 ScrollableArea::didAddScrollbar(scrollbar, orientation); 4135 if (AXObjectCache* cache = axObjectCache()) 4136 cache->handleScrollbarUpdate(this); 4137 } 4138 4139 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation orientation) 4140 { 4141 ScrollableArea::willRemoveScrollbar(scrollbar, orientation); 4142 if (AXObjectCache* cache = axObjectCache()) { 4143 cache->remove(scrollbar); 4144 cache->handleScrollbarUpdate(this); 4145 } 4146 } 4147 4132 4148 } // namespace WebCore -
trunk/Source/WebCore/page/FrameView.h
r148545 r148823 39 39 namespace WebCore { 40 40 41 class AXObjectCache; 41 42 class Element; 42 43 class Event; … … 486 487 #endif 487 488 489 // Override scrollbar notifications to update the AXObject cache. 490 virtual void didAddScrollbar(Scrollbar*, ScrollbarOrientation) OVERRIDE; 491 virtual void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation) OVERRIDE; 492 488 493 void scheduleResizeEvent(); 489 494 void sendResizeEvent(); -
trunk/Source/WebCore/platform/ScrollView.cpp
r148643 r148823 27 27 #include "ScrollView.h" 28 28 29 #include "AXObjectCache.h"30 29 #include "GraphicsContext.h" 31 30 #include "GraphicsLayer.h" … … 92 91 m_horizontalScrollbar = createScrollbar(HorizontalScrollbar); 93 92 addChild(m_horizontalScrollbar.get()); 94 didAdd HorizontalScrollbar(m_horizontalScrollbar.get());93 didAddScrollbar(m_horizontalScrollbar.get(), HorizontalScrollbar); 95 94 m_horizontalScrollbar->styleChanged(); 96 95 } else if (!hasBar && m_horizontalScrollbar) { 97 willRemove HorizontalScrollbar(m_horizontalScrollbar.get());96 willRemoveScrollbar(m_horizontalScrollbar.get(), HorizontalScrollbar); 98 97 removeChild(m_horizontalScrollbar.get()); 99 98 m_horizontalScrollbar = 0; 100 99 } 101 102 if (AXObjectCache* cache = axObjectCache())103 cache->handleScrollbarUpdate(this);104 100 } 105 101 … … 110 106 m_verticalScrollbar = createScrollbar(VerticalScrollbar); 111 107 addChild(m_verticalScrollbar.get()); 112 didAdd VerticalScrollbar(m_verticalScrollbar.get());108 didAddScrollbar(m_verticalScrollbar.get(), VerticalScrollbar); 113 109 m_verticalScrollbar->styleChanged(); 114 110 } else if (!hasBar && m_verticalScrollbar) { 115 willRemove VerticalScrollbar(m_verticalScrollbar.get());111 willRemoveScrollbar(m_verticalScrollbar.get(), VerticalScrollbar); 116 112 removeChild(m_verticalScrollbar.get()); 117 113 m_verticalScrollbar = 0; 118 114 } 119 120 if (AXObjectCache* cache = axObjectCache())121 cache->handleScrollbarUpdate(this);122 115 } 123 116 -
trunk/Source/WebCore/platform/ScrollableArea.cpp
r147888 r148823 262 262 } 263 263 264 void ScrollableArea::didAddVerticalScrollbar(Scrollbar* scrollbar) 265 { 266 scrollAnimator()->didAddVerticalScrollbar(scrollbar); 264 void ScrollableArea::didAddScrollbar(Scrollbar* scrollbar, ScrollbarOrientation orientation) 265 { 266 if (orientation == VerticalScrollbar) 267 scrollAnimator()->didAddVerticalScrollbar(scrollbar); 268 else 269 scrollAnimator()->didAddHorizontalScrollbar(scrollbar); 267 270 268 271 // <rdar://problem/9797253> AppKit resets the scrollbar's style when you attach a scrollbar … … 270 273 } 271 274 272 void ScrollableArea::willRemoveVerticalScrollbar(Scrollbar* scrollbar) 273 { 274 scrollAnimator()->willRemoveVerticalScrollbar(scrollbar); 275 } 276 277 void ScrollableArea::didAddHorizontalScrollbar(Scrollbar* scrollbar) 278 { 279 scrollAnimator()->didAddHorizontalScrollbar(scrollbar); 280 281 // <rdar://problem/9797253> AppKit resets the scrollbar's style when you attach a scrollbar 282 setScrollbarOverlayStyle(scrollbarOverlayStyle()); 283 } 284 285 void ScrollableArea::willRemoveHorizontalScrollbar(Scrollbar* scrollbar) 286 { 287 scrollAnimator()->willRemoveHorizontalScrollbar(scrollbar); 275 void ScrollableArea::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation orientation) 276 { 277 if (orientation == VerticalScrollbar) 278 scrollAnimator()->willRemoveVerticalScrollbar(scrollbar); 279 else 280 scrollAnimator()->willRemoveHorizontalScrollbar(scrollbar); 288 281 } 289 282 -
trunk/Source/WebCore/platform/ScrollableArea.h
r148031 r148823 84 84 void finishCurrentScrollAnimations() const; 85 85 86 void didAddVerticalScrollbar(Scrollbar*); 87 void willRemoveVerticalScrollbar(Scrollbar*); 88 virtual void didAddHorizontalScrollbar(Scrollbar*); 89 virtual void willRemoveHorizontalScrollbar(Scrollbar*); 86 virtual void didAddScrollbar(Scrollbar*, ScrollbarOrientation); 87 virtual void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation); 90 88 91 89 virtual void contentsResized(); -
trunk/Source/WebCore/platform/Scrollbar.cpp
r147888 r148823 39 39 40 40 // FIXME: The following #includes are a layering violation and should be removed. 41 #include "AXObjectCache.h"42 #include "AccessibilityScrollbar.h"43 #include "Document.h"44 41 #include "EventHandler.h" 45 42 #include "Frame.h" … … 111 108 Scrollbar::~Scrollbar() 112 109 { 113 if (AXObjectCache* cache = existingAXObjectCache())114 cache->remove(this);115 116 110 stopTimerIfNeeded(); 117 111 … … 568 562 } 569 563 570 AXObjectCache* Scrollbar::existingAXObjectCache() const571 {572 if (!parent())573 return 0;574 575 return parent()->axObjectCache();576 }577 578 564 void Scrollbar::invalidateRect(const IntRect& rect) 579 565 { -
trunk/Source/WebCore/platform/Scrollbar.h
r146726 r148823 207 207 private: 208 208 virtual bool isScrollbar() const { return true; } 209 virtual AXObjectCache* existingAXObjectCache() const;210 209 }; 211 210 -
trunk/Source/WebCore/platform/Widget.h
r147888 r148823 98 98 namespace WebCore { 99 99 100 class AXObjectCache;101 100 class Cursor; 102 101 class Event; … … 232 231 virtual IntPoint convertFromContainingView(const IntPoint&) const; 233 232 234 // A means to access the AX cache when this object can get a pointer to it.235 virtual AXObjectCache* axObjectCache() const { return 0; }236 237 233 private: 238 234 void init(PlatformWidget); // Must be called by all Widget constructors to initialize cross-platform data. -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r148765 r148823 2877 2877 else { 2878 2878 widget = Scrollbar::createNativeScrollbar(this, orientation, RegularScrollbar); 2879 if (orientation == HorizontalScrollbar) 2880 didAddHorizontalScrollbar(widget.get()); 2881 else 2882 didAddVerticalScrollbar(widget.get()); 2879 didAddScrollbar(widget.get(), orientation); 2883 2880 } 2884 2881 renderer()->document()->view()->addChild(widget.get()); … … 2892 2889 return; 2893 2890 2894 if (!scrollbar->isCustomScrollbar()) { 2895 if (orientation == HorizontalScrollbar) 2896 willRemoveHorizontalScrollbar(scrollbar.get()); 2897 else 2898 willRemoveVerticalScrollbar(scrollbar.get()); 2899 } 2891 if (!scrollbar->isCustomScrollbar()) 2892 willRemoveScrollbar(scrollbar.get(), orientation); 2900 2893 2901 2894 scrollbar->removeFromParent(); -
trunk/Source/WebCore/rendering/RenderListBox.cpp
r148536 r148823 851 851 else { 852 852 widget = Scrollbar::createNativeScrollbar(this, VerticalScrollbar, theme()->scrollbarControlSizeForPart(ListboxPart)); 853 didAdd VerticalScrollbar(widget.get());853 didAddScrollbar(widget.get(), VerticalScrollbar); 854 854 } 855 855 document()->view()->addChild(widget.get()); … … 863 863 864 864 if (!m_vBar->isCustomScrollbar()) 865 ScrollableArea::willRemove VerticalScrollbar(m_vBar.get());865 ScrollableArea::willRemoveScrollbar(m_vBar.get(), VerticalScrollbar); 866 866 m_vBar->removeFromParent(); 867 867 m_vBar->disconnectFromScrollableArea(); -
trunk/Source/WebKit2/ChangeLog
r148788 r148823 1 2013-04-21 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 Widget should not depend on AXObjectCache 4 https://bugs.webkit.org/show_bug.cgi?id=114514 5 6 Reviewed by Chris Fleizach. 7 8 Update to API changes. 9 10 * WebProcess/Plugins/PDF/PDFPlugin.mm: 11 (WebKit::PDFPlugin::createScrollbar): 12 * WebProcess/Plugins/PDF/SimplePDFPlugin.mm: 13 (WebKit::SimplePDFPlugin::createScrollbar): 14 (WebKit::SimplePDFPlugin::destroyScrollbar): 15 1 16 2013-04-20 Manuel Rego Casasnovas <rego@igalia.com> 2 17 -
trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm
r148719 r148823 276 276 m_horizontalScrollbarLayer.adoptNS([[WKPDFPluginScrollbarLayer alloc] initWithPDFPlugin:this]); 277 277 [m_containerLayer.get() addSublayer:m_horizontalScrollbarLayer.get()]; 278 279 didAddHorizontalScrollbar(widget.get());280 278 } else { 281 279 m_verticalScrollbarLayer.adoptNS([[WKPDFPluginScrollbarLayer alloc] initWithPDFPlugin:this]); 282 280 [m_containerLayer.get() addSublayer:m_verticalScrollbarLayer.get()]; 283 284 didAddVerticalScrollbar(widget.get()); 285 } 281 } 282 didAddScrollbar(widget.get(), orientation); 286 283 pluginView()->frame()->view()->addChild(widget.get()); 287 284 return widget.release(); -
trunk/Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm
r145477 r148823 261 261 { 262 262 RefPtr<Scrollbar> widget = Scrollbar::createNativeScrollbar(this, orientation, RegularScrollbar); 263 if (orientation == HorizontalScrollbar) 264 didAddHorizontalScrollbar(widget.get()); 265 else 266 didAddVerticalScrollbar(widget.get()); 263 didAddScrollbar(widget.get(), orientation); 267 264 pluginView()->frame()->view()->addChild(widget.get()); 268 265 return widget.release(); … … 275 272 return; 276 273 277 if (orientation == HorizontalScrollbar) 278 willRemoveHorizontalScrollbar(scrollbar.get()); 279 else 280 willRemoveVerticalScrollbar(scrollbar.get()); 281 274 willRemoveScrollbar(scrollbar.get(), orientation); 282 275 scrollbar->removeFromParent(); 283 276 scrollbar->disconnectFromScrollableArea();
Note: See TracChangeset
for help on using the changeset viewer.