Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(822)

Side by Side Diff: components/renderer_context_menu/render_view_context_menu_base.cc

Issue 931073002: Fix for Incomplete context menu shown in PDF. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes as per review comments. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "components/renderer_context_menu/render_view_context_menu_base.h" 5 #include "components/renderer_context_menu/render_view_context_menu_base.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "content/public/browser/render_frame_host.h" 12 #include "content/public/browser/render_frame_host.h"
13 #include "content/public/browser/render_process_host.h" 13 #include "content/public/browser/render_process_host.h"
14 #include "content/public/browser/render_view_host.h" 14 #include "content/public/browser/render_view_host.h"
15 #include "content/public/browser/render_widget_host_view.h" 15 #include "content/public/browser/render_widget_host_view.h"
16 #include "content/public/browser/web_contents.h" 16 #include "content/public/browser/web_contents.h"
17 #include "content/public/common/menu_item.h" 17 #include "content/public/common/menu_item.h"
18 #if defined(ENABLE_EXTENSIONS)
19 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t.h"
20 #endif
18 #include "third_party/WebKit/public/web/WebContextMenuData.h" 21 #include "third_party/WebKit/public/web/WebContextMenuData.h"
19 22
20 using blink::WebContextMenuData; 23 using blink::WebContextMenuData;
21 using blink::WebString; 24 using blink::WebString;
22 using blink::WebURL; 25 using blink::WebURL;
23 using content::BrowserContext; 26 using content::BrowserContext;
24 using content::OpenURLParams; 27 using content::OpenURLParams;
25 using content::RenderFrameHost; 28 using content::RenderFrameHost;
26 using content::RenderViewHost; 29 using content::RenderViewHost;
27 using content::WebContents; 30 using content::WebContents;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 submenu); 122 submenu);
120 break; 123 break;
121 } 124 }
122 default: 125 default:
123 NOTREACHED(); 126 NOTREACHED();
124 break; 127 break;
125 } 128 }
126 } 129 }
127 } 130 }
128 131
132 content::WebContents* GetWebContentsToUse(content::WebContents* web_contents) {
133 // If we're viewing in a MimeHandlerViewGuest, use its embedder WebContents.
134 #if defined(ENABLE_EXTENSIONS)
135 auto guest_view =
136 extensions::MimeHandlerViewGuest::FromWebContents(web_contents);
137 if (guest_view)
138 return guest_view->embedder_web_contents();
139 #endif
140 return web_contents;
141 }
142
129 } // namespace 143 } // namespace
130 144
131 // static 145 // static
132 void RenderViewContextMenuBase::SetContentCustomCommandIdRange( 146 void RenderViewContextMenuBase::SetContentCustomCommandIdRange(
133 int first, int last) { 147 int first, int last) {
134 // The range is inclusive. 148 // The range is inclusive.
135 content_context_custom_first = first; 149 content_context_custom_first = first;
136 content_context_custom_last = last; 150 content_context_custom_last = last;
137 } 151 }
138 152
139 // static 153 // static
140 const size_t RenderViewContextMenuBase::kMaxSelectionTextLength = 50; 154 const size_t RenderViewContextMenuBase::kMaxSelectionTextLength = 50;
141 155
142 // static 156 // static
143 int RenderViewContextMenuBase::ConvertToContentCustomCommandId(int id) { 157 int RenderViewContextMenuBase::ConvertToContentCustomCommandId(int id) {
144 return content_context_custom_first + id; 158 return content_context_custom_first + id;
145 } 159 }
146 160
147 // static 161 // static
148 bool RenderViewContextMenuBase::IsContentCustomCommandId(int id) { 162 bool RenderViewContextMenuBase::IsContentCustomCommandId(int id) {
149 return id >= content_context_custom_first && 163 return id >= content_context_custom_first &&
150 id <= content_context_custom_last; 164 id <= content_context_custom_last;
151 } 165 }
152 166
153 RenderViewContextMenuBase::RenderViewContextMenuBase( 167 RenderViewContextMenuBase::RenderViewContextMenuBase(
154 content::RenderFrameHost* render_frame_host, 168 content::RenderFrameHost* render_frame_host,
155 const content::ContextMenuParams& params) 169 const content::ContextMenuParams& params)
156 : params_(params), 170 : params_(params),
157 source_web_contents_(WebContents::FromRenderFrameHost(render_frame_host)), 171 source_web_contents_(WebContents::FromRenderFrameHost(render_frame_host)),
172 embedded_web_contents_(GetWebContentsToUse(source_web_contents_)),
158 browser_context_(source_web_contents_->GetBrowserContext()), 173 browser_context_(source_web_contents_->GetBrowserContext()),
159 menu_model_(this), 174 menu_model_(this),
160 render_frame_id_(render_frame_host->GetRoutingID()), 175 render_frame_id_(render_frame_host->GetRoutingID()),
161 command_executed_(false), 176 command_executed_(false),
162 render_process_id_(render_frame_host->GetProcess()->GetID()) { 177 render_process_id_(render_frame_host->GetProcess()->GetID()) {
163 } 178 }
164 179
165 RenderViewContextMenuBase::~RenderViewContextMenuBase() { 180 RenderViewContextMenuBase::~RenderViewContextMenuBase() {
166 } 181 }
167 182
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 } 395 }
381 396
382 bool RenderViewContextMenuBase::IsCustomItemChecked(int id) const { 397 bool RenderViewContextMenuBase::IsCustomItemChecked(int id) const {
383 return IsCustomItemCheckedInternal(params_.custom_items, id); 398 return IsCustomItemCheckedInternal(params_.custom_items, id);
384 } 399 }
385 400
386 bool RenderViewContextMenuBase::IsCustomItemEnabled(int id) const { 401 bool RenderViewContextMenuBase::IsCustomItemEnabled(int id) const {
387 return IsCustomItemEnabledInternal(params_.custom_items, id); 402 return IsCustomItemEnabledInternal(params_.custom_items, id);
388 } 403 }
389 404
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698