From e2b41493203b9b677cc4d69150eb665350b8ffd8 Mon Sep 17 00:00:00 2001 From: Alhaad Gokhale Date: Thu, 27 Aug 2015 16:58:44 -0700 Subject: [PATCH] Go back to master. --- services/sky/document_view.cc | 5 ++-- sky/engine/public/sky/sky_view.cc | 40 +++++++++++++++---------------- sky/engine/public/sky/sky_view.h | 3 ++- sky/shell/ui/engine.cc | 2 ++ 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/services/sky/document_view.cc b/services/sky/document_view.cc index 74c6a24f8f752..15787e7269be1 100644 --- a/services/sky/document_view.cc +++ b/services/sky/document_view.cc @@ -130,6 +130,8 @@ void DocumentView::OnEmbed( services_provided_by_embedder_ = services_provided_by_embedder.Pass(); Load(response_.Pass()); + + UpdateRootSizeAndViewportMetrics(root_->bounds()); root_->AddObserver(this); } @@ -141,7 +143,6 @@ void DocumentView::LoadFromSnapshotStream( String name, mojo::ScopedDataPipeConsumerHandle snapshot) { if (sky_view_) { sky_view_->RunFromSnapshot(name, snapshot.Pass()); - UpdateRootSizeAndViewportMetrics(root_->bounds()); } } @@ -153,6 +154,7 @@ void DocumentView::Load(mojo::URLResponsePtr response) { layer_host_->SetRootLayer(root_layer_); String name = String::fromUTF8(response->url); + sky_view_->CreateView(name); if (name.endsWith(".skyx")) { AssetUnpackerJob* unpacker = new AssetUnpackerJob( mojo::GetProxy(&root_bundle_), @@ -167,7 +169,6 @@ void DocumentView::Load(mojo::URLResponsePtr response) { network_service_.get(), CreatePrefetchedLibraryIfNeeded(name, response.Pass()))); sky_view_->RunFromLibrary(name, library_provider_.get()); - UpdateRootSizeAndViewportMetrics(root_->bounds()); } scoped_ptr DocumentView::CreateRasterizer() { diff --git a/sky/engine/public/sky/sky_view.cc b/sky/engine/public/sky/sky_view.cc index b290115117d1f..3122ce4010896 100644 --- a/sky/engine/public/sky/sky_view.cc +++ b/sky/engine/public/sky/sky_view.cc @@ -36,15 +36,33 @@ void SkyView::SetDisplayMetrics(const SkyDisplayMetrics& metrics) { view_->setDisplayMetrics(display_metrics_); } +void SkyView::CreateView(const String& name) { + DCHECK(!view_); + DCHECK(!dart_controller_); + + view_ = View::create( + base::Bind(&SkyView::ScheduleFrame, weak_factory_.GetWeakPtr())); + view_->setDisplayMetrics(display_metrics_); + + dart_controller_ = adoptPtr(new DartController); + dart_controller_->CreateIsolateFor(adoptPtr(new DOMDartState(name))); + dart_controller_->InstallView(view_.get()); + + Dart_Isolate isolate = dart_controller_->dart_state()->isolate(); + DartIsolateScope scope(isolate); + DartApiScope api_scope; + client_->DidCreateIsolate(isolate); +} + void SkyView::RunFromLibrary(const WebString& name, DartLibraryProvider* library_provider) { - CreateView(name); + DCHECK(view_); dart_controller_->RunFromLibrary(name, library_provider); } void SkyView::RunFromSnapshot(const WebString& name, mojo::ScopedDataPipeConsumerHandle snapshot) { - CreateView(name); + DCHECK(view_); dart_controller_->RunFromSnapshot(snapshot.Pass()); } @@ -81,24 +99,6 @@ void SkyView::HandleInputEvent(const WebInputEvent& inputEvent) { } -void SkyView::CreateView(const String& name) { - DCHECK(!view_); - DCHECK(!dart_controller_); - - view_ = View::create( - base::Bind(&SkyView::ScheduleFrame, weak_factory_.GetWeakPtr())); - view_->setDisplayMetrics(display_metrics_); - - dart_controller_ = adoptPtr(new DartController); - dart_controller_->CreateIsolateFor(adoptPtr(new DOMDartState(name))); - dart_controller_->InstallView(view_.get()); - - Dart_Isolate isolate = dart_controller_->dart_state()->isolate(); - DartIsolateScope scope(isolate); - DartApiScope api_scope; - client_->DidCreateIsolate(isolate); -} - void SkyView::ScheduleFrame() { client_->ScheduleFrame(); } diff --git a/sky/engine/public/sky/sky_view.h b/sky/engine/public/sky/sky_view.h index 827c6a9d383fc..8eaae79114562 100644 --- a/sky/engine/public/sky/sky_view.h +++ b/sky/engine/public/sky/sky_view.h @@ -35,6 +35,8 @@ class SkyView { void SetDisplayMetrics(const SkyDisplayMetrics& metrics); void BeginFrame(base::TimeTicks frame_time); + void CreateView(const String& name); + void RunFromLibrary(const WebString& name, DartLibraryProvider* library_provider); void RunFromSnapshot(const WebString& name, @@ -49,7 +51,6 @@ class SkyView { private: explicit SkyView(SkyViewClient* client); - void CreateView(const String& name); void ScheduleFrame(); SkyViewClient* client_; diff --git a/sky/shell/ui/engine.cc b/sky/shell/ui/engine.cc index 8c31caedddac4..79e595fcd0b9a 100644 --- a/sky/shell/ui/engine.cc +++ b/sky/shell/ui/engine.cc @@ -166,6 +166,7 @@ void Engine::OnInputEvent(InputEventPtr event) { void Engine::RunFromLibrary(const std::string& name) { sky_view_ = blink::SkyView::Create(this); + sky_view_->CreateView(blink::WebString::fromUTF8(name)); sky_view_->RunFromLibrary(blink::WebString::fromUTF8(name), dart_library_provider_.get()); sky_view_->SetDisplayMetrics(display_metrics_); @@ -175,6 +176,7 @@ void Engine::RunFromSnapshotStream( const std::string& name, mojo::ScopedDataPipeConsumerHandle snapshot) { sky_view_ = blink::SkyView::Create(this); + sky_view_->CreateView(blink::WebString::fromUTF8(name)); sky_view_->RunFromSnapshot(blink::WebString::fromUTF8(name), snapshot.Pass()); sky_view_->SetDisplayMetrics(display_metrics_); }