summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViktor Engelmann <viktor.engelmann@qt.io>2017-05-02 15:48:46 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-06-08 13:31:05 +0200
commitd5bf48f6172911fb8667f49523bb6caff65fe9cd (patch)
treee0dd1baeca279c94893f0f651ea2a0521bb1d878
parent234a862c6666e6f33cc88d2c35939a7548ed579b (diff)
downloadqtwebengine-chromium-d5bf48f6172911fb8667f49523bb6caff65fe9cd.tar.gz
Allow Service Workers without HTTP headers (again)
Service Workers may be loaded over different schemes than HTTP(S) (chromium itself provides interfaces to register schemes for this!). Despite this, chromium assumes here, that Service Workers were always loaded over HTTP(S). The code for registering Service Workers blindly dereferences the requests "header" pointer without checking it for NULL beforehand. Task-number: QTBUG-56169 Change-Id: If7ba87fbf0cc032cc3b3c34d9d4e0d1041c93178 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--chromium/content/common/origin_trials/trial_token_validator.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/chromium/content/common/origin_trials/trial_token_validator.cc b/chromium/content/common/origin_trials/trial_token_validator.cc
index e3130dc902c..2326384eac8 100644
--- a/chromium/content/common/origin_trials/trial_token_validator.cc
+++ b/chromium/content/common/origin_trials/trial_token_validator.cc
@@ -101,11 +101,13 @@ TrialTokenValidator::GetValidTokensFromHeaders(
size_t iter = 0;
std::string token;
- while (headers->EnumerateHeader(&iter, "Origin-Trial", &token)) {
- std::string token_feature;
- if (TrialTokenValidator::ValidateToken(token, origin, &token_feature) ==
- blink::WebOriginTrialTokenStatus::Success) {
- (*tokens)[token_feature].push_back(token);
+ if (headers) {
+ while (headers->EnumerateHeader(&iter, "Origin-Trial", &token)) {
+ std::string token_feature;
+ if (TrialTokenValidator::ValidateToken(token, origin, &token_feature) ==
+ blink::WebOriginTrialTokenStatus::Success) {
+ (*tokens)[token_feature].push_back(token);
+ }
}
}
return tokens;