[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