| 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 (isEmptyUrl(params.getLinkUrl())) { |
| 400 || params.getLinkUrl().equals(ContentUrlConstants.ABOUT_BLANK_DI
SPLAY_URL)) { | |
| 401 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); | 400 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); |
| 402 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); | 401 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); |
| 403 disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); | 402 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 } | 403 } |
| 407 | 404 |
| 408 if (MailTo.isMailTo(params.getLinkUrl())) { | 405 if (MailTo.isMailTo(params.getLinkUrl())) { |
| 409 disabledOptions.add(ContextMenuItem.COPY_LINK_TEXT); | 406 disabledOptions.add(ContextMenuItem.COPY_LINK_TEXT); |
| 410 disabledOptions.add(ContextMenuItem.COPY_LINK_ADDRESS); | 407 disabledOptions.add(ContextMenuItem.COPY_LINK_ADDRESS); |
| 411 if (!mDelegate.supportsSendEmailMessage()) { | 408 if (!mDelegate.supportsSendEmailMessage()) { |
| 412 disabledOptions.add(ContextMenuItem.SEND_MESSAGE); | 409 disabledOptions.add(ContextMenuItem.SEND_MESSAGE); |
| 413 } | 410 } |
| 414 if (TextUtils.isEmpty(MailTo.parse(params.getLinkUrl()).getTo()) | 411 if (TextUtils.isEmpty(MailTo.parse(params.getLinkUrl()).getTo()) |
| 415 || !mDelegate.supportsAddToContacts()) { | 412 || !mDelegate.supportsAddToContacts()) { |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); | 474 disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW); |
| 478 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); | 475 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB); |
| 479 disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); | 476 disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB); |
| 480 disabledOptions.add(ContextMenuItem.SEARCH_BY_IMAGE); | 477 disabledOptions.add(ContextMenuItem.SEARCH_BY_IMAGE); |
| 481 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME); | 478 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME); |
| 482 } | 479 } |
| 483 | 480 |
| 484 if (mMode == CUSTOM_TAB_MODE) { | 481 if (mMode == CUSTOM_TAB_MODE) { |
| 485 try { | 482 try { |
| 486 URI uri = new URI(getUrl(params)); | 483 URI uri = new URI(getUrl(params)); |
| 487 if (UrlUtilities.isInternalScheme(uri)) { | 484 if (UrlUtilities.isInternalScheme(uri) || isEmptyUrl(getUrl(para
ms))) { |
| 488 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB); | 485 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB); |
| 489 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOGNITO
_TAB); | 486 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOGNITO
_TAB); |
| 490 disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID); | 487 disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID); |
| 491 } else if (ChromePreferenceManager.getInstance().getCachedChrome
DefaultBrowser()) { | 488 } else if (ChromePreferenceManager.getInstance().getCachedChrome
DefaultBrowser()) { |
| 492 disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID); | 489 disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID); |
| 493 if (!mDelegate.isIncognitoSupported()) { | 490 if (!mDelegate.isIncognitoSupported()) { |
| 494 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOG
NITO_TAB); | 491 disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOG
NITO_TAB); |
| 495 } | 492 } |
| 496 } else { | 493 } else { |
| 497 disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB); | 494 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)
; | 597 ContextMenuUma.record(params, ContextMenuUma.ACTION_OPEN_IN_BROWSER)
; |
| 601 mDelegate.onOpenInDefaultBrowser(getUrl(params)); | 598 mDelegate.onOpenInDefaultBrowser(getUrl(params)); |
| 602 } else { | 599 } else { |
| 603 assert false; | 600 assert false; |
| 604 } | 601 } |
| 605 | 602 |
| 606 return true; | 603 return true; |
| 607 } | 604 } |
| 608 | 605 |
| 609 /** | 606 /** |
| 607 * Checks whether a url is empty or blank. |
| 608 * @param url The url need to be checked. |
| 609 * @return True if the url is empty or "about:blank". |
| 610 */ |
| 611 private boolean isEmptyUrl(String url) { |
| 612 if (TextUtils.isEmpty(url) || url.equals(ContentUrlConstants.ABOUT_BLANK
_DISPLAY_URL)) { |
| 613 return true; |
| 614 } |
| 615 return false; |
| 616 } |
| 617 |
| 618 /** |
| 610 * The valid url of a link is stored in the linkUrl of ContextMenuParams whi
le the | 619 * 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. | 620 * 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. | 621 * @param params The parameters used to decide the type of the content. |
| 613 */ | 622 */ |
| 614 private String getUrl(ContextMenuParams params) { | 623 private String getUrl(ContextMenuParams params) { |
| 615 if (params.isImage() || params.isVideo()) { | 624 if (params.isImage() || params.isVideo()) { |
| 616 return params.getSrcUrl(); | 625 return params.getSrcUrl(); |
| 617 } else { | 626 } else { |
| 618 return params.getLinkUrl(); | 627 return params.getLinkUrl(); |
| 619 } | 628 } |
| 620 } | 629 } |
| 621 } | 630 } |
| OLD | NEW |