Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / android_webview / renderer / aw_content_settings_client.cc
blob92652f6f2b4da6349ac56ee2dd25a1d9376fe093
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_content_settings_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"
10 #include "url/gurl.h"
12 namespace android_webview {
14 namespace {
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.
21 GURL gurl(url);
22 return !gurl.IsStandard();
27 AwContentSettingsClient::AwContentSettingsClient(
28 content::RenderFrame* render_frame)
29 : content::RenderFrameObserver(render_frame) {
30 render_frame->GetWebFrame()->setContentSettingsClient(this);
33 AwContentSettingsClient::~AwContentSettingsClient() {
36 bool AwContentSettingsClient::allowDisplayingInsecureContent(
37 bool enabled_per_settings,
38 const blink::WebSecurityOrigin& origin,
39 const blink::WebURL& url) {
40 return enabled_per_settings ? true : AllowMixedContent(url);
43 bool AwContentSettingsClient::allowRunningInsecureContent(
44 bool enabled_per_settings,
45 const blink::WebSecurityOrigin& origin,
46 const blink::WebURL& url) {
47 return enabled_per_settings ? true : AllowMixedContent(url);
50 } // namespace android_webview