Changeset 140798 in webkit


Ignore:
Timestamp:
Jan 25, 2013 1:03:59 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Web Inspector: add checkbox for continuous painting to the inspector's settings
https://bugs.webkit.org/show_bug.cgi?id=107352

Patch by Eberhard Graether <egraether@google.com> on 2013-01-25
Reviewed by Pavel Feldman.

This change adds a checkbox to activate continuous painting to the WebInspector's
rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The
setting is visible if InspectorClient::canContinuouslyPaint() returns true.

Source/Platform:

  • chromium/public/WebLayerTreeView.h:

(WebLayerTreeView):
(WebKit::WebLayerTreeView::setContinuousPaintingEnabled):

Source/WebCore:

No new tests.

  • English.lproj/localizedStrings.js:
  • inspector/Inspector.json:
  • inspector/InspectorClient.h:

(WebCore::InspectorClient::canContinuouslyPaint):
(WebCore::InspectorClient::setContinuousPaintingEnabled):
(InspectorClient):

  • inspector/InspectorPageAgent.cpp:

(PageAgentState):
(WebCore::InspectorPageAgent::restore):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::canContinuouslyPaint):
(WebCore):
(WebCore::InspectorPageAgent::setContinuousPaintingEnabled):

  • inspector/InspectorPageAgent.h:
  • inspector/front-end/Settings.js:
  • inspector/front-end/SettingsScreen.js:

(WebInspector.GenericSettingsTab):
(WebInspector.GenericSettingsTab.prototype.get _continuousPaintingChanged):

  • inspector/front-end/inspector.js:

(WebInspector.doLoadedDone):

Source/WebKit/chromium:

  • public/WebView.h:

(WebView):

  • src/InspectorClientImpl.cpp:

(WebKit::InspectorClientImpl::canContinuouslyPaint):
(WebKit):
(WebKit::InspectorClientImpl::setContinuousPaintingEnabled):

  • src/InspectorClientImpl.h:

(InspectorClientImpl):

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::setContinuousPaintingEnabled):
(WebKit):
(WebKit::WebViewImpl::setIsAcceleratedCompositingActive):

  • src/WebViewImpl.h:
Location:
trunk/Source
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/Platform/ChangeLog

    r140499 r140798  
     12013-01-25  Eberhard Graether  <egraether@google.com>
     2
     3        Web Inspector: add checkbox for continuous painting to the inspector's settings
     4        https://bugs.webkit.org/show_bug.cgi?id=107352
     5
     6        Reviewed by Pavel Feldman.
     7
     8        This change adds a checkbox to activate continuous painting to the WebInspector's
     9        rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The
     10        setting is visible if InspectorClient::canContinuouslyPaint() returns true.
     11
     12        * chromium/public/WebLayerTreeView.h:
     13        (WebLayerTreeView):
     14        (WebKit::WebLayerTreeView::setContinuousPaintingEnabled):
     15
    1162013-01-22  Nat Duca  <nduca@chromium.org>
    217
  • trunk/Source/Platform/chromium/public/WebLayerTreeView.h

    r138831 r140798  
    184184    virtual void setShowPaintRects(bool) { }
    185185
     186    // Toggles continuous painting
     187    virtual void setContinuousPaintingEnabled(bool) { }
     188
    186189    // FIXME: Remove this.
    187190    virtual void loseCompositorContext(int numTimes) { }
  • trunk/Source/WebCore/ChangeLog

    r140794 r140798  
     12013-01-25  Eberhard Graether  <egraether@google.com>
     2
     3        Web Inspector: add checkbox for continuous painting to the inspector's settings
     4        https://bugs.webkit.org/show_bug.cgi?id=107352
     5
     6        Reviewed by Pavel Feldman.
     7
     8        This change adds a checkbox to activate continuous painting to the WebInspector's
     9        rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The
     10        setting is visible if InspectorClient::canContinuouslyPaint() returns true.
     11
     12        No new tests.
     13
     14        * English.lproj/localizedStrings.js:
     15        * inspector/Inspector.json:
     16        * inspector/InspectorClient.h:
     17        (WebCore::InspectorClient::canContinuouslyPaint):
     18        (WebCore::InspectorClient::setContinuousPaintingEnabled):
     19        (InspectorClient):
     20        * inspector/InspectorPageAgent.cpp:
     21        (PageAgentState):
     22        (WebCore::InspectorPageAgent::restore):
     23        (WebCore::InspectorPageAgent::disable):
     24        (WebCore::InspectorPageAgent::canContinuouslyPaint):
     25        (WebCore):
     26        (WebCore::InspectorPageAgent::setContinuousPaintingEnabled):
     27        * inspector/InspectorPageAgent.h:
     28        * inspector/front-end/Settings.js:
     29        * inspector/front-end/SettingsScreen.js:
     30        (WebInspector.GenericSettingsTab):
     31        (WebInspector.GenericSettingsTab.prototype.get _continuousPaintingChanged):
     32        * inspector/front-end/inspector.js:
     33        (WebInspector.doLoadedDone):
     34
    1352013-01-25  Dominic Mazzoni  <dmazzoni@google.com>
    236
  • trunk/Source/WebCore/English.lproj/localizedStrings.js

    r140678 r140798  
    181181localizedStrings["Enable Breakpoint"] = "Enable Breakpoint";
    182182localizedStrings["Enable breakpoint"] = "Enable breakpoint";
     183localizedStrings["Enable continuous page repainting"] = "Enable continuous page repainting";
    183184localizedStrings["Enable Debugging"] = "Enable Debugging";
    184185localizedStrings["Enable Profiling"] = "Enable Profiling";
  • trunk/Source/WebCore/inspector/Inspector.json

    r140678 r140798  
    363363                "parameters": [
    364364                    { "name": "show", "type": "boolean", "description": "True for showing the FPS counter" }
     365                ],
     366                "hidden": true
     367            },
     368            {
     369                "name": "canContinuouslyPaint",
     370                "description": "Tells if backend supports continuous painting",
     371                "returns": [
     372                    { "name": "value", "type": "boolean", "description": "True if continuous painting is available" }
     373                ],
     374                "hidden": true
     375            },
     376            {
     377                "name": "setContinuousPaintingEnabled",
     378                "description": "Requests that backend enables continuous painting",
     379                "parameters": [
     380                    { "name": "enabled", "type": "boolean", "description": "True for enabling cointinuous painting" }
    365381                ],
    366382                "hidden": true
  • trunk/Source/WebCore/inspector/InspectorClient.h

    r138236 r140798  
    7777    virtual void setShowFPSCounter(bool) { }
    7878
     79    virtual bool canContinuouslyPaint() { return false; }
     80    virtual void setContinuousPaintingEnabled(bool) { }
     81
    7982    virtual bool supportsFrameInstrumentation() { return false; }
    8083
  • trunk/Source/WebCore/inspector/InspectorPageAgent.cpp

    r140649 r140798  
    9494static const char pageAgentFitWindow[] = "pageAgentFitWindow";
    9595static const char pageAgentShowFPSCounter[] = "pageAgentShowFPSCounter";
     96static const char pageAgentContinuousPaintingEnabled[] = "pageAgentContinuousPaintingEnabled";
    9697static const char pageAgentShowPaintRects[] = "pageAgentShowPaintRects";
    9798#if ENABLE(TOUCH_EVENTS)
     
    367368        String emulatedMedia = m_state->getString(PageAgentState::pageAgentEmulatedMedia);
    368369        setEmulatedMedia(0, emulatedMedia);
     370        bool continuousPaintingEnabled = m_state->getBoolean(PageAgentState::pageAgentContinuousPaintingEnabled);
     371        setContinuousPaintingEnabled(0, continuousPaintingEnabled);
    369372
    370373        int currentWidth = static_cast<int>(m_state->getLong(PageAgentState::pageAgentScreenWidthOverride));
     
    402405    setShowFPSCounter(0, false);
    403406    setEmulatedMedia(0, "");
     407    setContinuousPaintingEnabled(0, false);
    404408
    405409    // When disabling the agent, reset the override values.
     
    750754}
    751755
     756void InspectorPageAgent::canContinuouslyPaint(ErrorString*, bool* outParam)
     757{
     758    *outParam = m_client->canContinuouslyPaint();
     759}
     760
     761void InspectorPageAgent::setContinuousPaintingEnabled(ErrorString*, bool enabled)
     762{
     763    m_state->setBoolean(PageAgentState::pageAgentContinuousPaintingEnabled, enabled);
     764    m_client->setContinuousPaintingEnabled(enabled);
     765
     766    if (!enabled && mainFrame() && mainFrame()->view())
     767        mainFrame()->view()->invalidate();
     768}
     769
    752770void InspectorPageAgent::getScriptExecutionStatus(ErrorString*, PageCommandHandler::Result::Enum* status)
    753771{
  • trunk/Source/WebCore/inspector/InspectorPageAgent.h

    r140649 r140798  
    112112    virtual void canShowFPSCounter(ErrorString*, bool*);
    113113    virtual void setShowFPSCounter(ErrorString*, bool show);
     114    virtual void canContinuouslyPaint(ErrorString*, bool*);
     115    virtual void setContinuousPaintingEnabled(ErrorString*, bool enabled);
    114116    virtual void getScriptExecutionStatus(ErrorString*, PageCommandHandler::Result::Enum*);
    115117    virtual void setScriptExecutionDisabled(ErrorString*, bool);
  • trunk/Source/WebCore/inspector/front-end/Settings.js

    r140333 r140798  
    6161    canOverrideGeolocation: false,
    6262    canOverrideDeviceOrientation: false,
    63     canShowFPSCounter: false
     63    canShowFPSCounter: false,
     64    canContinuouslyPaint: false
    6465}
    6566
     
    100101    this.emulateTouchEvents = this.createSetting("emulateTouchEvents", false);
    101102    this.showPaintRects = this.createSetting("showPaintRects", false);
     103    this.continuousPainting = this.createSetting("continuousPainting", false);
    102104    this.showFPSCounter = this.createSetting("showFPSCounter", false);
    103105    this.showShadowDOM = this.createSetting("showShadowDOM", false);
  • trunk/Source/WebCore/inspector/front-end/SettingsScreen.js

    r140124 r140798  
    297297        WebInspector.settings.showFPSCounter.addChangeListener(this._showFPSCounterChanged, this);
    298298    }
     299    if (Capabilities.canContinuouslyPaint) {
     300        p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Enable continuous page repainting"), WebInspector.settings.continuousPainting));
     301        WebInspector.settings.continuousPainting.addChangeListener(this._continuousPaintingChanged, this);
     302    }
    299303
    300304    p = this._appendSection(WebInspector.UIString("Sources"));
     
    345349    },
    346350
     351    _continuousPaintingChanged: function()
     352    {
     353        PageAgent.setContinuousPaintingEnabled(WebInspector.settings.continuousPainting.get());
     354    },
     355
    347356    _updateScriptDisabledCheckbox: function()
    348357    {
  • trunk/Source/WebCore/inspector/front-end/inspector.js

    r139978 r140798  
    373373    TimelineAgent.canMonitorMainThread(WebInspector._initializeCapability.bind(WebInspector, "timelineCanMonitorMainThread", null));
    374374    PageAgent.canShowFPSCounter(WebInspector._initializeCapability.bind(WebInspector, "canShowFPSCounter", null));
     375    PageAgent.canContinuouslyPaint(WebInspector._initializeCapability.bind(WebInspector, "canContinuouslyPaint", null));
    375376    PageAgent.canOverrideDeviceMetrics(WebInspector._initializeCapability.bind(WebInspector, "canOverrideDeviceMetrics", null));
    376377    PageAgent.canOverrideGeolocation(WebInspector._initializeCapability.bind(WebInspector, "canOverrideGeolocation", null));
     
    491492    if (WebInspector.settings.showPaintRects.get())
    492493        PageAgent.setShowPaintRects(true);
     494
     495    if (WebInspector.settings.continuousPainting.get())
     496        PageAgent.setContinuousPaintingEnabled(true);
    493497
    494498    if (WebInspector.settings.javaScriptDisabled.get())
  • trunk/Source/WebKit/chromium/ChangeLog

    r140778 r140798  
     12013-01-25  Eberhard Graether  <egraether@google.com>
     2
     3        Web Inspector: add checkbox for continuous painting to the inspector's settings
     4        https://bugs.webkit.org/show_bug.cgi?id=107352
     5
     6        Reviewed by Pavel Feldman.
     7
     8        This change adds a checkbox to activate continuous painting to the WebInspector's
     9        rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The
     10        setting is visible if InspectorClient::canContinuouslyPaint() returns true.
     11
     12        * public/WebView.h:
     13        (WebView):
     14        * src/InspectorClientImpl.cpp:
     15        (WebKit::InspectorClientImpl::canContinuouslyPaint):
     16        (WebKit):
     17        (WebKit::InspectorClientImpl::setContinuousPaintingEnabled):
     18        * src/InspectorClientImpl.h:
     19        (InspectorClientImpl):
     20        * src/WebViewImpl.cpp:
     21        (WebKit::WebViewImpl::setContinuousPaintingEnabled):
     22        (WebKit):
     23        (WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
     24        * src/WebViewImpl.h:
     25
    1262013-01-24  Keishi Hattori  <keishi@webkit.org>
    227
  • trunk/Source/WebKit/chromium/public/WebView.h

    r140621 r140798  
    473473    virtual void setShowPaintRects(bool) = 0;
    474474    virtual void setShowFPSCounter(bool) = 0;
     475    virtual void setContinuousPaintingEnabled(bool) = 0;
    475476
    476477    // Benchmarking support -------------------------------------------------
  • trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp

    r138236 r140798  
    173173}
    174174
     175bool InspectorClientImpl::canContinuouslyPaint()
     176{
     177    return true;
     178}
     179
     180void InspectorClientImpl::setContinuousPaintingEnabled(bool enabled)
     181{
     182    m_inspectedWebView->setContinuousPaintingEnabled(enabled);
     183}
     184
    175185bool InspectorClientImpl::supportsFrameInstrumentation()
    176186{
  • trunk/Source/WebKit/chromium/src/InspectorClientImpl.h

    r140148 r140798  
    8080    virtual void setShowFPSCounter(bool);
    8181
     82    virtual bool canContinuouslyPaint();
     83    virtual void setContinuousPaintingEnabled(bool);
     84
    8285    virtual bool supportsFrameInstrumentation();
    8386
  • trunk/Source/WebKit/chromium/src/WebViewImpl.cpp

    r140774 r140798  
    874874}
    875875
     876void WebViewImpl::setContinuousPaintingEnabled(bool enabled)
     877{
     878    if (isAcceleratedCompositingActive()) {
     879        TRACE_EVENT0("webkit", "WebViewImpl::setContinuousPaintingEnabled");
     880        m_layerTreeView->setContinuousPaintingEnabled(enabled);
     881    }
     882    m_continuousPaintingEnabled = enabled;
     883}
     884
    876885bool WebViewImpl::handleKeyEvent(const WebKeyboardEvent& event)
    877886{
     
    40704079            m_layerTreeView->setShowFPSCounter(m_showFPSCounter);
    40714080            m_layerTreeView->setShowPaintRects(m_showPaintRects);
     4081            m_layerTreeView->setContinuousPaintingEnabled(m_continuousPaintingEnabled);
    40724082        } else {
    40734083            m_nonCompositedContentHost.clear();
  • trunk/Source/WebKit/chromium/src/WebViewImpl.h

    r140774 r140798  
    312312    virtual void setShowPaintRects(bool);
    313313    virtual void setShowFPSCounter(bool);
     314    virtual void setContinuousPaintingEnabled(bool);
    314315
    315316    // WebLayerTreeViewClient
Note: See TracChangeset for help on using the changeset viewer.