Commit 938cfeac authored by Yue Zhang's avatar Yue Zhang Committed by Commit Bot

Suppress SharingHub for TabGroup sharing

Since SharingHub doesn't really support TabGroup sharing now, this CL
makes TabGroup sharing use Android share sheet regardless of whether
SharingHub feature is enabled or not.

Bug: 1114963, 1085078
Change-Id: I310b8403dbf236369c30e4eff511c358ab136247
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2353405
Commit-Queue: Yue Zhang <yuezhanggg@chromium.org>
Reviewed-by: default avatarTanya Gupta <tgupta@chromium.org>
Reviewed-by: default avatarWei-Yin Chen (陳威尹) <wychen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#798778}
parent 6699c452
......@@ -251,8 +251,13 @@ public class TabGridDialogMediator {
public void onCancel() {}
})
.build();
mShareDelegateSupplier.get().share(
shareParams, new ChromeShareExtras.Builder().setSaveLastUsed(true).build());
// TODO(crbug.com/1085078): Sharing hub is suppressed for tab group sharing.
// Re-enable it when tab group sharing is supported by sharing hub.
ChromeShareExtras chromeShareExtras = new ChromeShareExtras.Builder()
.setSharingTabGroup(true)
.setSaveLastUsed(true)
.build();
mShareDelegateSupplier.get().share(shareParams, chromeShareExtras);
}
};
......
......@@ -405,6 +405,28 @@ public class TabGridDialogTest {
triggerShareGroupAndVerify(cta);
}
@Test
@MediumTest
// clang-format off
@Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID,
ChromeFeatureList.CHROME_SHARING_HUB})
public void testDialogToolbarMenuShareGroup_WithSharingHub() {
// clang-format on
final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
createTabs(cta, false, 2);
enterTabSwitcher(cta);
verifyTabSwitcherCardCount(cta, 2);
// Create a tab group.
mergeAllNormalTabsToAGroup(cta);
verifyTabSwitcherCardCount(cta, 1);
openDialogFromTabSwitcherAndVerify(cta, 2, null);
openDialogToolbarMenuAndVerify(cta);
// We should still show Android share sheet even with sharing hub enabled.
triggerShareGroupAndVerify(cta);
}
@Test
@MediumTest
@Features.EnableFeatures(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID)
......
......@@ -290,7 +290,9 @@ public class ShareDelegateImpl implements ShareDelegate {
Callback<Tab> printCallback, long shareStartTime, boolean sharingHubEnabled) {
if (chromeShareExtras.shareDirectly()) {
ShareHelper.shareWithLastUsedComponent(params);
} else if (sharingHubEnabled) {
} else if (sharingHubEnabled && !chromeShareExtras.sharingTabGroup()) {
// TODO(crbug.com/1085078): Sharing hub is suppressed for tab group sharing.
// Re-enable it when tab group sharing is supported by sharing hub.
ShareSheetCoordinator coordinator =
new ShareSheetCoordinator(controller, tabProvider,
new ShareSheetPropertyModelBuilder(controller,
......
......@@ -39,13 +39,18 @@ public class ChromeShareExtras {
/** Indicates if text property is highlighted by user. */
private final boolean mIsUserHighlightedText;
/** Whether it is sharing a tab group. */
private final boolean mSharingTabGroup;
private ChromeShareExtras(boolean saveLastUsed, boolean shareDirectly,
boolean isUrlOfVisiblePage, String imageSrcUrl, boolean isUserHighlightedText) {
boolean isUrlOfVisiblePage, String imageSrcUrl, boolean isUserHighlightedText,
boolean sharingTabGroup) {
mSaveLastUsed = saveLastUsed;
mShareDirectly = shareDirectly;
mIsUrlOfVisiblePage = isUrlOfVisiblePage;
mImageSrcUrl = imageSrcUrl;
mIsUserHighlightedText = isUserHighlightedText;
mSharingTabGroup = sharingTabGroup;
}
/**
......@@ -84,6 +89,13 @@ public class ChromeShareExtras {
return mIsUserHighlightedText;
}
/**
* @return Whether it is sharing a tab group.
*/
public boolean sharingTabGroup() {
return mSharingTabGroup;
}
/**
* The builder for {@link ChromeShareExtras} objects.
*/
......@@ -93,6 +105,7 @@ public class ChromeShareExtras {
private boolean mIsUrlOfVisiblePage;
private String mImageSrcUrl;
private boolean mIsUserHighlightedText;
private boolean mSharingTabGroup;
/**
* Sets whether to save the chosen activity for future direct sharing.
......@@ -135,9 +148,17 @@ public class ChromeShareExtras {
return this;
}
/**
* Sets whether it is sharing a tab group.
*/
public Builder setSharingTabGroup(boolean sharingTabGroup) {
mSharingTabGroup = sharingTabGroup;
return this;
}
public ChromeShareExtras build() {
return new ChromeShareExtras(mSaveLastUsed, mShareDirectly, mIsUrlOfVisiblePage,
mImageSrcUrl, mIsUserHighlightedText);
mImageSrcUrl, mIsUserHighlightedText, mSharingTabGroup);
}
}
}
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