| Index: chrome/browser/android/service_tab_launcher.h
|
| diff --git a/chrome/browser/android/service_tab_launcher.h b/chrome/browser/android/service_tab_launcher.h
|
| index b2fe5cd17c20bd2c178411c5a21555682335b1ec..5d1fbfec7732c80bfa4b1a7d7f879efd693e8161 100644
|
| --- a/chrome/browser/android/service_tab_launcher.h
|
| +++ b/chrome/browser/android/service_tab_launcher.h
|
| @@ -5,6 +5,8 @@
|
| #ifndef CHROME_BROWSER_ANDROID_SERVICE_TAB_LAUNCHER_H_
|
| #define CHROME_BROWSER_ANDROID_SERVICE_TAB_LAUNCHER_H_
|
|
|
| +#include <map>
|
| +
|
| #include "base/android/jni_android.h"
|
| #include "base/callback_forward.h"
|
| #include "base/memory/singleton.h"
|
| @@ -19,8 +21,12 @@ namespace chrome {
|
| namespace android {
|
|
|
| // Launcher for creating new tabs on Android from a background service, where
|
| -// there may not necessarily be an Activity or a tab model at all.
|
| +// there may not necessarily be an Activity or a tab model at all. When the
|
| +// tab has been launched, the user of this class will be informed with the
|
| +// content::WebContents instance associated with the tab.
|
| class ServiceTabLauncher {
|
| + using TabLaunchedCallback = base::Callback<void(content::WebContents*)>;
|
| +
|
| public:
|
| // Returns the singleton instance of the service tab launcher.
|
| static ServiceTabLauncher* GetInstance();
|
| @@ -30,7 +36,12 @@ class ServiceTabLauncher {
|
| // the tab is avialable. This method must only be called from the UI thread.
|
| void LaunchTab(content::BrowserContext* browser_context,
|
| const content::OpenURLParams& params,
|
| - base::Callback<void(content::WebContents*)> callback);
|
| + TabLaunchedCallback callback);
|
| +
|
| + // To be called when the tab for |request_id| has launched, with the
|
| + // associated |web_contents|. The WebContents must not yet have started
|
| + // the provisional load for the main frame of the navigation.
|
| + void OnTabLaunched(int request_id, content::WebContents* web_contents);
|
|
|
| static bool RegisterServiceTabLauncher(JNIEnv* env);
|
|
|
| @@ -42,6 +53,9 @@ class ServiceTabLauncher {
|
|
|
| base::android::ScopedJavaGlobalRef<jobject> java_object_;
|
|
|
| + std::map<int, TabLaunchedCallback> tab_launched_callbacks_;
|
| + int last_request_id_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ServiceTabLauncher);
|
| };
|
|
|
|
|