| OLD | NEW | 
| (Empty) |  | 
 |   1 <!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py --> | 
 |   2 <!DOCTYPE html> | 
 |   3 <script src="../../../resources/testharness.js"></script> | 
 |   4 <script src="../../../resources/testharnessreport.js"></script> | 
 |   5 <script src="../../../resources/bluetooth/bluetooth-helpers.js"></script> | 
 |   6 <script> | 
 |   7 'use strict'; | 
 |   8 promise_test(() => { | 
 |   9   let val = new Uint8Array([1]); | 
 |  10   let promise; | 
 |  11   return setBluetoothFakeAdapter('FailingGATTOperationsAdapter') | 
 |  12     .then(() => requestDeviceWithKeyDown({ | 
 |  13       filters: [{services: [errorUUID(0xA0)]}]})) | 
 |  14     .then(device => device.gatt.connect()) | 
 |  15     .then(gattServer => gattServer.getPrimaryService(errorUUID(0xA0))) | 
 |  16     .then(service => service.getCharacteristic(errorUUID(0xA1))) | 
 |  17     .then(characteristic => characteristic.getDescriptor('gatt.characteristic_us
    er_description')) | 
 |  18     .then(error_descriptor => { | 
 |  19       promise = assert_promise_rejects_with_message( | 
 |  20         error_descriptor.readValue(), | 
 |  21         new DOMException( | 
 |  22           'GATT Server disconnected while performing a GATT operation.', | 
 |  23           'NetworkError')); | 
 |  24       // Disconnect called to clear attributeInstanceMap and allow the | 
 |  25       // object to get garbage collected. | 
 |  26       error_descriptor.characteristic.service.device.gatt.disconnect(); | 
 |  27     }) | 
 |  28     .then(runGarbageCollection) | 
 |  29     .then(() => promise); | 
 |  30 }, 'Garbage Collection ran during a readValue call that fails. ' + | 
 |  31    'Should not crash.'); | 
 |  32  | 
 |  33 </script> | 
| OLD | NEW |