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

Unified Diff: third_party/WebKit/Source/core/loader/resource/ScriptResource.cpp

Issue 2724673002: [WIP] Introduce ScriptResourceData
Patch Set: Compile fix Created 3 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/loader/resource/ScriptResource.cpp
diff --git a/third_party/WebKit/Source/core/loader/resource/ScriptResource.cpp b/third_party/WebKit/Source/core/loader/resource/ScriptResource.cpp
index e8e02cdbdf97fb24befc33415d3e7ad249f60dd3..6e5f326fb023cef3249833af428ae4bc1b731cd9 100644
--- a/third_party/WebKit/Source/core/loader/resource/ScriptResource.cpp
+++ b/third_party/WebKit/Source/core/loader/resource/ScriptResource.cpp
@@ -36,8 +36,6 @@
#include "platform/loader/fetch/IntegrityMetadata.h"
#include "platform/loader/fetch/ResourceClientWalker.h"
#include "platform/loader/fetch/ResourceFetcher.h"
-#include "platform/loader/fetch/TextResourceDecoderOptions.h"
-#include "platform/network/mime/MIMETypeRegistry.h"
namespace blink {
@@ -78,46 +76,38 @@ void ScriptResource::OnMemoryDump(WebMemoryDumpLevelOfDetail level_of_detail,
Resource::OnMemoryDump(level_of_detail, memory_dump);
const String name = GetMemoryDumpName() + "/decoded_script";
auto dump = memory_dump->CreateMemoryAllocatorDump(name);
- dump->AddScalar("size", "bytes", source_text_.CharactersSizeInBytes());
+ dump->AddScalar("size", "bytes", DecodedSize());
memory_dump->AddSuballocation(
dump->Guid(), String(WTF::Partitions::kAllocatedObjectPoolName));
}
-const String& ScriptResource::SourceText() {
+const ScriptResourceData* ScriptResource::ResourceData() {
DCHECK(IsLoaded());
+ if (script_data_)
+ return script_data_;
- if (source_text_.IsNull() && Data()) {
+ AtomicString atomic_source_text;
+ if (Data()) {
String source_text = DecodedText();
ClearData();
SetDecodedSize(source_text.CharactersSizeInBytes());
- source_text_ = AtomicString(source_text);
+ atomic_source_text = AtomicString(source_text);
}
- return source_text_;
-}
+ script_data_ = new ScriptResourceData(
+ Url(), ResourceRequest().GetFetchCredentialsMode(), GetResponse(),
+ ErrorOccurred(), atomic_source_text, CacheHandler(), GetCORSStatus());
-void ScriptResource::DestroyDecodedDataForFailedRevalidation() {
- source_text_ = AtomicString();
+ return script_data_;
}
-// static
-bool ScriptResource::MimeTypeAllowedByNosniff(
- const ResourceResponse& response) {
- return ParseContentTypeOptionsHeader(
- response.HttpHeaderField(HTTPNames::X_Content_Type_Options)) !=
- kContentTypeOptionsNosniff ||
- MIMETypeRegistry::IsSupportedJavaScriptMIMEType(
- response.HttpContentType());
+void ScriptResource::DestroyDecodedDataForFailedRevalidation() {
+ script_data_ = nullptr;
}
-AccessControlStatus ScriptResource::CalculateAccessControlStatus() const {
- if (GetCORSStatus() == CORSStatus::kServiceWorkerOpaque)
- return kOpaqueResource;
-
- if (IsSameOriginOrCORSSuccessful())
- return kSharableCrossOrigin;
-
- return kNotSharableCrossOrigin;
+DEFINE_TRACE(ScriptResource) {
+ visitor->Trace(script_data_);
+ TextResource::Trace(visitor);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698