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

Side by Side Diff: content/browser/devtools/render_frame_devtools_agent_host.cc

Issue 1729373002: PlzNavigate: fix DevToolsProtocolTest.CrossSitePauseInBeforeUnload (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase + addressed comments Created 4 years, 9 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 (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 <utility> 7 #include <utility>
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 30 matching lines...) Expand all
41 #include "content/public/browser/render_widget_host_view.h" 41 #include "content/public/browser/render_widget_host_view.h"
42 #endif 42 #endif
43 43
44 namespace content { 44 namespace content {
45 45
46 typedef std::vector<RenderFrameDevToolsAgentHost*> Instances; 46 typedef std::vector<RenderFrameDevToolsAgentHost*> Instances;
47 47
48 namespace { 48 namespace {
49 base::LazyInstance<Instances>::Leaky g_instances = LAZY_INSTANCE_INITIALIZER; 49 base::LazyInstance<Instances>::Leaky g_instances = LAZY_INSTANCE_INITIALIZER;
50 50
51 bool browser_side_navigation = false;
52
53 static RenderFrameDevToolsAgentHost* FindAgentHost(RenderFrameHost* host) { 51 static RenderFrameDevToolsAgentHost* FindAgentHost(RenderFrameHost* host) {
54 if (g_instances == NULL) 52 if (g_instances == NULL)
55 return NULL; 53 return NULL;
56 for (Instances::iterator it = g_instances.Get().begin(); 54 for (Instances::iterator it = g_instances.Get().begin();
57 it != g_instances.Get().end(); ++it) { 55 it != g_instances.Get().end(); ++it) {
58 if ((*it)->HasRenderFrameHost(host)) 56 if ((*it)->HasRenderFrameHost(host))
59 return *it; 57 return *it;
60 } 58 }
61 return NULL; 59 return NULL;
62 } 60 }
63 61
62 static RenderFrameDevToolsAgentHost* FindAgentHost(
63 FrameTreeNode* frame_tree_node) {
64 if (g_instances == NULL)
65 return NULL;
66 for (Instances::iterator it = g_instances.Get().begin();
67 it != g_instances.Get().end(); ++it) {
68 if ((*it)->frame_tree_node() == frame_tree_node)
69 return *it;
70 }
71 return NULL;
72 }
73
64 // Returns RenderFrameDevToolsAgentHost attached to any of RenderFrameHost 74 // Returns RenderFrameDevToolsAgentHost attached to any of RenderFrameHost
65 // instances associated with |web_contents| 75 // instances associated with |web_contents|
66 static RenderFrameDevToolsAgentHost* FindAgentHost(WebContents* web_contents) { 76 static RenderFrameDevToolsAgentHost* FindAgentHost(WebContents* web_contents) {
67 if (g_instances == NULL) 77 if (g_instances == NULL)
68 return NULL; 78 return NULL;
69 for (Instances::iterator it = g_instances.Get().begin(); 79 for (Instances::iterator it = g_instances.Get().begin();
70 it != g_instances.Get().end(); ++it) { 80 it != g_instances.Get().end(); ++it) {
71 if ((*it)->GetWebContents() == web_contents) 81 if ((*it)->GetWebContents() == web_contents)
72 return *it; 82 return *it;
73 } 83 }
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 RenderFrameDevToolsAgentHost::AppendAgentHostForFrameIfApplicable, 315 RenderFrameDevToolsAgentHost::AppendAgentHostForFrameIfApplicable,
306 base::Unretained(result)); 316 base::Unretained(result));
307 for (const auto& wc : WebContentsImpl::GetAllWebContents()) 317 for (const auto& wc : WebContentsImpl::GetAllWebContents())
308 wc->ForEachFrame(callback); 318 wc->ForEachFrame(callback);
309 } 319 }
310 320
311 // static 321 // static
312 void RenderFrameDevToolsAgentHost::OnCancelPendingNavigation( 322 void RenderFrameDevToolsAgentHost::OnCancelPendingNavigation(
313 RenderFrameHost* pending, 323 RenderFrameHost* pending,
314 RenderFrameHost* current) { 324 RenderFrameHost* current) {
315 if (browser_side_navigation) 325 if (IsBrowserSideNavigationEnabled())
316 return; 326 return;
317 327
318 RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(pending); 328 RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(pending);
319 if (!agent_host) 329 if (!agent_host)
320 return; 330 return;
321 if (agent_host->pending_ && agent_host->pending_->host() == pending) { 331 if (agent_host->pending_ && agent_host->pending_->host() == pending) {
322 DCHECK(agent_host->current_ && agent_host->current_->host() == current); 332 DCHECK(agent_host->current_ && agent_host->current_->host() == current);
323 agent_host->DiscardPending(); 333 agent_host->DiscardPending();
324 } 334 }
325 } 335 }
326 336
327 // static 337 // static
328 void RenderFrameDevToolsAgentHost::OnBeforeNavigation( 338 void RenderFrameDevToolsAgentHost::OnBeforeNavigation(
329 RenderFrameHost* current, RenderFrameHost* pending) { 339 RenderFrameHost* current, RenderFrameHost* pending) {
330 RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(current); 340 RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(current);
331 if (agent_host) 341 if (agent_host)
332 agent_host->AboutToNavigateRenderFrame(current, pending); 342 agent_host->AboutToNavigateRenderFrame(current, pending);
333 } 343 }
334 344
345 // static
346 void RenderFrameDevToolsAgentHost::OnBeforeNavigation(
347 NavigationHandle* navigation_handle) {
348 FrameTreeNode* frame_tree_node =
349 static_cast<NavigationHandleImpl*>(navigation_handle)->frame_tree_node();
350 RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(frame_tree_node);
351 if (agent_host)
352 agent_host->AboutToNavigate(navigation_handle);
353 }
354
335 RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost( 355 RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost(
336 RenderFrameHostImpl* host) 356 RenderFrameHostImpl* host)
337 : dom_handler_(new devtools::dom::DOMHandler()), 357 : dom_handler_(new devtools::dom::DOMHandler()),
338 input_handler_(new devtools::input::InputHandler()), 358 input_handler_(new devtools::input::InputHandler()),
339 inspector_handler_(new devtools::inspector::InspectorHandler()), 359 inspector_handler_(new devtools::inspector::InspectorHandler()),
340 io_handler_(new devtools::io::IOHandler(GetIOContext())), 360 io_handler_(new devtools::io::IOHandler(GetIOContext())),
341 network_handler_(new devtools::network::NetworkHandler()), 361 network_handler_(new devtools::network::NetworkHandler()),
342 page_handler_(nullptr), 362 page_handler_(nullptr),
343 security_handler_(nullptr), 363 security_handler_(nullptr),
344 service_worker_handler_( 364 service_worker_handler_(
345 new devtools::service_worker::ServiceWorkerHandler()), 365 new devtools::service_worker::ServiceWorkerHandler()),
346 tracing_handler_(new devtools::tracing::TracingHandler( 366 tracing_handler_(new devtools::tracing::TracingHandler(
347 devtools::tracing::TracingHandler::Renderer, 367 devtools::tracing::TracingHandler::Renderer,
348 host->GetFrameTreeNodeId(), 368 host->GetFrameTreeNodeId(),
349 GetIOContext())), 369 GetIOContext())),
350 emulation_handler_(nullptr), 370 emulation_handler_(nullptr),
351 frame_trace_recorder_(nullptr), 371 frame_trace_recorder_(nullptr),
352 protocol_handler_(new DevToolsProtocolHandler(this)), 372 protocol_handler_(new DevToolsProtocolHandler(this)),
353 current_frame_crashed_(false), 373 current_frame_crashed_(false),
354 pending_handle_(nullptr), 374 pending_handle_(nullptr),
355 in_navigation_(0),
356 frame_tree_node_(host->frame_tree_node()) { 375 frame_tree_node_(host->frame_tree_node()) {
357 browser_side_navigation = IsBrowserSideNavigationEnabled();
358 DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher(); 376 DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher();
359 dispatcher->SetDOMHandler(dom_handler_.get()); 377 dispatcher->SetDOMHandler(dom_handler_.get());
360 dispatcher->SetInputHandler(input_handler_.get()); 378 dispatcher->SetInputHandler(input_handler_.get());
361 dispatcher->SetInspectorHandler(inspector_handler_.get()); 379 dispatcher->SetInspectorHandler(inspector_handler_.get());
362 dispatcher->SetIOHandler(io_handler_.get()); 380 dispatcher->SetIOHandler(io_handler_.get());
363 dispatcher->SetNetworkHandler(network_handler_.get()); 381 dispatcher->SetNetworkHandler(network_handler_.get());
364 dispatcher->SetServiceWorkerHandler(service_worker_handler_.get()); 382 dispatcher->SetServiceWorkerHandler(service_worker_handler_.get());
365 dispatcher->SetTracingHandler(tracing_handler_.get()); 383 dispatcher->SetTracingHandler(tracing_handler_.get());
366 384
367 if (!host->GetParent()) { 385 if (!host->GetParent()) {
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 pending_->Detach(); 467 pending_->Detach();
450 OnClientDetached(); 468 OnClientDetached();
451 } 469 }
452 470
453 bool RenderFrameDevToolsAgentHost::DispatchProtocolMessage( 471 bool RenderFrameDevToolsAgentHost::DispatchProtocolMessage(
454 const std::string& message) { 472 const std::string& message) {
455 int call_id = 0; 473 int call_id = 0;
456 if (protocol_handler_->HandleOptionalMessage(session_id(), message, &call_id)) 474 if (protocol_handler_->HandleOptionalMessage(session_id(), message, &call_id))
457 return true; 475 return true;
458 476
459 if (in_navigation_ > 0) { 477 if (!navigating_handles_.empty()) {
460 DCHECK(browser_side_navigation); 478 DCHECK(IsBrowserSideNavigationEnabled());
461 in_navigation_protocol_message_buffer_[call_id] = 479 in_navigation_protocol_message_buffer_[call_id] =
462 std::make_pair(session_id(), message); 480 std::make_pair(session_id(), message);
463 return true; 481 return true;
464 } 482 }
465 483
466 if (current_) 484 if (current_)
467 current_->DispatchProtocolMessage(session_id(), call_id, message); 485 current_->DispatchProtocolMessage(session_id(), call_id, message);
468 if (pending_) 486 if (pending_)
469 pending_->DispatchProtocolMessage(session_id(), call_id, message); 487 pending_->DispatchProtocolMessage(session_id(), call_id, message);
470 return true; 488 return true;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 } 532 }
515 533
516 RenderFrameDevToolsAgentHost::~RenderFrameDevToolsAgentHost() { 534 RenderFrameDevToolsAgentHost::~RenderFrameDevToolsAgentHost() {
517 Instances::iterator it = std::find(g_instances.Get().begin(), 535 Instances::iterator it = std::find(g_instances.Get().begin(),
518 g_instances.Get().end(), 536 g_instances.Get().end(),
519 this); 537 this);
520 if (it != g_instances.Get().end()) 538 if (it != g_instances.Get().end())
521 g_instances.Get().erase(it); 539 g_instances.Get().erase(it);
522 } 540 }
523 541
524 void RenderFrameDevToolsAgentHost::DidStartNavigation(
525 NavigationHandle* navigation_handle) {
526 if (!browser_side_navigation)
527 return;
528 if (!MatchesMyTreeNode(navigation_handle))
529 return;
530 DCHECK(current_);
531 DCHECK(in_navigation_ >= 0);
532 ++in_navigation_;
533 }
534
535 void RenderFrameDevToolsAgentHost::ReadyToCommitNavigation( 542 void RenderFrameDevToolsAgentHost::ReadyToCommitNavigation(
536 NavigationHandle* navigation_handle) { 543 NavigationHandle* navigation_handle) {
537 // ReadyToCommitNavigation should only be called in PlzNavigate. 544 // ReadyToCommitNavigation should only be called in PlzNavigate.
538 DCHECK(browser_side_navigation); 545 DCHECK(IsBrowserSideNavigationEnabled());
539 546
540 if (MatchesMyTreeNode(navigation_handle) && in_navigation_ != 0) { 547 // If the navigation is not tracked, return;
541 RenderFrameHostImpl* render_frame_host_impl = 548 if (navigating_handles_.count(navigation_handle) == 0)
542 static_cast<RenderFrameHostImpl*>( 549 return;
543 navigation_handle->GetRenderFrameHost()); 550
544 if (current_->host() != render_frame_host_impl || current_frame_crashed_) { 551 RenderFrameHostImpl* render_frame_host_impl =
545 SetPending(render_frame_host_impl); 552 static_cast<RenderFrameHostImpl*>(
546 pending_handle_ = navigation_handle; 553 navigation_handle->GetRenderFrameHost());
547 } 554 if (current_->host() != render_frame_host_impl || current_frame_crashed_) {
555 SetPending(render_frame_host_impl);
556 pending_handle_ = navigation_handle;
548 } 557 }
549 } 558 }
550 559
551 void RenderFrameDevToolsAgentHost::DidFinishNavigation( 560 void RenderFrameDevToolsAgentHost::DidFinishNavigation(
552 NavigationHandle* navigation_handle) { 561 NavigationHandle* navigation_handle) {
553 if (!browser_side_navigation) 562 if (!IsBrowserSideNavigationEnabled())
554 return; 563 return;
555 564
556 if (MatchesMyTreeNode(navigation_handle) && in_navigation_ != 0) { 565 // If the navigation is not tracked, return;
557 --in_navigation_; 566 if (navigating_handles_.count(navigation_handle) == 0)
558 DCHECK(in_navigation_ >= 0); 567 return;
559 if (pending_handle_ == navigation_handle) { 568
560 // This navigation handle did set the pending FrameHostHolder. 569 // Now that the navigation is finished, remove the handle from the list of
561 DCHECK(pending_); 570 // navigating handles.
562 if (navigation_handle->HasCommitted()) { 571 navigating_handles_.erase(navigation_handle);
563 DCHECK(pending_->host() == navigation_handle->GetRenderFrameHost()); 572
564 CommitPending(); 573 if (pending_handle_ == navigation_handle) {
565 } else { 574 // This navigation handle did set the pending FrameHostHolder.
566 DiscardPending(); 575 DCHECK(pending_);
567 } 576 if (navigation_handle->HasCommitted()) {
568 pending_handle_ = nullptr; 577 DCHECK(pending_->host() == navigation_handle->GetRenderFrameHost());
578 CommitPending();
579 } else {
580 DiscardPending();
569 } 581 }
570 DispatchBufferedProtocolMessagesIfNecessary(); 582 pending_handle_ = nullptr;
571 } 583 }
584 DispatchBufferedProtocolMessagesIfNecessary();
572 585
573 if (navigation_handle->HasCommitted()) 586 if (navigation_handle->HasCommitted())
574 service_worker_handler_->UpdateHosts(); 587 service_worker_handler_->UpdateHosts();
575 } 588 }
576 589
577 void RenderFrameDevToolsAgentHost::AboutToNavigateRenderFrame( 590 void RenderFrameDevToolsAgentHost::AboutToNavigateRenderFrame(
578 RenderFrameHost* old_host, 591 RenderFrameHost* old_host,
579 RenderFrameHost* new_host) { 592 RenderFrameHost* new_host) {
580 if (browser_side_navigation) 593 if (IsBrowserSideNavigationEnabled())
581 return; 594 return;
582 595
583 DCHECK(!pending_ || pending_->host() != old_host); 596 DCHECK(!pending_ || pending_->host() != old_host);
584 if (!current_ || current_->host() != old_host) 597 if (!current_ || current_->host() != old_host)
585 return; 598 return;
586 if (old_host == new_host && !current_frame_crashed_) 599 if (old_host == new_host && !current_frame_crashed_)
587 return; 600 return;
588 DCHECK(!pending_); 601 DCHECK(!pending_);
589 SetPending(static_cast<RenderFrameHostImpl*>(new_host)); 602 SetPending(static_cast<RenderFrameHostImpl*>(new_host));
590 } 603 }
591 604
605 void RenderFrameDevToolsAgentHost::AboutToNavigate(
606 NavigationHandle* navigation_handle) {
607 if (!IsBrowserSideNavigationEnabled())
608 return;
609 DCHECK(current_);
610 navigating_handles_.insert(navigation_handle);
611 }
612
592 void RenderFrameDevToolsAgentHost::RenderFrameHostChanged( 613 void RenderFrameDevToolsAgentHost::RenderFrameHostChanged(
593 RenderFrameHost* old_host, 614 RenderFrameHost* old_host,
594 RenderFrameHost* new_host) { 615 RenderFrameHost* new_host) {
595 if (browser_side_navigation) 616 if (IsBrowserSideNavigationEnabled())
596 return; 617 return;
597 618
598 DCHECK(!pending_ || pending_->host() != old_host); 619 DCHECK(!pending_ || pending_->host() != old_host);
599 if (!current_ || current_->host() != old_host) 620 if (!current_ || current_->host() != old_host)
600 return; 621 return;
601 622
602 // AboutToNavigateRenderFrame was not called for renderer-initiated 623 // AboutToNavigateRenderFrame was not called for renderer-initiated
603 // navigation. 624 // navigation.
604 if (!pending_) 625 if (!pending_)
605 SetPending(static_cast<RenderFrameHostImpl*>(new_host)); 626 SetPending(static_cast<RenderFrameHostImpl*>(new_host));
606 627
607 CommitPending(); 628 CommitPending();
608 } 629 }
609 630
610 void RenderFrameDevToolsAgentHost::FrameDeleted(RenderFrameHost* rfh) { 631 void RenderFrameDevToolsAgentHost::FrameDeleted(RenderFrameHost* rfh) {
611 if (pending_ && pending_->host() == rfh) { 632 if (pending_ && pending_->host() == rfh) {
612 if (!browser_side_navigation) 633 if (!IsBrowserSideNavigationEnabled())
613 DiscardPending(); 634 DiscardPending();
614 return; 635 return;
615 } 636 }
616 637
617 if (current_ && current_->host() == rfh) 638 if (current_ && current_->host() == rfh)
618 DestroyOnRenderFrameGone(); // |this| may be deleted at this point. 639 DestroyOnRenderFrameGone(); // |this| may be deleted at this point.
619 } 640 }
620 641
621 void RenderFrameDevToolsAgentHost::RenderFrameDeleted(RenderFrameHost* rfh) { 642 void RenderFrameDevToolsAgentHost::RenderFrameDeleted(RenderFrameHost* rfh) {
622 if (!current_frame_crashed_) 643 if (!current_frame_crashed_)
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
705 726
706 void RenderFrameDevToolsAgentHost::DidDetachInterstitialPage() { 727 void RenderFrameDevToolsAgentHost::DidDetachInterstitialPage() {
707 if (page_handler_) 728 if (page_handler_)
708 page_handler_->DidDetachInterstitialPage(); 729 page_handler_->DidDetachInterstitialPage();
709 } 730 }
710 731
711 void RenderFrameDevToolsAgentHost::DidCommitProvisionalLoadForFrame( 732 void RenderFrameDevToolsAgentHost::DidCommitProvisionalLoadForFrame(
712 RenderFrameHost* render_frame_host, 733 RenderFrameHost* render_frame_host,
713 const GURL& url, 734 const GURL& url,
714 ui::PageTransition transition_type) { 735 ui::PageTransition transition_type) {
715 if (browser_side_navigation) 736 if (IsBrowserSideNavigationEnabled())
716 return; 737 return;
717 if (pending_ && pending_->host() == render_frame_host) 738 if (pending_ && pending_->host() == render_frame_host)
718 CommitPending(); 739 CommitPending();
719 service_worker_handler_->UpdateHosts(); 740 service_worker_handler_->UpdateHosts();
720 } 741 }
721 742
722 void RenderFrameDevToolsAgentHost::DidFailProvisionalLoad( 743 void RenderFrameDevToolsAgentHost::DidFailProvisionalLoad(
723 RenderFrameHost* render_frame_host, 744 RenderFrameHost* render_frame_host,
724 const GURL& validated_url, 745 const GURL& validated_url,
725 int error_code, 746 int error_code,
726 const base::string16& error_description, 747 const base::string16& error_description,
727 bool was_ignored_by_handler) { 748 bool was_ignored_by_handler) {
728 if (browser_side_navigation) 749 if (IsBrowserSideNavigationEnabled())
729 return; 750 return;
730 if (pending_ && pending_->host() == render_frame_host) 751 if (pending_ && pending_->host() == render_frame_host)
731 DiscardPending(); 752 DiscardPending();
732 } 753 }
733 754
734 void RenderFrameDevToolsAgentHost:: 755 void RenderFrameDevToolsAgentHost::
735 DispatchBufferedProtocolMessagesIfNecessary() { 756 DispatchBufferedProtocolMessagesIfNecessary() {
736 if (in_navigation_ == 0 && in_navigation_protocol_message_buffer_.size()) { 757 if (navigating_handles_.empty() &&
758 in_navigation_protocol_message_buffer_.size()) {
737 DCHECK(current_); 759 DCHECK(current_);
738 for (const auto& pair : in_navigation_protocol_message_buffer_) { 760 for (const auto& pair : in_navigation_protocol_message_buffer_) {
739 current_->DispatchProtocolMessage(pair.second.first, pair.first, 761 current_->DispatchProtocolMessage(pair.second.first, pair.first,
740 pair.second.second); 762 pair.second.second);
741 } 763 }
742 in_navigation_protocol_message_buffer_.clear(); 764 in_navigation_protocol_message_buffer_.clear();
743 } 765 }
744 } 766 }
745 767
746 void RenderFrameDevToolsAgentHost::UpdateProtocolHandlers( 768 void RenderFrameDevToolsAgentHost::UpdateProtocolHandlers(
(...skipping 13 matching lines...) Expand all
760 } 782 }
761 783
762 void RenderFrameDevToolsAgentHost::DisconnectWebContents() { 784 void RenderFrameDevToolsAgentHost::DisconnectWebContents() {
763 if (pending_) 785 if (pending_)
764 DiscardPending(); 786 DiscardPending();
765 UpdateProtocolHandlers(nullptr); 787 UpdateProtocolHandlers(nullptr);
766 disconnected_ = std::move(current_); 788 disconnected_ = std::move(current_);
767 disconnected_->Detach(); 789 disconnected_->Detach();
768 frame_tree_node_ = nullptr; 790 frame_tree_node_ = nullptr;
769 in_navigation_protocol_message_buffer_.clear(); 791 in_navigation_protocol_message_buffer_.clear();
770 in_navigation_ = 0; 792 navigating_handles_.clear();
771 pending_handle_ = nullptr; 793 pending_handle_ = nullptr;
772 WebContentsObserver::Observe(nullptr); 794 WebContentsObserver::Observe(nullptr);
773 } 795 }
774 796
775 void RenderFrameDevToolsAgentHost::ConnectWebContents(WebContents* wc) { 797 void RenderFrameDevToolsAgentHost::ConnectWebContents(WebContents* wc) {
776 DCHECK(!current_); 798 DCHECK(!current_);
777 DCHECK(!pending_); 799 DCHECK(!pending_);
778 RenderFrameHostImpl* host = 800 RenderFrameHostImpl* host =
779 static_cast<RenderFrameHostImpl*>(wc->GetMainFrame()); 801 static_cast<RenderFrameHostImpl*>(wc->GetMainFrame());
780 DCHECK(host); 802 DCHECK(host);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 bool RenderFrameDevToolsAgentHost::HasRenderFrameHost( 907 bool RenderFrameDevToolsAgentHost::HasRenderFrameHost(
886 RenderFrameHost* host) { 908 RenderFrameHost* host) {
887 return (current_ && current_->host() == host) || 909 return (current_ && current_->host() == host) ||
888 (pending_ && pending_->host() == host); 910 (pending_ && pending_->host() == host);
889 } 911 }
890 912
891 bool RenderFrameDevToolsAgentHost::IsChildFrame() { 913 bool RenderFrameDevToolsAgentHost::IsChildFrame() {
892 return current_ && current_->host()->GetParent(); 914 return current_ && current_->host()->GetParent();
893 } 915 }
894 916
895 bool RenderFrameDevToolsAgentHost::MatchesMyTreeNode(
896 NavigationHandle* navigation_handle) {
897 return frame_tree_node_ ==
898 static_cast<NavigationHandleImpl*>(navigation_handle)
899 ->frame_tree_node();
900 }
901
902 } // namespace content 917 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/devtools/render_frame_devtools_agent_host.h ('k') | content/browser/frame_host/navigation_request.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698