diff options
author | fsamuel <fsamuel@chromium.org> | 2015-06-30 16:18:51 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-30 23:20:28 +0000 |
commit | f3a873f53e41f2e1aa12bebcde98877a38f250da (patch) | |
tree | 1fb2d07876a8c9c297ee0d78ba294f39476fc6c1 /mandoline | |
parent | f6a77e6f05c7dfe02238873de39d995d3fcab79e (diff) | |
download | chromium_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.cc | 21 | ||||
-rw-r--r-- | mandoline/ui/browser/browser.h | 6 | ||||
-rw-r--r-- | mandoline/ui/browser/browser_apptest.cc | 2 | ||||
-rw-r--r-- | mandoline/ui/browser/browser_manager.cc | 23 | ||||
-rw-r--r-- | mandoline/ui/browser/browser_manager.h | 3 |
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; |