Chromium Code Reviews| Index: chrome/renderer/content_settings_observer.cc |
| diff --git a/chrome/renderer/content_settings_observer.cc b/chrome/renderer/content_settings_observer.cc |
| index 2e48be56122421ad169c48629000ce9051e82c19..5913e4175c6cc542d1ab00e19e9b4bbb6f704cc1 100644 |
| --- a/chrome/renderer/content_settings_observer.cc |
| +++ b/chrome/renderer/content_settings_observer.cc |
| @@ -8,7 +8,6 @@ |
| #include "base/metrics/histogram.h" |
| #include "components/content_settings/content/common/content_settings_messages.h" |
| #include "content/public/common/url_constants.h" |
| -#include "content/public/renderer/document_state.h" |
| #include "content/public/renderer/render_frame.h" |
| #include "content/public/renderer/render_view.h" |
| #include "third_party/WebKit/public/platform/URLConversion.h" |
| @@ -39,8 +38,6 @@ using blink::WebSecurityOrigin; |
| using blink::WebString; |
| using blink::WebURL; |
| using blink::WebView; |
| -using content::DocumentState; |
| -using content::NavigationState; |
| namespace { |
| @@ -227,23 +224,26 @@ bool ContentSettingsObserver::OnMessageReceived(const IPC::Message& message) { |
| return false; |
| } |
| +void ContentSettingsObserver::DidCreateNewDocument() { |
|
jochen (gone - plz use gerrit)
2016/03/31 15:26:19
didCreateNewDocument is also invoked when somebody
meacer
2016/04/01 19:06:56
Did you mean DidCreateDocumentElement? That's the
|
| + // Clear "block" flags for the new page. This needs to happen before any of |
| + // |allowScript()|, |allowScriptFromSource()|, |allowImage()|, or |
| + // |allowPlugins()| is called for the new page so that these functions can |
| + // correctly detect that a piece of content flipped from "not blocked" to |
| + // "blocked". |
| + // This also needs to happen before the document load begins, as parsing the |
| + // document can trigger calls to ScriptController::canExecuteScripts. |
| + // There is no need to check for same page navigations here as those don't |
| + // trigger DidStartProvisionalLoad. |
| + ClearBlockedContentSettings(); |
| + temporarily_allowed_plugins_.clear(); |
| +} |
| + |
| void ContentSettingsObserver::DidCommitProvisionalLoad( |
| bool is_new_navigation, |
| bool is_same_page_navigation) { |
| WebFrame* frame = render_frame()->GetWebFrame(); |
| if (frame->parent()) |
| return; // Not a top-level navigation. |
| - |
| - if (!is_same_page_navigation) { |
| - // Clear "block" flags for the new page. This needs to happen before any of |
| - // |allowScript()|, |allowScriptFromSource()|, |allowImage()|, or |
| - // |allowPlugins()| is called for the new page so that these functions can |
| - // correctly detect that a piece of content flipped from "not blocked" to |
| - // "blocked". |
| - ClearBlockedContentSettings(); |
| - temporarily_allowed_plugins_.clear(); |
| - } |
| - |
| GURL url = frame->document().url(); |
| // If we start failing this DCHECK, please makes sure we don't regress |
| // this bug: http://code.google.com/p/chromium/issues/detail?id=79304 |