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

Side by Side Diff: content/browser/websockets/websocket_manager.cc

Issue 2842833003: Update SupportsUserData uses with unique_ptr. (Closed)
Patch Set: rebase Created 3 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "content/browser/websockets/websocket_manager.h" 5 #include "content/browser/websockets/websocket_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/memory/ptr_util.h"
13 #include "base/numerics/safe_conversions.h" 14 #include "base/numerics/safe_conversions.h"
14 #include "base/rand_util.h" 15 #include "base/rand_util.h"
15 #include "content/public/browser/browser_thread.h" 16 #include "content/public/browser/browser_thread.h"
16 #include "content/public/browser/render_process_host.h" 17 #include "content/public/browser/render_process_host.h"
17 #include "content/public/browser/render_process_host_observer.h" 18 #include "content/public/browser/render_process_host_observer.h"
18 #include "content/public/browser/storage_partition.h" 19 #include "content/public/browser/storage_partition.h"
19 20
20 namespace content { 21 namespace content {
21 22
22 namespace { 23 namespace {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 63
63 // Maintain a WebSocketManager per RenderProcessHost. While the instance of 64 // Maintain a WebSocketManager per RenderProcessHost. While the instance of
64 // WebSocketManager is allocated on the UI thread, it must only be used and 65 // WebSocketManager is allocated on the UI thread, it must only be used and
65 // deleted from the IO thread. 66 // deleted from the IO thread.
66 67
67 Handle* handle = 68 Handle* handle =
68 static_cast<Handle*>(host->GetUserData(kWebSocketManagerKeyName)); 69 static_cast<Handle*>(host->GetUserData(kWebSocketManagerKeyName));
69 if (!handle) { 70 if (!handle) {
70 handle = new Handle( 71 handle = new Handle(
71 new WebSocketManager(process_id, host->GetStoragePartition())); 72 new WebSocketManager(process_id, host->GetStoragePartition()));
72 host->SetUserData(kWebSocketManagerKeyName, handle); 73 host->SetUserData(kWebSocketManagerKeyName, base::WrapUnique(handle));
73 host->AddObserver(handle); 74 host->AddObserver(handle);
74 } else { 75 } else {
75 DCHECK(handle->manager()); 76 DCHECK(handle->manager());
76 } 77 }
77 78
78 BrowserThread::PostTask( 79 BrowserThread::PostTask(
79 BrowserThread::IO, 80 BrowserThread::IO,
80 FROM_HERE, 81 FROM_HERE,
81 base::Bind(&WebSocketManager::DoCreateWebSocket, 82 base::Bind(&WebSocketManager::DoCreateWebSocket,
82 base::Unretained(handle->manager()), 83 base::Unretained(handle->manager()),
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 236 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
236 if (!url_request_context_getter_->GetURLRequestContext()) { 237 if (!url_request_context_getter_->GetURLRequestContext()) {
237 context_destroyed_ = true; 238 context_destroyed_ = true;
238 url_request_context_getter_ = nullptr; 239 url_request_context_getter_ = nullptr;
239 return; 240 return;
240 } 241 }
241 url_request_context_getter_->AddObserver(this); 242 url_request_context_getter_->AddObserver(this);
242 } 243 }
243 244
244 } // namespace content 245 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_impl.cc ('k') | content/public/browser/web_contents_user_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698