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

Side by Side Diff: content/browser/bluetooth/bluetooth_dispatcher_host.cc

Issue 1389553002: bluetooth: Detect and fix incorrect thread usage of BluetoothDispatcherHost. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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 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 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 // TODO(jyasskin): Add a way for tests to control the dialog 164 // TODO(jyasskin): Add a way for tests to control the dialog
165 // directly, and change this to a reasonable discovery timeout. 165 // directly, and change this to a reasonable discovery timeout.
166 base::TimeDelta::FromSecondsD(current_delay_time_), 166 base::TimeDelta::FromSecondsD(current_delay_time_),
167 base::Bind(&BluetoothDispatcherHost::StopDeviceDiscovery, 167 base::Bind(&BluetoothDispatcherHost::StopDeviceDiscovery,
168 // base::Timer guarantees it won't call back after its 168 // base::Timer guarantees it won't call back after its
169 // destructor starts. 169 // destructor starts.
170 base::Unretained(this)), 170 base::Unretained(this)),
171 /*is_repeating=*/false), 171 /*is_repeating=*/false),
172 weak_ptr_factory_(this) { 172 weak_ptr_factory_(this) {
173 DCHECK_CURRENTLY_ON(BrowserThread::UI); 173 DCHECK_CURRENTLY_ON(BrowserThread::UI);
174
175 // Bind all future weak pointers to the UI thread.
176 weak_ptr_on_ui_thread_ = weak_ptr_factory_.GetWeakPtr();
177 weak_ptr_on_ui_thread_.get();
178
174 if (BluetoothAdapterFactory::IsBluetoothAdapterAvailable()) 179 if (BluetoothAdapterFactory::IsBluetoothAdapterAvailable())
175 BluetoothAdapterFactory::GetAdapter( 180 BluetoothAdapterFactory::GetAdapter(
176 base::Bind(&BluetoothDispatcherHost::set_adapter, 181 base::Bind(&BluetoothDispatcherHost::set_adapter,
177 weak_ptr_factory_.GetWeakPtr())); 182 weak_ptr_factory_.GetWeakPtr()));
qinmin 2015/10/05 18:38:54 use weak_ptr_on_ui_thread_ and everywhere else in
scheib 2015/10/05 21:01:33 Done. [Obviously] I didn't think of that, but it i
178 } 183 }
179 184
180 void BluetoothDispatcherHost::OnDestruct() const { 185 void BluetoothDispatcherHost::OnDestruct() const {
181 // See class comment: UI Thread Note. 186 // See class comment: UI Thread Note.
182 BrowserThread::DeleteOnUIThread::Destruct(this); 187 BrowserThread::DeleteOnUIThread::Destruct(this);
183 } 188 }
184 189
185 void BluetoothDispatcherHost::OverrideThreadForMessage( 190 void BluetoothDispatcherHost::OverrideThreadForMessage(
186 const IPC::Message& message, 191 const IPC::Message& message,
187 content::BrowserThread::ID* thread) { 192 content::BrowserThread::ID* thread) {
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 939
935 void BluetoothDispatcherHost::ShowBluetoothPairingLink() { 940 void BluetoothDispatcherHost::ShowBluetoothPairingLink() {
936 NOTIMPLEMENTED(); 941 NOTIMPLEMENTED();
937 } 942 }
938 943
939 void BluetoothDispatcherHost::ShowBluetoothAdapterOffLink() { 944 void BluetoothDispatcherHost::ShowBluetoothAdapterOffLink() {
940 NOTIMPLEMENTED(); 945 NOTIMPLEMENTED();
941 } 946 }
942 947
943 } // namespace content 948 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698