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

Unified Diff: chrome/browser/devtools/devtools_ui_bindings.cc

Issue 2620153002: Fix front-end host creation upon navigation (Closed)
Patch Set: Created 3 years, 11 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
Index: chrome/browser/devtools/devtools_ui_bindings.cc
diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc
index 97fd7941a846c731941d44d7d27f64985427f1b7..59a073bc488ac71a55eda9ef76516119bbadcf10 100644
--- a/chrome/browser/devtools/devtools_ui_bindings.cc
+++ b/chrome/browser/devtools/devtools_ui_bindings.cc
@@ -471,6 +471,10 @@ GURL DevToolsUIBindings::SanitizeFrontendURL(const GURL& url) {
chrome::kChromeUIDevToolsHost, SanitizeFrontendPath(url.path()), true);
}
+bool DevToolsUIBindings::IsValidFrontendURL(const GURL& url) {
+ return SanitizeFrontendURL(url).spec() == url.spec();
+}
+
void DevToolsUIBindings::FrontendWebContentsObserver::RenderProcessGone(
base::TerminationStatus status) {
bool crashed = true;
@@ -495,7 +499,7 @@ void DevToolsUIBindings::FrontendWebContentsObserver::RenderProcessGone(
void DevToolsUIBindings::FrontendWebContentsObserver::
DidStartNavigationToPendingEntry(const GURL& url,
content::ReloadType reload_type) {
- devtools_bindings_->UpdateFrontendHost();
+ devtools_bindings_->UpdateFrontendHost(url);
}
void DevToolsUIBindings::FrontendWebContentsObserver::
@@ -550,7 +554,7 @@ DevToolsUIBindings::DevToolsUIBindings(content::WebContents* web_contents)
// Register on-load actions.
embedder_message_dispatcher_.reset(
DevToolsEmbedderMessageDispatcher::CreateForDevToolsFrontend(this));
- UpdateFrontendHost();
+ UpdateFrontendHost(web_contents_->GetVisibleURL());
pfeldman 2017/01/10 22:31:51 I don't think you need this call - navigation shou
}
DevToolsUIBindings::~DevToolsUIBindings() {
@@ -1198,16 +1202,15 @@ void DevToolsUIBindings::ShowDevToolsConfirmInfoBar(
GlobalConfirmInfoBar::Show(std::move(delegate));
}
-void DevToolsUIBindings::UpdateFrontendHost() {
- GURL url = web_contents_->GetVisibleURL();
- if (url.spec() != SanitizeFrontendURL(url).spec()) {
+void DevToolsUIBindings::UpdateFrontendHost(const GURL& url) {
+ if (!IsValidFrontendURL(url)) {
LOG(ERROR) << "Attempt to navigate to an invalid DevTools front-end URL: "
<< url.spec();
frontend_host_.reset();
return;
}
frontend_host_.reset(content::DevToolsFrontendHost::Create(
- web_contents_->GetMainFrame(),
+ web_contents_,
base::Bind(&DevToolsUIBindings::HandleMessageFromDevToolsFrontend,
base::Unretained(this))));
}

Powered by Google App Engine
This is Rietveld 408576698