| 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" |
| 11 #include "base/trace_event/trace_event.h" |
| 11 #include "components/mus/public/cpp/event_matcher.h" | 12 #include "components/mus/public/cpp/event_matcher.h" |
| 12 #include "components/mus/public/cpp/scoped_window_ptr.h" | 13 #include "components/mus/public/cpp/scoped_window_ptr.h" |
| 13 #include "components/mus/public/cpp/window_tree_host_factory.h" | 14 #include "components/mus/public/cpp/window_tree_host_factory.h" |
| 14 #include "mandoline/ui/desktop_ui/browser_commands.h" | 15 #include "mandoline/ui/desktop_ui/browser_commands.h" |
| 15 #include "mandoline/ui/desktop_ui/browser_manager.h" | 16 #include "mandoline/ui/desktop_ui/browser_manager.h" |
| 16 #include "mandoline/ui/desktop_ui/find_bar_view.h" | 17 #include "mandoline/ui/desktop_ui/find_bar_view.h" |
| 17 #include "mandoline/ui/desktop_ui/public/interfaces/omnibox.mojom.h" | 18 #include "mandoline/ui/desktop_ui/public/interfaces/omnibox.mojom.h" |
| 18 #include "mandoline/ui/desktop_ui/toolbar_view.h" | 19 #include "mandoline/ui/desktop_ui/toolbar_view.h" |
| 19 #include "mojo/common/common_type_converters.h" | 20 #include "mojo/common/common_type_converters.h" |
| 20 #include "mojo/converters/geometry/geometry_type_converters.h" | 21 #include "mojo/converters/geometry/geometry_type_converters.h" |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 } | 108 } |
| 108 | 109 |
| 109 void BrowserWindow::Close() { | 110 void BrowserWindow::Close() { |
| 110 if (root_) | 111 if (root_) |
| 111 mus::ScopedWindowPtr::DeleteWindowOrWindowManager(root_); | 112 mus::ScopedWindowPtr::DeleteWindowOrWindowManager(root_); |
| 112 else | 113 else |
| 113 delete this; | 114 delete this; |
| 114 } | 115 } |
| 115 | 116 |
| 116 void BrowserWindow::ShowOmnibox() { | 117 void BrowserWindow::ShowOmnibox() { |
| 118 TRACE_EVENT0("desktop_ui", "BrowserWindow::ShowOmnibox"); |
| 117 if (!omnibox_.get()) { | 119 if (!omnibox_.get()) { |
| 118 mojo::URLRequestPtr request(mojo::URLRequest::New()); | 120 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
| 119 request->url = mojo::String::From("mojo:omnibox"); | 121 request->url = mojo::String::From("mojo:omnibox"); |
| 120 omnibox_connection_ = app_->ConnectToApplication(request.Pass()); | 122 omnibox_connection_ = app_->ConnectToApplication(request.Pass()); |
| 121 omnibox_connection_->AddService<ViewEmbedder>(this); | 123 omnibox_connection_->AddService<ViewEmbedder>(this); |
| 122 omnibox_connection_->ConnectToService(&omnibox_); | 124 omnibox_connection_->ConnectToService(&omnibox_); |
| 123 omnibox_connection_->SetRemoteServiceProviderConnectionErrorHandler( | 125 omnibox_connection_->SetRemoteServiceProviderConnectionErrorHandler( |
| 124 [this]() { | 126 [this]() { |
| 125 // This will cause the connection to be re-established the next time | 127 // This will cause the connection to be re-established the next time |
| 126 // we come through this codepath. | 128 // we come through this codepath. |
| 127 omnibox_.reset(); | 129 omnibox_.reset(); |
| 128 }); | 130 }); |
| 129 } | 131 } |
| 130 omnibox_->ShowForURL(mojo::String::From(current_url_.spec())); | 132 omnibox_->ShowForURL(mojo::String::From(current_url_.spec())); |
| 131 } | 133 } |
| 132 | 134 |
| 133 void BrowserWindow::ShowFind() { | 135 void BrowserWindow::ShowFind() { |
| 136 TRACE_EVENT0("desktop_ui", "BrowserWindow::ShowFind"); |
| 134 toolbar_view_->SetVisible(false); | 137 toolbar_view_->SetVisible(false); |
| 135 find_bar_view_->Show(); | 138 find_bar_view_->Show(); |
| 136 } | 139 } |
| 137 | 140 |
| 138 void BrowserWindow::GoBack() { | 141 void BrowserWindow::GoBack() { |
| 142 TRACE_EVENT0("desktop_ui", "BrowserWindow::GoBack"); |
| 139 web_view_.web_view()->GoBack(); | 143 web_view_.web_view()->GoBack(); |
| 140 } | 144 } |
| 141 | 145 |
| 142 void BrowserWindow::GoForward() { | 146 void BrowserWindow::GoForward() { |
| 147 TRACE_EVENT0("desktop_ui", "BrowserWindow::GoForward"); |
| 143 web_view_.web_view()->GoForward(); | 148 web_view_.web_view()->GoForward(); |
| 144 } | 149 } |
| 145 | 150 |
| 146 BrowserWindow::~BrowserWindow() { | 151 BrowserWindow::~BrowserWindow() { |
| 147 DCHECK(!root_); | 152 DCHECK(!root_); |
| 148 manager_->BrowserWindowClosed(this); | 153 manager_->BrowserWindowClosed(this); |
| 149 } | 154 } |
| 150 | 155 |
| 151 float BrowserWindow::DIPSToPixels(float value) const { | 156 float BrowserWindow::DIPSToPixels(float value) const { |
| 152 return value * root_->viewport_metrics().device_pixel_ratio; | 157 return value * root_->viewport_metrics().device_pixel_ratio; |
| 153 } | 158 } |
| 154 | 159 |
| 155 //////////////////////////////////////////////////////////////////////////////// | 160 //////////////////////////////////////////////////////////////////////////////// |
| 156 // BrowserWindow, mus::ViewTreeDelegate implementation: | 161 // BrowserWindow, mus::ViewTreeDelegate implementation: |
| 157 | 162 |
| 158 void BrowserWindow::OnEmbed(mus::Window* root) { | 163 void BrowserWindow::OnEmbed(mus::Window* root) { |
| 164 TRACE_EVENT0("desktop_ui", "BrowserWindow::OnEmbed"); |
| 159 // BrowserWindow does not support being embedded more than once. | 165 // BrowserWindow does not support being embedded more than once. |
| 160 CHECK(!root_); | 166 CHECK(!root_); |
| 161 | 167 |
| 162 // Record when the browser window was displayed, used for performance testing. | 168 // Record when the browser window was displayed, used for performance testing. |
| 163 const base::Time display_time = base::Time::Now(); | 169 const base::Time display_time = base::Time::Now(); |
| 164 | 170 |
| 165 root_ = root; | 171 root_ = root; |
| 166 | 172 |
| 167 host_->SetTitle("Mandoline"); | 173 host_->SetTitle("Mandoline"); |
| 168 | 174 |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 omnibox_view_->Embed(view_tree_client.Pass()); | 420 omnibox_view_->Embed(view_tree_client.Pass()); |
| 415 | 421 |
| 416 // TODO(beng): This should be handled sufficiently by | 422 // TODO(beng): This should be handled sufficiently by |
| 417 // OmniboxImpl::ShowWindow() but unfortunately view manager policy | 423 // OmniboxImpl::ShowWindow() but unfortunately view manager policy |
| 418 // currently prevents the embedded app from changing window z for | 424 // currently prevents the embedded app from changing window z for |
| 419 // its own window. | 425 // its own window. |
| 420 omnibox_view_->MoveToFront(); | 426 omnibox_view_->MoveToFront(); |
| 421 } | 427 } |
| 422 | 428 |
| 423 } // namespace mandoline | 429 } // namespace mandoline |
| OLD | NEW |