Index: content/public/browser/web_contents_binding_set.cc |
diff --git a/content/public/browser/web_contents_binding_set.cc b/content/public/browser/web_contents_binding_set.cc |
index bf46ed6308d6988eda4d93af7529a58c30190cf9..39e97117a2714399b814f8723544069af66641e2 100644 |
--- a/content/public/browser/web_contents_binding_set.cc |
+++ b/content/public/browser/web_contents_binding_set.cc |
@@ -20,9 +20,8 @@ void WebContentsBindingSet::Binder::OnRequestForFrame( |
WebContentsBindingSet::WebContentsBindingSet(WebContents* web_contents, |
const std::string& interface_name, |
std::unique_ptr<Binder> binder) |
- : remove_callback_( |
- static_cast<WebContentsImpl*>(web_contents)->AddBindingSet( |
- interface_name, this)), |
+ : remove_callback_(static_cast<WebContentsImpl*>(web_contents) |
+ ->AddBindingSet(interface_name, this)), |
binder_(std::move(binder)) {} |
WebContentsBindingSet::~WebContentsBindingSet() { |
@@ -30,12 +29,18 @@ WebContentsBindingSet::~WebContentsBindingSet() { |
} |
void WebContentsBindingSet::CloseAllBindings() { |
+ binder_for_testing_.reset(); |
binder_.reset(); |
} |
void WebContentsBindingSet::OnRequestForFrame( |
RenderFrameHost* render_frame_host, |
mojo::ScopedInterfaceEndpointHandle handle) { |
+ if (binder_for_testing_) { |
+ binder_for_testing_->OnRequestForFrame(render_frame_host, |
+ std::move(handle)); |
+ return; |
+ } |
DCHECK(binder_); |
binder_->OnRequestForFrame(render_frame_host, std::move(handle)); |
} |