Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Side by Side Diff: chrome/browser/resources/bluetooth_internals/bluetooth_internals.js

Issue 2939273002: DO NOT SUBMIT: what chrome/browser/resources/ could eventually look like with clang-format (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 /** 5 /**
6 * Javascript for bluetooth_internals.html, served from 6 * Javascript for bluetooth_internals.html, served from
7 * chrome://bluetooth-internals/. 7 * chrome://bluetooth-internals/.
8 */ 8 */
9 9
10 // Expose for testing. 10 // Expose for testing.
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 * Creates a DeviceDetailsPage with the given |deviceInfo|, appends it to 86 * Creates a DeviceDetailsPage with the given |deviceInfo|, appends it to
87 * '#page-container', and adds a sidebar item to show the new page. If a 87 * '#page-container', and adds a sidebar item to show the new page. If a
88 * page exists that matches |deviceInfo.address|, nothing is created and the 88 * page exists that matches |deviceInfo.address|, nothing is created and the
89 * existing page is returned. 89 * existing page is returned.
90 * @param {!interfaces.BluetoothDevice.Device} deviceInfo 90 * @param {!interfaces.BluetoothDevice.Device} deviceInfo
91 * @return {!device_details_page.DeviceDetailsPage} 91 * @return {!device_details_page.DeviceDetailsPage}
92 */ 92 */
93 function makeDeviceDetailsPage(deviceInfo) { 93 function makeDeviceDetailsPage(deviceInfo) {
94 var deviceDetailsPageId = 'devices/' + deviceInfo.address.toLowerCase(); 94 var deviceDetailsPageId = 'devices/' + deviceInfo.address.toLowerCase();
95 var deviceDetailsPage = PageManager.registeredPages[deviceDetailsPageId]; 95 var deviceDetailsPage = PageManager.registeredPages[deviceDetailsPageId];
96 if (deviceDetailsPage) return deviceDetailsPage; 96 if (deviceDetailsPage)
97 return deviceDetailsPage;
97 98
98 var pageSection = document.createElement('section'); 99 var pageSection = document.createElement('section');
99 pageSection.hidden = true; 100 pageSection.hidden = true;
100 pageSection.id = deviceDetailsPageId; 101 pageSection.id = deviceDetailsPageId;
101 $('page-container').appendChild(pageSection); 102 $('page-container').appendChild(pageSection);
102 103
103 deviceDetailsPage = new DeviceDetailsPage(deviceDetailsPageId, deviceInfo); 104 deviceDetailsPage = new DeviceDetailsPage(deviceDetailsPageId, deviceInfo);
104 deviceDetailsPage.pageDiv.addEventListener('connectionchanged', 105 deviceDetailsPage.pageDiv.addEventListener(
105 function(event) { 106 'connectionchanged', function(event) {
106 devices.updateConnectionStatus( 107 devices.updateConnectionStatus(
107 event.detail.address, event.detail.status); 108 event.detail.address, event.detail.status);
108 }); 109 });
109 110
110 deviceDetailsPage.pageDiv.addEventListener('infochanged', function(event) { 111 deviceDetailsPage.pageDiv.addEventListener('infochanged', function(event) {
111 devices.addOrUpdate(event.detail.info); 112 devices.addOrUpdate(event.detail.info);
112 }); 113 });
113 114
114 deviceDetailsPage.pageDiv.addEventListener('forgetpressed', 115 deviceDetailsPage.pageDiv.addEventListener(
115 function(event) { 116 'forgetpressed', function(event) {
116 PageManager.showPageByName(devicesPage.name); 117 PageManager.showPageByName(devicesPage.name);
117 removeDeviceDetailsPage(event.detail.address); 118 removeDeviceDetailsPage(event.detail.address);
118 }); 119 });
119 120
120 // Inform the devices page that the user is inspecting this device. 121 // Inform the devices page that the user is inspecting this device.
121 // This will update the links in the device table. 122 // This will update the links in the device table.
122 devicesPage.setInspecting(deviceInfo, true /* isInspecting */); 123 devicesPage.setInspecting(deviceInfo, true /* isInspecting */);
123 PageManager.register(deviceDetailsPage); 124 PageManager.register(deviceDetailsPage);
124 125
125 sidebarObj.addItem({ 126 sidebarObj.addItem({
126 pageName: deviceDetailsPageId, 127 pageName: deviceDetailsPageId,
127 text: deviceInfo.name_for_display, 128 text: deviceInfo.name_for_display,
128 }); 129 });
129 130
130 deviceDetailsPage.connect(); 131 deviceDetailsPage.connect();
131 return deviceDetailsPage; 132 return deviceDetailsPage;
132 } 133 }
133 134
134 /** 135 /**
135 * Updates the DeviceDetailsPage with the matching device |address| and 136 * Updates the DeviceDetailsPage with the matching device |address| and
136 * redraws it. 137 * redraws it.
137 * @param {string} address 138 * @param {string} address
138 */ 139 */
139 function updateDeviceDetailsPage(address) { 140 function updateDeviceDetailsPage(address) {
140 var detailPageId = 'devices/' + address.toLowerCase(); 141 var detailPageId = 'devices/' + address.toLowerCase();
141 var page = PageManager.registeredPages[detailPageId]; 142 var page = PageManager.registeredPages[detailPageId];
142 if (page) page.redraw(); 143 if (page)
144 page.redraw();
143 } 145 }
144 146
145 function updateStoppedDiscoverySession() { 147 function updateStoppedDiscoverySession() {
146 devicesPage.setScanStatus(devices_page.ScanStatus.OFF); 148 devicesPage.setScanStatus(devices_page.ScanStatus.OFF);
147 discoverySession.ptr.reset(); 149 discoverySession.ptr.reset();
148 discoverySession = null; 150 discoverySession = null;
149 } 151 }
150 152
151 function setupAdapterSystem(response) { 153 function setupAdapterSystem(response) {
152 adapterBroker.addEventListener('adapterchanged', function(event) { 154 adapterBroker.addEventListener('adapterchanged', function(event) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 adapterBroker.addEventListener('deviceremoved', function(event) { 186 adapterBroker.addEventListener('deviceremoved', function(event) {
185 devices.remove(event.detail.deviceInfo); 187 devices.remove(event.detail.deviceInfo);
186 updateDeviceDetailsPage(event.detail.deviceInfo.address); 188 updateDeviceDetailsPage(event.detail.deviceInfo.address);
187 }); 189 });
188 190
189 response.devices.forEach(devices.addOrUpdate, devices /* this */); 191 response.devices.forEach(devices.addOrUpdate, devices /* this */);
190 192
191 devicesPage.setDevices(devices); 193 devicesPage.setDevices(devices);
192 194
193 devicesPage.pageDiv.addEventListener('inspectpressed', function(event) { 195 devicesPage.pageDiv.addEventListener('inspectpressed', function(event) {
194 var detailsPage = makeDeviceDetailsPage( 196 var detailsPage =
195 devices.getByAddress(event.detail.address)); 197 makeDeviceDetailsPage(devices.getByAddress(event.detail.address));
196 PageManager.showPageByName(detailsPage.name); 198 PageManager.showPageByName(detailsPage.name);
197 }); 199 });
198 200
199 devicesPage.pageDiv.addEventListener('forgetpressed', function(event) { 201 devicesPage.pageDiv.addEventListener('forgetpressed', function(event) {
200 PageManager.showPageByName(devicesPage.name); 202 PageManager.showPageByName(devicesPage.name);
201 removeDeviceDetailsPage(event.detail.address); 203 removeDeviceDetailsPage(event.detail.address);
202 }); 204 });
203 205
204 devicesPage.pageDiv.addEventListener('scanpressed', function(event) { 206 devicesPage.pageDiv.addEventListener('scanpressed', function(event) {
205 if (discoverySession && discoverySession.ptr.isBound()) { 207 if (discoverySession && discoverySession.ptr.isBound()) {
206 userRequestedScanStop = true; 208 userRequestedScanStop = true;
207 devicesPage.setScanStatus(devices_page.ScanStatus.STOPPING); 209 devicesPage.setScanStatus(devices_page.ScanStatus.STOPPING);
208 210
209 discoverySession.stop().then(function(response) { 211 discoverySession.stop().then(function(response) {
210 if (response.success) { 212 if (response.success) {
211 updateStoppedDiscoverySession(); 213 updateStoppedDiscoverySession();
212 userRequestedScanStop = false; 214 userRequestedScanStop = false;
213 return; 215 return;
214 } 216 }
215 217
216 devicesPage.setScanStatus(devices_page.ScanStatus.ON); 218 devicesPage.setScanStatus(devices_page.ScanStatus.ON);
217 Snackbar.show( 219 Snackbar.show('Failed to stop discovery session', SnackbarType.ERROR);
218 'Failed to stop discovery session', SnackbarType.ERROR);
219 userRequestedScanStop = false; 220 userRequestedScanStop = false;
220 }); 221 });
221 222
222 return; 223 return;
223 } 224 }
224 225
225 devicesPage.setScanStatus(devices_page.ScanStatus.STARTING); 226 devicesPage.setScanStatus(devices_page.ScanStatus.STARTING);
226 adapterBroker.startDiscoverySession().then(function(session) { 227 adapterBroker.startDiscoverySession()
227 discoverySession = session; 228 .then(function(session) {
229 discoverySession = session;
228 230
229 discoverySession.ptr.setConnectionErrorHandler(function() { 231 discoverySession.ptr.setConnectionErrorHandler(function() {
230 updateStoppedDiscoverySession(); 232 updateStoppedDiscoverySession();
231 Snackbar.show('Discovery session ended', SnackbarType.WARNING); 233 Snackbar.show('Discovery session ended', SnackbarType.WARNING);
232 }); 234 });
233 235
234 devicesPage.setScanStatus(devices_page.ScanStatus.ON); 236 devicesPage.setScanStatus(devices_page.ScanStatus.ON);
235 }).catch(function(error) { 237 })
236 devicesPage.setScanStatus(devices_page.ScanStatus.OFF); 238 .catch(function(error) {
237 Snackbar.show('Failed to start discovery session', SnackbarType.ERROR); 239 devicesPage.setScanStatus(devices_page.ScanStatus.OFF);
238 console.error(error); 240 Snackbar.show(
239 }); 241 'Failed to start discovery session', SnackbarType.ERROR);
242 console.error(error);
243 });
240 }); 244 });
241 } 245 }
242 246
243 function setupPages() { 247 function setupPages() {
244 sidebarObj = new window.sidebar.Sidebar($('sidebar')); 248 sidebarObj = new window.sidebar.Sidebar($('sidebar'));
245 $('menu-btn').addEventListener('click', function() { sidebarObj.open(); }); 249 $('menu-btn').addEventListener('click', function() {
250 sidebarObj.open();
251 });
246 PageManager.addObserver(sidebarObj); 252 PageManager.addObserver(sidebarObj);
247 PageManager.addObserver(new PageObserver()); 253 PageManager.addObserver(new PageObserver());
248 254
249 devicesPage = new DevicesPage(); 255 devicesPage = new DevicesPage();
250 PageManager.register(devicesPage); 256 PageManager.register(devicesPage);
251 adapterPage = new AdapterPage(); 257 adapterPage = new AdapterPage();
252 PageManager.register(adapterPage); 258 PageManager.register(adapterPage);
253 259
254 // Set up hash-based navigation. 260 // Set up hash-based navigation.
255 window.addEventListener('hashchange', function() { 261 window.addEventListener('hashchange', function() {
256 // If a user navigates and the page doesn't exist, do nothing. 262 // If a user navigates and the page doesn't exist, do nothing.
257 var pageName = window.location.hash.substr(1); 263 var pageName = window.location.hash.substr(1);
258 if ($(pageName)) 264 if ($(pageName))
259 PageManager.showPageByName(pageName); 265 PageManager.showPageByName(pageName);
260 }); 266 });
261 267
262 if (!window.location.hash) { 268 if (!window.location.hash) {
263 PageManager.showPageByName(adapterPage.name); 269 PageManager.showPageByName(adapterPage.name);
264 return; 270 return;
265 } 271 }
266 272
267 // Only the root pages are available on page load. 273 // Only the root pages are available on page load.
268 PageManager.showPageByName(window.location.hash.split('/')[0].substr(1)); 274 PageManager.showPageByName(window.location.hash.split('/')[0].substr(1));
269 } 275 }
270 276
271 function initializeViews() { 277 function initializeViews() {
272 setupPages(); 278 setupPages();
273 279
274 adapter_broker.getAdapterBroker() 280 adapter_broker.getAdapterBroker()
275 .then(function(broker) { adapterBroker = broker; }) 281 .then(function(broker) {
276 .then(function() { return adapterBroker.getInfo(); }) 282 adapterBroker = broker;
277 .then(setupAdapterSystem) 283 })
278 .then(function() { return adapterBroker.getDevices(); }) 284 .then(function() {
279 .then(setupDeviceSystem) 285 return adapterBroker.getInfo();
280 .catch(function(error) { 286 })
281 Snackbar.show(error.message, SnackbarType.ERROR); 287 .then(setupAdapterSystem)
282 console.error(error); 288 .then(function() {
283 }); 289 return adapterBroker.getDevices();
290 })
291 .then(setupDeviceSystem)
292 .catch(function(error) {
293 Snackbar.show(error.message, SnackbarType.ERROR);
294 console.error(error);
295 });
284 } 296 }
285 297
286 return { 298 return {
287 initializeViews: initializeViews, 299 initializeViews: initializeViews,
288 }; 300 };
289 }); 301 });
290 302
291 document.addEventListener( 303 document.addEventListener(
292 'DOMContentLoaded', bluetooth_internals.initializeViews); 304 'DOMContentLoaded', bluetooth_internals.initializeViews);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698