| 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 // ID Not In Map Note: | 5 // ID Not In Map Note: |
| 6 // A service, characteristic, or descriptor ID not in the corresponding | 6 // A service, characteristic, or descriptor ID not in the corresponding |
| 7 // BluetoothDispatcherHost map [service_to_device_, characteristic_to_service_, | 7 // BluetoothDispatcherHost map [service_to_device_, characteristic_to_service_, |
| 8 // descriptor_to_characteristic_] implies a hostile renderer because a renderer | 8 // descriptor_to_characteristic_] implies a hostile renderer because a renderer |
| 9 // obtains the corresponding ID from this class and it will be added to the map | 9 // obtains the corresponding ID from this class and it will be added to the map |
| 10 // at that time. | 10 // at that time. |
| (...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 627 if (!render_frame_host) { | 627 if (!render_frame_host) { |
| 628 DLOG(WARNING) | 628 DLOG(WARNING) |
| 629 << "Got a requestDevice IPC without a matching RenderFrameHost: " | 629 << "Got a requestDevice IPC without a matching RenderFrameHost: " |
| 630 << render_process_id_ << ", " << frame_routing_id; | 630 << render_process_id_ << ", " << frame_routing_id; |
| 631 RecordRequestDeviceOutcome(UMARequestDeviceOutcome::NO_RENDER_FRAME); | 631 RecordRequestDeviceOutcome(UMARequestDeviceOutcome::NO_RENDER_FRAME); |
| 632 Send(new BluetoothMsg_RequestDeviceError( | 632 Send(new BluetoothMsg_RequestDeviceError( |
| 633 thread_id, request_id, WebBluetoothError::RequestDeviceWithoutFrame)); | 633 thread_id, request_id, WebBluetoothError::RequestDeviceWithoutFrame)); |
| 634 return; | 634 return; |
| 635 } | 635 } |
| 636 | 636 |
| 637 if (render_frame_host->GetLastCommittedOrigin().unique()) { |
| 638 VLOG(1) << "Request device with unique origin."; |
| 639 Send(new BluetoothMsg_RequestDeviceError( |
| 640 thread_id, request_id, |
| 641 WebBluetoothError::RequestDeviceWithUniqueOrigin)); |
| 642 return; |
| 643 } |
| 644 |
| 637 if (!adapter_) { | 645 if (!adapter_) { |
| 638 VLOG(1) << "No BluetoothAdapter. Can't serve requestDevice."; | 646 VLOG(1) << "No BluetoothAdapter. Can't serve requestDevice."; |
| 639 RecordRequestDeviceOutcome(UMARequestDeviceOutcome::NO_BLUETOOTH_ADAPTER); | 647 RecordRequestDeviceOutcome(UMARequestDeviceOutcome::NO_BLUETOOTH_ADAPTER); |
| 640 Send(new BluetoothMsg_RequestDeviceError( | 648 Send(new BluetoothMsg_RequestDeviceError( |
| 641 thread_id, request_id, WebBluetoothError::NoBluetoothAdapter)); | 649 thread_id, request_id, WebBluetoothError::NoBluetoothAdapter)); |
| 642 return; | 650 return; |
| 643 } | 651 } |
| 644 | 652 |
| 645 if (!adapter_->IsPresent()) { | 653 if (!adapter_->IsPresent()) { |
| 646 VLOG(1) << "Bluetooth Adapter not present. Can't serve requestDevice."; | 654 VLOG(1) << "Bluetooth Adapter not present. Can't serve requestDevice."; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 666 int chooser_id = request_device_sessions_.Add(session); | 674 int chooser_id = request_device_sessions_.Add(session); |
| 667 | 675 |
| 668 BluetoothChooser::EventHandler chooser_event_handler = | 676 BluetoothChooser::EventHandler chooser_event_handler = |
| 669 base::Bind(&BluetoothDispatcherHost::OnBluetoothChooserEvent, | 677 base::Bind(&BluetoothDispatcherHost::OnBluetoothChooserEvent, |
| 670 weak_ptr_on_ui_thread_, chooser_id); | 678 weak_ptr_on_ui_thread_, chooser_id); |
| 671 if (WebContents* web_contents = | 679 if (WebContents* web_contents = |
| 672 WebContents::FromRenderFrameHost(render_frame_host)) { | 680 WebContents::FromRenderFrameHost(render_frame_host)) { |
| 673 if (WebContentsDelegate* delegate = web_contents->GetDelegate()) { | 681 if (WebContentsDelegate* delegate = web_contents->GetDelegate()) { |
| 674 session->chooser = delegate->RunBluetoothChooser( | 682 session->chooser = delegate->RunBluetoothChooser( |
| 675 web_contents, chooser_event_handler, | 683 web_contents, chooser_event_handler, |
| 676 // TODO(ortuno): Replace with GetLastCommittedOrigin. | 684 render_frame_host->GetLastCommittedOrigin()); |
| 677 // http://crbug.com/577451 | |
| 678 render_frame_host->GetLastCommittedURL().GetOrigin()); | |
| 679 } | 685 } |
| 680 } | 686 } |
| 681 if (!session->chooser) { | 687 if (!session->chooser) { |
| 682 LOG(WARNING) | 688 LOG(WARNING) |
| 683 << "No Bluetooth chooser implementation; falling back to first device."; | 689 << "No Bluetooth chooser implementation; falling back to first device."; |
| 684 session->chooser.reset( | 690 session->chooser.reset( |
| 685 new FirstDeviceBluetoothChooser(chooser_event_handler)); | 691 new FirstDeviceBluetoothChooser(chooser_event_handler)); |
| 686 } | 692 } |
| 687 | 693 |
| 688 if (!session->chooser->CanAskForScanningPermission()) { | 694 if (!session->chooser->CanAskForScanningPermission()) { |
| (...skipping 769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1458 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1464 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 1459 NOTIMPLEMENTED(); | 1465 NOTIMPLEMENTED(); |
| 1460 } | 1466 } |
| 1461 | 1467 |
| 1462 void BluetoothDispatcherHost::ShowNeedLocationLink() { | 1468 void BluetoothDispatcherHost::ShowNeedLocationLink() { |
| 1463 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1469 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 1464 NOTIMPLEMENTED(); | 1470 NOTIMPLEMENTED(); |
| 1465 } | 1471 } |
| 1466 | 1472 |
| 1467 } // namespace content | 1473 } // namespace content |
| OLD | NEW |