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

Side by Side Diff: third_party/WebKit/Source/web/ContextMenuClientImpl.cpp

Issue 2865953002: Move more users of WebLocalFrameImpl to WebLocalFrameBase. (Closed)
Patch Set: Convert DedicatedWorkerMessagingProxyProviderImpl to use WebLocalFrameBase. Created 3 years, 7 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 /* 1 /*
2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 26 matching lines...) Expand all
37 #include "core/css/CSSStyleDeclaration.h" 37 #include "core/css/CSSStyleDeclaration.h"
38 #include "core/dom/Document.h" 38 #include "core/dom/Document.h"
39 #include "core/editing/Editor.h" 39 #include "core/editing/Editor.h"
40 #include "core/editing/markers/DocumentMarkerController.h" 40 #include "core/editing/markers/DocumentMarkerController.h"
41 #include "core/editing/spellcheck/SpellChecker.h" 41 #include "core/editing/spellcheck/SpellChecker.h"
42 #include "core/exported/WebDataSourceImpl.h" 42 #include "core/exported/WebDataSourceImpl.h"
43 #include "core/exported/WebViewBase.h" 43 #include "core/exported/WebViewBase.h"
44 #include "core/frame/FrameView.h" 44 #include "core/frame/FrameView.h"
45 #include "core/frame/Settings.h" 45 #include "core/frame/Settings.h"
46 #include "core/frame/VisualViewport.h" 46 #include "core/frame/VisualViewport.h"
47 #include "core/frame/WebLocalFrameBase.h"
47 #include "core/html/HTMLAnchorElement.h" 48 #include "core/html/HTMLAnchorElement.h"
48 #include "core/html/HTMLFormElement.h" 49 #include "core/html/HTMLFormElement.h"
49 #include "core/html/HTMLImageElement.h" 50 #include "core/html/HTMLImageElement.h"
50 #include "core/html/HTMLInputElement.h" 51 #include "core/html/HTMLInputElement.h"
51 #include "core/html/HTMLMediaElement.h" 52 #include "core/html/HTMLMediaElement.h"
52 #include "core/html/HTMLPlugInElement.h" 53 #include "core/html/HTMLPlugInElement.h"
53 #include "core/input/EventHandler.h" 54 #include "core/input/EventHandler.h"
54 #include "core/layout/HitTestResult.h" 55 #include "core/layout/HitTestResult.h"
55 #include "core/layout/LayoutPart.h" 56 #include "core/layout/LayoutPart.h"
56 #include "core/loader/DocumentLoader.h" 57 #include "core/loader/DocumentLoader.h"
(...skipping 14 matching lines...) Expand all
71 #include "public/platform/WebVector.h" 72 #include "public/platform/WebVector.h"
72 #include "public/web/WebContextMenuData.h" 73 #include "public/web/WebContextMenuData.h"
73 #include "public/web/WebFormElement.h" 74 #include "public/web/WebFormElement.h"
74 #include "public/web/WebFrameClient.h" 75 #include "public/web/WebFrameClient.h"
75 #include "public/web/WebMenuItemInfo.h" 76 #include "public/web/WebMenuItemInfo.h"
76 #include "public/web/WebPlugin.h" 77 #include "public/web/WebPlugin.h"
77 #include "public/web/WebSearchableFormData.h" 78 #include "public/web/WebSearchableFormData.h"
78 #include "public/web/WebTextCheckClient.h" 79 #include "public/web/WebTextCheckClient.h"
79 #include "public/web/WebViewClient.h" 80 #include "public/web/WebViewClient.h"
80 #include "web/ContextMenuAllowedScope.h" 81 #include "web/ContextMenuAllowedScope.h"
81 #include "web/WebLocalFrameImpl.h"
82 #include "web/WebPluginContainerImpl.h" 82 #include "web/WebPluginContainerImpl.h"
83 83
84 namespace blink { 84 namespace blink {
85 85
86 // Figure out the URL of a page or subframe. Returns |page_type| as the type, 86 // Figure out the URL of a page or subframe. Returns |page_type| as the type,
87 // which indicates page or subframe, or ContextNodeType::kNone if the URL could 87 // which indicates page or subframe, or ContextNodeType::kNone if the URL could
88 // not be determined for some reason. 88 // not be determined for some reason.
89 static WebURL UrlFromFrame(LocalFrame* frame) { 89 static WebURL UrlFromFrame(LocalFrame* frame) {
90 if (frame) { 90 if (frame) {
91 DocumentLoader* dl = frame->Loader().GetDocumentLoader(); 91 DocumentLoader* dl = frame->Loader().GetDocumentLoader();
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 // in response to the above input events before popping up the context menu. 182 // in response to the above input events before popping up the context menu.
183 if (!ContextMenuAllowedScope::IsContextMenuAllowed()) 183 if (!ContextMenuAllowedScope::IsContextMenuAllowed())
184 return false; 184 return false;
185 185
186 HitTestResult r = 186 HitTestResult r =
187 web_view_->GetPage()->GetContextMenuController().GetHitTestResult(); 187 web_view_->GetPage()->GetContextMenuController().GetHitTestResult();
188 188
189 r.SetToShadowHostIfInRestrictedShadowRoot(); 189 r.SetToShadowHostIfInRestrictedShadowRoot();
190 190
191 LocalFrame* selected_frame = r.InnerNodeFrame(); 191 LocalFrame* selected_frame = r.InnerNodeFrame();
192 WebLocalFrameImpl* selected_web_frame = 192 WebLocalFrameBase* selected_web_frame =
193 WebLocalFrameImpl::FromFrame(selected_frame); 193 WebLocalFrameBase::FromFrame(selected_frame);
194 194
195 WebContextMenuData data; 195 WebContextMenuData data;
196 data.mouse_position = selected_frame->View()->ContentsToViewport( 196 data.mouse_position = selected_frame->View()->ContentsToViewport(
197 r.RoundedPointInInnerNodeFrame()); 197 r.RoundedPointInInnerNodeFrame());
198 198
199 data.edit_flags = ComputeEditFlags( 199 data.edit_flags = ComputeEditFlags(
200 *selected_frame->GetDocument(), 200 *selected_frame->GetDocument(),
201 ToLocalFrame(web_view_->FocusedCoreFrame())->GetEditor()); 201 ToLocalFrame(web_view_->FocusedCoreFrame())->GetEditor());
202 202
203 // Links, Images, Media tags, and Image/Media-Links take preference over 203 // Links, Images, Media tags, and Image/Media-Links take preference over
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 return true; 413 return true;
414 } 414 }
415 415
416 void ContextMenuClientImpl::ClearContextMenu() { 416 void ContextMenuClientImpl::ClearContextMenu() {
417 HitTestResult r = 417 HitTestResult r =
418 web_view_->GetPage()->GetContextMenuController().GetHitTestResult(); 418 web_view_->GetPage()->GetContextMenuController().GetHitTestResult();
419 LocalFrame* selected_frame = r.InnerNodeFrame(); 419 LocalFrame* selected_frame = r.InnerNodeFrame();
420 if (!selected_frame) 420 if (!selected_frame)
421 return; 421 return;
422 422
423 WebLocalFrameImpl* selected_web_frame = 423 WebLocalFrameBase* selected_web_frame =
424 WebLocalFrameImpl::FromFrame(selected_frame); 424 WebLocalFrameBase::FromFrame(selected_frame);
425 selected_web_frame->ClearContextMenuNode(); 425 selected_web_frame->ClearContextMenuNode();
426 } 426 }
427 427
428 static void PopulateSubMenuItems(const Vector<ContextMenuItem>& input_menu, 428 static void PopulateSubMenuItems(const Vector<ContextMenuItem>& input_menu,
429 WebVector<WebMenuItemInfo>& sub_menu_items) { 429 WebVector<WebMenuItemInfo>& sub_menu_items) {
430 Vector<WebMenuItemInfo> sub_items; 430 Vector<WebMenuItemInfo> sub_items;
431 for (size_t i = 0; i < input_menu.size(); ++i) { 431 for (size_t i = 0; i < input_menu.size(); ++i) {
432 const ContextMenuItem* input_item = &input_menu.at(i); 432 const ContextMenuItem* input_item = &input_menu.at(i);
433 if (input_item->Action() < kContextMenuItemBaseCustomTag || 433 if (input_item->Action() < kContextMenuItemBaseCustomTag ||
434 input_item->Action() > kContextMenuItemLastCustomTag) 434 input_item->Action() > kContextMenuItemLastCustomTag)
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 sub_menu_items.Swap(output_items); 466 sub_menu_items.Swap(output_items);
467 } 467 }
468 468
469 void ContextMenuClientImpl::PopulateCustomMenuItems( 469 void ContextMenuClientImpl::PopulateCustomMenuItems(
470 const ContextMenu* default_menu, 470 const ContextMenu* default_menu,
471 WebContextMenuData* data) { 471 WebContextMenuData* data) {
472 PopulateSubMenuItems(default_menu->Items(), data->custom_items); 472 PopulateSubMenuItems(default_menu->Items(), data->custom_items);
473 } 473 }
474 474
475 } // namespace blink 475 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698