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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
index 8c89984ececd97088056a9e5b540e06501a4c690..78077861cdff18986b2bcf1b6d2a1d264e486639 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
@@ -32,6 +32,7 @@ import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
+import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.IntentHandler;
@@ -597,7 +598,7 @@ public class CustomTabActivity extends ChromeActivity {
&& TextUtils.equals(getPackageName(), creatorPackage)) {
RecordUserAction.record(
"TaskManagement.OpenInChromeActionButtonClicked");
- if (openCurrentUrlInBrowser(false)) finishAndClose();
+ if (openCurrentUrlInBrowser(false, true)) finishAndClose();
} else {
mIntentDataProvider.sendButtonPendingIntentWithUrl(
getApplicationContext(), getActivityTab().getUrl());
@@ -658,9 +659,13 @@ public class CustomTabActivity extends ChromeActivity {
&& !mIntentDataProvider.shouldShowBookmarkMenuItem()) {
return true;
} else if (id == R.id.open_in_browser_id) {
- openCurrentUrlInBrowser(false);
+ openCurrentUrlInBrowser(false, true);
RecordUserAction.record("CustomTabsMenuOpenInChrome");
return true;
+ } else if (id == R.id.read_it_later_id) {
+ openCurrentUrlInBrowser(false, false);
+ RecordUserAction.record("CustomTabsMenuReadItLater");
+ return true;
} else if (id == R.id.find_in_page_id) {
mFindToolbarManager.showToolbar();
if (getContextualSearchManager() != null) {
@@ -713,10 +718,10 @@ public class CustomTabActivity extends ChromeActivity {
/**
* Opens the URL currently being displayed in the Custom Tab in the regular browser.
* @param forceReparenting Whether tab reparenting should be forced for testing.
- *
+ * @param stayInChrome Whether the user stays in Chrome after the tab is reparented.
* @return Whether or not the tab was sent over successfully.
*/
- boolean openCurrentUrlInBrowser(boolean forceReparenting) {
+ boolean openCurrentUrlInBrowser(boolean forceReparenting, boolean stayInChrome) {
Tab tab = getActivityTab();
if (tab == null) return false;
@@ -728,6 +733,10 @@ public class CustomTabActivity extends ChromeActivity {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(ChromeLauncherActivity.EXTRA_IS_ALLOWED_TO_RETURN_TO_PARENT, false);
+ if (ChromeFeatureList.isEnabled("ReadItLaterInMenu")) {
+ // In this trial both "open in chrome" and "read it later" should target Chrome.
+ intent.setPackage(getPackageName());
+ }
boolean willChromeHandleIntent = getIntentDataProvider().isOpenedByChrome();
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
@@ -750,7 +759,8 @@ public class CustomTabActivity extends ChromeActivity {
};
mMainTab = null;
- tab.detachAndStartReparenting(intent, startActivityOptions, finalizeCallback);
+ tab.detachAndStartReparenting(intent, startActivityOptions, finalizeCallback,
+ stayInChrome);
} else {
// Temporarily allowing disk access while fixing. TODO: http://crbug.com/581860
StrictMode.allowThreadDiskReads();

Powered by Google App Engine
This is Rietveld 408576698