Index: chrome/browser/ui/android/external_protocol_dialog_android.cc |
diff --git a/chrome/browser/ui/android/external_protocol_dialog_android.cc b/chrome/browser/ui/android/external_protocol_dialog_android.cc |
index b47057b8a4abddc7ca43d1f5404b7aebefa43b4f..a39764e22f1bf8c6729efe8519fdb229cdfef24f 100644 |
--- a/chrome/browser/ui/android/external_protocol_dialog_android.cc |
+++ b/chrome/browser/ui/android/external_protocol_dialog_android.cc |
@@ -3,10 +3,21 @@ |
// found in the LICENSE file. |
#include "base/logging.h" |
+#include "chrome/browser/android/tab_android.h" |
#include "chrome/browser/external_protocol/external_protocol_handler.h" |
+#include "chrome/browser/tab_contents/tab_util.h" |
+#include "content/public/browser/web_contents.h" |
+ |
+using content::WebContents; |
// static |
void ExternalProtocolHandler::RunExternalProtocolDialog( |
const GURL& url, int render_process_host_id, int routing_id) { |
- NOTIMPLEMENTED() << "TODO(mkosiba): Upstream the actual implementation."; |
+ WebContents* web_contents = tab_util::GetWebContentsByID( |
+ render_process_host_id, routing_id); |
+ if (web_contents) { |
+ TabAndroid* tab = TabAndroid::FromWebContents(web_contents); |
+ if (tab) |
+ return tab->RunExternalProtocolDialog(url); |
+ } |
} |