| Index: chrome/browser/renderer_context_menu/render_view_context_menu.cc
 | 
| diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
 | 
| index 2d6a8525dc8db413d538853b7750a0566493380d..3b8d311585124e0049b6ea59cb33164eaa6a70af 100644
 | 
| --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
 | 
| +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
 | 
| @@ -1086,11 +1086,7 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const {
 | 
|        if (!local_state->GetBoolean(prefs::kAllowFileSelectionDialogs))
 | 
|          return false;
 | 
|  
 | 
| -      if (params_.media_type == WebContextMenuData::MediaTypeCanvas)
 | 
| -        return true;
 | 
| -
 | 
| -      return params_.src_url.is_valid() &&
 | 
| -          ProfileIOData::IsHandledProtocol(params_.src_url.scheme());
 | 
| +      return params_.has_image_contents;
 | 
|      }
 | 
|  
 | 
|      // The images shown in the most visited thumbnails can't be opened or
 | 
| @@ -1345,11 +1341,14 @@ void RenderViewContextMenu::ExecuteCommand(int id, int event_flags) {
 | 
|  
 | 
|      case IDC_CONTENT_CONTEXT_SAVEAVAS:
 | 
|      case IDC_CONTENT_CONTEXT_SAVEIMAGEAS: {
 | 
| -      if (params_.media_type == WebContextMenuData::MediaTypeCanvas) {
 | 
| +      bool is_large_data_url = params_.has_image_contents &&
 | 
| +          params_.src_url.is_empty();
 | 
| +      if (params_.media_type == WebContextMenuData::MediaTypeCanvas ||
 | 
| +          (params_.media_type == WebContextMenuData::MediaTypeImage &&
 | 
| +              is_large_data_url)) {
 | 
|          source_web_contents_->GetRenderViewHost()->SaveImageAt(
 | 
|            params_.x, params_.y);
 | 
|        } else {
 | 
| -        // TODO(zino): We can use SaveImageAt() like a case of canvas.
 | 
|          RecordDownloadSource(DOWNLOAD_INITIATED_BY_CONTEXT_MENU);
 | 
|          const GURL& url = params_.src_url;
 | 
|          content::Referrer referrer = CreateSaveAsReferrer(url, params_);
 | 
| 
 |