Commit 2236c8e0 authored by ltian's avatar ltian Committed by Commit bot

"Open in new chrome tab" and "open in incognito tab" missing for images in context menu CCT.

This is a regression bug because the recent fix checked the wrong field.
If the url of a image is empty and blank, both two options should be
hidden. However, for images and video, the urls are stored in the srcUrl
instead of linkUrl. Also if the url is emtpy, the "open in [default
browser]" option should also be hidden.

BUG=715381

Review-Url: https://codereview.chromium.org/2842303002
Cr-Commit-Position: refs/heads/master@{#467571}
parent 9aca3b81
...@@ -396,13 +396,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { ...@@ -396,13 +396,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB);
} }
if (TextUtils.isEmpty(params.getLinkUrl()) if (isEmptyUrl(params.getLinkUrl())) {
|| params.getLinkUrl().equals(ContentUrlConstants.ABOUT_BLANK_DISPLAY_URL)) {
disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW);
disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB);
disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB);
disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOGNITO_TAB);
disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB);
} }
if (MailTo.isMailTo(params.getLinkUrl())) { if (MailTo.isMailTo(params.getLinkUrl())) {
...@@ -484,7 +481,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { ...@@ -484,7 +481,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
if (mMode == CUSTOM_TAB_MODE) { if (mMode == CUSTOM_TAB_MODE) {
try { try {
URI uri = new URI(getUrl(params)); URI uri = new URI(getUrl(params));
if (UrlUtilities.isInternalScheme(uri)) { if (UrlUtilities.isInternalScheme(uri) || isEmptyUrl(getUrl(params))) {
disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB); disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB);
disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOGNITO_TAB); disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOGNITO_TAB);
disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID); disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID);
...@@ -606,6 +603,18 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { ...@@ -606,6 +603,18 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
return true; return true;
} }
/**
* Checks whether a url is empty or blank.
* @param url The url need to be checked.
* @return True if the url is empty or "about:blank".
*/
private boolean isEmptyUrl(String url) {
if (TextUtils.isEmpty(url) || url.equals(ContentUrlConstants.ABOUT_BLANK_DISPLAY_URL)) {
return true;
}
return false;
}
/** /**
* The valid url of a link is stored in the linkUrl of ContextMenuParams while the * The valid url of a link is stored in the linkUrl of ContextMenuParams while the
* valid url of a image or video is stored in the srcUrl of ContextMenuParams. * valid url of a image or video is stored in the srcUrl of ContextMenuParams.
......
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