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

Unified Diff: content/browser/permissions/permission_service_context.cc

Issue 2842013002: Use a mojo::StrongBindingSet to manage PermissionServiceImpls (Closed)
Patch Set: Rebased 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 side-by-side diff with in-line comments
Download patch
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();
}
« no previous file with comments | « content/browser/permissions/permission_service_context.h ('k') | content/browser/permissions/permission_service_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698