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

Unified Diff: mojo/bindings/js/handle.cc

Issue 534953002: Mojo: Cancel WaitingCallbacks when their HandleWrappers are closed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ObserverList Created 6 years, 3 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: mojo/bindings/js/handle.cc
diff --git a/mojo/bindings/js/handle.cc b/mojo/bindings/js/handle.cc
index e1d0fb04b60c063466536c04f48502c7b1423179..1c7dee608e149514e01d920f80c0183e6d60eb50 100644
--- a/mojo/bindings/js/handle.cc
+++ b/mojo/bindings/js/handle.cc
@@ -13,6 +13,24 @@ HandleWrapper::HandleWrapper(MojoHandle handle)
}
HandleWrapper::~HandleWrapper() {
+ NotifyCloseObservers();
+}
+
+void HandleWrapper::Close() {
+ NotifyCloseObservers();
+ handle_.reset();
+}
+
+void HandleWrapper::AddCloseObserver(CloseObserver* observer) {
+ close_observers_.AddObserver(observer);
+}
+
+void HandleWrapper::RemoveCloseObserver(CloseObserver* observer) {
+ close_observers_.RemoveObserver(observer);
+}
+
+void HandleWrapper::NotifyCloseObservers() {
+ FOR_EACH_OBSERVER(CloseObserver, close_observers_, OnHandleClosed());
sky 2014/09/03 15:47:04 Should we only notify the observers if the handle
Sam McNally 2014/09/08 04:31:52 Done.
}
v8::Handle<v8::Value> Converter<mojo::Handle>::ToV8(v8::Isolate* isolate,

Powered by Google App Engine
This is Rietveld 408576698