[chromium] Rollout r100751, this mechanism does not work and is very slow
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 26 Jan 2012 03:08:22 +0000 (03:08 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 26 Jan 2012 03:08:22 +0000 (03:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=77055

Unreviewed rollout of http://trac.webkit.org/changeset/100751. The refresh rate mechanism is not implemented,
but it still triggers a very slow codepath and triggers races on some platforms.

Patch by James Robinson <jamesr@chromium.org> on 2012-01-25

Source/WebCore:

* platform/PlatformScreen.h:
(WebCore):
* platform/chromium/PlatformScreenChromium.cpp:
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
():
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(WebCore::CCSettings::CCSettings):
(CCSettings):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::initializeImplOnImplThread):

Source/WebKit/chromium:

* public/WebScreenInfo.h:
(WebScreenInfo):
(WebKit::WebScreenInfo::WebScreenInfo):
* src/PlatformSupport.cpp:
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
* tests/CCLayerTreeHostTest.cpp:
(WTF::CCLayerTreeHostTest::runTest):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105961 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/PlatformScreen.h
Source/WebCore/platform/chromium/PlatformScreenChromium.cpp
Source/WebCore/platform/chromium/PlatformSupport.h
Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebScreenInfo.h
Source/WebKit/chromium/src/PlatformSupport.cpp
Source/WebKit/chromium/src/WebViewImpl.cpp
Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp

index 4eb9ace..b4d3d6b 100644 (file)
@@ -1,3 +1,23 @@
+2012-01-25  James Robinson  <jamesr@chromium.org>
+
+        [chromium] Rollout r100751, this mechanism does not work and is very slow
+        https://bugs.webkit.org/show_bug.cgi?id=77055
+
+        Unreviewed rollout of http://trac.webkit.org/changeset/100751. The refresh rate mechanism is not implemented,
+        but it still triggers a very slow codepath and triggers races on some platforms.
+
+        * platform/PlatformScreen.h:
+        (WebCore):
+        * platform/chromium/PlatformScreenChromium.cpp:
+        * platform/chromium/PlatformSupport.h:
+        (PlatformSupport):
+        ():
+        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+        (WebCore::CCSettings::CCSettings):
+        (CCSettings):
+        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+        (WebCore::CCThreadProxy::initializeImplOnImplThread):
+
 2012-01-25  Mark Rowe  <mrowe@apple.com>
 
         Reapply Daniel Bates's build fix from r105847 after the exact same issue was reintroduced in r105930.
index b4c78a5..969193f 100644 (file)
@@ -51,11 +51,6 @@ namespace WebCore {
     FloatRect screenRect(Widget*);
     FloatRect screenAvailableRect(Widget*);
 
-#if PLATFORM(CHROMIUM)
-    // Measured in frames per second. 0 if the refresh rate is unknown, or not applicable.
-    double screenRefreshRate(Widget*);
-#endif
-
 #if PLATFORM(MAC)
     NSScreen *screenForWindow(NSWindow *);
 
index 44df321..79b9dcd 100644 (file)
@@ -71,9 +71,4 @@ FloatRect screenAvailableRect(Widget* widget)
     return PlatformSupport::screenAvailableRect(widget);
 }
 
-double screenRefreshRate(Widget* widget)
-{
-    return PlatformSupport::screenRefreshRate(widget);
-}
-
 } // namespace WebCore
index c8ded6e..1701775 100644 (file)
@@ -247,7 +247,6 @@ public:
     static bool screenIsMonochrome(Widget*);
     static IntRect screenRect(Widget*);
     static IntRect screenAvailableRect(Widget*);
-    static double screenRefreshRate(Widget*);
 
     // SharedTimers -------------------------------------------------------
     static void setSharedTimerFiredFunction(void (*func)());
index 20ac531..5e6a8f8 100644 (file)
@@ -533,8 +533,7 @@ void CCThreadProxy::initializeImplOnImplThread(CCCompletionEvent* completion)
     TRACE_EVENT("CCThreadProxy::initializeImplOnImplThread", this, 0);
     ASSERT(isImplThread());
     m_layerTreeHostImpl = m_layerTreeHost->createLayerTreeHostImpl(this);
-    ASSERT(m_layerTreeHostImpl->settings().refreshRate > 0);
-    const double displayRefreshIntervalMs = 1000.0 / m_layerTreeHostImpl->settings().refreshRate;
+    const double displayRefreshIntervalMs = 1000.0 / 60.0;
     OwnPtr<CCFrameRateController> frameRateController = adoptPtr(new CCFrameRateController(CCDelayBasedTimeSource::create(displayRefreshIntervalMs, CCProxy::implThread())));
     m_schedulerOnImplThread = CCScheduler::create(this, frameRateController.release());
     m_schedulerOnImplThread->setVisible(m_layerTreeHostImpl->visible());
index 7e49af1..e7639b3 100644 (file)
@@ -1,3 +1,20 @@
+2012-01-25  James Robinson  <jamesr@chromium.org>
+
+        [chromium] Rollout r100751, this mechanism does not work and is very slow
+        https://bugs.webkit.org/show_bug.cgi?id=77055
+
+        Unreviewed rollout of http://trac.webkit.org/changeset/100751. The refresh rate mechanism is not implemented,
+        but it still triggers a very slow codepath and triggers races on some platforms.
+
+        * public/WebScreenInfo.h:
+        (WebScreenInfo):
+        (WebKit::WebScreenInfo::WebScreenInfo):
+        * src/PlatformSupport.cpp:
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
+        * tests/CCLayerTreeHostTest.cpp:
+        (WTF::CCLayerTreeHostTest::runTest):
+
 2012-01-25  Eric Uhrhane  <ericu@chromium.org>
 
         Add full support for filesystem URLs.
index ac92e16..bd885f4 100644 (file)
@@ -69,16 +69,12 @@ struct WebScreenInfo {
     //   some of the rectangle's coordinates may be negative values".
     WebRect availableRect;
 
-    // Measured in frames per second. 0 if the rate is unknown or not applicable.
-    double refreshRate;
-
     WebScreenInfo()
         : horizontalDPI(0)
         , verticalDPI(0)
         , depth(0)
         , depthPerComponent(0)
-        , isMonochrome(false)
-        , refreshRate(0) { }
+        , isMonochrome(false) { }
 };
 
 } // namespace WebKit
index 24681ec..b4d479c 100644 (file)
@@ -1108,14 +1108,6 @@ IntRect PlatformSupport::screenAvailableRect(Widget* widget)
     return client->screenInfo().availableRect;
 }
 
-double PlatformSupport::screenRefreshRate(Widget* widget)
-{
-    WebWidgetClient* client = toWebWidgetClient(widget);
-    if (!client)
-        return 0;
-    return client->screenInfo().refreshRate;
-}
-
 bool PlatformSupport::popupsAllowed(NPP npp)
 {
     // FIXME: Give the embedder a way to control this.
index 52173c3..66a8a9d 100644 (file)
@@ -87,7 +87,6 @@
 #include "PlatformContextSkia.h"
 #include "PlatformKeyboardEvent.h"
 #include "PlatformMouseEvent.h"
-#include "PlatformScreen.h"
 #include "PlatformThemeChromiumLinux.h"
 #include "PlatformWheelEvent.h"
 #include "PopupContainer.h"
@@ -3010,18 +3009,11 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active)
     } else {
         TRACE_EVENT("WebViewImpl::setIsAcceleratedCompositingActive(true)", this, 0);
 
-        static const double defaultRefreshRate = 60.0;
-
         WebCore::CCSettings ccSettings;
         ccSettings.acceleratePainting = page()->settings()->acceleratedDrawingEnabled();
         ccSettings.compositeOffscreen = settings()->compositeToTextureEnabled();
         ccSettings.showFPSCounter = settings()->showFPSCounter();
         ccSettings.showPlatformLayerTree = settings()->showPlatformLayerTree();
-        ccSettings.refreshRate = screenRefreshRate(page()->mainFrame()->view());
-
-        ASSERT(ccSettings.refreshRate >= 0);
-        if (!ccSettings.refreshRate)
-            ccSettings.refreshRate = defaultRefreshRate;
 
         ccSettings.perTilePainting = page()->settings()->perTileDrawingEnabled();
         ccSettings.partialSwapEnabled = page()->settings()->partialSwapEnabled();
index 58de759..280e3af 100644 (file)
@@ -396,8 +396,6 @@ protected:
 
     virtual void runTest(bool threaded)
     {
-        m_settings.refreshRate = 100.0;
-
         if (threaded) {
             m_webThread = adoptPtr(webKitPlatformSupport()->createThread("CCLayerTreeHostTest"));
             WebCompositor::initialize(m_webThread.get());