diff options
author | Viktor Engelmann <viktor.engelmann@qt.io> | 2017-05-02 15:48:46 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-06-08 13:31:05 +0200 |
commit | d5bf48f6172911fb8667f49523bb6caff65fe9cd (patch) | |
tree | e0dd1baeca279c94893f0f651ea2a0521bb1d878 | |
parent | 234a862c6666e6f33cc88d2c35939a7548ed579b (diff) | |
download | qtwebengine-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.cc | 12 |
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; |