| 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" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 default: | 60 default: |
| 61 return mojo::TARGET_DEFAULT; | 61 return mojo::TARGET_DEFAULT; |
| 62 } | 62 } |
| 63 } | 63 } |
| 64 | 64 |
| 65 } // namespace | 65 } // namespace |
| 66 | 66 |
| 67 static int s_next_debugger_id = 1; | 67 static int s_next_debugger_id = 1; |
| 68 | 68 |
| 69 DocumentView::DocumentView( | 69 DocumentView::DocumentView( |
| 70 const base::Closure& destruction_callback, |
| 71 mojo::ServiceProviderPtr provider, |
| 70 mojo::URLResponsePtr response, | 72 mojo::URLResponsePtr response, |
| 71 mojo::ShellPtr shell, | 73 mojo::Shell* shell, |
| 72 scoped_refptr<base::MessageLoopProxy> compositor_thread) | 74 scoped_refptr<base::MessageLoopProxy> compositor_thread) |
| 73 : response_(response.Pass()), | 75 : destruction_callback_(destruction_callback), |
| 74 shell_(shell.Pass()), | 76 response_(response.Pass()), |
| 77 shell_(shell), |
| 75 web_view_(NULL), | 78 web_view_(NULL), |
| 76 root_(NULL), | 79 root_(NULL), |
| 77 view_manager_client_factory_(shell_.get(), this), | 80 view_manager_client_factory_(shell_, this), |
| 78 inspector_service_factory_(this), | 81 inspector_service_factory_(this), |
| 79 compositor_thread_(compositor_thread), | 82 compositor_thread_(compositor_thread), |
| 80 debugger_id_(s_next_debugger_id++), | 83 debugger_id_(s_next_debugger_id++), |
| 81 weak_factory_(this) { | 84 weak_factory_(this) { |
| 82 shell_.set_client(this); | 85 exported_services_.AddService(&view_manager_client_factory_); |
| 86 mojo::WeakBindToPipe(&exported_services_, provider.PassMessagePipe()); |
| 83 } | 87 } |
| 84 | 88 |
| 85 DocumentView::~DocumentView() { | 89 DocumentView::~DocumentView() { |
| 86 if (web_view_) | 90 if (web_view_) |
| 87 web_view_->close(); | 91 web_view_->close(); |
| 88 if (root_) | 92 if (root_) |
| 89 root_->RemoveObserver(this); | 93 root_->RemoveObserver(this); |
| 94 destruction_callback_.Run(); |
| 90 } | 95 } |
| 91 | 96 |
| 92 base::WeakPtr<DocumentView> DocumentView::GetWeakPtr() { | 97 base::WeakPtr<DocumentView> DocumentView::GetWeakPtr() { |
| 93 return weak_factory_.GetWeakPtr(); | 98 return weak_factory_.GetWeakPtr(); |
| 94 } | 99 } |
| 95 | 100 |
| 96 void DocumentView::AcceptConnection(const mojo::String& requestor_url, | |
| 97 mojo::ServiceProviderPtr provider) { | |
| 98 exported_services_.AddService(&view_manager_client_factory_); | |
| 99 mojo::WeakBindToPipe(&exported_services_, provider.PassMessagePipe()); | |
| 100 } | |
| 101 | |
| 102 void DocumentView::Initialize(mojo::Array<mojo::String> args) { | |
| 103 } | |
| 104 | |
| 105 void DocumentView::OnEmbed( | 101 void DocumentView::OnEmbed( |
| 106 mojo::ViewManager* view_manager, | 102 mojo::ViewManager* view_manager, |
| 107 mojo::View* root, | 103 mojo::View* root, |
| 108 mojo::ServiceProviderImpl* exported_services, | 104 mojo::ServiceProviderImpl* exported_services, |
| 109 scoped_ptr<mojo::ServiceProvider> imported_services) { | 105 scoped_ptr<mojo::ServiceProvider> imported_services) { |
| 110 | 106 |
| 111 root_ = root; | 107 root_ = root; |
| 112 imported_services_ = imported_services.Pass(); | 108 imported_services_ = imported_services.Pass(); |
| 113 navigator_host_.set_service_provider(imported_services_.get()); | 109 navigator_host_.set_service_provider(imported_services_.get()); |
| 114 exported_services->AddService(&inspector_service_factory_); | 110 exported_services->AddService(&inspector_service_factory_); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 | 207 |
| 212 blink::ServiceProvider& DocumentView::services() { | 208 blink::ServiceProvider& DocumentView::services() { |
| 213 return *this; | 209 return *this; |
| 214 } | 210 } |
| 215 | 211 |
| 216 mojo::NavigatorHost* DocumentView::NavigatorHost() { | 212 mojo::NavigatorHost* DocumentView::NavigatorHost() { |
| 217 return navigator_host_.get(); | 213 return navigator_host_.get(); |
| 218 } | 214 } |
| 219 | 215 |
| 220 mojo::Shell* DocumentView::Shell() { | 216 mojo::Shell* DocumentView::Shell() { |
| 221 return shell_.get(); | 217 return shell_; |
| 222 } | 218 } |
| 223 | 219 |
| 224 void DocumentView::OnViewBoundsChanged(mojo::View* view, | 220 void DocumentView::OnViewBoundsChanged(mojo::View* view, |
| 225 const mojo::Rect& old_bounds, | 221 const mojo::Rect& old_bounds, |
| 226 const mojo::Rect& new_bounds) { | 222 const mojo::Rect& new_bounds) { |
| 227 DCHECK_EQ(view, root_); | 223 DCHECK_EQ(view, root_); |
| 228 gfx::Size size = new_bounds.To<gfx::Rect>().size(); | 224 gfx::Size size = new_bounds.To<gfx::Rect>().size(); |
| 229 web_view_->resize(size); | 225 web_view_->resize(size); |
| 230 web_layer_tree_view_impl_->setViewportSize(size); | 226 web_layer_tree_view_impl_->setViewportSize(size); |
| 231 } | 227 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 247 | 243 |
| 248 void DocumentView::OnViewInputEvent( | 244 void DocumentView::OnViewInputEvent( |
| 249 mojo::View* view, const mojo::EventPtr& event) { | 245 mojo::View* view, const mojo::EventPtr& event) { |
| 250 scoped_ptr<blink::WebInputEvent> web_event = | 246 scoped_ptr<blink::WebInputEvent> web_event = |
| 251 event.To<scoped_ptr<blink::WebInputEvent> >(); | 247 event.To<scoped_ptr<blink::WebInputEvent> >(); |
| 252 if (web_event) | 248 if (web_event) |
| 253 web_view_->handleInputEvent(*web_event); | 249 web_view_->handleInputEvent(*web_event); |
| 254 } | 250 } |
| 255 | 251 |
| 256 } // namespace sky | 252 } // namespace sky |
| OLD | NEW |