Diff
Modified: trunk/Source/WebKit2/ChangeLog (173428 => 173429)
--- trunk/Source/WebKit2/ChangeLog 2014-09-09 15:09:57 UTC (rev 173428)
+++ trunk/Source/WebKit2/ChangeLog 2014-09-09 15:58:09 UTC (rev 173429)
@@ -1,3 +1,22 @@
+2014-09-09 Tim Horton <[email protected]>
+
+ Make DrawingArea a real MessageReceiver
+ https://bugs.webkit.org/show_bug.cgi?id=136438
+
+ Reviewed by Darin Adler.
+
+ * WebProcess/WebPage/DrawingArea.cpp:
+ (WebKit::DrawingArea::DrawingArea):
+ (WebKit::DrawingArea::~DrawingArea):
+ * WebProcess/WebPage/DrawingArea.h:
+ * WebProcess/WebPage/DrawingArea.messages.in:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ (WebKit::WebPage::~WebPage):
+ (WebKit::WebPage::didReceiveMessage):
+ Make DrawingArea a real MessageReceiver instead of a LegacyReceiver that
+ jumps through WebPage to receive its messages.
+
2014-09-08 Antti Koivisto <[email protected]>
Pass certificate info as part of ResourceResponse
Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp (173428 => 173429)
--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp 2014-09-09 15:09:57 UTC (rev 173428)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp 2014-09-09 15:58:09 UTC (rev 173429)
@@ -25,6 +25,11 @@
#include "config.h"
#include "DrawingArea.h"
+
+#include "DrawingAreaMessages.h"
+#include "WebPage.h"
+#include "WebPageCreationParameters.h"
+#include "WebProcess.h"
#include <WebCore/DisplayRefreshMonitor.h>
#include <WebCore/TransformationMatrix.h>
#include <wtf/Functional.h>
@@ -41,8 +46,6 @@
#endif
#endif
-#include "WebPageCreationParameters.h"
-
using namespace WebCore;
namespace WebKit {
@@ -75,10 +78,12 @@
: m_type(type)
, m_webPage(webPage)
{
+ WebProcess::shared().addMessageReceiver(Messages::DrawingArea::messageReceiverName(), m_webPage.pageID(), *this);
}
DrawingArea::~DrawingArea()
{
+ WebProcess::shared().removeMessageReceiver(Messages::DrawingArea::messageReceiverName(), m_webPage.pageID());
}
void DrawingArea::dispatchAfterEnsuringUpdatedScrollPosition(std::function<void ()> function)
Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h (173428 => 173429)
--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h 2014-09-09 15:09:57 UTC (rev 173428)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h 2014-09-09 15:58:09 UTC (rev 173429)
@@ -28,6 +28,7 @@
#include "DrawingAreaInfo.h"
#include "LayerTreeContext.h"
+#include "MessageReceiver.h"
#include <WebCore/FloatRect.h>
#include <WebCore/IntRect.h>
#include <WebCore/LayerFlushThrottleState.h>
@@ -57,7 +58,7 @@
struct WebPageCreationParameters;
struct WebPreferencesStore;
-class DrawingArea {
+class DrawingArea : public IPC::MessageReceiver {
WTF_MAKE_NONCOPYABLE(DrawingArea);
public:
@@ -65,8 +66,6 @@
virtual ~DrawingArea();
DrawingAreaType type() const { return m_type; }
-
- void didReceiveDrawingAreaMessage(IPC::Connection*, IPC::MessageDecoder&);
virtual void setNeedsDisplay() = 0;
virtual void setNeedsDisplayInRect(const WebCore::IntRect&) = 0;
@@ -128,6 +127,9 @@
WebPage& m_webPage;
private:
+ // IPC::MessageReceiver.
+ virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override;
+
// Message handlers.
// FIXME: These should be pure virtual.
virtual void updateBackingStoreState(uint64_t /*backingStoreStateID*/, bool /*respondImmediately*/, float /*deviceScaleFactor*/, const WebCore::IntSize& /*size*/,
Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.messages.in (173428 => 173429)
--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.messages.in 2014-09-09 15:09:57 UTC (rev 173428)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.messages.in 2014-09-09 15:58:09 UTC (rev 173429)
@@ -20,7 +20,7 @@
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-messages -> DrawingArea LegacyReceiver {
+messages -> DrawingArea {
UpdateBackingStoreState(uint64_t backingStoreStateID, bool respondImmediately, float deviceScaleFactor, WebCore::IntSize size, WebCore::IntSize scrollOffset)
DidUpdate()
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (173428 => 173429)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-09-09 15:09:57 UTC (rev 173428)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-09-09 15:58:09 UTC (rev 173429)
@@ -455,7 +455,6 @@
WebProcess::shared().addMessageReceiver(Messages::WebPage::messageReceiverName(), m_pageID, *this);
// FIXME: This should be done in the object constructors, and the objects themselves should be message receivers.
- WebProcess::shared().addMessageReceiver(Messages::DrawingArea::messageReceiverName(), m_pageID, *this);
#if USE(COORDINATED_GRAPHICS)
WebProcess::shared().addMessageReceiver(Messages::CoordinatedLayerTreeHost::messageReceiverName(), m_pageID, *this);
#endif
@@ -516,7 +515,6 @@
WebProcess::shared().removeMessageReceiver(Messages::WebPage::messageReceiverName(), m_pageID);
// FIXME: This should be done in the object destructors, and the objects themselves should be message receivers.
- WebProcess::shared().removeMessageReceiver(Messages::DrawingArea::messageReceiverName(), m_pageID);
#if USE(COORDINATED_GRAPHICS)
WebProcess::shared().removeMessageReceiver(Messages::CoordinatedLayerTreeHost::messageReceiverName(), m_pageID);
#endif
@@ -3484,12 +3482,6 @@
void WebPage::didReceiveMessage(IPC::Connection* connection, IPC::MessageDecoder& decoder)
{
- if (decoder.messageReceiverName() == Messages::DrawingArea::messageReceiverName()) {
- if (m_drawingArea)
- m_drawingArea->didReceiveDrawingAreaMessage(connection, decoder);
- return;
- }
-
#if USE(TILED_BACKING_STORE)
if (decoder.messageReceiverName() == Messages::CoordinatedLayerTreeHost::messageReceiverName()) {
if (m_drawingArea)
@@ -3497,7 +3489,7 @@
return;
}
#endif
-
+
#if ENABLE(INSPECTOR)
if (decoder.messageReceiverName() == Messages::WebInspector::messageReceiverName()) {
if (WebInspector* inspector = this->inspector())