Merge Chromium at r12.0.742.93: Initial merge by git

Change-Id: Ic5ee2fec31358bbee305f7e915442377bfa6cda6
diff --git a/chrome/browser/extensions/extension_gallery_install_apitest.cc b/chrome/browser/extensions/extension_gallery_install_apitest.cc
index 423c0a7..efb11f1 100644
--- a/chrome/browser/extensions/extension_gallery_install_apitest.cc
+++ b/chrome/browser/extensions/extension_gallery_install_apitest.cc
@@ -1,8 +1,12 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
 #include "base/stringprintf.h"
+#if defined (OS_WIN)
+#include "base/win/windows_version.h"
+#endif  // defined (OS_WIN)
+
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/browser/extensions/extension_webstore_private_api.h"
 #include "chrome/common/chrome_switches.h"
@@ -35,22 +39,47 @@
   }
 };
 
-// http://crbug.com/55642 - failing on XP.
+namespace {
+
+bool RunningOnXP() {
 #if defined (OS_WIN)
-#define MAYBE_InstallAndUninstall DISABLED_InstallAndUninstall
+  return GetVersion() < base::win::VERSION_VISTA;
+#else
+  return false;
+#endif  // defined (OS_WIN)
+}
+
+}  // namespace
+
+// TODO(asargent) - for some reason this test occasionally fails on XP,
+// but not other versions of windows. http://crbug.com/55642
+#if defined (OS_WIN)
+#define MAYBE_InstallAndUninstall FLAKY_InstallAndUninstall
 #else
 #define MAYBE_InstallAndUninstall InstallAndUninstall
 #endif
 IN_PROC_BROWSER_TEST_F(ExtensionGalleryInstallApiTest,
                        MAYBE_InstallAndUninstall) {
+  if (RunningOnXP()) {
+    LOG(INFO) << "Adding host resolver rule";
+  }
   host_resolver()->AddRule("www.example.com", "127.0.0.1");
+  if (RunningOnXP()) {
+    LOG(INFO) << "Starting test server";
+  }
   ASSERT_TRUE(test_server()->Start());
 
+  if (RunningOnXP()) {
+    LOG(INFO) << "Starting tests without user gesture checking";
+  }
   BeginInstallFunction::SetIgnoreUserGestureForTests(true);
   ASSERT_TRUE(RunInstallTest("test.html"));
   ASSERT_TRUE(RunInstallTest("complete_without_begin.html"));
   ASSERT_TRUE(RunInstallTest("invalid_begin.html"));
 
+  if (RunningOnXP()) {
+    LOG(INFO) << "Starting tests with user gesture checking";
+  }
   BeginInstallFunction::SetIgnoreUserGestureForTests(false);
   ASSERT_TRUE(RunInstallTest("no_user_gesture.html"));
 }