1 // Copyright 2019 Samsung Electronics. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "wrt_render_message_filter.h"
7 #if !defined(WRT_JS_BRINGUP)
8 #include "tizen_src/chromium_impl/content/public/browser/policy_decision_util.h"
10 #include "tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.h"
11 #include "wrt/src/browser/native_web_runtime.h"
12 #include "wrt/src/browser/wrt_browser_context.h"
16 static void NavigationPolicyDecision(void* /*data*/,
17 const std::string& url,
20 LOG(ERROR) << "event_info is nullptr";
24 auto policy_decision = static_cast<_Ewk_Policy_Decision*>(event_info);
25 if (wrt::NativeWebRuntime::GetInstance().ShouldAllowNavigation(url))
26 policy_decision->Use();
28 policy_decision->Ignore();
35 WRTRenderMessageFilter::WRTRenderMessageFilter() {}
37 WRTRenderMessageFilter::~WRTRenderMessageFilter() {}
39 void WRTRenderMessageFilter::OnDecideNavigationPolicy(
40 const NavigationPolicyParams& params,
42 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
44 #if defined(WRT_JS_BRINGUP)
47 std::unique_ptr<content::PolicyDecisionUtil> navigation(
48 new content::PolicyDecisionUtil());
49 auto* browser_context = WRTBrowserContext::GetInstance();
50 DCHECK(browser_context);
51 navigation->SetNavigationPolicyDecisionCallback(NavigationPolicyDecision);
52 navigation->PolicyNavigation(params, browser_context->GetProxyURI(), handled,