Title: [177701] trunk/Source/WebKit2
Revision
177701
Author
[email protected]
Date
2014-12-23 15:58:27 -0800 (Tue, 23 Dec 2014)

Log Message

Add WebProcessProxy::transformHandlesToObjects
https://bugs.webkit.org/show_bug.cgi?id=139922

Reviewed by Tim Horton.

This will be used to convert between the handles and their respective UI side objects.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):
(WebKit::WebProcessProxy::apiObjectByConvertingToHandles): Deleted.
* UIProcess/WebProcessProxy.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (177700 => 177701)


--- trunk/Source/WebKit2/ChangeLog	2014-12-23 23:35:33 UTC (rev 177700)
+++ trunk/Source/WebKit2/ChangeLog	2014-12-23 23:58:27 UTC (rev 177701)
@@ -1,5 +1,20 @@
 2014-12-23  Anders Carlsson  <[email protected]>
 
+        Add WebProcessProxy::transformHandlesToObjects
+        https://bugs.webkit.org/show_bug.cgi?id=139922
+
+        Reviewed by Tim Horton.
+
+        This will be used to convert between the handles and their respective UI side objects.
+
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::transformHandlesToObjects):
+        (WebKit::WebProcessProxy::transformObjectsToHandles):
+        (WebKit::WebProcessProxy::apiObjectByConvertingToHandles): Deleted.
+        * UIProcess/WebProcessProxy.h:
+
+2014-12-23  Anders Carlsson  <[email protected]>
+
         Add handle transform functions to WebConnection
         https://bugs.webkit.org/show_bug.cgi?id=139920
 

Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (177700 => 177701)


--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2014-12-23 23:35:33 UTC (rev 177700)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2014-12-23 23:58:27 UTC (rev 177701)
@@ -650,12 +650,56 @@
     ++m_numberOfTimesSuddenTerminationWasDisabled;
 }
 
-RefPtr<API::Object> WebProcessProxy::apiObjectByConvertingToHandles(API::Object* object)
+RefPtr<API::Object> WebProcessProxy::transformHandlesToObjects(API::Object* object)
 {
-    struct Transformer : UserData::Transformer {
+    struct Transformer final : UserData::Transformer {
+        Transformer(WebProcessProxy& webProcessProxy)
+            : m_webProcessProxy(webProcessProxy)
+        {
+        }
+
         virtual bool shouldTransformObjectOfType(API::Object::Type type) const
         {
             switch (type) {
+            case API::Object::Type::FrameHandle:
+            case API::Object::Type::PageHandle:
+            case API::Object::Type::PageGroupHandle:
+                return true;
+
+            default:
+                return false;
+            }
+        }
+
+        virtual RefPtr<API::Object> transformObject(API::Object& object) const override
+        {
+            switch (object.type()) {
+            case API::Object::Type::FrameHandle:
+                return m_webProcessProxy.webFrame(static_cast<API::FrameHandle&>(object).frameID());
+
+            case API::Object::Type::PageGroupHandle:
+                return WebPageGroup::get(static_cast<API::PageGroupHandle&>(object).webPageGroupData().pageGroupID);
+
+            case API::Object::Type::PageHandle:
+                return m_webProcessProxy.webPage(static_cast<API::PageHandle&>(object).pageID());
+
+            default:
+                return &object;
+            }
+        }
+
+        WebProcessProxy& m_webProcessProxy;
+    };
+
+    return UserData::transform(object, Transformer(*this));
+}
+
+RefPtr<API::Object> WebProcessProxy::transformObjectsToHandles(API::Object* object)
+{
+    struct Transformer final : UserData::Transformer {
+        virtual bool shouldTransformObjectOfType(API::Object::Type type) const
+        {
+            switch (type) {
             case API::Object::Type::Frame:
             case API::Object::Type::Page:
             case API::Object::Type::PageGroup:
@@ -669,20 +713,14 @@
         virtual RefPtr<API::Object> transformObject(API::Object& object) const override
         {
             switch (object.type()) {
-            case API::Object::Type::Frame: {
-                auto& frame = static_cast<const WebFrameProxy&>(object);
-                return API::FrameHandle::create(frame.frameID());
-            }
+            case API::Object::Type::Frame:
+                return API::FrameHandle::create(static_cast<const WebFrameProxy&>(object).frameID());
 
-            case API::Object::Type::Page: {
-                auto& page = static_cast<const WebPageProxy&>(object);
-                return API::PageHandle::create(page.pageID());
-            }
+            case API::Object::Type::Page:
+                return API::PageHandle::create(static_cast<const WebPageProxy&>(object).pageID());
 
-            case API::Object::Type::PageGroup: {
-                auto& pageGroup = static_cast<const WebPageGroup&>(object);
-                return API::PageGroupHandle::create(WebPageGroupData(pageGroup.data()));
-            }
+            case API::Object::Type::PageGroup:
+                return API::PageGroupHandle::create(WebPageGroupData(static_cast<const WebPageGroup&>(object).data()));
 
             default:
                 return &object;

Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (177700 => 177701)


--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h	2014-12-23 23:35:33 UTC (rev 177700)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h	2014-12-23 23:58:27 UTC (rev 177701)
@@ -126,7 +126,8 @@
 
     void requestTermination();
 
-    RefPtr<API::Object> apiObjectByConvertingToHandles(API::Object*);
+    RefPtr<API::Object> transformHandlesToObjects(API::Object*);
+    RefPtr<API::Object> transformObjectsToHandles(API::Object*);
 
     void windowServerConnectionStateChanged();
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to