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

Side by Side Diff: third_party/WebKit/Source/core/inspector/InspectorResourceAgent.cpp

Issue 1752213003: DevTools: migrate protocol dispatcher off RefPtr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebaselined 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 /* 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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 OwnPtr<protocol::DictionaryValue> headersObject = protocol::DictionaryValue: :create(); 114 OwnPtr<protocol::DictionaryValue> headersObject = protocol::DictionaryValue: :create();
115 for (const auto& header : headers) 115 for (const auto& header : headers)
116 headersObject->setString(header.key.string(), header.value); 116 headersObject->setString(header.key.string(), header.value);
117 protocol::ErrorSupport errors; 117 protocol::ErrorSupport errors;
118 return protocol::Network::Headers::parse(headersObject.get(), &errors); 118 return protocol::Network::Headers::parse(headersObject.get(), &errors);
119 } 119 }
120 120
121 class InspectorFileReaderLoaderClient final : public FileReaderLoaderClient { 121 class InspectorFileReaderLoaderClient final : public FileReaderLoaderClient {
122 WTF_MAKE_NONCOPYABLE(InspectorFileReaderLoaderClient); 122 WTF_MAKE_NONCOPYABLE(InspectorFileReaderLoaderClient);
123 public: 123 public:
124 InspectorFileReaderLoaderClient(PassRefPtr<BlobDataHandle> blob, PassOwnPtr< TextResourceDecoder> decoder, PassRefPtr<GetResponseBodyCallback> callback) 124 InspectorFileReaderLoaderClient(PassRefPtr<BlobDataHandle> blob, PassOwnPtr< TextResourceDecoder> decoder, PassOwnPtr<GetResponseBodyCallback> callback)
125 : m_blob(blob) 125 : m_blob(blob)
126 , m_decoder(decoder) 126 , m_decoder(decoder)
127 , m_callback(callback) 127 , m_callback(callback)
128 { 128 {
129 m_loader = FileReaderLoader::create(FileReaderLoader::ReadByClient, this ); 129 m_loader = FileReaderLoader::create(FileReaderLoader::ReadByClient, this );
130 } 130 }
131 131
132 ~InspectorFileReaderLoaderClient() override { } 132 ~InspectorFileReaderLoaderClient() override { }
133 133
134 void start(ExecutionContext* executionContext) 134 void start(ExecutionContext* executionContext)
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 175
176 private: 176 private:
177 void dispose() 177 void dispose()
178 { 178 {
179 m_rawData.clear(); 179 m_rawData.clear();
180 delete this; 180 delete this;
181 } 181 }
182 182
183 RefPtr<BlobDataHandle> m_blob; 183 RefPtr<BlobDataHandle> m_blob;
184 OwnPtr<TextResourceDecoder> m_decoder; 184 OwnPtr<TextResourceDecoder> m_decoder;
185 RefPtr<GetResponseBodyCallback> m_callback; 185 OwnPtr<GetResponseBodyCallback> m_callback;
186 OwnPtr<FileReaderLoader> m_loader; 186 OwnPtr<FileReaderLoader> m_loader;
187 OwnPtr<ArrayBufferBuilder> m_rawData; 187 OwnPtr<ArrayBufferBuilder> m_rawData;
188 }; 188 };
189 189
190 KURL urlWithoutFragment(const KURL& url) 190 KURL urlWithoutFragment(const KURL& url)
191 { 191 {
192 KURL result = url; 192 KURL result = url;
193 result.removeFragmentIdentifier(); 193 result.removeFragmentIdentifier();
194 return result; 194 return result;
195 } 195 }
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 void InspectorResourceAgent::setUserAgentOverride(ErrorString*, const String& us erAgent) 893 void InspectorResourceAgent::setUserAgentOverride(ErrorString*, const String& us erAgent)
894 { 894 {
895 m_state->setString(ResourceAgentState::userAgentOverride, userAgent); 895 m_state->setString(ResourceAgentState::userAgentOverride, userAgent);
896 } 896 }
897 897
898 void InspectorResourceAgent::setExtraHTTPHeaders(ErrorString*, const PassOwnPtr< protocol::Network::Headers> headers) 898 void InspectorResourceAgent::setExtraHTTPHeaders(ErrorString*, const PassOwnPtr< protocol::Network::Headers> headers)
899 { 899 {
900 m_state->setObject(ResourceAgentState::extraRequestHeaders, headers->seriali ze()); 900 m_state->setObject(ResourceAgentState::extraRequestHeaders, headers->seriali ze());
901 } 901 }
902 902
903 bool InspectorResourceAgent::getResponseBodyBlob(const String& requestId, PassRe fPtr<GetResponseBodyCallback> callback) 903 bool InspectorResourceAgent::canGetResponseBodyBlob(const String& requestId)
904 { 904 {
905 NetworkResourcesData::ResourceData const* resourceData = m_resourcesData->da ta(requestId); 905 NetworkResourcesData::ResourceData const* resourceData = m_resourcesData->da ta(requestId);
906 if (!resourceData) 906 BlobDataHandle* blob = resourceData ? resourceData->downloadedFileBlob() : n ullptr;
907 if (!blob)
907 return false; 908 return false;
908 if (BlobDataHandle* blob = resourceData->downloadedFileBlob()) { 909 LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, resourc eData->frameId());
909 if (LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, resourceData->frameId())) { 910 return frame && frame->document();
910 if (Document* document = frame->document()) {
911 InspectorFileReaderLoaderClient* client = new InspectorFileReade rLoaderClient(blob, InspectorPageAgent::createResourceTextDecoder(resourceData-> mimeType(), resourceData->textEncodingName()), callback);
912 client->start(document);
913 return true;
914 }
915 }
916 }
917 return false;
918 } 911 }
919 912
913 void InspectorResourceAgent::getResponseBodyBlob(const String& requestId, PassOw nPtr<GetResponseBodyCallback> callback)
914 {
915 NetworkResourcesData::ResourceData const* resourceData = m_resourcesData->da ta(requestId);
916 BlobDataHandle* blob = resourceData->downloadedFileBlob();
917 LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, resourc eData->frameId());
918 Document* document = frame->document();
919 InspectorFileReaderLoaderClient* client = new InspectorFileReaderLoaderClien t(blob, InspectorPageAgent::createResourceTextDecoder(resourceData->mimeType(), resourceData->textEncodingName()), callback);
920 client->start(document);
921 }
920 922
921 void InspectorResourceAgent::getResponseBody(ErrorString* errorString, const Str ing& requestId, PassRefPtr<GetResponseBodyCallback> passCallback) 923 void InspectorResourceAgent::getResponseBody(ErrorString* errorString, const Str ing& requestId, PassOwnPtr<GetResponseBodyCallback> passCallback)
922 { 924 {
923 RefPtr<GetResponseBodyCallback> callback = passCallback; 925 OwnPtr<GetResponseBodyCallback> callback = passCallback;
924 NetworkResourcesData::ResourceData const* resourceData = m_resourcesData->da ta(requestId); 926 NetworkResourcesData::ResourceData const* resourceData = m_resourcesData->da ta(requestId);
925 if (!resourceData) { 927 if (!resourceData) {
926 callback->sendFailure("No resource with given identifier found"); 928 callback->sendFailure("No resource with given identifier found");
927 return; 929 return;
928 } 930 }
929 931
930 // XHR with ResponseTypeBlob should be returned as blob. 932 // XHR with ResponseTypeBlob should be returned as blob.
931 if (resourceData->xhrReplayData() && getResponseBodyBlob(requestId, callback )) 933 if (resourceData->xhrReplayData() && canGetResponseBodyBlob(requestId)) {
934 getResponseBodyBlob(requestId, callback.release());
932 return; 935 return;
936 }
933 937
934 if (resourceData->hasContent()) { 938 if (resourceData->hasContent()) {
935 callback->sendSuccess(resourceData->content(), resourceData->base64Encod ed()); 939 callback->sendSuccess(resourceData->content(), resourceData->base64Encod ed());
936 return; 940 return;
937 } 941 }
938 942
939 if (resourceData->isContentEvicted()) { 943 if (resourceData->isContentEvicted()) {
940 callback->sendFailure("Request content was evicted from inspector cache" ); 944 callback->sendFailure("Request content was evicted from inspector cache" );
941 return; 945 return;
942 } 946 }
943 947
944 if (resourceData->buffer() && !resourceData->textEncodingName().isNull()) { 948 if (resourceData->buffer() && !resourceData->textEncodingName().isNull()) {
945 String content; 949 String content;
946 if (InspectorPageAgent::sharedBufferContent(resourceData->buffer(), reso urceData->textEncodingName(), false, &content)) { 950 if (InspectorPageAgent::sharedBufferContent(resourceData->buffer(), reso urceData->textEncodingName(), false, &content)) {
947 callback->sendSuccess(content, false); 951 callback->sendSuccess(content, false);
948 return; 952 return;
949 } 953 }
950 } 954 }
951 955
952 if (resourceData->cachedResource()) { 956 if (resourceData->cachedResource()) {
953 String content; 957 String content;
954 bool base64Encoded = false; 958 bool base64Encoded = false;
955 if (InspectorPageAgent::cachedResourceContent(resourceData->cachedResour ce(), &content, &base64Encoded)) { 959 if (InspectorPageAgent::cachedResourceContent(resourceData->cachedResour ce(), &content, &base64Encoded)) {
956 callback->sendSuccess(content, base64Encoded); 960 callback->sendSuccess(content, base64Encoded);
957 return; 961 return;
958 } 962 }
959 } 963 }
960 964
961 if (getResponseBodyBlob(requestId, callback)) 965 if (canGetResponseBodyBlob(requestId)) {
966 getResponseBodyBlob(requestId, callback.release());
962 return; 967 return;
968 }
963 969
964 callback->sendFailure("No data found for resource with given identifier"); 970 callback->sendFailure("No data found for resource with given identifier");
965 } 971 }
966 972
967 void InspectorResourceAgent::addBlockedURL(ErrorString*, const String& url) 973 void InspectorResourceAgent::addBlockedURL(ErrorString*, const String& url)
968 { 974 {
969 protocol::DictionaryValue* blockedURLs = m_state->getObject(ResourceAgentSta te::blockedURLs); 975 protocol::DictionaryValue* blockedURLs = m_state->getObject(ResourceAgentSta te::blockedURLs);
970 if (!blockedURLs) { 976 if (!blockedURLs) {
971 OwnPtr<protocol::DictionaryValue> newList = protocol::DictionaryValue::c reate(); 977 OwnPtr<protocol::DictionaryValue> newList = protocol::DictionaryValue::c reate();
972 blockedURLs = newList.get(); 978 blockedURLs = newList.get();
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1102 , m_removeFinishedReplayXHRTimer(this, &InspectorResourceAgent::removeFinish edReplayXHRFired) 1108 , m_removeFinishedReplayXHRTimer(this, &InspectorResourceAgent::removeFinish edReplayXHRFired)
1103 { 1109 {
1104 } 1110 }
1105 1111
1106 bool InspectorResourceAgent::shouldForceCORSPreflight() 1112 bool InspectorResourceAgent::shouldForceCORSPreflight()
1107 { 1113 {
1108 return m_state->booleanProperty(ResourceAgentState::cacheDisabled, false); 1114 return m_state->booleanProperty(ResourceAgentState::cacheDisabled, false);
1109 } 1115 }
1110 1116
1111 } // namespace blink 1117 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698