| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/shell/ui/engine.h" | 5 #include "sky/shell/ui/engine.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/trace_event/trace_event.h" |
| 8 #include "mojo/public/cpp/application/connect.h" | 9 #include "mojo/public/cpp/application/connect.h" |
| 9 #include "sky/engine/public/platform/WebInputEvent.h" | 10 #include "sky/engine/public/platform/WebInputEvent.h" |
| 10 #include "sky/engine/public/web/Sky.h" | 11 #include "sky/engine/public/web/Sky.h" |
| 11 #include "sky/engine/public/web/WebLocalFrame.h" | 12 #include "sky/engine/public/web/WebLocalFrame.h" |
| 12 #include "sky/engine/public/web/WebSettings.h" | 13 #include "sky/engine/public/web/WebSettings.h" |
| 13 #include "sky/engine/public/web/WebView.h" | 14 #include "sky/engine/public/web/WebView.h" |
| 14 #include "sky/services/platform/platform_impl.h" | 15 #include "sky/services/platform/platform_impl.h" |
| 15 #include "sky/shell/java_service_provider.h" | 16 #include "sky/shell/java_service_provider.h" |
| 16 #include "sky/shell/ui/animator.h" | 17 #include "sky/shell/ui/animator.h" |
| 17 #include "sky/shell/ui/input_event_converter.h" | 18 #include "sky/shell/ui/input_event_converter.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 mojo::MessagePipe pipe; | 55 mojo::MessagePipe pipe; |
| 55 config_.java_task_runner->PostTask( | 56 config_.java_task_runner->PostTask( |
| 56 FROM_HERE, | 57 FROM_HERE, |
| 57 base::Bind(CreateJavaServiceProvider, | 58 base::Bind(CreateJavaServiceProvider, |
| 58 base::Passed(mojo::MakeRequest<mojo::ServiceProvider>( | 59 base::Passed(mojo::MakeRequest<mojo::ServiceProvider>( |
| 59 pipe.handle1.Pass())))); | 60 pipe.handle1.Pass())))); |
| 60 return mojo::MakeProxy<mojo::ServiceProvider>(pipe.handle0.Pass()); | 61 return mojo::MakeProxy<mojo::ServiceProvider>(pipe.handle0.Pass()); |
| 61 } | 62 } |
| 62 | 63 |
| 63 void Engine::Init() { | 64 void Engine::Init() { |
| 65 TRACE_EVENT0("sky", "Engine::Init"); |
| 66 |
| 64 service_provider_ = CreateServiceProvider(); | 67 service_provider_ = CreateServiceProvider(); |
| 65 mojo::NetworkServicePtr network_service; | 68 mojo::NetworkServicePtr network_service; |
| 66 mojo::ConnectToService(service_provider_.get(), &network_service); | 69 mojo::ConnectToService(service_provider_.get(), &network_service); |
| 67 platform_impl_.reset(new PlatformImpl(network_service.Pass())); | 70 platform_impl_.reset(new PlatformImpl(network_service.Pass())); |
| 68 | 71 |
| 69 blink::initialize(platform_impl_.get()); | 72 blink::initialize(platform_impl_.get()); |
| 70 } | 73 } |
| 71 | 74 |
| 72 void Engine::BeginFrame(base::TimeTicks frame_time) { | 75 void Engine::BeginFrame(base::TimeTicks frame_time) { |
| 76 TRACE_EVENT0("sky", "Engine::BeginFrame"); |
| 77 |
| 73 double frame_time_sec = (frame_time - base::TimeTicks()).InSecondsF(); | 78 double frame_time_sec = (frame_time - base::TimeTicks()).InSecondsF(); |
| 74 double deadline_sec = frame_time_sec; | 79 double deadline_sec = frame_time_sec; |
| 75 double interval_sec = 1.0 / 60; | 80 double interval_sec = 1.0 / 60; |
| 76 blink::WebBeginFrameArgs args(frame_time_sec, deadline_sec, interval_sec); | 81 blink::WebBeginFrameArgs args(frame_time_sec, deadline_sec, interval_sec); |
| 77 | 82 |
| 78 web_view_->beginFrame(args); | 83 web_view_->beginFrame(args); |
| 79 web_view_->layout(); | 84 web_view_->layout(); |
| 80 } | 85 } |
| 81 | 86 |
| 82 skia::RefPtr<SkPicture> Engine::Paint() { | 87 skia::RefPtr<SkPicture> Engine::Paint() { |
| 88 TRACE_EVENT0("sky", "Engine::Paint"); |
| 89 |
| 83 SkRTreeFactory factory; | 90 SkRTreeFactory factory; |
| 84 SkPictureRecorder recorder; | 91 SkPictureRecorder recorder; |
| 85 auto canvas = skia::SharePtr(recorder.beginRecording( | 92 auto canvas = skia::SharePtr(recorder.beginRecording( |
| 86 physical_size_.width(), physical_size_.height(), &factory, | 93 physical_size_.width(), physical_size_.height(), &factory, |
| 87 SkPictureRecorder::kComputeSaveLayerInfo_RecordFlag)); | 94 SkPictureRecorder::kComputeSaveLayerInfo_RecordFlag)); |
| 88 | 95 |
| 89 web_view_->paint(canvas.get(), blink::WebRect(gfx::Rect(physical_size_))); | 96 web_view_->paint(canvas.get(), blink::WebRect(gfx::Rect(physical_size_))); |
| 90 return skia::AdoptRef(recorder.endRecordingAsPicture()); | 97 return skia::AdoptRef(recorder.endRecordingAsPicture()); |
| 91 } | 98 } |
| 92 | 99 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 // TODO(eseidel): This is likely not needed anymore. | 137 // TODO(eseidel): This is likely not needed anymore. |
| 131 blink::WebScreenInfo Engine::screenInfo() { | 138 blink::WebScreenInfo Engine::screenInfo() { |
| 132 blink::WebScreenInfo screen; | 139 blink::WebScreenInfo screen; |
| 133 screen.rect = blink::WebRect(gfx::Rect(physical_size_)); | 140 screen.rect = blink::WebRect(gfx::Rect(physical_size_)); |
| 134 screen.availableRect = screen.rect; | 141 screen.availableRect = screen.rect; |
| 135 screen.deviceScaleFactor = device_pixel_ratio_; | 142 screen.deviceScaleFactor = device_pixel_ratio_; |
| 136 return screen; | 143 return screen; |
| 137 } | 144 } |
| 138 | 145 |
| 139 void Engine::OnInputEvent(InputEventPtr event) { | 146 void Engine::OnInputEvent(InputEventPtr event) { |
| 147 TRACE_EVENT0("sky", "Engine::OnInputEvent"); |
| 140 scoped_ptr<blink::WebInputEvent> web_event = | 148 scoped_ptr<blink::WebInputEvent> web_event = |
| 141 ConvertEvent(event, device_pixel_ratio_); | 149 ConvertEvent(event, device_pixel_ratio_); |
| 142 if (!web_event) | 150 if (!web_event) |
| 143 return; | 151 return; |
| 144 web_view_->handleInputEvent(*web_event); | 152 web_view_->handleInputEvent(*web_event); |
| 145 } | 153 } |
| 146 | 154 |
| 147 void Engine::LoadURL(const mojo::String& url) { | 155 void Engine::LoadURL(const mojo::String& url) { |
| 148 // Something bad happens if you try to call WebView::close and replace | 156 // Something bad happens if you try to call WebView::close and replace |
| 149 // the webview. So for now we just load into the existing one. :/ | 157 // the webview. So for now we just load into the existing one. :/ |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 | 197 |
| 190 void Engine::DidNavigateLocally(const mojo::String& url) { | 198 void Engine::DidNavigateLocally(const mojo::String& url) { |
| 191 } | 199 } |
| 192 | 200 |
| 193 void Engine::RequestNavigateHistory(int32_t delta) { | 201 void Engine::RequestNavigateHistory(int32_t delta) { |
| 194 NOTIMPLEMENTED(); | 202 NOTIMPLEMENTED(); |
| 195 } | 203 } |
| 196 | 204 |
| 197 } // namespace shell | 205 } // namespace shell |
| 198 } // namespace sky | 206 } // namespace sky |
| OLD | NEW |