Changeset 105517 in webkit
- Timestamp:
- Jan 20, 2012 8:24:29 AM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r105504 r105517 1 2012-01-20 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> 2 3 [Qt] Trigger forcing accelerated compositing from the UI process side. 4 https://bugs.webkit.org/show_bug.cgi?id=76296 5 6 Reviewed by Noam Rosenthal. 7 8 Some messages can be sent from the web view to the LayerTreeHost before 9 accelerated compositing is entered on the web process and signaled back. 10 By letting the UI process decide if AC has to be forced, we can create 11 the LayerTreeHostProxy earlier to send messages to the web process while 12 AC is being entered there. 13 14 This patch also fixes the flow of DidRenderFrame and RenderNextFrame messages 15 by setting the m_waitingForUIProcess flag properly and only send the 16 RenderNextFrame once the painting thread on the UI process is ready to paint. 17 18 This fixes the first visible content rect message not being received when 19 loading pages from the disk. 20 21 * Shared/WebPreferencesStore.h: 22 * UIProcess/API/qt/qquickwebview.cpp: 23 (QQuickWebViewPrivate::initialize): 24 * UIProcess/DrawingAreaProxyImpl.cpp: 25 (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl): 26 * UIProcess/qt/LayerTreeHostProxyQt.cpp: 27 (WebKit::LayerTreeHostProxy::flushLayerChanges): 28 (WebKit::LayerTreeHostProxy::didRenderFrame): 29 * WebProcess/WebPage/DrawingAreaImpl.cpp: 30 (WebKit::DrawingAreaImpl::DrawingAreaImpl): 31 * WebProcess/WebPage/WebPage.cpp: 32 (WebKit::WebPage::updatePreferences): 33 * WebProcess/WebPage/qt/LayerTreeHostQt.cpp: 34 (WebKit::LayerTreeHostQt::performScheduledLayerFlush): 35 * WebProcess/WebPage/qt/WebPageQt.cpp: 36 (WebKit::WebPage::platformInitialize): 37 1 38 2012-01-20 Sheriff Bot <webkit.review.bot@gmail.com> 2 39 -
trunk/Source/WebKit2/Shared/WebPreferencesStore.h
r105504 r105517 67 67 macro(NeedsSiteSpecificQuirks, needsSiteSpecificQuirks, Bool, bool, false) \ 68 68 macro(AcceleratedCompositingEnabled, acceleratedCompositingEnabled, Bool, bool, true) \ 69 macro(ForceCompositingMode, forceCompositingMode, Bool, bool, false) \ 69 70 macro(AcceleratedDrawingEnabled, acceleratedDrawingEnabled, Bool, bool, false) \ 70 71 macro(CanvasUsesAcceleratedDrawing, canvasUsesAcceleratedDrawing, Bool, bool, true) \ -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
r105504 r105517 106 106 setUseTraditionalDesktopBehaviour(false); 107 107 webPageProxy->pageGroup()->preferences()->setAcceleratedCompositingEnabled(true); 108 webPageProxy->pageGroup()->preferences()->setForceCompositingMode(true); 108 109 109 110 pageClient.initialize(q_ptr, pageViewPrivate->eventHandler.data(), &undoController); -
trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp
r105504 r105517 31 31 #include "LayerTreeContext.h" 32 32 #include "UpdateInfo.h" 33 #include "WebPageGroup.h" 33 34 #include "WebPageProxy.h" 35 #include "WebPreferences.h" 34 36 #include "WebProcessProxy.h" 35 37 #include <WebCore/Region.h> … … 57 59 , m_discardBackingStoreTimer(RunLoop::current(), this, &DrawingAreaProxyImpl::discardBackingStore) 58 60 { 61 #if USE(TEXTURE_MAPPER) 62 // Construct the proxy early to allow messages to be sent to the web process while AC is entered there. 63 if (webPageProxy->pageGroup()->preferences()->forceCompositingMode()) 64 m_layerTreeHostProxy = adoptPtr(new LayerTreeHostProxy(this)); 65 #endif 59 66 } 60 67 -
trunk/Source/WebKit2/UIProcess/qt/LayerTreeHostProxyQt.cpp
r105413 r105517 432 432 { 433 433 m_rootLayer->syncCompositingState(FloatRect()); 434 // The pending tiles state is on its way for the screen, tell the web process to render the next one. 435 m_drawingAreaProxy->page()->process()->send(Messages::LayerTreeHost::RenderNextFrame(), m_drawingAreaProxy->page()->pageID()); 434 436 } 435 437 … … 572 574 void LayerTreeHostProxy::didRenderFrame() 573 575 { 574 m_drawingAreaProxy->page()->process()->send(Messages::LayerTreeHost::RenderNextFrame(), m_drawingAreaProxy->page()->pageID());575 576 pushUpdateToQueue(FlushLayerChangesMessage::create()); 576 577 updateViewport(); -
trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp
r105504 r105517 69 69 , m_exitCompositingTimer(WebProcess::shared().runLoop(), this, &DrawingAreaImpl::exitAcceleratedCompositingMode) 70 70 { 71 if (webPage->corePage()->settings()->acceleratedDrawingEnabled() )71 if (webPage->corePage()->settings()->acceleratedDrawingEnabled() || webPage->corePage()->settings()->forceCompositingMode()) 72 72 m_alwaysUseCompositing = true; 73 73 -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r105504 r105517 1841 1841 1842 1842 settings->setAcceleratedCompositingEnabled(store.getBoolValueForKey(WebPreferencesKey::acceleratedCompositingEnabledKey()) && LayerTreeHost::supportsAcceleratedCompositing()); 1843 settings->setForceCompositingMode(store.getBoolValueForKey(WebPreferencesKey::forceCompositingModeKey()) && LayerTreeHost::supportsAcceleratedCompositing()); 1843 1844 settings->setAcceleratedDrawingEnabled(store.getBoolValueForKey(WebPreferencesKey::acceleratedDrawingEnabledKey()) && LayerTreeHost::supportsAcceleratedCompositing()); 1844 1845 settings->setCanvasUsesAcceleratedDrawing(store.getBoolValueForKey(WebPreferencesKey::canvasUsesAcceleratedDrawingKey()) && LayerTreeHost::supportsAcceleratedCompositing()); -
trunk/Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp
r105413 r105517 241 241 void LayerTreeHostQt::performScheduledLayerFlush() 242 242 { 243 m_webPage->layoutIfNeeded();244 245 if (!m_isValid)246 return;247 248 243 #if USE(TILED_BACKING_STORE) 249 244 if (m_isSuspended || m_waitingForUIProcess) 250 245 return; 251 246 #endif 247 248 m_webPage->layoutIfNeeded(); 249 250 if (!m_isValid) 251 return; 252 252 253 253 m_shouldSyncFrame = false; … … 262 262 263 263 m_webPage->send(Messages::LayerTreeHostProxy::DidRenderFrame()); 264 m_waitingForUIProcess = true; 264 265 265 266 if (!m_notifyAfterScheduledLayerFlush) -
trunk/Source/WebKit2/WebProcess/WebPage/qt/WebPageQt.cpp
r105504 r105517 91 91 void WebPage::platformInitialize() 92 92 { 93 Settings* settings = m_page->settings();94 95 // If accelerated compositing is enabled, we want to be in force-compositing mode, so that we don't switch between composited/non-composited state.96 settings->setForceCompositingMode(true);97 93 } 98 94
Note: See TracChangeset
for help on using the changeset viewer.