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

Unified Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedActivity.java

Issue 1157433002: Make it possible to load a new Url in hosted mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedActivity.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedActivity.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedActivity.java
index 7a0639e324c62ab3ed6250ea99904692ca3f1640..17df5046d2974fa26a803d7edb32080aa02da11f 100644
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedActivity.java
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedActivity.java
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.hosted;
import android.content.Intent;
import android.net.Uri;
+import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
@@ -31,12 +32,16 @@ import org.chromium.content_public.browser.LoadUrlParams;
* The activity for hosted mode. It will be launched on top of a client's task.
*/
public class HostedActivity extends CompositorChromeActivity {
+ private static HostedContentHandler sActiveContentHandler;
+
private HostedTab mTab;
private ToolbarHelper mToolbarHelper;
private HostedAppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
private AppMenuHandler mAppMenuHandler;
private FindToolbarManager mFindToolbarManager;
private HostedIntentDataProvider mIntentDataProvider;
+ private long mSessionId;
+ private HostedContentHandler mHostedContentHandler;
// This is to give the right package name while using the client's resources during an
// overridePendingTransition call.
@@ -44,6 +49,33 @@ public class HostedActivity extends CompositorChromeActivity {
// change the package name.
private boolean mShouldOverridePackage;
+ /**
+ * Sets the currently active {@link HostedContentHandler} in focus.
+ * @param contentHandler {@link HostedContentHandler} to set.
+ */
+ public static void setActiveContentHandler(HostedContentHandler contentHandler) {
+ sActiveContentHandler = contentHandler;
+ }
+
+ /**
+ * Used to check whether an incoming intent can be handled by the
+ * current {@link HostedContentHandler}.
+ * @return Whether the active {@link HostedContentHandler} has handled the intent.
+ */
+ public static boolean shouldActiveContentHandleIntent(Intent intent) {
+ if (sActiveContentHandler == null) return false;
+
+ long intentSessionId = intent.getLongExtra(HostedIntentDataProvider.EXTRA_HOSTED_SESSION_ID,
+ HostedIntentDataProvider.INVALID_SESSION_ID);
+ if (intentSessionId == HostedIntentDataProvider.INVALID_SESSION_ID) return false;
+
+ if (sActiveContentHandler.getSessionId() != intentSessionId) return false;
+ String url = IntentHandler.getUrlFromIntent(intent);
+ if (TextUtils.isEmpty(url)) return false;
+ sActiveContentHandler.loadUrl(new LoadUrlParams(url));
+ return true;
+ }
+
@Override
public void preInflationStartup() {
super.preInflationStartup();
@@ -87,8 +119,8 @@ public class HostedActivity extends CompositorChromeActivity {
@Override
public void finishNativeInitialization() {
String url = IntentHandler.getUrlFromIntent(getIntent());
- long sessionId = mIntentDataProvider.getSessionId();
- mTab = new HostedTab(this, getWindowAndroid(), sessionId, url, Tab.INVALID_TAB_ID);
+ mSessionId = mIntentDataProvider.getSessionId();
+ mTab = new HostedTab(this, getWindowAndroid(), mSessionId, url, Tab.INVALID_TAB_ID);
getTabModelSelector().setTab(mTab);
ToolbarControlContainer controlContainer = (ToolbarControlContainer) findViewById(
@@ -110,10 +142,33 @@ public class HostedActivity extends CompositorChromeActivity {
mTab.setFullscreenManager(getFullscreenManager());
mTab.loadUrl(new LoadUrlParams(url));
+ mHostedContentHandler = new HostedContentHandler() {
+ @Override
+ public void loadUrl(LoadUrlParams params) {
+ mTab.loadUrl(params);
+ }
+
+ @Override
+ public long getSessionId() {
+ return mSessionId;
+ }
+ };
super.finishNativeInitialization();
}
@Override
+ public void onStartWithNative() {
+ super.onStartWithNative();
+ setActiveContentHandler(mHostedContentHandler);
+ }
+
+ @Override
+ public void onStopWithNative() {
+ super.onStopWithNative();
+ setActiveContentHandler(null);
+ }
+
+ @Override
protected void onDeferredStartup() {
super.onDeferredStartup();
mToolbarHelper.onDeferredStartup();

Powered by Google App Engine
This is Rietveld 408576698