summaryrefslogtreecommitdiffstats
path: root/mandoline
diff options
context:
space:
mode:
authorfsamuel <fsamuel@chromium.org>2015-06-30 16:18:51 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-30 23:20:28 +0000
commitf3a873f53e41f2e1aa12bebcde98877a38f250da (patch)
tree1fb2d07876a8c9c297ee0d78ba294f39476fc6c1 /mandoline
parentf6a77e6f05c7dfe02238873de39d995d3fcab79e (diff)
downloadchromium_src-f3a873f53e41f2e1aa12bebcde98877a38f250da.zip
chromium_src-f3a873f53e41f2e1aa12bebcde98877a38f250da.tar.gz
chromium_src-f3a873f53e41f2e1aa12bebcde98877a38f250da.tar.bz2
Mandoline: Create a browser window for each valid URL in the command line.
This will enable multi-window testing and process model testing. BUG=496935 Review URL: https://codereview.chromium.org/1219963002 Cr-Commit-Position: refs/heads/master@{#336910}
Diffstat (limited to 'mandoline')
-rw-r--r--mandoline/ui/browser/browser.cc21
-rw-r--r--mandoline/ui/browser/browser.h6
-rw-r--r--mandoline/ui/browser/browser_apptest.cc2
-rw-r--r--mandoline/ui/browser/browser_manager.cc23
-rw-r--r--mandoline/ui/browser/browser_manager.h3
5 files changed, 33 insertions, 22 deletions
diff --git a/mandoline/ui/browser/browser.cc b/mandoline/ui/browser/browser.cc
index 0d06730..8639d2b 100644
--- a/mandoline/ui/browser/browser.cc
+++ b/mandoline/ui/browser/browser.cc
@@ -33,27 +33,18 @@ gfx::Size GetInitialViewportSize() {
} // namespace
-Browser::Browser(mojo::ApplicationImpl* app, BrowserDelegate* delegate)
+Browser::Browser(mojo::ApplicationImpl* app,
+ BrowserDelegate* delegate,
+ const GURL& default_url)
: view_manager_init_(app, this, this),
root_(nullptr),
content_(nullptr),
omnibox_(nullptr),
+ default_url_(default_url),
navigator_host_(this),
app_(app),
delegate_(delegate) {
ui_.reset(BrowserUI::Create(this, app));
-
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
- base::CommandLine::StringVector args = command_line->GetArgs();
- if (args.empty()) {
- default_url_ = "http://www.google.com/";
- } else {
-#if defined(OS_WIN)
- default_url_ = base::WideToUTF8(args[0]);
-#else
- default_url_ = args[0];
-#endif
- }
}
Browser::~Browser() {
@@ -83,9 +74,9 @@ void Browser::OnDevicePixelRatioAvailable() {
// Now that we're ready, either load a pending url or the default url.
if (pending_request_) {
Embed(pending_request_.Pass());
- } else if (!default_url_.empty()) {
+ } else if (default_url_.is_valid()) {
mojo::URLRequestPtr request(mojo::URLRequest::New());
- request->url = mojo::String::From(default_url_);
+ request->url = mojo::String::From(default_url_.spec());
Embed(request.Pass());
}
}
diff --git a/mandoline/ui/browser/browser.h b/mandoline/ui/browser/browser.h
index c43fa55..36dfff1 100644
--- a/mandoline/ui/browser/browser.h
+++ b/mandoline/ui/browser/browser.h
@@ -40,7 +40,9 @@ class Browser : public mojo::ViewManagerDelegate,
public mojo::InterfaceFactory<mojo::NavigatorHost>,
public mojo::InterfaceFactory<ViewEmbedder> {
public:
- Browser(mojo::ApplicationImpl* app, BrowserDelegate* delegate);
+ Browser(mojo::ApplicationImpl* app,
+ BrowserDelegate* delegate,
+ const GURL& default_url);
~Browser() override;
void ReplaceContentWithRequest(mojo::URLRequestPtr request);
@@ -97,7 +99,7 @@ class Browser : public mojo::ViewManagerDelegate,
mojo::View* root_;
mojo::View* content_;
mojo::View* omnibox_;
- std::string default_url_;
+ GURL default_url_;
mojo::URLRequestPtr pending_request_;
mojo::WeakBindingSet<ViewEmbedder> view_embedder_bindings_;
diff --git a/mandoline/ui/browser/browser_apptest.cc b/mandoline/ui/browser/browser_apptest.cc
index 10a8120..25cd9d7 100644
--- a/mandoline/ui/browser/browser_apptest.cc
+++ b/mandoline/ui/browser/browser_apptest.cc
@@ -17,7 +17,7 @@ namespace mandoline {
class TestBrowser : public Browser {
public:
TestBrowser(mojo::ApplicationImpl* app, BrowserDelegate* delegate)
- : Browser(app, delegate) {}
+ : Browser(app, delegate, GURL()) {}
~TestBrowser() override {}
void WaitForOnEmbed() {
diff --git a/mandoline/ui/browser/browser_manager.cc b/mandoline/ui/browser/browser_manager.cc
index 45e1180..97782e7 100644
--- a/mandoline/ui/browser/browser_manager.cc
+++ b/mandoline/ui/browser/browser_manager.cc
@@ -4,12 +4,19 @@
#include "mandoline/ui/browser/browser_manager.h"
+#include "base/command_line.h"
#include "components/view_manager/public/cpp/view.h"
#include "components/view_manager/public/cpp/view_observer.h"
#include "mandoline/ui/browser/browser.h"
namespace mandoline {
+namespace {
+
+const char kGoogleURL[] = "http://www.google.com";
+
+} // namespace
+
// TODO(sky): make ViewManager not do anything until device_pixel_ratio is
// determined. At which point this can be nuked.
class BrowserManager::DevicePixelRatioWaiter : mojo::ViewObserver {
@@ -58,9 +65,9 @@ BrowserManager::~BrowserManager() {
DCHECK(browsers_.empty());
}
-Browser* BrowserManager::CreateBrowser() {
+Browser* BrowserManager::CreateBrowser(const GURL& default_url) {
DCHECK(app_);
- Browser* browser = new Browser(app_, this);
+ Browser* browser = new Browser(app_, this, default_url);
browsers_.insert(browser);
return browser;
}
@@ -86,7 +93,17 @@ void BrowserManager::LaunchURL(const mojo::String& url) {
void BrowserManager::Initialize(mojo::ApplicationImpl* app) {
app_ = app;
- CreateBrowser();
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ // Create a Browser for each valid URL in the command line.
+ for (const auto& arg : command_line->GetArgs()) {
+ GURL url(arg);
+ if (url.is_valid())
+ CreateBrowser(url);
+ }
+ // If there were no valid URLs in the command line create a Browser with the
+ // default URL.
+ if (browsers_.empty())
+ CreateBrowser(GURL(kGoogleURL));
}
bool BrowserManager::ConfigureIncomingConnection(
diff --git a/mandoline/ui/browser/browser_manager.h b/mandoline/ui/browser/browser_manager.h
index 2624c81..11334e4 100644
--- a/mandoline/ui/browser/browser_manager.h
+++ b/mandoline/ui/browser/browser_manager.h
@@ -14,6 +14,7 @@
#include "mojo/application/public/cpp/application_impl.h"
#include "mojo/application/public/cpp/connect.h"
#include "mojo/common/weak_binding_set.h"
+#include "url/gurl.h"
#if defined(USE_AURA)
#include "mandoline/ui/aura/aura_init.h"
@@ -37,7 +38,7 @@ class BrowserManager : public mojo::ApplicationDelegate,
~BrowserManager() override;
// BrowserManager owns the returned Browser.
- Browser* CreateBrowser();
+ Browser* CreateBrowser(const GURL& default_url);
private:
class DevicePixelRatioWaiter;