Index: headless/app/headless_shell.cc |
diff --git a/headless/app/headless_shell.cc b/headless/app/headless_shell.cc |
index 1410313ffa8b663ae36e4f6eb1454a2a551726b1..9fafa553a6bd280d0373d5ce9c65759a4288cd33 100644 |
--- a/headless/app/headless_shell.cc |
+++ b/headless/app/headless_shell.cc |
@@ -42,7 +42,18 @@ namespace { |
const char kDevToolsHttpServerAddress[] = "127.0.0.1"; |
// Default file name for screenshot. Can be overriden by "--screenshot" switch. |
const char kDefaultScreenshotFileName[] = "screenshot.png"; |
+ |
+bool ParseWindowSize(std::string window_size, gfx::Size* parsed_window_size) { |
+ int width, height = 0; |
+ if (sscanf(window_size.c_str(), "%dx%d", &width, &height) >= 2 && |
+ width >= 0 && height >= 0) { |
+ parsed_window_size->set_width(width); |
+ parsed_window_size->set_height(height); |
+ return true; |
+ } |
+ return false; |
} |
+} // namespace |
// A sample application which demonstrates the use of the headless API. |
class HeadlessShell : public HeadlessWebContents::Observer, page::Observer { |
@@ -352,6 +363,17 @@ int main(int argc, const char** argv) { |
builder.SetIncognitoMode(false); |
} |
+ if (command_line.HasSwitch(headless::switches::kWindowSize)) { |
+ std::string window_size = |
+ command_line.GetSwitchValueASCII(headless::switches::kWindowSize); |
+ gfx::Size parsed_window_size; |
+ if (!ParseWindowSize(window_size, &parsed_window_size)) { |
+ LOG(ERROR) << "Malformed window size"; |
+ return EXIT_FAILURE; |
+ } |
+ builder.SetWindowSize(parsed_window_size); |
+ } |
+ |
return HeadlessBrowserMain( |
builder.Build(), |
base::Bind(&HeadlessShell::OnStart, base::Unretained(&shell))); |