Changeset 119046 in webkit


Ignore:
Timestamp:
May 30, 2012 8:59:39 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

[BlackBerry] Add an Accelerated Compositing layer for Web Inspector DOM highlight.
https://bugs.webkit.org/show_bug.cgi?id=81001

Source/WebKit:

Patch by Konrad Piascik <kpiascik@rim.com> on 2012-05-30
Reviewed by Antonio Gomes

Added new InspectorOverlay class

  • PlatformBlackBerry.cmake:

Source/WebKit/blackberry:

Patch by Konrad Piascik <kpiascik@rim.com> on 2012-05-30
Reviewed by Antonio Gomes.

Implemented InspectorOverlay using WebOverlayAPI.

  • Api/BackingStore.cpp:

(BlackBerry::WebKit::BackingStorePrivate::renderContents):

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::updateDelegatedOverlays):
(BlackBerry::WebKit::WebPagePrivate::commitRootLayerIfNeeded):
(BlackBerry::WebKit::WebPagePrivate::setInspectorOverlayClient):
(WebKit):

  • Api/WebPage_p.h:

(WebCore):
(WebPagePrivate):

  • WebCoreSupport/InspectorClientBlackBerry.cpp:

(WebCore::InspectorClientBlackBerry::highlight):
(WebCore::InspectorClientBlackBerry::hideHighlight):
(WebCore::InspectorClientBlackBerry::paintInspectorOverlay):
(WebCore):

  • WebCoreSupport/InspectorClientBlackBerry.h:

(InspectorClientBlackBerry):

  • WebCoreSupport/InspectorOverlay.cpp: Added.

(WebCore):
(WebCore::InspectorOverlay::create):
(WebCore::InspectorOverlay::InspectorOverlay):
(WebCore::InspectorOverlay::notifySyncRequired):
(WebCore::InspectorOverlay::paintContents):
(WebCore::InspectorOverlay::showDebugBorders):
(WebCore::InspectorOverlay::showRepaintCounter):
(WebCore::InspectorOverlay::contentsVisible):
(WebCore::InspectorOverlay::~InspectorOverlay):
(WebCore::InspectorOverlay::clear):
(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::paintWebFrame):
(WebCore::InspectorOverlay::invalidateWebFrame):

  • WebCoreSupport/InspectorOverlay.h: Added.

(WebKit):
(WebCore):
(InspectorOverlay):
(InspectorOverlayClient):
(WebCore::InspectorOverlay::setClient):
(WebCore::InspectorOverlay::notifyAnimationStarted):

Location:
trunk/Source/WebKit
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r118785 r119046  
     12012-05-30  Konrad Piascik  <kpiascik@rim.com>
     2
     3        [BlackBerry] Add an Accelerated Compositing layer for Web Inspector DOM highlight.
     4        https://bugs.webkit.org/show_bug.cgi?id=81001
     5
     6        Reviewed by Antonio Gomes
     7       
     8        Added new InspectorOverlay class
     9
     10        * PlatformBlackBerry.cmake:
     11
    1122012-05-29  Arvid Nilsson  <anilsson@rim.com>
    213
  • trunk/Source/WebKit/PlatformBlackBerry.cmake

    r118785 r119046  
    7676    blackberry/WebCoreSupport/IconDatabaseClientBlackBerry.cpp
    7777    blackberry/WebCoreSupport/InspectorClientBlackBerry.cpp
     78    blackberry/WebCoreSupport/InspectorOverlay.cpp
    7879    blackberry/WebCoreSupport/JavaScriptDebuggerBlackBerry.cpp
    7980    blackberry/WebCoreSupport/NotificationPresenterImpl.cpp
  • trunk/Source/WebKit/blackberry/Api/BackingStore.cpp

    r118696 r119046  
    24442444            WebCore::IntPoint scrollPosition = m_client->frame()->view()->scrollPosition();
    24452445            graphicsContext.translate(scrollPosition.x(), scrollPosition.y());
    2446             m_webPage->d->m_page->inspectorController()->drawHighlight(graphicsContext);
     2446            if (m_webPage->d->m_inspectorOverlay)
     2447                m_webPage->d->m_inspectorOverlay->paintWebFrame(graphicsContext);
    24472448        }
    24482449#endif
  • trunk/Source/WebKit/blackberry/Api/WebPage.cpp

    r118895 r119046  
    7676#include "InspectorClientBlackBerry.h"
    7777#include "InspectorController.h"
     78#include "InspectorOverlay.h"
    7879#include "JavaScriptDebuggerBlackBerry.h"
    7980#include "LayerWebKitThread.h"
     
    32183219        if (m_selectionHandler->isSelectionActive())
    32193220            m_selectionHandler->selectionPositionChanged(true /* visualChangeOnly */);
     3221        if (m_inspectorOverlay)
     3222            m_inspectorOverlay->update();
    32203223
    32213224    } else if (m_selectionHandler->isSelectionActive()) {
     
    57605763    if (m_frameLayers && m_frameLayers->hasLayer())
    57615764        m_frameLayers->commitOnWebKitThread(scale);
     5765
    57625766    updateDelegatedOverlays();
    57635767    if (m_overlayLayer)
     
    62856289}
    62866290
    6287 }
    6288 }
     6291void WebPagePrivate::setInspectorOverlayClient(WebCore::InspectorOverlay::InspectorOverlayClient* inspectorOverlayClient)
     6292{
     6293    if (inspectorOverlayClient) {
     6294        if (!m_inspectorOverlay)
     6295            m_inspectorOverlay = WebCore::InspectorOverlay::create(this, inspectorOverlayClient);
     6296        else
     6297            m_inspectorOverlay->setClient(inspectorOverlayClient);
     6298        m_inspectorOverlay->update();
     6299        scheduleRootLayerCommit();
     6300    } else {
     6301        if (m_inspectorOverlay) {
     6302            m_inspectorOverlay->clear();
     6303            m_inspectorOverlay = nullptr;
     6304            scheduleRootLayerCommit();
     6305        }
     6306    }
     6307}
     6308
     6309}
     6310}
  • trunk/Source/WebKit/blackberry/Api/WebPage_p.h

    r118785 r119046  
    2121
    2222#include "ChromeClient.h"
     23#include "InspectorOverlay.h"
    2324#if USE(ACCELERATED_COMPOSITING)
    2425#include "GLES2Context.h"
     
    4344class Frame;
    4445class GeolocationControllerClientBlackBerry;
     46class GraphicsLayerBlackBerry;
    4547class JavaScriptDebuggerBlackBerry;
    4648class LayerWebKitThread;
     
    426428    void deferredTasksTimerFired(WebCore::Timer<WebPagePrivate>*);
    427429
     430    void setInspectorOverlayClient(WebCore::InspectorOverlay::InspectorOverlayClient*);
     431
    428432    WebPage* m_webPage;
    429433    WebPageClient* m_client;
     
    549553    bool m_hasInRegionScrollableAreas;
    550554    bool m_updateDelegatedOverlaysDispatched;
     555    OwnPtr<WebCore::InspectorOverlay> m_inspectorOverlay;
    551556
    552557    // There is no need to initialize the following members in WebPagePrivate's constructor,
  • trunk/Source/WebKit/blackberry/ChangeLog

    r118912 r119046  
     12012-05-30  Konrad Piascik  <kpiascik@rim.com>
     2
     3        [BlackBerry] Add an Accelerated Compositing layer for Web Inspector DOM highlight.
     4        https://bugs.webkit.org/show_bug.cgi?id=81001
     5
     6        Reviewed by Antonio Gomes.
     7       
     8        Implemented InspectorOverlay using WebOverlayAPI.
     9
     10        * Api/BackingStore.cpp:
     11        (BlackBerry::WebKit::BackingStorePrivate::renderContents):
     12        * Api/WebPage.cpp:
     13        (BlackBerry::WebKit::WebPagePrivate::updateDelegatedOverlays):
     14        (BlackBerry::WebKit::WebPagePrivate::commitRootLayerIfNeeded):
     15        (BlackBerry::WebKit::WebPagePrivate::setInspectorOverlayClient):
     16        (WebKit):
     17        * Api/WebPage_p.h:
     18        (WebCore):
     19        (WebPagePrivate):
     20        * WebCoreSupport/InspectorClientBlackBerry.cpp:
     21        (WebCore::InspectorClientBlackBerry::highlight):
     22        (WebCore::InspectorClientBlackBerry::hideHighlight):
     23        (WebCore::InspectorClientBlackBerry::paintInspectorOverlay):
     24        (WebCore):
     25        * WebCoreSupport/InspectorClientBlackBerry.h:
     26        (InspectorClientBlackBerry):
     27        * WebCoreSupport/InspectorOverlay.cpp: Added.
     28        (WebCore):
     29        (WebCore::InspectorOverlay::create):
     30        (WebCore::InspectorOverlay::InspectorOverlay):
     31        (WebCore::InspectorOverlay::notifySyncRequired):
     32        (WebCore::InspectorOverlay::paintContents):
     33        (WebCore::InspectorOverlay::showDebugBorders):
     34        (WebCore::InspectorOverlay::showRepaintCounter):
     35        (WebCore::InspectorOverlay::contentsVisible):
     36        (WebCore::InspectorOverlay::~InspectorOverlay):
     37        (WebCore::InspectorOverlay::clear):
     38        (WebCore::InspectorOverlay::update):
     39        (WebCore::InspectorOverlay::paintWebFrame):
     40        (WebCore::InspectorOverlay::invalidateWebFrame):
     41        * WebCoreSupport/InspectorOverlay.h: Added.
     42        (WebKit):
     43        (WebCore):
     44        (InspectorOverlay):
     45        (InspectorOverlayClient):
     46        (WebCore::InspectorOverlay::setClient):
     47        (WebCore::InspectorOverlay::notifyAnimationStarted):
     48
    1492012-05-30  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
    250
  • trunk/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.cpp

    r117985 r119046  
    2323#include "BackingStore.h"
    2424#include "Frame.h"
     25#include "GraphicsContext.h"
     26#include "InspectorController.h"
    2527#include "NotImplemented.h"
     28#include "Page.h"
    2629#include "RenderObject.h"
    2730#include "WebPageClient.h"
     
    4346void InspectorClientBlackBerry::highlight()
    4447{
    45     hideHighlight();
     48    m_webPagePrivate->setInspectorOverlayClient(this);
     49    if (!m_webPagePrivate->isAcceleratedCompositingActive())
     50        m_webPagePrivate->mainFrame()->document()->documentElement()->renderer()->repaint(true);
    4651}
    4752
    4853void InspectorClientBlackBerry::hideHighlight()
    4954{
    50     if (!m_webPagePrivate->mainFrame() || !m_webPagePrivate->mainFrame()->document() || !m_webPagePrivate->mainFrame()->document()->documentElement()
    51         || !m_webPagePrivate->mainFrame()->document()->documentElement()->renderer())
    52         return;
    53 
    54     // FIXME: Potentially slow hack, but invalidating everything should work since the actual highlight is drawn by BackingStorePrivate::renderContents().
    55     m_webPagePrivate->mainFrame()->document()->documentElement()->renderer()->repaint(true);
     55    m_webPagePrivate->setInspectorOverlayClient(0);
     56    if (!m_webPagePrivate->isAcceleratedCompositingActive())
     57        m_webPagePrivate->mainFrame()->document()->documentElement()->renderer()->repaint(true);
    5658}
    5759
     
    9395};
    9496
     97void InspectorClientBlackBerry::paintInspectorOverlay(GraphicsContext& gc)
     98{
     99    InspectorController* inspectorController = m_webPagePrivate->m_page->inspectorController();
     100    if (inspectorController)
     101        inspectorController->drawHighlight(gc);
     102}
     103
    95104} // namespace WebCore
  • trunk/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h

    r117985 r119046  
    2222
    2323#include "InspectorClient.h"
     24#include "InspectorOverlay.h"
    2425#include "PlatformString.h"
    2526#include <wtf/HashMap.h>
     
    3334namespace WebCore {
    3435
    35 class InspectorClientBlackBerry : public InspectorClient {
     36class InspectorClientBlackBerry : public InspectorClient, public InspectorOverlay::InspectorOverlayClient {
    3637public:
    3738    InspectorClientBlackBerry(BlackBerry::WebKit::WebPagePrivate*);
     
    5152    virtual void clearBrowserCookies();
    5253    virtual bool canClearBrowserCookies() { return true; }
     54    virtual void paintInspectorOverlay(WebCore::GraphicsContext&);
    5355
    5456    virtual void updateInspectorStateCookie(const String&);
Note: See TracChangeset for help on using the changeset viewer.