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

Side by Side Diff: content/renderer/render_frame_impl.h

Issue 1600953003: Move find-in-page code from RenderView to RenderFrame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed final comments by nasko@, creis@. Created 4 years, 11 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 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 #ifndef CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 5 #ifndef CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
11 #include <string> 11 #include <string>
12 #include <vector> 12 #include <vector>
13 13
14 #include "base/files/file_path.h" 14 #include "base/files/file_path.h"
15 #include "base/gtest_prod_util.h" 15 #include "base/gtest_prod_util.h"
16 #include "base/id_map.h" 16 #include "base/id_map.h"
17 #include "base/macros.h" 17 #include "base/macros.h"
18 #include "base/memory/linked_ptr.h" 18 #include "base/memory/linked_ptr.h"
19 #include "base/memory/scoped_ptr.h" 19 #include "base/memory/scoped_ptr.h"
20 #include "base/memory/weak_ptr.h" 20 #include "base/memory/weak_ptr.h"
21 #include "base/observer_list.h" 21 #include "base/observer_list.h"
22 #include "base/process/process_handle.h" 22 #include "base/process/process_handle.h"
23 #include "build/build_config.h" 23 #include "build/build_config.h"
24 #include "content/common/accessibility_mode_enums.h" 24 #include "content/common/accessibility_mode_enums.h"
25 #include "content/common/frame_message_enums.h" 25 #include "content/common/frame_message_enums.h"
26 #include "content/common/mojo/service_registry_impl.h" 26 #include "content/common/mojo/service_registry_impl.h"
27 #include "content/public/common/console_message_level.h" 27 #include "content/public/common/console_message_level.h"
28 #include "content/public/common/javascript_message_type.h" 28 #include "content/public/common/javascript_message_type.h"
29 #include "content/public/common/referrer.h" 29 #include "content/public/common/referrer.h"
30 #include "content/public/common/stop_find_action.h"
30 #include "content/public/renderer/render_frame.h" 31 #include "content/public/renderer/render_frame.h"
31 #include "content/renderer/render_frame_proxy.h" 32 #include "content/renderer/render_frame_proxy.h"
32 #include "content/renderer/renderer_webcookiejar_impl.h" 33 #include "content/renderer/renderer_webcookiejar_impl.h"
33 #include "ipc/ipc_message.h" 34 #include "ipc/ipc_message.h"
34 #include "ipc/ipc_platform_file.h" 35 #include "ipc/ipc_platform_file.h"
35 #include "media/blink/webmediaplayer_delegate.h" 36 #include "media/blink/webmediaplayer_delegate.h"
36 #include "media/blink/webmediaplayer_params.h" 37 #include "media/blink/webmediaplayer_params.h"
37 #include "mojo/shell/public/interfaces/service_provider.mojom.h" 38 #include "mojo/shell/public/interfaces/service_provider.mojom.h"
38 #include "mojo/shell/public/interfaces/shell.mojom.h" 39 #include "mojo/shell/public/interfaces/shell.mojom.h"
39 #include "third_party/WebKit/public/platform/WebFocusType.h" 40 #include "third_party/WebKit/public/platform/WebFocusType.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 class WebMouseEvent; 74 class WebMouseEvent;
74 class WebContentDecryptionModule; 75 class WebContentDecryptionModule;
75 class WebMediaPlayer; 76 class WebMediaPlayer;
76 class WebPresentationClient; 77 class WebPresentationClient;
77 class WebPushClient; 78 class WebPushClient;
78 class WebSecurityOrigin; 79 class WebSecurityOrigin;
79 class WebWakeLockClient; 80 class WebWakeLockClient;
80 struct WebCompositionUnderline; 81 struct WebCompositionUnderline;
81 struct WebContextMenuData; 82 struct WebContextMenuData;
82 struct WebCursorInfo; 83 struct WebCursorInfo;
84 struct WebFindOptions;
83 struct WebScreenInfo; 85 struct WebScreenInfo;
84 } 86 }
85 87
86 namespace gfx { 88 namespace gfx {
87 class Point; 89 class Point;
88 class Range; 90 class Range;
89 class Rect; 91 class Rect;
90 } 92 }
91 93
92 namespace media { 94 namespace media {
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 // The focused node changed to |node|. If focus was lost from this frame, 283 // The focused node changed to |node|. If focus was lost from this frame,
282 // |node| will be null. 284 // |node| will be null.
283 void FocusedNodeChanged(const blink::WebNode& node); 285 void FocusedNodeChanged(const blink::WebNode& node);
284 286
285 // TODO(dmazzoni): the only reason this is here is to plumb it through to 287 // TODO(dmazzoni): the only reason this is here is to plumb it through to
286 // RendererAccessibility. It should use the RenderFrameObserver method, once 288 // RendererAccessibility. It should use the RenderFrameObserver method, once
287 // blink has a separate accessibility tree per frame. 289 // blink has a separate accessibility tree per frame.
288 void FocusedNodeChangedForAccessibility(const blink::WebNode& node); 290 void FocusedNodeChangedForAccessibility(const blink::WebNode& node);
289 291
290 #if defined(ENABLE_PLUGINS) 292 #if defined(ENABLE_PLUGINS)
293 // Get/set the plugin which will be used to handle document find requests.
294 void set_plugin_find_handler(PepperPluginInstanceImpl* plugin) {
295 plugin_find_handler_ = plugin;
296 }
297 PepperPluginInstanceImpl* plugin_find_handler() {
298 return plugin_find_handler_;
299 }
300
291 // Notification that a PPAPI plugin has been created. 301 // Notification that a PPAPI plugin has been created.
292 void PepperPluginCreated(RendererPpapiHost* host); 302 void PepperPluginCreated(RendererPpapiHost* host);
293 303
294 // Notifies that |instance| has changed the cursor. 304 // Notifies that |instance| has changed the cursor.
295 // This will update the cursor appearance if it is currently over the plugin 305 // This will update the cursor appearance if it is currently over the plugin
296 // instance. 306 // instance.
297 void PepperDidChangeCursor(PepperPluginInstanceImpl* instance, 307 void PepperDidChangeCursor(PepperPluginInstanceImpl* instance,
298 const blink::WebCursorInfo& cursor); 308 const blink::WebCursorInfo& cursor);
299 309
300 // Notifies that |instance| has received a mouse event. 310 // Notifies that |instance| has received a mouse event.
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 void OnSnapshotAccessibilityTree(int callback_id); 776 void OnSnapshotAccessibilityTree(int callback_id);
767 void OnUpdateOpener(int opener_routing_id); 777 void OnUpdateOpener(int opener_routing_id);
768 void OnDidUpdateSandboxFlags(blink::WebSandboxFlags flags); 778 void OnDidUpdateSandboxFlags(blink::WebSandboxFlags flags);
769 void OnSetFrameOwnerProperties( 779 void OnSetFrameOwnerProperties(
770 const blink::WebFrameOwnerProperties& frame_owner_properties); 780 const blink::WebFrameOwnerProperties& frame_owner_properties);
771 void OnAdvanceFocus(blink::WebFocusType type, int32_t source_routing_id); 781 void OnAdvanceFocus(blink::WebFocusType type, int32_t source_routing_id);
772 void OnSetFocusedFrame(); 782 void OnSetFocusedFrame();
773 void OnTextTrackSettingsChanged( 783 void OnTextTrackSettingsChanged(
774 const FrameMsg_TextTrackSettings_Params& params); 784 const FrameMsg_TextTrackSettings_Params& params);
775 void OnPostMessageEvent(const FrameMsg_PostMessage_Params& params); 785 void OnPostMessageEvent(const FrameMsg_PostMessage_Params& params);
776 #if defined(OS_ANDROID)
777 void OnSelectPopupMenuItems(bool canceled,
778 const std::vector<int>& selected_indices);
779 #elif defined(OS_MACOSX)
780 void OnSelectPopupMenuItem(int selected_index);
781 void OnCopyToFindPboard();
782 #endif
783
784 void OnCommitNavigation(const ResourceResponseHead& response, 786 void OnCommitNavigation(const ResourceResponseHead& response,
785 const GURL& stream_url, 787 const GURL& stream_url,
786 const CommonNavigationParams& common_params, 788 const CommonNavigationParams& common_params,
787 const RequestNavigationParams& request_params); 789 const RequestNavigationParams& request_params);
788 void OnFailedNavigation(const CommonNavigationParams& common_params, 790 void OnFailedNavigation(const CommonNavigationParams& common_params,
789 const RequestNavigationParams& request_params, 791 const RequestNavigationParams& request_params,
790 bool has_stale_copy_in_cache, 792 bool has_stale_copy_in_cache,
791 int error_code); 793 int error_code);
792 void OnGetSavableResourceLinks(); 794 void OnGetSavableResourceLinks();
793 void OnGetSerializedHtmlWithLocalLinks( 795 void OnGetSerializedHtmlWithLocalLinks(
794 const std::map<GURL, base::FilePath>& url_to_local_path); 796 const std::map<GURL, base::FilePath>& url_to_local_path);
795 void OnSerializeAsMHTML(const FrameMsg_SerializeAsMHTML_Params& params); 797 void OnSerializeAsMHTML(const FrameMsg_SerializeAsMHTML_Params& params);
798 void OnFind(int request_id,
799 const base::string16& search_text,
800 const blink::WebFindOptions& options);
801 void OnStopFinding(StopFindAction action);
802 #if defined(OS_ANDROID)
803 void OnActivateNearestFindResult(int request_id, float x, float y);
804 void OnFindMatchRects(int current_version);
805 void OnSelectPopupMenuItems(bool canceled,
806 const std::vector<int>& selected_indices);
807 #elif defined(OS_MACOSX)
808 void OnSelectPopupMenuItem(int selected_index);
809 void OnCopyToFindPboard();
810 #endif
796 811
797 // Requests that the browser process navigates to |url|. If 812 // Requests that the browser process navigates to |url|. If
798 // |is_history_navigation_in_new_child| is true, the browser process should 813 // |is_history_navigation_in_new_child| is true, the browser process should
799 // look for a matching FrameNavigationEntry in the last committed entry to use 814 // look for a matching FrameNavigationEntry in the last committed entry to use
800 // instead of |url|. 815 // instead of |url|.
801 void OpenURL(const GURL& url, 816 void OpenURL(const GURL& url,
802 const Referrer& referrer, 817 const Referrer& referrer,
803 blink::WebNavigationPolicy policy, 818 blink::WebNavigationPolicy policy,
804 bool should_replace_current_entry, 819 bool should_replace_current_entry,
805 bool is_history_navigation_in_new_child); 820 bool is_history_navigation_in_new_child);
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
937 void RegisterMojoServices(); 952 void RegisterMojoServices();
938 953
939 // Connects to a Mojo application and returns a proxy to its exposed 954 // Connects to a Mojo application and returns a proxy to its exposed
940 // ServiceProvider. 955 // ServiceProvider.
941 mojo::ServiceProviderPtr ConnectToApplication(const GURL& url); 956 mojo::ServiceProviderPtr ConnectToApplication(const GURL& url);
942 957
943 // Returns the media delegate for WebMediaPlayer usage. If 958 // Returns the media delegate for WebMediaPlayer usage. If
944 // |media_player_delegate_| is NULL, one is created. 959 // |media_player_delegate_| is NULL, one is created.
945 media::RendererWebMediaPlayerDelegate* GetWebMediaPlayerDelegate(); 960 media::RendererWebMediaPlayerDelegate* GetWebMediaPlayerDelegate();
946 961
962 // Called to get the WebPlugin to handle find requests in the document.
963 // Returns nullptr if there is no such WebPlugin.
964 blink::WebPlugin* GetWebPluginForFind();
965
966 // Sends a reply to the current find operation handling if it was a
967 // synchronous find request.
968 void SendFindReply(int request_id,
969 int match_count,
970 int ordinal,
971 const blink::WebRect& selection_rect,
972 bool final_status_update);
973
947 // Stores the WebLocalFrame we are associated with. This is null from the 974 // Stores the WebLocalFrame we are associated with. This is null from the
948 // constructor until BindToWebFrame is called, and it is null after 975 // constructor until BindToWebFrame is called, and it is null after
949 // frameDetached is called until destruction (which is asynchronous in the 976 // frameDetached is called until destruction (which is asynchronous in the
950 // case of the main frame, but not subframes). 977 // case of the main frame, but not subframes).
951 blink::WebLocalFrame* frame_; 978 blink::WebLocalFrame* frame_;
952 979
953 // Boolean value indicating whether this RenderFrameImpl object is for the 980 // Boolean value indicating whether this RenderFrameImpl object is for the
954 // main frame or not. It remains accurate during destruction, even when 981 // main frame or not. It remains accurate during destruction, even when
955 // |frame_| has been invalidated. 982 // |frame_| has been invalidated.
956 bool is_main_frame_; 983 bool is_main_frame_;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 // Stores the current history item for this frame, so that updates to it can 1029 // Stores the current history item for this frame, so that updates to it can
1003 // be reported to the browser process via SendUpdateState. 1030 // be reported to the browser process via SendUpdateState.
1004 blink::WebHistoryItem current_history_item_; 1031 blink::WebHistoryItem current_history_item_;
1005 1032
1006 #if defined(ENABLE_PLUGINS) 1033 #if defined(ENABLE_PLUGINS)
1007 // Current text input composition text. Empty if no composition is in 1034 // Current text input composition text. Empty if no composition is in
1008 // progress. 1035 // progress.
1009 base::string16 pepper_composition_text_; 1036 base::string16 pepper_composition_text_;
1010 1037
1011 PluginPowerSaverHelper* plugin_power_saver_helper_; 1038 PluginPowerSaverHelper* plugin_power_saver_helper_;
1039
1040 PepperPluginInstanceImpl* plugin_find_handler_;
1012 #endif 1041 #endif
1013 1042
1014 RendererWebCookieJarImpl cookie_jar_; 1043 RendererWebCookieJarImpl cookie_jar_;
1015 1044
1016 // All the registered observers. 1045 // All the registered observers.
1017 base::ObserverList<RenderFrameObserver> observers_; 1046 base::ObserverList<RenderFrameObserver> observers_;
1018 1047
1019 scoped_refptr<ChildFrameCompositingHelper> compositing_helper_; 1048 scoped_refptr<ChildFrameCompositingHelper> compositing_helper_;
1020 1049
1021 // The node that the context menu was pressed over. 1050 // The node that the context menu was pressed over.
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1166 #endif 1195 #endif
1167 1196
1168 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; 1197 base::WeakPtrFactory<RenderFrameImpl> weak_factory_;
1169 1198
1170 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); 1199 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl);
1171 }; 1200 };
1172 1201
1173 } // namespace content 1202 } // namespace content
1174 1203
1175 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 1204 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
OLDNEW
« no previous file with comments | « content/renderer/pepper/pepper_plugin_instance_impl.cc ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698