Title: [131460] trunk/Source/WebKit2
Revision
131460
Author
[email protected]
Date
2012-10-16 09:08:00 -0700 (Tue, 16 Oct 2012)

Log Message

[EFL][WK2] Inherit Ewk_Download_Job, Ewk_Back_Forward_List_Item, Ewk_Url_Response, Ewk_Navigation_Policy_Decision from RefCounted
https://bugs.webkit.org/show_bug.cgi?id=99455

Patch by Mikhail Pozdnyakov <[email protected]> on 2012-10-16
Reviewed by Kenneth Rohde Christiansen.

The API objects mentioned in bug title are inherited from WTF::RefCounted which made it possible
to use smart pointers with them.

* UIProcess/API/efl/PageClientImpl.cpp:
(WebKit::PageClientImpl::handleDownloadRequest):
* UIProcess/API/efl/ewk_back_forward_list.cpp:
(_Ewk_Back_Forward_List::_Ewk_Back_Forward_List):
(addItemToWrapperCache):
(ewk_back_forward_list_changed):
* UIProcess/API/efl/ewk_back_forward_list_item.cpp:
(ewk_back_forward_list_item_ref):
(ewk_back_forward_list_item_unref):
* UIProcess/API/efl/ewk_back_forward_list_item_private.h:
(_Ewk_Back_Forward_List_Item):
(_Ewk_Back_Forward_List_Item::_Ewk_Back_Forward_List_Item):
* UIProcess/API/efl/ewk_context.cpp:
(_Ewk_Context):
(_Ewk_Context::~_Ewk_Context):
(ewk_context_download_job_add):
(ewk_context_download_job_get):
(ewk_context_download_job_remove):
* UIProcess/API/efl/ewk_context_download_client.cpp:
(didReceiveResponse):
* UIProcess/API/efl/ewk_download_job.cpp:
(ewk_download_job_ref):
(ewk_download_job_unref):
(ewk_download_job_response_get):
(ewk_download_job_estimated_progress_get):
* UIProcess/API/efl/ewk_download_job_private.h:
(_Ewk_Download_Job):
(_Ewk_Download_Job::_Ewk_Download_Job):
* UIProcess/API/efl/ewk_navigation_data_private.h:
* UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
(ewk_navigation_policy_decision_ref):
(ewk_navigation_policy_decision_unref):
* UIProcess/API/efl/ewk_navigation_policy_decision_private.h:
(_Ewk_Navigation_Policy_Decision):
(_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
(_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
* UIProcess/API/efl/ewk_url_response.cpp:
(ewk_url_response_ref):
(ewk_url_response_unref):
* UIProcess/API/efl/ewk_url_response_private.h:
(_Ewk_Url_Response):
(_Ewk_Url_Response::_Ewk_Url_Response):
* UIProcess/API/efl/ewk_view_policy_client.cpp:
(decidePolicyForNavigationAction):
(decidePolicyForNewWindowAction):
* UIProcess/API/efl/ewk_view_resource_load_client.cpp:
(didSendRequestForResource):
(didReceiveResponseForResource):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (131459 => 131460)


--- trunk/Source/WebKit2/ChangeLog	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/ChangeLog	2012-10-16 16:08:00 UTC (rev 131460)
@@ -1,3 +1,62 @@
+2012-10-16  Mikhail Pozdnyakov  <[email protected]>
+
+        [EFL][WK2] Inherit Ewk_Download_Job, Ewk_Back_Forward_List_Item, Ewk_Url_Response, Ewk_Navigation_Policy_Decision from RefCounted
+        https://bugs.webkit.org/show_bug.cgi?id=99455
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        The API objects mentioned in bug title are inherited from WTF::RefCounted which made it possible
+        to use smart pointers with them.
+
+        * UIProcess/API/efl/PageClientImpl.cpp:
+        (WebKit::PageClientImpl::handleDownloadRequest):
+        * UIProcess/API/efl/ewk_back_forward_list.cpp:
+        (_Ewk_Back_Forward_List::_Ewk_Back_Forward_List):
+        (addItemToWrapperCache):
+        (ewk_back_forward_list_changed):
+        * UIProcess/API/efl/ewk_back_forward_list_item.cpp:
+        (ewk_back_forward_list_item_ref):
+        (ewk_back_forward_list_item_unref):
+        * UIProcess/API/efl/ewk_back_forward_list_item_private.h:
+        (_Ewk_Back_Forward_List_Item):
+        (_Ewk_Back_Forward_List_Item::_Ewk_Back_Forward_List_Item):
+        * UIProcess/API/efl/ewk_context.cpp:
+        (_Ewk_Context):
+        (_Ewk_Context::~_Ewk_Context):
+        (ewk_context_download_job_add):
+        (ewk_context_download_job_get):
+        (ewk_context_download_job_remove):
+        * UIProcess/API/efl/ewk_context_download_client.cpp:
+        (didReceiveResponse):
+        * UIProcess/API/efl/ewk_download_job.cpp:
+        (ewk_download_job_ref):
+        (ewk_download_job_unref):
+        (ewk_download_job_response_get):
+        (ewk_download_job_estimated_progress_get):
+        * UIProcess/API/efl/ewk_download_job_private.h:
+        (_Ewk_Download_Job):
+        (_Ewk_Download_Job::_Ewk_Download_Job):
+        * UIProcess/API/efl/ewk_navigation_data_private.h:
+        * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
+        (ewk_navigation_policy_decision_ref):
+        (ewk_navigation_policy_decision_unref):
+        * UIProcess/API/efl/ewk_navigation_policy_decision_private.h:
+        (_Ewk_Navigation_Policy_Decision):
+        (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
+        (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
+        * UIProcess/API/efl/ewk_url_response.cpp:
+        (ewk_url_response_ref):
+        (ewk_url_response_unref):
+        * UIProcess/API/efl/ewk_url_response_private.h:
+        (_Ewk_Url_Response):
+        (_Ewk_Url_Response::_Ewk_Url_Response):
+        * UIProcess/API/efl/ewk_view_policy_client.cpp:
+        (decidePolicyForNavigationAction):
+        (decidePolicyForNewWindowAction):
+        * UIProcess/API/efl/ewk_view_resource_load_client.cpp:
+        (didSendRequestForResource):
+        (didReceiveResponseForResource):
+
 2012-10-16  Sudarsana Nagineni  <[email protected]>
 
         [WK2][EFL] Crash in _ewk_view_on_favicon_changed()

Modified: trunk/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -283,9 +283,8 @@
 
 void PageClientImpl::handleDownloadRequest(DownloadProxy* download)
 {
-    Ewk_Download_Job* ewkDownload = ewk_download_job_new(download, m_viewWidget);
-    ewk_context_download_job_add(ewk_view_context_get(m_viewWidget), ewkDownload);
-    ewk_download_job_unref(ewkDownload);
+    RefPtr<Ewk_Download_Job> ewkDownload = adoptRef(ewk_download_job_new(download, m_viewWidget));
+    ewk_context_download_job_add(ewk_view_context_get(m_viewWidget), ewkDownload.get());
 }
 
 #if USE(TILED_BACKING_STORE)

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -35,7 +35,7 @@
 
 using namespace WebKit;
 
-typedef HashMap<WKBackForwardListItemRef, Ewk_Back_Forward_List_Item*> ItemsMap;
+typedef HashMap<WKBackForwardListItemRef, RefPtr<Ewk_Back_Forward_List_Item> > ItemsMap;
 
 /**
  * \struct  _Ewk_Back_Forward_List
@@ -48,14 +48,6 @@
     _Ewk_Back_Forward_List(WKBackForwardListRef listRef)
         : wkList(listRef)
     { }
-
-    ~_Ewk_Back_Forward_List()
-    {
-        ItemsMap::iterator it = wrapperCache.begin();
-        ItemsMap::iterator end = wrapperCache.end();
-        for (; it != end; ++it)
-            ewk_back_forward_list_item_unref(it->value);
-    }
 };
 
 #define EWK_BACK_FORWARD_LIST_WK_GET_OR_RETURN(list, wkList_, ...)  \
@@ -75,13 +67,13 @@
     EINA_SAFETY_ON_NULL_RETURN_VAL(list, 0);
     EINA_SAFETY_ON_NULL_RETURN_VAL(wkItem, 0);
 
-    Ewk_Back_Forward_List_Item* item = list->wrapperCache.get(wkItem);
+    RefPtr<Ewk_Back_Forward_List_Item> item = list->wrapperCache.get(wkItem);
     if (!item) {
-        item = ewk_back_forward_list_item_new(wkItem);
+        item = adoptRef(ewk_back_forward_list_item_new(wkItem));
         list->wrapperCache.set(wkItem, item);
     }
 
-    return item;
+    return item.get();
 }
 
 static inline Eina_List* createEinaList(const Ewk_Back_Forward_List* list, WKArrayRef wkList)
@@ -174,8 +166,7 @@
     const size_t removedItemsSize = wkRemovedItems ? WKArrayGetSize(wkRemovedItems) : 0;
     for (size_t i = 0; i < removedItemsSize; ++i) {
         WKBackForwardListItemRef wkItem = static_cast<WKBackForwardListItemRef>(WKArrayGetItemAtIndex(wkRemovedItems, i));
-        if (Ewk_Back_Forward_List_Item* item = list->wrapperCache.take(wkItem))
-            ewk_back_forward_list_item_unref(item);
+        list->wrapperCache.remove(wkItem);
     }
 }
 

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -28,32 +28,10 @@
 
 #include "WKAPICast.h"
 #include "WKBackForwardListItem.h"
-#include "WKEinaSharedString.h"
+#include "ewk_back_forward_list_item_private.h"
 
 using namespace WebKit;
 
-/**
- * \struct  _Ewk_Back_Forward_List
- * @brief   Contains the Back Forward List data.
- */
-struct _Ewk_Back_Forward_List_Item {
-    unsigned int __ref; /**< the reference count of the object */
-    WKRetainPtr<WKBackForwardListItemRef> wkItem;
-    mutable WKEinaSharedString url;
-    mutable WKEinaSharedString title;
-    mutable WKEinaSharedString originalURL;
-
-    _Ewk_Back_Forward_List_Item(WKBackForwardListItemRef itemRef)
-        : __ref(1)
-        , wkItem(itemRef)
-    { }
-
-    ~_Ewk_Back_Forward_List_Item()
-    {
-        ASSERT(!__ref);
-    }
-};
-
 #define EWK_BACK_FORWARD_LIST_ITEM_WK_GET_OR_RETURN(item, wkItem_, ...)    \
     if (!(item)) {                                                         \
         EINA_LOG_CRIT("item is NULL.");                                    \
@@ -68,7 +46,7 @@
 Ewk_Back_Forward_List_Item* ewk_back_forward_list_item_ref(Ewk_Back_Forward_List_Item* item)
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(item, 0);
-    ++item->__ref;
+    item->ref();
 
     return item;
 }
@@ -77,10 +55,7 @@
 {
     EINA_SAFETY_ON_NULL_RETURN(item);
 
-    if (--item->__ref)
-        return;
-
-    delete item;
+    item->deref();
 }
 
 const char* ewk_back_forward_list_item_url_get(const Ewk_Back_Forward_List_Item* item)

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item_private.h (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item_private.h	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item_private.h	2012-10-16 16:08:00 UTC (rev 131460)
@@ -26,8 +26,22 @@
 #ifndef ewk_back_forward_list_item_private_h
 #define ewk_back_forward_list_item_private_h
 
+#include "WKEinaSharedString.h"
 #include <WebKit2/WKBase.h>
 
+/**
+ * \struct  _Ewk_Back_Forward_List
+ * @brief   Contains the Back Forward List data.
+ */
+struct _Ewk_Back_Forward_List_Item : public RefCounted<_Ewk_Back_Forward_List_Item> {
+    WKRetainPtr<WKBackForwardListItemRef> wkItem;
+    mutable WKEinaSharedString url;
+    mutable WKEinaSharedString title;
+    mutable WKEinaSharedString originalURL;
+
+    _Ewk_Back_Forward_List_Item(WKBackForwardListItemRef itemRef) : wkItem(itemRef) { }
+};
+
 typedef struct _Ewk_Back_Forward_List_Item Ewk_Back_Forward_List_Item;
 
 Ewk_Back_Forward_List_Item* ewk_back_forward_list_item_new(WKBackForwardListItemRef wkBackForwardListItemRef);

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -79,7 +79,7 @@
 #if ENABLE(VIBRATION)
     RefPtr<VibrationProvider> vibrationProvider;
 #endif
-    HashMap<uint64_t, Ewk_Download_Job*> downloadJobs;
+    HashMap<uint64_t, RefPtr<Ewk_Download_Job> > downloadJobs;
 
     WKRetainPtr<WKSoupRequestManagerRef> requestManager;
     URLSchemeHandlerMap urlSchemeHandlers;
@@ -128,11 +128,6 @@
 
         if (faviconDatabase)
             ewk_favicon_database_free(faviconDatabase);
-
-        HashMap<uint64_t, Ewk_Download_Job*>::iterator it = downloadJobs.begin();
-        HashMap<uint64_t, Ewk_Download_Job*>::iterator end = downloadJobs.end();
-        for ( ; it != end; ++it)
-            ewk_download_job_unref(it->value);
     }
 };
 
@@ -210,7 +205,7 @@
     if (ewkContext->downloadJobs.contains(downloadId))
         return;
 
-    ewkContext->downloadJobs.add(downloadId, ewk_download_job_ref(ewkDownload));
+    ewkContext->downloadJobs.add(downloadId, ewkDownload);
 }
 
 /**
@@ -222,7 +217,7 @@
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(ewkContext, 0);
 
-    return ewkContext->downloadJobs.get(downloadId);
+    return ewkContext->downloadJobs.get(downloadId).get();
 }
 
 /**
@@ -233,9 +228,7 @@
 void ewk_context_download_job_remove(Ewk_Context* ewkContext, uint64_t downloadId)
 {
     EINA_SAFETY_ON_NULL_RETURN(ewkContext);
-    Ewk_Download_Job* download = ewkContext->downloadJobs.take(downloadId);
-    if (download)
-        ewk_download_job_unref(download);
+    ewkContext->downloadJobs.remove(downloadId);
 }
 
 /**

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_context_download_client.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_context_download_client.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_context_download_client.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -68,9 +68,8 @@
 {
     Ewk_Download_Job* download = ewk_context_download_job_get(toEwkContext(clientInfo), toImpl(wkDownload)->downloadID());
     ASSERT(download);
-    Ewk_Url_Response* response = ewk_url_response_new(toImpl(wkResponse)->resourceResponse());
-    ewk_download_job_response_set(download, response);
-    ewk_url_response_unref(response);
+    RefPtr<Ewk_Url_Response> response = adoptRef(ewk_url_response_new(toImpl(wkResponse)->resourceResponse()));
+    ewk_download_job_response_set(download, response.get());
 }
 
 static void didCreateDestination(WKContextRef, WKDownloadRef wkDownload, WKStringRef /*path*/, const void* clientInfo)

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_download_job.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_download_job.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_download_job.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -28,56 +28,18 @@
 
 #include "DownloadProxy.h"
 #include "WKAPICast.h"
-#include "WKEinaSharedString.h"
 #include "WKRetainPtr.h"
 #include "WebURLRequest.h"
 #include "ewk_download_job_private.h"
-#include "ewk_url_request_private.h"
 #include <Ecore.h>
 
 using namespace WebKit;
 
-/**
- * \struct  _Ewk_Download_Job
- * @brief   Contains the download data.
- */
-struct _Ewk_Download_Job {
-    unsigned int __ref; /**< the reference count of the object */
-    DownloadProxy* downloadProxy;
-    Evas_Object* view;
-    Ewk_Download_Job_State state;
-    RefPtr<Ewk_Url_Request> request;
-    Ewk_Url_Response* response;
-    double startTime;
-    double endTime;
-    uint64_t downloaded; /**< length already downloaded */
-    WKEinaSharedString destination;
-    WKEinaSharedString suggestedFilename;
-
-    _Ewk_Download_Job(DownloadProxy* download, Evas_Object* ewkView)
-        : __ref(1)
-        , downloadProxy(download)
-        , view(ewkView)
-        , state(EWK_DOWNLOAD_JOB_STATE_NOT_STARTED)
-        , response(0)
-        , startTime(-1)
-        , endTime(-1)
-        , downloaded(0)
-    { }
-
-    ~_Ewk_Download_Job()
-    {
-        ASSERT(!__ref);
-        if (response)
-            ewk_url_response_unref(response);
-    }
-};
-
 Ewk_Download_Job* ewk_download_job_ref(Ewk_Download_Job* download)
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(download, 0);
 
-    ++download->__ref;
+    download->ref();
 
     return download;
 }
@@ -86,10 +48,7 @@
 {
     EINA_SAFETY_ON_NULL_RETURN(download);
 
-    if (--download->__ref)
-        return;
-
-    delete download;
+    download->deref();
 }
 
 /**
@@ -140,7 +99,7 @@
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(download, 0);
 
-    return download->response;
+    return download->response.get();
 }
 
 const char* ewk_download_job_destination_get(const Ewk_Download_Job* download)
@@ -187,7 +146,7 @@
     if (!download->response)
         return 0;
 
-    const unsigned long contentLength = ewk_url_response_content_length_get(download->response);
+    const unsigned long contentLength = ewk_url_response_content_length_get(download->response.get());
     if (!contentLength)
         return 0;
 

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_download_job_private.h (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_download_job_private.h	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_download_job_private.h	2012-10-16 16:08:00 UTC (rev 131460)
@@ -27,16 +27,45 @@
 #define ewk_download_job_private_h
 
 #include "WKBase.h"
+#include "WKEinaSharedString.h"
+#include "ewk_url_request_private.h"
+#include "ewk_url_response_private.h"
 #include <Evas.h>
 
-typedef struct _Ewk_Download_Job Ewk_Download_Job;
-typedef struct _Ewk_Url_Response Ewk_Url_Response;
-typedef struct _Ewk_Error Ewk_Error;
-
 namespace WebKit {
 class DownloadProxy;
 }
 
+/**
+ * \struct  _Ewk_Download_Job
+ * @brief   Contains the download data.
+ */
+struct _Ewk_Download_Job : public RefCounted<_Ewk_Download_Job> {
+    WebKit::DownloadProxy* downloadProxy;
+    Evas_Object* view;
+    Ewk_Download_Job_State state;
+    RefPtr<Ewk_Url_Request> request;
+    RefPtr<Ewk_Url_Response> response;
+    double startTime;
+    double endTime;
+    uint64_t downloaded; /**< length already downloaded */
+    WKEinaSharedString destination;
+    WKEinaSharedString suggestedFilename;
+
+    _Ewk_Download_Job(WebKit::DownloadProxy* download, Evas_Object* ewkView)
+        : downloadProxy(download)
+        , view(ewkView)
+        , state(EWK_DOWNLOAD_JOB_STATE_NOT_STARTED)
+        , response(0)
+        , startTime(-1)
+        , endTime(-1)
+        , downloaded(0)
+    { }
+};
+
+typedef struct _Ewk_Download_Job Ewk_Download_Job;
+typedef struct _Ewk_Error Ewk_Error;
+
 Ewk_Download_Job* ewk_download_job_new(WebKit::DownloadProxy*, Evas_Object* ewkView);
 uint64_t ewk_download_job_id_get(const Ewk_Download_Job*);
 Evas_Object* ewk_download_job_view_get(const Ewk_Download_Job*);

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h	2012-10-16 16:08:00 UTC (rev 131460)
@@ -32,6 +32,7 @@
 #include "WKRetainPtr.h"
 #include "ewk_private.h"
 #include "ewk_url_request_private.h"
+#include <wtf/RefCounted.h>
 
 /**
  * \struct  _Ewk_Navigation_Data

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -26,56 +26,17 @@
 #include "config.h"
 #include "ewk_navigation_policy_decision.h"
 
-#include "WKAPICast.h"
-#include "WKEinaSharedString.h"
-#include "WKFramePolicyListener.h"
-#include "WKRetainPtr.h"
 #include "ewk_navigation_policy_decision_private.h"
 #include "ewk_private.h"
 #include "ewk_url_request_private.h"
 
 using namespace WebKit;
 
-/**
- * \struct  _Ewk_Navigation_Policy_Decision
- * @brief   Contains the navigation policy decision data.
- */
-struct _Ewk_Navigation_Policy_Decision {
-    unsigned int __ref; /**< the reference count of the object */
-    WKRetainPtr<WKFramePolicyListenerRef> listener;
-    bool actedUponByClient;
-    Ewk_Navigation_Type navigationType;
-    Event_Mouse_Button mouseButton;
-    Event_Modifier_Keys modifiers;
-    RefPtr<Ewk_Url_Request> request;
-    WKEinaSharedString frameName;
-
-    _Ewk_Navigation_Policy_Decision(WKFramePolicyListenerRef _listener, Ewk_Navigation_Type _navigationType, Event_Mouse_Button _mouseButton, Event_Modifier_Keys _modifiers, PassRefPtr<Ewk_Url_Request> _request, const char* _frameName)
-        : __ref(1)
-        , listener(_listener)
-        , actedUponByClient(false)
-        , navigationType(_navigationType)
-        , mouseButton(_mouseButton)
-        , modifiers(_modifiers)
-        , request(_request)
-        , frameName(_frameName)
-    { }
-
-    ~_Ewk_Navigation_Policy_Decision()
-    {
-        ASSERT(!__ref);
-
-        // This is the default choice for all policy decisions in WebPageProxy.cpp.
-        if (!actedUponByClient)
-            WKFramePolicyListenerUse(listener.get());
-    }
-};
-
 Ewk_Navigation_Policy_Decision* ewk_navigation_policy_decision_ref(Ewk_Navigation_Policy_Decision* decision)
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(decision, 0);
 
-    ++decision->__ref;
+    decision->ref();
 
     return decision;
 }
@@ -84,10 +45,7 @@
 {
     EINA_SAFETY_ON_NULL_RETURN(decision);
 
-    if (--decision->__ref)
-        return;
-
-    delete decision;
+    decision->deref();
 }
 
 Ewk_Navigation_Type ewk_navigation_policy_navigation_type_get(const Ewk_Navigation_Policy_Decision* decision)

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision_private.h (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision_private.h	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision_private.h	2012-10-16 16:08:00 UTC (rev 131460)
@@ -26,10 +26,46 @@
 #ifndef ewk_navigation_policy_decision_private_h
 #define ewk_navigation_policy_decision_private_h
 
+#include "WKAPICast.h"
 #include "WKBase.h"
+#include "WKEinaSharedString.h"
 #include "WKEvent.h"
+#include "WKFramePolicyListener.h"
 #include "WKPageLoadTypes.h"
+#include "WKRetainPtr.h"
+#include "ewk_url_request_private.h"
 
+/**
+ * \struct  _Ewk_Navigation_Policy_Decision
+ * @brief   Contains the navigation policy decision data.
+ */
+struct _Ewk_Navigation_Policy_Decision : public RefCounted<_Ewk_Navigation_Policy_Decision> {
+    WKRetainPtr<WKFramePolicyListenerRef> listener;
+    bool actedUponByClient;
+    Ewk_Navigation_Type navigationType;
+    Event_Mouse_Button mouseButton;
+    Event_Modifier_Keys modifiers;
+    RefPtr<Ewk_Url_Request> request;
+    WKEinaSharedString frameName;
+
+    _Ewk_Navigation_Policy_Decision(WKFramePolicyListenerRef listener, Ewk_Navigation_Type navigationType, Event_Mouse_Button mouseButton, Event_Modifier_Keys modifiers, PassRefPtr<Ewk_Url_Request> request, const char* frameName)
+        : listener(listener)
+        , actedUponByClient(false)
+        , navigationType(navigationType)
+        , mouseButton(mouseButton)
+        , modifiers(modifiers)
+        , request(request)
+        , frameName(frameName)
+    { }
+
+    ~_Ewk_Navigation_Policy_Decision()
+    {
+        // This is the default choice for all policy decisions in WebPageProxy.cpp.
+        if (!actedUponByClient)
+            WKFramePolicyListenerUse(listener.get());
+    }
+};
+
 typedef struct _Ewk_Navigation_Policy_Decision Ewk_Navigation_Policy_Decision;
 
 Ewk_Navigation_Policy_Decision* ewk_navigation_policy_decision_new(WKFrameNavigationType navigationType, WKEventMouseButton mouseButton, WKEventModifiers modifiers, WKURLRequestRef request, const char* frameName, WKFramePolicyListenerRef listener);

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_url_response.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_url_response.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_url_response.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -26,42 +26,15 @@
 #include "config.h"
 #include "ewk_url_response.h"
 
-#include "WKAPICast.h"
-#include "WKEinaSharedString.h"
-#include "WKURLResponse.h"
 #include "ewk_url_response_private.h"
 #include <wtf/text/CString.h>
 
 using namespace WebKit;
 
-/**
- * \struct  _Ewk_Url_Response
- * @brief   Contains the URL response data.
- */
-struct _Ewk_Url_Response {
-    unsigned int __ref; /**< the reference count of the object */
-    WebCore::ResourceResponse coreResponse;
-
-    WKEinaSharedString url;
-    WKEinaSharedString mimeType;
-
-    _Ewk_Url_Response(const WebCore::ResourceResponse& _coreResponse)
-        : __ref(1)
-        , coreResponse(_coreResponse)
-        , url(AdoptWK, WKURLResponseCopyURL(toAPI(coreResponse)))
-        , mimeType(AdoptWK, WKURLResponseCopyMIMEType(toAPI(coreResponse)))
-    { }
-
-    ~_Ewk_Url_Response()
-    {
-        ASSERT(!__ref);
-    }
-};
-
 Ewk_Url_Response* ewk_url_response_ref(Ewk_Url_Response* response)
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(response, 0);
-    ++response->__ref;
+    response->ref();
 
     return response;
 }
@@ -70,10 +43,7 @@
 {
     EINA_SAFETY_ON_NULL_RETURN(response);
 
-    if (--response->__ref)
-        return;
-
-    delete response;
+    response->deref();
 }
 
 const char* ewk_url_response_url_get(const Ewk_Url_Response* response)

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_url_response_private.h (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_url_response_private.h	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_url_response_private.h	2012-10-16 16:08:00 UTC (rev 131460)
@@ -26,8 +26,26 @@
 #ifndef ewk_url_response_private_h
 #define ewk_url_response_private_h
 
+#include "WKAPICast.h"
+#include "WKEinaSharedString.h"
+#include "WKURLResponse.h"
 #include <WebCore/ResourceResponse.h>
+/**
+ * \struct  _Ewk_Url_Response
+ * @brief   Contains the URL response data.
+ */
+struct _Ewk_Url_Response : public RefCounted<_Ewk_Url_Response> {
+    WebCore::ResourceResponse coreResponse;
+    WKEinaSharedString url;
+    WKEinaSharedString mimeType;
 
+    _Ewk_Url_Response(const WebCore::ResourceResponse& _coreResponse)
+        : coreResponse(_coreResponse)
+        , url(AdoptWK, WKURLResponseCopyURL(WebKit::toAPI(coreResponse)))
+        , mimeType(AdoptWK, WKURLResponseCopyMIMEType(WebKit::toAPI(coreResponse)))
+    { }
+};
+
 typedef struct _Ewk_Url_Response Ewk_Url_Response;
 
 Ewk_Url_Response* ewk_url_response_new(const WebCore::ResourceResponse& resourceResponse);

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_policy_client.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_policy_client.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_policy_client.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -44,16 +44,14 @@
 
 static void decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef /*userData*/, const void* clientInfo)
 {
-    Ewk_Navigation_Policy_Decision* decision = ewk_navigation_policy_decision_new(navigationType, mouseButton, modifiers, request, 0, listener);
-    ewk_view_navigation_policy_decision(toEwkView(clientInfo), decision);
-    ewk_navigation_policy_decision_unref(decision);
+    RefPtr<Ewk_Navigation_Policy_Decision> decision = adoptRef(ewk_navigation_policy_decision_new(navigationType, mouseButton, modifiers, request, 0, listener));
+    ewk_view_navigation_policy_decision(toEwkView(clientInfo), decision.get());
 }
 
 static void decidePolicyForNewWindowAction(WKPageRef, WKFrameRef, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKStringRef frameName, WKFramePolicyListenerRef listener, WKTypeRef /*userData*/, const void* clientInfo)
 {
-    Ewk_Navigation_Policy_Decision* decision = ewk_navigation_policy_decision_new(navigationType, mouseButton, modifiers, request, toImpl(frameName)->string().utf8().data(), listener);
-    ewk_view_new_window_policy_decision(toEwkView(clientInfo), decision);
-    ewk_navigation_policy_decision_unref(decision);
+    RefPtr<Ewk_Navigation_Policy_Decision> decision = adoptRef(ewk_navigation_policy_decision_new(navigationType, mouseButton, modifiers, request, toImpl(frameName)->string().utf8().data(), listener));
+    ewk_view_new_window_policy_decision(toEwkView(clientInfo), decision.get());
 }
 
 static void decidePolicyForResponseCallback(WKPageRef, WKFrameRef frame, WKURLResponseRef response, WKURLRequestRef, WKFramePolicyListenerRef listener, WKTypeRef /*userData*/, const void* /*clientInfo*/)

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_resource_load_client.cpp (131459 => 131460)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_resource_load_client.cpp	2012-10-16 15:51:25 UTC (rev 131459)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_resource_load_client.cpp	2012-10-16 16:08:00 UTC (rev 131460)
@@ -65,17 +65,14 @@
 static void didSendRequestForResource(WKPageRef, WKFrameRef, uint64_t resourceIdentifier, WKURLRequestRef wkRequest, WKURLResponseRef wkRedirectResponse, const void* clientInfo)
 {
     RefPtr<Ewk_Url_Request> request = adoptRef(ewk_url_request_new(wkRequest));
-    Ewk_Url_Response* redirectResponse = wkRedirectResponse ? ewk_url_response_new(toImpl(wkRedirectResponse)->resourceResponse()) : 0;
-    ewk_view_resource_request_sent(toEwkView(clientInfo), resourceIdentifier, request.get(), redirectResponse);
-    if (redirectResponse)
-        ewk_url_response_unref(redirectResponse);
+    RefPtr<Ewk_Url_Response> redirectResponse = wkRedirectResponse ? adoptRef(ewk_url_response_new(toImpl(wkRedirectResponse)->resourceResponse())) : 0;
+    ewk_view_resource_request_sent(toEwkView(clientInfo), resourceIdentifier, request.get(), redirectResponse.get());
 }
 
 static void didReceiveResponseForResource(WKPageRef, WKFrameRef, uint64_t resourceIdentifier, WKURLResponseRef wkResponse, const void* clientInfo)
 {
-    Ewk_Url_Response* response = ewk_url_response_new(toImpl(wkResponse)->resourceResponse());
-    ewk_view_resource_load_response(toEwkView(clientInfo), resourceIdentifier, response);
-    ewk_url_response_unref(response);
+    RefPtr<Ewk_Url_Response> response = adoptRef(ewk_url_response_new(toImpl(wkResponse)->resourceResponse()));
+    ewk_view_resource_load_response(toEwkView(clientInfo), resourceIdentifier, response.get());
 }
 
 static void didFinishLoadForResource(WKPageRef, WKFrameRef, uint64_t resourceIdentifier, const void* clientInfo)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to