Chromium Code Reviews| Index: ios/web/web_state/web_state_impl.h |
| diff --git a/ios/web/web_state/web_state_impl.h b/ios/web/web_state/web_state_impl.h |
| index 25d7d2288641511398a3b3aa6275cfc22b8e681e..3b802afa376d7dfd5ecbe7b80dfb4f01ac450c18 100644 |
| --- a/ios/web/web_state/web_state_impl.h |
| +++ b/ios/web/web_state/web_state_impl.h |
| @@ -23,6 +23,9 @@ |
| #include "ios/web/public/java_script_dialog_type.h" |
| #import "ios/web/public/web_state/web_state.h" |
| #import "ios/web/public/web_state/web_state_delegate.h" |
| +#include "mojo/public/cpp/bindings/binding.h" |
| +#include "services/service_manager/public/cpp/binder_registry.h" |
| +#include "services/service_manager/public/interfaces/interface_provider.mojom.h" |
| #include "url/gurl.h" |
| @class CRWSessionStorage; |
| @@ -47,6 +50,28 @@ class WebInterstitialImpl; |
| class WebStatePolicyDecider; |
| class WebUIIOS; |
| +class WebStateInterfaceProvider |
|
Ken Rockot(use gerrit already)
2017/04/28 17:44:02
Should probably be its own header+mm per the style
|
| + : public service_manager::mojom::InterfaceProvider { |
| + public: |
| + WebStateInterfaceProvider(); |
| + ~WebStateInterfaceProvider() override; |
| + |
| + void Bind(service_manager::mojom::InterfaceProviderRequest request); |
| + |
| + service_manager::BinderRegistry* registry() { return ®istry_; } |
| + |
| + private: |
| + // service_manager::mojom::InterfaceProvider: |
| + void GetInterface(const std::string& interface_name, |
| + mojo::ScopedMessagePipeHandle handle) override; |
| + |
| + service_manager::BinderRegistry registry_; |
| + |
| + mojo::Binding<service_manager::mojom::InterfaceProvider> binding_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(WebStateInterfaceProvider); |
| +} |
|
Ken Rockot(use gerrit already)
2017/04/28 17:44:02
;
|
| + |
| // Implementation of WebState. |
| // Generally mirrors //content's WebContents implementation. |
| // General notes on expected WebStateImpl ownership patterns: |
| @@ -59,7 +84,8 @@ class WebUIIOS; |
| // - SessionWindows are transient owners, passing ownership into WebControllers |
| // during session restore, and discarding owned copies of WebStateImpls after |
| // writing them out for session saves. |
| -class WebStateImpl : public WebState, public NavigationManagerDelegate { |
| +class WebStateImpl : public WebState, |
| + public NavigationManagerDelegate { |
| public: |
| // Constructor for WebStateImpls created for new sessions. |
| WebStateImpl(const CreateParams& params); |
| @@ -210,7 +236,7 @@ class WebStateImpl : public WebState, public NavigationManagerDelegate { |
| const std::string& command_prefix) override; |
| void RemoveScriptCommandCallback(const std::string& command_prefix) override; |
| id<CRWWebViewProxy> GetWebViewProxy() const override; |
| - service_manager::InterfaceRegistry* GetMojoInterfaceRegistry() override; |
| + WebStateInterfaceProvider* GetWebStateInterfaceProvider() override; |
|
Ken Rockot(use gerrit already)
2017/04/28 17:44:02
need to update WebState too
|
| bool HasOpener() const override; |
| base::WeakPtr<WebState> AsWeakPtr() override; |
| @@ -351,7 +377,7 @@ class WebStateImpl : public WebState, public NavigationManagerDelegate { |
| base::WeakPtrFactory<WebState> weak_factory_; |
| // Mojo interface registry for this WebState. |
| - std::unique_ptr<service_manager::InterfaceRegistry> mojo_interface_registry_; |
| + std::unique_ptr<WebStateInterfaceProvider> web_state_interface_provider_; |
| DISALLOW_COPY_AND_ASSIGN(WebStateImpl); |
| }; |