| Index: content/renderer/mojo/interface_provider_js_wrapper.h
|
| diff --git a/content/renderer/mojo/interface_provider_js_wrapper.h b/content/renderer/mojo/interface_provider_js_wrapper.h
|
| index aa0a47956da46eda4d866c6b59f7544b4d3370ea..ec18bfc187a066ff01e2a1f24e1c1044b25e425a 100644
|
| --- a/content/renderer/mojo/interface_provider_js_wrapper.h
|
| +++ b/content/renderer/mojo/interface_provider_js_wrapper.h
|
| @@ -16,14 +16,14 @@
|
| #include "v8/include/v8.h"
|
|
|
| namespace service_manager {
|
| +class Connector;
|
| class InterfaceProvider;
|
| }
|
|
|
| namespace content {
|
|
|
| -// A JS wrapper around service_manager::InterfaceProvider that allows connecting
|
| -// to
|
| -// remote services.
|
| +// A JS wrapper around service_manager::Connector/InterfaceProvider that allows
|
| +// script to bind interfaces exposed by the browser.
|
| class CONTENT_EXPORT InterfaceProviderJsWrapper
|
| : public gin::Wrappable<InterfaceProviderJsWrapper> {
|
| public:
|
| @@ -31,6 +31,10 @@ class CONTENT_EXPORT InterfaceProviderJsWrapper
|
| static gin::Handle<InterfaceProviderJsWrapper> Create(
|
| v8::Isolate* isolate,
|
| v8::Handle<v8::Context> context,
|
| + service_manager::Connector* connector);
|
| + static gin::Handle<InterfaceProviderJsWrapper> Create(
|
| + v8::Isolate* isolate,
|
| + v8::Handle<v8::Context> context,
|
| service_manager::InterfaceProvider* remote_interfaces);
|
|
|
| // gin::Wrappable<InterfaceProviderJsWrapper> overrides.
|
| @@ -50,10 +54,15 @@ class CONTENT_EXPORT InterfaceProviderJsWrapper
|
| private:
|
| using ScopedJsFactory =
|
| v8::Persistent<v8::Function, v8::CopyablePersistentTraits<v8::Function>>;
|
| + using BindCallback = base::Callback<void(mojo::ScopedMessagePipeHandle)>;
|
|
|
| InterfaceProviderJsWrapper(
|
| v8::Isolate* isolate,
|
| v8::Handle<v8::Context> context,
|
| + base::WeakPtr<service_manager::Connector> connector);
|
| + InterfaceProviderJsWrapper(
|
| + v8::Isolate* isolate,
|
| + v8::Handle<v8::Context> context,
|
| base::WeakPtr<service_manager::InterfaceProvider> remote_interfaces);
|
|
|
| void CallJsFactory(const ScopedJsFactory& factory,
|
| @@ -64,6 +73,8 @@ class CONTENT_EXPORT InterfaceProviderJsWrapper
|
|
|
| v8::Isolate* isolate_;
|
| v8::Global<v8::Context> context_;
|
| + // Either one of the following two fields will be non-null.
|
| + base::WeakPtr<service_manager::Connector> connector_;
|
| base::WeakPtr<service_manager::InterfaceProvider> remote_interfaces_;
|
|
|
| base::WeakPtrFactory<InterfaceProviderJsWrapper> weak_factory_;
|
|
|