| Index: chrome/renderer/content_settings_observer.cc
|
| ===================================================================
|
| --- chrome/renderer/content_settings_observer.cc (revision 240362)
|
| +++ chrome/renderer/content_settings_observer.cc (working copy)
|
| @@ -12,6 +12,7 @@
|
| #include "chrome/renderer/extensions/dispatcher.h"
|
| #include "content/public/renderer/document_state.h"
|
| #include "content/public/renderer/navigation_state.h"
|
| +#include "content/public/renderer/render_frame.h"
|
| #include "content/public/renderer/render_view.h"
|
| #include "extensions/common/constants.h"
|
| #include "third_party/WebKit/public/platform/WebURL.h"
|
| @@ -142,10 +143,11 @@
|
| } // namespace
|
|
|
| ContentSettingsObserver::ContentSettingsObserver(
|
| - content::RenderView* render_view,
|
| + content::RenderFrame* render_frame,
|
| extensions::Dispatcher* extension_dispatcher)
|
| - : content::RenderViewObserver(render_view),
|
| - content::RenderViewObserverTracker<ContentSettingsObserver>(render_view),
|
| + : content::RenderFrameObserver(render_frame),
|
| + content::RenderFrameObserverTracker<ContentSettingsObserver>(
|
| + render_frame),
|
| extension_dispatcher_(extension_dispatcher),
|
| allow_displaying_insecure_content_(false),
|
| allow_running_insecure_content_(false),
|
| @@ -153,7 +155,6 @@
|
| is_interstitial_page_(false),
|
| npapi_plugins_blocked_(false) {
|
| ClearBlockedContentSettings();
|
| - render_view->GetWebView()->setPermissionClient(this);
|
| }
|
|
|
| ContentSettingsObserver::~ContentSettingsObserver() {
|
| @@ -182,6 +183,10 @@
|
| }
|
| }
|
|
|
| +void ContentSettingsObserver::WebFrameCreated(blink::WebFrame* frame) {
|
| + frame->setPermissionClient(this);
|
| +}
|
| +
|
| bool ContentSettingsObserver::OnMessageReceived(const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(ContentSettingsObserver, message)
|
| @@ -191,6 +196,7 @@
|
| OnSetAllowDisplayingInsecureContent)
|
| IPC_MESSAGE_HANDLER(ChromeViewMsg_SetAllowRunningInsecureContent,
|
| OnSetAllowRunningInsecureContent)
|
| + IPC_MESSAGE_HANDLER(ChromeViewMsg_ReloadFrame, OnReloadFrame);
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| if (handled)
|
| @@ -375,8 +381,7 @@
|
| bool allowed = false;
|
| // TODO(dcheng): Should we consider a toURL() method on WebSecurityOrigin?
|
| Send(new ChromeViewHostMsg_CanTriggerClipboardRead(
|
| - routing_id(), GURL(frame->document().securityOrigin().toString().utf8()),
|
| - &allowed));
|
| + GURL(frame->document().securityOrigin().toString().utf8()), &allowed));
|
| return allowed;
|
| }
|
|
|
| @@ -384,8 +389,7 @@
|
| bool default_value) {
|
| bool allowed = false;
|
| Send(new ChromeViewHostMsg_CanTriggerClipboardWrite(
|
| - routing_id(), GURL(frame->document().securityOrigin().toString().utf8()),
|
| - &allowed));
|
| + GURL(frame->document().securityOrigin().toString().utf8()), &allowed));
|
| return allowed;
|
| }
|
|
|
| @@ -585,7 +589,6 @@
|
| bool ContentSettingsObserver::allowWebGLDebugRendererInfo(WebFrame* frame) {
|
| bool allowed = false;
|
| Send(new ChromeViewHostMsg_IsWebGLDebugRendererInfoAllowed(
|
| - routing_id(),
|
| GURL(frame->top()->document().securityOrigin().toString().utf8()),
|
| &allowed));
|
| return allowed;
|
| @@ -618,9 +621,6 @@
|
|
|
| void ContentSettingsObserver::OnSetAllowDisplayingInsecureContent(bool allow) {
|
| allow_displaying_insecure_content_ = allow;
|
| - WebFrame* main_frame = render_view()->GetWebView()->mainFrame();
|
| - if (main_frame)
|
| - main_frame->reload();
|
| }
|
|
|
| void ContentSettingsObserver::OnSetAllowRunningInsecureContent(bool allow) {
|
| @@ -628,6 +628,14 @@
|
| OnSetAllowDisplayingInsecureContent(allow);
|
| }
|
|
|
| +void ContentSettingsObserver::OnReloadFrame() {
|
| + // TODO(jam): once --site-per-process is default this will just be
|
| + // render_frame()->GetWebFrame()->reload().
|
| + WebFrame* main_frame =
|
| + render_frame()->GetRenderView()->GetWebView()->mainFrame();
|
| + if (main_frame)
|
| + main_frame->reload();
|
| +}
|
|
|
| void ContentSettingsObserver::ClearBlockedContentSettings() {
|
| for (size_t i = 0; i < arraysize(content_blocked_); ++i)
|
| @@ -686,7 +694,7 @@
|
| return true;
|
|
|
| // TODO(creis, fsamuel): Remove this once the concept of swapped out
|
| - // RenderViews goes away.
|
| + // RenderFrames goes away.
|
| if (document_url == GURL(content::kSwappedOutURL))
|
| return true;
|
|
|
|
|