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

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 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 #include "content/public/common/url_constants.h" 97 #include "content/public/common/url_constants.h"
98 #include "content/public/common/url_utils.h" 98 #include "content/public/common/url_utils.h"
99 #include "device/geolocation/geolocation_service_context.h" 99 #include "device/geolocation/geolocation_service_context.h"
100 #include "device/vr/features/features.h" 100 #include "device/vr/features/features.h"
101 #include "device/wake_lock/public/interfaces/wake_lock_context.mojom.h" 101 #include "device/wake_lock/public/interfaces/wake_lock_context.mojom.h"
102 #include "device/wake_lock/public/interfaces/wake_lock_service.mojom.h" 102 #include "device/wake_lock/public/interfaces/wake_lock_service.mojom.h"
103 #include "media/base/media_switches.h" 103 #include "media/base/media_switches.h"
104 #include "media/media_features.h" 104 #include "media/media_features.h"
105 #include "media/mojo/interfaces/media_service.mojom.h" 105 #include "media/mojo/interfaces/media_service.mojom.h"
106 #include "media/mojo/interfaces/remoting.mojom.h" 106 #include "media/mojo/interfaces/remoting.mojom.h"
107 #include "media/mojo/services/media_interface_provider.h"
107 #include "mojo/public/cpp/bindings/associated_interface_ptr.h" 108 #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
108 #include "mojo/public/cpp/bindings/strong_binding.h" 109 #include "mojo/public/cpp/bindings/strong_binding.h"
109 #include "mojo/public/cpp/system/data_pipe.h" 110 #include "mojo/public/cpp/system/data_pipe.h"
110 #include "services/service_manager/public/cpp/connector.h" 111 #include "services/service_manager/public/cpp/connector.h"
111 #include "services/service_manager/public/cpp/interface_provider.h" 112 #include "services/service_manager/public/cpp/interface_provider.h"
112 #include "third_party/WebKit/public/platform/WebFeaturePolicy.h" 113 #include "third_party/WebKit/public/platform/WebFeaturePolicy.h"
113 #include "ui/accessibility/ax_tree.h" 114 #include "ui/accessibility/ax_tree.h"
114 #include "ui/accessibility/ax_tree_id_registry.h" 115 #include "ui/accessibility/ax_tree_id_registry.h"
115 #include "ui/accessibility/ax_tree_update.h" 116 #include "ui/accessibility/ax_tree_update.h"
116 #include "ui/gfx/geometry/quad_f.h" 117 #include "ui/gfx/geometry/quad_f.h"
(...skipping 3630 matching lines...) Expand 10 before | Expand all | Expand 10 after
3747 } 3748 }
3748 3749
3749 void RenderFrameHostImpl::BeforeUnloadTimeout() { 3750 void RenderFrameHostImpl::BeforeUnloadTimeout() {
3750 if (render_view_host_->GetDelegate()->ShouldIgnoreUnresponsiveRenderer()) 3751 if (render_view_host_->GetDelegate()->ShouldIgnoreUnresponsiveRenderer())
3751 return; 3752 return;
3752 3753
3753 SimulateBeforeUnloadAck(); 3754 SimulateBeforeUnloadAck();
3754 } 3755 }
3755 3756
3756 #if defined(OS_ANDROID) 3757 #if defined(OS_ANDROID)
3758
3759 class RenderFrameHostImpl::JavaInterfaceProvider
3760 : public service_manager::mojom::InterfaceProvider {
3761 public:
3762 JavaInterfaceProvider(
3763 const service_manager::BinderRegistry::Binder& bind_callback,
3764 service_manager::mojom::InterfaceProviderRequest request)
3765 : bind_callback_(bind_callback), binding_(this, std::move(request)) {}
3766 ~JavaInterfaceProvider() override = default;
3767
3768 private:
3769 // service_manager::mojom::INterfaceProvider:
3770 void GetInterface(const std::string& interface_name,
3771 mojo::ScopedMessagePipeHandle handle) override {
3772 bind_callback_.Run(interface_name, std::move(handle));
3773 }
3774
3775 service_manager::BinderRegistry::Binder bind_callback_;
3776 mojo::Binding<service_manager::mojom::InterfaceProvider> binding_;
3777
3778 DISALLOW_COPY_AND_ASSIGN(JavaInterfaceProvider);
3779 };
3780
3757 base::android::ScopedJavaLocalRef<jobject> 3781 base::android::ScopedJavaLocalRef<jobject>
3758 RenderFrameHostImpl::GetJavaRenderFrameHost() { 3782 RenderFrameHostImpl::GetJavaRenderFrameHost() {
3759 RenderFrameHostAndroid* render_frame_host_android = 3783 RenderFrameHostAndroid* render_frame_host_android =
3760 static_cast<RenderFrameHostAndroid*>( 3784 static_cast<RenderFrameHostAndroid*>(
3761 GetUserData(kRenderFrameHostAndroidKey)); 3785 GetUserData(kRenderFrameHostAndroidKey));
3762 if (!render_frame_host_android) { 3786 if (!render_frame_host_android) {
3763 java_interface_registry_ =
3764 base::MakeUnique<service_manager::InterfaceRegistry>(
3765 "RenderFrameHost Java");
3766 service_manager::mojom::InterfaceProviderPtr interface_provider_ptr; 3787 service_manager::mojom::InterfaceProviderPtr interface_provider_ptr;
3767 java_interface_registry_->set_default_binder( 3788 java_interface_registry_ = base::MakeUnique<JavaInterfaceProvider>(
3768 base::Bind(&RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame, 3789 base::Bind(&RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame,
3769 weak_ptr_factory_.GetWeakPtr())); 3790 weak_ptr_factory_.GetWeakPtr()),
3770 java_interface_registry_->Bind( 3791 mojo::MakeRequest(&interface_provider_ptr));
3771 mojo::MakeRequest(&interface_provider_ptr), service_manager::Identity(),
3772 service_manager::InterfaceProviderSpec(), service_manager::Identity(),
3773 service_manager::InterfaceProviderSpec());
3774 render_frame_host_android = 3792 render_frame_host_android =
3775 new RenderFrameHostAndroid(this, std::move(interface_provider_ptr)); 3793 new RenderFrameHostAndroid(this, std::move(interface_provider_ptr));
3776 SetUserData(kRenderFrameHostAndroidKey, render_frame_host_android); 3794 SetUserData(kRenderFrameHostAndroidKey, render_frame_host_android);
3777 } 3795 }
3778 return render_frame_host_android->GetJavaObject(); 3796 return render_frame_host_android->GetJavaObject();
3779 } 3797 }
3780 3798
3781 service_manager::InterfaceProvider* RenderFrameHostImpl::GetJavaInterfaces() { 3799 service_manager::InterfaceProvider* RenderFrameHostImpl::GetJavaInterfaces() {
3782 if (!java_interfaces_) { 3800 if (!java_interfaces_) {
3783 service_manager::mojom::InterfaceProviderPtr provider; 3801 service_manager::mojom::InterfaceProviderPtr provider;
3784 BindInterfaceRegistryForRenderFrameHost(mojo::MakeRequest(&provider), this); 3802 BindInterfaceRegistryForRenderFrameHost(mojo::MakeRequest(&provider), this);
3785 java_interfaces_.reset(new service_manager::InterfaceProvider); 3803 java_interfaces_.reset(new service_manager::InterfaceProvider);
3786 java_interfaces_->Bind(std::move(provider)); 3804 java_interfaces_->Bind(std::move(provider));
3787 } 3805 }
3788 return java_interfaces_.get(); 3806 return java_interfaces_.get();
3789 } 3807 }
3790 3808
3791 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame( 3809 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame(
3792 const std::string& interface_name, 3810 const std::string& interface_name,
3793 mojo::ScopedMessagePipeHandle pipe) { 3811 mojo::ScopedMessagePipeHandle pipe) {
3794 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe)); 3812 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe));
3795 } 3813 }
3796 #endif 3814 #endif
3797 3815
3798 } // namespace content 3816 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698