| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "sky/viewer/document_view.h" | 5 #include "sky/viewer/document_view.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 #include "sky/engine/public/web/Sky.h" | 29 #include "sky/engine/public/web/Sky.h" |
| 30 #include "sky/engine/public/web/WebConsoleMessage.h" | 30 #include "sky/engine/public/web/WebConsoleMessage.h" |
| 31 #include "sky/engine/public/web/WebDocument.h" | 31 #include "sky/engine/public/web/WebDocument.h" |
| 32 #include "sky/engine/public/web/WebElement.h" | 32 #include "sky/engine/public/web/WebElement.h" |
| 33 #include "sky/engine/public/web/WebLocalFrame.h" | 33 #include "sky/engine/public/web/WebLocalFrame.h" |
| 34 #include "sky/engine/public/web/WebScriptSource.h" | 34 #include "sky/engine/public/web/WebScriptSource.h" |
| 35 #include "sky/engine/public/web/WebSettings.h" | 35 #include "sky/engine/public/web/WebSettings.h" |
| 36 #include "sky/engine/public/web/WebView.h" | 36 #include "sky/engine/public/web/WebView.h" |
| 37 #include "sky/services/platform/url_request_types.h" | 37 #include "sky/services/platform/url_request_types.h" |
| 38 #include "sky/viewer/converters/input_event_types.h" | 38 #include "sky/viewer/converters/input_event_types.h" |
| 39 #include "sky/viewer/dart_library_provider_impl.h" |
| 39 #include "sky/viewer/internals.h" | 40 #include "sky/viewer/internals.h" |
| 40 #include "sky/viewer/runtime_flags.h" | 41 #include "sky/viewer/runtime_flags.h" |
| 41 #include "third_party/skia/include/core/SkCanvas.h" | 42 #include "third_party/skia/include/core/SkCanvas.h" |
| 42 #include "third_party/skia/include/core/SkColor.h" | 43 #include "third_party/skia/include/core/SkColor.h" |
| 43 #include "third_party/skia/include/core/SkDevice.h" | 44 #include "third_party/skia/include/core/SkDevice.h" |
| 44 #include "ui/events/gestures/gesture_recognizer.h" | 45 #include "ui/events/gestures/gesture_recognizer.h" |
| 45 #include "v8/include/v8.h" | |
| 46 | 46 |
| 47 namespace sky { | 47 namespace sky { |
| 48 namespace { | 48 namespace { |
| 49 | 49 |
| 50 void ConfigureSettings(blink::WebSettings* settings) { | 50 void ConfigureSettings(blink::WebSettings* settings) { |
| 51 settings->setDefaultFixedFontSize(13); | 51 settings->setDefaultFixedFontSize(13); |
| 52 settings->setDefaultFontSize(16); | 52 settings->setDefaultFontSize(16); |
| 53 settings->setLoadsImagesAutomatically(true); | 53 settings->setLoadsImagesAutomatically(true); |
| 54 } | 54 } |
| 55 | 55 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 const blink::WebPointerEvent& pointer_event = | 87 const blink::WebPointerEvent& pointer_event = |
| 88 static_cast<const blink::WebPointerEvent&>(event); | 88 static_cast<const blink::WebPointerEvent&>(event); |
| 89 return make_scoped_ptr(new ui::TouchEvent( | 89 return make_scoped_ptr(new ui::TouchEvent( |
| 90 ConvertEventTypeToUIEventType(event.type), | 90 ConvertEventTypeToUIEventType(event.type), |
| 91 gfx::PointF(pointer_event.x * device_pixel_ratio, | 91 gfx::PointF(pointer_event.x * device_pixel_ratio, |
| 92 pointer_event.y * device_pixel_ratio), | 92 pointer_event.y * device_pixel_ratio), |
| 93 pointer_event.pointer, | 93 pointer_event.pointer, |
| 94 base::TimeDelta::FromMillisecondsD(pointer_event.timeStampMS))); | 94 base::TimeDelta::FromMillisecondsD(pointer_event.timeStampMS))); |
| 95 } | 95 } |
| 96 | 96 |
| 97 scoped_ptr<DartLibraryProviderImpl::PrefetchedLibrary> |
| 98 CreatePrefetchedLibraryIfNeeded(const String& name, |
| 99 mojo::URLResponsePtr response) { |
| 100 scoped_ptr<DartLibraryProviderImpl::PrefetchedLibrary> prefetched; |
| 101 if (response->status_code == 200) { |
| 102 prefetched.reset(new DartLibraryProviderImpl::PrefetchedLibrary()); |
| 103 prefetched->name = name; |
| 104 prefetched->pipe = response->body.Pass(); |
| 105 } |
| 106 return prefetched.Pass(); |
| 107 } |
| 108 |
| 97 } // namespace | 109 } // namespace |
| 98 | 110 |
| 99 DocumentView::DocumentView( | 111 DocumentView::DocumentView( |
| 100 mojo::InterfaceRequest<mojo::ServiceProvider> services, | 112 mojo::InterfaceRequest<mojo::ServiceProvider> services, |
| 101 mojo::ServiceProviderPtr exported_services, | 113 mojo::ServiceProviderPtr exported_services, |
| 102 mojo::URLResponsePtr response, | 114 mojo::URLResponsePtr response, |
| 103 mojo::Shell* shell) | 115 mojo::Shell* shell) |
| 104 : response_(response.Pass()), | 116 : response_(response.Pass()), |
| 105 exported_services_(services.Pass()), | 117 exported_services_(services.Pass()), |
| 106 imported_services_(exported_services.Pass()), | 118 imported_services_(exported_services.Pass()), |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 root_->AddObserver(this); | 166 root_->AddObserver(this); |
| 155 } | 167 } |
| 156 | 168 |
| 157 void DocumentView::OnViewManagerDisconnected(mojo::ViewManager* view_manager) { | 169 void DocumentView::OnViewManagerDisconnected(mojo::ViewManager* view_manager) { |
| 158 // TODO(aa): Need to figure out how shutdown works. | 170 // TODO(aa): Need to figure out how shutdown works. |
| 159 } | 171 } |
| 160 void DocumentView::Load(mojo::URLResponsePtr response) { | 172 void DocumentView::Load(mojo::URLResponsePtr response) { |
| 161 GURL responseURL(response->url); | 173 GURL responseURL(response->url); |
| 162 | 174 |
| 163 if (!blink::WebView::shouldUseWebView(responseURL)) { | 175 if (!blink::WebView::shouldUseWebView(responseURL)) { |
| 176 String name = String::fromUTF8(responseURL.spec()); |
| 177 library_provider_.reset(new DartLibraryProviderImpl( |
| 178 blink::Platform::current()->networkService(), |
| 179 CreatePrefetchedLibraryIfNeeded(name, response.Pass()))); |
| 164 sky_view_ = blink::SkyView::Create(this); | 180 sky_view_ = blink::SkyView::Create(this); |
| 165 initializeLayerTreeView(); | 181 initializeLayerTreeView(); |
| 166 sky_view_->Load(responseURL, response.Pass()); | 182 sky_view_->RunFromLibrary(name, library_provider_.get()); |
| 167 return; | 183 return; |
| 168 } | 184 } |
| 169 | 185 |
| 170 if (!RuntimeFlags::Get().testing()) | 186 if (!RuntimeFlags::Get().testing()) |
| 171 LOG(WARNING) << ".sky support is deprecated, please use .dart for main()"; | 187 LOG(WARNING) << ".sky support is deprecated, please use .dart for main()"; |
| 172 | 188 |
| 173 web_view_ = blink::WebView::create(this); | 189 web_view_ = blink::WebView::create(this); |
| 174 ConfigureSettings(web_view_->settings()); | 190 ConfigureSettings(web_view_->settings()); |
| 175 web_view_->setMainFrame(blink::WebLocalFrame::create(this)); | 191 web_view_->setMainFrame(blink::WebLocalFrame::create(this)); |
| 176 web_view_->mainFrame()->loadFromDataPipeWithURL( | 192 web_view_->mainFrame()->loadFromDataPipeWithURL( |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 new mojo::StrongBinding<mojo::ServiceProvider>(sp_impl, &sp)); | 456 new mojo::StrongBinding<mojo::ServiceProvider>(sp_impl, &sp)); |
| 441 service_registry_->AddServices(interface_names.Pass(), sp.Pass()); | 457 service_registry_->AddServices(interface_names.Pass(), sp.Pass()); |
| 442 } | 458 } |
| 443 | 459 |
| 444 void DocumentView::ScheduleFrame() { | 460 void DocumentView::ScheduleFrame() { |
| 445 DCHECK(sky_view_); | 461 DCHECK(sky_view_); |
| 446 layer_host_->SetNeedsAnimate(); | 462 layer_host_->SetNeedsAnimate(); |
| 447 } | 463 } |
| 448 | 464 |
| 449 } // namespace sky | 465 } // namespace sky |
| OLD | NEW |