From 64e172b4c203b3fe89cbcaf24ecfef5ca3e14543 Mon Sep 17 00:00:00 2001 From: Arnaud Renevier Date: Wed, 18 Mar 2015 14:09:37 -0700 Subject: [PATCH] Remove tw_policy_decision.* There were two distinct classes: Ewk_Policy_Decision and _Ewk_Policy_Decision. _Ewk_Policy_Decision was a subclass of tizen_webview::PolicyDecision. Ewk_Policy_Decision owned an _Ewk_Policy_Decision and forwarded it it's method. This patch simplifies everything: there is now only _Ewk_Policy_Decision, and Ewk_Policy_Decision is an alias to it. Change-Id: I74c5187dda6afc7f3cd362d0107d1f8e52ec1245 Signed-off-by: Arnaud Renevier --- .../browser/policy_response_delegate_efl.cc | 10 +- .../browser/policy_response_delegate_efl.h | 6 +- .../browser/resource_throttle_efl.cc | 1 - tizen_src/ewk/efl_integration/efl_integration.gypi | 2 - tizen_src/ewk/efl_integration/eweb_view.cc | 6 +- tizen_src/ewk/efl_integration/eweb_view.h | 6 +- .../ewk/efl_integration/eweb_view_callbacks.h | 8 +- .../ewk/efl_integration/private/chromium_glue.cc | 42 ------- .../ewk/efl_integration/private/chromium_glue.h | 8 -- .../private/ewk_policy_decision_private.cc | 29 +++-- .../private/ewk_policy_decision_private.h | 17 ++- .../efl_integration/public/ewk_policy_decision.cc | 4 +- .../efl_integration/public/ewk_policy_decision.h | 2 +- .../tizen_webview/public/tw_policy_decision.cc | 135 --------------------- .../tizen_webview/public/tw_policy_decision.h | 101 --------------- .../efl_integration/web_contents_delegate_efl.cc | 6 +- 16 files changed, 53 insertions(+), 330 deletions(-) delete mode 100644 tizen_src/ewk/efl_integration/tizen_webview/public/tw_policy_decision.cc delete mode 100644 tizen_src/ewk/efl_integration/tizen_webview/public/tw_policy_decision.h diff --git a/tizen_src/ewk/efl_integration/browser/policy_response_delegate_efl.cc b/tizen_src/ewk/efl_integration/browser/policy_response_delegate_efl.cc index ed978da6..49da299 100644 --- a/tizen_src/ewk/efl_integration/browser/policy_response_delegate_efl.cc +++ b/tizen_src/ewk/efl_integration/browser/policy_response_delegate_efl.cc @@ -33,10 +33,10 @@ PolicyResponseDelegateEfl::PolicyResponseDelegateEfl( net::URLRequest* request, content::ResourceType resource_type, ResourceThrottleEfl* throttle) - : policy_decision_(new tizen_webview::PolicyDecision(request->url(), - request, - resource_type, - this)), + : policy_decision_(new _Ewk_Policy_Decision(request->url(), + request, + resource_type, + this)), throttle_(throttle), render_process_id_(0), render_frame_id_(0), @@ -113,7 +113,7 @@ void PolicyResponseDelegateEfl::HandlePolicyResponseOnUIThread() { } // Delegate may be retrieved ONLY on UI thread - policy_decision_->GetImpl()->InitializeOnUIThread(); + policy_decision_->InitializeOnUIThread(); // web_view_ takes owenership of Ewk_Policy_Decision. This is same as WK2/Tizen WebViewFromWebContents(web_contents)-> diff --git a/tizen_src/ewk/efl_integration/browser/policy_response_delegate_efl.h b/tizen_src/ewk/efl_integration/browser/policy_response_delegate_efl.h index eece8b7..bb46fe2 100644 --- a/tizen_src/ewk/efl_integration/browser/policy_response_delegate_efl.h +++ b/tizen_src/ewk/efl_integration/browser/policy_response_delegate_efl.h @@ -9,7 +9,8 @@ #include "content/public/browser/resource_controller.h" #include "content/public/common/resource_type.h" #include "net/base/completion_callback.h" -#include "tizen_webview/public/tw_policy_decision.h" +#include "private/ewk_policy_decision_private.h" +#include "public/ewk_policy_decision.h" #include "url/gurl.h" namespace net { @@ -22,6 +23,7 @@ class ResourceController; } class ResourceThrottleEfl; +class _Ewk_Policy_Decision; class PolicyResponseDelegateEfl: public base::RefCountedThreadSafe { public: @@ -44,7 +46,7 @@ class PolicyResponseDelegateEfl: public base::RefCountedThreadSafe policy_decision_; + scoped_ptr<_Ewk_Policy_Decision> policy_decision_; // A throttle which blocks response and invokes policy mechanism. // It is used to cancel or resume response processing. ResourceThrottleEfl* throttle_; diff --git a/tizen_src/ewk/efl_integration/browser/resource_throttle_efl.cc b/tizen_src/ewk/efl_integration/browser/resource_throttle_efl.cc index f370620..083282b 100644 --- a/tizen_src/ewk/efl_integration/browser/resource_throttle_efl.cc +++ b/tizen_src/ewk/efl_integration/browser/resource_throttle_efl.cc @@ -4,7 +4,6 @@ #include "browser/policy_response_delegate_efl.h" #include "browser/resource_throttle_efl.h" -#include "tizen_webview/public/tw_policy_decision.h" ResourceThrottleEfl::~ResourceThrottleEfl() { if (policy_delegate_.get()) { diff --git a/tizen_src/ewk/efl_integration/efl_integration.gypi b/tizen_src/ewk/efl_integration/efl_integration.gypi index bff1c14..4b85b49 100644 --- a/tizen_src/ewk/efl_integration/efl_integration.gypi +++ b/tizen_src/ewk/efl_integration/efl_integration.gypi @@ -429,7 +429,6 @@ 'tizen_webview/public/tw_settings.h', 'tizen_webview/public/tw_context_menu_controller.cc', - 'tizen_webview/public/tw_policy_decision.cc', 'tizen_webview/public/tw_touch_point.h', 'tizen_webview/public/tw_webview_delegate.cc', 'tizen_webview/public/tw_callbacks.h', @@ -445,7 +444,6 @@ 'tizen_webview/public/tw_hit_test.cc', 'tizen_webview/public/tw_webview.cc', 'tizen_webview/public/tw_web_context.cc', - 'tizen_webview/public/tw_policy_decision.h', 'tizen_webview/public/tw_touch_point.cc', 'renderer/content_renderer_client_efl.cc', diff --git a/tizen_src/ewk/efl_integration/eweb_view.cc b/tizen_src/ewk/efl_integration/eweb_view.cc index afc7bd0..c81d6b9 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.cc +++ b/tizen_src/ewk/efl_integration/eweb_view.cc @@ -643,7 +643,7 @@ void EWebView::InvokeAuthCallback(LoginDelegateEfl* login_delegate, } } -void EWebView::InvokePolicyResponseCallback(tizen_webview::PolicyDecision* policy_decision) { +void EWebView::InvokePolicyResponseCallback(_Ewk_Policy_Decision* policy_decision) { SmartCallback().call(policy_decision); if (policy_decision->isSuspended()) @@ -661,7 +661,7 @@ void EWebView::InvokePolicyNavigationCallback(RenderViewHost* rvh, SmartCallback().call(); - scoped_ptr policy_decision(new PolicyDecision(params, rvh)); + scoped_ptr<_Ewk_Policy_Decision> policy_decision(new _Ewk_Policy_Decision(params, rvh)); SmartCallback().call(policy_decision.get()); @@ -674,7 +674,7 @@ void EWebView::InvokePolicyNavigationCallback(RenderViewHost* rvh, if (!policy_decision->isDecided()) policy_decision->Use(); - *handled = policy_decision->GetImpl()->GetNavigationPolicyHandler()->GetDecision() == NavigationPolicyHandlerEfl::Handled; + *handled = policy_decision->GetNavigationPolicyHandler()->GetDecision() == NavigationPolicyHandlerEfl::Handled; } void EWebView::HandleTouchEvents(Ewk_Touch_Event_Type type, const Eina_List *points, const Evas_Modifier *modifiers) diff --git a/tizen_src/ewk/efl_integration/eweb_view.h b/tizen_src/ewk/efl_integration/eweb_view.h index 9ac689a..6f9b2e6 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.h +++ b/tizen_src/ewk/efl_integration/eweb_view.h @@ -84,10 +84,10 @@ class WebContext; class WebView; class WebViewDelegate; class WebViewEvasEventHandler; -class PolicyDecision; } class ErrorParams; +class _Ewk_Policy_Decision; class WebAppScreenshotCapturedCallback : public base::RefCounted { public: @@ -350,7 +350,7 @@ class EWebView { Evas_Object* GetSnapshot(Eina_Rectangle rect); bool GetSnapshotAsync(Eina_Rectangle rect, Evas* canvas, tizen_webview::Web_App_Screenshot_Captured_Callback callback, void* user_data); - void InvokePolicyResponseCallback(tizen_webview::PolicyDecision* policy_decision); + void InvokePolicyResponseCallback(_Ewk_Policy_Decision* policy_decision); void InvokePolicyNavigationCallback(content::RenderViewHost* rvh, NavigationPolicyParams params, bool* handled); void UseSettingsFont(); @@ -502,7 +502,7 @@ class EWebView { std::string pending_url_request_; scoped_ptr settings_; scoped_ptr<_Ewk_Frame> frame_; - scoped_ptr window_policy_; + scoped_ptr<_Ewk_Policy_Decision> window_policy_; Evas_Object* evas_object_; Evas_Object* native_view_; bool touch_events_enabled_; diff --git a/tizen_src/ewk/efl_integration/eweb_view_callbacks.h b/tizen_src/ewk/efl_integration/eweb_view_callbacks.h index 17ae75f..e231cdd 100644 --- a/tizen_src/ewk/efl_integration/eweb_view_callbacks.h +++ b/tizen_src/ewk/efl_integration/eweb_view_callbacks.h @@ -33,8 +33,8 @@ #include "private/ewk_text_style_private.h" #include "private/ewk_geolocation_private.h" #include "private/ewk_certificate_private.h" +#include "private/ewk_policy_decision_private.h" #include "private/ewk_user_media_private.h" -#include "tizen_webview/public/tw_policy_decision.h" typedef struct EwkObject Ewk_Auth_Request; typedef struct EwkObject Ewk_Download_Job; @@ -237,13 +237,13 @@ DECLARE_EWK_VIEW_CALLBACK(GeoLocationValid, "geolocation,valid", Eina_Bool*); DECLARE_EWK_VIEW_CALLBACK(RequestCertificateConfirm, "request,certificate,confirm", _Ewk_Certificate_Policy_Decision*); DECLARE_EWK_VIEW_CALLBACK(AuthChallenge, "authentication,challenge", _Ewk_Auth_Challenge*); DECLARE_EWK_VIEW_CALLBACK(SetCertificatePem, "certificate,pem,set", const char*); -DECLARE_EWK_VIEW_CALLBACK(PolicyResponseDecide, "policy,response,decide", tizen_webview::PolicyDecision*); +DECLARE_EWK_VIEW_CALLBACK(PolicyResponseDecide, "policy,response,decide", _Ewk_Policy_Decision*); DECLARE_EWK_VIEW_CALLBACK(ContextMenuCustomize, "contextmenu,customize", _Ewk_Context_Menu*); DECLARE_EWK_VIEW_CALLBACK(ContextMenuItemSelected, "contextmenu,selected", _Ewk_Context_Menu_Item*); -DECLARE_EWK_VIEW_CALLBACK(NavigationPolicyDecision, "policy,navigation,decide", tizen_webview::PolicyDecision*); +DECLARE_EWK_VIEW_CALLBACK(NavigationPolicyDecision, "policy,navigation,decide", _Ewk_Policy_Decision*); DECLARE_EWK_VIEW_CALLBACK(TextFound, "text,found", unsigned int*); DECLARE_EWK_VIEW_CALLBACK(TextSelectionMode, "textselection,mode", bool*); -DECLARE_EWK_VIEW_CALLBACK(NewWindowPolicyDecision, "policy,newwindow,decide", tizen_webview::PolicyDecision*); +DECLARE_EWK_VIEW_CALLBACK(NewWindowPolicyDecision, "policy,newwindow,decide", _Ewk_Policy_Decision*); DECLARE_EWK_VIEW_CALLBACK(LoadNonEmptyLayoutFinished, "load,nonemptylayout,finished", void); DECLARE_EWK_VIEW_CALLBACK(PopupBlocked, "popup,blocked", Eina_Stringshare*); DECLARE_EWK_VIEW_CALLBACK(PopupReplyWaitStart, "popup,reply,wait,start", void*); diff --git a/tizen_src/ewk/efl_integration/private/chromium_glue.cc b/tizen_src/ewk/efl_integration/private/chromium_glue.cc index 993b1ff..765e3ec 100644 --- a/tizen_src/ewk/efl_integration/private/chromium_glue.cc +++ b/tizen_src/ewk/efl_integration/private/chromium_glue.cc @@ -105,46 +105,4 @@ tw::View_Hit_Test_Request_Callback to(Ewk_View_Hit_Test_Request_Callback callbac return reinterpret_cast(callback); } -tw::Policy_Decision_Type to(Ewk_Policy_Decision_Type val) -{ - GLUE_CAST_START(val) - GLUE_CAST_TO(EWK_POLICY_DECISION_USE, TW_POLICY_DECISION_USE) - GLUE_CAST_TO(EWK_POLICY_DECISION_DOWNLOAD, TW_POLICY_DECISION_DOWNLOAD) - GLUE_CAST_TO(EWK_POLICY_DECISION_IGNORE, TW_POLICY_DECISION_IGNORE) - GLUE_CAST_END() -} - -Ewk_Policy_Decision_Type from(tw::Policy_Decision_Type val) -{ - GLUE_CAST_START(val) - GLUE_CAST_FROM(EWK_POLICY_DECISION_USE, TW_POLICY_DECISION_USE) - GLUE_CAST_FROM(EWK_POLICY_DECISION_DOWNLOAD, TW_POLICY_DECISION_DOWNLOAD) - GLUE_CAST_FROM(EWK_POLICY_DECISION_IGNORE, TW_POLICY_DECISION_IGNORE) - GLUE_CAST_END() -} - -tw::Policy_Navigation_Type to(Ewk_Policy_Navigation_Type val) -{ - GLUE_CAST_START(val) - GLUE_CAST_TO(EWK_POLICY_NAVIGATION_TYPE_LINK_CLICKED, TW_POLICY_NAVIGATION_TYPE_LINK_CLICKED) - GLUE_CAST_TO(EWK_POLICY_NAVIGATION_TYPE_FORM_SUBMITTED, TW_POLICY_NAVIGATION_TYPE_FORM_SUBMITTED) - GLUE_CAST_TO(EWK_POLICY_NAVIGATION_TYPE_BACK_FORWARD, TW_POLICY_NAVIGATION_TYPE_BACK_FORWARD) - GLUE_CAST_TO(EWK_POLICY_NAVIGATION_TYPE_RELOAD, TW_POLICY_NAVIGATION_TYPE_RELOAD) - GLUE_CAST_TO(EWK_POLICY_NAVIGATION_TYPE_FORM_RESUBMITTED, TW_POLICY_NAVIGATION_TYPE_FORM_RESUBMITTED) - GLUE_CAST_TO(EWK_POLICY_NAVIGATION_TYPE_OTHER, TW_POLICY_NAVIGATION_TYPE_OTHER) - GLUE_CAST_END() -} - -Ewk_Policy_Navigation_Type from(tw::Policy_Navigation_Type val) -{ - GLUE_CAST_START(val) - GLUE_CAST_FROM(EWK_POLICY_NAVIGATION_TYPE_LINK_CLICKED, TW_POLICY_NAVIGATION_TYPE_LINK_CLICKED) - GLUE_CAST_FROM(EWK_POLICY_NAVIGATION_TYPE_FORM_SUBMITTED, TW_POLICY_NAVIGATION_TYPE_FORM_SUBMITTED) - GLUE_CAST_FROM(EWK_POLICY_NAVIGATION_TYPE_BACK_FORWARD, TW_POLICY_NAVIGATION_TYPE_BACK_FORWARD) - GLUE_CAST_FROM(EWK_POLICY_NAVIGATION_TYPE_RELOAD, TW_POLICY_NAVIGATION_TYPE_RELOAD) - GLUE_CAST_FROM(EWK_POLICY_NAVIGATION_TYPE_FORM_RESUBMITTED, TW_POLICY_NAVIGATION_TYPE_FORM_RESUBMITTED) - GLUE_CAST_FROM(EWK_POLICY_NAVIGATION_TYPE_OTHER, TW_POLICY_NAVIGATION_TYPE_OTHER) - GLUE_CAST_END() -} - } // namespace chromium_glue diff --git a/tizen_src/ewk/efl_integration/private/chromium_glue.h b/tizen_src/ewk/efl_integration/private/chromium_glue.h index de3f00b..e3581a0 100644 --- a/tizen_src/ewk/efl_integration/private/chromium_glue.h +++ b/tizen_src/ewk/efl_integration/private/chromium_glue.h @@ -12,14 +12,12 @@ #include "ewk_context.h" #include "ewk_settings.h" #include "ewk_hit_test.h" -#include "ewk_policy_decision.h" #include "ewk_touch.h" #include "ewk_custom_handlers.h" #include "ewk_view.h" #include #include -#include namespace chromium_glue { @@ -34,12 +32,6 @@ Ewk_Hit_Test_Result_Context from(tw::Hit_Test_Result_Context); tw::View_Hit_Test_Request_Callback to(Ewk_View_Hit_Test_Request_Callback); -tw::Policy_Decision_Type to(Ewk_Policy_Decision_Type); -Ewk_Policy_Decision_Type from(tw::Policy_Decision_Type); - -tw::Policy_Navigation_Type to(Ewk_Policy_Navigation_Type); -Ewk_Policy_Navigation_Type from(tw::Policy_Navigation_Type); - } // namespace chromium_glue #endif // CHROMIUM_GLUE_H_ diff --git a/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.cc b/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.cc index 90512d9..6b24a45 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.cc +++ b/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.cc @@ -15,7 +15,6 @@ using content::BrowserThread; using content::RenderFrameHost; using content::RenderViewHost; -using namespace tizen_webview; namespace { void FreeStringShare(void *data) { @@ -30,8 +29,8 @@ _Ewk_Policy_Decision::_Ewk_Policy_Decision(const GURL &request_url, : web_view_(NULL) , policy_response_delegate_(delegate) , responseHeaders_(NULL) - , decisionType_(TW_POLICY_DECISION_USE) - , navigationType_(TW_POLICY_NAVIGATION_TYPE_OTHER) + , decisionType_(EWK_POLICY_DECISION_USE) + , navigationType_(EWK_POLICY_NAVIGATION_TYPE_OTHER) , isDecided_(false) , isSuspended_(false) , responseStatusCode_(0) @@ -52,7 +51,7 @@ _Ewk_Policy_Decision::_Ewk_Policy_Decision(const GURL &request_url, if (!content::IsResourceTypeFrame(resource_type) && !resource_type == content::RESOURCE_TYPE_FAVICON) { - decisionType_ = TW_POLICY_DECISION_DOWNLOAD; + decisionType_ = EWK_POLICY_DECISION_DOWNLOAD; } if (request_url.has_password() && request_url.has_username()) @@ -79,8 +78,8 @@ _Ewk_Policy_Decision::_Ewk_Policy_Decision(const NavigationPolicyParams ¶ms, , cookie_(params.cookie) , httpMethod_(params.httpMethod) , responseHeaders_(NULL) - , decisionType_(TW_POLICY_DECISION_USE) - , navigationType_(static_cast(params.type)) + , decisionType_(EWK_POLICY_DECISION_USE) + , navigationType_(static_cast(params.type)) , isDecided_(false) , isSuspended_(false) , responseStatusCode_(0) @@ -97,8 +96,8 @@ _Ewk_Policy_Decision::_Ewk_Policy_Decision(EWebView* view, : web_view_(view) , window_create_callback_(callback) , responseHeaders_(NULL) - , decisionType_(TW_POLICY_DECISION_USE) - , navigationType_(TW_POLICY_NAVIGATION_TYPE_OTHER) + , decisionType_(EWK_POLICY_DECISION_USE) + , navigationType_(EWK_POLICY_NAVIGATION_TYPE_OTHER) , isDecided_(false) , isSuspended_(false) , responseStatusCode_(0) @@ -135,6 +134,10 @@ void _Ewk_Policy_Decision::Use() { NOTREACHED(); break; } + + if (isSuspended()) { + BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, this); + } } void _Ewk_Policy_Decision::Ignore() { @@ -153,6 +156,10 @@ void _Ewk_Policy_Decision::Ignore() { NOTREACHED(); break; } + + if (isSuspended()) { + BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, this); + } } void _Ewk_Policy_Decision::Download() { @@ -165,12 +172,16 @@ void _Ewk_Policy_Decision::Download() { navigation_policy_handler_->DownloadNavigation(); break; case _Ewk_Policy_Decision::POLICY_NEWWINDOW: - Ignore(); + window_create_callback_.Run(false); break; default: NOTREACHED(); break; } + + if (isSuspended()) { + BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, this); + } } bool _Ewk_Policy_Decision::Suspend() { diff --git a/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.h b/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.h index 7492c80..12afbda 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.h +++ b/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.h @@ -16,9 +16,8 @@ #include "browser/policy_response_delegate_efl.h" #include "content/public/browser/web_contents_delegate.h" #include "content/public/common/resource_type.h" +#include "public/ewk_policy_decision.h" #include "third_party/WebKit/public/web/WebViewModeEnums.h" -#include "tizen_webview/public/tw_policy_decision.h" -#include // Basic type of authorization - 'type username:password' #define BASIC_AUTHORIZATION "BASIC" @@ -28,7 +27,10 @@ class URLRequest; } class EWebView; +class GURL; struct NavigationPolicyParams; +class PolicyResponseDelegateEfl; +class _Ewk_Frame; namespace content { class RenderViewHost; @@ -64,7 +66,7 @@ class _Ewk_Policy_Decision { bool isDecided() const { return isDecided_; } bool isSuspended() const { return isSuspended_; } - tizen_webview::Policy_Navigation_Type GetNavigationType() const { return navigationType_; } + Ewk_Policy_Navigation_Type GetNavigationType() const { return navigationType_; } const char* GetCookie() const; const char* GetAuthUser() const; const char* GetAuthPassword() const; @@ -73,7 +75,7 @@ class _Ewk_Policy_Decision { const char* GetScheme() const; const char* GetHost() const; const char* GetResponseMime() const; - tizen_webview::Policy_Decision_Type GetDecisionType() const { return decisionType_; } + Ewk_Policy_Decision_Type GetDecisionType() const { return decisionType_; } Eina_Hash* GetResponseHeaders() const { return responseHeaders_; } int GetResponseStatusCode() const { return responseStatusCode_; } @@ -115,8 +117,8 @@ private: std::string scheme_; std::string responseMime_; Eina_Hash* responseHeaders_; - tizen_webview::Policy_Decision_Type decisionType_; - tizen_webview::Policy_Navigation_Type navigationType_; + Ewk_Policy_Decision_Type decisionType_; + Ewk_Policy_Navigation_Type navigationType_; bool isDecided_; bool isSuspended_; int responseStatusCode_; @@ -125,7 +127,4 @@ private: PolicyType type_; }; -struct Ewk_Policy_Decision : public tizen_webview::PolicyDecision { -}; - #endif // ewk_policy_decision_private_h diff --git a/tizen_src/ewk/efl_integration/public/ewk_policy_decision.cc b/tizen_src/ewk/efl_integration/public/ewk_policy_decision.cc index ab6f99c..c583dc9 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_policy_decision.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_policy_decision.cc @@ -55,7 +55,7 @@ const char* ewk_policy_decision_http_method_get(Ewk_Policy_Decision* policyDecis Ewk_Policy_Decision_Type ewk_policy_decision_type_get(const Ewk_Policy_Decision* policyDecision) { EINA_SAFETY_ON_NULL_RETURN_VAL(policyDecision, EWK_POLICY_DECISION_USE); - return chromium_glue::from(policyDecision->GetDecisionType()); + return policyDecision->GetDecisionType(); } const char* ewk_policy_decision_response_mime_get(const Ewk_Policy_Decision* policyDecision) @@ -106,7 +106,7 @@ Eina_Bool ewk_policy_decision_download(Ewk_Policy_Decision* policyDecision) Ewk_Policy_Navigation_Type ewk_policy_decision_navigation_type_get(const Ewk_Policy_Decision* policyDecision) { EINA_SAFETY_ON_NULL_RETURN_VAL(policyDecision, EWK_POLICY_NAVIGATION_TYPE_OTHER); - return chromium_glue::from(policyDecision->GetNavigationType()); + return policyDecision->GetNavigationType(); } Ewk_Frame_Ref ewk_policy_decision_frame_get(Ewk_Policy_Decision* policyDecision) diff --git a/tizen_src/ewk/efl_integration/public/ewk_policy_decision.h b/tizen_src/ewk/efl_integration/public/ewk_policy_decision.h index 0994092..4f0469b 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_policy_decision.h +++ b/tizen_src/ewk/efl_integration/public/ewk_policy_decision.h @@ -24,7 +24,7 @@ enum _Ewk_Policy_Decision_Type { }; typedef enum _Ewk_Policy_Decision_Type Ewk_Policy_Decision_Type; -typedef struct Ewk_Policy_Decision Ewk_Policy_Decision; +typedef struct _Ewk_Policy_Decision Ewk_Policy_Decision; enum _Ewk_Policy_Navigation_Type { EWK_POLICY_NAVIGATION_TYPE_LINK_CLICKED = 0, diff --git a/tizen_src/ewk/efl_integration/tizen_webview/public/tw_policy_decision.cc b/tizen_src/ewk/efl_integration/tizen_webview/public/tw_policy_decision.cc deleted file mode 100644 index 79197de..0000000 --- a/tizen_src/ewk/efl_integration/tizen_webview/public/tw_policy_decision.cc +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright (c) 2014 The Chromium Authors. All rights reserved. -// Copyright 2014 Samsung Electronics. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "tw_policy_decision.h" - -#include "tw_webview.h" -#include "private/ewk_policy_decision_private.h" -#include "tw_webview.h" - -#include "content/public/browser/browser_thread.h" - -using content::BrowserThread; - -namespace tizen_webview { - - -PolicyDecision::PolicyDecision( - const GURL& request_url, - net::URLRequest* request, - content::ResourceType resource_type, - PolicyResponseDelegateEfl* delegate) - : impl_(new Impl(request_url, request, resource_type, delegate)) { -} - -PolicyDecision::PolicyDecision( - const NavigationPolicyParams ¶ms, - content::RenderViewHost* rvh) - : impl_(new Impl(params, rvh)) { -} - -PolicyDecision::PolicyDecision( - WebView* view, - content::WebContentsDelegate::NewWindowDecideCallback cb) - : impl_(new Impl(view->GetImpl(), cb)) { -} - -PolicyDecision::~PolicyDecision() { - delete impl_; -} - -void PolicyDecision::Use() { - impl_->Use(); - - if (isSuspended()) { - BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, this); - } -} - -void PolicyDecision::Ignore() { - impl_->Ignore(); - - if (isSuspended()) { - BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, this); - } -} - -void PolicyDecision::Download() { - impl_->Download(); - - if (isSuspended()) { - BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, this); - } -} - -bool PolicyDecision::Suspend() { - return impl_->Suspend(); -} - -bool PolicyDecision::isDecided() const { - return impl_->isDecided(); -} - -bool PolicyDecision::isSuspended() const { - return impl_->isSuspended(); -} - -void PolicyDecision::SetUrl(const GURL& target_url) const { - impl_->ParseUrl(target_url); -} - -const char* PolicyDecision::GetCookie() const { - return impl_->GetCookie(); -} - -const char* PolicyDecision::GetAuthUser() const { - return impl_->GetAuthUser(); -} - -const char* PolicyDecision::GetAuthPassword() const { - return impl_->GetAuthPassword(); -} - -const char* PolicyDecision::GetUrl() const { - return impl_->GetUrl(); -} - -const char* PolicyDecision::GetHttpMethod() const { - return impl_->GetHttpMethod(); -} - -const char* PolicyDecision::GetScheme() const { - return impl_->GetScheme(); -} - -const char* PolicyDecision::GetHost() const { - return impl_->GetHost(); -} - -const char* PolicyDecision::GetResponseMime() const { - return impl_->GetResponseMime(); -} - -tizen_webview::Policy_Navigation_Type PolicyDecision::GetNavigationType() const { - return impl_->GetNavigationType(); -} - -tizen_webview::Policy_Decision_Type PolicyDecision::GetDecisionType() const { - return impl_->GetDecisionType(); -} - -Eina_Hash* PolicyDecision::GetResponseHeaders() const { - return impl_->GetResponseHeaders(); -} - -int PolicyDecision::GetResponseStatusCode() const { - return impl_->GetResponseStatusCode(); -} - -_Ewk_Frame* PolicyDecision::GetFrameRef() const { - return impl_->GetFrameRef(); -} - -} // namespace tizen_webview diff --git a/tizen_src/ewk/efl_integration/tizen_webview/public/tw_policy_decision.h b/tizen_src/ewk/efl_integration/tizen_webview/public/tw_policy_decision.h deleted file mode 100644 index 63c2493..0000000 --- a/tizen_src/ewk/efl_integration/tizen_webview/public/tw_policy_decision.h +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) 2014 The Chromium Authors. All rights reserved. -// Copyright 2014 Samsung Electronics. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef TIZEN_WEBVIEW_PUBLIC_TW_POLICY_DECISION_H_ -#define TIZEN_WEBVIEW_PUBLIC_TW_POLICY_DECISION_H_ - -#include - -#include "base/macros.h" -#include "content/public/browser/web_contents_delegate.h" -#include "content/public/common/resource_type.h" - -namespace content { -class RenderViewHost; -} - -namespace net { -class HttpResponseHeaders; -class URLRequest; -} - -class NavigationPolicyHandlerEfl; -class GURL; -class _Ewk_Policy_Decision; -struct NavigationPolicyParams; -class PolicyResponseDelegateEfl; -class EWebView; -class _Ewk_Frame; - -namespace tizen_webview { - -class WebView; - -enum Policy_Decision_Type { - TW_POLICY_DECISION_USE, - TW_POLICY_DECISION_DOWNLOAD, - TW_POLICY_DECISION_IGNORE -}; - -enum Policy_Navigation_Type { - TW_POLICY_NAVIGATION_TYPE_LINK_CLICKED = 0, - TW_POLICY_NAVIGATION_TYPE_FORM_SUBMITTED = 1, - TW_POLICY_NAVIGATION_TYPE_BACK_FORWARD = 2, - TW_POLICY_NAVIGATION_TYPE_RELOAD = 3, - TW_POLICY_NAVIGATION_TYPE_FORM_RESUBMITTED = 4, - TW_POLICY_NAVIGATION_TYPE_OTHER = 5 -}; - -// TODO: refactoring required for break dependency to chromium internals -class PolicyDecision { - public: - // for type POLICY_RESPONSE - PolicyDecision(const GURL& request_url, - net::URLRequest* request, - content::ResourceType resource_type, - PolicyResponseDelegateEfl* delegate); - // for POLICY_NAVIGATION - PolicyDecision(const NavigationPolicyParams ¶ms, content::RenderViewHost* rvh); - // for POLICY_NEWWINDOW - PolicyDecision(tizen_webview::WebView* view, - content::WebContentsDelegate::NewWindowDecideCallback); - ~PolicyDecision(); - - void Use(); - void Ignore(); - void Download(); - bool Suspend(); - - bool isDecided() const; - bool isSuspended() const; - - void SetUrl(const GURL& target_url) const; - - const char* GetCookie() const; - const char* GetAuthUser() const; - const char* GetAuthPassword() const; - const char* GetUrl() const; - const char* GetHttpMethod() const; - const char* GetScheme() const; - const char* GetHost() const; - const char* GetResponseMime() const; - tizen_webview::Policy_Navigation_Type GetNavigationType() const; - tizen_webview::Policy_Decision_Type GetDecisionType() const; - Eina_Hash* GetResponseHeaders() const; - int GetResponseStatusCode() const; - _Ewk_Frame* GetFrameRef() const; - private: - typedef ::_Ewk_Policy_Decision Impl; - Impl* impl_; - Impl* GetImpl() { return impl_; } - - DISALLOW_COPY_AND_ASSIGN(PolicyDecision); - friend class ::PolicyResponseDelegateEfl; - friend class ::EWebView; -}; // class PolicyDecision - -} // namespace tizen_webview - -#endif // TIZEN_WEBVIEW_PUBLIC_TW_POLICY_DECISION_H_ diff --git a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc index 24f0a36..5924bc1 100644 --- a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc +++ b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc @@ -183,9 +183,9 @@ bool WebContentsDelegateEfl::ShouldCreateWebContents( bool WebContentsDelegateEfl::ShouldCreateWebContentsAsync( NewWindowDecideCallback callback, const GURL& target_url) { // this method is called ONLY when creating new window - no matter what type - scoped_ptr pd( - new tizen_webview::PolicyDecision(web_view_->GetPublicWebView(), callback)); - pd->SetUrl(target_url); + scoped_ptr<_Ewk_Policy_Decision> pd( + new _Ewk_Policy_Decision(web_view_, callback)); + pd->ParseUrl(target_url); web_view_->SmartCallback().call(pd.get()); if (pd->isSuspended()) { -- 2.7.4