| Index: third_party/WebKit/Source/core/dom/Modulator.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/Modulator.cpp b/third_party/WebKit/Source/core/dom/Modulator.cpp
|
| index 5d6d1f326de63a695deb02d5a2c670160942a186..8350bcc85d1a7793228ec9bedffe24be699d122b 100644
|
| --- a/third_party/WebKit/Source/core/dom/Modulator.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/Modulator.cpp
|
| @@ -9,16 +9,41 @@
|
|
|
| namespace blink {
|
|
|
| -Modulator* Modulator::from(LocalFrame* frame) {
|
| +namespace {
|
| +const char kPerContextDataKey[] = "Modulator";
|
| +
|
| +V8PerContextData* getPerContextData(LocalFrame* frame) {
|
| ScriptState* scriptState = toScriptStateForMainWorld(frame);
|
| if (!scriptState)
|
| return nullptr;
|
| - // TODO(kouhei): setModulator in V8PerContextData when we land ModulatorImpl.
|
| - return scriptState->perContextData()->modulator();
|
| + return scriptState->perContextData();
|
| +}
|
| +} // namespace
|
| +
|
| +Modulator* Modulator::from(LocalFrame* frame) {
|
| + return from(getPerContextData(frame));
|
| +}
|
| +
|
| +Modulator* Modulator::from(V8PerContextData* perContextData) {
|
| + if (!perContextData)
|
| + return nullptr;
|
| + return static_cast<Modulator*>(perContextData->getData(kPerContextDataKey));
|
| }
|
|
|
| Modulator::~Modulator() {}
|
|
|
| +void Modulator::setModulator(LocalFrame* frame, Modulator* modulator) {
|
| + V8PerContextData* perContextData = getPerContextData(frame);
|
| + DCHECK(perContextData);
|
| + perContextData->addData(kPerContextDataKey, modulator);
|
| +}
|
| +
|
| +void Modulator::clearModulator(LocalFrame* frame) {
|
| + V8PerContextData* perContextData = getPerContextData(frame);
|
| + DCHECK(perContextData);
|
| + perContextData->clearData(kPerContextDataKey);
|
| +}
|
| +
|
| KURL Modulator::resolveModuleSpecifier(const String& moduleRequest,
|
| const KURL& baseURL) {
|
| // Step 1. Apply the URL parser to specifier. If the result is not failure,
|
|
|