Index: mojo/application/public/interfaces/content_handler.mojom |
diff --git a/mojo/application/public/interfaces/content_handler.mojom b/mojo/application/public/interfaces/content_handler.mojom |
index 4281bf6278e39589b84a4ced5fd3fcdbf30939dc..7494a7bf027976133acce92e3adc4dd6675f11cd 100644 |
--- a/mojo/application/public/interfaces/content_handler.mojom |
+++ b/mojo/application/public/interfaces/content_handler.mojom |
@@ -7,6 +7,14 @@ module mojo; |
import "mojo/application/public/interfaces/application.mojom"; |
import "network/public/interfaces/url_loader.mojom"; |
+// Interface implemented by content handlers. To avoid race conditions with |
+// dropped requests, the implementation should keep a reference to the lifetime |
+// of the app (by holding on to AppRefCount). Each application started by |
+// StartApplication should call the callback given by that method on |
+// destruction. When the owner in the shell notices this, it will destroy the |
+// interface pointer, which should cause the strongly-bound ContentHandler |
+// implementation to self destruct and release the app reference. |
interface ContentHandler { |
- StartApplication(Application& application, URLResponse response); |
+ // The callback should be called when the application is destructed. |
+ StartApplication(Application& application, URLResponse response) => (); |
}; |