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

Side by Side Diff: content/browser/frame_host/render_frame_host_impl.cc

Issue 2847743003: Eliminate InterfaceRegistry (Closed)
Patch Set: . Created 3 years, 7 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 #include "content/browser/frame_host/render_frame_host_impl.h" 5 #include "content/browser/frame_host/render_frame_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 #include "content/public/common/url_constants.h" 98 #include "content/public/common/url_constants.h"
99 #include "content/public/common/url_utils.h" 99 #include "content/public/common/url_utils.h"
100 #include "device/geolocation/geolocation_service_context.h" 100 #include "device/geolocation/geolocation_service_context.h"
101 #include "device/vr/features/features.h" 101 #include "device/vr/features/features.h"
102 #include "device/wake_lock/public/interfaces/wake_lock_context.mojom.h" 102 #include "device/wake_lock/public/interfaces/wake_lock_context.mojom.h"
103 #include "device/wake_lock/public/interfaces/wake_lock_service.mojom.h" 103 #include "device/wake_lock/public/interfaces/wake_lock_service.mojom.h"
104 #include "media/base/media_switches.h" 104 #include "media/base/media_switches.h"
105 #include "media/media_features.h" 105 #include "media/media_features.h"
106 #include "media/mojo/interfaces/media_service.mojom.h" 106 #include "media/mojo/interfaces/media_service.mojom.h"
107 #include "media/mojo/interfaces/remoting.mojom.h" 107 #include "media/mojo/interfaces/remoting.mojom.h"
108 #include "media/mojo/services/media_interface_provider.h"
108 #include "mojo/public/cpp/bindings/associated_interface_ptr.h" 109 #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
109 #include "mojo/public/cpp/bindings/strong_binding.h" 110 #include "mojo/public/cpp/bindings/strong_binding.h"
110 #include "mojo/public/cpp/system/data_pipe.h" 111 #include "mojo/public/cpp/system/data_pipe.h"
111 #include "services/service_manager/public/cpp/connector.h" 112 #include "services/service_manager/public/cpp/connector.h"
112 #include "services/service_manager/public/cpp/interface_provider.h" 113 #include "services/service_manager/public/cpp/interface_provider.h"
113 #include "third_party/WebKit/public/platform/WebFeaturePolicy.h" 114 #include "third_party/WebKit/public/platform/WebFeaturePolicy.h"
114 #include "ui/accessibility/ax_tree.h" 115 #include "ui/accessibility/ax_tree.h"
115 #include "ui/accessibility/ax_tree_id_registry.h" 116 #include "ui/accessibility/ax_tree_id_registry.h"
116 #include "ui/accessibility/ax_tree_update.h" 117 #include "ui/accessibility/ax_tree_update.h"
117 #include "ui/gfx/geometry/quad_f.h" 118 #include "ui/gfx/geometry/quad_f.h"
(...skipping 3703 matching lines...) Expand 10 before | Expand all | Expand 10 after
3821 } 3822 }
3822 3823
3823 void RenderFrameHostImpl::BeforeUnloadTimeout() { 3824 void RenderFrameHostImpl::BeforeUnloadTimeout() {
3824 if (render_view_host_->GetDelegate()->ShouldIgnoreUnresponsiveRenderer()) 3825 if (render_view_host_->GetDelegate()->ShouldIgnoreUnresponsiveRenderer())
3825 return; 3826 return;
3826 3827
3827 SimulateBeforeUnloadAck(); 3828 SimulateBeforeUnloadAck();
3828 } 3829 }
3829 3830
3830 #if defined(OS_ANDROID) 3831 #if defined(OS_ANDROID)
3832
3833 class RenderFrameHostImpl::JavaInterfaceProvider
3834 : public service_manager::mojom::InterfaceProvider {
3835 public:
3836 JavaInterfaceProvider(
3837 const service_manager::BinderRegistry::Binder& bind_callback,
3838 service_manager::mojom::InterfaceProviderRequest request)
3839 : bind_callback_(bind_callback), binding_(this, std::move(request)) {}
3840 ~JavaInterfaceProvider() override = default;
3841
3842 private:
3843 // service_manager::mojom::INterfaceProvider:
3844 void GetInterface(const std::string& interface_name,
3845 mojo::ScopedMessagePipeHandle handle) override {
3846 bind_callback_.Run(interface_name, std::move(handle));
3847 }
3848
3849 service_manager::BinderRegistry::Binder bind_callback_;
3850 mojo::Binding<service_manager::mojom::InterfaceProvider> binding_;
3851
3852 DISALLOW_COPY_AND_ASSIGN(JavaInterfaceProvider);
3853 };
3854
3831 base::android::ScopedJavaLocalRef<jobject> 3855 base::android::ScopedJavaLocalRef<jobject>
3832 RenderFrameHostImpl::GetJavaRenderFrameHost() { 3856 RenderFrameHostImpl::GetJavaRenderFrameHost() {
3833 RenderFrameHostAndroid* render_frame_host_android = 3857 RenderFrameHostAndroid* render_frame_host_android =
3834 static_cast<RenderFrameHostAndroid*>( 3858 static_cast<RenderFrameHostAndroid*>(
3835 GetUserData(kRenderFrameHostAndroidKey)); 3859 GetUserData(kRenderFrameHostAndroidKey));
3836 if (!render_frame_host_android) { 3860 if (!render_frame_host_android) {
3837 java_interface_registry_ =
3838 base::MakeUnique<service_manager::InterfaceRegistry>(
3839 "RenderFrameHost Java");
3840 service_manager::mojom::InterfaceProviderPtr interface_provider_ptr; 3861 service_manager::mojom::InterfaceProviderPtr interface_provider_ptr;
3841 java_interface_registry_->set_default_binder( 3862 java_interface_registry_ = base::MakeUnique<JavaInterfaceProvider>(
3842 base::Bind(&RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame, 3863 base::Bind(&RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame,
3843 weak_ptr_factory_.GetWeakPtr())); 3864 weak_ptr_factory_.GetWeakPtr()),
3844 java_interface_registry_->Bind( 3865 mojo::MakeRequest(&interface_provider_ptr));
3845 mojo::MakeRequest(&interface_provider_ptr), service_manager::Identity(),
3846 service_manager::InterfaceProviderSpec(), service_manager::Identity(),
3847 service_manager::InterfaceProviderSpec());
3848 render_frame_host_android = 3866 render_frame_host_android =
3849 new RenderFrameHostAndroid(this, std::move(interface_provider_ptr)); 3867 new RenderFrameHostAndroid(this, std::move(interface_provider_ptr));
3850 SetUserData(kRenderFrameHostAndroidKey, render_frame_host_android); 3868 SetUserData(kRenderFrameHostAndroidKey, render_frame_host_android);
3851 } 3869 }
3852 return render_frame_host_android->GetJavaObject(); 3870 return render_frame_host_android->GetJavaObject();
3853 } 3871 }
3854 3872
3855 service_manager::InterfaceProvider* RenderFrameHostImpl::GetJavaInterfaces() { 3873 service_manager::InterfaceProvider* RenderFrameHostImpl::GetJavaInterfaces() {
3856 if (!java_interfaces_) { 3874 if (!java_interfaces_) {
3857 service_manager::mojom::InterfaceProviderPtr provider; 3875 service_manager::mojom::InterfaceProviderPtr provider;
3858 BindInterfaceRegistryForRenderFrameHost(mojo::MakeRequest(&provider), this); 3876 BindInterfaceRegistryForRenderFrameHost(mojo::MakeRequest(&provider), this);
3859 java_interfaces_.reset(new service_manager::InterfaceProvider); 3877 java_interfaces_.reset(new service_manager::InterfaceProvider);
3860 java_interfaces_->Bind(std::move(provider)); 3878 java_interfaces_->Bind(std::move(provider));
3861 } 3879 }
3862 return java_interfaces_.get(); 3880 return java_interfaces_.get();
3863 } 3881 }
3864 3882
3865 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame( 3883 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame(
3866 const std::string& interface_name, 3884 const std::string& interface_name,
3867 mojo::ScopedMessagePipeHandle pipe) { 3885 mojo::ScopedMessagePipeHandle pipe) {
3868 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe)); 3886 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe));
3869 } 3887 }
3870 #endif 3888 #endif
3871 3889
3872 } // namespace content 3890 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.h ('k') | content/browser/media/media_interface_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698