| Index: chrome/browser/extensions/extension_record_api.cc
|
| diff --git a/chrome/browser/extensions/extension_record_api.cc b/chrome/browser/extensions/extension_record_api.cc
|
| index 035c7982cee9c116f838e5ae232ee347187190b7..2d8dec308944e4bab0e44e7f2db4add130bd9326 100644
|
| --- a/chrome/browser/extensions/extension_record_api.cc
|
| +++ b/chrome/browser/extensions/extension_record_api.cc
|
| @@ -22,6 +22,8 @@
|
|
|
| namespace record = extensions::api::experimental_record;
|
|
|
| +const FilePath::CharType kFirstRunFile[] = FILE_PATH_LITERAL("First Run");
|
| +
|
| ProcessStrategy::~ProcessStrategy() {}
|
|
|
| void ProductionProcessStrategy::RunProcess(const CommandLine& line) {
|
| @@ -32,7 +34,7 @@ void ProductionProcessStrategy::RunProcess(const CommandLine& line) {
|
| }
|
|
|
| RunPageCyclerFunction::RunPageCyclerFunction(ProcessStrategy* strategy)
|
| - : base_command_line_(*CommandLine::ForCurrentProcess()),
|
| + : repeat_count_(1), base_command_line_(*CommandLine::ForCurrentProcess()),
|
| process_strategy_(strategy) {}
|
|
|
| RunPageCyclerFunction::~RunPageCyclerFunction() {}
|
| @@ -96,6 +98,15 @@ void RunPageCyclerFunction::RunTestBrowser() {
|
| // Add the user-data-dir switch, since this is common to both call types.
|
| line.AppendSwitchPath(switches::kUserDataDir, user_data_dir_);
|
|
|
| + // Test browsers must run as if they are not in first-run mode, so if
|
| + // user_data_dir_ doesn't exist, create it and insert "First Run" file
|
| + if (!file_util::PathExists(user_data_dir_)) {
|
| + file_util::CreateDirectory(user_data_dir_);
|
| + FilePath firstRunFilePath
|
| + = user_data_dir_.Append(FilePath::StringType(kFirstRunFile));
|
| + file_util::WriteFile(firstRunFilePath, "", 0);
|
| + }
|
| +
|
| // Do the same for visit-urls, creating a temp file to communicate the
|
| // URL list to the test browser.
|
| FilePath url_path;
|
| @@ -155,6 +166,7 @@ bool CaptureURLsFunction::ParseJSParameters() {
|
|
|
| url_contents_ = JoinString(params->urls, '\n');
|
| user_data_dir_ = FilePath::FromUTF8Unsafe(params->cache_directory_path);
|
| + repeat_count_ = params->repeat_count;
|
|
|
| return true;
|
| }
|
| @@ -162,6 +174,9 @@ bool CaptureURLsFunction::ParseJSParameters() {
|
| // CaptureURLsFunction adds "record-mode" to sub-browser call, and returns
|
| // just the (possibly empty) error list.
|
| void CaptureURLsFunction::AddSwitches(CommandLine* line) {
|
| + line->AppendSwitchASCII(switches::kVisitURLsCount,
|
| + base::Int64ToString(repeat_count_));
|
| +
|
| if (!line->HasSwitch(switches::kRecordMode))
|
| line->AppendSwitch(switches::kRecordMode);
|
| }
|
| @@ -176,12 +191,11 @@ void CaptureURLsFunction::Finish() {
|
|
|
| ReplayURLsFunction::ReplayURLsFunction()
|
| : RunPageCyclerFunction(new ProductionProcessStrategy()),
|
| - repeat_count_(1), run_time_ms_(0) {
|
| + run_time_ms_(0) {
|
| }
|
|
|
| ReplayURLsFunction::ReplayURLsFunction(ProcessStrategy* strategy)
|
| - : RunPageCyclerFunction(strategy),
|
| - repeat_count_(1), run_time_ms_(0) {
|
| + : RunPageCyclerFunction(strategy), run_time_ms_(0) {
|
| }
|
|
|
| ReplayURLsFunction::~ReplayURLsFunction() {}
|
| @@ -195,10 +209,9 @@ bool ReplayURLsFunction::ParseJSParameters() {
|
|
|
| url_contents_ = JoinString(params->urls, '\n');
|
| user_data_dir_ = FilePath::FromUTF8Unsafe(params->capture_directory_path);
|
| + repeat_count_ = params->repeat_count;
|
|
|
| if (params->details.get()) {
|
| - if (params->details->repeat_count.get())
|
| - repeat_count_ = *params->details->repeat_count;
|
| if (params->details->extension_path.get())
|
| extension_path_ =
|
| FilePath::FromUTF8Unsafe(*params->details->extension_path);
|
|
|