Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 429 bool GetAllowOtherViews() override; | 429 bool GetAllowOtherViews() override; |
| 430 #endif | 430 #endif |
| 431 | 431 |
| 432 // Implementation of PageNavigator. | 432 // Implementation of PageNavigator. |
| 433 WebContents* OpenURL(const OpenURLParams& params) override; | 433 WebContents* OpenURL(const OpenURLParams& params) override; |
| 434 | 434 |
| 435 // Implementation of IPC::Sender. | 435 // Implementation of IPC::Sender. |
| 436 bool Send(IPC::Message* message) override; | 436 bool Send(IPC::Message* message) override; |
| 437 | 437 |
| 438 // RenderFrameHostDelegate --------------------------------------------------- | 438 // RenderFrameHostDelegate --------------------------------------------------- |
| 439 bool OnMessageReceived(RenderFrameHost* render_frame_host, | 439 bool OnMessageReceived(RenderFrameHostImpl* render_frame_host, |
| 440 const IPC::Message& message) override; | 440 const IPC::Message& message) override; |
| 441 void OnAssociatedInterfaceRequest( | 441 void OnAssociatedInterfaceRequest( |
| 442 RenderFrameHost* render_frame_host, | 442 RenderFrameHost* render_frame_host, |
| 443 const std::string& interface_name, | 443 const std::string& interface_name, |
| 444 mojo::ScopedInterfaceEndpointHandle handle) override; | 444 mojo::ScopedInterfaceEndpointHandle handle) override; |
| 445 const GURL& GetMainFrameLastCommittedURL() const override; | 445 const GURL& GetMainFrameLastCommittedURL() const override; |
| 446 void RenderFrameCreated(RenderFrameHost* render_frame_host) override; | 446 void RenderFrameCreated(RenderFrameHost* render_frame_host) override; |
| 447 void RenderFrameDeleted(RenderFrameHost* render_frame_host) override; | 447 void RenderFrameDeleted(RenderFrameHost* render_frame_host) override; |
| 448 void ShowContextMenu(RenderFrameHost* render_frame_host, | 448 void ShowContextMenu(RenderFrameHost* render_frame_host, |
| 449 const ContextMenuParams& params) override; | 449 const ContextMenuParams& params) override; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 487 bool ShouldRouteMessageEvent( | 487 bool ShouldRouteMessageEvent( |
| 488 RenderFrameHost* target_rfh, | 488 RenderFrameHost* target_rfh, |
| 489 SiteInstance* source_site_instance) const override; | 489 SiteInstance* source_site_instance) const override; |
| 490 void EnsureOpenerProxiesExist(RenderFrameHost* source_rfh) override; | 490 void EnsureOpenerProxiesExist(RenderFrameHost* source_rfh) override; |
| 491 std::unique_ptr<WebUIImpl> CreateWebUIForRenderFrameHost( | 491 std::unique_ptr<WebUIImpl> CreateWebUIForRenderFrameHost( |
| 492 const GURL& url) override; | 492 const GURL& url) override; |
| 493 void SetFocusedFrame(FrameTreeNode* node, SiteInstance* source) override; | 493 void SetFocusedFrame(FrameTreeNode* node, SiteInstance* source) override; |
| 494 | 494 |
| 495 // RenderViewHostDelegate ---------------------------------------------------- | 495 // RenderViewHostDelegate ---------------------------------------------------- |
| 496 RenderViewHostDelegateView* GetDelegateView() override; | 496 RenderViewHostDelegateView* GetDelegateView() override; |
| 497 bool OnMessageReceived(RenderViewHost* render_view_host, | 497 bool OnMessageReceived(RenderViewHostImpl* render_view_host, |
| 498 const IPC::Message& message) override; | 498 const IPC::Message& message) override; |
| 499 // RenderFrameHostDelegate has the same method, so list it there because this | 499 // RenderFrameHostDelegate has the same method, so list it there because this |
| 500 // interface is going away. | 500 // interface is going away. |
| 501 // WebContents* GetAsWebContents() override; | 501 // WebContents* GetAsWebContents() override; |
| 502 void RenderViewCreated(RenderViewHost* render_view_host) override; | 502 void RenderViewCreated(RenderViewHost* render_view_host) override; |
| 503 void RenderViewReady(RenderViewHost* render_view_host) override; | 503 void RenderViewReady(RenderViewHost* render_view_host) override; |
| 504 void RenderViewTerminated(RenderViewHost* render_view_host, | 504 void RenderViewTerminated(RenderViewHost* render_view_host, |
| 505 base::TerminationStatus status, | 505 base::TerminationStatus status, |
| 506 int error_code) override; | 506 int error_code) override; |
| 507 void RenderViewDeleted(RenderViewHost* render_view_host) override; | 507 void RenderViewDeleted(RenderViewHost* render_view_host) override; |
| (...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 912 // Callback function when showing JavaScript dialogs. Takes in a routing ID | 912 // Callback function when showing JavaScript dialogs. Takes in a routing ID |
| 913 // pair to identify the RenderFrameHost that opened the dialog, because it's | 913 // pair to identify the RenderFrameHost that opened the dialog, because it's |
| 914 // possible for the RenderFrameHost to be deleted by the time this is called. | 914 // possible for the RenderFrameHost to be deleted by the time this is called. |
| 915 void OnDialogClosed(int render_process_id, | 915 void OnDialogClosed(int render_process_id, |
| 916 int render_frame_id, | 916 int render_frame_id, |
| 917 IPC::Message* reply_msg, | 917 IPC::Message* reply_msg, |
| 918 bool dialog_was_suppressed, | 918 bool dialog_was_suppressed, |
| 919 bool success, | 919 bool success, |
| 920 const base::string16& user_input); | 920 const base::string16& user_input); |
| 921 | 921 |
| 922 bool OnMessageReceived(RenderViewHost* render_view_host, | |
| 923 RenderFrameHost* render_frame_host, | |
| 924 const IPC::Message& message); | |
| 925 | |
| 926 // Checks whether render_frame_message_source_ is set to non-null value, | |
| 927 // otherwise it terminates the main frame renderer process. | |
| 928 bool HasValidFrameSource(); | |
| 929 | |
| 930 // IPC message handlers. | 922 // IPC message handlers. |
| 931 void OnThemeColorChanged(SkColor theme_color); | 923 void OnThemeColorChanged(RenderFrameHostImpl* source, SkColor theme_color); |
| 932 void OnDidLoadResourceFromMemoryCache(const GURL& url, | 924 void OnDidLoadResourceFromMemoryCache(RenderFrameHostImpl* source, |
| 925 const GURL& url, | |
| 933 const std::string& http_request, | 926 const std::string& http_request, |
| 934 const std::string& mime_type, | 927 const std::string& mime_type, |
| 935 ResourceType resource_type); | 928 ResourceType resource_type); |
| 936 void OnDidDisplayInsecureContent(); | 929 void OnDidDisplayInsecureContent(RenderFrameHostImpl* source); |
| 937 void OnDidRunInsecureContent(const GURL& security_origin, | 930 void OnDidRunInsecureContent(RenderFrameHostImpl* source, |
| 931 const GURL& security_origin, | |
| 938 const GURL& target_url); | 932 const GURL& target_url); |
| 939 void OnDidDisplayContentWithCertificateErrors(const GURL& url); | 933 void OnDidDisplayContentWithCertificateErrors(RenderFrameHostImpl* source, |
| 940 void OnDidRunContentWithCertificateErrors(const GURL& url); | 934 const GURL& url); |
| 941 void OnDocumentLoadedInFrame(); | 935 void OnDidRunContentWithCertificateErrors(RenderFrameHostImpl* source, |
| 942 void OnDidFinishLoad(const GURL& url); | 936 const GURL& url); |
| 943 void OnGoToEntryAtOffset(int offset); | 937 void OnDocumentLoadedInFrame(RenderFrameHostImpl* source); |
| 944 void OnUpdateZoomLimits(int minimum_percent, | 938 void OnDidFinishLoad(RenderFrameHostImpl* source, const GURL& url); |
| 939 void OnGoToEntryAtOffset(RenderViewHostImpl* source, int offset); | |
| 940 void OnUpdateZoomLimits(RenderViewHostImpl* source, | |
| 941 int minimum_percent, | |
| 945 int maximum_percent); | 942 int maximum_percent); |
| 946 void OnPageScaleFactorChanged(float page_scale_factor); | 943 void OnPageScaleFactorChanged(RenderViewHostImpl* source, |
| 947 void OnEnumerateDirectory(int request_id, const base::FilePath& path); | 944 float page_scale_factor); |
| 945 void OnEnumerateDirectory(RenderViewHostImpl* source, | |
| 946 int request_id, | |
| 947 const base::FilePath& path); | |
| 948 | 948 |
| 949 void OnRegisterProtocolHandler(const std::string& protocol, | 949 void OnRegisterProtocolHandler(RenderFrameHostImpl* source, |
| 950 const std::string& protocol, | |
| 950 const GURL& url, | 951 const GURL& url, |
| 951 const base::string16& title, | 952 const base::string16& title, |
| 952 bool user_gesture); | 953 bool user_gesture); |
| 953 void OnUnregisterProtocolHandler(const std::string& protocol, | 954 void OnUnregisterProtocolHandler(RenderFrameHostImpl* source, |
| 955 const std::string& protocol, | |
| 954 const GURL& url, | 956 const GURL& url, |
| 955 bool user_gesture); | 957 bool user_gesture); |
| 956 void OnFindReply(int request_id, | 958 void OnFindReply(RenderFrameHostImpl* source, |
| 959 int request_id, | |
| 957 int number_of_matches, | 960 int number_of_matches, |
| 958 const gfx::Rect& selection_rect, | 961 const gfx::Rect& selection_rect, |
| 959 int active_match_ordinal, | 962 int active_match_ordinal, |
| 960 bool final_update); | 963 bool final_update); |
| 961 #if defined(OS_ANDROID) | 964 #if defined(OS_ANDROID) |
| 962 void OnFindMatchRectsReply(int version, | 965 void OnFindMatchRectsReply(RenderFrameHostImpl* source, |
| 966 int version, | |
| 963 const std::vector<gfx::RectF>& rects, | 967 const std::vector<gfx::RectF>& rects, |
| 964 const gfx::RectF& active_rect); | 968 const gfx::RectF& active_rect); |
| 965 void OnGetNearestFindResultReply(int request_id, float distance); | 969 void OnGetNearestFindResultReply(RenderFrameHostImpl* source, |
| 970 int request_id, | |
| 971 float distance); | |
| 966 void OnOpenDateTimeDialog( | 972 void OnOpenDateTimeDialog( |
| 973 RenderViewHostImpl* source, | |
| 967 const ViewHostMsg_DateTimeDialogValue_Params& value); | 974 const ViewHostMsg_DateTimeDialogValue_Params& value); |
| 968 #endif | 975 #endif |
| 969 void OnDomOperationResponse(const std::string& json_string); | 976 void OnDomOperationResponse(RenderFrameHostImpl* source, |
| 970 void OnAppCacheAccessed(const GURL& manifest_url, bool blocked_by_policy); | 977 const std::string& json_string); |
| 971 void OnOpenColorChooser(int color_chooser_id, | 978 void OnAppCacheAccessed(RenderViewHostImpl* source, |
| 979 const GURL& manifest_url, | |
| 980 bool blocked_by_policy); | |
| 981 void OnOpenColorChooser(RenderFrameHostImpl* source, | |
| 982 int color_chooser_id, | |
| 972 SkColor color, | 983 SkColor color, |
| 973 const std::vector<ColorSuggestion>& suggestions); | 984 const std::vector<ColorSuggestion>& suggestions); |
| 974 void OnEndColorChooser(int color_chooser_id); | 985 void OnEndColorChooser(RenderFrameHostImpl* source, int color_chooser_id); |
| 975 void OnSetSelectedColorInColorChooser(int color_chooser_id, SkColor color); | 986 void OnSetSelectedColorInColorChooser(RenderFrameHostImpl* source, |
| 976 void OnWebUISend(const GURL& source_url, | 987 int color_chooser_id, |
| 988 SkColor color); | |
| 989 void OnWebUISend(RenderViewHostImpl* source, | |
| 990 const GURL& source_url, | |
| 977 const std::string& name, | 991 const std::string& name, |
| 978 const base::ListValue& args); | 992 const base::ListValue& args); |
| 979 void OnUpdatePageImportanceSignals(const PageImportanceSignals& signals); | 993 void OnUpdatePageImportanceSignals(RenderFrameHostImpl* source, |
| 994 const PageImportanceSignals& signals); | |
| 980 #if BUILDFLAG(ENABLE_PLUGINS) | 995 #if BUILDFLAG(ENABLE_PLUGINS) |
| 981 void OnPepperInstanceCreated(int32_t pp_instance); | 996 void OnPepperInstanceCreated(RenderFrameHostImpl* source, |
| 982 void OnPepperInstanceDeleted(int32_t pp_instance); | 997 int32_t pp_instance); |
| 983 void OnPepperPluginHung(int plugin_child_id, | 998 void OnPepperInstanceDeleted(RenderFrameHostImpl* source, |
| 999 int32_t pp_instance); | |
| 1000 void OnPepperPluginHung(RenderFrameHostImpl* source, | |
| 1001 int plugin_child_id, | |
| 984 const base::FilePath& path, | 1002 const base::FilePath& path, |
| 985 bool is_hung); | 1003 bool is_hung); |
| 986 void OnPepperStartsPlayback(int32_t pp_instance); | 1004 void OnPepperStartsPlayback(RenderFrameHostImpl* source, int32_t pp_instance); |
| 987 void OnPepperStopsPlayback(int32_t pp_instance); | 1005 void OnPepperStopsPlayback(RenderFrameHostImpl* source, int32_t pp_instance); |
| 988 void OnPluginCrashed(const base::FilePath& plugin_path, | 1006 void OnPluginCrashed(RenderFrameHostImpl* source, |
| 1007 const base::FilePath& plugin_path, | |
| 989 base::ProcessId plugin_pid); | 1008 base::ProcessId plugin_pid); |
| 990 void OnRequestPpapiBrokerPermission(int routing_id, | 1009 void OnRequestPpapiBrokerPermission(RenderViewHostImpl* source, |
| 1010 int ppb_broker_route_id, | |
| 991 const GURL& url, | 1011 const GURL& url, |
| 992 const base::FilePath& plugin_path); | 1012 const base::FilePath& plugin_path); |
| 993 | 1013 |
| 994 // Callback function when requesting permission to access the PPAPI broker. | 1014 // Callback function when requesting permission to access the PPAPI broker. |
| 995 // |result| is true if permission was granted. | 1015 // |result| is true if permission was granted. |
| 996 void OnPpapiBrokerPermissionResult(int routing_id, bool result); | 1016 void SendPpapiBrokerPermissionResult(int process_id, |
| 1017 int ppb_broker_route_id, | |
| 1018 bool result); | |
| 997 | 1019 |
| 998 void OnBrowserPluginMessage(RenderFrameHost* render_frame_host, | 1020 void OnBrowserPluginMessage(RenderFrameHost* render_frame_host, |
| 999 const IPC::Message& message); | 1021 const IPC::Message& message); |
| 1000 #endif // BUILDFLAG(ENABLE_PLUGINS) | 1022 #endif // BUILDFLAG(ENABLE_PLUGINS) |
| 1001 void OnUpdateFaviconURL(const std::vector<FaviconURL>& candidates); | 1023 void OnUpdateFaviconURL(RenderViewHostImpl* source, |
| 1002 void OnFirstVisuallyNonEmptyPaint(); | 1024 const std::vector<FaviconURL>& candidates); |
| 1003 void OnShowValidationMessage(const gfx::Rect& anchor_in_root_view, | 1025 void OnFirstVisuallyNonEmptyPaint(RenderViewHostImpl* source); |
| 1026 void OnShowValidationMessage(RenderViewHostImpl* source, | |
| 1027 const gfx::Rect& anchor_in_root_view, | |
| 1004 const base::string16& main_text, | 1028 const base::string16& main_text, |
| 1005 const base::string16& sub_text); | 1029 const base::string16& sub_text); |
| 1006 void OnHideValidationMessage(); | 1030 void OnHideValidationMessage(RenderViewHostImpl* source); |
| 1007 void OnMoveValidationMessage(const gfx::Rect& anchor_in_root_view); | 1031 void OnMoveValidationMessage(RenderViewHostImpl* source, |
| 1032 const gfx::Rect& anchor_in_root_view); | |
| 1008 | 1033 |
| 1009 // Called by derived classes to indicate that we're no longer waiting for a | 1034 // Called by derived classes to indicate that we're no longer waiting for a |
| 1010 // response. This won't actually update the throbber, but it will get picked | 1035 // response. This won't actually update the throbber, but it will get picked |
| 1011 // up at the next animation step if the throbber is going. | 1036 // up at the next animation step if the throbber is going. |
| 1012 void SetNotWaitingForResponse() { waiting_for_response_ = false; } | 1037 void SetNotWaitingForResponse() { waiting_for_response_ = false; } |
| 1013 | 1038 |
| 1014 // Inner WebContents Helpers ------------------------------------------------- | 1039 // Inner WebContents Helpers ------------------------------------------------- |
| 1015 // | 1040 // |
| 1016 // These functions are helpers in managing a hierarchy of WebContents | 1041 // These functions are helpers in managing a hierarchy of WebContents |
| 1017 // involved in rendering inner WebContents. | 1042 // involved in rendering inner WebContents. |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1333 #endif | 1358 #endif |
| 1334 | 1359 |
| 1335 // Holds information about a current color chooser dialog, if one is visible. | 1360 // Holds information about a current color chooser dialog, if one is visible. |
| 1336 struct ColorChooserInfo { | 1361 struct ColorChooserInfo { |
| 1337 ColorChooserInfo(int render_process_id, | 1362 ColorChooserInfo(int render_process_id, |
| 1338 int render_frame_id, | 1363 int render_frame_id, |
| 1339 ColorChooser* chooser, | 1364 ColorChooser* chooser, |
| 1340 int identifier); | 1365 int identifier); |
| 1341 ~ColorChooserInfo(); | 1366 ~ColorChooserInfo(); |
| 1342 | 1367 |
| 1368 bool Matches(RenderFrameHostImpl* render_frame_host, int id); | |
|
Charlie Reis
2016/12/13 19:03:56
color_chooser_id
ncarter (slow)
2016/12/14 18:36:47
Done.
| |
| 1369 | |
| 1343 int render_process_id; | 1370 int render_process_id; |
| 1344 int render_frame_id; | 1371 int render_frame_id; |
| 1345 | 1372 |
| 1346 // Color chooser that was opened by this tab. | 1373 // Color chooser that was opened by this tab. |
| 1347 std::unique_ptr<ColorChooser> chooser; | 1374 std::unique_ptr<ColorChooser> chooser; |
| 1348 | 1375 |
| 1349 // A unique identifier for the current color chooser. Identifiers are | 1376 // A unique identifier for the current color chooser. Identifiers are |
| 1350 // unique across a renderer process. This avoids race conditions in | 1377 // unique across a renderer process. This avoids race conditions in |
| 1351 // synchronizing the browser and renderer processes. For example, if a | 1378 // synchronizing the browser and renderer processes. For example, if a |
| 1352 // renderer closes one chooser and opens another, and simultaneously the | 1379 // renderer closes one chooser and opens another, and simultaneously the |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 1368 #if BUILDFLAG(ENABLE_PLUGINS) | 1395 #if BUILDFLAG(ENABLE_PLUGINS) |
| 1369 // Manages the whitelist of plugin content origins exempt from power saving. | 1396 // Manages the whitelist of plugin content origins exempt from power saving. |
| 1370 std::unique_ptr<PluginContentOriginWhitelist> | 1397 std::unique_ptr<PluginContentOriginWhitelist> |
| 1371 plugin_content_origin_whitelist_; | 1398 plugin_content_origin_whitelist_; |
| 1372 #endif | 1399 #endif |
| 1373 | 1400 |
| 1374 // This must be at the end, or else we might get notifications and use other | 1401 // This must be at the end, or else we might get notifications and use other |
| 1375 // member variables that are gone. | 1402 // member variables that are gone. |
| 1376 NotificationRegistrar registrar_; | 1403 NotificationRegistrar registrar_; |
| 1377 | 1404 |
| 1378 // Used during IPC message dispatching from the RenderView/RenderFrame so that | |
| 1379 // the handlers can get a pointer to the RVH through which the message was | |
| 1380 // received. | |
| 1381 RenderViewHost* render_view_message_source_; | |
| 1382 RenderFrameHost* render_frame_message_source_; | |
| 1383 | |
| 1384 // All live RenderWidgetHostImpls that are created by this object and may | 1405 // All live RenderWidgetHostImpls that are created by this object and may |
| 1385 // outlive it. | 1406 // outlive it. |
| 1386 std::set<RenderWidgetHostImpl*> created_widgets_; | 1407 std::set<RenderWidgetHostImpl*> created_widgets_; |
| 1387 | 1408 |
| 1388 // Process id of the shown fullscreen widget, or kInvalidUniqueID if there is | 1409 // Process id of the shown fullscreen widget, or kInvalidUniqueID if there is |
| 1389 // no fullscreen widget. | 1410 // no fullscreen widget. |
| 1390 int fullscreen_widget_process_id_; | 1411 int fullscreen_widget_process_id_; |
| 1391 | 1412 |
| 1392 // Routing id of the shown fullscreen widget or MSG_ROUTING_NONE otherwise. | 1413 // Routing id of the shown fullscreen widget or MSG_ROUTING_NONE otherwise. |
| 1393 int fullscreen_widget_routing_id_; | 1414 int fullscreen_widget_routing_id_; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1494 // Adds/removes a callback called on creation of each new WebContents. | 1515 // Adds/removes a callback called on creation of each new WebContents. |
| 1495 static void AddCreatedCallbackForTesting(const CreatedCallback& callback); | 1516 static void AddCreatedCallbackForTesting(const CreatedCallback& callback); |
| 1496 static void RemoveCreatedCallbackForTesting(const CreatedCallback& callback); | 1517 static void RemoveCreatedCallbackForTesting(const CreatedCallback& callback); |
| 1497 | 1518 |
| 1498 DISALLOW_COPY_AND_ASSIGN(FriendZone); | 1519 DISALLOW_COPY_AND_ASSIGN(FriendZone); |
| 1499 }; | 1520 }; |
| 1500 | 1521 |
| 1501 } // namespace content | 1522 } // namespace content |
| 1502 | 1523 |
| 1503 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ | 1524 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ |
| OLD | NEW |