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

Unified Diff: chrome/browser/android/service_tab_launcher.h

Issue 904453002: Feed back to the ServiceTabLauncher when the tab has been created. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@a-open-window
Patch Set: add findbugs line Created 5 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/android/service_tab_launcher.h
diff --git a/chrome/browser/android/service_tab_launcher.h b/chrome/browser/android/service_tab_launcher.h
index 3e9fb233170f7fb2a258a66ec6ea7bb2d9f9c06c..2906ceb16bd95a3c47dd8ab88c80f718cfa2090a 100644
--- a/chrome/browser/android/service_tab_launcher.h
+++ b/chrome/browser/android/service_tab_launcher.h
@@ -7,6 +7,7 @@
#include "base/android/jni_android.h"
#include "base/callback_forward.h"
+#include "base/id_map.h"
#include "base/memory/singleton.h"
namespace content {
@@ -19,8 +20,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 +35,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,
- const base::Callback<void(content::WebContents*)>& callback);
+ const 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);
@@ -40,6 +50,8 @@ class ServiceTabLauncher {
ServiceTabLauncher();
~ServiceTabLauncher();
+ IDMap<TabLaunchedCallback> tab_launched_callbacks_;
+
base::android::ScopedJavaGlobalRef<jobject> java_object_;
DISALLOW_COPY_AND_ASSIGN(ServiceTabLauncher);

Powered by Google App Engine
This is Rietveld 408576698