| 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/message_loop/message_loop_proxy.h" | 9 #include "base/message_loop/message_loop_proxy.h" |
| 10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| 11 #include "base/strings/string_util.h" | 11 #include "base/strings/string_util.h" |
| 12 #include "base/thread_task_runner_handle.h" | 12 #include "base/thread_task_runner_handle.h" |
| 13 #include "mojo/converters/geometry/geometry_type_converters.h" |
| 13 #include "mojo/public/cpp/application/connect.h" | 14 #include "mojo/public/cpp/application/connect.h" |
| 14 #include "mojo/public/cpp/application/service_provider_impl.h" | 15 #include "mojo/public/cpp/application/service_provider_impl.h" |
| 15 #include "mojo/public/cpp/system/data_pipe.h" | 16 #include "mojo/public/cpp/system/data_pipe.h" |
| 16 #include "mojo/public/interfaces/application/shell.mojom.h" | 17 #include "mojo/public/interfaces/application/shell.mojom.h" |
| 17 #include "mojo/services/public/cpp/view_manager/view.h" | 18 #include "mojo/services/public/cpp/view_manager/view.h" |
| 18 #include "mojo/services/public/interfaces/surfaces/surfaces_service.mojom.h" | 19 #include "mojo/services/public/interfaces/surfaces/surfaces_service.mojom.h" |
| 19 #include "skia/ext/refptr.h" | 20 #include "skia/ext/refptr.h" |
| 20 #include "sky/engine/public/platform/Platform.h" | 21 #include "sky/engine/public/platform/Platform.h" |
| 21 #include "sky/engine/public/platform/WebHTTPHeaderVisitor.h" | 22 #include "sky/engine/public/platform/WebHTTPHeaderVisitor.h" |
| 22 #include "sky/engine/public/web/WebConsoleMessage.h" | 23 #include "sky/engine/public/web/WebConsoleMessage.h" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 mojo::View* root, | 98 mojo::View* root, |
| 98 mojo::ServiceProviderImpl* exported_services, | 99 mojo::ServiceProviderImpl* exported_services, |
| 99 scoped_ptr<mojo::ServiceProvider> imported_services) { | 100 scoped_ptr<mojo::ServiceProvider> imported_services) { |
| 100 | 101 |
| 101 root_ = root; | 102 root_ = root; |
| 102 imported_services_ = imported_services.Pass(); | 103 imported_services_ = imported_services.Pass(); |
| 103 navigator_host_.set_service_provider(imported_services_.get()); | 104 navigator_host_.set_service_provider(imported_services_.get()); |
| 104 | 105 |
| 105 Load(response_.Pass()); | 106 Load(response_.Pass()); |
| 106 | 107 |
| 107 web_view_->resize(root_->bounds().size()); | 108 gfx::Size size = root_->bounds().To<gfx::Rect>().size(); |
| 108 web_layer_tree_view_impl_->setViewportSize(root_->bounds().size()); | 109 web_view_->resize(size); |
| 110 web_layer_tree_view_impl_->setViewportSize(size); |
| 109 web_layer_tree_view_impl_->set_view(root_); | 111 web_layer_tree_view_impl_->set_view(root_); |
| 110 root_->AddObserver(this); | 112 root_->AddObserver(this); |
| 111 } | 113 } |
| 112 | 114 |
| 113 void DocumentView::OnViewManagerDisconnected(mojo::ViewManager* view_manager) { | 115 void DocumentView::OnViewManagerDisconnected(mojo::ViewManager* view_manager) { |
| 114 // TODO(aa): Need to figure out how shutdown works. | 116 // TODO(aa): Need to figure out how shutdown works. |
| 115 } | 117 } |
| 116 | 118 |
| 117 void DocumentView::Load(mojo::URLResponsePtr response) { | 119 void DocumentView::Load(mojo::URLResponsePtr response) { |
| 118 web_view_ = blink::WebView::create(this); | 120 web_view_ = blink::WebView::create(this); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 return; | 174 return; |
| 173 script_runner_.reset(new ScriptRunner(frame, context)); | 175 script_runner_.reset(new ScriptRunner(frame, context)); |
| 174 | 176 |
| 175 v8::Isolate* isolate = context->GetIsolate(); | 177 v8::Isolate* isolate = context->GetIsolate(); |
| 176 gin::Handle<Internals> internals = Internals::Create(isolate, this); | 178 gin::Handle<Internals> internals = Internals::Create(isolate, this); |
| 177 context->Global()->Set(gin::StringToV8(isolate, "internals"), | 179 context->Global()->Set(gin::StringToV8(isolate, "internals"), |
| 178 gin::ConvertToV8(isolate, internals)); | 180 gin::ConvertToV8(isolate, internals)); |
| 179 } | 181 } |
| 180 | 182 |
| 181 void DocumentView::OnViewBoundsChanged(mojo::View* view, | 183 void DocumentView::OnViewBoundsChanged(mojo::View* view, |
| 182 const gfx::Rect& old_bounds, | 184 const mojo::Rect& old_bounds, |
| 183 const gfx::Rect& new_bounds) { | 185 const mojo::Rect& new_bounds) { |
| 184 DCHECK_EQ(view, root_); | 186 DCHECK_EQ(view, root_); |
| 185 web_view_->resize(new_bounds.size()); | 187 gfx::Size size = new_bounds.To<gfx::Rect>().size(); |
| 186 web_layer_tree_view_impl_->setViewportSize(new_bounds.size()); | 188 web_view_->resize(size); |
| 189 web_layer_tree_view_impl_->setViewportSize(size); |
| 187 } | 190 } |
| 188 | 191 |
| 189 void DocumentView::OnViewDestroyed(mojo::View* view) { | 192 void DocumentView::OnViewDestroyed(mojo::View* view) { |
| 190 DCHECK_EQ(view, root_); | 193 DCHECK_EQ(view, root_); |
| 191 delete this; | 194 delete this; |
| 192 } | 195 } |
| 193 | 196 |
| 194 void DocumentView::OnViewInputEvent( | 197 void DocumentView::OnViewInputEvent( |
| 195 mojo::View* view, const mojo::EventPtr& event) { | 198 mojo::View* view, const mojo::EventPtr& event) { |
| 196 scoped_ptr<blink::WebInputEvent> web_event = | 199 scoped_ptr<blink::WebInputEvent> web_event = |
| 197 event.To<scoped_ptr<blink::WebInputEvent> >(); | 200 event.To<scoped_ptr<blink::WebInputEvent> >(); |
| 198 if (web_event) | 201 if (web_event) |
| 199 web_view_->handleInputEvent(*web_event); | 202 web_view_->handleInputEvent(*web_event); |
| 200 } | 203 } |
| 201 | 204 |
| 202 } // namespace sky | 205 } // namespace sky |
| OLD | NEW |