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

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

Issue 2446313003: Revise InterfaceRegistry API to support filtering interfaces @ Bind() time. (Closed)
Patch Set: . Created 4 years, 1 month 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 | « no previous file | content/browser/renderer_host/render_process_host_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 #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 <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 793 matching lines...) Expand 10 before | Expand all | Expand 10 after
804 ResetLoadingState(); 804 ResetLoadingState();
805 805
806 // Any future UpdateState or UpdateTitle messages from this or a recreated 806 // Any future UpdateState or UpdateTitle messages from this or a recreated
807 // process should be ignored until the next commit. 807 // process should be ignored until the next commit.
808 set_nav_entry_id(0); 808 set_nav_entry_id(0);
809 } 809 }
810 810
811 void RenderFrameHostImpl::Create( 811 void RenderFrameHostImpl::Create(
812 const service_manager::Identity& remote_identity, 812 const service_manager::Identity& remote_identity,
813 media::mojom::InterfaceFactoryRequest request) { 813 media::mojom::InterfaceFactoryRequest request) {
814 std::unique_ptr<service_manager::InterfaceRegistry> registry( 814 auto registry = base::MakeUnique<service_manager::InterfaceRegistry>(
815 new service_manager::InterfaceRegistry); 815 service_manager::Identity(), service_manager::InterfaceProviderSpec());
816 #if defined(OS_ANDROID) && defined(ENABLE_MOJO_CDM) 816 #if defined(OS_ANDROID) && defined(ENABLE_MOJO_CDM)
817 registry->AddInterface( 817 registry->AddInterface(
818 base::Bind(&ProvisionFetcherImpl::Create, this)); 818 base::Bind(&ProvisionFetcherImpl::Create, this));
819 #endif 819 #endif
820 GetContentClient()->browser()->ExposeInterfacesToMediaService(registry.get(), 820 GetContentClient()->browser()->ExposeInterfacesToMediaService(registry.get(),
821 this); 821 this);
822 service_manager::mojom::InterfaceProviderPtr interfaces; 822 service_manager::mojom::InterfaceProviderPtr interfaces;
823 registry->Bind(GetProxy(&interfaces)); 823 registry->Bind(GetProxy(&interfaces),
824 service_manager::Identity(),
825 service_manager::InterfaceProviderSpec());
824 media_registries_.push_back(std::move(registry)); 826 media_registries_.push_back(std::move(registry));
825 827
826 // TODO(slan): Use the BrowserContext Connector instead. See crbug.com/638950. 828 // TODO(slan): Use the BrowserContext Connector instead. See crbug.com/638950.
827 media::mojom::MediaServicePtr media_service; 829 media::mojom::MediaServicePtr media_service;
828 service_manager::Connector* connector = 830 service_manager::Connector* connector =
829 ServiceManagerConnection::GetForProcess()->GetConnector(); 831 ServiceManagerConnection::GetForProcess()->GetConnector();
830 connector->ConnectToInterface("service:media", &media_service); 832 connector->ConnectToInterface("service:media", &media_service);
831 media_service->CreateInterfaceFactory(std::move(request), 833 media_service->CreateInterfaceFactory(std::move(request),
832 std::move(interfaces)); 834 std::move(interfaces));
833 } 835 }
(...skipping 1739 matching lines...) Expand 10 before | Expand all | Expand 10 after
2573 2575
2574 // An error page is expected to commit, hence why is_loading_ is set to true. 2576 // An error page is expected to commit, hence why is_loading_ is set to true.
2575 is_loading_ = true; 2577 is_loading_ = true;
2576 frame_tree_node_->ResetNavigationRequest(true); 2578 frame_tree_node_->ResetNavigationRequest(true);
2577 } 2579 }
2578 2580
2579 void RenderFrameHostImpl::SetUpMojoIfNeeded() { 2581 void RenderFrameHostImpl::SetUpMojoIfNeeded() {
2580 if (interface_registry_.get()) 2582 if (interface_registry_.get())
2581 return; 2583 return;
2582 2584
2583 interface_registry_.reset(new service_manager::InterfaceRegistry); 2585 interface_registry_ = base::MakeUnique<service_manager::InterfaceRegistry>(
2586 service_manager::Identity(), service_manager::InterfaceProviderSpec());
2584 if (!GetProcess()->GetRemoteInterfaces()) 2587 if (!GetProcess()->GetRemoteInterfaces())
2585 return; 2588 return;
2586 2589
2587 RegisterMojoInterfaces(); 2590 RegisterMojoInterfaces();
2588 mojom::FrameFactoryPtr frame_factory; 2591 mojom::FrameFactoryPtr frame_factory;
2589 GetProcess()->GetRemoteInterfaces()->GetInterface(&frame_factory); 2592 GetProcess()->GetRemoteInterfaces()->GetInterface(&frame_factory);
2590 frame_factory->CreateFrame(routing_id_, GetProxy(&frame_), 2593 frame_factory->CreateFrame(routing_id_, GetProxy(&frame_),
2591 frame_host_binding_.CreateInterfacePtrAndBind()); 2594 frame_host_binding_.CreateInterfacePtrAndBind());
2592 2595
2593 service_manager::mojom::InterfaceProviderPtr remote_interfaces; 2596 service_manager::mojom::InterfaceProviderPtr remote_interfaces;
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
2857 file_system_context->CrackURL(file.file_system_url) 2860 file_system_context->CrackURL(file.file_system_url)
2858 .mount_filesystem_id()); 2861 .mount_filesystem_id());
2859 } 2862 }
2860 } 2863 }
2861 2864
2862 Send(new FrameMsg_RunFileChooserResponse(routing_id_, files)); 2865 Send(new FrameMsg_RunFileChooserResponse(routing_id_, files));
2863 } 2866 }
2864 2867
2865 void RenderFrameHostImpl::GetInterfaceProvider( 2868 void RenderFrameHostImpl::GetInterfaceProvider(
2866 service_manager::mojom::InterfaceProviderRequest interfaces) { 2869 service_manager::mojom::InterfaceProviderRequest interfaces) {
2867 interface_registry_->Bind(std::move(interfaces)); 2870 interface_registry_->Bind(std::move(interfaces),
2871 service_manager::Identity(),
2872 service_manager::InterfaceProviderSpec());
2868 } 2873 }
2869 2874
2870 #if defined(USE_EXTERNAL_POPUP_MENU) 2875 #if defined(USE_EXTERNAL_POPUP_MENU)
2871 #if defined(OS_MACOSX) 2876 #if defined(OS_MACOSX)
2872 2877
2873 void RenderFrameHostImpl::DidSelectPopupMenuItem(int selected_index) { 2878 void RenderFrameHostImpl::DidSelectPopupMenuItem(int selected_index) {
2874 Send(new FrameMsg_SelectPopupMenuItem(routing_id_, selected_index)); 2879 Send(new FrameMsg_SelectPopupMenuItem(routing_id_, selected_index));
2875 } 2880 }
2876 2881
2877 void RenderFrameHostImpl::DidCancelPopupMenu() { 2882 void RenderFrameHostImpl::DidCancelPopupMenu() {
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
3138 web_bluetooth_service_->SetClientConnectionErrorHandler(base::Bind( 3143 web_bluetooth_service_->SetClientConnectionErrorHandler(base::Bind(
3139 &RenderFrameHostImpl::DeleteWebBluetoothService, base::Unretained(this))); 3144 &RenderFrameHostImpl::DeleteWebBluetoothService, base::Unretained(this)));
3140 return web_bluetooth_service_.get(); 3145 return web_bluetooth_service_.get();
3141 } 3146 }
3142 3147
3143 void RenderFrameHostImpl::DeleteWebBluetoothService() { 3148 void RenderFrameHostImpl::DeleteWebBluetoothService() {
3144 web_bluetooth_service_.reset(); 3149 web_bluetooth_service_.reset();
3145 } 3150 }
3146 3151
3147 } // namespace content 3152 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/browser/renderer_host/render_process_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698