| Index: mojo/services/html_viewer/html_viewer.cc
|
| diff --git a/mojo/services/html_viewer/html_viewer.cc b/mojo/services/html_viewer/html_viewer.cc
|
| index e8b5c76314bbf01afa43a1b6b037f18a495b866b..8bddb9c54c1b849095fbd71c44d2a602f4c9d4b1 100644
|
| --- a/mojo/services/html_viewer/html_viewer.cc
|
| +++ b/mojo/services/html_viewer/html_viewer.cc
|
| @@ -11,6 +11,7 @@
|
| #include "mojo/public/cpp/application/interface_factory_impl.h"
|
| #include "mojo/services/html_viewer/blink_platform_impl.h"
|
| #include "mojo/services/html_viewer/html_document_view.h"
|
| +#include "mojo/services/html_viewer/webmediaplayer_factory.h"
|
| #include "mojo/services/public/interfaces/content_handler/content_handler.mojom.h"
|
| #include "third_party/WebKit/public/web/WebKit.h"
|
|
|
| @@ -20,7 +21,9 @@ class HTMLViewer;
|
|
|
| class ContentHandlerImpl : public InterfaceImpl<ContentHandler> {
|
| public:
|
| - explicit ContentHandlerImpl(Shell* shell) : shell_(shell) {}
|
| + explicit ContentHandlerImpl(HTMLViewer* html_viewer)
|
| + : html_viewer_(html_viewer) {
|
| + }
|
| virtual ~ContentHandlerImpl() {}
|
|
|
| private:
|
| @@ -28,12 +31,9 @@ class ContentHandlerImpl : public InterfaceImpl<ContentHandler> {
|
| virtual void OnConnect(
|
| const mojo::String& url,
|
| URLResponsePtr response,
|
| - InterfaceRequest<ServiceProvider> service_provider_request) OVERRIDE {
|
| - new HTMLDocumentView(
|
| - response.Pass(), service_provider_request.Pass(), shell_);
|
| - }
|
| + InterfaceRequest<ServiceProvider> service_provider_request) OVERRIDE;
|
|
|
| - Shell* shell_;
|
| + HTMLViewer* html_viewer_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ContentHandlerImpl);
|
| };
|
| @@ -44,12 +44,20 @@ class HTMLViewer : public ApplicationDelegate {
|
|
|
| virtual ~HTMLViewer() { blink::shutdown(); }
|
|
|
| + WebMediaPlayerFactory* web_media_player_factory() const {
|
| + return web_media_player_factory_.get();
|
| + }
|
| +
|
| + Shell* shell() const { return app_->shell(); }
|
| +
|
| private:
|
| // Overridden from ApplicationDelegate:
|
| virtual void Initialize(ApplicationImpl* app) OVERRIDE {
|
| + app_ = app;
|
| + web_media_player_factory_.reset(new WebMediaPlayerFactory());
|
| content_handler_factory_.reset(
|
| - new InterfaceFactoryImplWithContext<ContentHandlerImpl, Shell>(
|
| - app->shell()));
|
| + new InterfaceFactoryImplWithContext<ContentHandlerImpl, HTMLViewer>(
|
| + this));
|
| blink_platform_impl_.reset(new BlinkPlatformImpl(app));
|
| blink::initialize(blink_platform_impl_.get());
|
| }
|
| @@ -60,13 +68,26 @@ class HTMLViewer : public ApplicationDelegate {
|
| return true;
|
| }
|
|
|
| + ApplicationImpl* app_;
|
| scoped_ptr<BlinkPlatformImpl> blink_platform_impl_;
|
| - scoped_ptr<InterfaceFactoryImplWithContext<ContentHandlerImpl, Shell> >
|
| + scoped_ptr<WebMediaPlayerFactory> web_media_player_factory_;
|
| + scoped_ptr<InterfaceFactoryImplWithContext<ContentHandlerImpl, HTMLViewer> >
|
| content_handler_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(HTMLViewer);
|
| };
|
|
|
| +void ContentHandlerImpl::OnConnect(
|
| + const mojo::String& url,
|
| + URLResponsePtr response,
|
| + InterfaceRequest<ServiceProvider> service_provider_request) {
|
| + new HTMLDocumentView(
|
| + response.Pass(),
|
| + service_provider_request.Pass(),
|
| + html_viewer_->shell(),
|
| + html_viewer_->web_media_player_factory());
|
| +}
|
| +
|
| } // namespace mojo
|
|
|
| MojoResult MojoMain(MojoHandle shell_handle) {
|
|
|