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

Unified Diff: chrome/browser/external_protocol/external_protocol_handler.cc

Issue 1657933003: Fixes the interactive default browser UX for policy setting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments Created 4 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
Index: chrome/browser/external_protocol/external_protocol_handler.cc
diff --git a/chrome/browser/external_protocol/external_protocol_handler.cc b/chrome/browser/external_protocol/external_protocol_handler.cc
index faaec1d5a65e84f37d7d2ac4f6b87f9653da5f30..afc9130d9875b8d675647fb8e365b04ddd06edb2 100644
--- a/chrome/browser/external_protocol/external_protocol_handler.cc
+++ b/chrome/browser/external_protocol/external_protocol_handler.cc
@@ -38,14 +38,16 @@ static bool g_accept_requests = true;
namespace {
// Functions enabling unit testing. Using a NULL delegate will use the default
-// behavior; if a delegate is provided it will be used instead.
+// behavior; if a delegate is provided it will be used instead. Also, Ownership
+// of |observer| is passed to the new worker.
ShellIntegration::DefaultProtocolClientWorker* CreateShellWorker(
ShellIntegration::DefaultWebClientObserver* observer,
const std::string& protocol,
ExternalProtocolHandler::Delegate* delegate) {
if (!delegate)
- return new ShellIntegration::DefaultProtocolClientWorker(observer,
- protocol);
+ return new ShellIntegration::DefaultProtocolClientWorker(
+ observer, protocol,
+ /*delete_observer=*/true);
return delegate->CreateShellWorker(observer, protocol);
}
@@ -146,8 +148,6 @@ class ExternalDefaultProtocolObserver
escaped_url_, render_process_host_id_, tab_contents_id_, delegate_);
}
- bool IsOwnedByWorker() override { return true; }
-
private:
ExternalProtocolHandler::Delegate* delegate_;
const GURL escaped_url_;

Powered by Google App Engine
This is Rietveld 408576698