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

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

Issue 2535483002: Plumb site engagement to the renderer process. (Closed)
Patch Set: Address comments Created 4 years 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
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 #include "mojo/public/cpp/bindings/associated_binding.h" 48 #include "mojo/public/cpp/bindings/associated_binding.h"
49 #include "mojo/public/cpp/bindings/binding.h" 49 #include "mojo/public/cpp/bindings/binding.h"
50 #include "ppapi/features/features.h" 50 #include "ppapi/features/features.h"
51 #include "services/service_manager/public/interfaces/connector.mojom.h" 51 #include "services/service_manager/public/interfaces/connector.mojom.h"
52 #include "services/service_manager/public/interfaces/interface_provider.mojom.h" 52 #include "services/service_manager/public/interfaces/interface_provider.mojom.h"
53 #include "third_party/WebKit/public/platform/WebEffectiveConnectionType.h" 53 #include "third_party/WebKit/public/platform/WebEffectiveConnectionType.h"
54 #include "third_party/WebKit/public/platform/WebFocusType.h" 54 #include "third_party/WebKit/public/platform/WebFocusType.h"
55 #include "third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h" 55 #include "third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h"
56 #include "third_party/WebKit/public/platform/WebMediaPlayer.h" 56 #include "third_party/WebKit/public/platform/WebMediaPlayer.h"
57 #include "third_party/WebKit/public/platform/WebPageVisibilityState.h" 57 #include "third_party/WebKit/public/platform/WebPageVisibilityState.h"
58 #include "third_party/WebKit/public/platform/site_engagement.mojom.h"
58 #include "third_party/WebKit/public/web/WebAXObject.h" 59 #include "third_party/WebKit/public/web/WebAXObject.h"
59 #include "third_party/WebKit/public/web/WebDataSource.h" 60 #include "third_party/WebKit/public/web/WebDataSource.h"
60 #include "third_party/WebKit/public/web/WebFrameClient.h" 61 #include "third_party/WebKit/public/web/WebFrameClient.h"
61 #include "third_party/WebKit/public/web/WebFrameLoadType.h" 62 #include "third_party/WebKit/public/web/WebFrameLoadType.h"
62 #include "third_party/WebKit/public/web/WebFrameSerializerClient.h" 63 #include "third_party/WebKit/public/web/WebFrameSerializerClient.h"
63 #include "third_party/WebKit/public/web/WebHistoryCommitType.h" 64 #include "third_party/WebKit/public/web/WebHistoryCommitType.h"
64 #include "third_party/WebKit/public/web/WebMeaningfulLayout.h" 65 #include "third_party/WebKit/public/web/WebMeaningfulLayout.h"
65 #include "third_party/WebKit/public/web/WebScriptExecutionCallback.h" 66 #include "third_party/WebKit/public/web/WebScriptExecutionCallback.h"
66 #include "ui/gfx/range/range.h" 67 #include "ui/gfx/range/range.h"
67 #include "url/gurl.h" 68 #include "url/gurl.h"
69 #include "url/origin.h"
68 70
69 #if BUILDFLAG(ENABLE_PLUGINS) 71 #if BUILDFLAG(ENABLE_PLUGINS)
70 #include "content/renderer/pepper/plugin_power_saver_helper.h" 72 #include "content/renderer/pepper/plugin_power_saver_helper.h"
71 #endif 73 #endif
72 74
73 #if defined(OS_ANDROID) 75 #if defined(OS_ANDROID)
74 #include "content/renderer/media/android/renderer_media_player_manager.h" 76 #include "content/renderer/media/android/renderer_media_player_manager.h"
75 #endif 77 #endif
76 78
77 struct FrameMsg_PostMessage_Params; 79 struct FrameMsg_PostMessage_Params;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 struct ScreenInfo; 163 struct ScreenInfo;
162 struct StartNavigationParams; 164 struct StartNavigationParams;
163 struct StreamOverrideParameters; 165 struct StreamOverrideParameters;
164 166
165 namespace { 167 namespace {
166 class CreateFrameWidgetParams; 168 class CreateFrameWidgetParams;
167 } 169 }
168 170
169 class CONTENT_EXPORT RenderFrameImpl 171 class CONTENT_EXPORT RenderFrameImpl
170 : public RenderFrame, 172 : public RenderFrame,
173 NON_EXPORTED_BASE(blink::mojom::EngagementClient),
171 NON_EXPORTED_BASE(mojom::Frame), 174 NON_EXPORTED_BASE(mojom::Frame),
172 NON_EXPORTED_BASE(mojom::HostZoom), 175 NON_EXPORTED_BASE(mojom::HostZoom),
173 NON_EXPORTED_BASE(public blink::WebFrameClient), 176 NON_EXPORTED_BASE(public blink::WebFrameClient),
174 NON_EXPORTED_BASE(public blink::WebFrameSerializerClient) { 177 NON_EXPORTED_BASE(public blink::WebFrameSerializerClient) {
175 public: 178 public:
176 // Creates a new RenderFrame as the main frame of |render_view|. 179 // Creates a new RenderFrame as the main frame of |render_view|.
177 static RenderFrameImpl* CreateMainFrame( 180 static RenderFrameImpl* CreateMainFrame(
178 RenderViewImpl* render_view, 181 RenderViewImpl* render_view,
179 int32_t routing_id, 182 int32_t routing_id,
180 int32_t widget_routing_id, 183 int32_t widget_routing_id,
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 const gfx::Range& range) override; 439 const gfx::Range& range) override;
437 void EnsureMojoBuiltinsAreAvailable(v8::Isolate* isolate, 440 void EnsureMojoBuiltinsAreAvailable(v8::Isolate* isolate,
438 v8::Local<v8::Context> context) override; 441 v8::Local<v8::Context> context) override;
439 void AddMessageToConsole(ConsoleMessageLevel level, 442 void AddMessageToConsole(ConsoleMessageLevel level,
440 const std::string& message) override; 443 const std::string& message) override;
441 bool IsUsingLoFi() const override; 444 bool IsUsingLoFi() const override;
442 bool IsPasting() const override; 445 bool IsPasting() const override;
443 blink::WebPageVisibilityState GetVisibilityState() const override; 446 blink::WebPageVisibilityState GetVisibilityState() const override;
444 bool IsBrowserSideNavigationPending() override; 447 bool IsBrowserSideNavigationPending() override;
445 448
449 // blink::mojom::EngagementClient implementation:
450 void SetEngagementLevel(const url::Origin& origin,
451 blink::mojom::EngagementLevel level) override;
452
446 // mojom::Frame implementation: 453 // mojom::Frame implementation:
447 void GetInterfaceProvider( 454 void GetInterfaceProvider(
448 service_manager::mojom::InterfaceProviderRequest request) override; 455 service_manager::mojom::InterfaceProviderRequest request) override;
449 456
450 // mojom::HostZoom implementation: 457 // mojom::HostZoom implementation:
451 void SetHostZoomLevel(const GURL& url, double zoom_level) override; 458 void SetHostZoomLevel(const GURL& url, double zoom_level) override;
452 459
453 // blink::WebFrameClient implementation: 460 // blink::WebFrameClient implementation:
454 blink::WebPlugin* createPlugin(blink::WebLocalFrame* frame, 461 blink::WebPlugin* createPlugin(blink::WebLocalFrame* frame,
455 const blink::WebPluginParams& params) override; 462 const blink::WebPluginParams& params) override;
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 blink::InterfaceProvider* interfaceProvider() override; 650 blink::InterfaceProvider* interfaceProvider() override;
644 blink::InterfaceRegistry* interfaceRegistry() override; 651 blink::InterfaceRegistry* interfaceRegistry() override;
645 blink::WebPageVisibilityState visibilityState() const override; 652 blink::WebPageVisibilityState visibilityState() const override;
646 653
647 // WebFrameSerializerClient implementation: 654 // WebFrameSerializerClient implementation:
648 void didSerializeDataForFrame( 655 void didSerializeDataForFrame(
649 const blink::WebCString& data, 656 const blink::WebCString& data,
650 blink::WebFrameSerializerClient::FrameSerializationStatus status) 657 blink::WebFrameSerializerClient::FrameSerializationStatus status)
651 override; 658 override;
652 659
660 // Binds to the site engagement service in the browser.
661 void BindEngagement(blink::mojom::EngagementClientAssociatedRequest request);
662
653 // Binds to the FrameHost in the browser. 663 // Binds to the FrameHost in the browser.
654 void Bind(mojom::FrameRequest frame, mojom::FrameHostPtr frame_host); 664 void BindFrame(mojom::FrameRequest request, mojom::FrameHostPtr frame_host);
655 665
656 ManifestManager* manifest_manager(); 666 ManifestManager* manifest_manager();
657 667
658 // TODO(creis): Remove when the only caller, the HistoryController, is no 668 // TODO(creis): Remove when the only caller, the HistoryController, is no
659 // more. 669 // more.
660 void SetPendingNavigationParams( 670 void SetPendingNavigationParams(
661 std::unique_ptr<NavigationParams> navigation_params); 671 std::unique_ptr<NavigationParams> navigation_params);
662 672
663 media::MediaPermission* GetMediaPermission(); 673 media::MediaPermission* GetMediaPermission();
664 674
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 752
743 int id_; 753 int id_;
744 bool notify_result_; 754 bool notify_result_;
745 int routing_id_; 755 int routing_id_;
746 base::WeakPtr<RenderFrameImpl> render_frame_impl_; 756 base::WeakPtr<RenderFrameImpl> render_frame_impl_;
747 757
748 DISALLOW_COPY_AND_ASSIGN(JavaScriptIsolatedWorldRequest); 758 DISALLOW_COPY_AND_ASSIGN(JavaScriptIsolatedWorldRequest);
749 }; 759 };
750 760
751 typedef std::map<GURL, double> HostZoomLevels; 761 typedef std::map<GURL, double> HostZoomLevels;
762 typedef std::map<url::Origin, blink::mojom::EngagementLevel> EngagementLevels;
752 763
753 // Creates a new RenderFrame. |render_view| is the RenderView object that this 764 // Creates a new RenderFrame. |render_view| is the RenderView object that this
754 // frame belongs to. 765 // frame belongs to.
755 // Callers *must* call |BindToWebFrame| immediately after creation. 766 // Callers *must* call |BindToWebFrame| immediately after creation.
756 static RenderFrameImpl* Create(RenderViewImpl* render_view, 767 static RenderFrameImpl* Create(RenderViewImpl* render_view,
757 int32_t routing_id); 768 int32_t routing_id);
758 769
759 // This is called right after creation with the WebLocalFrame for this 770 // This is called right after creation with the WebLocalFrame for this
760 // RenderFrame. It must be called before Initialize. 771 // RenderFrame. It must be called before Initialize.
761 void BindToWebFrame(blink::WebLocalFrame* web_frame); 772 void BindToWebFrame(blink::WebLocalFrame* web_frame);
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after
1318 PepperPluginInstanceImpl* focused_pepper_plugin_; 1329 PepperPluginInstanceImpl* focused_pepper_plugin_;
1319 1330
1320 // The plugin instance that received the last mouse event. It is set to NULL 1331 // The plugin instance that received the last mouse event. It is set to NULL
1321 // if the last mouse event went to elements other than Pepper plugins. 1332 // if the last mouse event went to elements other than Pepper plugins.
1322 // |pepper_last_mouse_event_target_| is not owned by this class. We depend on 1333 // |pepper_last_mouse_event_target_| is not owned by this class. We depend on
1323 // the RenderFrameImpl to NULL it out when it destructs. 1334 // the RenderFrameImpl to NULL it out when it destructs.
1324 PepperPluginInstanceImpl* pepper_last_mouse_event_target_; 1335 PepperPluginInstanceImpl* pepper_last_mouse_event_target_;
1325 #endif 1336 #endif
1326 1337
1327 HostZoomLevels host_zoom_levels_; 1338 HostZoomLevels host_zoom_levels_;
1339 EngagementLevels engagement_levels_;
1328 1340
1341 mojo::AssociatedBinding<blink::mojom::EngagementClient> engagement_binding_;
1329 mojo::Binding<mojom::Frame> frame_binding_; 1342 mojo::Binding<mojom::Frame> frame_binding_;
1330 mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_; 1343 mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_;
1331 mojom::FrameHostPtr frame_host_; 1344 mojom::FrameHostPtr frame_host_;
1332 1345
1333 // Indicates whether |didAccessInitialDocument| was called. 1346 // Indicates whether |didAccessInitialDocument| was called.
1334 bool has_accessed_initial_document_; 1347 bool has_accessed_initial_document_;
1335 1348
1336 AssociatedInterfaceRegistryImpl associated_interfaces_; 1349 AssociatedInterfaceRegistryImpl associated_interfaces_;
1337 std::unique_ptr<AssociatedInterfaceProviderImpl> 1350 std::unique_ptr<AssociatedInterfaceProviderImpl>
1338 remote_associated_interfaces_; 1351 remote_associated_interfaces_;
1339 1352
1340 // TODO(dcheng): Remove these members. 1353 // TODO(dcheng): Remove these members.
1341 bool committed_first_load_ = false; 1354 bool committed_first_load_ = false;
1342 bool name_changed_before_first_commit_ = false; 1355 bool name_changed_before_first_commit_ = false;
1343 1356
1344 bool browser_side_navigation_pending_ = false; 1357 bool browser_side_navigation_pending_ = false;
1345 1358
1346 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; 1359 base::WeakPtrFactory<RenderFrameImpl> weak_factory_;
1347 1360
1348 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); 1361 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl);
1349 }; 1362 };
1350 1363
1351 } // namespace content 1364 } // namespace content
1352 1365
1353 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 1366 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698