Changeset 166975 in webkit
- Timestamp:
- Apr 8, 2014 4:09:52 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r166969 r166975 1 2014-04-08 Tim Horton <timothy_horton@apple.com> 2 3 Unify and factor out page overlay implementations 4 https://bugs.webkit.org/show_bug.cgi?id=131353 5 6 Reviewed by Anders Carlsson. 7 8 Bring all of the PageOverlay code together in a single cross-platform 9 PageOverlayController, including hit-testing code from WebPage and painting 10 and layer-tree manipulation code from the DrawingArea. 11 12 This also makes all PageOverlays a single GraphicsLayer tree which can be 13 flushed and plugged into any DrawingArea in a straightforward manner. 14 We no longer have to watch for individual layers flipping into/out of tiling, 15 because they're hidden underneath the root PageOverlay GraphicsLayer. 16 Additionally, because GraphicsLayer is cross-platform, we can share 17 all of the fairly trivial but oft-repeated overlay management code. 18 19 * WebKit2.xcodeproj/project.pbxproj: 20 * WebProcess/WebPage/PageOverlayController.cpp: Added. 21 * WebProcess/WebPage/PageOverlayController.h: Added. 22 (WebKit::PageOverlayController::rootLayer): 23 Add PageOverlayController. 24 25 * WebProcess/WebPage/DrawingArea.h: 26 * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: 27 * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: 28 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: 29 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: 30 Remove PageOverlay-related code from the DrawingAreas. 31 32 * WebProcess/WebPage/PageOverlay.cpp: 33 (WebKit::PageOverlay::setNeedsDisplay): 34 (WebKit::PageOverlay::fadeAnimationTimerFired): 35 (WebKit::PageOverlay::clear): 36 * WebProcess/WebPage/PageOverlay.h: 37 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: 38 (WebKit::WebFrameLoaderClient::didChangeScrollOffset): 39 * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: 40 (-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]): 41 (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]): 42 Use PageOverlayController instead of the DrawingArea/WebPage to manipulate page overlays. 43 44 * WebProcess/WebPage/WebPage.cpp: 45 * WebProcess/WebPage/WebPage.h: 46 (WebKit::WebPage::pageOverlayController): 47 Remove PageOverlay-related code from WebPage. 48 49 * WebProcess/WebPage/mac/RemoteLayerTreeContext.h: 50 * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm: 51 (WebKit::RemoteLayerTreeContext::outOfTreeLayerWasAdded): Deleted. 52 (WebKit::RemoteLayerTreeContext::outOfTreeLayerWillBeRemoved): Deleted. 53 (WebKit::RemoteLayerTreeContext::flushOutOfTreeLayers): Deleted. 54 Remove the no-longer-necessary out-of-tree layer code. 55 56 * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: 57 (WKBundlePageInstallPageOverlayWithAnimation): 58 (WKBundlePageUninstallPageOverlayWithAnimation): 59 * WebProcess/WebCoreSupport/WebInspectorClient.cpp: 60 (WebKit::WebInspectorClient::highlight): 61 (WebKit::WebInspectorClient::hideHighlight): 62 * WebProcess/WebPage/FindController.cpp: 63 (WebKit::FindController::updateFindUIAfterPageScroll): 64 (WebKit::FindController::hideFindUI): 65 * WebProcess/WebPage/TelephoneNumberOverlayController.cpp: 66 (WebKit::TelephoneNumberOverlayController::createOverlayIfNeeded): 67 (WebKit::TelephoneNumberOverlayController::destroyOverlay): 68 Make use of the FadeMode enum. 69 1 70 2014-04-08 Anders Carlsson <andersca@apple.com> 2 71 -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r166933 r166975 508 508 2D125C5E1857EA05003BA3CB /* ViewGestureController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D125C5C1857EA05003BA3CB /* ViewGestureController.h */; }; 509 509 2D125C5F1857EA05003BA3CB /* ViewGestureControllerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D125C5D1857EA05003BA3CB /* ViewGestureControllerMac.mm */; }; 510 2D140EAF18F37BE0005E75A0 /* PageOverlayController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D140EAD18F37BE0005E75A0 /* PageOverlayController.cpp */; }; 511 2D140EB018F37BE0005E75A0 /* PageOverlayController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D140EAE18F37BE0005E75A0 /* PageOverlayController.h */; }; 510 512 2D1B5D5D185869C8006C6596 /* ViewGestureControllerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D1B5D5B185869C8006C6596 /* ViewGestureControllerMessageReceiver.cpp */; }; 511 513 2D1B5D5E185869C8006C6596 /* ViewGestureControllerMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D1B5D5C185869C8006C6596 /* ViewGestureControllerMessages.h */; }; … … 2311 2313 2D125C5C1857EA05003BA3CB /* ViewGestureController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewGestureController.h; sourceTree = "<group>"; }; 2312 2314 2D125C5D1857EA05003BA3CB /* ViewGestureControllerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewGestureControllerMac.mm; sourceTree = "<group>"; }; 2315 2D140EAD18F37BE0005E75A0 /* PageOverlayController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageOverlayController.cpp; sourceTree = "<group>"; }; 2316 2D140EAE18F37BE0005E75A0 /* PageOverlayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageOverlayController.h; sourceTree = "<group>"; }; 2313 2317 2D1B5D5A18586599006C6596 /* ViewGestureController.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = ViewGestureController.messages.in; sourceTree = "<group>"; }; 2314 2318 2D1B5D5B185869C8006C6596 /* ViewGestureControllerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ViewGestureControllerMessageReceiver.cpp; sourceTree = "<group>"; }; … … 5343 5347 1A90C23612650717003E44D4 /* PageOverlay.cpp */, 5344 5348 1A90C23512650717003E44D4 /* PageOverlay.h */, 5349 2D140EAD18F37BE0005E75A0 /* PageOverlayController.cpp */, 5350 2D140EAE18F37BE0005E75A0 /* PageOverlayController.h */, 5345 5351 519EF58F18EF77210003B7F4 /* TelephoneNumberOverlayController.cpp */, 5346 5352 519EF59018EF77210003B7F4 /* TelephoneNumberOverlayController.h */, … … 6742 6748 1ABC3DFC1899F51C004F0626 /* WKNavigationDelegate.h in Headers */, 6743 6749 E105FE5418D7B9DE008F57A8 /* EditingRange.h in Headers */, 6750 2D140EB018F37BE0005E75A0 /* PageOverlayController.h in Headers */, 6744 6751 BC17753F118BABF0007D9E9A /* GenericCallback.h in Headers */, 6745 6752 379A873618BBFA4300588AF2 /* _WKActivatedElementInfoInternal.h in Headers */, … … 8486 8493 C0337DAE127A24FE008FF4F4 /* WebEvent.cpp in Sources */, 8487 8494 BC032DBA10F4380F0058C15A /* WebEventConversion.cpp in Sources */, 8495 2D140EAF18F37BE0005E75A0 /* PageOverlayController.cpp in Sources */, 8488 8496 BC111B5E112F629800337BAB /* WebEventFactory.mm in Sources */, 8489 8497 1A3DD1FD125E59F3004515E6 /* WebFindClient.cpp in Sources */, -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
r166890 r166975 365 365 void WKBundlePageInstallPageOverlayWithAnimation(WKBundlePageRef pageRef, WKBundlePageOverlayRef pageOverlayRef) 366 366 { 367 toImpl(pageRef)->installPageOverlay(toImpl(pageOverlayRef), true);367 toImpl(pageRef)->installPageOverlay(toImpl(pageOverlayRef), PageOverlay::FadeMode::Fade); 368 368 } 369 369 370 370 void WKBundlePageUninstallPageOverlayWithAnimation(WKBundlePageRef pageRef, WKBundlePageOverlayRef pageOverlayRef) 371 371 { 372 toImpl(pageRef)->uninstallPageOverlay(toImpl(pageOverlayRef), true);372 toImpl(pageRef)->uninstallPageOverlay(toImpl(pageOverlayRef), PageOverlay::FadeMode::Fade); 373 373 } 374 374 -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
r166769 r166975 1577 1577 return; 1578 1578 1579 webPage->d rawingArea()->didChangeScrollOffsetForAnyFrame();1579 webPage->didChangeScrollOffsetForAnyFrame(); 1580 1580 1581 1581 if (!m_frame->isMainFrame()) -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp
r166257 r166975 84 84 RefPtr<PageOverlay> highlightOverlay = PageOverlay::create(this); 85 85 m_highlightOverlay = highlightOverlay.get(); 86 m_page->installPageOverlay(highlightOverlay.release(), true);86 m_page->installPageOverlay(highlightOverlay.release(), PageOverlay::FadeMode::Fade); 87 87 m_highlightOverlay->setNeedsDisplay(); 88 88 } else { … … 95 95 { 96 96 if (m_highlightOverlay) 97 m_page->uninstallPageOverlay(m_highlightOverlay, true);97 m_page->uninstallPageOverlay(m_highlightOverlay, PageOverlay::FadeMode::Fade); 98 98 } 99 99 -
trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h
r166542 r166975 51 51 struct ColorSpaceData; 52 52 class LayerTreeHost; 53 class PageOverlay;54 53 class WebPage; 55 54 struct WebPageCreationParameters; … … 79 78 virtual LayerTreeHost* layerTreeHost() const { return 0; } 80 79 81 virtual void didInstallPageOverlay(PageOverlay*) { }82 virtual void didUninstallPageOverlay(PageOverlay*) { }83 virtual void setPageOverlayNeedsDisplay(PageOverlay*, const WebCore::IntRect&) { }84 virtual void setPageOverlayOpacity(PageOverlay*, float) { }85 virtual void clearPageOverlay(PageOverlay*) { }86 87 80 virtual void setPaintingEnabled(bool) { } 88 81 virtual void updatePreferences(const WebPreferencesStore&) { } … … 100 93 101 94 virtual bool supportsAsyncScrolling() { return false; } 102 103 virtual void didChangeScrollOffsetForAnyFrame() { }104 95 105 96 virtual bool shouldUseTiledBackingForFrameView(const WebCore::FrameView*) { return false; } -
trunk/Source/WebKit2/WebProcess/WebPage/FindController.cpp
r164474 r166975 157 157 if (!shouldShowOverlay) { 158 158 if (m_findPageOverlay) 159 m_webPage->uninstallPageOverlay(m_findPageOverlay, true);159 m_webPage->uninstallPageOverlay(m_findPageOverlay, PageOverlay::FadeMode::Fade); 160 160 } else { 161 161 if (!m_findPageOverlay) { 162 162 RefPtr<PageOverlay> findPageOverlay = PageOverlay::create(this); 163 163 m_findPageOverlay = findPageOverlay.get(); 164 m_webPage->installPageOverlay(findPageOverlay.release(), true);164 m_webPage->installPageOverlay(findPageOverlay.release(), PageOverlay::FadeMode::Fade); 165 165 m_findPageOverlay->setNeedsDisplay(); 166 166 } else … … 273 273 m_findMatches.clear(); 274 274 if (m_findPageOverlay) 275 m_webPage->uninstallPageOverlay(m_findPageOverlay, true);275 m_webPage->uninstallPageOverlay(m_findPageOverlay, PageOverlay::FadeMode::Fade); 276 276 277 277 PluginView* pluginView = pluginViewForFrame(m_webPage->mainFrame()); -
trunk/Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp
r162662 r166975 91 91 { 92 92 if (m_webPage) { 93 m_webPage-> drawingArea()->setPageOverlayOpacity(this, m_fractionFadedIn);94 m_webPage-> drawingArea()->setPageOverlayNeedsDisplay(this, dirtyRect);93 m_webPage->pageOverlayController().setPageOverlayOpacity(this, m_fractionFadedIn); 94 m_webPage->pageOverlayController().setPageOverlayNeedsDisplay(this, dirtyRect); 95 95 } 96 96 } … … 177 177 178 178 m_fractionFadedIn = (m_fadeAnimationType == FadeInAnimation) ? fadeAnimationValue : 1 - fadeAnimationValue; 179 m_webPage-> drawingArea()->setPageOverlayOpacity(this, m_fractionFadedIn);179 m_webPage->pageOverlayController().setPageOverlayOpacity(this, m_fractionFadedIn); 180 180 181 181 if (animationProgress == 1.0) { … … 187 187 if (wasFadingOut) { 188 188 // If this was a fade out, go ahead and uninstall the page overlay. 189 m_webPage->uninstallPageOverlay(this, false);189 m_webPage->uninstallPageOverlay(this, PageOverlay::FadeMode::DoNotFade); 190 190 } 191 191 } … … 194 194 void PageOverlay::clear() 195 195 { 196 m_webPage-> drawingArea()->clearPageOverlay(this);196 m_webPage->pageOverlayController().clearPageOverlay(this); 197 197 } 198 198 -
trunk/Source/WebKit2/WebProcess/WebPage/PageOverlay.h
r162662 r166975 80 80 81 81 Client* client() const { return m_client; } 82 83 enum class FadeMode { DoNotFade, Fade }; 82 84 83 85 protected: -
trunk/Source/WebKit2/WebProcess/WebPage/TelephoneNumberOverlayController.cpp
r166888 r166975 52 52 RefPtr<PageOverlay> overlay = PageOverlay::create(this); 53 53 m_telephoneNumberOverlay = overlay.get(); 54 m_webPage->installPageOverlay(overlay.release(), true);54 m_webPage->installPageOverlay(overlay.release(), PageOverlay::FadeMode::Fade); 55 55 m_telephoneNumberOverlay->setNeedsDisplay(); 56 56 } … … 61 61 return; 62 62 63 m_webPage->uninstallPageOverlay(m_telephoneNumberOverlay, false);63 m_webPage->uninstallPageOverlay(m_telephoneNumberOverlay, PageOverlay::FadeMode::DoNotFade); 64 64 } 65 65 -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r166890 r166975 46 46 #include "NotificationPermissionRequestManager.h" 47 47 #include "PageBanner.h" 48 #include "PageOverlay.h"49 48 #include "PluginProcessAttributes.h" 50 49 #include "PluginProxy.h" … … 308 307 , m_systemWebGLPolicy(WebGLAllowCreation) 309 308 #endif 309 , m_pageOverlayController(this) 310 310 { 311 311 ASSERT(m_pageID); … … 341 341 m_drawingArea = DrawingArea::create(this, parameters); 342 342 m_drawingArea->setPaintingEnabled(false); 343 m_pageOverlayController.initialize(); 343 344 344 345 #if ENABLE(ASYNC_SCROLLING) … … 1122 1123 sendViewportAttributesChanged(); 1123 1124 #endif 1125 1126 m_pageOverlayController.didChangeViewSize(); 1124 1127 } 1125 1128 … … 1207 1210 } 1208 1211 1209 void WebPage::drawPageOverlay(PageOverlay* pageOverlay, GraphicsContext& graphicsContext, const IntRect& rect)1210 {1211 ASSERT(pageOverlay);1212 1213 GraphicsContextStateSaver stateSaver(graphicsContext);1214 graphicsContext.clip(rect);1215 pageOverlay->drawRect(graphicsContext, rect);1216 }1217 1218 1212 double WebPage::textZoomFactor() const 1219 1213 { … … 1338 1332 if (m_drawingArea->layerTreeHost()) 1339 1333 m_drawingArea->layerTreeHost()->deviceOrPageScaleFactorChanged(); 1334 1335 m_pageOverlayController.didChangeDeviceScaleFactor(); 1340 1336 } 1341 1337 … … 1453 1449 } 1454 1450 1455 void WebPage::installPageOverlay(PassRefPtr<PageOverlay> pageOverlay, bool shouldFadeIn) 1456 { 1457 RefPtr<PageOverlay> overlay = pageOverlay; 1458 1459 if (m_pageOverlays.contains(overlay.get())) 1460 return; 1461 1462 m_pageOverlays.append(overlay); 1463 overlay->setPage(this); 1464 1465 if (shouldFadeIn) 1466 overlay->startFadeInAnimation(); 1467 1468 m_drawingArea->didInstallPageOverlay(overlay.get()); 1469 } 1470 1471 void WebPage::uninstallPageOverlay(PageOverlay* pageOverlay, bool shouldFadeOut) 1472 { 1473 size_t existingOverlayIndex = m_pageOverlays.find(pageOverlay); 1474 if (existingOverlayIndex == notFound) 1475 return; 1476 1477 if (shouldFadeOut) { 1478 pageOverlay->startFadeOutAnimation(); 1479 return; 1480 } 1481 1482 pageOverlay->setPage(0); 1483 m_pageOverlays.remove(existingOverlayIndex); 1484 1485 m_drawingArea->didUninstallPageOverlay(pageOverlay); 1451 void WebPage::installPageOverlay(PassRefPtr<PageOverlay> pageOverlay, PageOverlay::FadeMode fadeMode) 1452 { 1453 m_pageOverlayController.installPageOverlay(pageOverlay, fadeMode); 1454 } 1455 1456 void WebPage::uninstallPageOverlay(PageOverlay* pageOverlay, PageOverlay::FadeMode fadeMode) 1457 { 1458 m_pageOverlayController.uninstallPageOverlay(pageOverlay, fadeMode); 1486 1459 } 1487 1460 … … 1762 1735 } 1763 1736 #endif 1764 bool handled = false; 1765 if (m_pageOverlays.size()) { 1766 // Let the page overlay handle the event. 1767 PageOverlayList::reverse_iterator end = m_pageOverlays.rend(); 1768 for (PageOverlayList::reverse_iterator it = m_pageOverlays.rbegin(); it != end; ++it) 1769 if ((handled = (*it)->mouseEvent(mouseEvent))) 1770 break; 1771 } 1737 bool handled = m_pageOverlayController.handleMouseEvent(mouseEvent); 1772 1738 1773 1739 #if !PLATFORM(IOS) … … 1795 1761 void WebPage::mouseEventSyncForTesting(const WebMouseEvent& mouseEvent, bool& handled) 1796 1762 { 1797 handled = false; 1798 1799 if (m_pageOverlays.size()) { 1800 PageOverlayList::reverse_iterator end = m_pageOverlays.rend(); 1801 for (PageOverlayList::reverse_iterator it = m_pageOverlays.rbegin(); it != end; ++it) 1802 if ((handled = (*it)->mouseEvent(mouseEvent))) 1803 break; 1804 } 1763 handled = m_pageOverlayController.handleMouseEvent(mouseEvent); 1805 1764 #if !PLATFORM(IOS) 1806 1765 if (!handled && m_headerBanner) … … 1891 1850 if (!handled) 1892 1851 handled = performDefaultBehaviorForKeyEvent(keyboardEvent); 1893 }1894 1895 WKTypeRef WebPage::pageOverlayCopyAccessibilityAttributeValue(WKStringRef attribute, WKTypeRef parameter)1896 {1897 if (!m_pageOverlays.size())1898 return 0;1899 PageOverlayList::reverse_iterator end = m_pageOverlays.rend();1900 for (PageOverlayList::reverse_iterator it = m_pageOverlays.rbegin(); it != end; ++it) {1901 WKTypeRef value = (*it)->copyAccessibilityAttributeValue(attribute, parameter);1902 if (value)1903 return value;1904 }1905 return 0;1906 }1907 1908 WKArrayRef WebPage::pageOverlayCopyAccessibilityAttributesNames(bool parameterizedNames)1909 {1910 if (!m_pageOverlays.size())1911 return 0;1912 PageOverlayList::reverse_iterator end = m_pageOverlays.rend();1913 for (PageOverlayList::reverse_iterator it = m_pageOverlays.rbegin(); it != end; ++it) {1914 WKArrayRef value = (*it)->copyAccessibilityAttributeNames(parameterizedNames);1915 if (value)1916 return value;1917 }1918 return 0;1919 1852 } 1920 1853 … … 2706 2639 if (m_drawingArea) 2707 2640 m_drawingArea->updatePreferences(store); 2641 2642 m_pageOverlayController.didChangePreferences(); 2708 2643 } 2709 2644 … … 4568 4503 #endif 4569 4504 4505 void WebPage::didChangeScrollOffsetForAnyFrame() 4506 { 4507 m_pageOverlayController.didScrollAnyFrame(); 4508 } 4509 4570 4510 } // namespace WebKit -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h
r166890 r166975 42 42 #include "MessageReceiver.h" 43 43 #include "MessageSender.h" 44 #include " TapHighlightController.h"44 #include "PageOverlayController.h" 45 45 #include "Plugin.h" 46 46 #include "SandboxExtension.h" 47 47 #include "ShareableBitmap.h" 48 #include "TapHighlightController.h" 48 49 #include "WebUndoStep.h" 49 50 #include <WebCore/ContextMenuItem.h> … … 185 186 #endif 186 187 187 typedef Vector<RefPtr<PageOverlay>> PageOverlayList;188 189 188 class WebPage : public API::ObjectImpl<API::Object::Type::BundlePage>, public IPC::MessageReceiver, public IPC::MessageSender { 190 189 public: … … 211 210 InjectedBundleBackForwardList* backForwardList(); 212 211 DrawingArea* drawingArea() const { return m_drawingArea.get(); } 212 const PageOverlayController& pageOverlayController() const { return m_pageOverlayController; } 213 PageOverlayController& pageOverlayController() { return m_pageOverlayController; } 213 214 #if ENABLE(ASYNC_SCROLLING) 214 215 WebCore::ScrollingCoordinator* scrollingCoordinator() const; … … 242 243 // FIXME: We could genericize these into a DrawingArea client interface. Would that be beneficial? 243 244 void drawRect(WebCore::GraphicsContext&, const WebCore::IntRect&); 244 void drawPageOverlay(PageOverlay*, WebCore::GraphicsContext&, const WebCore::IntRect&);245 245 void layoutIfNeeded(); 246 246 … … 411 411 bool windowIsFocused() const; 412 412 bool windowAndWebPageAreFocused() const; 413 void installPageOverlay(PassRefPtr<PageOverlay>, bool shouldFadeIn = false); 414 void uninstallPageOverlay(PageOverlay*, bool shouldFadeOut = false); 415 bool hasPageOverlay() const { return m_pageOverlays.size(); } 416 PageOverlayList& pageOverlays() { return m_pageOverlays; } 413 void installPageOverlay(PassRefPtr<PageOverlay>, PageOverlay::FadeMode = PageOverlay::FadeMode::DoNotFade); 414 void uninstallPageOverlay(PageOverlay*, PageOverlay::FadeMode = PageOverlay::FadeMode::DoNotFade); 417 415 418 416 #if !PLATFORM(IOS) … … 782 780 #endif 783 781 782 void didChangeScrollOffsetForAnyFrame(); 783 784 784 private: 785 785 WebPage(uint64_t pageID, const WebPageCreationParameters&); … … 1087 1087 1088 1088 FindController m_findController; 1089 PageOverlayList m_pageOverlays;1090 1089 1091 1090 #if ENABLE(INSPECTOR) … … 1188 1187 RefPtr<TelephoneNumberOverlayController> m_telephoneNumberOverlayController; 1189 1188 #endif 1189 1190 PageOverlayController m_pageOverlayController; 1190 1191 }; 1191 1192 -
trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeContext.h
r166886 r166975 49 49 void layerWillBeDestroyed(PlatformCALayerRemote*); 50 50 51 void outOfTreeLayerWasAdded(WebCore::GraphicsLayer*);52 void outOfTreeLayerWillBeRemoved(WebCore::GraphicsLayer*);53 54 51 void backingStoreWasCreated(RemoteLayerBackingStore*); 55 52 void backingStoreWillBeDestroyed(RemoteLayerBackingStore*); … … 57 54 LayerHostingMode layerHostingMode() const { return m_webPage->layerHostingMode(); } 58 55 59 void flushOutOfTreeLayers();60 56 void buildTransaction(RemoteLayerTreeTransaction&, WebCore::PlatformCALayer& rootLayer); 61 57 … … 73 69 WebPage* m_webPage; 74 70 75 Vector<WebCore::GraphicsLayer*> m_outOfTreeLayers;76 77 71 Vector<RemoteLayerTreeTransaction::LayerCreationProperties> m_createdLayers; 78 72 Vector<WebCore::GraphicsLayer::PlatformLayerID> m_destroyedLayers; -
trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeContext.mm
r166886 r166975 72 72 } 73 73 74 void RemoteLayerTreeContext::outOfTreeLayerWasAdded(GraphicsLayer* layer)75 {76 ASSERT(!m_outOfTreeLayers.contains(layer));77 m_outOfTreeLayers.append(layer);78 }79 80 void RemoteLayerTreeContext::outOfTreeLayerWillBeRemoved(GraphicsLayer* layer)81 {82 size_t layerIndex = m_outOfTreeLayers.find(layer);83 ASSERT(layerIndex != notFound);84 m_outOfTreeLayers.remove(layerIndex);85 }86 87 74 void RemoteLayerTreeContext::backingStoreWasCreated(RemoteLayerBackingStore* backingStore) 88 75 { … … 98 85 { 99 86 return std::make_unique<GraphicsLayerCARemote>(client, this); 100 }101 102 void RemoteLayerTreeContext::flushOutOfTreeLayers()103 {104 for (const auto& layer : m_outOfTreeLayers)105 layer->flushCompositingStateForThisLayerOnly();106 87 } 107 88 -
trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h
r166542 r166975 29 29 #include "DrawingArea.h" 30 30 #include "GraphicsLayerCARemote.h" 31 #include <WebCore/GraphicsLayerClient.h>32 31 #include <WebCore/Timer.h> 33 32 #include <wtf/HashMap.h> … … 41 40 class RemoteLayerTreeContext; 42 41 43 class RemoteLayerTreeDrawingArea : public DrawingArea , public WebCore::GraphicsLayerClient{42 class RemoteLayerTreeDrawingArea : public DrawingArea { 44 43 public: 45 44 RemoteLayerTreeDrawingArea(WebPage*, const WebPageCreationParameters&); … … 61 60 virtual void updatePreferences(const WebPreferencesStore&) override; 62 61 63 virtual void didInstallPageOverlay(PageOverlay*) override;64 virtual void didUninstallPageOverlay(PageOverlay*) override;65 virtual void setPageOverlayNeedsDisplay(PageOverlay*, const WebCore::IntRect&) override;66 virtual void setPageOverlayOpacity(PageOverlay*, float) override;67 virtual void clearPageOverlay(PageOverlay*) override;68 62 virtual bool supportsAsyncScrolling() override { return true; } 69 63 … … 84 78 virtual void didUpdate() override; 85 79 86 // WebCore::GraphicsLayerClient87 virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time) override { }88 virtual void notifyFlushRequired(const WebCore::GraphicsLayer*) override { }89 virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::FloatRect& clipRect) override;90 virtual float deviceScaleFactor() const override;91 virtual void didCommitChangesForLayer(const WebCore::GraphicsLayer*) const override { }92 80 #if PLATFORM(IOS) 93 81 virtual void setDeviceScaleFactor(float) override; … … 102 90 103 91 std::unique_ptr<RemoteLayerTreeContext> m_remoteLayerTreeContext; 104 RefPtr<WebCore::PlatformCALayer> m_rootLayer; 105 106 HashMap<PageOverlay*, std::unique_ptr<GraphicsLayerCARemote>> m_pageOverlayLayers; 92 std::unique_ptr<WebCore::GraphicsLayer> m_rootLayer; 107 93 108 94 WebCore::IntSize m_viewSize; -
trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm
r166958 r166975 49 49 : DrawingArea(DrawingAreaTypeRemoteLayerTree, webPage) 50 50 , m_remoteLayerTreeContext(std::make_unique<RemoteLayerTreeContext>(webPage)) 51 , m_rootLayer(GraphicsLayer::create(graphicsLayerFactory(), nullptr)) 51 52 , m_exposedRect(FloatRect::infiniteRect()) 52 53 , m_scrolledExposedRect(FloatRect::infiniteRect()) … … 86 87 void RemoteLayerTreeDrawingArea::setRootCompositingLayer(GraphicsLayer* rootLayer) 87 88 { 88 m_rootLayer = rootLayer ? toGraphicsLayerCARemote(rootLayer)->platformCALayer() : nullptr; 89 Vector<GraphicsLayer *> children; 90 if (rootLayer) { 91 children.append(rootLayer); 92 children.append(m_webPage->pageOverlayController().rootLayer()); 93 } 94 m_rootLayer->setChildren(children); 89 95 } 90 96 … … 93 99 m_viewSize = viewSize; 94 100 m_webPage->setSize(viewSize); 95 96 for (const auto& overlayAndLayer : m_pageOverlayLayers) {97 GraphicsLayer* layer = overlayAndLayer.value.get();98 if (layer->drawsContent())99 layer->setSize(viewSize);100 }101 101 102 102 scheduleCompositingLayerFlush(); … … 118 118 settings.setAcceleratedCompositingForFixedPositionEnabled(true); 119 119 settings.setFixedPositionCreatesStackingContext(true); 120 121 for (const auto& overlayAndLayer : m_pageOverlayLayers) {122 overlayAndLayer.value->setAcceleratesDrawing(settings.acceleratedDrawingEnabled());123 overlayAndLayer.value->setShowDebugBorder(settings.showDebugBorders());124 overlayAndLayer.value->setShowRepaintCounter(settings.showRepaintCounter());125 }126 }127 128 void RemoteLayerTreeDrawingArea::didInstallPageOverlay(PageOverlay* pageOverlay)129 {130 std::unique_ptr<GraphicsLayerCARemote> layer(static_cast<GraphicsLayerCARemote*>(GraphicsLayer::create(graphicsLayerFactory(), this).release()));131 #ifndef NDEBUG132 layer->setName("page overlay content");133 #endif134 135 layer->setAcceleratesDrawing(m_webPage->corePage()->settings().acceleratedDrawingEnabled());136 layer->setShowDebugBorder(m_webPage->corePage()->settings().showDebugBorders());137 layer->setShowRepaintCounter(m_webPage->corePage()->settings().showRepaintCounter());138 139 m_rootLayer->appendSublayer(layer->platformCALayer());140 m_remoteLayerTreeContext->outOfTreeLayerWasAdded(layer.get());141 142 m_pageOverlayLayers.add(pageOverlay, std::move(layer));143 scheduleCompositingLayerFlush();144 }145 146 void RemoteLayerTreeDrawingArea::didUninstallPageOverlay(PageOverlay* pageOverlay)147 {148 std::unique_ptr<GraphicsLayerCARemote> layer = m_pageOverlayLayers.take(pageOverlay);149 ASSERT(layer);150 151 m_remoteLayerTreeContext->outOfTreeLayerWillBeRemoved(layer.get());152 layer->platformCALayer()->removeFromSuperlayer();153 154 scheduleCompositingLayerFlush();155 }156 157 void RemoteLayerTreeDrawingArea::setPageOverlayNeedsDisplay(PageOverlay* pageOverlay, const IntRect& rect)158 {159 GraphicsLayerCARemote* layer = m_pageOverlayLayers.get(pageOverlay);160 161 if (!layer)162 return;163 164 if (!layer->drawsContent()) {165 layer->setDrawsContent(true);166 layer->setSize(m_viewSize);167 }168 169 layer->setNeedsDisplayInRect(rect);170 scheduleCompositingLayerFlush();171 }172 173 void RemoteLayerTreeDrawingArea::setPageOverlayOpacity(PageOverlay* pageOverlay, float opacity)174 {175 GraphicsLayerCARemote* layer = m_pageOverlayLayers.get(pageOverlay);176 177 if (!layer)178 return;179 180 layer->setOpacity(opacity);181 scheduleCompositingLayerFlush();182 }183 184 void RemoteLayerTreeDrawingArea::clearPageOverlay(PageOverlay* pageOverlay)185 {186 GraphicsLayer* layer = m_pageOverlayLayers.get(pageOverlay);187 188 if (!layer)189 return;190 191 layer->setDrawsContent(false);192 layer->setSize(IntSize());193 scheduleCompositingLayerFlush();194 }195 196 void RemoteLayerTreeDrawingArea::paintContents(const GraphicsLayer* graphicsLayer, GraphicsContext& graphicsContext, GraphicsLayerPaintingPhase, const FloatRect& clipRect)197 {198 for (const auto& overlayAndLayer : m_pageOverlayLayers) {199 if (overlayAndLayer.value.get() == graphicsLayer) {200 m_webPage->drawPageOverlay(overlayAndLayer.key, graphicsContext, enclosingIntRect(clipRect));201 break;202 }203 }204 }205 206 float RemoteLayerTreeDrawingArea::deviceScaleFactor() const207 {208 return m_webPage->corePage()->deviceScaleFactor();209 120 } 210 121 … … 284 195 285 196 frameView->setExposedRect(m_scrolledExposedRect); 286 287 for (const auto& layer : m_pageOverlayLayers.values())288 layer->flushCompositingState(m_scrolledExposedRect);289 290 197 frameView->adjustTiledBackingCoverage(); 198 199 m_webPage->pageOverlayController().didChangeExposedRect(); 291 200 } 292 201 … … 337 246 338 247 m_webPage->layoutIfNeeded(); 248 249 FloatRect visibleRect(FloatPoint(), m_viewSize); 250 visibleRect.intersect(m_scrolledExposedRect); 251 m_webPage->pageOverlayController().flushPageOverlayLayers(visibleRect); 339 252 m_webPage->corePage()->mainFrame().view()->flushCompositingStateIncludingSubframes(); 340 341 m_remoteLayerTreeContext->flushOutOfTreeLayers(); 253 m_rootLayer->flushCompositingStateForThisLayerOnly(); 342 254 343 255 // FIXME: minize these transactions if nothing changed. 344 256 RemoteLayerTreeTransaction layerTransaction; 345 m_remoteLayerTreeContext->buildTransaction(layerTransaction, * m_rootLayer);257 m_remoteLayerTreeContext->buildTransaction(layerTransaction, *toGraphicsLayerCARemote(m_rootLayer.get())->platformCALayer()); 346 258 m_webPage->willCommitLayerTree(layerTransaction); 347 259 -
trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
r165748 r166975 32 32 #include "LayerTreeContext.h" 33 33 #include <WebCore/FloatRect.h> 34 #include <WebCore/GraphicsLayerClient.h>35 34 #include <WebCore/LayerFlushScheduler.h> 36 35 #include <WebCore/LayerFlushSchedulerClient.h> … … 52 51 class LayerHostingContext; 53 52 54 class TiledCoreAnimationDrawingArea : public DrawingArea, WebCore:: GraphicsLayerClient, WebCore::LayerFlushSchedulerClient {53 class TiledCoreAnimationDrawingArea : public DrawingArea, WebCore::LayerFlushSchedulerClient { 55 54 public: 56 55 TiledCoreAnimationDrawingArea(WebPage*, const WebPageCreationParameters&); … … 72 71 virtual void scheduleCompositingLayerFlush() override; 73 72 74 virtual void didInstallPageOverlay(PageOverlay*) override;75 virtual void didUninstallPageOverlay(PageOverlay*) override;76 virtual void setPageOverlayNeedsDisplay(PageOverlay*, const WebCore::IntRect&) override;77 virtual void setPageOverlayOpacity(PageOverlay*, float) override;78 virtual void clearPageOverlay(PageOverlay*) override;79 73 virtual void updatePreferences(const WebPreferencesStore&) override; 80 74 virtual void mainFrameContentSizeChanged(const WebCore::IntSize&) override; … … 85 79 virtual bool supportsAsyncScrolling() override { return true; } 86 80 87 virtual void didChangeScrollOffsetForAnyFrame() override;88 89 81 virtual void dispatchAfterEnsuringUpdatedScrollPosition(std::function<void ()>) override; 90 82 91 83 virtual bool shouldUseTiledBackingForFrameView(const WebCore::FrameView*) override; 92 93 // WebCore::GraphicsLayerClient94 virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time) override;95 virtual void notifyFlushRequired(const WebCore::GraphicsLayer*) override;96 virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::FloatRect& clipRect) override;97 virtual float deviceScaleFactor() const override;98 virtual void didCommitChangesForLayer(const WebCore::GraphicsLayer*) const override;99 84 100 85 // WebCore::LayerFlushSchedulerClient … … 120 105 void setRootCompositingLayer(CALayer *); 121 106 122 void createPageOverlayLayer(PageOverlay*);123 void destroyPageOverlayLayer(PageOverlay*);124 107 WebCore::TiledBacking* mainFrameTiledBacking() const; 125 108 void updateDebugInfoLayer(bool showLayer); … … 127 110 void updateIntrinsicContentSizeTimerFired(WebCore::Timer<TiledCoreAnimationDrawingArea>*); 128 111 void updateScrolledExposedRect(); 129 130 void invalidateAllPageOverlays();131 112 132 113 bool m_layerTreeStateIsFrozen; … … 140 121 141 122 RetainPtr<CALayer> m_pendingRootLayer; 142 143 typedef HashMap<PageOverlay*, std::unique_ptr<WebCore::GraphicsLayer>> PageOverlayLayerMap;144 PageOverlayLayerMap m_pageOverlayLayers;145 mutable HashMap<const WebCore::GraphicsLayer*, RetainPtr<CALayer>> m_pageOverlayPlatformLayers;146 123 147 124 bool m_isPaintingSuspended; -
trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
r166958 r166975 111 111 } 112 112 113 void TiledCoreAnimationDrawingArea::invalidateAllPageOverlays()114 {115 for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it)116 it->value->setNeedsDisplay();117 }118 119 void TiledCoreAnimationDrawingArea::didChangeScrollOffsetForAnyFrame()120 {121 invalidateAllPageOverlays();122 }123 124 113 void TiledCoreAnimationDrawingArea::setRootCompositingLayer(GraphicsLayer* graphicsLayer) 125 114 { … … 186 175 } 187 176 188 void TiledCoreAnimationDrawingArea::didInstallPageOverlay(PageOverlay* pageOverlay)189 {190 #if ENABLE(ASYNC_SCROLLING)191 if (ScrollingCoordinator* scrollingCoordinator = m_webPage->corePage()->scrollingCoordinator())192 scrollingCoordinator->setForceSynchronousScrollLayerPositionUpdates(true);193 #endif194 195 createPageOverlayLayer(pageOverlay);196 }197 198 void TiledCoreAnimationDrawingArea::didUninstallPageOverlay(PageOverlay* pageOverlay)199 {200 destroyPageOverlayLayer(pageOverlay);201 scheduleCompositingLayerFlush();202 203 if (m_pageOverlayLayers.size())204 return;205 206 #if ENABLE(ASYNC_SCROLLING)207 if (Page* page = m_webPage->corePage()) {208 if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordinator())209 scrollingCoordinator->setForceSynchronousScrollLayerPositionUpdates(false);210 }211 #endif212 }213 214 void TiledCoreAnimationDrawingArea::setPageOverlayNeedsDisplay(PageOverlay* pageOverlay, const IntRect& rect)215 {216 GraphicsLayer* layer = m_pageOverlayLayers.get(pageOverlay);217 218 if (!layer)219 return;220 221 if (!layer->drawsContent()) {222 layer->setDrawsContent(true);223 layer->setSize(expandedIntSize(FloatSize(m_hostingLayer.get().frame.size)));224 }225 226 layer->setNeedsDisplayInRect(rect);227 scheduleCompositingLayerFlush();228 }229 230 void TiledCoreAnimationDrawingArea::setPageOverlayOpacity(PageOverlay* pageOverlay, float opacity)231 {232 GraphicsLayer* layer = m_pageOverlayLayers.get(pageOverlay);233 234 if (!layer)235 return;236 237 layer->setOpacity(opacity);238 scheduleCompositingLayerFlush();239 }240 241 void TiledCoreAnimationDrawingArea::clearPageOverlay(PageOverlay* pageOverlay)242 {243 GraphicsLayer* layer = m_pageOverlayLayers.get(pageOverlay);244 245 if (!layer)246 return;247 248 layer->setDrawsContent(false);249 layer->setSize(IntSize());250 scheduleCompositingLayerFlush();251 }252 253 177 void TiledCoreAnimationDrawingArea::updatePreferences(const WebPreferencesStore&) 254 178 { … … 261 185 } 262 186 #endif 263 264 for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it) {265 it->value->setAcceleratesDrawing(settings.acceleratedDrawingEnabled());266 it->value->setShowDebugBorder(settings.showDebugBorders());267 it->value->setShowRepaintCounter(settings.showRepaintCounter());268 }269 187 270 188 // Fixed position elements need to be composited and create stacking contexts … … 345 263 } 346 264 347 void TiledCoreAnimationDrawingArea::notifyAnimationStarted(const GraphicsLayer*, double)348 {349 }350 351 void TiledCoreAnimationDrawingArea::notifyFlushRequired(const GraphicsLayer*)352 {353 }354 355 void TiledCoreAnimationDrawingArea::paintContents(const GraphicsLayer* graphicsLayer, GraphicsContext& graphicsContext, GraphicsLayerPaintingPhase, const FloatRect& clipRect)356 {357 for (auto it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it) {358 if (it->value.get() == graphicsLayer) {359 m_webPage->drawPageOverlay(it->key, graphicsContext, enclosingIntRect(clipRect));360 break;361 }362 }363 }364 365 float TiledCoreAnimationDrawingArea::deviceScaleFactor() const366 {367 return m_webPage->corePage()->deviceScaleFactor();368 }369 370 265 bool TiledCoreAnimationDrawingArea::flushLayers() 371 266 { … … 384 279 FloatRect visibleRect = [m_hostingLayer frame]; 385 280 visibleRect.intersect(m_scrolledExposedRect); 386 387 for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it) { 388 GraphicsLayer* layer = it->value.get(); 389 layer->flushCompositingState(visibleRect); 390 } 281 m_webPage->pageOverlayController().flushPageOverlayLayers(visibleRect); 391 282 392 283 bool returnValue = m_webPage->corePage()->mainFrame().view()->flushCompositingStateIncludingSubframes(); … … 450 341 451 342 frameView->setExposedRect(m_scrolledExposedRect); 452 453 for (const auto& layer : m_pageOverlayLayers.values())454 layer->flushCompositingState(m_scrolledExposedRect);455 456 343 frameView->adjustTiledBackingCoverage(); 344 345 m_webPage->pageOverlayController().didChangeExposedRect(); 457 346 } 458 347 … … 479 368 } 480 369 481 for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it) {482 GraphicsLayer* layer = it->value.get();483 if (layer->drawsContent())484 layer->setSize(viewSize);485 }486 487 370 if (!m_layerTreeStateIsFrozen) 488 371 flushLayers(); 489 490 invalidateAllPageOverlays();491 372 492 373 [CATransaction begin]; … … 511 392 { 512 393 m_webPage->setDeviceScaleFactor(deviceScaleFactor); 513 514 for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it)515 it->value->noteDeviceOrPageScaleFactorChangedIncludingDescendants();516 394 } 517 395 … … 568 446 [CATransaction setDisableActions:YES]; 569 447 570 [m_hostingLayer setSublayers:layer ? @[ layer ] : @[ ]];448 [m_hostingLayer setSublayers:layer ? @[ layer, m_webPage->pageOverlayController().rootLayer()->platformLayer() ] : @[ ]]; 571 449 572 450 bool hadRootLayer = !!m_rootLayer; … … 577 455 m_layerHostingContext->setRootLayer(layer ? m_hostingLayer.get() : 0); 578 456 579 for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it)580 [m_hostingLayer addSublayer:it->value->platformLayer()];581 582 457 updateDebugInfoLayer(m_webPage->corePage()->settings().showTiledScrollingIndicator()); 583 458 584 459 [CATransaction commit]; 585 }586 587 void TiledCoreAnimationDrawingArea::createPageOverlayLayer(PageOverlay* pageOverlay)588 {589 std::unique_ptr<GraphicsLayer> layer = GraphicsLayer::create(graphicsLayerFactory(), this);590 #ifndef NDEBUG591 layer->setName("page overlay content");592 #endif593 594 layer->setAcceleratesDrawing(m_webPage->corePage()->settings().acceleratedDrawingEnabled());595 layer->setShowDebugBorder(m_webPage->corePage()->settings().showDebugBorders());596 layer->setShowRepaintCounter(m_webPage->corePage()->settings().showRepaintCounter());597 598 m_pageOverlayPlatformLayers.set(layer.get(), layer->platformLayer());599 600 [CATransaction begin];601 [CATransaction setDisableActions:YES];602 603 [m_hostingLayer addSublayer:layer->platformLayer()];604 605 [CATransaction commit];606 607 m_pageOverlayLayers.add(pageOverlay, std::move(layer));608 }609 610 void TiledCoreAnimationDrawingArea::destroyPageOverlayLayer(PageOverlay* pageOverlay)611 {612 std::unique_ptr<GraphicsLayer> layer = m_pageOverlayLayers.take(pageOverlay);613 ASSERT(layer);614 615 [CATransaction begin];616 [CATransaction setDisableActions:YES];617 618 [layer->platformLayer() removeFromSuperlayer];619 620 [CATransaction commit];621 622 m_pageOverlayPlatformLayers.remove(layer.get());623 }624 625 void TiledCoreAnimationDrawingArea::didCommitChangesForLayer(const GraphicsLayer* layer) const626 {627 RetainPtr<CALayer> oldPlatformLayer = m_pageOverlayPlatformLayers.get(layer);628 629 if (!oldPlatformLayer)630 return;631 632 if (oldPlatformLayer.get() == layer->platformLayer())633 return;634 635 [CATransaction begin];636 [CATransaction setDisableActions:YES];637 638 [m_hostingLayer insertSublayer:layer->platformLayer() above:oldPlatformLayer.get()];639 [oldPlatformLayer removeFromSuperlayer];640 641 [CATransaction commit];642 643 m_pageOverlayPlatformLayers.set(layer, layer->platformLayer());644 460 } 645 461 -
trunk/Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm
r166224 r166975 76 76 - (NSArray *)accessibilityParameterizedAttributeNames 77 77 { 78 WKRetainPtr<WKArrayRef> result = adoptWK(m_page->pageOverlayCo pyAccessibilityAttributesNames(true));78 WKRetainPtr<WKArrayRef> result = adoptWK(m_page->pageOverlayController().copyAccessibilityAttributesNames(true)); 79 79 if (!result) 80 80 return nil; … … 173 173 174 174 WKRetainPtr<WKStringRef> attributeRef = adoptWK(WKStringCreateWithCFString((CFStringRef)attribute)); 175 WKRetainPtr<WKTypeRef> result = adoptWK(m_page->pageOverlayCo pyAccessibilityAttributeValue(attributeRef.get(), pageOverlayParameter.get()));175 WKRetainPtr<WKTypeRef> result = adoptWK(m_page->pageOverlayController().copyAccessibilityAttributeValue(attributeRef.get(), pageOverlayParameter.get())); 176 176 if (!result) 177 177 return nil;
Note: See TracChangeset
for help on using the changeset viewer.