summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/loader/resource
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-24 12:15:48 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 13:30:04 +0000
commitb014812705fc80bff0a5c120dfcef88f349816dc (patch)
tree25a2e2d9fa285f1add86aa333389a839f81a39ae /chromium/third_party/blink/renderer/core/loader/resource
parent9f4560b1027ae06fdb497023cdcaf91b8511fa74 (diff)
downloadqtwebengine-chromium-b014812705fc80bff0a5c120dfcef88f349816dc.tar.gz
BASELINE: Update Chromium to 68.0.3440.125
Change-Id: I23f19369e01f688e496f5bf179abb521ad73874f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/loader/resource')
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/font_resource.cc8
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/font_resource.h2
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/image_resource.cc9
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/image_resource.h2
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.cc35
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.h12
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/image_resource_info.h4
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/image_resource_test.cc35
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser_test.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/loader/resource/script_resource.cc27
10 files changed, 100 insertions, 38 deletions
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/font_resource.cc b/chromium/third_party/blink/renderer/core/loader/resource/font_resource.cc
index 5691f6eadb8..28ac34cc174 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/font_resource.cc
+++ b/chromium/third_party/blink/renderer/core/loader/resource/font_resource.cc
@@ -119,10 +119,12 @@ void FontResource::SetRevalidatingRequest(const ResourceRequest& request) {
Resource::SetRevalidatingRequest(request);
}
-void FontResource::StartLoadLimitTimers(
+void FontResource::StartLoadLimitTimersIfNecessary(
base::SingleThreadTaskRunner* task_runner) {
- DCHECK(IsLoading());
- DCHECK_EQ(load_limit_state_, kLoadNotStarted);
+ if (!IsLoading() || load_limit_state_ != kLoadNotStarted)
+ return;
+ DCHECK(!font_load_short_limit_.IsActive());
+ DCHECK(!font_load_long_limit_.IsActive());
load_limit_state_ = kUnderLimit;
font_load_short_limit_ = PostDelayedCancellableTask(
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/font_resource.h b/chromium/third_party/blink/renderer/core/loader/resource/font_resource.h
index d64559e8b04..faae82b62c7 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/font_resource.h
+++ b/chromium/third_party/blink/renderer/core/loader/resource/font_resource.h
@@ -54,7 +54,7 @@ class CORE_EXPORT FontResource final : public Resource {
void SetRevalidatingRequest(const ResourceRequest&) override;
void AllClientsAndObserversRemoved() override;
- void StartLoadLimitTimers(base::SingleThreadTaskRunner*);
+ void StartLoadLimitTimersIfNecessary(base::SingleThreadTaskRunner*);
String OtsParsingMessage() const { return ots_parsing_message_; }
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/image_resource.cc b/chromium/third_party/blink/renderer/core/loader/resource/image_resource.cc
index b869c662aaf..941af988447 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/image_resource.cc
+++ b/chromium/third_party/blink/renderer/core/loader/resource/image_resource.cc
@@ -111,10 +111,10 @@ class ImageResource::ImageResourceInfoImpl final
bool HasCacheControlNoStoreHeader() const override {
return resource_->HasCacheControlNoStoreHeader();
}
- Optional<ResourceError> GetResourceError() const override {
+ base::Optional<ResourceError> GetResourceError() const override {
if (resource_->LoadFailedOrCanceled())
return resource_->GetResourceError();
- return WTF::nullopt;
+ return base::nullopt;
}
void SetDecodedSize(size_t size) override { resource_->SetDecodedSize(size); }
@@ -382,8 +382,7 @@ void ImageResource::DecodeError(bool all_data_received) {
if (!all_data_received && Loader()) {
// Observers are notified via ImageResource::finish().
// TODO(hiroshige): Do not call didFinishLoading() directly.
- Loader()->DidFinishLoading(CurrentTimeTicksInSeconds(), size, size, size,
- false);
+ Loader()->DidFinishLoading(CurrentTimeTicks(), size, size, size, false);
} else {
auto result = GetContent()->UpdateImage(
nullptr, GetStatus(),
@@ -405,7 +404,7 @@ void ImageResource::NotifyStartLoad() {
GetContent()->NotifyStartLoad();
}
-void ImageResource::Finish(double load_finish_time,
+void ImageResource::Finish(TimeTicks load_finish_time,
base::SingleThreadTaskRunner* task_runner) {
if (multipart_parser_) {
if (!ErrorOccurred())
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/image_resource.h b/chromium/third_party/blink/renderer/core/loader/resource/image_resource.h
index 5f9de3fa72b..2fedb175215 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/image_resource.h
+++ b/chromium/third_party/blink/renderer/core/loader/resource/image_resource.h
@@ -88,7 +88,7 @@ class CORE_EXPORT ImageResource final
void ResponseReceived(const ResourceResponse&,
std::unique_ptr<WebDataConsumerHandle>) override;
void AppendData(const char*, size_t) override;
- void Finish(double finish_time, base::SingleThreadTaskRunner*) override;
+ void Finish(TimeTicks finish_time, base::SingleThreadTaskRunner*) override;
void FinishAsError(const ResourceError&,
base::SingleThreadTaskRunner*) override;
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.cc b/chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.cc
index d87d87ea33c..cea5599d458 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.cc
+++ b/chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.cc
@@ -16,6 +16,7 @@
#include "third_party/blink/renderer/platform/histogram.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
#include "third_party/blink/renderer/platform/network/http_parsers.h"
+#include "third_party/blink/renderer/platform/network/mime/mime_type_registry.h"
#include "third_party/blink/renderer/platform/shared_buffer.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
@@ -52,8 +53,8 @@ class NullImageResourceInfo final
return true;
}
bool HasCacheControlNoStoreHeader() const override { return false; }
- Optional<ResourceError> GetResourceError() const override {
- return WTF::nullopt;
+ base::Optional<ResourceError> GetResourceError() const override {
+ return base::nullopt;
}
void SetDecodedSize(size_t) override {}
@@ -420,7 +421,7 @@ ImageResourceContent::UpdateImageResult ImageResourceContent::UpdateImage(
#if DCHECK_IS_ON()
DCHECK(!is_update_image_being_called_);
- AutoReset<bool> scope(&is_update_image_being_called_, true);
+ base::AutoReset<bool> scope(&is_update_image_being_called_, true);
#endif
CHECK_NE(GetContentStatus(), ResourceStatus::kNotStarted);
@@ -509,6 +510,32 @@ ImageResourceContent::UpdateImageResult ImageResourceContent::UpdateImage(
return UpdateImageResult::kNoDecodeError;
}
+// Return true if the image type is one of the hard-coded 'modern' image
+// formats.
+// TODO(crbug.com/838263): Support site-defined list of acceptable formats
+// through feature policy declarations.
+bool ImageResourceContent::IsAcceptableContentType() {
+ AtomicString mime_type = GetResponse().HttpContentType();
+ // If this was loaded from disk, there is no mime type. Return true for now.
+ if (mime_type.IsNull())
+ return true;
+ return MIMETypeRegistry::IsModernImageMIMEType(mime_type);
+}
+
+// Return true if the image content is well-compressed (and not full of
+// extraneous metadata). This is currently defined as no using more than 10 bits
+// per pixel of image data.
+// TODO(crbug.com/838263): Support site-defined bit-per-pixel ratio through
+// feature policy declarations.
+bool ImageResourceContent::IsAcceptableCompressionRatio() {
+ uint64_t pixels = IntrinsicSize(kDoNotRespectImageOrientation).Area();
+ if (!pixels)
+ return true;
+ long long resource_length = GetResponse().DecodedBodyLength();
+ // Allow no more than 10 bits per compressed pixel
+ return (double)resource_length / pixels <= 1.25;
+}
+
void ImageResourceContent::DecodedSizeChangedTo(const blink::Image* image,
size_t new_size) {
if (!image || image != image_)
@@ -628,7 +655,7 @@ const ResourceResponse& ImageResourceContent::GetResponse() const {
return info_->GetResponse();
}
-Optional<ResourceError> ImageResourceContent::GetResourceError() const {
+base::Optional<ResourceError> ImageResourceContent::GetResourceError() const {
return info_->GetResourceError();
}
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.h b/chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.h
index 66b8c3f0569..ab956561062 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.h
+++ b/chromium/third_party/blink/renderer/core/loader/resource/image_resource_content.h
@@ -6,6 +6,7 @@
#define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_RESOURCE_IMAGE_RESOURCE_CONTENT_H_
#include <memory>
+#include "base/auto_reset.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/loader/resource/image_resource_observer.h"
#include "third_party/blink/renderer/platform/geometry/int_rect.h"
@@ -16,7 +17,6 @@
#include "third_party/blink/renderer/platform/loader/fetch/resource_load_priority.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_status.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/auto_reset.h"
#include "third_party/blink/renderer/platform/wtf/hash_counted_set.h"
#include "third_party/blink/renderer/platform/wtf/hash_map.h"
@@ -112,7 +112,7 @@ class CORE_EXPORT ImageResourceContent final
const KURL& Url() const;
bool IsAccessAllowed(const SecurityOrigin*);
const ResourceResponse& GetResponse() const;
- Optional<ResourceError> GetResourceError() const;
+ base::Optional<ResourceError> GetResourceError() const;
// DEPRECATED: ImageResourceContents consumers shouldn't need to worry about
// whether the underlying Resource is being revalidated.
bool IsCacheValidator() const;
@@ -176,6 +176,12 @@ class CORE_EXPORT ImageResourceContent final
return is_refetchable_data_from_disk_cache_;
}
+ // Optimized image policies: These methods are used to determine whether the
+ // image resource violates any of the image policies in effect on the current
+ // page.
+ bool IsAcceptableContentType();
+ bool IsAcceptableCompressionRatio();
+
private:
using CanDeferInvalidation = ImageResourceObserver::CanDeferInvalidation;
@@ -200,7 +206,7 @@ class CORE_EXPORT ImageResourceContent final
void MarkObserverFinished(ImageResourceObserver*);
void UpdateToLoadedContentStatus(ResourceStatus);
- class ProhibitAddRemoveObserverInScope : public AutoReset<bool> {
+ class ProhibitAddRemoveObserverInScope : public base::AutoReset<bool> {
public:
ProhibitAddRemoveObserverInScope(const ImageResourceContent* content)
: AutoReset(&content->is_add_remove_observer_prohibited_, true) {}
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/image_resource_info.h b/chromium/third_party/blink/renderer/core/loader/resource/image_resource_info.h
index bedf300abe6..bd48546a49b 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/image_resource_info.h
+++ b/chromium/third_party/blink/renderer/core/loader/resource/image_resource_info.h
@@ -5,6 +5,7 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_RESOURCE_IMAGE_RESOURCE_INFO_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_RESOURCE_IMAGE_RESOURCE_INFO_H_
+#include "base/optional.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/platform/heap/handle.h"
#include "third_party/blink/renderer/platform/heap/heap.h"
@@ -12,7 +13,6 @@
#include "third_party/blink/renderer/platform/loader/fetch/resource_status.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/wtf/forward.h"
-#include "third_party/blink/renderer/platform/wtf/optional.h"
namespace blink {
@@ -43,7 +43,7 @@ class CORE_EXPORT ImageResourceInfo : public GarbageCollectedMixin {
const SecurityOrigin*,
DoesCurrentFrameHaveSingleSecurityOrigin) const = 0;
virtual bool HasCacheControlNoStoreHeader() const = 0;
- virtual Optional<ResourceError> GetResourceError() const = 0;
+ virtual base::Optional<ResourceError> GetResourceError() const = 0;
// TODO(hiroshige): Remove this once MemoryCache becomes further weaker.
virtual void SetDecodedSize(size_t) = 0;
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/image_resource_test.cc b/chromium/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
index 5cdb96946ac..75553a8bfa9 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
+++ b/chromium/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
@@ -226,8 +226,8 @@ void TestThatReloadIsStartedThenServeReload(
image_resource->Loader()->DidReceiveResponse(WrappedResourceResponse(
ResourceResponse(test_url, "image/jpeg", kDataLength)));
image_resource->Loader()->DidReceiveData(data, kDataLength);
- image_resource->Loader()->DidFinishLoading(0.0, kDataLength, kDataLength,
- kDataLength, false);
+ image_resource->Loader()->DidFinishLoading(TimeTicks(), kDataLength,
+ kDataLength, kDataLength, false);
// Checks |imageResource|'s status after reloading.
EXPECT_EQ(ResourceStatus::kCached, image_resource->GetStatus());
@@ -281,7 +281,7 @@ void TestThatIsPlaceholderRequestAndServeResponse(
reinterpret_cast<const char*>(kJpegImage),
kJpegImageSubrangeWithDimensionsLength);
image_resource->Loader()->DidFinishLoading(
- 0.0, kJpegImageSubrangeWithDimensionsLength,
+ TimeTicks(), kJpegImageSubrangeWithDimensionsLength,
kJpegImageSubrangeWithDimensionsLength,
kJpegImageSubrangeWithDimensionsLength, false);
@@ -320,8 +320,9 @@ void TestThatIsNotPlaceholderRequestAndServeResponse(
ResourceResponse(url, "image/jpeg", sizeof(kJpegImage))));
image_resource->Loader()->DidReceiveData(
reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
- image_resource->Loader()->DidFinishLoading(
- 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage), false);
+ image_resource->Loader()->DidFinishLoading(TimeTicks(), sizeof(kJpegImage),
+ sizeof(kJpegImage),
+ sizeof(kJpegImage), false);
// Checks that |imageResource| is successfully loaded,
// showing a non-placeholder image.
@@ -414,7 +415,7 @@ TEST(ImageResourceTest, MultipartImage) {
// This part finishes. The image is created, callbacks are sent, and the data
// buffer is cleared.
- image_resource->Loader()->DidFinishLoading(0.0, 0, 0, 0, false);
+ image_resource->Loader()->DidFinishLoading(TimeTicks(), 0, 0, 0, false);
EXPECT_TRUE(image_resource->ResourceBuffer());
EXPECT_FALSE(image_resource->ErrorOccurred());
ASSERT_TRUE(image_resource->GetContent()->HasImage());
@@ -456,7 +457,7 @@ TEST(ImageResourceTest, BitmapMultipartImage) {
image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage),
sizeof(kJpegImage));
image_resource->AppendData(kBoundary, strlen(kBoundary));
- image_resource->Loader()->DidFinishLoading(0.0, 0, 0, 0, false);
+ image_resource->Loader()->DidFinishLoading(TimeTicks(), 0, 0, 0, false);
EXPECT_TRUE(image_resource->GetContent()->HasImage());
EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage());
EXPECT_TRUE(image_resource->GetContent()
@@ -512,7 +513,7 @@ class MockFinishObserver : public GarbageCollectedFinalized<MockFinishObserver>,
MOCK_METHOD0(NotifyFinished, void());
String DebugName() const override { return "MockFinishObserver"; }
- virtual void Trace(blink::Visitor* visitor) {
+ void Trace(blink::Visitor* visitor) override {
blink::ResourceFinishObserver::Trace(visitor);
}
@@ -796,8 +797,9 @@ TEST_P(ImageResourceReloadTest, ReloadIfLoFiOrPlaceholderViaResourceFetcher) {
WrappedResourceResponse(resource_response));
image_resource->Loader()->DidReceiveData(
reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
- image_resource->Loader()->DidFinishLoading(
- 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage), false);
+ image_resource->Loader()->DidFinishLoading(TimeTicks(), sizeof(kJpegImage),
+ sizeof(kJpegImage),
+ sizeof(kJpegImage), false);
EXPECT_TRUE(observer->ImageNotifyFinishedCalled());
EXPECT_EQ(image_resource, fetcher->CachedResource(test_url));
@@ -1296,7 +1298,7 @@ TEST(ImageResourceTest, DecodeErrorWithEmptyBody) {
EXPECT_FALSE(observer->ImageNotifyFinishedCalled());
EXPECT_EQ(0, observer->ImageChangedCount());
- image_resource->Loader()->DidFinishLoading(0.0, 0, 0, 0, false);
+ image_resource->Loader()->DidFinishLoading(TimeTicks(), 0, 0, 0, false);
EXPECT_EQ(ResourceStatus::kDecodeError, image_resource->GetStatus());
EXPECT_TRUE(observer->ImageNotifyFinishedCalled());
@@ -1339,7 +1341,7 @@ TEST(ImageResourceTest, PartialContentWithoutDimensions) {
EXPECT_EQ(0, observer->ImageChangedCount());
image_resource->Loader()->DidFinishLoading(
- 0.0, kJpegImageSubrangeWithoutDimensionsLength,
+ TimeTicks(), kJpegImageSubrangeWithoutDimensionsLength,
kJpegImageSubrangeWithoutDimensionsLength,
kJpegImageSubrangeWithoutDimensionsLength, false);
@@ -1567,7 +1569,7 @@ TEST(ImageResourceTest, FetchAllowPlaceholderPartialContentWithoutDimensions) {
EXPECT_EQ(0, observer->ImageChangedCount());
image_resource->Loader()->DidFinishLoading(
- 0.0, kJpegImageSubrangeWithoutDimensionsLength,
+ TimeTicks(), kJpegImageSubrangeWithoutDimensionsLength,
kJpegImageSubrangeWithoutDimensionsLength,
kJpegImageSubrangeWithoutDimensionsLength, false);
@@ -1706,8 +1708,9 @@ TEST(ImageResourceTest, FetchAllowPlaceholderFullResponseDecodeSuccess) {
WrappedResourceResponse(response));
image_resource->Loader()->DidReceiveData(
reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
- image_resource->Loader()->DidFinishLoading(
- 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage), false);
+ image_resource->Loader()->DidFinishLoading(TimeTicks(), sizeof(kJpegImage),
+ sizeof(kJpegImage),
+ sizeof(kJpegImage), false);
EXPECT_EQ(ResourceStatus::kCached, image_resource->GetStatus());
EXPECT_EQ(sizeof(kJpegImage), image_resource->EncodedSize());
@@ -1935,7 +1938,7 @@ TEST(ImageResourceTest, DeferredInvalidation) {
class ImageResourceCounterTest : public testing::Test {
public:
ImageResourceCounterTest() = default;
- ~ImageResourceCounterTest() = default;
+ ~ImageResourceCounterTest() override = default;
void CreateImageResource(const char* url_part, bool ua_resource) {
// Create a unique fake data url.
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser_test.cc b/chromium/third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser_test.cc
index 233892d029f..03f2cd9b6fd 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser_test.cc
+++ b/chromium/third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser_test.cc
@@ -48,7 +48,7 @@ TEST(MultipartResponseTest, SkippableLength) {
{"\rLine", 0, 0}, {"Line\r\nLine", 4, 2}, {"Line\nLine", 4, 1},
{"Line\n\nLine", 4, 1}, {"Line\rLine", 4, 0}, {"Line\r\rLine", 4, 0},
};
- for (size_t i = 0; i < WTF_ARRAY_LENGTH(line_tests); ++i) {
+ for (size_t i = 0; i < arraysize(line_tests); ++i) {
Vector<char> input;
input.Append(line_tests[i].input, strlen(line_tests[i].input));
EXPECT_EQ(line_tests[i].expected,
@@ -68,7 +68,7 @@ TEST(MultipartResponseTest, FindBoundary) {
{"foo", "bound", kNotFound}, {"bound", "--boundbound", 0},
};
- for (size_t i = 0; i < WTF_ARRAY_LENGTH(boundary_tests); ++i) {
+ for (size_t i = 0; i < arraysize(boundary_tests); ++i) {
Vector<char> boundary, data;
boundary.Append(boundary_tests[i].boundary,
strlen(boundary_tests[i].boundary));
diff --git a/chromium/third_party/blink/renderer/core/loader/resource/script_resource.cc b/chromium/third_party/blink/renderer/core/loader/resource/script_resource.cc
index 91c831fed3a..8c9cab8de67 100644
--- a/chromium/third_party/blink/renderer/core/loader/resource/script_resource.cc
+++ b/chromium/third_party/blink/renderer/core/loader/resource/script_resource.cc
@@ -43,6 +43,30 @@
namespace blink {
+namespace {
+
+// Returns true if the given request context is a script-like destination
+// defined in the Fetch spec:
+// https://fetch.spec.whatwg.org/#request-destination-script-like
+bool IsRequestContextSupported(WebURLRequest::RequestContext request_context) {
+ // TODO(nhiroki): Support |kRequestContextSharedWorker| for module loading for
+ // shared workers (https://crbug.com/824646).
+ // TODO(nhiroki): Support |kRequestContextServiceWorker| for module loading
+ // for service workers (https://crbug.com/824647).
+ // TODO(nhiroki): Support "audioworklet" and "paintworklet" destinations.
+ switch (request_context) {
+ case WebURLRequest::kRequestContextScript:
+ case WebURLRequest::kRequestContextWorker:
+ return true;
+ default:
+ break;
+ }
+ NOTREACHED() << "Incompatible request context type: " << request_context;
+ return false;
+}
+
+} // namespace
+
// SingleCachedMetadataHandlerImpl should be created when a response is
// received, and can be used independently from Resource. - It doesn't have any
// references to Resource. Necessary data are captured
@@ -151,7 +175,8 @@ ScriptResource* ScriptResource::Fetch(FetchParameters& params,
ResourceClient* client) {
DCHECK_EQ(params.GetResourceRequest().GetFrameType(),
network::mojom::RequestContextFrameType::kNone);
- params.SetRequestContext(WebURLRequest::kRequestContextScript);
+ DCHECK(IsRequestContextSupported(
+ params.GetResourceRequest().GetRequestContext()));
return ToScriptResource(
fetcher->RequestResource(params, ScriptResourceFactory(), client));
}