Do not show sync promo when RestoreOnStartupURLs policy is set

When first_run_tabs are set through master_preferences, the sync promo
should be shown if not explicitly suppressed. When RestoreOnStartupURLs
is set through policy, the sync promo should never be shown. This is
long-standing behavior, as evidenced here:

http://crbug.com/125467#c26

That behavior recently regressed with the sync promo appearing even if
RestoreOnStartupURLs are set. The regression happened here:

https://chromiumcodereview.appspot.com/12638005

This CL fixes the regression by ensuring that when RestoreOnStartup=4 and
RestoreOnStartupURLs are set, the sync promo is not shown. The CL also
adds browser tests to protect against similar regressions in the future.

BUG=244849
TEST=Manual and new browser_tests

Review URL: https://chromiumcodereview.appspot.com/16141008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206915 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 93660ab3f5c895eb3e8a5f66d3af4669e16de21d
diff --git a/base/command_line.cc b/base/command_line.cc
index b743d51..7d137f2 100644
--- a/base/command_line.cc
+++ b/base/command_line.cc
@@ -220,6 +220,7 @@
 
 void CommandLine::InitFromArgv(const StringVector& argv) {
   argv_ = StringVector(1);
+  switches_.clear();
   begin_args_ = 1;
   SetProgram(argv.empty() ? FilePath() : FilePath(argv[0]));
   AppendSwitchesAndArguments(*this, argv);