Chromium Code Reviews| Index: third_party/WebKit/Source/core/origin_trials/OriginTrialContext.cpp |
| diff --git a/third_party/WebKit/Source/core/origin_trials/OriginTrialContext.cpp b/third_party/WebKit/Source/core/origin_trials/OriginTrialContext.cpp |
| index fb45fcff2d457c0d57c2564ec07cdb1d42272382..66d723f6587390e5f882f5e041546ed12ac9ca0d 100644 |
| --- a/third_party/WebKit/Source/core/origin_trials/OriginTrialContext.cpp |
| +++ b/third_party/WebKit/Source/core/origin_trials/OriginTrialContext.cpp |
| @@ -158,6 +158,7 @@ void OriginTrialContext::addToken(const String& token) { |
| m_tokens.append(token); |
| validateToken(token); |
| } |
| + initializePendingFeatures(); |
| } |
| void OriginTrialContext::addTokens(const Vector<String>& tokens) { |
| @@ -167,6 +168,24 @@ void OriginTrialContext::addTokens(const Vector<String>& tokens) { |
| validateToken(token); |
| } |
| } |
| + initializePendingFeatures(); |
| +} |
| + |
| +void OriginTrialContext::initializePendingFeatures() { |
| + if (!m_host->isDocument()) |
| + return; |
| + LocalFrame* frame = toDocument(m_host.get())->frame(); |
| + if (!frame) |
| + return; |
| + ScriptState* scriptState = ScriptState::forMainWorld(frame); |
| + if (!scriptState) |
| + return; |
| + if (!frame->script() |
| + .windowProxy(scriptState->world()) |
| + ->isContextInitialized()) |
|
haraken
2016/11/03 14:43:07
Instead you can check scriptState->contextIsValid(
iclelland
2016/11/03 16:00:01
Simpler, thanks!
|
| + return; |
| + ScriptState::Scope scope(scriptState); |
| + installPendingConditionalFeaturesOnWindow(scriptState); |
| } |
| bool OriginTrialContext::isTrialEnabled(const String& trialName) { |