Index: mandoline/ui/browser/browser.cc |
diff --git a/mandoline/ui/browser/browser.cc b/mandoline/ui/browser/browser.cc |
index d6abe10e8e1b44ebf74cc59bec7b078f7086e9d1..d62d1272e29c4d4524bd641499af556a9f9b71e8 100644 |
--- a/mandoline/ui/browser/browser.cc |
+++ b/mandoline/ui/browser/browser.cc |
@@ -6,7 +6,10 @@ |
#include "base/command_line.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "mandoline/ui/browser/browser_ui.h" |
#include "mandoline/ui/browser/merged_service_provider.h" |
+#include "mojo/application/application_runner_chromium.h" |
+#include "third_party/mojo/src/mojo/public/c/system/main.h" |
#include "ui/gfx/geometry/size.h" |
namespace mandoline { |
@@ -16,6 +19,7 @@ Browser::Browser() |
root_(nullptr), |
content_(nullptr), |
navigator_host_(this), |
+ ui_(nullptr), |
weak_factory_(this) { |
exposed_services_impl_.AddService(this); |
} |
@@ -29,6 +33,7 @@ base::WeakPtr<Browser> Browser::GetWeakPtr() { |
void Browser::Initialize(mojo::ApplicationImpl* app) { |
window_manager_app_->Initialize(app); |
+ ui_.reset(BrowserUI::Create(this, app->shell())); |
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
base::CommandLine::StringVector args = command_line->GetArgs(); |
@@ -62,8 +67,12 @@ void Browser::OnEmbed( |
// Browser does not support being embedded more than once. |
CHECK(!root_); |
+ // TODO(beng): still unhappy with the fact that both this class & the UI class |
+ // know so much about these views. Figure out how to shift more to |
+ // the UI class. |
root_ = root; |
- root_->AddObserver(this); |
+ content_ = root->view_manager()->CreateView(); |
+ ui_->Init(root_, content_); |
#if defined(OS_ANDROID) |
// Resize to match the Nexus 5 aspect ratio: |
@@ -72,8 +81,6 @@ void Browser::OnEmbed( |
window_manager_app_->SetViewportSize(gfx::Size(1280, 800)); |
#endif |
- content_ = root->view_manager()->CreateView(); |
- content_->SetBounds(root_->bounds()); |
root_->AddChild(content_); |
content_->SetVisible(true); |
@@ -123,16 +130,6 @@ void Browser::OnViewManagerDisconnected( |
root_ = nullptr; |
} |
-void Browser::OnViewDestroyed(mojo::View* view) { |
- view->RemoveObserver(this); |
-} |
- |
-void Browser::OnViewBoundsChanged(mojo::View* view, |
- const mojo::Rect& old_bounds, |
- const mojo::Rect& new_bounds) { |
- content_->SetBounds(new_bounds); |
-} |
- |
// Convenience method: |
void Browser::ReplaceContentWithURL(const mojo::String& url) { |
Embed(url, nullptr, nullptr); |