|
@@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
.../java/res/xml/incognito_preferences.xml | 37 ++++
|
|
.../java/res/xml/incognito_preferences.xml | 37 ++++
|
|
.../java/res/xml/privacy_preferences.xml | 5 +
|
|
.../java/res/xml/privacy_preferences.xml | 5 +
|
|
.../AlwaysIncognitoLinkInterceptor.java | 53 ++++++
|
|
.../AlwaysIncognitoLinkInterceptor.java | 53 ++++++
|
|
- .../chrome/browser/ChromeTabbedActivity.java | 6 +-
|
|
|
|
|
|
+ .../chrome/browser/ChromeTabbedActivity.java | 9 +-
|
|
.../chrome/browser/app/ChromeActivity.java | 4 +
|
|
.../chrome/browser/app/ChromeActivity.java | 4 +
|
|
.../AppMenuPropertiesDelegateImpl.java | 26 ++-
|
|
.../AppMenuPropertiesDelegateImpl.java | 26 ++-
|
|
.../ChromeContextMenuPopulator.java | 7 +-
|
|
.../ChromeContextMenuPopulator.java | 7 +-
|
|
@@ -35,19 +35,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
.../browser/history/HistoryManager.java | 18 +-
|
|
.../browser/history/HistoryManager.java | 18 +-
|
|
.../chrome/browser/history/HistoryPage.java | 16 ++
|
|
.../chrome/browser/history/HistoryPage.java | 16 ++
|
|
.../native_page/NativePageFactory.java | 4 +-
|
|
.../native_page/NativePageFactory.java | 4 +-
|
|
- .../chrome/browser/ntp/RecentTabsManager.java | 3 +-
|
|
|
|
|
|
+ .../chrome/browser/ntp/RecentTabsManager.java | 28 ++-
|
|
.../privacy/settings/IncognitoSettings.java | 160 ++++++++++++++++++
|
|
.../privacy/settings/IncognitoSettings.java | 160 ++++++++++++++++++
|
|
.../browser/settings/SettingsActivity.java | 4 +
|
|
.../browser/settings/SettingsActivity.java | 4 +
|
|
- .../HistoricalTabModelObserver.java | 8 +-
|
|
|
|
|
|
+ .../HistoricalTabModelObserver.java | 6 +-
|
|
.../tab/tab_restore/HistoricalTabSaver.java | 2 +-
|
|
.../tab/tab_restore/HistoricalTabSaver.java | 2 +-
|
|
- .../tab_restore/HistoricalTabSaverImpl.java | 16 +-
|
|
|
|
|
|
+ .../tab_restore/HistoricalTabSaverImpl.java | 17 +-
|
|
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +-
|
|
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +-
|
|
.../browser/tabmodel/ChromeTabCreator.java | 5 +-
|
|
.../browser/tabmodel/ChromeTabCreator.java | 5 +-
|
|
.../tabmodel/TabModelSelectorImpl.java | 3 +
|
|
.../tabmodel/TabModelSelectorImpl.java | 3 +
|
|
.../browser/tabmodel/TabPersistentStore.java | 9 +
|
|
.../browser/tabmodel/TabPersistentStore.java | 9 +
|
|
|
|
+ .../browser/toolbar/ToolbarManager.java | 4 +-
|
|
.../webapps/WebappIntentDataProvider.java | 14 ++
|
|
.../webapps/WebappIntentDataProvider.java | 14 ++
|
|
chrome/browser/about_flags.cc | 4 +
|
|
chrome/browser/about_flags.cc | 4 +
|
|
- .../browser/android/historical_tab_saver.cc | 21 ++-
|
|
|
|
|
|
+ .../browser/android/historical_tab_saver.cc | 22 ++-
|
|
.../chrome_autocomplete_provider_client.cc | 7 +
|
|
.../chrome_autocomplete_provider_client.cc | 7 +
|
|
.../chrome_autocomplete_provider_client.h | 1 +
|
|
.../chrome_autocomplete_provider_client.h | 1 +
|
|
.../host_content_settings_map_factory.cc | 20 ++-
|
|
.../host_content_settings_map_factory.cc | 20 ++-
|
|
@@ -56,9 +57,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
.../flags/android/chrome_feature_list.cc | 4 +-
|
|
.../flags/android/chrome_feature_list.cc | 4 +-
|
|
chrome/browser/history/history_tab_helper.cc | 18 ++
|
|
chrome/browser/history/history_tab_helper.cc | 18 ++
|
|
chrome/browser/history/history_tab_helper.h | 10 +-
|
|
chrome/browser/history/history_tab_helper.h | 10 +-
|
|
- .../android/offline_page_bridge.cc | 13 +-
|
|
|
|
- .../android/offline_page_model_factory.cc | 21 ++-
|
|
|
|
- .../android/request_coordinator_factory.cc | 21 ++-
|
|
|
|
|
|
+ .../android/offline_page_bridge.cc | 11 +-
|
|
|
|
+ .../android/offline_page_model_factory.cc | 20 ++-
|
|
|
|
+ .../android/request_coordinator_factory.cc | 27 ++-
|
|
.../offline_page_model_factory.h | 1 +
|
|
.../offline_page_model_factory.h | 1 +
|
|
.../offline_pages/recent_tab_helper.cc | 19 ++-
|
|
.../offline_pages/recent_tab_helper.cc | 19 ++-
|
|
.../browser/offline_pages/recent_tab_helper.h | 3 +
|
|
.../browser/offline_pages/recent_tab_helper.h | 3 +
|
|
@@ -67,6 +68,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
.../browser/ui/android/native_page/BUILD.gn | 2 +
|
|
.../browser/ui/android/native_page/BUILD.gn | 2 +
|
|
.../browser/ui/native_page/NativePage.java | 12 +-
|
|
.../browser/ui/native_page/NativePage.java | 12 +-
|
|
.../strings/android_chrome_strings.grd | 31 ++++
|
|
.../strings/android_chrome_strings.grd | 31 ++++
|
|
|
|
+ .../browser/toolbar/LocationBarModel.java | 7 +-
|
|
chrome/browser/ui/messages/android/BUILD.gn | 1 +
|
|
chrome/browser/ui/messages/android/BUILD.gn | 1 +
|
|
.../snackbar/INeedSnackbarManager.java | 27 +++
|
|
.../snackbar/INeedSnackbarManager.java | 27 +++
|
|
chrome/common/pref_names.cc | 6 +
|
|
chrome/common/pref_names.cc | 6 +
|
|
@@ -82,7 +84,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
.../omnibox/browser/base_search_provider.cc | 2 +-
|
|
.../omnibox/browser/base_search_provider.cc | 2 +-
|
|
components/omnibox/browser/search_provider.cc | 4 +-
|
|
components/omnibox/browser/search_provider.cc | 4 +-
|
|
.../host_content_settings_map_factory.cc | 1 +
|
|
.../host_content_settings_map_factory.cc | 1 +
|
|
- 63 files changed, 680 insertions(+), 74 deletions(-)
|
|
|
|
|
|
+ 65 files changed, 719 insertions(+), 77 deletions(-)
|
|
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
|
|
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
|
|
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
|
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
|
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
|
|
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
|
|
@@ -91,7 +93,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
|
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
|
--- a/chrome/android/chrome_java_resources.gni
|
|
--- a/chrome/android/chrome_java_resources.gni
|
|
+++ b/chrome/android/chrome_java_resources.gni
|
|
+++ b/chrome/android/chrome_java_resources.gni
|
|
-@@ -654,6 +654,7 @@ chrome_java_resources = [
|
|
|
|
|
|
+@@ -652,6 +652,7 @@ chrome_java_resources = [
|
|
"java/res/xml/main_preferences.xml",
|
|
"java/res/xml/main_preferences.xml",
|
|
"java/res/xml/manage_sync_preferences.xml",
|
|
"java/res/xml/manage_sync_preferences.xml",
|
|
"java/res/xml/phone_as_a_security_key_accessory_filter.xml",
|
|
"java/res/xml/phone_as_a_security_key_accessory_filter.xml",
|
|
@@ -110,7 +112,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
|
|
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
|
|
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
|
|
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
|
|
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
|
|
"java/src/org/chromium/chrome/browser/ActivityUtils.java",
|
|
"java/src/org/chromium/chrome/browser/ActivityUtils.java",
|
|
-@@ -912,6 +913,7 @@ chrome_java_sources = [
|
|
|
|
|
|
+@@ -915,6 +916,7 @@ chrome_java_sources = [
|
|
"java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java",
|
|
"java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java",
|
|
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
|
|
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
|
|
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
|
|
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
|
|
@@ -236,7 +238,7 @@ new file mode 100644
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
|
-@@ -57,6 +57,7 @@ import org.chromium.base.task.PostTask;
|
|
|
|
|
|
+@@ -58,6 +58,7 @@ import org.chromium.base.task.PostTask;
|
|
import org.chromium.build.annotations.UsedByReflection;
|
|
import org.chromium.build.annotations.UsedByReflection;
|
|
import org.chromium.cc.input.BrowserControlsState;
|
|
import org.chromium.cc.input.BrowserControlsState;
|
|
import org.chromium.chrome.R;
|
|
import org.chromium.chrome.R;
|
|
@@ -244,7 +246,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
|
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
|
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
|
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
|
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
|
|
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
|
|
-@@ -1899,8 +1900,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
|
|
|
|
|
+@@ -578,8 +579,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
|
|
|
+ mTabModelOrchestrator.onNativeLibraryReady(getTabContentManager());
|
|
|
|
+
|
|
|
|
+ // For saving non-incognito tab closures for Recent Tabs.
|
|
|
|
++ boolean alwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
|
|
|
|
+ mHistoricalTabModelObserver =
|
|
|
|
+- new HistoricalTabModelObserver(mTabModelSelector.getModel(false));
|
|
|
|
++ new HistoricalTabModelObserver(mTabModelSelector.getModel(alwaysIncognito));
|
|
|
|
+
|
|
|
|
+ if (TabUiFeatureUtilities.isTabletGridTabSwitcherEnabled(this)) {
|
|
|
|
+ mTabModelSelector.addObserver(new TabModelSelectorObserver() {
|
|
|
|
+@@ -1904,8 +1906,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
|
Bundle savedInstanceState = getSavedInstanceState();
|
|
Bundle savedInstanceState = getSavedInstanceState();
|
|
|
|
|
|
// We determine the model as soon as possible so every systems get initialized coherently.
|
|
// We determine the model as soon as possible so every systems get initialized coherently.
|
|
@@ -267,7 +280,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
|
|
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
|
|
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
|
|
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
|
|
import org.chromium.chrome.browser.device.DeviceClassManager;
|
|
import org.chromium.chrome.browser.device.DeviceClassManager;
|
|
-@@ -1812,6 +1813,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
|
|
|
|
|
+@@ -1808,6 +1809,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
|
throw new IllegalStateException(
|
|
throw new IllegalStateException(
|
|
"Attempting to access TabCreator before initialization");
|
|
"Attempting to access TabCreator before initialization");
|
|
}
|
|
}
|
|
@@ -286,9 +299,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
|
import org.chromium.chrome.browser.ActivityTabProvider;
|
|
import org.chromium.chrome.browser.ActivityTabProvider;
|
|
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
|
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
|
import org.chromium.chrome.browser.banners.AppMenuVerbiage;
|
|
import org.chromium.chrome.browser.banners.AppMenuVerbiage;
|
|
- import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
|
|
|
|
import org.chromium.chrome.browser.bookmarks.BookmarkFeatures;
|
|
import org.chromium.chrome.browser.bookmarks.BookmarkFeatures;
|
|
-@@ -98,6 +99,10 @@ import java.util.ArrayList;
|
|
|
|
|
|
+ import org.chromium.chrome.browser.bookmarks.BookmarkModel;
|
|
|
|
+@@ -99,6 +100,10 @@ import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -299,7 +312,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
|
/**
|
|
/**
|
|
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
|
|
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
|
|
* items based on activity state.
|
|
* items based on activity state.
|
|
-@@ -558,6 +563,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
|
|
|
|
|
+@@ -560,6 +565,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
|
}
|
|
}
|
|
|
|
|
|
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
|
|
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
|
|
@@ -313,7 +326,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
|
// We have to iterate all menu items since same menu item ID may be associated with more
|
|
// We have to iterate all menu items since same menu item ID may be associated with more
|
|
// than one menu items.
|
|
// than one menu items.
|
|
boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
|
|
boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
|
|
-@@ -616,7 +628,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
|
|
|
|
|
+@@ -636,7 +648,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
|
}
|
|
}
|
|
|
|
|
|
if (item.getItemId() == R.id.recent_tabs_menu_id) {
|
|
if (item.getItemId() == R.id.recent_tabs_menu_id) {
|
|
@@ -329,8 +342,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
|
+ item.setVisible(!isIncognito);
|
|
+ item.setVisible(!isIncognito);
|
|
}
|
|
}
|
|
if (item.getItemId() == R.id.menu_group_tabs) {
|
|
if (item.getItemId() == R.id.menu_group_tabs) {
|
|
- // Disable incognito group tabs when a re-authentication screen is shown.
|
|
|
|
-@@ -858,7 +878,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
|
|
|
|
|
+ item.setVisible(isMenuGroupTabsVisible);
|
|
|
|
+@@ -876,7 +896,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
|
// is not persisted when adding to the homescreen.
|
|
// is not persisted when adding to the homescreen.
|
|
// * If creating shortcuts it not supported by the current home screen.
|
|
// * If creating shortcuts it not supported by the current home screen.
|
|
return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme
|
|
return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme
|
|
@@ -352,7 +365,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
|
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
|
|
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
|
|
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
|
|
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
|
|
import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType;
|
|
import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType;
|
|
-@@ -374,6 +375,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
|
|
|
|
|
+@@ -364,6 +365,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
|
boolean hasSaveImage = false;
|
|
boolean hasSaveImage = false;
|
|
mShowEphemeralTabNewLabel = null;
|
|
mShowEphemeralTabNewLabel = null;
|
|
|
|
|
|
@@ -362,7 +375,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
|
List<Pair<Integer, ModelList>> groupedItems = new ArrayList<>();
|
|
List<Pair<Integer, ModelList>> groupedItems = new ArrayList<>();
|
|
|
|
|
|
if (mParams.isAnchor()) {
|
|
if (mParams.isAnchor()) {
|
|
-@@ -392,6 +396,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
|
|
|
|
|
+@@ -382,6 +386,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
|
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP));
|
|
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -370,7 +383,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
|
if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) {
|
|
if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) {
|
|
linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB));
|
|
linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB));
|
|
}
|
|
}
|
|
-@@ -416,7 +421,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
|
|
|
|
|
+@@ -406,7 +411,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (FirstRunStatus.getFirstRunFlowComplete()) {
|
|
if (FirstRunStatus.getFirstRunFlowComplete()) {
|
|
@@ -382,7 +395,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
|
|
-@@ -66,31 +66,6 @@ public class CustomTabActivityLifecycleUmaTracker implements PauseResumeWithNati
|
|
|
|
|
|
+@@ -68,31 +68,6 @@ public class CustomTabActivityLifecycleUmaTracker
|
|
private boolean mIsInitialResume = true;
|
|
private boolean mIsInitialResume = true;
|
|
|
|
|
|
private void recordIncognitoLaunchReason() {
|
|
private void recordIncognitoLaunchReason() {
|
|
@@ -424,8 +437,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
|
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
|
import org.chromium.chrome.browser.DefaultBrowserInfo;
|
|
import org.chromium.chrome.browser.DefaultBrowserInfo;
|
|
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
|
|
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
|
|
- import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
|
|
|
|
-@@ -172,6 +173,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
|
|
|
|
|
+ import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder;
|
|
|
|
+@@ -176,6 +177,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
|
downloadItemVisible = false;
|
|
downloadItemVisible = false;
|
|
openInChromeItemVisible = false;
|
|
openInChromeItemVisible = false;
|
|
}
|
|
}
|
|
@@ -448,7 +461,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|
import java.lang.annotation.Retention;
|
|
import java.lang.annotation.Retention;
|
|
import java.lang.annotation.RetentionPolicy;
|
|
import java.lang.annotation.RetentionPolicy;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
-@@ -847,7 +850,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
|
|
|
|
|
+@@ -855,7 +858,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public boolean isIncognito() {
|
|
public boolean isIncognito() {
|
|
@@ -500,7 +513,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
|
-@@ -33,6 +33,7 @@ import com.google.android.material.tabs.TabLayout.OnTabSelectedListener;
|
|
|
|
|
|
+@@ -35,6 +35,7 @@ import com.google.android.material.tabs.TabLayout.OnTabSelectedListener;
|
|
import org.chromium.base.metrics.RecordHistogram;
|
|
import org.chromium.base.metrics.RecordHistogram;
|
|
import org.chromium.base.metrics.RecordUserAction;
|
|
import org.chromium.base.metrics.RecordUserAction;
|
|
import org.chromium.base.supplier.ObservableSupplier;
|
|
import org.chromium.base.supplier.ObservableSupplier;
|
|
@@ -508,9 +521,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
|
import org.chromium.base.supplier.ObservableSupplierImpl;
|
|
import org.chromium.base.supplier.ObservableSupplierImpl;
|
|
import org.chromium.base.supplier.Supplier;
|
|
import org.chromium.base.supplier.Supplier;
|
|
import org.chromium.chrome.R;
|
|
import org.chromium.chrome.R;
|
|
-@@ -73,6 +74,12 @@ import org.chromium.url.GURL;
|
|
|
|
- import java.io.Serializable;
|
|
|
|
|
|
+@@ -77,6 +78,12 @@ import java.io.Serializable;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+ import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
|
+import org.chromium.chrome.browser.profiles.Profile;
|
|
+import org.chromium.chrome.browser.profiles.Profile;
|
|
+import org.chromium.base.ContextUtils;
|
|
+import org.chromium.base.ContextUtils;
|
|
@@ -521,7 +534,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
|
/**
|
|
/**
|
|
* Combines and manages the different UI components of browsing history.
|
|
* Combines and manages the different UI components of browsing history.
|
|
*/
|
|
*/
|
|
-@@ -504,7 +511,16 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve
|
|
|
|
|
|
+@@ -551,7 +558,16 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve
|
|
return mRootView;
|
|
return mRootView;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -603,7 +616,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
|
|
-@@ -79,7 +79,8 @@ public class RecentTabsManager {
|
|
|
|
|
|
+@@ -21,6 +21,15 @@ import org.chromium.chrome.browser.ui.favicon.FaviconHelper;
|
|
|
|
+ import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback;
|
|
|
|
+ import org.chromium.url.GURL;
|
|
|
|
+
|
|
|
|
++import android.content.Intent;
|
|
|
|
++import android.provider.Browser;
|
|
|
|
++import android.net.Uri;
|
|
|
|
++import org.chromium.base.ContextUtils;
|
|
|
|
++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
|
|
|
++import org.chromium.chrome.browser.IntentHandler;
|
|
|
|
++import org.chromium.ui.mojom.WindowOpenDisposition;
|
|
|
|
++import org.chromium.components.embedder_support.util.UrlUtilities;
|
|
|
|
++
|
|
|
|
+ import java.util.HashMap;
|
|
|
|
+ import java.util.List;
|
|
|
|
+ import java.util.Map;
|
|
|
|
+@@ -78,7 +87,8 @@ public class RecentTabsManager {
|
|
*/
|
|
*/
|
|
public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile,
|
|
public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile,
|
|
Context context, Runnable showHistoryManager) {
|
|
Context context, Runnable showHistoryManager) {
|
|
@@ -613,6 +642,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
|
|
mActiveTab = tab;
|
|
mActiveTab = tab;
|
|
mTabModelSelector = tabModelSelector;
|
|
mTabModelSelector = tabModelSelector;
|
|
mShowHistoryManager = showHistoryManager;
|
|
mShowHistoryManager = showHistoryManager;
|
|
|
|
+@@ -210,6 +220,22 @@ public class RecentTabsManager {
|
|
|
|
+ */
|
|
|
|
+ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) {
|
|
|
|
+ if (mIsDestroyed) return;
|
|
|
|
++ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) {
|
|
|
|
++ // allow only http/https urls
|
|
|
|
++ if (!UrlUtilities.isHttpOrHttps(tab.getUrl())) return;
|
|
|
|
++
|
|
|
|
++ Context context = ContextUtils.getApplicationContext();
|
|
|
|
++ Intent intent = new Intent(Intent.ACTION_VIEW,
|
|
|
|
++ Uri.parse(tab.getUrl().getSpec()));
|
|
|
|
++ intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
|
|
|
|
++ if (windowDisposition != WindowOpenDisposition.CURRENT_TAB) {
|
|
|
|
++ intent.putExtra(Browser.EXTRA_OPEN_NEW_INCOGNITO_TAB, true);
|
|
|
|
++ }
|
|
|
|
++ intent.setPackage(context.getPackageName());
|
|
|
|
++ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
|
|
++ IntentHandler.startActivityForTrustedIntent(intent);
|
|
|
|
++ return;
|
|
|
|
++ }
|
|
|
|
+ mTabSessionIdsRestored.put(tab.getSessionId(), true);
|
|
|
|
+ RecordUserAction.record("MobileRecentTabManagerRecentTabOpened");
|
|
|
|
+ // Window disposition will select which tab to open.
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
|
|
new file mode 100644
|
|
new file mode 100644
|
|
--- /dev/null
|
|
--- /dev/null
|
|
@@ -802,7 +854,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
|
|
-@@ -15,6 +15,8 @@ import java.util.ArrayList;
|
|
|
|
|
|
+@@ -14,6 +14,8 @@ import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
@@ -811,7 +863,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
|
/**
|
|
/**
|
|
* A tab model observer for managing bulk closures.
|
|
* A tab model observer for managing bulk closures.
|
|
*/
|
|
*/
|
|
-@@ -47,7 +49,8 @@ public class HistoricalTabModelObserver implements TabModelObserver {
|
|
|
|
|
|
+@@ -41,7 +43,8 @@ public class HistoricalTabModelObserver implements TabModelObserver {
|
|
if (tabs.isEmpty()) return;
|
|
if (tabs.isEmpty()) return;
|
|
|
|
|
|
if (tabs.size() == 1) {
|
|
if (tabs.size() == 1) {
|
|
@@ -821,17 +873,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
-@@ -59,8 +62,9 @@ public class HistoricalTabModelObserver implements TabModelObserver {
|
|
|
|
- * identical to what occurred prior to {@link ChromeFeatureList.BULK_TAB_RESTORE}.
|
|
|
|
- */
|
|
|
|
- private void legacyCreateHistoricalTabs(List<Tab> tabs) {
|
|
|
|
-+ boolean is_always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
|
|
|
|
- for (Tab tab : tabs) {
|
|
|
|
-- mHistoricalTabSaver.createHistoricalTab(tab);
|
|
|
|
-+ mHistoricalTabSaver.createHistoricalTab(tab, is_always_incognito);
|
|
|
|
|
|
+@@ -72,7 +75,6 @@ public class HistoricalTabModelObserver implements TabModelObserver {
|
|
|
|
+ entries.add(historicalGroup);
|
|
|
|
+ idToGroup.put(groupId, historicalGroup);
|
|
}
|
|
}
|
|
|
|
+-
|
|
|
|
+ mHistoricalTabSaver.createHistoricalBulkClosure(entries);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ }
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
|
|
@@ -847,7 +896,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
|
|
-@@ -29,6 +29,8 @@ import java.util.Arrays;
|
|
|
|
|
|
+@@ -27,6 +27,8 @@ import java.util.Arrays;
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
@@ -856,7 +905,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
|
/**
|
|
/**
|
|
* Creates historical entries in TabRestoreService.
|
|
* Creates historical entries in TabRestoreService.
|
|
*/
|
|
*/
|
|
-@@ -62,10 +64,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
|
|
|
|
+@@ -60,10 +62,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
|
|
|
|
// HistoricalTabSaver implementation.
|
|
// HistoricalTabSaver implementation.
|
|
@Override
|
|
@Override
|
|
@@ -869,7 +918,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
-@@ -106,7 +108,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
|
|
|
|
+@@ -115,7 +117,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
|
|
|
|
// If there is only a single valid tab remaining save it individually.
|
|
// If there is only a single valid tab remaining save it individually.
|
|
if (validEntries.size() == 1 && validEntries.get(0).isSingleTab()) {
|
|
if (validEntries.size() == 1 && validEntries.get(0).isSingleTab()) {
|
|
@@ -878,20 +927,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
-@@ -128,10 +130,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
|
|
- CollectionUtil.integerListToIntArray(perTabGroupId), allTabs.toArray(new Tab[0]));
|
|
|
|
|
|
+@@ -140,11 +142,12 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
|
|
+ CollectionUtil.integerListToIntArray(savedStateVersions));
|
|
}
|
|
}
|
|
|
|
|
|
- private void createHistoricalTabInternal(Tab tab) {
|
|
- private void createHistoricalTabInternal(Tab tab) {
|
|
+ private void createHistoricalTabInternal(Tab tab, boolean is_always_incognito) {
|
|
+ private void createHistoricalTabInternal(Tab tab, boolean is_always_incognito) {
|
|
RecordHistogram.recordEnumeratedHistogram("Tabs.RecentlyClosed.HistoricalSaverCloseType",
|
|
RecordHistogram.recordEnumeratedHistogram("Tabs.RecentlyClosed.HistoricalSaverCloseType",
|
|
HistoricalSaverCloseType.TAB, HistoricalSaverCloseType.COUNT);
|
|
HistoricalSaverCloseType.TAB, HistoricalSaverCloseType.COUNT);
|
|
-- HistoricalTabSaverImplJni.get().createHistoricalTab(tab);
|
|
|
|
-+ HistoricalTabSaverImplJni.get().createHistoricalTab(tab, is_always_incognito);
|
|
|
|
|
|
+ HistoricalTabSaverImplJni.get().createHistoricalTab(
|
|
|
|
+- tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version());
|
|
|
|
++ tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version(),
|
|
|
|
++ is_always_incognito);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
-@@ -139,7 +141,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
|
|
|
|
+@@ -152,7 +155,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
* internal Chrome scheme, about:blank, or a native page and it cannot be incognito.
|
|
* internal Chrome scheme, about:blank, or a native page and it cannot be incognito.
|
|
*/
|
|
*/
|
|
private boolean shouldSave(Tab tab) {
|
|
private boolean shouldSave(Tab tab) {
|
|
@@ -900,15 +951,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
|
|
|
|
|
// {@link GURL#getScheme()} is not available in unit tests.
|
|
// {@link GURL#getScheme()} is not available in unit tests.
|
|
if (mIgnoreUrlSchemesForTesting) return true;
|
|
if (mIgnoreUrlSchemesForTesting) return true;
|
|
-@@ -217,7 +219,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
|
|
|
|
+@@ -225,7 +228,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
|
|
|
|
|
@NativeMethods
|
|
@NativeMethods
|
|
interface Natives {
|
|
interface Natives {
|
|
-- void createHistoricalTab(Tab tab);
|
|
|
|
-+ void createHistoricalTab(Tab tab, boolean is_always_incognito);
|
|
|
|
- void createHistoricalGroup(TabModel model, String title, Tab[] tabs);
|
|
|
|
- void createHistoricalBulkClosure(
|
|
|
|
- TabModel model, int[] groupIds, String[] titles, int[] perTabGroupId, Tab[] tabs);
|
|
|
|
|
|
+- void createHistoricalTab(Tab tab, ByteBuffer state, int savedStateVersion);
|
|
|
|
++ void createHistoricalTab(Tab tab, ByteBuffer state, int savedStateVersion, boolean is_always_incognito);
|
|
|
|
+ void createHistoricalGroup(TabModel model, String title, Tab[] tabs,
|
|
|
|
+ ByteBuffer[] byteBuffers, int[] savedStationsVersions);
|
|
|
|
+ void createHistoricalBulkClosure(TabModel model, int[] groupIds, String[] titles,
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
|
@@ -984,7 +1035,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
|
|
import java.io.BufferedInputStream;
|
|
import java.io.BufferedInputStream;
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.ByteArrayOutputStream;
|
|
-@@ -747,6 +749,13 @@ public class TabPersistentStore {
|
|
|
|
|
|
+@@ -757,6 +759,13 @@ public class TabPersistentStore {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -998,6 +1049,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
|
|
TabModel model = mTabModelSelector.getModel(isIncognito);
|
|
TabModel model = mTabModelSelector.getModel(isIncognito);
|
|
|
|
|
|
if (model.isIncognito() != isIncognito) {
|
|
if (model.isIncognito() != isIncognito) {
|
|
|
|
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
|
|
|
|
+--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
|
|
|
|
++++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
|
|
|
|
+@@ -38,6 +38,7 @@ import org.chromium.base.supplier.OneshotSupplier;
|
|
|
|
+ import org.chromium.base.supplier.Supplier;
|
|
|
|
+ import org.chromium.chrome.R;
|
|
|
|
+ import org.chromium.chrome.browser.ActivityTabProvider;
|
|
|
|
++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
|
|
|
+ import org.chromium.chrome.browser.IntentHandler;
|
|
|
|
+ import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController;
|
|
|
|
+ import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
|
|
|
|
+@@ -523,7 +524,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+- SearchEngineLogoUtils.getInstance());
|
|
|
|
++ SearchEngineLogoUtils.getInstance(),
|
|
|
|
++ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
|
|
|
|
+ mControlContainer = controlContainer;
|
|
|
|
+ assert mControlContainer != null;
|
|
|
|
+
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
|
|
@@ -1046,7 +1118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
|
|
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|
--- a/chrome/browser/about_flags.cc
|
|
--- a/chrome/browser/about_flags.cc
|
|
+++ b/chrome/browser/about_flags.cc
|
|
+++ b/chrome/browser/about_flags.cc
|
|
-@@ -4713,6 +4713,10 @@ const FeatureEntry kFeatureEntries[] = {
|
|
|
|
|
|
+@@ -4837,6 +4837,10 @@ const FeatureEntry kFeatureEntries[] = {
|
|
flag_descriptions::kOfflinePagesLivePageSharingName,
|
|
flag_descriptions::kOfflinePagesLivePageSharingName,
|
|
flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid,
|
|
flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid,
|
|
FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)},
|
|
FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)},
|
|
@@ -1060,7 +1132,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|
diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/android/historical_tab_saver.cc
|
|
diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/android/historical_tab_saver.cc
|
|
--- a/chrome/browser/android/historical_tab_saver.cc
|
|
--- a/chrome/browser/android/historical_tab_saver.cc
|
|
+++ b/chrome/browser/android/historical_tab_saver.cc
|
|
+++ b/chrome/browser/android/historical_tab_saver.cc
|
|
-@@ -25,6 +25,11 @@
|
|
|
|
|
|
+@@ -26,6 +26,11 @@
|
|
#include "components/sessions/core/tab_restore_service.h"
|
|
#include "components/sessions/core/tab_restore_service.h"
|
|
#include "content/public/browser/web_contents.h"
|
|
#include "content/public/browser/web_contents.h"
|
|
|
|
|
|
@@ -1072,16 +1144,17 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
|
|
using base::android::JavaParamRef;
|
|
using base::android::JavaParamRef;
|
|
using base::android::ScopedJavaLocalRef;
|
|
using base::android::ScopedJavaLocalRef;
|
|
|
|
|
|
-@@ -35,7 +40,7 @@ namespace {
|
|
|
|
- // Defined in TabGroupModelFilter.java
|
|
|
|
- constexpr int kInvalidGroupId = -1;
|
|
|
|
|
|
+@@ -38,7 +43,8 @@ constexpr int kInvalidGroupId = -1;
|
|
|
|
|
|
--void CreateHistoricalTab(TabAndroid* tab_android) {
|
|
|
|
-+void CreateHistoricalTab(TabAndroid* tab_android, bool is_always_incognito) {
|
|
|
|
|
|
+ void CreateHistoricalTab(
|
|
|
|
+ TabAndroid* tab_android,
|
|
|
|
+- WebContentsStateByteBuffer web_contents_state_byte_buffer) {
|
|
|
|
++ WebContentsStateByteBuffer web_contents_state_byte_buffer,
|
|
|
|
++ bool is_always_incognito) {
|
|
if (!tab_android) {
|
|
if (!tab_android) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
-@@ -45,9 +50,14 @@ void CreateHistoricalTab(TabAndroid* tab_android) {
|
|
|
|
|
|
+@@ -49,9 +55,14 @@ void CreateHistoricalTab(
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1098,22 +1171,28 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
|
|
if (!service) {
|
|
if (!service) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
-@@ -190,8 +200,9 @@ std::unique_ptr<ScopedWebContents> ScopedWebContents::CreateForTab(
|
|
|
|
- // static
|
|
|
|
- static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
|
|
|
|
|
|
+@@ -243,14 +254,15 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
|
|
JNIEnv* env,
|
|
JNIEnv* env,
|
|
-- const JavaParamRef<jobject>& jtab_android) {
|
|
|
|
-- CreateHistoricalTab(TabAndroid::GetNativeTab(env, jtab_android));
|
|
|
|
-+ const JavaParamRef<jobject>& jtab_android,
|
|
|
|
|
|
+ const JavaParamRef<jobject>& jtab_android,
|
|
|
|
+ const JavaParamRef<jobject>& state,
|
|
|
|
+- jint saved_state_version) {
|
|
|
|
++ jint saved_state_version,
|
|
+ jboolean is_always_incognito) {
|
|
+ jboolean is_always_incognito) {
|
|
-+ CreateHistoricalTab(TabAndroid::GetNativeTab(env, jtab_android), is_always_incognito);
|
|
|
|
|
|
+ void* data = env->GetDirectBufferAddress(state);
|
|
|
|
+ int size = env->GetDirectBufferCapacity(state);
|
|
|
|
+
|
|
|
|
+ WebContentsStateByteBuffer web_contents_state =
|
|
|
|
+ WebContentsStateByteBuffer(data, size, (int)saved_state_version);
|
|
|
|
+ CreateHistoricalTab(TabAndroid::GetNativeTab(env, jtab_android),
|
|
|
|
+- std::move(web_contents_state));
|
|
|
|
++ std::move(web_contents_state), is_always_incognito);
|
|
}
|
|
}
|
|
|
|
|
|
// static
|
|
// static
|
|
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
|
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
|
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
|
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
|
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
|
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
|
-@@ -299,6 +299,13 @@ signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager()
|
|
|
|
|
|
+@@ -310,6 +310,13 @@ signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager()
|
|
return IdentityManagerFactory::GetForProfile(profile_);
|
|
return IdentityManagerFactory::GetForProfile(profile_);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1130,7 +1209,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
|
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
|
|
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
|
|
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
|
|
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
|
|
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
|
|
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
|
|
-@@ -78,6 +78,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient {
|
|
|
|
|
|
+@@ -80,6 +80,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient {
|
|
const override;
|
|
const override;
|
|
signin::IdentityManager* GetIdentityManager() const override;
|
|
signin::IdentityManager* GetIdentityManager() const override;
|
|
bool IsOffTheRecord() const override;
|
|
bool IsOffTheRecord() const override;
|
|
@@ -1187,7 +1266,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c
|
|
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
|
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
|
--- a/chrome/browser/flag_descriptions.cc
|
|
--- a/chrome/browser/flag_descriptions.cc
|
|
+++ b/chrome/browser/flag_descriptions.cc
|
|
+++ b/chrome/browser/flag_descriptions.cc
|
|
-@@ -3758,6 +3758,12 @@ const char kOfflinePagesLivePageSharingDescription[] =
|
|
|
|
|
|
+@@ -3907,6 +3907,12 @@ const char kOfflinePagesLivePageSharingDescription[] =
|
|
"Enables to share current loaded page as offline page by saving as MHTML "
|
|
"Enables to share current loaded page as offline page by saving as MHTML "
|
|
"first.";
|
|
"first.";
|
|
|
|
|
|
@@ -1197,36 +1276,36 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|
+ "Enables autosave of offline page, as automatic switching in case "
|
|
+ "Enables autosave of offline page, as automatic switching in case "
|
|
+ "the device goes offline.";
|
|
+ "the device goes offline.";
|
|
+
|
|
+
|
|
- const char kPageInfoDiscoverabilityTimeoutsName[] =
|
|
|
|
- "Page info discoverability timeouts";
|
|
|
|
- const char kPageInfoDiscoverabilityTimeoutsDescription[] =
|
|
|
|
|
|
+ const char kPageInfoHistoryName[] = "Page info history";
|
|
|
|
+ const char kPageInfoHistoryDescription[] =
|
|
|
|
+ "Enable a history sub page to the page info menu, and a button to forget "
|
|
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
|
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
|
--- a/chrome/browser/flag_descriptions.h
|
|
--- a/chrome/browser/flag_descriptions.h
|
|
+++ b/chrome/browser/flag_descriptions.h
|
|
+++ b/chrome/browser/flag_descriptions.h
|
|
-@@ -2141,6 +2141,9 @@ extern const char kNotificationPermissionRationaleDescription[];
|
|
|
|
|
|
+@@ -2227,6 +2227,9 @@ extern const char kNotificationPermissionRationaleDescription[];
|
|
extern const char kOfflinePagesLivePageSharingName[];
|
|
extern const char kOfflinePagesLivePageSharingName[];
|
|
extern const char kOfflinePagesLivePageSharingDescription[];
|
|
extern const char kOfflinePagesLivePageSharingDescription[];
|
|
|
|
|
|
+extern const char kOfflinePagesAutoSaveFeatureName[];
|
|
+extern const char kOfflinePagesAutoSaveFeatureName[];
|
|
+extern const char kOfflinePagesAutoSaveFeatureDescription[];
|
|
+extern const char kOfflinePagesAutoSaveFeatureDescription[];
|
|
+
|
|
+
|
|
- extern const char kPageInfoDiscoverabilityTimeoutsName[];
|
|
|
|
- extern const char kPageInfoDiscoverabilityTimeoutsDescription[];
|
|
|
|
|
|
+ extern const char kPageInfoHistoryName[];
|
|
|
|
+ extern const char kPageInfoHistoryDescription[];
|
|
|
|
|
|
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
|
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
|
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
|
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
|
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
|
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
|
-@@ -535,8 +535,8 @@ const base::Feature kCCTNewDownloadTab{"CCTNewDownloadTab",
|
|
|
|
- const base::Feature kCCTIncognito{"CCTIncognito",
|
|
|
|
- base::FEATURE_ENABLED_BY_DEFAULT};
|
|
|
|
|
|
+@@ -561,8 +561,8 @@ BASE_FEATURE(kCCTNewDownloadTab,
|
|
|
|
+ BASE_FEATURE(kCCTIncognito, "CCTIncognito", base::FEATURE_ENABLED_BY_DEFAULT);
|
|
|
|
|
|
--const base::Feature kCCTIncognitoAvailableToThirdParty{
|
|
|
|
-- "CCTIncognitoAvailableToThirdParty", base::FEATURE_DISABLED_BY_DEFAULT};
|
|
|
|
-+const base::Feature kCCTIncognitoAvailableToThirdParty{ // Enabled by default in Bromite
|
|
|
|
-+ "CCTIncognitoAvailableToThirdParty", base::FEATURE_ENABLED_BY_DEFAULT};
|
|
|
|
|
|
+ BASE_FEATURE(kCCTIncognitoAvailableToThirdParty,
|
|
|
|
+- "CCTIncognitoAvailableToThirdParty",
|
|
|
|
+- base::FEATURE_DISABLED_BY_DEFAULT);
|
|
|
|
++ "CCTIncognitoAvailableToThirdParty", // must be enabled
|
|
|
|
++ base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
|
|
|
|
|
|
- const base::Feature kCCTPackageNameRecording{"CCTPackageNameRecording",
|
|
|
|
- base::FEATURE_ENABLED_BY_DEFAULT};
|
|
|
|
|
|
+ BASE_FEATURE(kCCTPackageNameRecording,
|
|
|
|
+ "CCTPackageNameRecording",
|
|
diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc
|
|
diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc
|
|
--- a/chrome/browser/history/history_tab_helper.cc
|
|
--- a/chrome/browser/history/history_tab_helper.cc
|
|
+++ b/chrome/browser/history/history_tab_helper.cc
|
|
+++ b/chrome/browser/history/history_tab_helper.cc
|
|
@@ -1316,38 +1395,23 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom
|
|
|
|
|
|
using base::android::ConvertJavaStringToUTF8;
|
|
using base::android::ConvertJavaStringToUTF8;
|
|
using base::android::ConvertUTF16ToJavaString;
|
|
using base::android::ConvertUTF16ToJavaString;
|
|
-@@ -156,7 +159,13 @@ void ValidateFileCallback(
|
|
|
|
- int64_t offline_id,
|
|
|
|
- const GURL& url,
|
|
|
|
- const base::FilePath& file_path,
|
|
|
|
-+ SimpleFactoryKey* key,
|
|
|
|
- bool is_trusted) {
|
|
|
|
-+ // in always incognito, never trust input file (show file name in url)
|
|
|
|
-+ ProfileKey* profile_key = ProfileKey::FromSimpleFactoryKey(key);
|
|
|
|
-+ if(profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled))
|
|
|
|
-+ is_trusted = false;
|
|
|
|
-+
|
|
|
|
- // If trusted, the launch url will be the http/https url of the offline
|
|
|
|
- // page. If the file path is content URI, directly open it. Otherwise, the
|
|
|
|
- // launch url will be the file URL pointing to the archive file of the offline
|
|
|
|
-@@ -787,7 +796,7 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
|
|
|
|
|
|
+@@ -785,9 +788,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
|
|
|
|
+ }
|
|
|
|
+
|
|
if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) {
|
|
if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) {
|
|
|
|
++ bool is_trusted = true;
|
|
|
|
++ // in always incognito, never trust input file (show file name in url)
|
|
|
|
++ ProfileKey* profile_key = ProfileKey::FromSimpleFactoryKey(key_);
|
|
|
|
++ if(profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled))
|
|
|
|
++ is_trusted = false;
|
|
|
|
++
|
|
ValidateFileCallback(launch_location, j_callback_obj,
|
|
ValidateFileCallback(launch_location, j_callback_obj,
|
|
offline_page->offline_id, offline_page->url,
|
|
offline_page->offline_id, offline_page->url,
|
|
- offline_page->file_path, true /* is_trusted*/);
|
|
- offline_page->file_path, true /* is_trusted*/);
|
|
-+ offline_page->file_path, key_, true /* is_trusted*/);
|
|
|
|
|
|
++ offline_page->file_path, is_trusted);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
-@@ -797,7 +806,7 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
|
|
|
|
- offline_page->file_size, offline_page->digest),
|
|
|
|
- base::BindOnce(&ValidateFileCallback, launch_location, j_callback_obj,
|
|
|
|
- offline_page->offline_id, offline_page->url,
|
|
|
|
-- offline_page->file_path));
|
|
|
|
-+ offline_page->file_path, key_));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- void OfflinePageBridge::GetSizeAndComputeDigestDone(
|
|
|
|
diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
|
|
diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
|
|
--- a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
|
|
--- a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
|
|
+++ b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
|
|
+++ b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
|
|
@@ -1361,15 +1425,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
|
|
|
|
|
|
namespace offline_pages {
|
|
namespace offline_pages {
|
|
|
|
|
|
-@@ -46,6 +49,7 @@ OfflinePageModel* OfflinePageModelFactory::GetForKey(SimpleFactoryKey* key) {
|
|
|
|
- OfflinePageModel* OfflinePageModelFactory::GetForBrowserContext(
|
|
|
|
- content::BrowserContext* browser_context) {
|
|
|
|
- Profile* profile = Profile::FromBrowserContext(browser_context);
|
|
|
|
-+ profile = profile->GetOriginalProfile();
|
|
|
|
- return GetForKey(profile->GetProfileKey());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-@@ -54,13 +58,15 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
|
|
|
|
|
|
+@@ -54,13 +57,15 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
|
|
scoped_refptr<base::SequencedTaskRunner> background_task_runner =
|
|
scoped_refptr<base::SequencedTaskRunner> background_task_runner =
|
|
base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()});
|
|
base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()});
|
|
|
|
|
|
@@ -1387,7 +1443,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
|
|
// If base::PathService::Get returns false, the temporary_archives_dir will be
|
|
// If base::PathService::Get returns false, the temporary_archives_dir will be
|
|
// empty, and no temporary pages will be saved during this chrome lifecycle.
|
|
// empty, and no temporary pages will be saved during this chrome lifecycle.
|
|
base::FilePath temporary_archives_dir;
|
|
base::FilePath temporary_archives_dir;
|
|
-@@ -69,7 +75,6 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
|
|
|
|
|
|
+@@ -69,7 +74,6 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
|
|
temporary_archives_dir.Append(chrome::kOfflinePageArchivesDirname);
|
|
temporary_archives_dir.Append(chrome::kOfflinePageArchivesDirname);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1395,7 +1451,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
|
|
auto archive_manager = std::make_unique<DownloadArchiveManager>(
|
|
auto archive_manager = std::make_unique<DownloadArchiveManager>(
|
|
temporary_archives_dir, persistent_archives_dir,
|
|
temporary_archives_dir, persistent_archives_dir,
|
|
DownloadPrefs::GetDefaultDownloadDirectory(), background_task_runner,
|
|
DownloadPrefs::GetDefaultDownloadDirectory(), background_task_runner,
|
|
-@@ -87,4 +92,14 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
|
|
|
|
|
|
+@@ -87,4 +91,14 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
|
|
return model;
|
|
return model;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1443,7 +1499,20 @@ diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc
|
|
// Depends on OfflinePageModelFactory in SimpleDependencyManager.
|
|
// Depends on OfflinePageModelFactory in SimpleDependencyManager.
|
|
}
|
|
}
|
|
|
|
|
|
-@@ -111,4 +118,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
|
|
|
|
|
|
+@@ -79,6 +86,12 @@ RequestCoordinator* RequestCoordinatorFactory::GetForBrowserContext(
|
|
|
|
+
|
|
|
|
+ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
|
|
|
|
+ content::BrowserContext* context) const {
|
|
|
|
++ if (context->IsOffTheRecord() &&
|
|
|
|
++ Profile::FromBrowserContext(context)->GetOriginalProfile()
|
|
|
|
++ ->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled) == false) {
|
|
|
|
++ // do not track history in incognito mode if preference is disabled
|
|
|
|
++ return nullptr;
|
|
|
|
++ }
|
|
|
|
+ std::unique_ptr<OfflinerPolicy> policy(new OfflinerPolicy());
|
|
|
|
+ std::unique_ptr<Offliner> offliner;
|
|
|
|
+ OfflinePageModel* model =
|
|
|
|
+@@ -111,4 +124,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
|
|
return request_coordinator;
|
|
return request_coordinator;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1551,7 +1620,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome
|
|
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
|
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
|
--- a/chrome/browser/prefs/browser_prefs.cc
|
|
--- a/chrome/browser/prefs/browser_prefs.cc
|
|
+++ b/chrome/browser/prefs/browser_prefs.cc
|
|
+++ b/chrome/browser/prefs/browser_prefs.cc
|
|
-@@ -226,6 +226,7 @@
|
|
|
|
|
|
+@@ -229,6 +229,7 @@
|
|
#include "components/feed/core/shared_prefs/pref_names.h"
|
|
#include "components/feed/core/shared_prefs/pref_names.h"
|
|
|
|
|
|
#if BUILDFLAG(IS_ANDROID)
|
|
#if BUILDFLAG(IS_ANDROID)
|
|
@@ -1559,7 +1628,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
|
|
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
|
|
#include "chrome/browser/android/explore_sites/history_statistics_reporter.h"
|
|
#include "chrome/browser/android/explore_sites/history_statistics_reporter.h"
|
|
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
|
|
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
|
|
-@@ -1416,6 +1417,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
|
|
|
|
|
+@@ -1390,6 +1391,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
|
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
|
|
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
|
|
variations::VariationsService::RegisterProfilePrefs(registry);
|
|
variations::VariationsService::RegisterProfilePrefs(registry);
|
|
video_tutorials::RegisterPrefs(registry);
|
|
video_tutorials::RegisterPrefs(registry);
|
|
@@ -1567,9 +1636,9 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|
+ registry->RegisterBooleanPref(prefs::kAlwaysIncognitoEnabled,
|
|
+ registry->RegisterBooleanPref(prefs::kAlwaysIncognitoEnabled,
|
|
+ /*default_value=*/false);
|
|
+ /*default_value=*/false);
|
|
+ HistoryTabHelper::RegisterProfilePrefs(registry);
|
|
+ HistoryTabHelper::RegisterProfilePrefs(registry);
|
|
- #else // BUILDFLAG(IS_ANDROID)
|
|
|
|
- autofill_assistant::AutofillAssistant::RegisterProfilePrefs(registry);
|
|
|
|
|
|
+ #else // BUILDFLAG(IS_ANDROID)
|
|
AppShortcutManager::RegisterProfilePrefs(registry);
|
|
AppShortcutManager::RegisterProfilePrefs(registry);
|
|
|
|
+ browser_sync::ForeignSessionHandler::RegisterProfilePrefs(registry);
|
|
diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn
|
|
diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn
|
|
--- a/chrome/browser/ui/android/native_page/BUILD.gn
|
|
--- a/chrome/browser/ui/android/native_page/BUILD.gn
|
|
+++ b/chrome/browser/ui/android/native_page/BUILD.gn
|
|
+++ b/chrome/browser/ui/android/native_page/BUILD.gn
|
|
@@ -1671,6 +1740,44 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|
<message name="IDS_CLEAR_SEARCH_HISTORY_LINK" desc="Text informing the user that they can clear search history and other data using MyActivity.">
|
|
<message name="IDS_CLEAR_SEARCH_HISTORY_LINK" desc="Text informing the user that they can clear search history and other data using MyActivity.">
|
|
<ph name="BEGIN_LINK1"><link1></ph>Search history<ph name="END_LINK1"></link1></ph> and <ph name="BEGIN_LINK2"><link2></ph>other forms of activity<ph name="END_LINK2"></link2></ph> may be saved in your Google Account when you’re signed in. You can delete them anytime.
|
|
<ph name="BEGIN_LINK1"><link1></ph>Search history<ph name="END_LINK1"></link1></ph> and <ph name="BEGIN_LINK2"><link2></ph>other forms of activity<ph name="END_LINK2"></link2></ph> may be saved in your Google Account when you’re signed in. You can delete them anytime.
|
|
</message>
|
|
</message>
|
|
|
|
+diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
|
|
|
|
+--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
|
|
|
|
++++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
|
|
|
|
+@@ -178,6 +178,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
|
|
|
|
+ protected GURL mVisibleGurl = GURL.emptyGURL();
|
|
|
|
+ protected String mFormattedFullUrl;
|
|
|
|
+ protected String mUrlForDisplay;
|
|
|
|
++ private boolean mIsAlwaysIncognito;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Default constructor for this class.
|
|
|
|
+@@ -192,7 +193,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
|
|
|
|
+ public LocationBarModel(Context context, NewTabPageDelegate newTabPageDelegate,
|
|
|
|
+ @NonNull UrlFormatter urlFormatter, @NonNull ProfileProvider profileProvider,
|
|
|
|
+ @NonNull OfflineStatus offlineStatus,
|
|
|
|
+- @NonNull SearchEngineLogoUtils searchEngineLogoUtils) {
|
|
|
|
++ @NonNull SearchEngineLogoUtils searchEngineLogoUtils,
|
|
|
|
++ boolean isAlwaysIncognito) {
|
|
|
|
+ mContext = context;
|
|
|
|
+ mNtpDelegate = newTabPageDelegate;
|
|
|
|
+ mUrlFormatter = urlFormatter;
|
|
|
|
+@@ -200,6 +202,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
|
|
|
|
+ mOfflineStatus = offlineStatus;
|
|
|
|
+ mPrimaryColor = ChromeColors.getDefaultThemeColor(context, false);
|
|
|
|
+ mSearchEngineLogoUtils = searchEngineLogoUtils;
|
|
|
|
++ mIsAlwaysIncognito = isAlwaysIncognito;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+@@ -446,7 +449,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } finally {
|
|
|
|
+- if (!mOptimizationsEnabled) {
|
|
|
|
++ if (!mOptimizationsEnabled || mIsAlwaysIncognito) {
|
|
|
|
+ autocompleteSchemeClassifier.destroy();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn
|
|
diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn
|
|
--- a/chrome/browser/ui/messages/android/BUILD.gn
|
|
--- a/chrome/browser/ui/messages/android/BUILD.gn
|
|
+++ b/chrome/browser/ui/messages/android/BUILD.gn
|
|
+++ b/chrome/browser/ui/messages/android/BUILD.gn
|
|
@@ -1717,7 +1824,7 @@ new file mode 100644
|
|
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
|
|
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
|
|
--- a/chrome/common/pref_names.cc
|
|
--- a/chrome/common/pref_names.cc
|
|
+++ b/chrome/common/pref_names.cc
|
|
+++ b/chrome/common/pref_names.cc
|
|
-@@ -3437,6 +3437,12 @@ const char kShowCaretBrowsingDialog[] =
|
|
|
|
|
|
+@@ -3458,6 +3458,12 @@ const char kShowCaretBrowsingDialog[] =
|
|
const char kLacrosLaunchSwitch[] = "lacros_launch_switch";
|
|
const char kLacrosLaunchSwitch[] = "lacros_launch_switch";
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -1733,7 +1840,7 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
|
|
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
|
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
|
--- a/chrome/common/pref_names.h
|
|
--- a/chrome/common/pref_names.h
|
|
+++ b/chrome/common/pref_names.h
|
|
+++ b/chrome/common/pref_names.h
|
|
-@@ -1214,6 +1214,8 @@ extern const char kDiscountConsentShowInterestIn[];
|
|
|
|
|
|
+@@ -1219,6 +1219,8 @@ extern const char kDiscountConsentShowInterestIn[];
|
|
|
|
|
|
#if BUILDFLAG(IS_ANDROID)
|
|
#if BUILDFLAG(IS_ANDROID)
|
|
extern const char kWebXRImmersiveArEnabled[];
|
|
extern const char kWebXRImmersiveArEnabled[];
|
|
@@ -1742,7 +1849,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#if !BUILDFLAG(IS_ANDROID)
|
|
#if !BUILDFLAG(IS_ANDROID)
|
|
-@@ -1251,6 +1253,10 @@ extern const char kPrivacyGuideViewed[];
|
|
|
|
|
|
+@@ -1256,6 +1258,10 @@ extern const char kPrivacyGuideViewed[];
|
|
|
|
|
|
extern const char kCorsNonWildcardRequestHeadersSupport[];
|
|
extern const char kCorsNonWildcardRequestHeadersSupport[];
|
|
|
|
|
|
@@ -1756,7 +1863,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
|
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc
|
|
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc
|
|
--- a/components/content_settings/core/browser/content_settings_pref_provider.cc
|
|
--- a/components/content_settings/core/browser/content_settings_pref_provider.cc
|
|
+++ b/components/content_settings/core/browser/content_settings_pref_provider.cc
|
|
+++ b/components/content_settings/core/browser/content_settings_pref_provider.cc
|
|
-@@ -119,10 +119,12 @@ void PrefProvider::RegisterProfilePrefs(
|
|
|
|
|
|
+@@ -122,10 +122,12 @@ void PrefProvider::RegisterProfilePrefs(
|
|
|
|
|
|
PrefProvider::PrefProvider(PrefService* prefs,
|
|
PrefProvider::PrefProvider(PrefService* prefs,
|
|
bool off_the_record,
|
|
bool off_the_record,
|
|
@@ -1769,7 +1876,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
|
|
store_last_modified_(store_last_modified),
|
|
store_last_modified_(store_last_modified),
|
|
clock_(base::DefaultClock::GetInstance()) {
|
|
clock_(base::DefaultClock::GetInstance()) {
|
|
TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider");
|
|
TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider");
|
|
-@@ -156,7 +158,9 @@ PrefProvider::PrefProvider(PrefService* prefs,
|
|
|
|
|
|
+@@ -159,7 +161,9 @@ PrefProvider::PrefProvider(PrefService* prefs,
|
|
content_settings_prefs_.insert(std::make_pair(
|
|
content_settings_prefs_.insert(std::make_pair(
|
|
info->type(), std::make_unique<ContentSettingsPref>(
|
|
info->type(), std::make_unique<ContentSettingsPref>(
|
|
info->type(), prefs_, &pref_change_registrar_,
|
|
info->type(), prefs_, &pref_change_registrar_,
|
|
@@ -1850,9 +1957,9 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
|
|
diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc
|
|
diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc
|
|
--- a/components/offline_pages/core/offline_page_feature.cc
|
|
--- a/components/offline_pages/core/offline_page_feature.cc
|
|
+++ b/components/offline_pages/core/offline_page_feature.cc
|
|
+++ b/components/offline_pages/core/offline_page_feature.cc
|
|
-@@ -44,6 +44,9 @@ const base::Feature kOfflineIndicatorFeature{"OfflineIndicator",
|
|
|
|
- const base::Feature kOfflinePagesNetworkStateLikelyUnknown{
|
|
|
|
- "OfflinePagesNetworkStateLikelyUnknown", base::FEATURE_DISABLED_BY_DEFAULT};
|
|
|
|
|
|
+@@ -52,6 +52,9 @@ BASE_FEATURE(kOfflinePagesNetworkStateLikelyUnknown,
|
|
|
|
+ "OfflinePagesNetworkStateLikelyUnknown",
|
|
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
|
|
|
|
|
+const base::Feature kOfflinePagesAutoSaveFeature{
|
|
+const base::Feature kOfflinePagesAutoSaveFeature{
|
|
+ "OfflinePagesAutoSaveEnabled", base::FEATURE_DISABLED_BY_DEFAULT};
|
|
+ "OfflinePagesAutoSaveEnabled", base::FEATURE_DISABLED_BY_DEFAULT};
|
|
@@ -1863,10 +1970,10 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/
|
|
diff --git a/components/offline_pages/core/offline_page_feature.h b/components/offline_pages/core/offline_page_feature.h
|
|
diff --git a/components/offline_pages/core/offline_page_feature.h b/components/offline_pages/core/offline_page_feature.h
|
|
--- a/components/offline_pages/core/offline_page_feature.h
|
|
--- a/components/offline_pages/core/offline_page_feature.h
|
|
+++ b/components/offline_pages/core/offline_page_feature.h
|
|
+++ b/components/offline_pages/core/offline_page_feature.h
|
|
-@@ -21,6 +21,7 @@ extern const base::Feature kOfflinePagesDescriptiveFailStatusFeature;
|
|
|
|
- extern const base::Feature kOfflineIndicatorFeature;
|
|
|
|
- extern const base::Feature kOnTheFlyMhtmlHashComputationFeature;
|
|
|
|
- extern const base::Feature kOfflinePagesNetworkStateLikelyUnknown;
|
|
|
|
|
|
+@@ -21,6 +21,7 @@ BASE_DECLARE_FEATURE(kOfflinePagesDescriptiveFailStatusFeature);
|
|
|
|
+ BASE_DECLARE_FEATURE(kOfflineIndicatorFeature);
|
|
|
|
+ BASE_DECLARE_FEATURE(kOnTheFlyMhtmlHashComputationFeature);
|
|
|
|
+ BASE_DECLARE_FEATURE(kOfflinePagesNetworkStateLikelyUnknown);
|
|
+extern const base::Feature kOfflinePagesAutoSaveFeature;
|
|
+extern const base::Feature kOfflinePagesAutoSaveFeature;
|
|
|
|
|
|
// The parameter name used to find the experiment tag for prefetching offline
|
|
// The parameter name used to find the experiment tag for prefetching offline
|
|
@@ -1885,7 +1992,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon
|
|
diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h
|
|
diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h
|
|
--- a/components/omnibox/browser/autocomplete_provider_client.h
|
|
--- a/components/omnibox/browser/autocomplete_provider_client.h
|
|
+++ b/components/omnibox/browser/autocomplete_provider_client.h
|
|
+++ b/components/omnibox/browser/autocomplete_provider_client.h
|
|
-@@ -125,6 +125,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
|
|
|
|
|
|
+@@ -128,6 +128,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
|
|
virtual signin::IdentityManager* GetIdentityManager() const = 0;
|
|
virtual signin::IdentityManager* GetIdentityManager() const = 0;
|
|
|
|
|
|
virtual bool IsOffTheRecord() const = 0;
|
|
virtual bool IsOffTheRecord() const = 0;
|
|
@@ -1896,10 +2003,10 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone
|
|
diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc
|
|
diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc
|
|
--- a/components/omnibox/browser/base_search_provider.cc
|
|
--- a/components/omnibox/browser/base_search_provider.cc
|
|
+++ b/components/omnibox/browser/base_search_provider.cc
|
|
+++ b/components/omnibox/browser/base_search_provider.cc
|
|
-@@ -272,7 +272,7 @@ bool BaseSearchProvider::CanSendRequest(
|
|
|
|
|
|
+@@ -273,7 +273,7 @@ bool BaseSearchProvider::CanSendZeroSuggestRequest(
|
|
}
|
|
}
|
|
|
|
|
|
- // Don't run if in incognito mode.
|
|
|
|
|
|
+ // Don't make a suggest request if in incognito mode.
|
|
- if (client->IsOffTheRecord()) {
|
|
- if (client->IsOffTheRecord()) {
|
|
+ if (client->IsOffTheRecord() && client->IsAlwaysIncognitoEnabled() == false) {
|
|
+ if (client->IsOffTheRecord() && client->IsAlwaysIncognitoEnabled() == false) {
|
|
return false;
|
|
return false;
|
|
@@ -1908,7 +2015,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn
|
|
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
|
|
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
|
|
--- a/components/omnibox/browser/search_provider.cc
|
|
--- a/components/omnibox/browser/search_provider.cc
|
|
+++ b/components/omnibox/browser/search_provider.cc
|
|
+++ b/components/omnibox/browser/search_provider.cc
|
|
-@@ -836,7 +836,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
|
|
|
|
|
|
+@@ -832,7 +832,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
|
|
// keyword input to a keyword suggest server, if any.)
|
|
// keyword input to a keyword suggest server, if any.)
|
|
const TemplateURL* default_url = providers_.GetDefaultProviderURL();
|
|
const TemplateURL* default_url = providers_.GetDefaultProviderURL();
|
|
const TemplateURL* keyword_url = providers_.GetKeywordProviderURL();
|
|
const TemplateURL* keyword_url = providers_.GetKeywordProviderURL();
|