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

Unified Diff: extensions/browser/extension_web_contents_observer.cc

Issue 2677873002: Convert ExtensionWebContentsObserver to use the new navigation callbacks. (Closed)
Patch Set: review comments 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..fa3c92537fdea499a4838fab9a7e728b45958b28 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,18 @@ void ExtensionWebContentsObserver::DidFinishNavigation(
content::RenderFrameHost* render_frame_host =
navigation_handle->GetRenderFrameHost();
- if (pm->IsRenderFrameHostRegistered(render_frame_host)) {
- const Extension* frame_extension =
- GetExtensionFromFrame(render_frame_host, true);
-
- 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 {
+ if (frame_extension && !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);
+ } else if (!frame_extension) {
+ pm->UnregisterRenderFrameHost(render_frame_host);
+ }
+ } else if (frame_extension) {
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