| Index: sky/viewer/content_handler_impl.cc
|
| diff --git a/sky/viewer/content_handler_impl.cc b/sky/viewer/content_handler_impl.cc
|
| index b36e4f7cbdc66e0cd07a0be2a9ea2a565da58dc8..b917b41eb64fd7a203ea22bf999cebfe1038c29b 100644
|
| --- a/sky/viewer/content_handler_impl.cc
|
| +++ b/sky/viewer/content_handler_impl.cc
|
| @@ -10,6 +10,7 @@
|
| #include "mojo/public/cpp/utility/run_loop.h"
|
| #include "mojo/services/network/public/interfaces/network_service.mojom.h"
|
| #include "sky/viewer/document_view.h"
|
| +#include "sky/viewer/sky_loader.h"
|
|
|
| namespace sky {
|
|
|
| @@ -24,36 +25,14 @@ class SkyApplication : public mojo::Application {
|
| mojo::Array<mojo::String> args,
|
| const mojo::String& url) override {
|
| shell_ = shell.Pass();
|
| - mojo::ServiceProviderPtr service_provider;
|
| - shell_->ConnectToApplication("mojo:network_service",
|
| - mojo::GetProxy(&service_provider), nullptr);
|
| - mojo::ConnectToService(service_provider.get(), &network_service_);
|
| + sky_loader_.reset(new SkyLoader(shell_.get(), initial_response_.Pass()));
|
| }
|
|
|
| void AcceptConnection(const mojo::String& requestor_url,
|
| mojo::InterfaceRequest<mojo::ServiceProvider> services,
|
| mojo::ServiceProviderPtr exposed_services,
|
| const mojo::String& url) override {
|
| - if (initial_response_) {
|
| - OnResponseReceived(mojo::URLLoaderPtr(), services.Pass(),
|
| - exposed_services.Pass(), initial_response_.Pass());
|
| - } else {
|
| - mojo::URLLoaderPtr loader;
|
| - network_service_->CreateURLLoader(mojo::GetProxy(&loader));
|
| - mojo::URLRequestPtr request(mojo::URLRequest::New());
|
| - request->url = url;
|
| - request->auto_follow_redirects = true;
|
| -
|
| - // |loader| will be pass to the OnResponseReceived method through a
|
| - // callback. Because order of evaluation is undefined, a reference to the
|
| - // raw pointer is needed.
|
| - mojo::URLLoader* raw_loader = loader.get();
|
| - raw_loader->Start(
|
| - request.Pass(),
|
| - base::Bind(&SkyApplication::OnResponseReceived,
|
| - base::Unretained(this), base::Passed(&loader),
|
| - base::Passed(&services), base::Passed(&exposed_services)));
|
| - }
|
| + sky_loader_->LoadApplication(services.Pass(), exposed_services.Pass(), url);
|
| }
|
|
|
| void RequestQuit() override {
|
| @@ -61,19 +40,10 @@ class SkyApplication : public mojo::Application {
|
| }
|
|
|
| private:
|
| - void OnResponseReceived(
|
| - mojo::URLLoaderPtr loader,
|
| - mojo::InterfaceRequest<mojo::ServiceProvider> services,
|
| - mojo::ServiceProviderPtr exposed_services,
|
| - mojo::URLResponsePtr response) {
|
| - new DocumentView(services.Pass(), exposed_services.Pass(), response.Pass(),
|
| - shell_.get());
|
| - }
|
| -
|
| mojo::StrongBinding<mojo::Application> binding_;
|
| mojo::ShellPtr shell_;
|
| - mojo::NetworkServicePtr network_service_;
|
| mojo::URLResponsePtr initial_response_;
|
| + scoped_ptr<SkyLoader> sky_loader_;
|
| };
|
|
|
| ContentHandlerImpl::ContentHandlerImpl(
|
|
|