| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 #include "core/frame/LocalFrame.h" | 42 #include "core/frame/LocalFrame.h" |
| 43 #include "core/frame/LocalFrameClient.h" | 43 #include "core/frame/LocalFrameClient.h" |
| 44 #include "core/frame/LocalFrameView.h" | 44 #include "core/frame/LocalFrameView.h" |
| 45 #include "core/frame/Settings.h" | 45 #include "core/frame/Settings.h" |
| 46 #include "core/frame/VisualViewport.h" | 46 #include "core/frame/VisualViewport.h" |
| 47 #include "core/html/HTMLFrameOwnerElement.h" | 47 #include "core/html/HTMLFrameOwnerElement.h" |
| 48 #include "core/html/VoidCallback.h" | 48 #include "core/html/VoidCallback.h" |
| 49 #include "core/html/imports/HTMLImportLoader.h" | 49 #include "core/html/imports/HTMLImportLoader.h" |
| 50 #include "core/html/imports/HTMLImportsController.h" | 50 #include "core/html/imports/HTMLImportsController.h" |
| 51 #include "core/html/parser/TextResourceDecoder.h" | 51 #include "core/html/parser/TextResourceDecoder.h" |
| 52 #include "core/inspector/AddStringToDigestor.h" |
| 52 #include "core/inspector/IdentifiersFactory.h" | 53 #include "core/inspector/IdentifiersFactory.h" |
| 53 #include "core/inspector/InspectedFrames.h" | 54 #include "core/inspector/InspectedFrames.h" |
| 54 #include "core/inspector/InspectorCSSAgent.h" | 55 #include "core/inspector/InspectorCSSAgent.h" |
| 55 #include "core/inspector/InspectorResourceContentLoader.h" | 56 #include "core/inspector/InspectorResourceContentLoader.h" |
| 56 #include "core/inspector/V8InspectorString.h" | 57 #include "core/inspector/V8InspectorString.h" |
| 57 #include "core/loader/DocumentLoader.h" | 58 #include "core/loader/DocumentLoader.h" |
| 58 #include "core/loader/FrameLoader.h" | 59 #include "core/loader/FrameLoader.h" |
| 59 #include "core/loader/ScheduledNavigation.h" | 60 #include "core/loader/ScheduledNavigation.h" |
| 60 #include "core/loader/resource/CSSStyleSheetResource.h" | 61 #include "core/loader/resource/CSSStyleSheetResource.h" |
| 61 #include "core/loader/resource/ScriptResource.h" | 62 #include "core/loader/resource/ScriptResource.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 82 namespace PageAgentState { | 83 namespace PageAgentState { |
| 83 static const char kPageAgentEnabled[] = "pageAgentEnabled"; | 84 static const char kPageAgentEnabled[] = "pageAgentEnabled"; |
| 84 static const char kPageAgentScriptsToEvaluateOnLoad[] = | 85 static const char kPageAgentScriptsToEvaluateOnLoad[] = |
| 85 "pageAgentScriptsToEvaluateOnLoad"; | 86 "pageAgentScriptsToEvaluateOnLoad"; |
| 86 static const char kScreencastEnabled[] = "screencastEnabled"; | 87 static const char kScreencastEnabled[] = "screencastEnabled"; |
| 87 static const char kAutoAttachToCreatedPages[] = "autoAttachToCreatedPages"; | 88 static const char kAutoAttachToCreatedPages[] = "autoAttachToCreatedPages"; |
| 88 } | 89 } |
| 89 | 90 |
| 90 namespace { | 91 namespace { |
| 91 | 92 |
| 92 KURL UrlWithoutFragment(const KURL& url) { | |
| 93 KURL result = url; | |
| 94 result.RemoveFragmentIdentifier(); | |
| 95 return result; | |
| 96 } | |
| 97 | |
| 98 String FrameId(LocalFrame* frame) { | |
| 99 return frame ? IdentifiersFactory::FrameId(frame) : ""; | |
| 100 } | |
| 101 | |
| 102 String DialogTypeToProtocol(ChromeClient::DialogType dialog_type) { | 93 String DialogTypeToProtocol(ChromeClient::DialogType dialog_type) { |
| 103 switch (dialog_type) { | 94 switch (dialog_type) { |
| 104 case ChromeClient::kAlertDialog: | 95 case ChromeClient::kAlertDialog: |
| 105 return protocol::Page::DialogTypeEnum::Alert; | 96 return protocol::Page::DialogTypeEnum::Alert; |
| 106 case ChromeClient::kConfirmDialog: | 97 case ChromeClient::kConfirmDialog: |
| 107 return protocol::Page::DialogTypeEnum::Confirm; | 98 return protocol::Page::DialogTypeEnum::Confirm; |
| 108 case ChromeClient::kPromptDialog: | 99 case ChromeClient::kPromptDialog: |
| 109 return protocol::Page::DialogTypeEnum::Prompt; | 100 return protocol::Page::DialogTypeEnum::Prompt; |
| 110 case ChromeClient::kHTMLDialog: | 101 case ChromeClient::kHTMLDialog: |
| 111 return protocol::Page::DialogTypeEnum::Beforeunload; | 102 return protocol::Page::DialogTypeEnum::Beforeunload; |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 enable(); | 422 enable(); |
| 432 } | 423 } |
| 433 | 424 |
| 434 Response InspectorPageAgent::enable() { | 425 Response InspectorPageAgent::enable() { |
| 435 enabled_ = true; | 426 enabled_ = true; |
| 436 state_->setBoolean(PageAgentState::kPageAgentEnabled, true); | 427 state_->setBoolean(PageAgentState::kPageAgentEnabled, true); |
| 437 instrumenting_agents_->addInspectorPageAgent(this); | 428 instrumenting_agents_->addInspectorPageAgent(this); |
| 438 | 429 |
| 439 // Tell the browser the ids for all existing frames. | 430 // Tell the browser the ids for all existing frames. |
| 440 for (LocalFrame* frame : *inspected_frames_) { | 431 for (LocalFrame* frame : *inspected_frames_) { |
| 441 frame->Client()->SetDevToolsFrameId(FrameId(frame)); | 432 frame->Client()->SetDevToolsFrameId(IdentifiersFactory::FrameId(frame)); |
| 442 } | 433 } |
| 443 return Response::OK(); | 434 return Response::OK(); |
| 444 } | 435 } |
| 445 | 436 |
| 446 Response InspectorPageAgent::disable() { | 437 Response InspectorPageAgent::disable() { |
| 447 enabled_ = false; | 438 enabled_ = false; |
| 448 state_->setBoolean(PageAgentState::kPageAgentEnabled, false); | 439 state_->setBoolean(PageAgentState::kPageAgentEnabled, false); |
| 449 state_->remove(PageAgentState::kPageAgentScriptsToEvaluateOnLoad); | 440 state_->remove(PageAgentState::kPageAgentScriptsToEvaluateOnLoad); |
| 450 script_to_evaluate_on_load_once_ = String(); | 441 script_to_evaluate_on_load_once_ = String(); |
| 451 pending_script_to_evaluate_on_load_once_ = String(); | 442 pending_script_to_evaluate_on_load_once_ = String(); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 ? kFrameLoadTypeReloadBypassingCache | 508 ? kFrameLoadTypeReloadBypassingCache |
| 518 : kFrameLoadTypeReload, | 509 : kFrameLoadTypeReload, |
| 519 ClientRedirectPolicy::kNotClientRedirect); | 510 ClientRedirectPolicy::kNotClientRedirect); |
| 520 return Response::OK(); | 511 return Response::OK(); |
| 521 } | 512 } |
| 522 | 513 |
| 523 Response InspectorPageAgent::navigate(const String& url, | 514 Response InspectorPageAgent::navigate(const String& url, |
| 524 Maybe<String> referrer, | 515 Maybe<String> referrer, |
| 525 Maybe<String> transitionType, | 516 Maybe<String> transitionType, |
| 526 String* out_frame_id) { | 517 String* out_frame_id) { |
| 527 *out_frame_id = FrameId(inspected_frames_->Root()); | 518 *out_frame_id = IdentifiersFactory::FrameId(inspected_frames_->Root()); |
| 528 return Response::OK(); | 519 return Response::OK(); |
| 529 } | 520 } |
| 530 | 521 |
| 531 Response InspectorPageAgent::stopLoading() { | 522 Response InspectorPageAgent::stopLoading() { |
| 532 return Response::OK(); | 523 return Response::OK(); |
| 533 } | 524 } |
| 534 | 525 |
| 535 static void CachedResourcesForDocument(Document* document, | 526 static void CachedResourcesForDocument(Document* document, |
| 536 HeapVector<Member<Resource>>& result, | 527 HeapVector<Member<Resource>>& result, |
| 537 bool skip_xhrs) { | 528 bool skip_xhrs) { |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 } | 730 } |
| 740 GetFrontend()->frameNavigated(BuildObjectForFrame(loader->GetFrame())); | 731 GetFrontend()->frameNavigated(BuildObjectForFrame(loader->GetFrame())); |
| 741 } | 732 } |
| 742 | 733 |
| 743 void InspectorPageAgent::FrameAttachedToParent(LocalFrame* frame) { | 734 void InspectorPageAgent::FrameAttachedToParent(LocalFrame* frame) { |
| 744 Frame* parent_frame = frame->Tree().Parent(); | 735 Frame* parent_frame = frame->Tree().Parent(); |
| 745 if (!parent_frame->IsLocalFrame()) | 736 if (!parent_frame->IsLocalFrame()) |
| 746 parent_frame = 0; | 737 parent_frame = 0; |
| 747 std::unique_ptr<SourceLocation> location = | 738 std::unique_ptr<SourceLocation> location = |
| 748 SourceLocation::CaptureWithFullStackTrace(); | 739 SourceLocation::CaptureWithFullStackTrace(); |
| 749 String frame_id = FrameId(frame); | 740 String frame_id = IdentifiersFactory::FrameId(frame); |
| 750 frame->Client()->SetDevToolsFrameId(frame_id); | 741 frame->Client()->SetDevToolsFrameId(frame_id); |
| 751 GetFrontend()->frameAttached( | 742 GetFrontend()->frameAttached( |
| 752 frame_id, FrameId(ToLocalFrame(parent_frame)), | 743 frame_id, IdentifiersFactory::FrameId(ToLocalFrame(parent_frame)), |
| 753 location ? location->BuildInspectorObject() : nullptr); | 744 location ? location->BuildInspectorObject() : nullptr); |
| 754 } | 745 } |
| 755 | 746 |
| 756 void InspectorPageAgent::FrameDetachedFromParent(LocalFrame* frame) { | 747 void InspectorPageAgent::FrameDetachedFromParent(LocalFrame* frame) { |
| 757 GetFrontend()->frameDetached(FrameId(frame)); | 748 GetFrontend()->frameDetached(IdentifiersFactory::FrameId(frame)); |
| 758 } | 749 } |
| 759 | 750 |
| 760 bool InspectorPageAgent::ScreencastEnabled() { | 751 bool InspectorPageAgent::ScreencastEnabled() { |
| 761 return enabled_ && | 752 return enabled_ && |
| 762 state_->booleanProperty(PageAgentState::kScreencastEnabled, false); | 753 state_->booleanProperty(PageAgentState::kScreencastEnabled, false); |
| 763 } | 754 } |
| 764 | 755 |
| 765 void InspectorPageAgent::FrameStartedLoading(LocalFrame* frame, FrameLoadType) { | 756 void InspectorPageAgent::FrameStartedLoading(LocalFrame* frame, FrameLoadType) { |
| 766 GetFrontend()->frameStartedLoading(FrameId(frame)); | 757 GetFrontend()->frameStartedLoading(IdentifiersFactory::FrameId(frame)); |
| 767 } | 758 } |
| 768 | 759 |
| 769 void InspectorPageAgent::FrameStoppedLoading(LocalFrame* frame) { | 760 void InspectorPageAgent::FrameStoppedLoading(LocalFrame* frame) { |
| 770 GetFrontend()->frameStoppedLoading(FrameId(frame)); | 761 GetFrontend()->frameStoppedLoading(IdentifiersFactory::FrameId(frame)); |
| 771 } | 762 } |
| 772 | 763 |
| 773 void InspectorPageAgent::FrameScheduledNavigation( | 764 void InspectorPageAgent::FrameScheduledNavigation( |
| 774 LocalFrame* frame, | 765 LocalFrame* frame, |
| 775 ScheduledNavigation* scheduled_navigation) { | 766 ScheduledNavigation* scheduled_navigation) { |
| 776 GetFrontend()->frameScheduledNavigation( | 767 GetFrontend()->frameScheduledNavigation( |
| 777 FrameId(frame), scheduled_navigation->Delay(), | 768 IdentifiersFactory::FrameId(frame), scheduled_navigation->Delay(), |
| 778 ScheduledNavigationReasonToProtocol(scheduled_navigation->GetReason())); | 769 ScheduledNavigationReasonToProtocol(scheduled_navigation->GetReason())); |
| 779 } | 770 } |
| 780 | 771 |
| 781 void InspectorPageAgent::FrameClearedScheduledNavigation(LocalFrame* frame) { | 772 void InspectorPageAgent::FrameClearedScheduledNavigation(LocalFrame* frame) { |
| 782 GetFrontend()->frameClearedScheduledNavigation(FrameId(frame)); | 773 GetFrontend()->frameClearedScheduledNavigation( |
| 774 IdentifiersFactory::FrameId(frame)); |
| 783 } | 775 } |
| 784 | 776 |
| 785 void InspectorPageAgent::WillRunJavaScriptDialog( | 777 void InspectorPageAgent::WillRunJavaScriptDialog( |
| 786 const String& message, | 778 const String& message, |
| 787 ChromeClient::DialogType dialog_type) { | 779 ChromeClient::DialogType dialog_type) { |
| 788 GetFrontend()->javascriptDialogOpening(message, | 780 GetFrontend()->javascriptDialogOpening(message, |
| 789 DialogTypeToProtocol(dialog_type)); | 781 DialogTypeToProtocol(dialog_type)); |
| 790 GetFrontend()->flush(); | 782 GetFrontend()->flush(); |
| 791 } | 783 } |
| 792 | 784 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 826 } | 818 } |
| 827 | 819 |
| 828 void InspectorPageAgent::WindowCreated(LocalFrame* created) { | 820 void InspectorPageAgent::WindowCreated(LocalFrame* created) { |
| 829 if (enabled_ && | 821 if (enabled_ && |
| 830 state_->booleanProperty(PageAgentState::kAutoAttachToCreatedPages, false)) | 822 state_->booleanProperty(PageAgentState::kAutoAttachToCreatedPages, false)) |
| 831 client_->WaitForCreateWindow(created); | 823 client_->WaitForCreateWindow(created); |
| 832 } | 824 } |
| 833 | 825 |
| 834 std::unique_ptr<protocol::Page::Frame> InspectorPageAgent::BuildObjectForFrame( | 826 std::unique_ptr<protocol::Page::Frame> InspectorPageAgent::BuildObjectForFrame( |
| 835 LocalFrame* frame) { | 827 LocalFrame* frame) { |
| 828 KURL nofragment_document_url(frame->GetDocument()->Url()); |
| 829 nofragment_document_url.RemoveFragmentIdentifier(); |
| 836 std::unique_ptr<protocol::Page::Frame> frame_object = | 830 std::unique_ptr<protocol::Page::Frame> frame_object = |
| 837 protocol::Page::Frame::create() | 831 protocol::Page::Frame::create() |
| 838 .setId(FrameId(frame)) | 832 .setId(IdentifiersFactory::FrameId(frame)) |
| 839 .setLoaderId( | 833 .setLoaderId( |
| 840 IdentifiersFactory::LoaderId(frame->Loader().GetDocumentLoader())) | 834 IdentifiersFactory::LoaderId(frame->Loader().GetDocumentLoader())) |
| 841 .setUrl(UrlWithoutFragment(frame->GetDocument()->Url()).GetString()) | 835 .setUrl(nofragment_document_url.GetString()) |
| 842 .setMimeType(frame->Loader().GetDocumentLoader()->ResponseMIMEType()) | 836 .setMimeType(frame->Loader().GetDocumentLoader()->ResponseMIMEType()) |
| 843 .setSecurityOrigin( | 837 .setSecurityOrigin( |
| 844 frame->GetDocument()->GetSecurityOrigin()->ToRawString()) | 838 frame->GetDocument()->GetSecurityOrigin()->ToRawString()) |
| 845 .build(); | 839 .build(); |
| 846 // FIXME: This doesn't work for OOPI. | 840 // FIXME: This doesn't work for OOPI. |
| 847 Frame* parent_frame = frame->Tree().Parent(); | 841 Frame* parent_frame = frame->Tree().Parent(); |
| 848 if (parent_frame && parent_frame->IsLocalFrame()) | 842 if (parent_frame && parent_frame->IsLocalFrame()) { |
| 849 frame_object->setParentId(FrameId(ToLocalFrame(parent_frame))); | 843 frame_object->setParentId( |
| 844 IdentifiersFactory::FrameId(ToLocalFrame(parent_frame))); |
| 845 } |
| 850 if (frame->DeprecatedLocalOwner()) { | 846 if (frame->DeprecatedLocalOwner()) { |
| 851 AtomicString name = frame->DeprecatedLocalOwner()->GetNameAttribute(); | 847 AtomicString name = frame->DeprecatedLocalOwner()->GetNameAttribute(); |
| 852 if (name.IsEmpty()) | 848 if (name.IsEmpty()) |
| 853 name = frame->DeprecatedLocalOwner()->getAttribute(HTMLNames::idAttr); | 849 name = frame->DeprecatedLocalOwner()->getAttribute(HTMLNames::idAttr); |
| 854 frame_object->setName(name); | 850 frame_object->setName(name); |
| 855 } | 851 } |
| 856 if (frame->GetDocument() && frame->GetDocument()->Loader() && | 852 if (frame->GetDocument() && frame->GetDocument()->Loader() && |
| 857 !frame->GetDocument()->Loader()->UnreachableURL().IsEmpty()) { | 853 !frame->GetDocument()->Loader()->UnreachableURL().IsEmpty()) { |
| 858 frame_object->setUnreachableUrl( | 854 frame_object->setUnreachableUrl( |
| 859 frame->GetDocument()->Loader()->UnreachableURL().GetString()); | 855 frame->GetDocument()->Loader()->UnreachableURL().GetString()); |
| 860 } | 856 } |
| 861 return frame_object; | 857 return frame_object; |
| 862 } | 858 } |
| 863 | 859 |
| 864 std::unique_ptr<protocol::Page::FrameResourceTree> | 860 std::unique_ptr<protocol::Page::FrameResourceTree> |
| 865 InspectorPageAgent::BuildObjectForFrameTree(LocalFrame* frame) { | 861 InspectorPageAgent::BuildObjectForFrameTree(LocalFrame* frame) { |
| 866 std::unique_ptr<protocol::Page::Frame> frame_object = | 862 std::unique_ptr<protocol::Page::Frame> frame_object = |
| 867 BuildObjectForFrame(frame); | 863 BuildObjectForFrame(frame); |
| 868 std::unique_ptr<protocol::Array<protocol::Page::FrameResource>> subresources = | 864 std::unique_ptr<protocol::Array<protocol::Page::FrameResource>> subresources = |
| 869 protocol::Array<protocol::Page::FrameResource>::create(); | 865 protocol::Array<protocol::Page::FrameResource>::create(); |
| 870 | 866 |
| 871 HeapVector<Member<Resource>> all_resources = | 867 HeapVector<Member<Resource>> all_resources = |
| 872 CachedResourcesForFrame(frame, true); | 868 CachedResourcesForFrame(frame, true); |
| 873 for (Resource* cached_resource : all_resources) { | 869 for (Resource* cached_resource : all_resources) { |
| 870 KURL nofragment_cached_resource_url(cached_resource->Url()); |
| 871 nofragment_cached_resource_url.RemoveFragmentIdentifier(); |
| 874 std::unique_ptr<protocol::Page::FrameResource> resource_object = | 872 std::unique_ptr<protocol::Page::FrameResource> resource_object = |
| 875 protocol::Page::FrameResource::create() | 873 protocol::Page::FrameResource::create() |
| 876 .setUrl(UrlWithoutFragment(cached_resource->Url()).GetString()) | 874 .setUrl(nofragment_cached_resource_url.GetString()) |
| 877 .setType(CachedResourceTypeJson(*cached_resource)) | 875 .setType(CachedResourceTypeJson(*cached_resource)) |
| 878 .setMimeType(cached_resource->GetResponse().MimeType()) | 876 .setMimeType(cached_resource->GetResponse().MimeType()) |
| 879 .setContentSize(cached_resource->GetResponse().DecodedBodyLength()) | 877 .setContentSize(cached_resource->GetResponse().DecodedBodyLength()) |
| 880 .build(); | 878 .build(); |
| 881 double last_modified = cached_resource->GetResponse().LastModified(); | 879 double last_modified = cached_resource->GetResponse().LastModified(); |
| 882 if (!std::isnan(last_modified)) | 880 if (!std::isnan(last_modified)) |
| 883 resource_object->setLastModified(last_modified); | 881 resource_object->setLastModified(last_modified); |
| 884 if (cached_resource->WasCanceled()) | 882 if (cached_resource->WasCanceled()) |
| 885 resource_object->setCanceled(true); | 883 resource_object->setCanceled(true); |
| 886 else if (cached_resource->GetStatus() == ResourceStatus::kLoadError) | 884 else if (cached_resource->GetStatus() == ResourceStatus::kLoadError) |
| 887 resource_object->setFailed(true); | 885 resource_object->setFailed(true); |
| 888 subresources->addItem(std::move(resource_object)); | 886 subresources->addItem(std::move(resource_object)); |
| 889 } | 887 } |
| 890 | 888 |
| 891 HeapVector<Member<Document>> all_imports = | 889 HeapVector<Member<Document>> all_imports = |
| 892 InspectorPageAgent::ImportsForFrame(frame); | 890 InspectorPageAgent::ImportsForFrame(frame); |
| 893 for (Document* import : all_imports) { | 891 for (Document* import : all_imports) { |
| 892 KURL nofragment_import_url(import->Url()); |
| 893 nofragment_import_url.RemoveFragmentIdentifier(); |
| 894 std::unique_ptr<protocol::Page::FrameResource> resource_object = | 894 std::unique_ptr<protocol::Page::FrameResource> resource_object = |
| 895 protocol::Page::FrameResource::create() | 895 protocol::Page::FrameResource::create() |
| 896 .setUrl(UrlWithoutFragment(import->Url()).GetString()) | 896 .setUrl(nofragment_import_url.GetString()) |
| 897 .setType(ResourceTypeJson(InspectorPageAgent::kDocumentResource)) | 897 .setType(ResourceTypeJson(InspectorPageAgent::kDocumentResource)) |
| 898 .setMimeType(import->SuggestedMIMEType()) | 898 .setMimeType(import->SuggestedMIMEType()) |
| 899 .build(); | 899 .build(); |
| 900 subresources->addItem(std::move(resource_object)); | 900 subresources->addItem(std::move(resource_object)); |
| 901 } | 901 } |
| 902 | 902 |
| 903 std::unique_ptr<protocol::Page::FrameResourceTree> result = | 903 std::unique_ptr<protocol::Page::FrameResourceTree> result = |
| 904 protocol::Page::FrameResourceTree::create() | 904 protocol::Page::FrameResourceTree::create() |
| 905 .setFrame(std::move(frame_object)) | 905 .setFrame(std::move(frame_object)) |
| 906 .setResources(std::move(subresources)) | 906 .setResources(std::move(subresources)) |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1014 return Response::OK(); | 1014 return Response::OK(); |
| 1015 } | 1015 } |
| 1016 | 1016 |
| 1017 DEFINE_TRACE(InspectorPageAgent) { | 1017 DEFINE_TRACE(InspectorPageAgent) { |
| 1018 visitor->Trace(inspected_frames_); | 1018 visitor->Trace(inspected_frames_); |
| 1019 visitor->Trace(inspector_resource_content_loader_); | 1019 visitor->Trace(inspector_resource_content_loader_); |
| 1020 InspectorBaseAgent::Trace(visitor); | 1020 InspectorBaseAgent::Trace(visitor); |
| 1021 } | 1021 } |
| 1022 | 1022 |
| 1023 } // namespace blink | 1023 } // namespace blink |
| OLD | NEW |