Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: mandoline/ui/phone_ui/phone_browser_application_delegate.cc

Issue 1308973005: html_viewer/web_view: An app for running layout-tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix-win-build Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mandoline/ui/phone_ui/phone_browser_application_delegate.cc
diff --git a/mandoline/ui/phone_ui/phone_browser_application_delegate.cc b/mandoline/ui/phone_ui/phone_browser_application_delegate.cc
index d01ac826cecea7037780add1f9c8c2c21e606251..3cceb51e6b35d4d6326b3f2f955f97a3090aa63f 100644
--- a/mandoline/ui/phone_ui/phone_browser_application_delegate.cc
+++ b/mandoline/ui/phone_ui/phone_browser_application_delegate.cc
@@ -5,6 +5,7 @@
#include "mandoline/ui/phone_ui/phone_browser_application_delegate.h"
#include "base/command_line.h"
+#include "components/view_manager/public/cpp/scoped_view_ptr.h"
#include "components/view_manager/public/cpp/view.h"
#include "components/view_manager/public/cpp/view_tree_connection.h"
#include "components/view_manager/public/cpp/view_tree_host_factory.h"
@@ -22,12 +23,22 @@ namespace mandoline {
PhoneBrowserApplicationDelegate::PhoneBrowserApplicationDelegate()
: app_(nullptr),
+ root_(nullptr),
content_(nullptr),
web_view_(this),
- default_url_("http://www.google.com/") {
-}
+ default_url_("http://www.google.com/") {}
PhoneBrowserApplicationDelegate::~PhoneBrowserApplicationDelegate() {
+ if (root_)
+ mojo::ScopedViewPtr::DeleteViewOrViewManager(root_);
+}
+
+bool PhoneBrowserApplicationDelegate::ShouldLaunchURLOnInitialize() const {
+ return true;
+}
+
+gfx::Size PhoneBrowserApplicationDelegate::GetViewportSize() const {
+ return gfx::Size(320, 640);
}
////////////////////////////////////////////////////////////////////////////////
@@ -57,6 +68,10 @@ bool PhoneBrowserApplicationDelegate::ConfigureIncomingConnection(
// PhoneBrowserApplicationDelegate, LaunchHandler implementation:
void PhoneBrowserApplicationDelegate::LaunchURL(const mojo::String& url) {
+ if (!web_view_inited_) {
+ web_view_.Init(app_, content_);
+ web_view_inited_ = true;
+ }
mojo::URLRequestPtr request(mojo::URLRequest::New());
request->url = url;
web_view_.web_view()->LoadRequest(request.Pass());
@@ -69,16 +84,19 @@ void PhoneBrowserApplicationDelegate::OnEmbed(mojo::View* root) {
root->connection()->SetEmbedRoot();
content_ = root->connection()->CreateView();
root->AddChild(content_);
+ root_ = root;
content_->SetBounds(root->bounds());
content_->SetVisible(true);
- host_->SetSize(mojo::Size::From(gfx::Size(320, 640)));
- web_view_.Init(app_, content_);
- LaunchURL(default_url_);
+ host_->SetSize(mojo::Size::From(GetViewportSize()));
+ if (ShouldLaunchURLOnInitialize())
+ LaunchURL(default_url_);
}
void PhoneBrowserApplicationDelegate::OnConnectionLost(
mojo::ViewTreeConnection* connection) {
+ root_ = nullptr;
+ app_->Quit();
}
////////////////////////////////////////////////////////////////////////////////

Powered by Google App Engine
This is Rietveld 408576698