Commit f460c0a2 authored by Evan Stade's avatar Evan Stade Committed by Commit Bot

Clank: use PrefService instead of PrefServiceBridge in share code.

Bug: 1071603
Change-Id: I03d8549704afe97b13d6b0f421c0110f5a28d3c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2287949
Commit-Queue: Evan Stade <estade@chromium.org>
Reviewed-by: default avatarGayane Petrosyan <gayane@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Auto-Submit: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789327}
parent 62bfe755
...@@ -18,7 +18,6 @@ import org.chromium.base.supplier.Supplier; ...@@ -18,7 +18,6 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.browser.feature_engagement.ScreenshotTabObserver; import org.chromium.chrome.browser.feature_engagement.ScreenshotTabObserver;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.printing.PrintShareActivity; import org.chromium.chrome.browser.printing.PrintShareActivity;
import org.chromium.chrome.browser.printing.TabPrinter; import org.chromium.chrome.browser.printing.TabPrinter;
import org.chromium.chrome.browser.send_tab_to_self.SendTabToSelfShareActivity; import org.chromium.chrome.browser.send_tab_to_self.SendTabToSelfShareActivity;
...@@ -296,7 +295,7 @@ public class ShareDelegateImpl implements ShareDelegate { ...@@ -296,7 +295,7 @@ public class ShareDelegateImpl implements ShareDelegate {
new ShareSheetCoordinator(controller, tabProvider, new ShareSheetCoordinator(controller, tabProvider,
new ShareSheetPropertyModelBuilder(controller, new ShareSheetPropertyModelBuilder(controller,
ContextUtils.getApplicationContext().getPackageManager()), ContextUtils.getApplicationContext().getPackageManager()),
PrefServiceBridge.getInstance(), printCallback); printCallback);
// TODO(crbug/1009124): open custom share sheet. // TODO(crbug/1009124): open custom share sheet.
coordinator.showShareSheet(params, chromeShareExtras, shareStartTime); coordinator.showShareSheet(params, chromeShareExtras, shareStartTime);
} else { } else {
......
...@@ -2,6 +2,7 @@ include_rules = [ ...@@ -2,6 +2,7 @@ include_rules = [
# TODO(crbug/1022172): Remove this dependency when ShareActivity is moved to # TODO(crbug/1022172): Remove this dependency when ShareActivity is moved to
# chrome/browser/share. # chrome/browser/share.
"+chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java", "+chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java",
"+chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java",
"+chrome/android/java/src/org/chromium/chrome/browser/FileProviderHelper.java", "+chrome/android/java/src/org/chromium/chrome/browser/FileProviderHelper.java",
"+chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java", "+chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java",
"+chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java", "+chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java",
......
...@@ -19,7 +19,7 @@ import org.chromium.base.supplier.Supplier; ...@@ -19,7 +19,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.send_tab_to_self.SendTabToSelfShareActivity; import org.chromium.chrome.browser.send_tab_to_self.SendTabToSelfShareActivity;
import org.chromium.chrome.browser.share.ChromeShareExtras; import org.chromium.chrome.browser.share.ChromeShareExtras;
import org.chromium.chrome.browser.share.qrcode.QrCodeCoordinator; import org.chromium.chrome.browser.share.qrcode.QrCodeCoordinator;
...@@ -31,6 +31,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetController.Shee ...@@ -31,6 +31,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetController.Shee
import org.chromium.components.browser_ui.bottomsheet.BottomSheetObserver; import org.chromium.components.browser_ui.bottomsheet.BottomSheetObserver;
import org.chromium.components.browser_ui.bottomsheet.EmptyBottomSheetObserver; import org.chromium.components.browser_ui.bottomsheet.EmptyBottomSheetObserver;
import org.chromium.components.browser_ui.share.ShareParams; import org.chromium.components.browser_ui.share.ShareParams;
import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.widget.Toast; import org.chromium.ui.widget.Toast;
...@@ -49,7 +50,6 @@ class ChromeProvidedSharingOptionsProvider { ...@@ -49,7 +50,6 @@ class ChromeProvidedSharingOptionsProvider {
private final Supplier<Tab> mTabProvider; private final Supplier<Tab> mTabProvider;
private final BottomSheetController mBottomSheetController; private final BottomSheetController mBottomSheetController;
private final ShareSheetBottomSheetContent mBottomSheetContent; private final ShareSheetBottomSheetContent mBottomSheetContent;
private final PrefServiceBridge mPrefServiceBridge;
private final ShareParams mShareParams; private final ShareParams mShareParams;
private final Callback<Tab> mPrintTabCallback; private final Callback<Tab> mPrintTabCallback;
private final long mShareStartTime; private final long mShareStartTime;
...@@ -66,8 +66,6 @@ class ChromeProvidedSharingOptionsProvider { ...@@ -66,8 +66,6 @@ class ChromeProvidedSharingOptionsProvider {
* @param bottomSheetController The {@link BottomSheetController} for the current activity. * @param bottomSheetController The {@link BottomSheetController} for the current activity.
* @param bottomSheetContent The {@link ShareSheetBottomSheetContent} for the current * @param bottomSheetContent The {@link ShareSheetBottomSheetContent} for the current
* activity. * activity.
* @param prefServiceBridge The {@link PrefServiceBridge} singleton. This provides printing
* preferences.
* @param shareParams The {@link ShareParams} for the current share. * @param shareParams The {@link ShareParams} for the current share.
* @param chromeShareExtras The {@link ChromeShareExtras} for the current share. * @param chromeShareExtras The {@link ChromeShareExtras} for the current share.
* @param printTab A {@link Callback} that will print a given Tab. * @param printTab A {@link Callback} that will print a given Tab.
...@@ -77,14 +75,13 @@ class ChromeProvidedSharingOptionsProvider { ...@@ -77,14 +75,13 @@ class ChromeProvidedSharingOptionsProvider {
*/ */
ChromeProvidedSharingOptionsProvider(Activity activity, Supplier<Tab> tabProvider, ChromeProvidedSharingOptionsProvider(Activity activity, Supplier<Tab> tabProvider,
BottomSheetController bottomSheetController, BottomSheetController bottomSheetController,
ShareSheetBottomSheetContent bottomSheetContent, PrefServiceBridge prefServiceBridge, ShareSheetBottomSheetContent bottomSheetContent, ShareParams shareParams,
ShareParams shareParams, ChromeShareExtras chromeShareExtras, Callback<Tab> printTab, ChromeShareExtras chromeShareExtras, Callback<Tab> printTab, long shareStartTime,
long shareStartTime, ChromeOptionShareCallback chromeOptionShareCallback) { ChromeOptionShareCallback chromeOptionShareCallback) {
mActivity = activity; mActivity = activity;
mTabProvider = tabProvider; mTabProvider = tabProvider;
mBottomSheetController = bottomSheetController; mBottomSheetController = bottomSheetController;
mBottomSheetContent = bottomSheetContent; mBottomSheetContent = bottomSheetContent;
mPrefServiceBridge = prefServiceBridge;
mShareParams = shareParams; mShareParams = shareParams;
mPrintTabCallback = printTab; mPrintTabCallback = printTab;
mShareStartTime = shareStartTime; mShareStartTime = shareStartTime;
...@@ -152,7 +149,8 @@ class ChromeProvidedSharingOptionsProvider { ...@@ -152,7 +149,8 @@ class ChromeProvidedSharingOptionsProvider {
if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARE_QRCODE)) { if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARE_QRCODE)) {
mOrderedFirstPartyOptions.add(createQrCodeFirstPartyOption()); mOrderedFirstPartyOptions.add(createQrCodeFirstPartyOption());
} }
if (mPrefServiceBridge.getBoolean(Pref.PRINTING_ENABLED)) { if (UserPrefs.get(Profile.fromWebContents(mTabProvider.get().getWebContents()))
.getBoolean(Pref.PRINTING_ENABLED)) {
mOrderedFirstPartyOptions.add(createPrintingFirstPartyOption()); mOrderedFirstPartyOptions.add(createPrintingFirstPartyOption());
} }
} }
......
...@@ -15,7 +15,6 @@ import org.chromium.base.metrics.RecordHistogram; ...@@ -15,7 +15,6 @@ import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.share.ChromeShareExtras; import org.chromium.chrome.browser.share.ChromeShareExtras;
import org.chromium.chrome.browser.share.ShareHelper; import org.chromium.chrome.browser.share.ShareHelper;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
...@@ -41,7 +40,6 @@ public class ShareSheetCoordinator ...@@ -41,7 +40,6 @@ public class ShareSheetCoordinator
private final BottomSheetController mBottomSheetController; private final BottomSheetController mBottomSheetController;
private final Supplier<Tab> mTabProvider; private final Supplier<Tab> mTabProvider;
private final ShareSheetPropertyModelBuilder mPropertyModelBuilder; private final ShareSheetPropertyModelBuilder mPropertyModelBuilder;
private final PrefServiceBridge mPrefServiceBridge;
private final Callback<Tab> mPrintTabCallback; private final Callback<Tab> mPrintTabCallback;
private long mShareStartTime; private long mShareStartTime;
private boolean mExcludeFirstParty; private boolean mExcludeFirstParty;
...@@ -55,17 +53,13 @@ public class ShareSheetCoordinator ...@@ -55,17 +53,13 @@ public class ShareSheetCoordinator
* @param controller The {@link BottomSheetController} for the current activity. * @param controller The {@link BottomSheetController} for the current activity.
* @param tabProvider Supplier for the current activity tab. * @param tabProvider Supplier for the current activity tab.
* @param modelBuilder The {@link ShareSheetPropertyModelBuilder} for the share sheet. * @param modelBuilder The {@link ShareSheetPropertyModelBuilder} for the share sheet.
* @param prefServiceBridge The {@link PrefServiceBridge} singleton. This provides preferences
* for the Chrome-provided property models.
*/ */
// TODO(crbug/1022172): Should be package-protected once modularization is complete. // TODO(crbug/1022172): Should be package-protected once modularization is complete.
public ShareSheetCoordinator(BottomSheetController controller, Supplier<Tab> tabProvider, public ShareSheetCoordinator(BottomSheetController controller, Supplier<Tab> tabProvider,
ShareSheetPropertyModelBuilder modelBuilder, PrefServiceBridge prefServiceBridge, ShareSheetPropertyModelBuilder modelBuilder, Callback<Tab> printTab) {
Callback<Tab> printTab) {
mBottomSheetController = controller; mBottomSheetController = controller;
mTabProvider = tabProvider; mTabProvider = tabProvider;
mPropertyModelBuilder = modelBuilder; mPropertyModelBuilder = modelBuilder;
mPrefServiceBridge = prefServiceBridge;
mPrintTabCallback = printTab; mPrintTabCallback = printTab;
mBottomSheetObserver = new EmptyBottomSheetObserver() { mBottomSheetObserver = new EmptyBottomSheetObserver() {
@Override @Override
...@@ -138,8 +132,8 @@ public class ShareSheetCoordinator ...@@ -138,8 +132,8 @@ public class ShareSheetCoordinator
} }
ChromeProvidedSharingOptionsProvider chromeProvidedSharingOptionsProvider = ChromeProvidedSharingOptionsProvider chromeProvidedSharingOptionsProvider =
new ChromeProvidedSharingOptionsProvider(activity, mTabProvider, new ChromeProvidedSharingOptionsProvider(activity, mTabProvider,
mBottomSheetController, mBottomSheet, mPrefServiceBridge, shareParams, mBottomSheetController, mBottomSheet, shareParams, chromeShareExtras,
chromeShareExtras, mPrintTabCallback, mShareStartTime, this); mPrintTabCallback, mShareStartTime, this);
return chromeProvidedSharingOptionsProvider.getPropertyModels(contentTypes); return chromeProvidedSharingOptionsProvider.getPropertyModels(contentTypes);
} }
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
package org.chromium.chrome.browser.share.share_sheet; package org.chromium.chrome.browser.share.share_sheet;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.anyObject;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
import android.app.Activity; import android.app.Activity;
...@@ -25,15 +26,21 @@ import org.mockito.Mock; ...@@ -25,15 +26,21 @@ import org.mockito.Mock;
import org.mockito.Mockito; import org.mockito.Mockito;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.chromium.base.test.util.JniMocker;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileJni;
import org.chromium.chrome.browser.share.ChromeShareExtras; import org.chromium.chrome.browser.share.ChromeShareExtras;
import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder.ContentType; import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder.ContentType;
import org.chromium.chrome.browser.tab.MockTab;
import org.chromium.chrome.test.ChromeBrowserTestRule; import org.chromium.chrome.test.ChromeBrowserTestRule;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.util.browser.Features; import org.chromium.chrome.test.util.browser.Features;
import org.chromium.components.browser_ui.share.ShareParams; import org.chromium.components.browser_ui.share.ShareParams;
import org.chromium.components.prefs.PrefService;
import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.components.user_prefs.UserPrefsJni;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.test.util.DummyUiActivity; import org.chromium.ui.test.util.DummyUiActivity;
...@@ -55,8 +62,16 @@ public class ChromeProvidedSharingOptionsProviderTest { ...@@ -55,8 +62,16 @@ public class ChromeProvidedSharingOptionsProviderTest {
@Rule @Rule
public TestRule mFeatureProcessor = new Features.JUnitProcessor(); public TestRule mFeatureProcessor = new Features.JUnitProcessor();
@Rule
public JniMocker mJniMocker = new JniMocker();
@Mock
private Profile.Natives mProfileNatives;
@Mock
private UserPrefs.Natives mUserPrefsNatives;
@Mock @Mock
private PrefServiceBridge mPrefServiceBridge; private PrefService mPrefService;
private static final String URL = "http://www.google.com/"; private static final String URL = "http://www.google.com/";
...@@ -69,6 +84,10 @@ public class ChromeProvidedSharingOptionsProviderTest { ...@@ -69,6 +84,10 @@ public class ChromeProvidedSharingOptionsProviderTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mJniMocker.mock(ProfileJni.TEST_HOOKS, mProfileNatives);
mJniMocker.mock(UserPrefsJni.TEST_HOOKS, mUserPrefsNatives);
Mockito.when(mProfileNatives.fromWebContents(anyObject())).thenReturn(null);
Mockito.when(mUserPrefsNatives.get(anyObject())).thenReturn(mPrefService);
mActivity = mActivityTestRule.getActivity(); mActivity = mActivityTestRule.getActivity();
} }
...@@ -252,12 +271,15 @@ public class ChromeProvidedSharingOptionsProviderTest { ...@@ -252,12 +271,15 @@ public class ChromeProvidedSharingOptionsProviderTest {
} }
private void setUpChromeProvidedSharingOptionsProviderTest(boolean printingEnabled) { private void setUpChromeProvidedSharingOptionsProviderTest(boolean printingEnabled) {
Mockito.when(mPrefServiceBridge.getBoolean(anyString())).thenReturn(printingEnabled); Mockito.when(mPrefService.getBoolean(anyString())).thenReturn(printingEnabled);
mChromeProvidedSharingOptionsProvider = new ChromeProvidedSharingOptionsProvider(mActivity, mChromeProvidedSharingOptionsProvider = new ChromeProvidedSharingOptionsProvider(mActivity,
/*activityTabProvider=*/null, /*bottomSheetController=*/null, /*activityTabProvider=*/
()
-> new MockTab(0, false),
/*bottomSheetController=*/null,
new ShareSheetBottomSheetContent(mActivity, mShareSheetCoordinator), new ShareSheetBottomSheetContent(mActivity, mShareSheetCoordinator),
mPrefServiceBridge, new ShareParams.Builder(null, "", "").build(), new ShareParams.Builder(null, "", "").build(),
new ChromeShareExtras.Builder().build(), new ChromeShareExtras.Builder().build(),
/*TabPrinterDelegate=*/null, /*TabPrinterDelegate=*/null,
/*shareStartTime=*/0, mShareSheetCoordinator); /*shareStartTime=*/0, mShareSheetCoordinator);
......
...@@ -89,7 +89,7 @@ public final class ShareSheetCoordinatorTest { ...@@ -89,7 +89,7 @@ public final class ShareSheetCoordinatorTest {
.thenReturn(thirdPartyPropertyModels); .thenReturn(thirdPartyPropertyModels);
mShareSheetCoordinator = mShareSheetCoordinator =
new ShareSheetCoordinator(mController, null, mPropertyModelBuilder, null, null); new ShareSheetCoordinator(mController, null, mPropertyModelBuilder, null);
} }
@Test @Test
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
package org.chromium.components.user_prefs; package org.chromium.components.user_prefs;
import androidx.annotation.VisibleForTesting;
import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods; import org.chromium.base.annotations.NativeMethods;
import org.chromium.components.embedder_support.browser_context.BrowserContextHandle; import org.chromium.components.embedder_support.browser_context.BrowserContextHandle;
...@@ -20,8 +22,9 @@ public class UserPrefs { ...@@ -20,8 +22,9 @@ public class UserPrefs {
return UserPrefsJni.get().get(browserContextHandle); return UserPrefsJni.get().get(browserContextHandle);
} }
@VisibleForTesting
@NativeMethods @NativeMethods
interface Natives { public interface Natives {
PrefService get(BrowserContextHandle browserContextHandle); PrefService get(BrowserContextHandle browserContextHandle);
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment