Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / android / java / src / org / chromium / chrome / browser / contextmenu / ChromeContextMenuPopulator.java
index c79c323..550d54d 100644 (file)
@@ -20,6 +20,7 @@ import org.chromium.chrome.browser.search_engines.TemplateUrlService;
 public class ChromeContextMenuPopulator implements ContextMenuPopulator {
     private final ChromeContextMenuItemDelegate mDelegate;
     private MenuInflater mMenuInflater;
+    private static final String BLANK_URL = "about:blank";
 
     /**
      * Builds a {@link ChromeContextMenuPopulator}.
@@ -38,7 +39,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
 
     @Override
     public void buildContextMenu(ContextMenu menu, Context context, ContextMenuParams params) {
-        if (!TextUtils.isEmpty(params.getLinkUrl())) menu.setHeaderTitle(params.getLinkUrl());
+        if (!TextUtils.isEmpty(params.getLinkUrl()) && !params.getLinkUrl().equals(BLANK_URL))
+                menu.setHeaderTitle(params.getLinkUrl());
 
         if (mMenuInflater == null) mMenuInflater = new MenuInflater(context);
 
@@ -72,6 +74,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
                 menu.findItem(R.id.contextmenu_open_original_image_in_new_tab).setVisible(false);
             }
 
+            // Avoid showing open image option for same image which is already opened.
+            if (mDelegate.getPageUrl().equals(params.getSrcUrl())) {
+                menu.findItem(R.id.contextmenu_open_image).setVisible(false);
+            }
             final TemplateUrlService templateUrlServiceInstance = TemplateUrlService.getInstance();
             final boolean isSearchByImageAvailable =
                     UrlUtilities.isDownloadableScheme(params.getSrcUrl()) &&
@@ -116,6 +122,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
             mDelegate.onSearchByImageInNewTab();
         } else if (itemId == R.id.contextmenu_copy_image) {
             mDelegate.onSaveImageToClipboard(params.getSrcUrl());
+        } else if (itemId == R.id.contextmenu_copy_image_url) {
+            mDelegate.onSaveToClipboard(params.getSrcUrl(), true);
         } else {
             assert false;
         }