| Index: content/browser/permissions/permission_service_context.cc
|
| diff --git a/content/browser/permissions/permission_service_context.cc b/content/browser/permissions/permission_service_context.cc
|
| index 7f0a370b5eba04ab2633b77bd9daa5b773c2c675..6cc239654b0b8abce34e1490eb6a38baa23e08f7 100644
|
| --- a/content/browser/permissions/permission_service_context.cc
|
| +++ b/content/browser/permissions/permission_service_context.cc
|
| @@ -74,8 +74,8 @@ PermissionServiceContext::~PermissionServiceContext() {
|
| void PermissionServiceContext::CreateService(
|
| const service_manager::BindSourceInfo& source_info,
|
| blink::mojom::PermissionServiceRequest request) {
|
| - services_.push_back(
|
| - base::MakeUnique<PermissionServiceImpl>(this, std::move(request)));
|
| + services_.AddBinding(base::MakeUnique<PermissionServiceImpl>(this),
|
| + std::move(request));
|
| }
|
|
|
| void PermissionServiceContext::CreateSubscription(
|
| @@ -102,17 +102,6 @@ void PermissionServiceContext::CreateSubscription(
|
| subscriptions_[subscription_id] = std::move(subscription);
|
| }
|
|
|
| -void PermissionServiceContext::ServiceHadConnectionError(
|
| - PermissionServiceImpl* service) {
|
| - auto it = std::find_if(
|
| - services_.begin(), services_.end(),
|
| - [service](const std::unique_ptr<PermissionServiceImpl>& this_service) {
|
| - return service == this_service.get();
|
| - });
|
| - DCHECK(it != services_.end());
|
| - services_.erase(it);
|
| -}
|
| -
|
| void PermissionServiceContext::ObserverHadConnectionError(int subscription_id) {
|
| auto it = subscriptions_.find(subscription_id);
|
| DCHECK(it != subscriptions_.end());
|
| @@ -122,12 +111,12 @@ void PermissionServiceContext::ObserverHadConnectionError(int subscription_id) {
|
| void PermissionServiceContext::RenderFrameHostChanged(
|
| RenderFrameHost* old_host,
|
| RenderFrameHost* new_host) {
|
| - CancelPendingOperations(old_host);
|
| + CloseBindings(old_host);
|
| }
|
|
|
| void PermissionServiceContext::FrameDeleted(
|
| RenderFrameHost* render_frame_host) {
|
| - CancelPendingOperations(render_frame_host);
|
| + CloseBindings(render_frame_host);
|
| }
|
|
|
| void PermissionServiceContext::DidFinishNavigation(
|
| @@ -135,18 +124,16 @@ void PermissionServiceContext::DidFinishNavigation(
|
| if (!navigation_handle->HasCommitted() || navigation_handle->IsSameDocument())
|
| return;
|
|
|
| - CancelPendingOperations(navigation_handle->GetRenderFrameHost());
|
| + CloseBindings(navigation_handle->GetRenderFrameHost());
|
| }
|
|
|
| -void PermissionServiceContext::CancelPendingOperations(
|
| +void PermissionServiceContext::CloseBindings(
|
| RenderFrameHost* render_frame_host) {
|
| DCHECK(render_frame_host_);
|
| if (render_frame_host != render_frame_host_)
|
| return;
|
|
|
| - for (const auto& service : services_)
|
| - service->CancelPendingOperations();
|
| -
|
| + services_.CloseAllBindings();
|
| subscriptions_.clear();
|
| }
|
|
|
|
|