Changeset 128245 in webkit


Ignore:
Timestamp:
Sep 11, 2012 5:00:18 PM (12 years ago)
Author:
andersca@apple.com
Message:

Accelerated compositing should always be forced when using the tiled drawing area
https://bugs.webkit.org/show_bug.cgi?id=96449

Reviewed by Andy Estes.

There's code in WebPage::updatePreferences that will turn off accelerated compositing unless accelerated drawing is enabled.
This should only be done in the non-tiled model, so move the code to DrawingAreaImpl::updatePreferences.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::updatePreferences):
This now takes a WebPreferencesStore.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::updatePreferences):
Move code here from WebPage::updatePreferences.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
Pass the WebPreferencesStore to DrawingArea::updatePreferences.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
Remove call to updatePreferences, it's going to be called by the WebPage object later.

(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
This now takes a WebPreferencesStore.

Location:
trunk/Source/WebKit2
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r128236 r128245  
     12012-09-11  Anders Carlsson  <andersca@apple.com>
     2
     3        Accelerated compositing should always be forced when using the tiled drawing area
     4        https://bugs.webkit.org/show_bug.cgi?id=96449
     5
     6        Reviewed by Andy Estes.
     7
     8        There's code in WebPage::updatePreferences that will turn off accelerated compositing unless accelerated drawing is enabled.
     9        This should only be done in the non-tiled model, so move the code to DrawingAreaImpl::updatePreferences.
     10
     11        * WebProcess/WebPage/DrawingArea.h:
     12        (WebKit::DrawingArea::updatePreferences):
     13        This now takes a WebPreferencesStore.
     14
     15        * WebProcess/WebPage/DrawingAreaImpl.cpp:
     16        (WebKit::DrawingAreaImpl::updatePreferences):
     17        Move code here from WebPage::updatePreferences.
     18
     19        * WebProcess/WebPage/WebPage.cpp:
     20        (WebKit::WebPage::updatePreferences):
     21        Pass the WebPreferencesStore to DrawingArea::updatePreferences.
     22
     23        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
     24        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
     25        (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
     26        Remove call to updatePreferences, it's going to be called by the WebPage object later.
     27
     28        (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
     29        This now takes a WebPreferencesStore.
     30
    1312012-09-11  Brady Eidson  <beidson@apple.com>
    232
  • trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h

    r124701 r128245  
    5050class WebPage;
    5151struct WebPageCreationParameters;
     52struct WebPreferencesStore;
    5253
    5354#if PLATFORM(WIN)
     
    8485
    8586    virtual void setPaintingEnabled(bool) { }
    86     virtual void updatePreferences() { }
     87    virtual void updatePreferences(const WebPreferencesStore&) { }
    8788
    8889#if USE(ACCELERATED_COMPOSITING)
  • trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp

    r125034 r128245  
    260260}
    261261
     262void DrawingAreaImpl::updatePreferences(const WebPreferencesStore& store)
     263{
     264    // <rdar://problem/10697417>: It is necessary to force compositing when accelerate drawing
     265    // is enabled on Mac so that scrollbars are always in their own layers.
     266#if PLATFORM(MAC)
     267    if (m_webPage->corePage()->settings()->acceleratedDrawingEnabled())
     268        m_webPage->corePage()->settings()->setForceCompositingMode(LayerTreeHost::supportsAcceleratedCompositing());
     269    else
     270#endif
     271        m_webPage->corePage()->settings()->setForceCompositingMode(store.getBoolValueForKey(WebPreferencesKey::forceCompositingModeKey()) && LayerTreeHost::supportsAcceleratedCompositing());
     272}
     273
    262274void DrawingAreaImpl::layerHostDidFlushLayers()
    263275{
  • trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h

    r125034 r128245  
    6767
    6868    virtual void setPaintingEnabled(bool);
     69    virtual void updatePreferences(const WebPreferencesStore&) OVERRIDE;
    6970
    7071    virtual void setRootCompositingLayer(WebCore::GraphicsLayer*);
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r128134 r128245  
    20822082    settings->setInteractiveFormValidationEnabled(store.getBoolValueForKey(WebPreferencesKey::interactiveFormValidationEnabledKey()));
    20832083
    2084     // <rdar://problem/10697417>: It is necessary to force compositing when accelerate drawing
    2085     // is enabled on Mac so that scrollbars are always in their own layers.
    2086 #if PLATFORM(MAC)
    2087     if (settings->acceleratedDrawingEnabled())
    2088         settings->setForceCompositingMode(LayerTreeHost::supportsAcceleratedCompositing());
    2089     else
    2090 #endif
    2091         settings->setForceCompositingMode(store.getBoolValueForKey(WebPreferencesKey::forceCompositingModeKey()) && LayerTreeHost::supportsAcceleratedCompositing());
    2092 
    20932084#if ENABLE(SQL_DATABASE)
    20942085    AbstractDatabase::setIsAvailable(store.getBoolValueForKey(WebPreferencesKey::databasesEnabledKey()));
     
    21352126
    21362127    if (m_drawingArea)
    2137         m_drawingArea->updatePreferences();
     2128        m_drawingArea->updatePreferences(store);
    21382129}
    21392130
  • trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h

    r120021 r128245  
    6565    virtual void didUninstallPageOverlay() OVERRIDE;
    6666    virtual void setPageOverlayNeedsDisplay(const WebCore::IntRect&) OVERRIDE;
    67     virtual void updatePreferences() OVERRIDE;
     67    virtual void updatePreferences(const WebPreferencesStore&) OVERRIDE;
    6868
    6969    virtual void dispatchAfterEnsuringUpdatedScrollPosition(const Function<void ()>&) OVERRIDE;
  • trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm

    r128132 r128245  
    7272    , m_isPaintingSuspended(!parameters.isVisible)
    7373{
    74     Page* page = webPage->corePage();
    75 
    76     // FIXME: It's weird that we're mucking around with the settings here.
     74    Page* page = m_webPage->corePage();
     75
     76    page->settings()->setScrollingCoordinatorEnabled(true);
    7777    page->settings()->setForceCompositingMode(true);
    78     page->settings()->setScrollingCoordinatorEnabled(true);
    7978
    8079    WebProcess::shared().eventDispatcher().addScrollingTreeForPage(webPage);
     
    9392    layerTreeContext.contextID = m_layerHostingContext->contextID();
    9493    m_webPage->send(Messages::DrawingAreaProxy::EnterAcceleratedCompositingMode(0, layerTreeContext));
    95 
    96     updatePreferences();
    9794}
    9895
     
    207204}
    208205
    209 void TiledCoreAnimationDrawingArea::updatePreferences()
     206void TiledCoreAnimationDrawingArea::updatePreferences(const WebPreferencesStore&)
    210207{
    211208    bool showDebugBorders = m_webPage->corePage()->settings()->showDebugBorders();
Note: See TracChangeset for help on using the changeset viewer.