Change NavigatorContentUtils client ownership from port side to NavigatorContentUtils
authorgyuyoung.kim@samsung.com <gyuyoung.kim@samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 8 Apr 2014 07:14:20 +0000 (07:14 +0000)
committergyuyoung.kim@samsung.com <gyuyoung.kim@samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 8 Apr 2014 07:14:20 +0000 (07:14 +0000)
https://bugs.webkit.org/show_bug.cgi?id=131299

Reviewed by Darin Adler.

EFL and GTK ports have managed own client of NavigatorContentUtils though it is only passed to
NavigatorContentUtils. The NavigatorContentUtils has used the client to call port functions. So,
there is no reason port implementation needs to manage the ownership. To manage the client is
unnecessary work in current implementation.

Source/WebCore:

No new tests, no behavior changes.

* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::NavigatorContentUtils::create):
(WebCore::provideNavigatorContentUtilsTo):
* Modules/navigatorcontentutils/NavigatorContentUtils.h:
* Modules/navigatorcontentutils/NavigatorContentUtilsClient.h:

Source/WebKit/efl:

* ewk/ewk_view.cpp:
(_ewk_view_priv_new):

Source/WebKit/gtk:

* webkit/webkitwebview.cpp:
(webkit_web_view_init):
* webkit/webkitwebviewprivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@166915 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/Modules/navigatorcontentutils/NavigatorContentUtils.cpp
Source/WebCore/Modules/navigatorcontentutils/NavigatorContentUtils.h
Source/WebCore/Modules/navigatorcontentutils/NavigatorContentUtilsClient.h
Source/WebKit/efl/ChangeLog
Source/WebKit/efl/ewk/ewk_view.cpp
Source/WebKit/gtk/ChangeLog
Source/WebKit/gtk/webkit/webkitwebview.cpp
Source/WebKit/gtk/webkit/webkitwebviewprivate.h

index 1677a90..0a26518 100644 (file)
@@ -1,3 +1,23 @@
+2014-04-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Change NavigatorContentUtils client ownership from port side to NavigatorContentUtils
+        https://bugs.webkit.org/show_bug.cgi?id=131299
+
+        Reviewed by Darin Adler.
+
+        EFL and GTK ports have managed own client of NavigatorContentUtils though it is only passed to
+        NavigatorContentUtils. The NavigatorContentUtils has used the client to call port functions. So,
+        there is no reason port implementation needs to manage the ownership. To manage the client is
+        unnecessary work in current implementation.
+
+        No new tests, no behavior changes.
+
+        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
+        (WebCore::NavigatorContentUtils::create):
+        (WebCore::provideNavigatorContentUtilsTo):
+        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
+        * Modules/navigatorcontentutils/NavigatorContentUtilsClient.h:
+
 2014-04-07  Zoltan Horvath  <zoltan@webkit.org>
 
         [CSS Shapes] Simplify the parsing of width arguments for Inset shapes
index ef1578e..badd1c9 100644 (file)
@@ -126,9 +126,9 @@ NavigatorContentUtils::~NavigatorContentUtils()
 {
 }
 
-PassRef<NavigatorContentUtils> NavigatorContentUtils::create(NavigatorContentUtilsClient* client)
+PassRef<NavigatorContentUtils> NavigatorContentUtils::create(std::unique_ptr<NavigatorContentUtilsClient> client)
 {
-    return adoptRef(*new NavigatorContentUtils(client));
+    return adoptRef(*new NavigatorContentUtils(std::move(client)));
 }
 
 void NavigatorContentUtils::registerProtocolHandler(Navigator* navigator, const String& scheme, const String& url, const String& title, ExceptionCode& ec)
@@ -219,9 +219,9 @@ const char* NavigatorContentUtils::supplementName()
     return "NavigatorContentUtils";
 }
 
-void provideNavigatorContentUtilsTo(Page* page, NavigatorContentUtilsClient* client)
+void provideNavigatorContentUtilsTo(Page* page, std::unique_ptr<NavigatorContentUtilsClient> client)
 {
-    RefCountedSupplement<Page, NavigatorContentUtils>::provideTo(page, NavigatorContentUtils::supplementName(), NavigatorContentUtils::create(client));
+    RefCountedSupplement<Page, NavigatorContentUtils>::provideTo(page, NavigatorContentUtils::supplementName(), NavigatorContentUtils::create(std::move(client)));
 }
 
 } // namespace WebCore
index bb1d91d..0e94ffa 100644 (file)
@@ -55,16 +55,16 @@ public:
     static void unregisterProtocolHandler(Navigator*, const String& scheme, const String& url, ExceptionCode&);
 #endif
 
-    static PassRef<NavigatorContentUtils> create(NavigatorContentUtilsClient*);
+    static PassRef<NavigatorContentUtils> create(std::unique_ptr<NavigatorContentUtilsClient>);
 
 private:
-    explicit NavigatorContentUtils(NavigatorContentUtilsClient* client)
-        : m_client(client)
+    explicit NavigatorContentUtils(std::unique_ptr<NavigatorContentUtilsClient> client)
+        : m_client(std::move(client))
     { }
 
-    NavigatorContentUtilsClient* client() { return m_client; }
+    NavigatorContentUtilsClient* client() { return m_client.get(); }
 
-    NavigatorContentUtilsClient* m_client;
+    std::unique_ptr<NavigatorContentUtilsClient> m_client;
 };
 
 } // namespace WebCore
index f04394b..3a46442 100644 (file)
@@ -52,7 +52,7 @@ public:
 #endif
 };
 
-void provideNavigatorContentUtilsTo(Page*, NavigatorContentUtilsClient*);
+void provideNavigatorContentUtilsTo(Page*, std::unique_ptr<NavigatorContentUtilsClient>);
 
 }
 
index a96e441..a2ca140 100644 (file)
@@ -1,3 +1,18 @@
+2014-04-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Change NavigatorContentUtils client ownership from port side to NavigatorContentUtils
+        https://bugs.webkit.org/show_bug.cgi?id=131299
+
+        Reviewed by Darin Adler.
+
+        EFL and GTK ports have managed own client of NavigatorContentUtils though it is only passed to
+        NavigatorContentUtils. The NavigatorContentUtils has used the client to call port functions. So,
+        there is no reason port implementation needs to manage the ownership. To manage the client is
+        unnecessary work in current implementation.
+
+        * ewk/ewk_view.cpp:
+        (_ewk_view_priv_new):
+
 2014-04-07  Hyowon Kim  <hw1008.kim@samsung.com>
 
         Move to using std::unique_ptr for opengl, texmap, transforms and efl in WebCore/platform/graphics.
index 2440483..2084141 100644 (file)
@@ -259,9 +259,6 @@ struct _Ewk_View_Private_Data {
 #if ENABLE(INPUT_TYPE_COLOR)
     WebCore::ColorChooserClient* colorChooserClient;
 #endif
-#if ENABLE(NAVIGATOR_CONTENT_UTILS) || ENABLE(CUSTOM_SCHEME_HANDLER)
-    std::unique_ptr<WebCore::NavigatorContentUtilsClientEfl> navigatorContentUtilsClient;
-#endif
     struct {
         Ewk_Menu menu;
         WebCore::PopupMenuClient* menuClient;
@@ -687,8 +684,7 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData)
 #endif
 
 #if ENABLE(NAVIGATOR_CONTENT_UTILS)
-    priv->navigatorContentUtilsClient = std::make_unique<WebCore::NavigatorContentUtilsClientEfl>(smartData->self);
-    WebCore::provideNavigatorContentUtilsTo(priv->page.get(), priv->navigatorContentUtilsClient.get());
+    WebCore::provideNavigatorContentUtilsTo(priv->page.get(), std::make_unique<WebCore::NavigatorContentUtilsClientEfl>(smartData->self));
 #endif
 
 #if ENABLE(GEOLOCATION)
index ccbcd64..0722f75 100644 (file)
@@ -1,3 +1,19 @@
+2014-04-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Change NavigatorContentUtils client ownership from port side to NavigatorContentUtils
+        https://bugs.webkit.org/show_bug.cgi?id=131299
+
+        Reviewed by Darin Adler.
+
+        EFL and GTK ports have managed own client of NavigatorContentUtils though it is only passed to
+        NavigatorContentUtils. The NavigatorContentUtils has used the client to call port functions. So,
+        there is no reason port implementation needs to manage the ownership. To manage the client is
+        unnecessary work in current implementation.
+
+        * webkit/webkitwebview.cpp:
+        (webkit_web_view_init):
+        * webkit/webkitwebviewprivate.h:
+
 2014-04-07  Hyowon Kim  <hw1008.kim@samsung.com>
 
         Move to using std::unique_ptr for opengl, texmap, transforms and efl in WebCore/platform/graphics.
index 1734189..3240550 100644 (file)
@@ -3870,8 +3870,7 @@ static void webkit_web_view_init(WebKitWebView* webView)
 #endif
 
 #if ENABLE(NAVIGATOR_CONTENT_UTILS)
-    priv->navigatorContentUtilsClient = std::make_unique<WebKit::NavigatorContentUtilsClient>();
-    WebCore::provideNavigatorContentUtilsTo(priv->corePage, priv->navigatorContentUtilsClient.get());
+    WebCore::provideNavigatorContentUtilsTo(priv->corePage, std::make_unique<WebKit::NavigatorContentUtilsClient>());
 #endif
 
 #if ENABLE(BATTERY_STATUS)
index ef9b64e..7ff18e9 100644 (file)
@@ -116,10 +116,6 @@ struct _WebKitWebViewPrivate {
 #if ENABLE(GEOLOCATION)
     std::unique_ptr<WebCore::GeolocationClientMock> geolocationClientMock;
 #endif
-
-#if ENABLE(NAVIGATOR_CONTENT_UTILS)
-    std::unique_ptr<WebKit::NavigatorContentUtilsClient> navigatorContentUtilsClient;
-#endif
 };
 
 void webkit_web_view_notify_ready(WebKitWebView*);