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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java

Issue 2076463002: [Custom Tabs] Implement "Read It Later" Behind a Flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test Created 4 years, 6 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.tabmodel; 5 package org.chromium.chrome.browser.tabmodel;
6 6
7 import android.content.Intent; 7 import android.content.Intent;
8 import android.os.Handler;
8 import android.text.TextUtils; 9 import android.text.TextUtils;
9 10
10 import org.chromium.base.SysUtils; 11 import org.chromium.base.SysUtils;
11 import org.chromium.base.TraceEvent; 12 import org.chromium.base.TraceEvent;
13 import org.chromium.chrome.R;
12 import org.chromium.chrome.browser.ChromeActivity; 14 import org.chromium.chrome.browser.ChromeActivity;
13 import org.chromium.chrome.browser.IntentHandler; 15 import org.chromium.chrome.browser.IntentHandler;
14 import org.chromium.chrome.browser.TabState; 16 import org.chromium.chrome.browser.TabState;
15 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; 17 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
16 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; 18 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
17 import org.chromium.chrome.browser.tab.Tab; 19 import org.chromium.chrome.browser.tab.Tab;
18 import org.chromium.chrome.browser.tab.TabDelegateFactory; 20 import org.chromium.chrome.browser.tab.TabDelegateFactory;
19 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; 21 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
20 import org.chromium.chrome.browser.util.IntentUtils; 22 import org.chromium.chrome.browser.util.IntentUtils;
21 import org.chromium.chrome.browser.util.UrlUtilities; 23 import org.chromium.chrome.browser.util.UrlUtilities;
22 import org.chromium.components.service_tab_launcher.ServiceTabLauncher; 24 import org.chromium.components.service_tab_launcher.ServiceTabLauncher;
23 import org.chromium.content_public.browser.LoadUrlParams; 25 import org.chromium.content_public.browser.LoadUrlParams;
24 import org.chromium.content_public.browser.WebContents; 26 import org.chromium.content_public.browser.WebContents;
25 import org.chromium.content_public.common.Referrer; 27 import org.chromium.content_public.common.Referrer;
26 import org.chromium.ui.base.PageTransition; 28 import org.chromium.ui.base.PageTransition;
27 import org.chromium.ui.base.WindowAndroid; 29 import org.chromium.ui.base.WindowAndroid;
30 import org.chromium.ui.widget.Toast;
28 31
29 /** 32 /**
30 * This class creates various kinds of new tabs and adds them to the right {@lin k TabModel}. 33 * This class creates various kinds of new tabs and adds them to the right {@lin k TabModel}.
31 */ 34 */
32 public class ChromeTabCreator extends TabCreatorManager.TabCreator { 35 public class ChromeTabCreator extends TabCreatorManager.TabCreator {
36 private static final int VISIBLE_DURATION_MS = 600;
33 37
34 private final ChromeActivity mActivity; 38 private final ChromeActivity mActivity;
35 private final WindowAndroid mNativeWindow; 39 private final WindowAndroid mNativeWindow;
36 private final TabModelOrderController mOrderController; 40 private final TabModelOrderController mOrderController;
37 private final TabPersistentStore mTabSaver; 41 private final TabPersistentStore mTabSaver;
38 private final boolean mIncognito; 42 private final boolean mIncognito;
39 43
40 private TabModel mTabModel; 44 private TabModel mTabModel;
41 private TabContentManager mTabContentManager; 45 private TabContentManager mTabContentManager;
42 46
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 } 162 }
159 tab.getTabRedirectHandler().updateIntent(intent); 163 tab.getTabRedirectHandler().updateIntent(intent);
160 164
161 if (intent != null && intent.hasExtra(ServiceTabLauncher.LAUNCH_REQU EST_ID_EXTRA)) { 165 if (intent != null && intent.hasExtra(ServiceTabLauncher.LAUNCH_REQU EST_ID_EXTRA)) {
162 ServiceTabLauncher.onWebContentsForRequestAvailable( 166 ServiceTabLauncher.onWebContentsForRequestAvailable(
163 intent.getIntExtra(ServiceTabLauncher.LAUNCH_REQUEST_ID_ EXTRA, 0), 167 intent.getIntExtra(ServiceTabLauncher.LAUNCH_REQUEST_ID_ EXTRA, 0),
164 tab.getWebContents()); 168 tab.getWebContents());
165 } 169 }
166 170
167 mTabModel.addTab(tab, position, type); 171 mTabModel.addTab(tab, position, type);
172
173 if (type == TabLaunchType.FROM_REPARENTING) {
174 TabReparentingParams params = (TabReparentingParams) asyncParams ;
175 if (!params.shouldStayInChrome()) {
176 new Handler().postDelayed(new Runnable() {
177 @Override
178 public void run() {
179 mActivity.moveTaskToBack(true);
180 Toast.makeText(mActivity, R.string.tab_sent_to_backg round,
181 Toast.LENGTH_LONG).show();
182 }
183 }, VISIBLE_DURATION_MS);
184 }
185 }
168 return tab; 186 return tab;
169 } finally { 187 } finally {
170 TraceEvent.end("ChromeTabCreator.createNewTab"); 188 TraceEvent.end("ChromeTabCreator.createNewTab");
171 } 189 }
172 } 190 }
173 191
174 @Override 192 @Override
175 public boolean createTabWithWebContents(Tab parent, WebContents webContents, int parentId, 193 public boolean createTabWithWebContents(Tab parent, WebContents webContents, int parentId,
176 TabLaunchType type, String url) { 194 TabLaunchType type, String url) {
177 // The parent tab was already closed. Do not open child tabs. 195 // The parent tab was already closed. Do not open child tabs.
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 * Sets the tab model and tab content manager to use. 341 * Sets the tab model and tab content manager to use.
324 * @param model The new {@link TabModel} to use. 342 * @param model The new {@link TabModel} to use.
325 * @param manager The new {@link TabContentManager} to use. 343 * @param manager The new {@link TabContentManager} to use.
326 */ 344 */
327 public void setTabModel(TabModel model, TabContentManager manager) { 345 public void setTabModel(TabModel model, TabContentManager manager) {
328 mTabModel = model; 346 mTabModel = model;
329 mTabContentManager = manager; 347 mTabContentManager = manager;
330 } 348 }
331 349
332 } 350 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698