Index: chrome/browser/usb/web_usb_detector.cc |
diff --git a/chrome/browser/usb/web_usb_detector.cc b/chrome/browser/usb/web_usb_detector.cc |
index 8bf90ddead499be814047d2624da60a87a312d80..8069062408a9ba244145bf694bf0c8988a0785f9 100644 |
--- a/chrome/browser/usb/web_usb_detector.cc |
+++ b/chrome/browser/usb/web_usb_detector.cc |
@@ -6,6 +6,7 @@ |
#include <utility> |
+#include "base/feature_list.h" |
#include "base/macros.h" |
#include "base/metrics/histogram_macros.h" |
#include "base/strings/utf_string_conversions.h" |
@@ -17,6 +18,7 @@ |
#include "chrome/grit/theme_resources.h" |
#include "content/public/common/origin_util.h" |
#include "device/base/device_client.h" |
+#include "device/base/features.h" |
#include "device/usb/usb_device.h" |
#include "device/usb/usb_ids.h" |
#include "ui/base/l10n/l10n_util.h" |
@@ -118,9 +120,14 @@ WebUsbDetector::WebUsbDetector() : observer_(this) {} |
WebUsbDetector::~WebUsbDetector() {} |
void WebUsbDetector::Initialize() { |
-// Disabled on Windows due to jank and hangs caused by enumerating devices. |
-// https://crbug.com/656702 |
-#if !defined(OS_WIN) |
+#if defined(OS_WIN) |
+ // The WebUSB device detector is disabled on Windows due to jank and hangs |
+ // caused by enumerating devices. The new USB backend is designed to resolve |
+ // these issues so enable it for testing. https://crbug.com/656702 |
+ if (!base::FeatureList::IsEnabled(device::kNewUsbBackend)) |
+ return; |
+#endif // defined(OS_WIN) |
+ |
SCOPED_UMA_HISTOGRAM_TIMER("WebUsb.DetectorInitialization"); |
device::UsbService* usb_service = |
device::DeviceClient::Get()->GetUsbService(); |
@@ -128,7 +135,6 @@ void WebUsbDetector::Initialize() { |
return; |
observer_.Add(usb_service); |
-#endif |
} |
void WebUsbDetector::OnDeviceAdded(scoped_refptr<device::UsbDevice> device) { |