1 // Copyright 2013 The Chromium Authors. 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 "android_webview/renderer/aw_permission_client.h"
7 #include "content/public/renderer/render_frame.h"
8 #include "third_party/WebKit/public/platform/WebURL.h"
9 #include "third_party/WebKit/public/web/WebLocalFrame.h"
12 namespace android_webview
{
16 bool AllowMixedContent(const blink::WebURL
& url
) {
17 // We treat non-standard schemes as "secure" in the WebView to allow them to
18 // be used for request interception.
19 // TODO(benm): Tighten this restriction by requiring embedders to register
20 // their custom schemes? See b/9420953.
22 return !gurl
.IsStandard();
27 AwPermissionClient::AwPermissionClient(content::RenderFrame
* render_frame
)
28 : content::RenderFrameObserver(render_frame
) {
29 render_frame
->GetWebFrame()->setPermissionClient(this);
32 AwPermissionClient::~AwPermissionClient() {
35 bool AwPermissionClient::allowDisplayingInsecureContent(
36 bool enabled_per_settings
,
37 const blink::WebSecurityOrigin
& origin
,
38 const blink::WebURL
& url
) {
39 return enabled_per_settings
? true : AllowMixedContent(url
);
42 bool AwPermissionClient::allowRunningInsecureContent(
43 bool enabled_per_settings
,
44 const blink::WebSecurityOrigin
& origin
,
45 const blink::WebURL
& url
) {
46 return enabled_per_settings
? true : AllowMixedContent(url
);
49 } // namespace android_webview