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

Side by Side Diff: content/browser/web_contents/web_contents_impl.h

Issue 1851793002: Implement a shell of FindRequestManager, and hook it up to WebContentsImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ 5 #ifndef CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_
6 #define CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ 6 #define CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <functional> 10 #include <functional>
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 #include "ui/gfx/geometry/rect_f.h" 49 #include "ui/gfx/geometry/rect_f.h"
50 #include "ui/gfx/geometry/size.h" 50 #include "ui/gfx/geometry/size.h"
51 51
52 struct ViewHostMsg_DateTimeDialogValue_Params; 52 struct ViewHostMsg_DateTimeDialogValue_Params;
53 53
54 namespace content { 54 namespace content {
55 class BrowserPluginEmbedder; 55 class BrowserPluginEmbedder;
56 class BrowserPluginGuest; 56 class BrowserPluginGuest;
57 class DateTimeChooserAndroid; 57 class DateTimeChooserAndroid;
58 class DownloadItem; 58 class DownloadItem;
59 class FindRequestManager;
59 class GeolocationServiceContext; 60 class GeolocationServiceContext;
60 class InterstitialPageImpl; 61 class InterstitialPageImpl;
61 class JavaScriptDialogManager; 62 class JavaScriptDialogManager;
62 class LoaderIOThreadNotifier; 63 class LoaderIOThreadNotifier;
63 class ManifestManagerHost; 64 class ManifestManagerHost;
64 class MediaWebContentsObserver; 65 class MediaWebContentsObserver;
65 class PluginContentOriginWhitelist; 66 class PluginContentOriginWhitelist;
66 class PowerSaveBlocker; 67 class PowerSaveBlocker;
67 class RenderViewHost; 68 class RenderViewHost;
68 class RenderViewHostDelegateView; 69 class RenderViewHostDelegateView;
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 void ExitFullscreen(bool will_cause_resize) override; 378 void ExitFullscreen(bool will_cause_resize) override;
378 void ResumeLoadingCreatedWebContents() override; 379 void ResumeLoadingCreatedWebContents() override;
379 void OnMediaSessionStateChanged(); 380 void OnMediaSessionStateChanged();
380 void ResumeMediaSession() override; 381 void ResumeMediaSession() override;
381 void SuspendMediaSession() override; 382 void SuspendMediaSession() override;
382 void StopMediaSession() override; 383 void StopMediaSession() override;
383 384
384 #if defined(OS_ANDROID) 385 #if defined(OS_ANDROID)
385 base::android::ScopedJavaLocalRef<jobject> GetJavaWebContents() override; 386 base::android::ScopedJavaLocalRef<jobject> GetJavaWebContents() override;
386 virtual WebContentsAndroid* GetWebContentsAndroid(); 387 virtual WebContentsAndroid* GetWebContentsAndroid();
388 void ActivateNearestFindResult(float x, float y) override;
389 void RequestFindMatchRects(int current_version) override;
387 #elif defined(OS_MACOSX) 390 #elif defined(OS_MACOSX)
388 void SetAllowOtherViews(bool allow) override; 391 void SetAllowOtherViews(bool allow) override;
389 bool GetAllowOtherViews() override; 392 bool GetAllowOtherViews() override;
390 #endif 393 #endif
391 394
392 // Implementation of PageNavigator. 395 // Implementation of PageNavigator.
393 WebContents* OpenURL(const OpenURLParams& params) override; 396 WebContents* OpenURL(const OpenURLParams& params) override;
394 397
395 // Implementation of IPC::Sender. 398 // Implementation of IPC::Sender.
396 bool Send(IPC::Message* message) override; 399 bool Send(IPC::Message* message) override;
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 LoadResourceFromMemoryCacheWithEmptySecurityInfo); 742 LoadResourceFromMemoryCacheWithEmptySecurityInfo);
740 FRIEND_TEST_ALL_PREFIXES(WebContentsImplTest, 743 FRIEND_TEST_ALL_PREFIXES(WebContentsImplTest,
741 ResetJavaScriptDialogOnUserNavigate); 744 ResetJavaScriptDialogOnUserNavigate);
742 FRIEND_TEST_ALL_PREFIXES(FormStructureBrowserTest, HTMLFiles); 745 FRIEND_TEST_ALL_PREFIXES(FormStructureBrowserTest, HTMLFiles);
743 FRIEND_TEST_ALL_PREFIXES(NavigationControllerTest, HistoryNavigate); 746 FRIEND_TEST_ALL_PREFIXES(NavigationControllerTest, HistoryNavigate);
744 FRIEND_TEST_ALL_PREFIXES(RenderFrameHostManagerTest, PageDoesBackAndReload); 747 FRIEND_TEST_ALL_PREFIXES(RenderFrameHostManagerTest, PageDoesBackAndReload);
745 FRIEND_TEST_ALL_PREFIXES(SitePerProcessBrowserTest, CrossSiteIframe); 748 FRIEND_TEST_ALL_PREFIXES(SitePerProcessBrowserTest, CrossSiteIframe);
746 FRIEND_TEST_ALL_PREFIXES(SitePerProcessAccessibilityBrowserTest, 749 FRIEND_TEST_ALL_PREFIXES(SitePerProcessAccessibilityBrowserTest,
747 CrossSiteIframeAccessibility); 750 CrossSiteIframeAccessibility);
748 751
752 // So FindRequestManager can access FindReply/FindMatchRectsReply.
753 friend class FindRequestManager;
lfg 2016/04/04 18:57:32 Those functions can be public in WebContentsImpl i
754
749 // So InterstitialPageImpl can access SetIsLoading. 755 // So InterstitialPageImpl can access SetIsLoading.
750 friend class InterstitialPageImpl; 756 friend class InterstitialPageImpl;
751 757
752 // TODO(brettw) TestWebContents shouldn't exist! 758 // TODO(brettw) TestWebContents shouldn't exist!
753 friend class TestWebContents; 759 friend class TestWebContents;
754 760
755 class DestructionObserver; 761 class DestructionObserver;
756 762
757 // Represents a WebContents node in a tree of WebContents structure. 763 // Represents a WebContents node in a tree of WebContents structure.
758 // 764 //
(...skipping 13 matching lines...) Expand all
772 778
773 void ConnectToOuterWebContents(WebContentsImpl* outer_web_contents, 779 void ConnectToOuterWebContents(WebContentsImpl* outer_web_contents,
774 RenderFrameHostImpl* outer_contents_frame); 780 RenderFrameHostImpl* outer_contents_frame);
775 781
776 WebContentsImpl* outer_web_contents() { return outer_web_contents_; } 782 WebContentsImpl* outer_web_contents() { return outer_web_contents_; }
777 int outer_contents_frame_tree_node_id() { 783 int outer_contents_frame_tree_node_id() {
778 return outer_contents_frame_tree_node_id_; 784 return outer_contents_frame_tree_node_id_;
779 } 785 }
780 786
781 private: 787 private:
782 // The outer Webontents. 788 // The outer WebContents.
783 WebContentsImpl* outer_web_contents_; 789 WebContentsImpl* outer_web_contents_;
784 // The ID of the FrameTreeNode in outer WebContents that is hosting us. 790 // The ID of the FrameTreeNode in outer WebContents that is hosting us.
785 int outer_contents_frame_tree_node_id_; 791 int outer_contents_frame_tree_node_id_;
786 // List of inner WebContents that we host. 792 // List of inner WebContents that we host.
787 ChildrenSet inner_web_contents_tree_nodes_; 793 ChildrenSet inner_web_contents_tree_nodes_;
788 }; 794 };
789 795
790 // See WebContents::Create for a description of these parameters. 796 // See WebContents::Create for a description of these parameters.
791 WebContentsImpl(BrowserContext* browser_context); 797 WebContentsImpl(BrowserContext* browser_context);
792 798
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 bool user_gesture); 876 bool user_gesture);
871 void OnFindReply(int request_id, 877 void OnFindReply(int request_id,
872 int number_of_matches, 878 int number_of_matches,
873 const gfx::Rect& selection_rect, 879 const gfx::Rect& selection_rect,
874 int active_match_ordinal, 880 int active_match_ordinal,
875 bool final_update); 881 bool final_update);
876 #if defined(OS_ANDROID) 882 #if defined(OS_ANDROID)
877 void OnFindMatchRectsReply(int version, 883 void OnFindMatchRectsReply(int version,
878 const std::vector<gfx::RectF>& rects, 884 const std::vector<gfx::RectF>& rects,
879 const gfx::RectF& active_rect); 885 const gfx::RectF& active_rect);
880 886 void OnGetNearestFindResultReply(int request_id, float distance);
881 void OnOpenDateTimeDialog( 887 void OnOpenDateTimeDialog(
882 const ViewHostMsg_DateTimeDialogValue_Params& value); 888 const ViewHostMsg_DateTimeDialogValue_Params& value);
883 #endif 889 #endif
884 void OnDomOperationResponse(const std::string& json_string); 890 void OnDomOperationResponse(const std::string& json_string);
885 void OnAppCacheAccessed(const GURL& manifest_url, bool blocked_by_policy); 891 void OnAppCacheAccessed(const GURL& manifest_url, bool blocked_by_policy);
886 void OnOpenColorChooser(int color_chooser_id, 892 void OnOpenColorChooser(int color_chooser_id,
887 SkColor color, 893 SkColor color,
888 const std::vector<ColorSuggestion>& suggestions); 894 const std::vector<ColorSuggestion>& suggestions);
889 void OnEndColorChooser(int color_chooser_id); 895 void OnEndColorChooser(int color_chooser_id);
890 void OnSetSelectedColorInColorChooser(int color_chooser_id, SkColor color); 896 void OnSetSelectedColorInColorChooser(int color_chooser_id, SkColor color);
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
1024 1030
1025 // Internal helper to create WebUI objects associated with |this|. |url| is 1031 // Internal helper to create WebUI objects associated with |this|. |url| is
1026 // used to determine which WebUI should be created (if any). |frame_name| 1032 // used to determine which WebUI should be created (if any). |frame_name|
1027 // corresponds to the name of a frame that the WebUI should be created for (or 1033 // corresponds to the name of a frame that the WebUI should be created for (or
1028 // the main frame if empty). 1034 // the main frame if empty).
1029 WebUI* CreateWebUI(const GURL& url, const std::string& frame_name); 1035 WebUI* CreateWebUI(const GURL& url, const std::string& frame_name);
1030 1036
1031 void SetJavaScriptDialogManagerForTesting( 1037 void SetJavaScriptDialogManagerForTesting(
1032 JavaScriptDialogManager* dialog_manager); 1038 JavaScriptDialogManager* dialog_manager);
1033 1039
1040 // Returns the FindRequestManager, or creates one if it doesn't already exist.
1041 FindRequestManager* GetOrCreateFindRequestManager();
1042
1043 // Called by FindRequestManager when find replies come in from a renderer
1044 // process.
1045 void FindReply(int request_id,
1046 int number_of_matches,
1047 const gfx::Rect& selection_rect,
1048 int active_match_ordinal,
1049 bool final_update);
1050
1051 #if defined(OS_ANDROID)
1052 // Called by FindRequestManager when all of the match rects are in.
1053 void FindMatchRectsReply(int version,
1054 const std::vector<gfx::RectF>& rects,
1055 const gfx::RectF& active_rect);
1056 #endif
1057
1034 // Data for core operation --------------------------------------------------- 1058 // Data for core operation ---------------------------------------------------
1035 1059
1036 // Delegate for notifying our owner about stuff. Not owned by us. 1060 // Delegate for notifying our owner about stuff. Not owned by us.
1037 WebContentsDelegate* delegate_; 1061 WebContentsDelegate* delegate_;
1038 1062
1039 // Handles the back/forward list and loading. 1063 // Handles the back/forward list and loading.
1040 NavigationControllerImpl controller_; 1064 NavigationControllerImpl controller_;
1041 1065
1042 // The corresponding view. 1066 // The corresponding view.
1043 scoped_ptr<WebContentsView> view_; 1067 scoped_ptr<WebContentsView> view_;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1075 // Manages the frame tree of the page and process swaps in each node. 1099 // Manages the frame tree of the page and process swaps in each node.
1076 FrameTree frame_tree_; 1100 FrameTree frame_tree_;
1077 1101
1078 // If this WebContents is part of a "tree of WebContents", then this contains 1102 // If this WebContents is part of a "tree of WebContents", then this contains
1079 // information about the structure. 1103 // information about the structure.
1080 scoped_ptr<WebContentsTreeNode> node_; 1104 scoped_ptr<WebContentsTreeNode> node_;
1081 1105
1082 // SavePackage, lazily created. 1106 // SavePackage, lazily created.
1083 scoped_refptr<SavePackage> save_package_; 1107 scoped_refptr<SavePackage> save_package_;
1084 1108
1109 // Manages/coordinates find-in-page requests. Created lazily.
1110 scoped_ptr<FindRequestManager> find_request_manager_;
1111
1085 // Data for loading state ---------------------------------------------------- 1112 // Data for loading state ----------------------------------------------------
1086 1113
1087 // Indicates whether the current load is to a different document. Only valid 1114 // Indicates whether the current load is to a different document. Only valid
1088 // if is_loading_ is true. 1115 // if is_loading_ is true.
1089 bool is_load_to_different_document_; 1116 bool is_load_to_different_document_;
1090 1117
1091 // Indicates if the tab is considered crashed. 1118 // Indicates if the tab is considered crashed.
1092 base::TerminationStatus crashed_status_; 1119 base::TerminationStatus crashed_status_;
1093 int crashed_error_code_; 1120 int crashed_error_code_;
1094 1121
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
1343 // Adds/removes a callback called on creation of each new WebContents. 1370 // Adds/removes a callback called on creation of each new WebContents.
1344 static void AddCreatedCallbackForTesting(const CreatedCallback& callback); 1371 static void AddCreatedCallbackForTesting(const CreatedCallback& callback);
1345 static void RemoveCreatedCallbackForTesting(const CreatedCallback& callback); 1372 static void RemoveCreatedCallbackForTesting(const CreatedCallback& callback);
1346 1373
1347 DISALLOW_COPY_AND_ASSIGN(FriendZone); 1374 DISALLOW_COPY_AND_ASSIGN(FriendZone);
1348 }; 1375 };
1349 1376
1350 } // namespace content 1377 } // namespace content
1351 1378
1352 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ 1379 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698