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 552ca599d5ee86c3543d06ba1ee59469bfb0283a..1a05d6fdbb67fa8f32df1737d1c69a4746b0937e 100644 |
--- a/chrome/browser/external_protocol/external_protocol_handler.cc |
+++ b/chrome/browser/external_protocol/external_protocol_handler.cc |
@@ -60,14 +60,14 @@ void RunExternalProtocolDialogWithDelegate( |
const GURL& url, |
int render_process_host_id, |
int routing_id, |
+ ui::PageTransition page_transition, |
ExternalProtocolHandler::Delegate* delegate) { |
if (!delegate) { |
- ExternalProtocolHandler::RunExternalProtocolDialog(url, |
- render_process_host_id, |
- routing_id); |
+ ExternalProtocolHandler::RunExternalProtocolDialog( |
+ url, render_process_host_id, routing_id, page_transition); |
} else { |
- delegate->RunExternalProtocolDialog(url, render_process_host_id, |
- routing_id); |
+ delegate->RunExternalProtocolDialog( |
+ url, render_process_host_id, routing_id, page_transition); |
} |
} |
@@ -94,12 +94,14 @@ class ExternalDefaultProtocolObserver |
int render_process_host_id, |
int tab_contents_id, |
bool prompt_user, |
+ ui::PageTransition page_transition, |
ExternalProtocolHandler::Delegate* delegate) |
: delegate_(delegate), |
escaped_url_(escaped_url), |
render_process_host_id_(render_process_host_id), |
tab_contents_id_(tab_contents_id), |
- prompt_user_(prompt_user) {} |
+ prompt_user_(prompt_user), |
+ page_transition_(page_transition) {} |
void SetDefaultWebClientUIState( |
ShellIntegration::DefaultWebClientUIState state) override { |
@@ -126,8 +128,9 @@ class ExternalDefaultProtocolObserver |
// Ask the user if they want to allow the protocol. This will call |
// LaunchUrlWithoutSecurityCheck if the user decides to accept the |
// protocol. |
- RunExternalProtocolDialogWithDelegate(escaped_url_, |
- render_process_host_id_, tab_contents_id_, delegate_); |
+ RunExternalProtocolDialogWithDelegate( |
+ escaped_url_, render_process_host_id_, tab_contents_id_, |
+ page_transition_, delegate_); |
return; |
} |
@@ -143,6 +146,7 @@ class ExternalDefaultProtocolObserver |
int render_process_host_id_; |
int tab_contents_id_; |
bool prompt_user_; |
+ ui::PageTransition page_transition_; |
}; |
} // namespace |
@@ -252,10 +256,12 @@ void ExternalProtocolHandler::SetBlockState(const std::string& scheme, |
} |
// static |
-void ExternalProtocolHandler::LaunchUrlWithDelegate(const GURL& url, |
- int render_process_host_id, |
- int tab_contents_id, |
- Delegate* delegate) { |
+void ExternalProtocolHandler::LaunchUrlWithDelegate( |
+ const GURL& url, |
+ int render_process_host_id, |
+ int tab_contents_id, |
+ ui::PageTransition page_transition, |
+ Delegate* delegate) { |
DCHECK(base::MessageLoopForUI::IsCurrent()); |
// Escape the input scheme to be sure that the command does not |
@@ -280,6 +286,7 @@ void ExternalProtocolHandler::LaunchUrlWithDelegate(const GURL& url, |
render_process_host_id, |
tab_contents_id, |
block_state == UNKNOWN, |
+ page_transition, |
delegate); |
scoped_refptr<ShellIntegration::DefaultProtocolClientWorker> worker = |
CreateShellWorker(observer, escaped_url.scheme(), delegate); |