OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.contextmenu; | 5 package org.chromium.chrome.browser.contextmenu; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.net.MailTo; | 8 import android.net.MailTo; |
9 import android.support.annotation.IntDef; | 9 import android.support.annotation.IntDef; |
10 import android.support.annotation.StringRes; | 10 import android.support.annotation.StringRes; |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
389 if (params.getLinkText().trim().isEmpty() || params.isImage()) { | 389 if (params.getLinkText().trim().isEmpty() || params.isImage()) { |
390 disabledOptions.add(ContextMenuItem.COPY_LINK_TEXT); | 390 disabledOptions.add(ContextMenuItem.COPY_LINK_TEXT); |
391 } | 391 } |
392 | 392 |
393 if (params.isAnchor() && !UrlUtilities.isAcceptedScheme(params.getLinkUr l())) { | 393 if (params.isAnchor() && !UrlUtilities.isAcceptedScheme(params.getLinkUr l())) { |
394 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); | 394 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); |
395 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); | 395 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); |
396 disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); | 396 disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); |
397 } | 397 } |
398 | 398 |
399 if (TextUtils.isEmpty(params.getLinkUrl()) | 399 if (TextUtils.isEmpty(params.getLinkUrl()) |
Ted C
2017/04/27 00:08:07
should we use isEmptyUrl here?
ltian
2017/04/27 00:37:23
Done.
| |
400 || params.getLinkUrl().equals(ContentUrlConstants.ABOUT_BLANK_DI SPLAY_URL)) { | 400 || params.getLinkUrl().equals(ContentUrlConstants.ABOUT_BLANK_DI SPLAY_URL)) { |
401 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); | 401 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); |
402 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); | 402 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); |
403 disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); | 403 disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); |
404 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOGNITO_TAB); | |
405 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB); | |
406 } | 404 } |
407 | 405 |
408 if (MailTo.isMailTo(params.getLinkUrl())) { | 406 if (MailTo.isMailTo(params.getLinkUrl())) { |
409 disabledOptions.add(ContextMenuItem.COPY_LINK_TEXT); | 407 disabledOptions.add(ContextMenuItem.COPY_LINK_TEXT); |
410 disabledOptions.add(ContextMenuItem.COPY_LINK_ADDRESS); | 408 disabledOptions.add(ContextMenuItem.COPY_LINK_ADDRESS); |
411 if (!mDelegate.supportsSendEmailMessage()) { | 409 if (!mDelegate.supportsSendEmailMessage()) { |
412 disabledOptions.add(ContextMenuItem.SEND_MESSAGE); | 410 disabledOptions.add(ContextMenuItem.SEND_MESSAGE); |
413 } | 411 } |
414 if (TextUtils.isEmpty(MailTo.parse(params.getLinkUrl()).getTo()) | 412 if (TextUtils.isEmpty(MailTo.parse(params.getLinkUrl()).getTo()) |
415 || !mDelegate.supportsAddToContacts()) { | 413 || !mDelegate.supportsAddToContacts()) { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
477 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); | 475 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); |
478 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); | 476 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); |
479 disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); | 477 disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); |
480 disabledOptions.add(ContextMenuItem.SEARCH_BY_IMAGE); | 478 disabledOptions.add(ContextMenuItem.SEARCH_BY_IMAGE); |
481 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME); | 479 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME); |
482 } | 480 } |
483 | 481 |
484 if (mMode == CUSTOM_TAB_MODE) { | 482 if (mMode == CUSTOM_TAB_MODE) { |
485 try { | 483 try { |
486 URI uri = new URI(getUrl(params)); | 484 URI uri = new URI(getUrl(params)); |
487 if (UrlUtilities.isInternalScheme(uri)) { | 485 if (UrlUtilities.isInternalScheme(uri) || isEmptyUrl(getUrl(para ms))) { |
488 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB); | 486 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB); |
489 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOGNITO _TAB); | 487 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOGNITO _TAB); |
490 disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID); | 488 disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID); |
491 } else if (ChromePreferenceManager.getInstance().getCachedChrome DefaultBrowser()) { | 489 } else if (ChromePreferenceManager.getInstance().getCachedChrome DefaultBrowser()) { |
492 disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID); | 490 disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID); |
493 if (!mDelegate.isIncognitoSupported()) { | 491 if (!mDelegate.isIncognitoSupported()) { |
494 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOG NITO_TAB); | 492 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOG NITO_TAB); |
495 } | 493 } |
496 } else { | 494 } else { |
497 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB); | 495 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB); |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
600 ContextMenuUma.record(params, ContextMenuUma.ACTION_OPEN_IN_BROWSER) ; | 598 ContextMenuUma.record(params, ContextMenuUma.ACTION_OPEN_IN_BROWSER) ; |
601 mDelegate.onOpenInDefaultBrowser(getUrl(params)); | 599 mDelegate.onOpenInDefaultBrowser(getUrl(params)); |
602 } else { | 600 } else { |
603 assert false; | 601 assert false; |
604 } | 602 } |
605 | 603 |
606 return true; | 604 return true; |
607 } | 605 } |
608 | 606 |
609 /** | 607 /** |
608 * Checks whether a url is empty or blank. | |
609 * @param url The url need to be checked. | |
610 * @return True if the url is empty or "about:blank". | |
611 */ | |
612 private boolean isEmptyUrl(String url) { | |
613 if (TextUtils.isEmpty(url) || url.equals(ContentUrlConstants.ABOUT_BLANK _DISPLAY_URL)) { | |
614 return true; | |
615 } | |
616 return false; | |
617 } | |
618 | |
619 /** | |
610 * The valid url of a link is stored in the linkUrl of ContextMenuParams whi le the | 620 * The valid url of a link is stored in the linkUrl of ContextMenuParams whi le the |
611 * valid url of a image or video is stored in the srcUrl of ContextMenuParam s. | 621 * valid url of a image or video is stored in the srcUrl of ContextMenuParam s. |
612 * @param params The parameters used to decide the type of the content. | 622 * @param params The parameters used to decide the type of the content. |
613 */ | 623 */ |
614 private String getUrl(ContextMenuParams params) { | 624 private String getUrl(ContextMenuParams params) { |
615 if (params.isImage() || params.isVideo()) { | 625 if (params.isImage() || params.isVideo()) { |
616 return params.getSrcUrl(); | 626 return params.getSrcUrl(); |
617 } else { | 627 } else { |
618 return params.getLinkUrl(); | 628 return params.getLinkUrl(); |
619 } | 629 } |
620 } | 630 } |
621 } | 631 } |
OLD | NEW |