Index: third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp |
diff --git a/third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp b/third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp |
index 0e08b428e76aee32b58ce5c8f4ecbb6f7aa06a06..1f5efbc0d64435b199978f473986f40c1847bf12 100644 |
--- a/third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp |
+++ b/third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp |
@@ -8,12 +8,17 @@ |
#include "core/frame/Deprecation.h" |
#include "core/frame/UseCounter.h" |
#include "core/loader/MixedContentChecker.h" |
+#include "core/probe/CoreProbes.h" |
#include "core/timing/WorkerGlobalScopePerformance.h" |
#include "core/workers/WorkerClients.h" |
+#include "core/workers/WorkerGlobalScope.h" |
+#include "platform/RuntimeEnabledFeatures.h" |
#include "platform/Supplementable.h" |
#include "platform/WebTaskRunner.h" |
#include "platform/exported/WrappedResourceRequest.h" |
#include "platform/loader/fetch/ResourceFetcher.h" |
+#include "platform/weborigin/SecurityPolicy.h" |
+#include "public/platform/Platform.h" |
#include "public/platform/WebMixedContent.h" |
#include "public/platform/WebMixedContentContextType.h" |
#include "public/platform/WebURLRequest.h" |
@@ -112,15 +117,18 @@ SubresourceFilter* WorkerFetchContext::GetSubresourceFilter() const { |
bool WorkerFetchContext::ShouldBlockRequestByInspector( |
const ResourceRequest& resource_request) const { |
- // TODO(horo): Implement this. |
- return false; |
+ bool should_block_request = false; |
+ probe::shouldBlockRequest(global_scope_, resource_request, |
+ &should_block_request); |
+ return should_block_request; |
} |
void WorkerFetchContext::DispatchDidBlockRequest( |
const ResourceRequest& resource_request, |
const FetchInitiatorInfo& fetch_initiator_info, |
ResourceRequestBlockedReason blocked_reason) const { |
- // TODO(horo): Implement this. |
+ probe::didBlockRequest(global_scope_, resource_request, nullptr, |
+ fetch_initiator_info, blocked_reason); |
} |
bool WorkerFetchContext::ShouldBypassMainWorldCSP() const { |
@@ -221,6 +229,11 @@ bool WorkerFetchContext::IsControlledByServiceWorker() const { |
void WorkerFetchContext::PrepareRequest(ResourceRequest& request, |
RedirectType) { |
+ String user_agent = global_scope_->UserAgent(); |
+ probe::applyUserAgentOverride(global_scope_, &user_agent); |
+ DCHECK(!user_agent.IsNull()); |
+ request.SetHTTPUserAgent(AtomicString(user_agent)); |
+ |
request.OverrideLoadingIPCType(WebURLRequest::LoadingIPCType::kMojo); |
WrappedResourceRequest webreq(request); |
web_context_->WillSendRequest(webreq); |
@@ -238,6 +251,15 @@ void WorkerFetchContext::AddAdditionalRequestHeaders(ResourceRequest& request, |
request.SetHTTPHeaderField("Save-Data", "on"); |
} |
+void WorkerFetchContext::DispatchWillSendRequest( |
+ unsigned long identifier, |
+ ResourceRequest& request, |
+ const ResourceResponse& redirect_response, |
+ const FetchInitiatorInfo& initiator_info) { |
+ probe::willSendRequest(global_scope_, identifier, nullptr, request, |
+ redirect_response, initiator_info); |
+} |
+ |
void WorkerFetchContext::DispatchDidReceiveResponse( |
unsigned long identifier, |
const ResourceResponse& response, |
@@ -255,6 +277,36 @@ void WorkerFetchContext::DispatchDidReceiveResponse( |
web_context_->DidDisplayContentWithCertificateErrors(response.Url()); |
} |
} |
+ probe::didReceiveResourceResponse(global_scope_, identifier, nullptr, |
+ response, resource); |
+} |
+ |
+void WorkerFetchContext::DispatchDidReceiveData(unsigned long identifier, |
+ const char* data, |
+ int data_length) { |
+ probe::didReceiveData(global_scope_, identifier, nullptr, data, data_length); |
+} |
+ |
+void WorkerFetchContext::DispatchDidReceiveEncodedData( |
+ unsigned long identifier, |
+ int encoded_data_length) { |
+ probe::didReceiveEncodedDataLength(global_scope_, identifier, |
+ encoded_data_length); |
+} |
+ |
+void WorkerFetchContext::DispatchDidFinishLoading(unsigned long identifier, |
+ double finish_time, |
+ int64_t encoded_data_length, |
+ int64_t decoded_body_length) { |
+ probe::didFinishLoading(global_scope_, identifier, nullptr, finish_time, |
+ encoded_data_length, decoded_body_length); |
+} |
+ |
+void WorkerFetchContext::DispatchDidFail(unsigned long identifier, |
+ const ResourceError& error, |
+ int64_t encoded_data_length, |
+ bool is_internal_request) { |
+ probe::didFailLoading(global_scope_, identifier, error); |
} |
void WorkerFetchContext::AddResourceTiming(const ResourceTimingInfo& info) { |