| Index: content/renderer/web_ui_mojo_context_state.h
|
| diff --git a/content/renderer/web_ui_mojo_context_state.h b/content/renderer/web_ui_mojo_context_state.h
|
| index e4eb0a4ed58dd2fabe8f783ba655bffafaa9d7bc..4ce995fdf177bd2fffef039fe9709b7853f7d903 100644
|
| --- a/content/renderer/web_ui_mojo_context_state.h
|
| +++ b/content/renderer/web_ui_mojo_context_state.h
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/scoped_vector.h"
|
| +#include "base/memory/weak_ptr.h"
|
| #include "gin/modules/module_registry_observer.h"
|
| #include "mojo/public/cpp/system/core.h"
|
| #include "v8/include/v8.h"
|
| @@ -21,20 +22,24 @@ class WebURLResponse;
|
|
|
| namespace gin {
|
| class ContextHolder;
|
| +class Runner;
|
| struct PendingModule;
|
| }
|
|
|
| namespace content {
|
|
|
| +class RenderViewImpl;
|
| class ResourceFetcher;
|
| class WebUIRunner;
|
|
|
| // WebUIMojoContextState manages the modules needed for mojo bindings. It does
|
| // this by way of gin. Non-builtin modules are downloaded by way of
|
| // ResourceFetchers.
|
| -class WebUIMojoContextState : public gin::ModuleRegistryObserver {
|
| +class WebUIMojoContextState
|
| + : public gin::ModuleRegistryObserver,
|
| + public base::SupportsWeakPtr<WebUIMojoContextState> {
|
| public:
|
| - WebUIMojoContextState(blink::WebFrame* frame,
|
| + WebUIMojoContextState(RenderViewImpl* render_view,
|
| v8::Handle<v8::Context> context);
|
| virtual ~WebUIMojoContextState();
|
|
|
| @@ -47,6 +52,12 @@ class WebUIMojoContextState : public gin::ModuleRegistryObserver {
|
| private:
|
| class Loader;
|
|
|
| + // The implementation of the 'main' module. Calls the closure passed in and
|
| + // then notifies our RenderView that we've run the main closure.
|
| + void RunMain(base::WeakPtr<gin::Runner> runner,
|
| + mojo::ScopedMessagePipeHandle* handle,
|
| + v8::Handle<v8::Value> module);
|
| +
|
| // Invokes FetchModule() for any modules that have not already been
|
| // downloaded.
|
| void FetchModules(const std::vector<std::string>& ids);
|
| @@ -67,6 +78,10 @@ class WebUIMojoContextState : public gin::ModuleRegistryObserver {
|
| // Frame script is executed in. Also used to download resources.
|
| blink::WebFrame* frame_;
|
|
|
| + // We keep the RenderViewImpl so we can send a message once the main callback
|
| + // has run.
|
| + RenderViewImpl* render_view_impl_;
|
| +
|
| // See description above getter.
|
| bool module_added_;
|
|
|
|
|