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 "mandoline/ui/desktop_ui/browser_window.h" | 5 #include "mandoline/ui/desktop_ui/browser_window.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/strings/string16.h" | 8 #include "base/strings/string16.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 host_client_binding_(this), | 73 host_client_binding_(this), |
74 manager_(manager), | 74 manager_(manager), |
75 toolbar_view_(nullptr), | 75 toolbar_view_(nullptr), |
76 progress_bar_(nullptr), | 76 progress_bar_(nullptr), |
77 root_(nullptr), | 77 root_(nullptr), |
78 content_(nullptr), | 78 content_(nullptr), |
79 omnibox_view_(nullptr), | 79 omnibox_view_(nullptr), |
80 web_view_(this) { | 80 web_view_(this) { |
81 mojo::ViewTreeHostClientPtr host_client; | 81 mojo::ViewTreeHostClientPtr host_client; |
82 host_client_binding_.Bind(GetProxy(&host_client)); | 82 host_client_binding_.Bind(GetProxy(&host_client)); |
83 mus::CreateViewTreeHost(host_factory, host_client.Pass(), this, &host_); | 83 mojo::CreateViewTreeHost(host_factory, host_client.Pass(), this, &host_); |
84 } | 84 } |
85 | 85 |
86 void BrowserWindow::LoadURL(const GURL& url) { | 86 void BrowserWindow::LoadURL(const GURL& url) { |
87 // Haven't been embedded yet, can't embed. | 87 // Haven't been embedded yet, can't embed. |
88 // TODO(beng): remove this. | 88 // TODO(beng): remove this. |
89 if (!root_) { | 89 if (!root_) { |
90 default_url_ = url; | 90 default_url_ = url; |
91 return; | 91 return; |
92 } | 92 } |
93 | 93 |
94 if (!url.is_valid()) { | 94 if (!url.is_valid()) { |
95 ShowOmnibox(); | 95 ShowOmnibox(); |
96 return; | 96 return; |
97 } | 97 } |
98 | 98 |
99 mojo::URLRequestPtr request(mojo::URLRequest::New()); | 99 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
100 request->url = url.spec(); | 100 request->url = url.spec(); |
101 Embed(request.Pass()); | 101 Embed(request.Pass()); |
102 } | 102 } |
103 | 103 |
104 void BrowserWindow::Close() { | 104 void BrowserWindow::Close() { |
105 if (root_) | 105 if (root_) |
106 mus::ScopedViewPtr::DeleteViewOrViewManager(root_); | 106 mojo::ScopedViewPtr::DeleteViewOrViewManager(root_); |
107 else | 107 else |
108 delete this; | 108 delete this; |
109 } | 109 } |
110 | 110 |
111 void BrowserWindow::ShowOmnibox() { | 111 void BrowserWindow::ShowOmnibox() { |
112 if (!omnibox_.get()) { | 112 if (!omnibox_.get()) { |
113 mojo::URLRequestPtr request(mojo::URLRequest::New()); | 113 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
114 request->url = mojo::String::From("mojo:omnibox"); | 114 request->url = mojo::String::From("mojo:omnibox"); |
115 omnibox_connection_ = app_->ConnectToApplication(request.Pass()); | 115 omnibox_connection_ = app_->ConnectToApplication(request.Pass()); |
116 omnibox_connection_->AddService<ViewEmbedder>(this); | 116 omnibox_connection_->AddService<ViewEmbedder>(this); |
(...skipping 19 matching lines...) Expand all Loading... |
136 BrowserWindow::~BrowserWindow() { | 136 BrowserWindow::~BrowserWindow() { |
137 DCHECK(!root_); | 137 DCHECK(!root_); |
138 manager_->BrowserWindowClosed(this); | 138 manager_->BrowserWindowClosed(this); |
139 } | 139 } |
140 | 140 |
141 float BrowserWindow::DIPSToPixels(float value) const { | 141 float BrowserWindow::DIPSToPixels(float value) const { |
142 return value * root_->viewport_metrics().device_pixel_ratio; | 142 return value * root_->viewport_metrics().device_pixel_ratio; |
143 } | 143 } |
144 | 144 |
145 //////////////////////////////////////////////////////////////////////////////// | 145 //////////////////////////////////////////////////////////////////////////////// |
146 // BrowserWindow, mus::ViewTreeDelegate implementation: | 146 // BrowserWindow, mojo::ViewTreeDelegate implementation: |
147 | 147 |
148 void BrowserWindow::OnEmbed(mus::View* root) { | 148 void BrowserWindow::OnEmbed(mojo::View* root) { |
149 // BrowserWindow does not support being embedded more than once. | 149 // BrowserWindow does not support being embedded more than once. |
150 CHECK(!root_); | 150 CHECK(!root_); |
151 | 151 |
152 // Record when the browser window was displayed, used for performance testing. | 152 // Record when the browser window was displayed, used for performance testing. |
153 const base::Time display_time = base::Time::Now(); | 153 const base::Time display_time = base::Time::Now(); |
154 | 154 |
155 root_ = root; | 155 root_ = root; |
156 | 156 |
157 host_->SetTitle("Mandoline"); | 157 host_->SetTitle("Mandoline"); |
158 | 158 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 tracing::StartupPerformanceDataCollectorPtr collector; | 193 tracing::StartupPerformanceDataCollectorPtr collector; |
194 app_->ConnectToService(request.Pass(), &collector); | 194 app_->ConnectToService(request.Pass(), &collector); |
195 collector->SetBrowserWindowDisplayTime(display_time.ToInternalValue()); | 195 collector->SetBrowserWindowDisplayTime(display_time.ToInternalValue()); |
196 collector->SetBrowserOpenTabsTimeDelta(open_tabs_delta.ToInternalValue()); | 196 collector->SetBrowserOpenTabsTimeDelta(open_tabs_delta.ToInternalValue()); |
197 collector->SetBrowserMessageLoopStartTime( | 197 collector->SetBrowserMessageLoopStartTime( |
198 manager_->startup_time().ToInternalValue()); | 198 manager_->startup_time().ToInternalValue()); |
199 recorded_browser_startup_metrics = true; | 199 recorded_browser_startup_metrics = true; |
200 } | 200 } |
201 } | 201 } |
202 | 202 |
203 void BrowserWindow::OnConnectionLost(mus::ViewTreeConnection* connection) { | 203 void BrowserWindow::OnConnectionLost(mojo::ViewTreeConnection* connection) { |
204 root_ = nullptr; | 204 root_ = nullptr; |
205 delete this; | 205 delete this; |
206 } | 206 } |
207 | 207 |
208 //////////////////////////////////////////////////////////////////////////////// | 208 //////////////////////////////////////////////////////////////////////////////// |
209 // BrowserWindow, mus::ViewTreeHostClient implementation: | 209 // BrowserWindow, mojo::ViewTreeHostClient implementation: |
210 | 210 |
211 void BrowserWindow::OnAccelerator(uint32_t id, mojo::EventPtr event) { | 211 void BrowserWindow::OnAccelerator(uint32_t id, mojo::EventPtr event) { |
212 switch (static_cast<BrowserCommand>(id)) { | 212 switch (static_cast<BrowserCommand>(id)) { |
213 case BrowserCommand::CLOSE: | 213 case BrowserCommand::CLOSE: |
214 Close(); | 214 Close(); |
215 break; | 215 break; |
216 case BrowserCommand::NEW_WINDOW: | 216 case BrowserCommand::NEW_WINDOW: |
217 manager_->CreateBrowser(GURL()); | 217 manager_->CreateBrowser(GURL()); |
218 break; | 218 break; |
219 case BrowserCommand::FOCUS_OMNIBOX: | 219 case BrowserCommand::FOCUS_OMNIBOX: |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 | 321 |
322 // The omnibox view bounds are in physical pixels. | 322 // The omnibox view bounds are in physical pixels. |
323 omnibox_view_->SetBounds( | 323 omnibox_view_->SetBounds( |
324 mojo::TypeConverter<mojo::Rect, gfx::Rect>::Convert( | 324 mojo::TypeConverter<mojo::Rect, gfx::Rect>::Convert( |
325 bounds_in_physical_pixels)); | 325 bounds_in_physical_pixels)); |
326 } | 326 } |
327 | 327 |
328 //////////////////////////////////////////////////////////////////////////////// | 328 //////////////////////////////////////////////////////////////////////////////// |
329 // BrowserWindow, private: | 329 // BrowserWindow, private: |
330 | 330 |
331 void BrowserWindow::Init(mus::View* root) { | 331 void BrowserWindow::Init(mojo::View* root) { |
332 DCHECK_GT(root->viewport_metrics().device_pixel_ratio, 0); | 332 DCHECK_GT(root->viewport_metrics().device_pixel_ratio, 0); |
333 if (!aura_init_) | 333 if (!aura_init_) |
334 aura_init_.reset(new AuraInit(root, app_->shell())); | 334 aura_init_.reset(new AuraInit(root, app_->shell())); |
335 | 335 |
336 root_ = root; | 336 root_ = root; |
337 omnibox_view_ = root_->connection()->CreateView(); | 337 omnibox_view_ = root_->connection()->CreateView(); |
338 root_->AddChild(omnibox_view_); | 338 root_->AddChild(omnibox_view_); |
339 | 339 |
340 views::WidgetDelegateView* widget_delegate = new views::WidgetDelegateView; | 340 views::WidgetDelegateView* widget_delegate = new views::WidgetDelegateView; |
341 widget_delegate->GetContentsView()->set_background( | 341 widget_delegate->GetContentsView()->set_background( |
(...skipping 22 matching lines...) Expand all Loading... |
364 omnibox_view_->Embed(view_tree_client.Pass()); | 364 omnibox_view_->Embed(view_tree_client.Pass()); |
365 | 365 |
366 // TODO(beng): This should be handled sufficiently by | 366 // TODO(beng): This should be handled sufficiently by |
367 // OmniboxImpl::ShowWindow() but unfortunately view manager policy | 367 // OmniboxImpl::ShowWindow() but unfortunately view manager policy |
368 // currently prevents the embedded app from changing window z for | 368 // currently prevents the embedded app from changing window z for |
369 // its own window. | 369 // its own window. |
370 omnibox_view_->MoveToFront(); | 370 omnibox_view_->MoveToFront(); |
371 } | 371 } |
372 | 372 |
373 } // namespace mandoline | 373 } // namespace mandoline |
OLD | NEW |