OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 // NETWORK_ERROR Note: | 5 // NETWORK_ERROR Note: |
6 // When a device can't be found in the BluetoothAdapter, that generally | 6 // When a device can't be found in the BluetoothAdapter, that generally |
7 // indicates that it's gone out of range. We reject with a NetworkError in that | 7 // indicates that it's gone out of range. We reject with a NetworkError in that |
8 // case. | 8 // case. |
9 // https://webbluetoothchrome.github.io/web-bluetooth/#dom-bluetoothdevice-conne
ctgatt | 9 // https://webbluetoothchrome.github.io/web-bluetooth/#dom-bluetoothdevice-conne
ctgatt |
10 | 10 |
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
702 } | 702 } |
703 // Ignore discovery session start errors when the dialog was already closed by | 703 // Ignore discovery session start errors when the dialog was already closed by |
704 // the time they happen. | 704 // the time they happen. |
705 } | 705 } |
706 | 706 |
707 void BluetoothDispatcherHost::OnBluetoothChooserEvent( | 707 void BluetoothDispatcherHost::OnBluetoothChooserEvent( |
708 int chooser_id, | 708 int chooser_id, |
709 BluetoothChooser::Event event, | 709 BluetoothChooser::Event event, |
710 const std::string& device_id) { | 710 const std::string& device_id) { |
711 switch (event) { | 711 switch (event) { |
| 712 case BluetoothChooser::Event::RESCAN: |
| 713 // TODO(jyasskin): Implement starting a new Bluetooth discovery session. |
| 714 NOTIMPLEMENTED(); |
| 715 break; |
712 case BluetoothChooser::Event::CANCELLED: | 716 case BluetoothChooser::Event::CANCELLED: |
713 case BluetoothChooser::Event::SELECTED: | 717 case BluetoothChooser::Event::SELECTED: { |
714 RequestDeviceSession* session = | 718 RequestDeviceSession* session = |
715 request_device_sessions_.Lookup(chooser_id); | 719 request_device_sessions_.Lookup(chooser_id); |
716 DCHECK(session) << "Shouldn't close the dialog twice."; | 720 DCHECK(session) << "Shouldn't close the dialog twice."; |
717 CHECK(session->chooser) << "Shouldn't close the dialog twice."; | 721 CHECK(session->chooser) << "Shouldn't close the dialog twice."; |
718 | 722 |
719 // Synchronously ensure nothing else calls into the chooser after it has | 723 // Synchronously ensure nothing else calls into the chooser after it has |
720 // asked to be closed. | 724 // asked to be closed. |
721 session->chooser.reset(); | 725 session->chooser.reset(); |
722 | 726 |
723 // Yield to the event loop to make sure we don't destroy the session | 727 // Yield to the event loop to make sure we don't destroy the session |
724 // within a BluetoothDispatcherHost stack frame. | 728 // within a BluetoothDispatcherHost stack frame. |
725 if (!base::ThreadTaskRunnerHandle::Get()->PostTask( | 729 if (!base::ThreadTaskRunnerHandle::Get()->PostTask( |
726 FROM_HERE, | 730 FROM_HERE, |
727 base::Bind(&BluetoothDispatcherHost::FinishClosingChooser, | 731 base::Bind(&BluetoothDispatcherHost::FinishClosingChooser, |
728 weak_ptr_factory_.GetWeakPtr(), chooser_id, event, | 732 weak_ptr_factory_.GetWeakPtr(), chooser_id, event, |
729 device_id))) { | 733 device_id))) { |
730 LOG(WARNING) << "No TaskRunner; not closing requestDevice dialog."; | 734 LOG(WARNING) << "No TaskRunner; not closing requestDevice dialog."; |
731 } | 735 } |
732 break; | 736 break; |
| 737 } |
| 738 case BluetoothChooser::Event::SHOW_OVERVIEW_HELP: |
| 739 ShowBluetoothOverviewLink(); |
| 740 break; |
| 741 case BluetoothChooser::Event::SHOW_PAIRING_HELP: |
| 742 ShowBluetoothPairingLink(); |
| 743 break; |
| 744 case BluetoothChooser::Event::SHOW_ADAPTER_OFF_HELP: |
| 745 ShowBluetoothAdapterOffLink(); |
| 746 break; |
733 } | 747 } |
734 } | 748 } |
735 | 749 |
736 void BluetoothDispatcherHost::FinishClosingChooser( | 750 void BluetoothDispatcherHost::FinishClosingChooser( |
737 int chooser_id, | 751 int chooser_id, |
738 BluetoothChooser::Event event, | 752 BluetoothChooser::Event event, |
739 const std::string& device_id) { | 753 const std::string& device_id) { |
740 RequestDeviceSession* session = request_device_sessions_.Lookup(chooser_id); | 754 RequestDeviceSession* session = request_device_sessions_.Lookup(chooser_id); |
741 DCHECK(session) << "Session removed unexpectedly."; | 755 DCHECK(session) << "Session removed unexpectedly."; |
742 | 756 |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 void BluetoothDispatcherHost::OnWriteValueFailed( | 894 void BluetoothDispatcherHost::OnWriteValueFailed( |
881 int thread_id, | 895 int thread_id, |
882 int request_id, | 896 int request_id, |
883 device::BluetoothGattService::GattErrorCode error_code) { | 897 device::BluetoothGattService::GattErrorCode error_code) { |
884 // TranslateGATTError calls RecordGATTOperationOutcome. | 898 // TranslateGATTError calls RecordGATTOperationOutcome. |
885 Send(new BluetoothMsg_WriteCharacteristicValueError( | 899 Send(new BluetoothMsg_WriteCharacteristicValueError( |
886 thread_id, request_id, | 900 thread_id, request_id, |
887 TranslateGATTError(error_code, UMAGATTOperation::CHARACTERISTIC_WRITE))); | 901 TranslateGATTError(error_code, UMAGATTOperation::CHARACTERISTIC_WRITE))); |
888 } | 902 } |
889 | 903 |
| 904 void BluetoothDispatcherHost::ShowBluetoothOverviewLink() { |
| 905 NOTIMPLEMENTED(); |
| 906 } |
| 907 |
| 908 void BluetoothDispatcherHost::ShowBluetoothPairingLink() { |
| 909 NOTIMPLEMENTED(); |
| 910 } |
| 911 |
| 912 void BluetoothDispatcherHost::ShowBluetoothAdapterOffLink() { |
| 913 NOTIMPLEMENTED(); |
| 914 } |
| 915 |
890 } // namespace content | 916 } // namespace content |
OLD | NEW |