| 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/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 RenderFrameHost* current) { | 320 RenderFrameHost* current) { |
| 321 if (IsBrowserSideNavigationEnabled()) | 321 if (IsBrowserSideNavigationEnabled()) |
| 322 return; | 322 return; |
| 323 | 323 |
| 324 RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(pending); | 324 RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(pending); |
| 325 if (!agent_host) | 325 if (!agent_host) |
| 326 return; | 326 return; |
| 327 if (agent_host->pending_ && agent_host->pending_->host() == pending) { | 327 if (agent_host->pending_ && agent_host->pending_->host() == pending) { |
| 328 DCHECK(agent_host->current_ && agent_host->current_->host() == current); | 328 DCHECK(agent_host->current_ && agent_host->current_->host() == current); |
| 329 agent_host->DiscardPending(); | 329 agent_host->DiscardPending(); |
| 330 DCHECK(agent_host->CheckConsistency()); |
| 330 } | 331 } |
| 331 } | 332 } |
| 332 | 333 |
| 333 // static | 334 // static |
| 334 void RenderFrameDevToolsAgentHost::OnBeforeNavigation( | 335 void RenderFrameDevToolsAgentHost::OnBeforeNavigation( |
| 335 RenderFrameHost* current, RenderFrameHost* pending) { | 336 RenderFrameHost* current, RenderFrameHost* pending) { |
| 336 RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(current); | 337 RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(current); |
| 337 if (agent_host) | 338 if (agent_host) |
| 338 agent_host->AboutToNavigateRenderFrame(current, pending); | 339 agent_host->AboutToNavigateRenderFrame(current, pending); |
| 339 } | 340 } |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 service_worker_handler_( | 383 service_worker_handler_( |
| 383 new devtools::service_worker::ServiceWorkerHandler()), | 384 new devtools::service_worker::ServiceWorkerHandler()), |
| 384 storage_handler_(new devtools::storage::StorageHandler()), | 385 storage_handler_(new devtools::storage::StorageHandler()), |
| 385 tracing_handler_(new devtools::tracing::TracingHandler( | 386 tracing_handler_(new devtools::tracing::TracingHandler( |
| 386 devtools::tracing::TracingHandler::Renderer, | 387 devtools::tracing::TracingHandler::Renderer, |
| 387 host->GetFrameTreeNodeId(), | 388 host->GetFrameTreeNodeId(), |
| 388 GetIOContext())), | 389 GetIOContext())), |
| 389 emulation_handler_(nullptr), | 390 emulation_handler_(nullptr), |
| 390 frame_trace_recorder_(nullptr), | 391 frame_trace_recorder_(nullptr), |
| 391 protocol_handler_(new DevToolsProtocolHandler(this)), | 392 protocol_handler_(new DevToolsProtocolHandler(this)), |
| 393 handlers_frame_host_(nullptr), |
| 392 current_frame_crashed_(false), | 394 current_frame_crashed_(false), |
| 393 pending_handle_(nullptr), | 395 pending_handle_(nullptr), |
| 394 frame_tree_node_(host->frame_tree_node()) { | 396 frame_tree_node_(host->frame_tree_node()) { |
| 395 DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher(); | 397 DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher(); |
| 396 dispatcher->SetBrowserHandler(browser_handler_.get()); | 398 dispatcher->SetBrowserHandler(browser_handler_.get()); |
| 397 dispatcher->SetDOMHandler(dom_handler_.get()); | 399 dispatcher->SetDOMHandler(dom_handler_.get()); |
| 398 dispatcher->SetInputHandler(input_handler_.get()); | 400 dispatcher->SetInputHandler(input_handler_.get()); |
| 399 dispatcher->SetInspectorHandler(inspector_handler_.get()); | 401 dispatcher->SetInspectorHandler(inspector_handler_.get()); |
| 400 dispatcher->SetIOHandler(io_handler_.get()); | 402 dispatcher->SetIOHandler(io_handler_.get()); |
| 401 dispatcher->SetNetworkHandler(network_handler_.get()); | 403 dispatcher->SetNetworkHandler(network_handler_.get()); |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 565 // If the navigation is not tracked, return; | 567 // If the navigation is not tracked, return; |
| 566 if (navigating_handles_.count(navigation_handle) == 0) | 568 if (navigating_handles_.count(navigation_handle) == 0) |
| 567 return; | 569 return; |
| 568 | 570 |
| 569 RenderFrameHostImpl* render_frame_host_impl = | 571 RenderFrameHostImpl* render_frame_host_impl = |
| 570 static_cast<RenderFrameHostImpl*>( | 572 static_cast<RenderFrameHostImpl*>( |
| 571 navigation_handle->GetRenderFrameHost()); | 573 navigation_handle->GetRenderFrameHost()); |
| 572 if (current_->host() != render_frame_host_impl || current_frame_crashed_) { | 574 if (current_->host() != render_frame_host_impl || current_frame_crashed_) { |
| 573 SetPending(render_frame_host_impl); | 575 SetPending(render_frame_host_impl); |
| 574 pending_handle_ = navigation_handle; | 576 pending_handle_ = navigation_handle; |
| 577 // Commit when navigating the same frame after crash, avoiding the same |
| 578 // host in current_ and pending_. |
| 579 if (current_->host() == render_frame_host_impl) { |
| 580 pending_handle_ = nullptr; |
| 581 CommitPending(); |
| 582 } |
| 575 } | 583 } |
| 584 DCHECK(CheckConsistency()); |
| 576 } | 585 } |
| 577 | 586 |
| 578 void RenderFrameDevToolsAgentHost::DidFinishNavigation( | 587 void RenderFrameDevToolsAgentHost::DidFinishNavigation( |
| 579 NavigationHandle* navigation_handle) { | 588 NavigationHandle* navigation_handle) { |
| 580 if (!IsBrowserSideNavigationEnabled()) | 589 if (!IsBrowserSideNavigationEnabled()) |
| 581 return; | 590 return; |
| 582 | 591 |
| 583 // If the navigation is not tracked, return; | 592 // If the navigation is not tracked, return; |
| 584 if (navigating_handles_.count(navigation_handle) == 0) | 593 if (navigating_handles_.count(navigation_handle) == 0) |
| 585 return; | 594 return; |
| 586 | 595 |
| 587 // Now that the navigation is finished, remove the handle from the list of | 596 // Now that the navigation is finished, remove the handle from the list of |
| 588 // navigating handles. | 597 // navigating handles. |
| 589 navigating_handles_.erase(navigation_handle); | 598 navigating_handles_.erase(navigation_handle); |
| 590 | 599 |
| 591 if (pending_handle_ == navigation_handle) { | 600 if (pending_handle_ == navigation_handle) { |
| 592 // This navigation handle did set the pending FrameHostHolder. | 601 // This navigation handle did set the pending FrameHostHolder. |
| 593 DCHECK(pending_); | 602 DCHECK(pending_); |
| 594 if (navigation_handle->HasCommitted()) { | 603 if (navigation_handle->HasCommitted()) { |
| 595 DCHECK(pending_->host() == navigation_handle->GetRenderFrameHost()); | 604 DCHECK(pending_->host() == navigation_handle->GetRenderFrameHost()); |
| 596 CommitPending(); | 605 CommitPending(); |
| 597 } else { | 606 } else { |
| 598 DiscardPending(); | 607 DiscardPending(); |
| 599 } | 608 } |
| 600 pending_handle_ = nullptr; | 609 pending_handle_ = nullptr; |
| 601 } | 610 } |
| 602 DispatchBufferedProtocolMessagesIfNecessary(); | 611 DispatchBufferedProtocolMessagesIfNecessary(); |
| 603 | 612 |
| 613 DCHECK(CheckConsistency()); |
| 604 if (navigation_handle->HasCommitted()) | 614 if (navigation_handle->HasCommitted()) |
| 605 service_worker_handler_->UpdateHosts(); | 615 service_worker_handler_->UpdateHosts(); |
| 606 } | 616 } |
| 607 | 617 |
| 608 void RenderFrameDevToolsAgentHost::AboutToNavigateRenderFrame( | 618 void RenderFrameDevToolsAgentHost::AboutToNavigateRenderFrame( |
| 609 RenderFrameHost* old_host, | 619 RenderFrameHost* old_host, |
| 610 RenderFrameHost* new_host) { | 620 RenderFrameHost* new_host) { |
| 611 if (IsBrowserSideNavigationEnabled()) | 621 if (IsBrowserSideNavigationEnabled()) |
| 612 return; | 622 return; |
| 613 | 623 |
| 614 DCHECK(!pending_ || pending_->host() != old_host); | 624 DCHECK(!pending_ || pending_->host() != old_host); |
| 615 if (!current_ || current_->host() != old_host) | 625 if (!current_ || current_->host() != old_host) { |
| 626 DCHECK(CheckConsistency()); |
| 616 return; | 627 return; |
| 617 if (old_host == new_host && !current_frame_crashed_) | 628 } |
| 629 if (old_host == new_host && !current_frame_crashed_) { |
| 630 DCHECK(CheckConsistency()); |
| 618 return; | 631 return; |
| 632 } |
| 619 DCHECK(!pending_); | 633 DCHECK(!pending_); |
| 620 SetPending(static_cast<RenderFrameHostImpl*>(new_host)); | 634 SetPending(static_cast<RenderFrameHostImpl*>(new_host)); |
| 635 // Commit when navigating the same frame after crash, avoiding the same |
| 636 // host in current_ and pending_. |
| 637 if (old_host == new_host) |
| 638 CommitPending(); |
| 639 DCHECK(CheckConsistency()); |
| 621 } | 640 } |
| 622 | 641 |
| 623 void RenderFrameDevToolsAgentHost::AboutToNavigate( | 642 void RenderFrameDevToolsAgentHost::AboutToNavigate( |
| 624 NavigationHandle* navigation_handle) { | 643 NavigationHandle* navigation_handle) { |
| 625 if (!IsBrowserSideNavigationEnabled()) | 644 if (!IsBrowserSideNavigationEnabled()) |
| 626 return; | 645 return; |
| 627 DCHECK(current_); | 646 DCHECK(current_); |
| 628 navigating_handles_.insert(navigation_handle); | 647 navigating_handles_.insert(navigation_handle); |
| 648 DCHECK(CheckConsistency()); |
| 629 } | 649 } |
| 630 | 650 |
| 631 void RenderFrameDevToolsAgentHost::RenderFrameHostChanged( | 651 void RenderFrameDevToolsAgentHost::RenderFrameHostChanged( |
| 632 RenderFrameHost* old_host, | 652 RenderFrameHost* old_host, |
| 633 RenderFrameHost* new_host) { | 653 RenderFrameHost* new_host) { |
| 634 if (IsBrowserSideNavigationEnabled()) | 654 if (IsBrowserSideNavigationEnabled()) |
| 635 return; | 655 return; |
| 636 | 656 |
| 637 DCHECK(!pending_ || pending_->host() != old_host); | 657 DCHECK(!pending_ || pending_->host() != old_host); |
| 638 if (!current_ || current_->host() != old_host) | 658 if (!current_ || current_->host() != old_host) { |
| 659 DCHECK(CheckConsistency()); |
| 639 return; | 660 return; |
| 661 } |
| 640 | 662 |
| 641 // AboutToNavigateRenderFrame was not called for renderer-initiated | 663 // AboutToNavigateRenderFrame was not called for renderer-initiated |
| 642 // navigation. | 664 // navigation. |
| 643 if (!pending_) | 665 if (!pending_) |
| 644 SetPending(static_cast<RenderFrameHostImpl*>(new_host)); | 666 SetPending(static_cast<RenderFrameHostImpl*>(new_host)); |
| 645 | |
| 646 CommitPending(); | 667 CommitPending(); |
| 668 DCHECK(CheckConsistency()); |
| 647 } | 669 } |
| 648 | 670 |
| 649 void RenderFrameDevToolsAgentHost::FrameDeleted(RenderFrameHost* rfh) { | 671 void RenderFrameDevToolsAgentHost::FrameDeleted(RenderFrameHost* rfh) { |
| 650 if (pending_ && pending_->host() == rfh) { | 672 if (pending_ && pending_->host() == rfh) { |
| 651 if (!IsBrowserSideNavigationEnabled()) | 673 if (!IsBrowserSideNavigationEnabled()) |
| 652 DiscardPending(); | 674 DiscardPending(); |
| 675 DCHECK(CheckConsistency()); |
| 653 return; | 676 return; |
| 654 } | 677 } |
| 655 | 678 |
| 656 if (current_ && current_->host() == rfh) | 679 if (current_ && current_->host() == rfh) |
| 657 DestroyOnRenderFrameGone(); // |this| may be deleted at this point. | 680 DestroyOnRenderFrameGone(); // |this| may be deleted at this point. |
| 658 } | 681 } |
| 659 | 682 |
| 660 void RenderFrameDevToolsAgentHost::RenderFrameDeleted(RenderFrameHost* rfh) { | 683 void RenderFrameDevToolsAgentHost::RenderFrameDeleted(RenderFrameHost* rfh) { |
| 661 if (!current_frame_crashed_) | 684 if (!current_frame_crashed_) |
| 662 FrameDeleted(rfh); | 685 FrameDeleted(rfh); |
| 686 else |
| 687 DCHECK(CheckConsistency()); |
| 663 } | 688 } |
| 664 | 689 |
| 665 void RenderFrameDevToolsAgentHost::DestroyOnRenderFrameGone() { | 690 void RenderFrameDevToolsAgentHost::DestroyOnRenderFrameGone() { |
| 666 DCHECK(current_); | 691 DCHECK(current_); |
| 667 scoped_refptr<RenderFrameDevToolsAgentHost> protect(this); | 692 scoped_refptr<RenderFrameDevToolsAgentHost> protect(this); |
| 668 UpdateProtocolHandlers(nullptr); | 693 UpdateProtocolHandlers(nullptr); |
| 669 if (IsAttached()) | 694 if (IsAttached()) |
| 670 OnClientDetached(); | 695 OnClientDetached(); |
| 671 HostClosed(); | 696 HostClosed(); |
| 672 pending_.reset(); | 697 pending_.reset(); |
| 673 current_.reset(); | 698 current_.reset(); |
| 674 frame_tree_node_ = nullptr; | 699 frame_tree_node_ = nullptr; |
| 675 pending_handle_ = nullptr; | 700 pending_handle_ = nullptr; |
| 676 WebContentsObserver::Observe(nullptr); | 701 WebContentsObserver::Observe(nullptr); |
| 677 Release(); | 702 Release(); |
| 678 } | 703 } |
| 679 | 704 |
| 705 bool RenderFrameDevToolsAgentHost::CheckConsistency() { |
| 706 if (current_ && pending_ && current_->host() == pending_->host()) |
| 707 return false; |
| 708 if (IsBrowserSideNavigationEnabled()) |
| 709 return true; |
| 710 if (!frame_tree_node_) |
| 711 return !handlers_frame_host_; |
| 712 RenderFrameHostManager* manager = frame_tree_node_->render_manager(); |
| 713 return handlers_frame_host_ == manager->current_frame_host() || |
| 714 handlers_frame_host_ == manager->pending_frame_host(); |
| 715 } |
| 716 |
| 680 void RenderFrameDevToolsAgentHost::CreatePowerSaveBlocker() { | 717 void RenderFrameDevToolsAgentHost::CreatePowerSaveBlocker() { |
| 681 #if defined(OS_ANDROID) | 718 #if defined(OS_ANDROID) |
| 682 power_save_blocker_.reset(new device::PowerSaveBlocker( | 719 power_save_blocker_.reset(new device::PowerSaveBlocker( |
| 683 device::PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, | 720 device::PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, |
| 684 device::PowerSaveBlocker::kReasonOther, "DevTools", | 721 device::PowerSaveBlocker::kReasonOther, "DevTools", |
| 685 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI), | 722 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI), |
| 686 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE))); | 723 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE))); |
| 687 if (web_contents()->GetNativeView()) { | 724 if (web_contents()->GetNativeView()) { |
| 688 view_weak_factory_.reset(new base::WeakPtrFactory<ui::ViewAndroid>( | 725 view_weak_factory_.reset(new base::WeakPtrFactory<ui::ViewAndroid>( |
| 689 web_contents()->GetNativeView())); | 726 web_contents()->GetNativeView())); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 706 case base::TERMINATION_STATUS_OOM_PROTECTED: | 743 case base::TERMINATION_STATUS_OOM_PROTECTED: |
| 707 #endif | 744 #endif |
| 708 case base::TERMINATION_STATUS_LAUNCH_FAILED: | 745 case base::TERMINATION_STATUS_LAUNCH_FAILED: |
| 709 inspector_handler_->TargetCrashed(); | 746 inspector_handler_->TargetCrashed(); |
| 710 current_frame_crashed_ = true; | 747 current_frame_crashed_ = true; |
| 711 break; | 748 break; |
| 712 default: | 749 default: |
| 713 inspector_handler_->TargetDetached("Render process gone."); | 750 inspector_handler_->TargetDetached("Render process gone."); |
| 714 break; | 751 break; |
| 715 } | 752 } |
| 753 DCHECK(CheckConsistency()); |
| 716 } | 754 } |
| 717 | 755 |
| 718 bool RenderFrameDevToolsAgentHost::OnMessageReceived( | 756 bool RenderFrameDevToolsAgentHost::OnMessageReceived( |
| 719 const IPC::Message& message) { | 757 const IPC::Message& message) { |
| 720 if (!current_) | 758 if (!current_) |
| 721 return false; | 759 return false; |
| 722 if (message.type() == ViewHostMsg_SwapCompositorFrame::ID) | 760 if (message.type() == ViewHostMsg_SwapCompositorFrame::ID) |
| 723 OnSwapCompositorFrame(message); | 761 OnSwapCompositorFrame(message); |
| 724 return false; | 762 return false; |
| 725 } | 763 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 743 IPC_MESSAGE_UNHANDLED(handled = false) | 781 IPC_MESSAGE_UNHANDLED(handled = false) |
| 744 IPC_END_MESSAGE_MAP() | 782 IPC_END_MESSAGE_MAP() |
| 745 return handled; | 783 return handled; |
| 746 } | 784 } |
| 747 | 785 |
| 748 void RenderFrameDevToolsAgentHost::DidAttachInterstitialPage() { | 786 void RenderFrameDevToolsAgentHost::DidAttachInterstitialPage() { |
| 749 if (page_handler_) | 787 if (page_handler_) |
| 750 page_handler_->DidAttachInterstitialPage(); | 788 page_handler_->DidAttachInterstitialPage(); |
| 751 | 789 |
| 752 // TODO(dgozman): this may break for cross-process subframes. | 790 // TODO(dgozman): this may break for cross-process subframes. |
| 753 if (!pending_) | 791 if (!pending_) { |
| 792 DCHECK(CheckConsistency()); |
| 754 return; | 793 return; |
| 794 } |
| 755 // Pending set in AboutToNavigateRenderFrame turned out to be interstitial. | 795 // Pending set in AboutToNavigateRenderFrame turned out to be interstitial. |
| 756 // Connect back to the real one. | 796 // Connect back to the real one. |
| 757 DiscardPending(); | 797 DiscardPending(); |
| 758 pending_handle_ = nullptr; | 798 pending_handle_ = nullptr; |
| 799 DCHECK(CheckConsistency()); |
| 759 } | 800 } |
| 760 | 801 |
| 761 void RenderFrameDevToolsAgentHost::DidDetachInterstitialPage() { | 802 void RenderFrameDevToolsAgentHost::DidDetachInterstitialPage() { |
| 762 if (page_handler_) | 803 if (page_handler_) |
| 763 page_handler_->DidDetachInterstitialPage(); | 804 page_handler_->DidDetachInterstitialPage(); |
| 764 } | 805 } |
| 765 | 806 |
| 766 void RenderFrameDevToolsAgentHost::DidCommitProvisionalLoadForFrame( | 807 void RenderFrameDevToolsAgentHost::DidCommitProvisionalLoadForFrame( |
| 767 RenderFrameHost* render_frame_host, | 808 RenderFrameHost* render_frame_host, |
| 768 const GURL& url, | 809 const GURL& url, |
| 769 ui::PageTransition transition_type) { | 810 ui::PageTransition transition_type) { |
| 770 if (IsBrowserSideNavigationEnabled()) | 811 if (IsBrowserSideNavigationEnabled()) |
| 771 return; | 812 return; |
| 772 if (pending_ && pending_->host() == render_frame_host) | 813 if (pending_ && pending_->host() == render_frame_host) |
| 773 CommitPending(); | 814 CommitPending(); |
| 815 DCHECK(CheckConsistency()); |
| 774 service_worker_handler_->UpdateHosts(); | 816 service_worker_handler_->UpdateHosts(); |
| 775 } | 817 } |
| 776 | 818 |
| 777 void RenderFrameDevToolsAgentHost::DidFailProvisionalLoad( | 819 void RenderFrameDevToolsAgentHost::DidFailProvisionalLoad( |
| 778 RenderFrameHost* render_frame_host, | 820 RenderFrameHost* render_frame_host, |
| 779 const GURL& validated_url, | 821 const GURL& validated_url, |
| 780 int error_code, | 822 int error_code, |
| 781 const base::string16& error_description, | 823 const base::string16& error_description, |
| 782 bool was_ignored_by_handler) { | 824 bool was_ignored_by_handler) { |
| 783 if (IsBrowserSideNavigationEnabled()) | 825 if (IsBrowserSideNavigationEnabled()) |
| 784 return; | 826 return; |
| 785 if (pending_ && pending_->host() == render_frame_host) | 827 if (pending_ && pending_->host() == render_frame_host) |
| 786 DiscardPending(); | 828 DiscardPending(); |
| 829 DCHECK(CheckConsistency()); |
| 787 } | 830 } |
| 788 | 831 |
| 789 void RenderFrameDevToolsAgentHost::WebContentsDestroyed() { | 832 void RenderFrameDevToolsAgentHost::WebContentsDestroyed() { |
| 790 #if defined(OS_ANDROID) | 833 #if defined(OS_ANDROID) |
| 791 view_weak_factory_.reset(); | 834 view_weak_factory_.reset(); |
| 792 #endif | 835 #endif |
| 793 } | 836 } |
| 794 | 837 |
| 795 void RenderFrameDevToolsAgentHost::WasShown() { | 838 void RenderFrameDevToolsAgentHost::WasShown() { |
| 796 CreatePowerSaveBlocker(); | 839 CreatePowerSaveBlocker(); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 811 current_->DispatchProtocolMessage( | 854 current_->DispatchProtocolMessage( |
| 812 pair.second.session_id, pair.first, pair.second.method, | 855 pair.second.session_id, pair.first, pair.second.method, |
| 813 pair.second.message); | 856 pair.second.message); |
| 814 } | 857 } |
| 815 in_navigation_protocol_message_buffer_.clear(); | 858 in_navigation_protocol_message_buffer_.clear(); |
| 816 } | 859 } |
| 817 } | 860 } |
| 818 | 861 |
| 819 void RenderFrameDevToolsAgentHost::UpdateProtocolHandlers( | 862 void RenderFrameDevToolsAgentHost::UpdateProtocolHandlers( |
| 820 RenderFrameHostImpl* host) { | 863 RenderFrameHostImpl* host) { |
| 864 handlers_frame_host_ = host; |
| 821 dom_handler_->SetRenderFrameHost(host); | 865 dom_handler_->SetRenderFrameHost(host); |
| 822 if (emulation_handler_) | 866 if (emulation_handler_) |
| 823 emulation_handler_->SetRenderFrameHost(host); | 867 emulation_handler_->SetRenderFrameHost(host); |
| 824 input_handler_->SetRenderWidgetHost( | 868 input_handler_->SetRenderWidgetHost( |
| 825 host ? host->GetRenderWidgetHost() : nullptr); | 869 host ? host->GetRenderWidgetHost() : nullptr); |
| 826 inspector_handler_->SetRenderFrameHost(host); | 870 inspector_handler_->SetRenderFrameHost(host); |
| 827 network_handler_->SetRenderFrameHost(host); | 871 network_handler_->SetRenderFrameHost(host); |
| 828 if (page_handler_) | 872 if (page_handler_) |
| 829 page_handler_->SetRenderFrameHost(host); | 873 page_handler_->SetRenderFrameHost(host); |
| 830 service_worker_handler_->SetRenderFrameHost(host); | 874 service_worker_handler_->SetRenderFrameHost(host); |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 967 RenderFrameHost* host) { | 1011 RenderFrameHost* host) { |
| 968 return (current_ && current_->host() == host) || | 1012 return (current_ && current_->host() == host) || |
| 969 (pending_ && pending_->host() == host); | 1013 (pending_ && pending_->host() == host); |
| 970 } | 1014 } |
| 971 | 1015 |
| 972 bool RenderFrameDevToolsAgentHost::IsChildFrame() { | 1016 bool RenderFrameDevToolsAgentHost::IsChildFrame() { |
| 973 return current_ && current_->host()->GetParent(); | 1017 return current_ && current_->host()->GetParent(); |
| 974 } | 1018 } |
| 975 | 1019 |
| 976 } // namespace content | 1020 } // namespace content |
| OLD | NEW |