OLD | NEW |
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 "content/browser/devtools/render_frame_devtools_agent_host.h" | 5 #include "content/browser/devtools/render_frame_devtools_agent_host.h" |
6 | 6 |
7 #include <tuple> | 7 #include <tuple> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/guid.h" | 10 #include "base/guid.h" |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 if (ShouldForceCreation()) { | 388 if (ShouldForceCreation()) { |
389 // Force agent host. | 389 // Force agent host. |
390 DevToolsAgentHost::GetOrCreateFor(web_contents); | 390 DevToolsAgentHost::GetOrCreateFor(web_contents); |
391 } | 391 } |
392 } | 392 } |
393 | 393 |
394 RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost( | 394 RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost( |
395 RenderFrameHostImpl* host) | 395 RenderFrameHostImpl* host) |
396 : DevToolsAgentHostImpl(base::GenerateGUID()), | 396 : DevToolsAgentHostImpl(base::GenerateGUID()), |
397 input_handler_(new devtools::input::InputHandler()), | 397 input_handler_(new devtools::input::InputHandler()), |
| 398 service_worker_handler_( |
| 399 new devtools::service_worker::ServiceWorkerHandler()), |
398 target_handler_(new devtools::target::TargetHandler()), | 400 target_handler_(new devtools::target::TargetHandler()), |
399 frame_trace_recorder_(nullptr), | 401 frame_trace_recorder_(nullptr), |
400 protocol_handler_(new DevToolsProtocolHandler(this)), | 402 protocol_handler_(new DevToolsProtocolHandler(this)), |
401 handlers_frame_host_(nullptr), | 403 handlers_frame_host_(nullptr), |
402 current_frame_crashed_(false), | 404 current_frame_crashed_(false), |
403 pending_handle_(nullptr), | 405 pending_handle_(nullptr), |
404 frame_tree_node_(host->frame_tree_node()) { | 406 frame_tree_node_(host->frame_tree_node()) { |
405 DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher(); | 407 DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher(); |
406 dispatcher->SetInputHandler(input_handler_.get()); | 408 dispatcher->SetInputHandler(input_handler_.get()); |
| 409 dispatcher->SetServiceWorkerHandler(service_worker_handler_.get()); |
407 dispatcher->SetTargetHandler(target_handler_.get()); | 410 dispatcher->SetTargetHandler(target_handler_.get()); |
408 | 411 |
409 SetPending(host); | 412 SetPending(host); |
410 CommitPending(); | 413 CommitPending(); |
411 WebContentsObserver::Observe(WebContents::FromRenderFrameHost(host)); | 414 WebContentsObserver::Observe(WebContents::FromRenderFrameHost(host)); |
412 | 415 |
413 if (web_contents() && web_contents()->GetCrashedStatus() != | 416 if (web_contents() && web_contents()->GetCrashedStatus() != |
414 base::TERMINATION_STATUS_STILL_RUNNING) { | 417 base::TERMINATION_STATUS_STILL_RUNNING) { |
415 current_frame_crashed_ = true; | 418 current_frame_crashed_ = true; |
416 } | 419 } |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 | 502 |
500 schema_handler_.reset(new protocol::SchemaHandler()); | 503 schema_handler_.reset(new protocol::SchemaHandler()); |
501 schema_handler_->Wire(session()->dispatcher()); | 504 schema_handler_->Wire(session()->dispatcher()); |
502 | 505 |
503 if (!frame_tree_node_->parent()) { | 506 if (!frame_tree_node_->parent()) { |
504 security_handler_.reset(new protocol::SecurityHandler()); | 507 security_handler_.reset(new protocol::SecurityHandler()); |
505 security_handler_->Wire(session()->dispatcher()); | 508 security_handler_->Wire(session()->dispatcher()); |
506 security_handler_->SetRenderFrameHost(handlers_frame_host_); | 509 security_handler_->SetRenderFrameHost(handlers_frame_host_); |
507 } | 510 } |
508 | 511 |
509 service_worker_handler_.reset(new protocol::ServiceWorkerHandler()); | |
510 service_worker_handler_->Wire(session()->dispatcher()); | |
511 service_worker_handler_->SetRenderFrameHost(handlers_frame_host_); | |
512 | |
513 storage_handler_.reset(new protocol::StorageHandler()); | 512 storage_handler_.reset(new protocol::StorageHandler()); |
514 storage_handler_->Wire(session()->dispatcher()); | 513 storage_handler_->Wire(session()->dispatcher()); |
515 storage_handler_->SetRenderFrameHost(handlers_frame_host_); | 514 storage_handler_->SetRenderFrameHost(handlers_frame_host_); |
516 | 515 |
517 tracing_handler_.reset(new protocol::TracingHandler( | 516 tracing_handler_.reset(new protocol::TracingHandler( |
518 protocol::TracingHandler::Renderer, | 517 protocol::TracingHandler::Renderer, |
519 frame_tree_node_->frame_tree_node_id(), | 518 frame_tree_node_->frame_tree_node_id(), |
520 GetIOContext())); | 519 GetIOContext())); |
521 tracing_handler_->Wire(session()->dispatcher()); | 520 tracing_handler_->Wire(session()->dispatcher()); |
522 | 521 |
(...skipping 20 matching lines...) Expand all Loading... |
543 if (page_handler_) { | 542 if (page_handler_) { |
544 page_handler_->Disable(); | 543 page_handler_->Disable(); |
545 page_handler_.reset(); | 544 page_handler_.reset(); |
546 } | 545 } |
547 schema_handler_->Disable(); | 546 schema_handler_->Disable(); |
548 schema_handler_.reset(); | 547 schema_handler_.reset(); |
549 if (security_handler_) { | 548 if (security_handler_) { |
550 security_handler_->Disable(); | 549 security_handler_->Disable(); |
551 security_handler_.reset(); | 550 security_handler_.reset(); |
552 } | 551 } |
553 service_worker_handler_->Disable(); | |
554 service_worker_handler_.reset(); | |
555 storage_handler_->Disable(); | 552 storage_handler_->Disable(); |
556 storage_handler_.reset(); | 553 storage_handler_.reset(); |
557 tracing_handler_->Disable(); | 554 tracing_handler_->Disable(); |
558 tracing_handler_.reset(); | 555 tracing_handler_.reset(); |
559 | 556 |
560 if (current_) | 557 if (current_) |
561 current_->Detach(); | 558 current_->Detach(); |
562 if (pending_) | 559 if (pending_) |
563 pending_->Detach(); | 560 pending_->Detach(); |
564 OnClientDetached(); | 561 OnClientDetached(); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
611 return; | 608 return; |
612 | 609 |
613 frame_trace_recorder_.reset(new DevToolsFrameTraceRecorder()); | 610 frame_trace_recorder_.reset(new DevToolsFrameTraceRecorder()); |
614 CreatePowerSaveBlocker(); | 611 CreatePowerSaveBlocker(); |
615 } | 612 } |
616 | 613 |
617 void RenderFrameDevToolsAgentHost::OnClientDetached() { | 614 void RenderFrameDevToolsAgentHost::OnClientDetached() { |
618 #if defined(OS_ANDROID) | 615 #if defined(OS_ANDROID) |
619 power_save_blocker_.reset(); | 616 power_save_blocker_.reset(); |
620 #endif | 617 #endif |
| 618 service_worker_handler_->Detached(); |
621 target_handler_->Detached(); | 619 target_handler_->Detached(); |
622 frame_trace_recorder_.reset(); | 620 frame_trace_recorder_.reset(); |
623 in_navigation_protocol_message_buffer_.clear(); | 621 in_navigation_protocol_message_buffer_.clear(); |
624 } | 622 } |
625 | 623 |
626 RenderFrameDevToolsAgentHost::~RenderFrameDevToolsAgentHost() { | 624 RenderFrameDevToolsAgentHost::~RenderFrameDevToolsAgentHost() { |
627 Instances::iterator it = std::find(g_instances.Get().begin(), | 625 Instances::iterator it = std::find(g_instances.Get().begin(), |
628 g_instances.Get().end(), | 626 g_instances.Get().end(), |
629 this); | 627 this); |
630 if (it != g_instances.Get().end()) | 628 if (it != g_instances.Get().end()) |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
959 if (emulation_handler_) | 957 if (emulation_handler_) |
960 emulation_handler_->SetRenderFrameHost(host); | 958 emulation_handler_->SetRenderFrameHost(host); |
961 input_handler_->SetRenderWidgetHost( | 959 input_handler_->SetRenderWidgetHost( |
962 host ? host->GetRenderWidgetHost() : nullptr); | 960 host ? host->GetRenderWidgetHost() : nullptr); |
963 if (inspector_handler_) | 961 if (inspector_handler_) |
964 inspector_handler_->SetRenderFrameHost(host); | 962 inspector_handler_->SetRenderFrameHost(host); |
965 if (network_handler_) | 963 if (network_handler_) |
966 network_handler_->SetRenderFrameHost(host); | 964 network_handler_->SetRenderFrameHost(host); |
967 if (page_handler_) | 965 if (page_handler_) |
968 page_handler_->SetRenderFrameHost(host); | 966 page_handler_->SetRenderFrameHost(host); |
969 if (service_worker_handler_) | 967 service_worker_handler_->SetRenderFrameHost(host); |
970 service_worker_handler_->SetRenderFrameHost(host); | |
971 if (security_handler_) | 968 if (security_handler_) |
972 security_handler_->SetRenderFrameHost(host); | 969 security_handler_->SetRenderFrameHost(host); |
973 if (storage_handler_) | 970 if (storage_handler_) |
974 storage_handler_->SetRenderFrameHost(host); | 971 storage_handler_->SetRenderFrameHost(host); |
975 target_handler_->SetRenderFrameHost(host); | 972 target_handler_->SetRenderFrameHost(host); |
976 } | 973 } |
977 | 974 |
978 void RenderFrameDevToolsAgentHost::DisconnectWebContents() { | 975 void RenderFrameDevToolsAgentHost::DisconnectWebContents() { |
979 if (pending_) | 976 if (pending_) |
980 DiscardPending(); | 977 DiscardPending(); |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1186 RenderFrameHost* host) { | 1183 RenderFrameHost* host) { |
1187 return (current_ && current_->host() == host) || | 1184 return (current_ && current_->host() == host) || |
1188 (pending_ && pending_->host() == host); | 1185 (pending_ && pending_->host() == host); |
1189 } | 1186 } |
1190 | 1187 |
1191 bool RenderFrameDevToolsAgentHost::IsChildFrame() { | 1188 bool RenderFrameDevToolsAgentHost::IsChildFrame() { |
1192 return current_ && current_->host()->GetParent(); | 1189 return current_ && current_->host()->GetParent(); |
1193 } | 1190 } |
1194 | 1191 |
1195 } // namespace content | 1192 } // namespace content |
OLD | NEW |