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

Side by Side Diff: components/devtools_http_handler/devtools_http_handler.cc

Issue 1138323003: [DevTools] DCHECK that DevToolsAgentHostClientImpl is operated on UI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <algorithm> 5 #include <algorithm>
6 #include <utility> 6 #include <utility>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 class DevToolsAgentHostClientImpl : public DevToolsAgentHostClient { 261 class DevToolsAgentHostClientImpl : public DevToolsAgentHostClient {
262 public: 262 public:
263 DevToolsAgentHostClientImpl(base::MessageLoop* message_loop, 263 DevToolsAgentHostClientImpl(base::MessageLoop* message_loop,
264 ServerWrapper* server_wrapper, 264 ServerWrapper* server_wrapper,
265 int connection_id, 265 int connection_id,
266 scoped_refptr<DevToolsAgentHost> agent_host) 266 scoped_refptr<DevToolsAgentHost> agent_host)
267 : message_loop_(message_loop), 267 : message_loop_(message_loop),
268 server_wrapper_(server_wrapper), 268 server_wrapper_(server_wrapper),
269 connection_id_(connection_id), 269 connection_id_(connection_id),
270 agent_host_(agent_host) { 270 agent_host_(agent_host) {
271 DCHECK_CURRENTLY_ON(BrowserThread::UI);
271 agent_host_->AttachClient(this); 272 agent_host_->AttachClient(this);
272 } 273 }
273 274
274 ~DevToolsAgentHostClientImpl() override { 275 ~DevToolsAgentHostClientImpl() override {
276 DCHECK_CURRENTLY_ON(BrowserThread::UI);
275 if (agent_host_.get()) 277 if (agent_host_.get())
276 agent_host_->DetachClient(); 278 agent_host_->DetachClient();
277 } 279 }
278 280
279 void AgentHostClosed(DevToolsAgentHost* agent_host, 281 void AgentHostClosed(DevToolsAgentHost* agent_host,
280 bool replaced_with_another_client) override { 282 bool replaced_with_another_client) override {
283 DCHECK_CURRENTLY_ON(BrowserThread::UI);
281 DCHECK(agent_host == agent_host_.get()); 284 DCHECK(agent_host == agent_host_.get());
282 285
283 std::string message = base::StringPrintf( 286 std::string message = base::StringPrintf(
284 "{ \"method\": \"Inspector.detached\", " 287 "{ \"method\": \"Inspector.detached\", "
285 "\"params\": { \"reason\": \"%s\"} }", 288 "\"params\": { \"reason\": \"%s\"} }",
286 replaced_with_another_client ? 289 replaced_with_another_client ?
287 "replaced_with_devtools" : "target_closed"); 290 "replaced_with_devtools" : "target_closed");
288 DispatchProtocolMessage(agent_host, message); 291 DispatchProtocolMessage(agent_host, message);
289 292
290 agent_host_ = nullptr; 293 agent_host_ = nullptr;
291 message_loop_->PostTask( 294 message_loop_->PostTask(
292 FROM_HERE, 295 FROM_HERE,
293 base::Bind(&ServerWrapper::Close, 296 base::Bind(&ServerWrapper::Close,
294 base::Unretained(server_wrapper_), 297 base::Unretained(server_wrapper_),
295 connection_id_)); 298 connection_id_));
296 } 299 }
297 300
298 void DispatchProtocolMessage(DevToolsAgentHost* agent_host, 301 void DispatchProtocolMessage(DevToolsAgentHost* agent_host,
299 const std::string& message) override { 302 const std::string& message) override {
303 DCHECK_CURRENTLY_ON(BrowserThread::UI);
300 DCHECK(agent_host == agent_host_.get()); 304 DCHECK(agent_host == agent_host_.get());
301 message_loop_->PostTask( 305 message_loop_->PostTask(
302 FROM_HERE, 306 FROM_HERE,
303 base::Bind(&ServerWrapper::SendOverWebSocket, 307 base::Bind(&ServerWrapper::SendOverWebSocket,
304 base::Unretained(server_wrapper_), 308 base::Unretained(server_wrapper_),
305 connection_id_, 309 connection_id_,
306 message)); 310 message));
307 } 311 }
308 312
309 void OnMessage(const std::string& message) { 313 void OnMessage(const std::string& message) {
314 DCHECK_CURRENTLY_ON(BrowserThread::UI);
310 if (agent_host_.get()) 315 if (agent_host_.get())
311 agent_host_->DispatchProtocolMessage(message); 316 agent_host_->DispatchProtocolMessage(message);
312 } 317 }
313 318
314 private: 319 private:
315 base::MessageLoop* const message_loop_; 320 base::MessageLoop* const message_loop_;
316 ServerWrapper* const server_wrapper_; 321 ServerWrapper* const server_wrapper_;
317 const int connection_id_; 322 const int connection_id_;
318 scoped_refptr<DevToolsAgentHost> agent_host_; 323 scoped_refptr<DevToolsAgentHost> agent_host_;
319 }; 324 };
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 id.c_str(), 921 id.c_str(),
917 host); 922 host);
918 dictionary->SetString( 923 dictionary->SetString(
919 kTargetDevtoolsFrontendUrlField, devtools_frontend_url); 924 kTargetDevtoolsFrontendUrlField, devtools_frontend_url);
920 } 925 }
921 926
922 return dictionary; 927 return dictionary;
923 } 928 }
924 929
925 } // namespace devtools_http_handler 930 } // namespace devtools_http_handler
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698