OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/usb/web_usb_detector.h" | 5 #include "chrome/browser/usb/web_usb_detector.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 DISALLOW_COPY_AND_ASSIGN(WebUsbNotificationDelegate); | 111 DISALLOW_COPY_AND_ASSIGN(WebUsbNotificationDelegate); |
112 }; | 112 }; |
113 | 113 |
114 } // namespace | 114 } // namespace |
115 | 115 |
116 WebUsbDetector::WebUsbDetector() : observer_(this) {} | 116 WebUsbDetector::WebUsbDetector() : observer_(this) {} |
117 | 117 |
118 WebUsbDetector::~WebUsbDetector() {} | 118 WebUsbDetector::~WebUsbDetector() {} |
119 | 119 |
120 void WebUsbDetector::Initialize() { | 120 void WebUsbDetector::Initialize() { |
| 121 // Disabled on Windows due to jank and hangs caused by enumerating devices. |
| 122 // https://crbug.com/656702 |
| 123 #if !defined(OS_WIN) |
121 SCOPED_UMA_HISTOGRAM_TIMER("WebUsb.DetectorInitialization"); | 124 SCOPED_UMA_HISTOGRAM_TIMER("WebUsb.DetectorInitialization"); |
122 device::UsbService* usb_service = | 125 device::UsbService* usb_service = |
123 device::DeviceClient::Get()->GetUsbService(); | 126 device::DeviceClient::Get()->GetUsbService(); |
124 if (!usb_service) | 127 if (!usb_service) |
125 return; | 128 return; |
126 | 129 |
127 observer_.Add(usb_service); | 130 observer_.Add(usb_service); |
| 131 #endif |
128 } | 132 } |
129 | 133 |
130 void WebUsbDetector::OnDeviceAdded(scoped_refptr<device::UsbDevice> device) { | 134 void WebUsbDetector::OnDeviceAdded(scoped_refptr<device::UsbDevice> device) { |
131 const base::string16& product_name = device->product_string(); | 135 const base::string16& product_name = device->product_string(); |
132 if (product_name.empty()) { | 136 if (product_name.empty()) { |
133 return; | 137 return; |
134 } | 138 } |
135 | 139 |
136 const GURL& landing_page = device->webusb_landing_page(); | 140 const GURL& landing_page = device->webusb_landing_page(); |
137 if (!landing_page.is_valid() || !content::IsOriginSecure(landing_page)) { | 141 if (!landing_page.is_valid() || !content::IsOriginSecure(landing_page)) { |
(...skipping 25 matching lines...) Expand all Loading... |
163 } | 167 } |
164 | 168 |
165 void WebUsbDetector::OnDeviceRemoved(scoped_refptr<device::UsbDevice> device) { | 169 void WebUsbDetector::OnDeviceRemoved(scoped_refptr<device::UsbDevice> device) { |
166 std::string notification_id = device->guid(); | 170 std::string notification_id = device->guid(); |
167 message_center::MessageCenter* message_center = | 171 message_center::MessageCenter* message_center = |
168 message_center::MessageCenter::Get(); | 172 message_center::MessageCenter::Get(); |
169 if (message_center->FindVisibleNotificationById(notification_id)) { | 173 if (message_center->FindVisibleNotificationById(notification_id)) { |
170 message_center->RemoveNotification(notification_id, false /* by_user */); | 174 message_center->RemoveNotification(notification_id, false /* by_user */); |
171 } | 175 } |
172 } | 176 } |
OLD | NEW |