[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198

andersca at apple.com andersca at apple.com
Sun Feb 20 22:45:23 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit de7f919abd742652e30b2520d7e327a8fd7ce5d3
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jan 11 02:12:06 2011 +0000

    2011-01-10  Anders Carlsson  <andersca at apple.com>
    
            Reviewed by Sam Weinig.
    
            Work towards having the WebPageProxy decide when to create the DrawingAreaProxy
            https://bugs.webkit.org/show_bug.cgi?id=52184
    
            * UIProcess/API/mac/PageClientImpl.h:
            * UIProcess/API/mac/PageClientImpl.mm:
            (WebKit::PageClientImpl::createDrawingAreaProxy):
            Call -[WKView _createDrawingAreaProxy].
    
            (WebKit::PageClientImpl::setViewNeedsDisplay):
            Call setNeedsDisplayInRect on the WKView.
    
            * UIProcess/API/mac/WKView.mm:
            (-[WKView initWithFrame:contextRef:pageGroupRef:]):
            No need to set the drawing area proxy anymore.
    
            (-[WKView _createDrawingAreaProxy]):
            Create a chunked update drawing area proxy for now.
    
            * UIProcess/API/qt/qwkpage.cpp:
            (QWKPagePrivate::createDrawingAreaProxy):
            (QWKPagePrivate::setViewNeedsDisplay):
            Add stubs.
    
            * UIProcess/PageClient.h:
            Add new pure virtual member functions.
    
            * UIProcess/WebPageProxy.cpp:
            (WebKit::WebPageProxy::initializeWebPage):
            (WebKit::WebPageProxy::reinitializeWebPage):
            Set the new drawing area proxy.
    
            * UIProcess/win/WebView.cpp:
            (WebKit::WebView::WebView):
            No need to set the drawing area proxy anymore.
    
            (WebKit::WebView::createDrawingAreaProxy):
            Create a chunked update drawing area proxy for now.
    
            (WebKit::WebView::setViewNeedsDisplay):
            Invalidate the window.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75459 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index bf48f6e..ffbe62d 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,5 +1,50 @@
 2011-01-10  Anders Carlsson  <andersca at apple.com>
 
+        Reviewed by Sam Weinig.
+
+        Work towards having the WebPageProxy decide when to create the DrawingAreaProxy
+        https://bugs.webkit.org/show_bug.cgi?id=52184
+
+        * UIProcess/API/mac/PageClientImpl.h:
+        * UIProcess/API/mac/PageClientImpl.mm:
+        (WebKit::PageClientImpl::createDrawingAreaProxy):
+        Call -[WKView _createDrawingAreaProxy].
+
+        (WebKit::PageClientImpl::setViewNeedsDisplay):
+        Call setNeedsDisplayInRect on the WKView.
+
+        * UIProcess/API/mac/WKView.mm:
+        (-[WKView initWithFrame:contextRef:pageGroupRef:]):
+        No need to set the drawing area proxy anymore.
+
+        (-[WKView _createDrawingAreaProxy]):
+        Create a chunked update drawing area proxy for now.
+
+        * UIProcess/API/qt/qwkpage.cpp:
+        (QWKPagePrivate::createDrawingAreaProxy):
+        (QWKPagePrivate::setViewNeedsDisplay):
+        Add stubs.
+    
+        * UIProcess/PageClient.h:
+        Add new pure virtual member functions.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::initializeWebPage):
+        (WebKit::WebPageProxy::reinitializeWebPage):
+        Set the new drawing area proxy.
+
+        * UIProcess/win/WebView.cpp:
+        (WebKit::WebView::WebView):
+        No need to set the drawing area proxy anymore.
+
+        (WebKit::WebView::createDrawingAreaProxy):
+        Create a chunked update drawing area proxy for now.
+
+        (WebKit::WebView::setViewNeedsDisplay):
+        Invalidate the window.
+
+2011-01-10  Anders Carlsson  <andersca at apple.com>
+
         Fix Windows build again.
 
         * UIProcess/win/WebView.cpp:
diff --git a/WebKit2/UIProcess/API/mac/PageClientImpl.h b/WebKit2/UIProcess/API/mac/PageClientImpl.h
index a8752c0..609039f 100644
--- a/WebKit2/UIProcess/API/mac/PageClientImpl.h
+++ b/WebKit2/UIProcess/API/mac/PageClientImpl.h
@@ -48,6 +48,9 @@ public:
 private:
     PageClientImpl(WKView*);
 
+    virtual PassOwnPtr<DrawingAreaProxy> createDrawingAreaProxy();
+    virtual void setViewNeedsDisplay(const WebCore::IntRect&);
+    
     virtual WebCore::IntSize viewSize();
     virtual bool isViewWindowActive();
     virtual bool isViewFocused();
diff --git a/WebKit2/UIProcess/API/mac/PageClientImpl.mm b/WebKit2/UIProcess/API/mac/PageClientImpl.mm
index 8779f2f..ae59eba 100644
--- a/WebKit2/UIProcess/API/mac/PageClientImpl.mm
+++ b/WebKit2/UIProcess/API/mac/PageClientImpl.mm
@@ -118,6 +118,16 @@ PageClientImpl::~PageClientImpl()
 {
 }
 
+PassOwnPtr<DrawingAreaProxy> PageClientImpl::createDrawingAreaProxy()
+{
+    return [m_wkView _createDrawingAreaProxy];
+}
+
+void PageClientImpl::setViewNeedsDisplay(const WebCore::IntRect& rect)
+{
+    [m_wkView setNeedsDisplayInRect:rect];
+}
+
 IntSize PageClientImpl::viewSize()
 {
     return IntSize([m_wkView bounds].size);
diff --git a/WebKit2/UIProcess/API/mac/WKView.mm b/WebKit2/UIProcess/API/mac/WKView.mm
index 401a034..a8b3aad 100644
--- a/WebKit2/UIProcess/API/mac/WKView.mm
+++ b/WebKit2/UIProcess/API/mac/WKView.mm
@@ -166,7 +166,6 @@ typedef HashMap<String, ValidationVector> ValidationMap;
 
     _data->_pageClient = PageClientImpl::create(self);
     _data->_page = toImpl(contextRef)->createWebPage(_data->_pageClient.get(), toImpl(pageGroupRef));
-    _data->_page->setDrawingArea(ChunkedUpdateDrawingAreaProxy::create(self, _data->_page.get()));
     _data->_page->initializeWebPage(IntSize(frame.size));
 
     WebContext::statistics().wkViewCount++;
@@ -1199,6 +1198,11 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
 
 @implementation WKView (Internal)
 
+- (PassOwnPtr<WebKit::DrawingAreaProxy>)_createDrawingAreaProxy
+{
+    return ChunkedUpdateDrawingAreaProxy::create(self, _data->_page.get());
+}
+
 - (BOOL)_isFocused
 {
     if (_data->_inBecomeFirstResponder)
diff --git a/WebKit2/UIProcess/API/mac/WKViewInternal.h b/WebKit2/UIProcess/API/mac/WKViewInternal.h
index 4939d91..1c70b38 100644
--- a/WebKit2/UIProcess/API/mac/WKViewInternal.h
+++ b/WebKit2/UIProcess/API/mac/WKViewInternal.h
@@ -28,10 +28,12 @@
 #import <WebCore/KeyboardEvent.h>
 
 namespace WebKit {
+    class DrawingAreaProxy;
     class FindIndicator;
 }
 
 @interface WKView (Internal)
+- (PassOwnPtr<WebKit::DrawingAreaProxy>)_createDrawingAreaProxy;
 - (BOOL)_isFocused;
 - (void)_processDidCrash;
 - (void)_didRelaunchProcess;
diff --git a/WebKit2/UIProcess/API/qt/qwkpage.cpp b/WebKit2/UIProcess/API/qt/qwkpage.cpp
index fa8f8ee..4d53a57 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage.cpp
+++ b/WebKit2/UIProcess/API/qt/qwkpage.cpp
@@ -120,6 +120,16 @@ void QWKPagePrivate::takeFocus(bool direction)
     emit q->focusNextPrevChild(direction);
 }
 
+PassOwnPtr<DrawingAreaProxy> QWKPagePrivate::createDrawingAreaProxy()
+{
+    // FIXME: Implement. See https://bugs.webkit.org/show_bug.cgi?id=52183.
+}
+
+void QWKPagePrivate::setViewNeedsDisplay(const WebCore::IntRect& rect)
+{
+    // FIXME: Implement. See https://bugs.webkit.org/show_bug.cgi?id=52183.
+}
+
 WebCore::IntSize QWKPagePrivate::viewSize()
 {
     // FIXME: Implement.
diff --git a/WebKit2/UIProcess/API/qt/qwkpage_p.h b/WebKit2/UIProcess/API/qt/qwkpage_p.h
index bbae5d6..e26d0e0 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage_p.h
+++ b/WebKit2/UIProcess/API/qt/qwkpage_p.h
@@ -43,6 +43,9 @@ public:
     void init(const QSize& viewportSize, WTF::PassOwnPtr<WebKit::DrawingAreaProxy>);
 
     // PageClient
+    virtual PassOwnPtr<DrawingAreaProxy> createDrawingAreaProxy();
+    virtual void setViewNeedsDisplay(const WebCore::IntRect&);
+
     virtual WebCore::IntSize viewSize();
     virtual bool isViewWindowActive();
     virtual bool isViewFocused();
diff --git a/WebKit2/UIProcess/PageClient.h b/WebKit2/UIProcess/PageClient.h
index 2af6677..f413342 100644
--- a/WebKit2/UIProcess/PageClient.h
+++ b/WebKit2/UIProcess/PageClient.h
@@ -37,6 +37,7 @@ namespace WebCore {
 
 namespace WebKit {
 
+class DrawingAreaProxy;
 class FindIndicator;
 class NativeWebKeyboardEvent;
 class NativeWebKeyboardEvent;
@@ -48,6 +49,12 @@ class PageClient {
 public:
     virtual ~PageClient() { }
 
+    // Create a new drawing area proxy for the given page.
+    virtual PassOwnPtr<DrawingAreaProxy> createDrawingAreaProxy() = 0;
+
+    // Tell the view to invalidate the given rect. The rect is in view coordinates.
+    virtual void setViewNeedsDisplay(const WebCore::IntRect&) = 0;
+
     // Return the size of the view the page is associated with.
     virtual WebCore::IntSize viewSize() = 0;
 
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index f232fb9..22a6e10 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -218,7 +218,9 @@ void WebPageProxy::initializeWebPage(const IntSize& size)
         return;
     }
 
+    m_drawingArea = m_pageClient->createDrawingAreaProxy();
     ASSERT(m_drawingArea);
+
     process()->send(Messages::WebProcess::CreateWebPage(m_pageID, creationParameters(size)), 0);
 }
 
@@ -227,7 +229,9 @@ void WebPageProxy::reinitializeWebPage(const WebCore::IntSize& size)
     if (!isValid())
         return;
 
+    m_drawingArea = m_pageClient->createDrawingAreaProxy();
     ASSERT(m_drawingArea);
+
     process()->send(Messages::WebProcess::CreateWebPage(m_pageID, creationParameters(size)), 0);
 }
 
diff --git a/WebKit2/UIProcess/win/WebView.cpp b/WebKit2/UIProcess/win/WebView.cpp
index f5e9a1e..ca5e4b6 100644
--- a/WebKit2/UIProcess/win/WebView.cpp
+++ b/WebKit2/UIProcess/win/WebView.cpp
@@ -236,7 +236,6 @@ WebView::WebView(RECT rect, WebContext* context, WebPageGroup* pageGroup, HWND p
     registerWebViewWindowClass();
 
     m_page = context->createWebPage(this, pageGroup);
-    m_page->setDrawingArea(ChunkedUpdateDrawingAreaProxy::create(this, m_page.get()));
 
     m_window = ::CreateWindowEx(0, kWebKit2WebViewWindowClassName, 0, WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
         rect.top, rect.left, rect.right - rect.left, rect.bottom - rect.top, parentWindow ? parentWindow : HWND_MESSAGE, 0, instanceHandle(), this);
@@ -575,6 +574,17 @@ void WebView::close()
 
 // PageClient
 
+PassOwnPtr<DrawingAreaProxy> WebView::createDrawingAreaProxy()
+{
+    return ChunkedUpdateDrawingAreaProxy::create(this, m_page.get());
+}
+
+void WebView::setViewNeedsDisplay(const WebCore::IntRect& rect)
+{
+    RECT r = rect;
+    ::InvalidateRect(m_window, &r, false);
+}
+
 WebCore::IntSize WebView::viewSize()
 {
     RECT clientRect;
diff --git a/WebKit2/UIProcess/win/WebView.h b/WebKit2/UIProcess/win/WebView.h
index bfff344..8bf8a5c 100644
--- a/WebKit2/UIProcess/win/WebView.h
+++ b/WebKit2/UIProcess/win/WebView.h
@@ -104,6 +104,8 @@ private:
     void updateNativeCursor();
 
     // PageClient
+    virtual PassOwnPtr<DrawingAreaProxy> createDrawingAreaProxy();
+    virtual void setViewNeedsDisplay(const WebCore::IntRect&);
     virtual WebCore::IntSize viewSize();
     virtual bool isViewWindowActive();
     virtual bool isViewFocused();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list