Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Unified Diff: extensions/browser/extension_web_contents_observer.cc

Issue 2677873002: Convert ExtensionWebContentsObserver to use the new navigation callbacks. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/browser/extension_web_contents_observer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/extension_web_contents_observer.cc
diff --git a/extensions/browser/extension_web_contents_observer.cc b/extensions/browser/extension_web_contents_observer.cc
index a4309b0a7a4941f8e0f144335fdbef3b0d2ffc89..73527607b429720e31488915bfdea54ea5400bfe 100644
--- a/extensions/browser/extension_web_contents_observer.cc
+++ b/extensions/browser/extension_web_contents_observer.cc
@@ -5,7 +5,6 @@
#include "extensions/browser/extension_web_contents_observer.h"
#include "content/public/browser/child_process_security_policy.h"
-#include "content/public/browser/navigation_details.h"
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
@@ -145,38 +144,19 @@ void ExtensionWebContentsObserver::DidFinishNavigation(
content::RenderFrameHost* render_frame_host =
navigation_handle->GetRenderFrameHost();
+ const Extension* frame_extension =
+ GetExtensionFromFrame(render_frame_host, true);
if (pm->IsRenderFrameHostRegistered(render_frame_host)) {
- const Extension* frame_extension =
- GetExtensionFromFrame(render_frame_host, true);
+ if (!navigation_handle->IsSamePage()) {
+ // Notify ProcessManager, because some clients do not just want to know
+ // whether the frame is in an extension process, but also whether the
+ // frame was navigated.
+ pm->DidNavigateRenderFrameHost(render_frame_host);
Devlin 2017/02/06 17:15:27 This should only be called if |frame_extension| is
jam 2017/02/06 18:03:38 Sure. I didn't know if it was possible to reach he
+ }
if (!frame_extension)
pm->UnregisterRenderFrameHost(render_frame_host);
- }
-}
-
-void ExtensionWebContentsObserver::DidNavigateAnyFrame(
- content::RenderFrameHost* render_frame_host,
- const content::LoadCommittedDetails& details,
- const content::FrameNavigateParams& params) {
- if (details.is_in_page)
- return;
-
- const Extension* frame_extension =
- GetExtensionFromFrame(render_frame_host, true);
- ProcessManager* pm = ProcessManager::Get(browser_context_);
-
- if (!frame_extension) {
- // Should have been unregistered by DidFinishNavigation.
- DCHECK(!pm->IsRenderFrameHostRegistered(render_frame_host));
- return;
- }
-
- if (pm->IsRenderFrameHostRegistered(render_frame_host)) {
- // Notify ProcessManager, because some clients do not just want to know
- // whether the frame is in an extension process, but also whether the frame
- // was navigated.
- pm->DidNavigateRenderFrameHost(render_frame_host);
- } else {
+ } else if (!navigation_handle->IsSamePage() && frame_extension) {
Devlin 2017/02/06 17:15:27 Hmm... this is a match with previous behavior, but
jam 2017/02/06 18:03:38 Done.
pm->RegisterRenderFrameHost(web_contents(), render_frame_host,
frame_extension);
}
« no previous file with comments | « extensions/browser/extension_web_contents_observer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698