| 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
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0172b722193dc097600607b33bb364caa1dbfda8
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/core/dom/Modulator.cpp
|
| @@ -0,0 +1,35 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "core/dom/Modulator.h"
|
| +
|
| +namespace blink {
|
| +
|
| +KURL Modulator::resolveModuleSpecifier(const String& moduleRequest,
|
| + const KURL& baseURL) {
|
| + // Step 1. Apply the URL parser to specifier. If the result is not failure,
|
| + // return the result.
|
| + KURL url(KURL(), moduleRequest);
|
| + if (url.isValid())
|
| + return url;
|
| +
|
| + // Step 2. If specifier does not start with the character U+002F SOLIDUS (/),
|
| + // the two-character sequence U+002E FULL STOP, U+002F SOLIDUS (./), or the
|
| + // three-character sequence U+002E FULL STOP, U+002E FULL STOP, U+002F SOLIDUS
|
| + // (../), return failure and abort these steps.
|
| + if (!moduleRequest.startsWith("/") && !moduleRequest.startsWith("./") &&
|
| + !moduleRequest.startsWith("../"))
|
| + return KURL();
|
| +
|
| + // Step 3. Return the result of applying the URL parser to specifier with
|
| + // script's base URL as the base URL.
|
| + DCHECK(baseURL.isValid());
|
| + KURL relativeURL(baseURL, moduleRequest);
|
| + if (relativeURL.isValid())
|
| + return relativeURL;
|
| +
|
| + return KURL();
|
| +}
|
| +
|
| +} // namespace blink
|
|
|