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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java

Issue 2829193003: Autopresent WebVR content in CCT if it was opened by a Daydream Intent (Closed)
Patch Set: reviews Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.customtabs; 5 package org.chromium.chrome.browser.customtabs;
6 6
7 import android.app.PendingIntent; 7 import android.app.PendingIntent;
8 import android.content.Context; 8 import android.content.Context;
9 import android.content.Intent; 9 import android.content.Intent;
10 import android.content.SharedPreferences; 10 import android.content.SharedPreferences;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 import org.chromium.chrome.browser.tabmodel.ChromeTabCreator; 67 import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
68 import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver; 68 import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver;
69 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; 69 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
70 import org.chromium.chrome.browser.tabmodel.TabModelObserver; 70 import org.chromium.chrome.browser.tabmodel.TabModelObserver;
71 import org.chromium.chrome.browser.tabmodel.TabModelSelector; 71 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
72 import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl; 72 import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl;
73 import org.chromium.chrome.browser.tabmodel.TabReparentingParams; 73 import org.chromium.chrome.browser.tabmodel.TabReparentingParams;
74 import org.chromium.chrome.browser.toolbar.ToolbarControlContainer; 74 import org.chromium.chrome.browser.toolbar.ToolbarControlContainer;
75 import org.chromium.chrome.browser.util.ColorUtils; 75 import org.chromium.chrome.browser.util.ColorUtils;
76 import org.chromium.chrome.browser.util.UrlUtilities; 76 import org.chromium.chrome.browser.util.UrlUtilities;
77 import org.chromium.chrome.browser.vr_shell.VrShellDelegate;
77 import org.chromium.chrome.browser.widget.findinpage.FindToolbarManager; 78 import org.chromium.chrome.browser.widget.findinpage.FindToolbarManager;
78 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; 79 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
79 import org.chromium.content_public.browser.LoadUrlParams; 80 import org.chromium.content_public.browser.LoadUrlParams;
80 import org.chromium.content_public.browser.WebContents; 81 import org.chromium.content_public.browser.WebContents;
81 import org.chromium.ui.base.PageTransition; 82 import org.chromium.ui.base.PageTransition;
82 import org.chromium.ui.base.WindowAndroid; 83 import org.chromium.ui.base.WindowAndroid;
83 84
84 /** 85 /**
85 * The activity for custom tabs. It will be launched on top of a client's task. 86 * The activity for custom tabs. It will be launched on top of a client's task.
86 */ 87 */
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 122
122 private boolean mUsingPrerender; 123 private boolean mUsingPrerender;
123 private boolean mUsingHiddenTab; 124 private boolean mUsingHiddenTab;
124 125
125 private boolean mIsClosing; 126 private boolean mIsClosing;
126 127
127 // This boolean is used to do a hack in navigation history for 128 // This boolean is used to do a hack in navigation history for
128 // prerender and hidden tab loads with unmatching fragments. 129 // prerender and hidden tab loads with unmatching fragments.
129 private boolean mIsFirstLoad; 130 private boolean mIsFirstLoad;
130 131
132 private boolean mIsDaydreamIntent;
133
131 private static class PageLoadMetricsObserver implements PageLoadMetrics.Obse rver { 134 private static class PageLoadMetricsObserver implements PageLoadMetrics.Obse rver {
132 private final CustomTabsConnection mConnection; 135 private final CustomTabsConnection mConnection;
133 private final CustomTabsSessionToken mSession; 136 private final CustomTabsSessionToken mSession;
134 private final Tab mTab; 137 private final Tab mTab;
135 138
136 public PageLoadMetricsObserver(CustomTabsConnection connection, 139 public PageLoadMetricsObserver(CustomTabsConnection connection,
137 CustomTabsSessionToken session, Tab tab) { 140 CustomTabsSessionToken session, Tab tab) {
138 mConnection = connection; 141 mConnection = connection;
139 mSession = session; 142 mSession = session;
140 mTab = tab; 143 mTab = tab;
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 293
291 @Override 294 @Override
292 public boolean isCustomTab() { 295 public boolean isCustomTab() {
293 return true; 296 return true;
294 } 297 }
295 298
296 @Override 299 @Override
297 public void onStart() { 300 public void onStart() {
298 super.onStart(); 301 super.onStart();
299 mIsClosing = false; 302 mIsClosing = false;
303 mIsDaydreamIntent = VrShellDelegate.isDaydreamVrIntent(getIntent());
300 CustomTabsConnection.getInstance(getApplication()) 304 CustomTabsConnection.getInstance(getApplication())
301 .keepAliveForSession(mIntentDataProvider.getSession(), 305 .keepAliveForSession(mIntentDataProvider.getSession(),
302 mIntentDataProvider.getKeepAliveServiceIntent()); 306 mIntentDataProvider.getKeepAliveServiceIntent());
303 } 307 }
304 308
305 @Override 309 @Override
306 public void onStop() { 310 public void onStop() {
307 super.onStop(); 311 super.onStop();
308 CustomTabsConnection.getInstance(getApplication()) 312 CustomTabsConnection.getInstance(getApplication())
309 .dontKeepAliveForSession(mIntentDataProvider.getSession()); 313 .dontKeepAliveForSession(mIntentDataProvider.getSession());
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 if (!mHasCreatedTabEarly && !successfulStateRestore) { 529 if (!mHasCreatedTabEarly && !successfulStateRestore) {
526 loadUrlInTab(mMainTab, new LoadUrlParams(url), 530 loadUrlInTab(mMainTab, new LoadUrlParams(url),
527 IntentHandler.getTimestampFromIntent(getIntent())); 531 IntentHandler.getTimestampFromIntent(getIntent()));
528 } 532 }
529 533
530 // Put Sync in the correct state by calling tab state initialized. crbug .com/581811. 534 // Put Sync in the correct state by calling tab state initialized. crbug .com/581811.
531 getTabModelSelector().markTabStateInitialized(); 535 getTabModelSelector().markTabStateInitialized();
532 super.finishNativeInitialization(); 536 super.finishNativeInitialization();
533 } 537 }
534 538
539 @Override
540 public final boolean shouldAutoPresent() {
541 return mIsDaydreamIntent;
542 }
543
535 /** 544 /**
536 * Encapsulates CustomTabsConnection#takeHiddenTab() 545 * Encapsulates CustomTabsConnection#takeHiddenTab()
537 * with additional initialization logic. 546 * with additional initialization logic.
538 */ 547 */
539 private Tab getHiddenTab(CustomTabsConnection connection) { 548 private Tab getHiddenTab(CustomTabsConnection connection) {
540 String url = getUrlToLoad(); 549 String url = getUrlToLoad();
541 String referrerUrl = connection.getReferrer(mSession, getIntent()); 550 String referrerUrl = connection.getReferrer(mSession, getIntent());
542 Tab tab = connection.takeHiddenTab(mSession, url, referrerUrl); 551 Tab tab = connection.takeHiddenTab(mSession, url, referrerUrl);
543 mUsingHiddenTab = tab != null; 552 mUsingHiddenTab = tab != null;
544 if (!mUsingHiddenTab) return null; 553 if (!mUsingHiddenTab) return null;
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 Intent intent = ChromeLauncherActivity.createCustomTabActivityIntent( 1151 Intent intent = ChromeLauncherActivity.createCustomTabActivityIntent(
1143 context, customTabIntent.intent, false); 1152 context, customTabIntent.intent, false);
1144 intent.setPackage(context.getPackageName()); 1153 intent.setPackage(context.getPackageName());
1145 intent.putExtra(CustomTabIntentDataProvider.EXTRA_IS_INFO_PAGE, true); 1154 intent.putExtra(CustomTabIntentDataProvider.EXTRA_IS_INFO_PAGE, true);
1146 intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); 1155 intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
1147 IntentHandler.addTrustedIntentExtras(intent); 1156 IntentHandler.addTrustedIntentExtras(intent);
1148 1157
1149 context.startActivity(intent); 1158 context.startActivity(intent);
1150 } 1159 }
1151 } 1160 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698