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

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

Issue 2566583002: Change allowed bindings to be per RenderFrame instead of per RenderView. (Closed)
Patch Set: rebase Created 3 years, 10 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
« no previous file with comments | « content/public/renderer/render_view.h ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 170
171 namespace { 171 namespace {
172 class CreateFrameWidgetParams; 172 class CreateFrameWidgetParams;
173 } 173 }
174 174
175 class CONTENT_EXPORT RenderFrameImpl 175 class CONTENT_EXPORT RenderFrameImpl
176 : public RenderFrame, 176 : public RenderFrame,
177 NON_EXPORTED_BASE(blink::mojom::EngagementClient), 177 NON_EXPORTED_BASE(blink::mojom::EngagementClient),
178 NON_EXPORTED_BASE(mojom::Frame), 178 NON_EXPORTED_BASE(mojom::Frame),
179 NON_EXPORTED_BASE(mojom::HostZoom), 179 NON_EXPORTED_BASE(mojom::HostZoom),
180 NON_EXPORTED_BASE(mojom::FrameBindingsControl),
180 NON_EXPORTED_BASE(public blink::WebFrameClient), 181 NON_EXPORTED_BASE(public blink::WebFrameClient),
181 NON_EXPORTED_BASE(public blink::WebFrameSerializerClient) { 182 NON_EXPORTED_BASE(public blink::WebFrameSerializerClient) {
182 public: 183 public:
183 // Creates a new RenderFrame as the main frame of |render_view|. 184 // Creates a new RenderFrame as the main frame of |render_view|.
184 static RenderFrameImpl* CreateMainFrame( 185 static RenderFrameImpl* CreateMainFrame(
185 RenderViewImpl* render_view, 186 RenderViewImpl* render_view,
186 int32_t routing_id, 187 int32_t routing_id,
187 int32_t widget_routing_id, 188 int32_t widget_routing_id,
188 bool hidden, 189 bool hidden,
189 const ScreenInfo& screen_info, 190 const ScreenInfo& screen_info,
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 v8::Local<v8::Context> context) override; 454 v8::Local<v8::Context> context) override;
454 void AddMessageToConsole(ConsoleMessageLevel level, 455 void AddMessageToConsole(ConsoleMessageLevel level,
455 const std::string& message) override; 456 const std::string& message) override;
456 PreviewsState GetPreviewsState() const override; 457 PreviewsState GetPreviewsState() const override;
457 bool IsPasting() const override; 458 bool IsPasting() const override;
458 blink::WebPageVisibilityState GetVisibilityState() const override; 459 blink::WebPageVisibilityState GetVisibilityState() const override;
459 bool IsBrowserSideNavigationPending() override; 460 bool IsBrowserSideNavigationPending() override;
460 base::SingleThreadTaskRunner* GetTimerTaskRunner() override; 461 base::SingleThreadTaskRunner* GetTimerTaskRunner() override;
461 base::SingleThreadTaskRunner* GetLoadingTaskRunner() override; 462 base::SingleThreadTaskRunner* GetLoadingTaskRunner() override;
462 base::SingleThreadTaskRunner* GetUnthrottledTaskRunner() override; 463 base::SingleThreadTaskRunner* GetUnthrottledTaskRunner() override;
464 int GetEnabledBindings() const override;
463 465
464 // blink::mojom::EngagementClient implementation: 466 // blink::mojom::EngagementClient implementation:
465 void SetEngagementLevel(const url::Origin& origin, 467 void SetEngagementLevel(const url::Origin& origin,
466 blink::mojom::EngagementLevel level) override; 468 blink::mojom::EngagementLevel level) override;
467 469
468 // mojom::Frame implementation: 470 // mojom::Frame implementation:
469 void GetInterfaceProvider( 471 void GetInterfaceProvider(
470 service_manager::mojom::InterfaceProviderRequest request) override; 472 service_manager::mojom::InterfaceProviderRequest request) override;
471 473
474 // mojom::FrameBindingsControl implementation:
475 void AllowBindings(int32_t enabled_bindings_flags) override;
476
472 // mojom::HostZoom implementation: 477 // mojom::HostZoom implementation:
473 void SetHostZoomLevel(const GURL& url, double zoom_level) override; 478 void SetHostZoomLevel(const GURL& url, double zoom_level) override;
474 479
475 // blink::WebFrameClient implementation: 480 // blink::WebFrameClient implementation:
476 blink::WebPlugin* createPlugin(blink::WebLocalFrame* frame, 481 blink::WebPlugin* createPlugin(blink::WebLocalFrame* frame,
477 const blink::WebPluginParams& params) override; 482 const blink::WebPluginParams& params) override;
478 blink::WebMediaPlayer* createMediaPlayer( 483 blink::WebMediaPlayer* createMediaPlayer(
479 const blink::WebMediaPlayerSource& source, 484 const blink::WebMediaPlayerSource& source,
480 blink::WebMediaPlayerClient* client, 485 blink::WebMediaPlayerClient* client,
481 blink::WebMediaPlayerEncryptedMediaClient* encrypted_client, 486 blink::WebMediaPlayerEncryptedMediaClient* encrypted_client,
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 const blink::WebCString& data, 674 const blink::WebCString& data,
670 blink::WebFrameSerializerClient::FrameSerializationStatus status) 675 blink::WebFrameSerializerClient::FrameSerializationStatus status)
671 override; 676 override;
672 677
673 // Binds to the site engagement service in the browser. 678 // Binds to the site engagement service in the browser.
674 void BindEngagement(blink::mojom::EngagementClientAssociatedRequest request); 679 void BindEngagement(blink::mojom::EngagementClientAssociatedRequest request);
675 680
676 // Binds to the FrameHost in the browser. 681 // Binds to the FrameHost in the browser.
677 void BindFrame(mojom::FrameRequest request, mojom::FrameHostPtr frame_host); 682 void BindFrame(mojom::FrameRequest request, mojom::FrameHostPtr frame_host);
678 683
684 void BindFrameBindingsControl(
685 mojom::FrameBindingsControlAssociatedRequest request);
686
679 ManifestManager* manifest_manager(); 687 ManifestManager* manifest_manager();
680 688
681 // TODO(creis): Remove when the only caller, the HistoryController, is no 689 // TODO(creis): Remove when the only caller, the HistoryController, is no
682 // more. 690 // more.
683 void SetPendingNavigationParams( 691 void SetPendingNavigationParams(
684 std::unique_ptr<NavigationParams> navigation_params); 692 std::unique_ptr<NavigationParams> navigation_params);
685 693
686 media::MediaPermission* GetMediaPermission(); 694 media::MediaPermission* GetMediaPermission();
687 695
688 // Sends the current frame's navigation state to the browser. 696 // Sends the current frame's navigation state to the browser.
(...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after
1354 // the RenderFrameImpl to NULL it out when it destructs. 1362 // the RenderFrameImpl to NULL it out when it destructs.
1355 PepperPluginInstanceImpl* pepper_last_mouse_event_target_; 1363 PepperPluginInstanceImpl* pepper_last_mouse_event_target_;
1356 #endif 1364 #endif
1357 1365
1358 HostZoomLevels host_zoom_levels_; 1366 HostZoomLevels host_zoom_levels_;
1359 EngagementOriginAndLevel engagement_level_; 1367 EngagementOriginAndLevel engagement_level_;
1360 1368
1361 mojo::AssociatedBinding<blink::mojom::EngagementClient> engagement_binding_; 1369 mojo::AssociatedBinding<blink::mojom::EngagementClient> engagement_binding_;
1362 mojo::Binding<mojom::Frame> frame_binding_; 1370 mojo::Binding<mojom::Frame> frame_binding_;
1363 mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_; 1371 mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_;
1372 mojo::AssociatedBinding<mojom::FrameBindingsControl>
1373 frame_bindings_control_binding_;
1364 mojom::FrameHostPtr frame_host_; 1374 mojom::FrameHostPtr frame_host_;
1365 1375
1366 // Indicates whether |didAccessInitialDocument| was called. 1376 // Indicates whether |didAccessInitialDocument| was called.
1367 bool has_accessed_initial_document_; 1377 bool has_accessed_initial_document_;
1368 1378
1369 AssociatedInterfaceRegistryImpl associated_interfaces_; 1379 AssociatedInterfaceRegistryImpl associated_interfaces_;
1370 std::unique_ptr<AssociatedInterfaceProviderImpl> 1380 std::unique_ptr<AssociatedInterfaceProviderImpl>
1371 remote_associated_interfaces_; 1381 remote_associated_interfaces_;
1372 1382
1373 // TODO(dcheng): Remove these members. 1383 // TODO(dcheng): Remove these members.
1374 bool committed_first_load_ = false; 1384 bool committed_first_load_ = false;
1375 bool name_changed_before_first_commit_ = false; 1385 bool name_changed_before_first_commit_ = false;
1376 1386
1377 bool browser_side_navigation_pending_ = false; 1387 bool browser_side_navigation_pending_ = false;
1378 1388
1389 // A bitwise OR of bindings types that have been enabled for this RenderFrame.
1390 // See BindingsPolicy for details.
1391 int enabled_bindings_ = 0;
1392
1379 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; 1393 base::WeakPtrFactory<RenderFrameImpl> weak_factory_;
1380 1394
1381 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); 1395 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl);
1382 }; 1396 };
1383 1397
1384 } // namespace content 1398 } // namespace content
1385 1399
1386 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 1400 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
OLDNEW
« no previous file with comments | « content/public/renderer/render_view.h ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698