Diff
Modified: trunk/Source/_javascript_Core/API/JSBase.cpp (239568 => 239569)
--- trunk/Source/_javascript_Core/API/JSBase.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/API/JSBase.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -64,7 +64,7 @@
// evaluate sets "this" to the global object if it is NULL
JSGlobalObject* globalObject = vm.vmEntryGlobalObject(exec);
auto sourceURLString = sourceURL ? sourceURL->string() : String();
- SourceCode source = makeSource(script->string(), SourceOrigin { sourceURLString }, sourceURLString, TextPosition(OrdinalNumber::fromOneBasedInt(startingLineNumber), OrdinalNumber()));
+ SourceCode source = makeSource(script->string(), SourceOrigin { sourceURLString }, URL({ }, sourceURLString), TextPosition(OrdinalNumber::fromOneBasedInt(startingLineNumber), OrdinalNumber()));
NakedPtr<Exception> evaluationException;
JSValue returnValue = profiledEvaluate(globalObject->globalExec(), ProfilingReason::API, source, jsThisObject, evaluationException);
@@ -103,7 +103,7 @@
startingLineNumber = std::max(1, startingLineNumber);
auto sourceURLString = sourceURL ? sourceURL->string() : String();
- SourceCode source = makeSource(script->string(), SourceOrigin { sourceURLString }, sourceURLString, TextPosition(OrdinalNumber::fromOneBasedInt(startingLineNumber), OrdinalNumber()));
+ SourceCode source = makeSource(script->string(), SourceOrigin { sourceURLString }, URL({ }, sourceURLString), TextPosition(OrdinalNumber::fromOneBasedInt(startingLineNumber), OrdinalNumber()));
JSValue syntaxException;
bool isValidSyntax = checkSyntax(vm.vmEntryGlobalObject(exec)->globalExec(), source, &syntaxException);
Modified: trunk/Source/_javascript_Core/API/JSScriptRef.cpp (239568 => 239569)
--- trunk/Source/_javascript_Core/API/JSScriptRef.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/API/JSScriptRef.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -41,9 +41,9 @@
struct OpaqueJSScript : public SourceProvider {
public:
- static WTF::Ref<OpaqueJSScript> create(VM& vm, const SourceOrigin& sourceOrigin, const String& url, int startingLineNumber, const String& source)
+ static WTF::Ref<OpaqueJSScript> create(VM& vm, const SourceOrigin& sourceOrigin, URL&& url, int startingLineNumber, const String& source)
{
- return WTF::adoptRef(*new OpaqueJSScript(vm, sourceOrigin, url, startingLineNumber, source));
+ return WTF::adoptRef(*new OpaqueJSScript(vm, sourceOrigin, WTFMove(url), startingLineNumber, source));
}
unsigned hash() const override
@@ -59,8 +59,8 @@
VM& vm() const { return m_vm; }
private:
- OpaqueJSScript(VM& vm, const SourceOrigin& sourceOrigin, const String& url, int startingLineNumber, const String& source)
- : SourceProvider(sourceOrigin, url, TextPosition(OrdinalNumber::fromOneBasedInt(startingLineNumber), OrdinalNumber()), SourceProviderSourceType::Program)
+ OpaqueJSScript(VM& vm, const SourceOrigin& sourceOrigin, URL&& url, int startingLineNumber, const String& source)
+ : SourceProvider(sourceOrigin, WTFMove(url), TextPosition(OrdinalNumber::fromOneBasedInt(startingLineNumber), OrdinalNumber()), SourceProviderSourceType::Program)
, m_vm(vm)
, m_source(source.isNull() ? *StringImpl::empty() : *source.impl())
{
@@ -94,7 +94,7 @@
startingLineNumber = std::max(1, startingLineNumber);
auto sourceURLString = url ? url->string() : String();
- auto result = OpaqueJSScript::create(vm, SourceOrigin { sourceURLString }, sourceURLString, startingLineNumber, String(StringImpl::createFromLiteral(source, length)));
+ auto result = OpaqueJSScript::create(vm, SourceOrigin { sourceURLString }, URL({ }, sourceURLString), startingLineNumber, String(StringImpl::createFromLiteral(source, length)));
ParserError error;
if (!parseScript(vm, SourceCode(result.copyRef()), error)) {
@@ -116,7 +116,7 @@
startingLineNumber = std::max(1, startingLineNumber);
auto sourceURLString = url ? url->string() : String();
- auto result = OpaqueJSScript::create(vm, SourceOrigin { sourceURLString }, sourceURLString, startingLineNumber, source->string());
+ auto result = OpaqueJSScript::create(vm, SourceOrigin { sourceURLString }, URL({ }, sourceURLString), startingLineNumber, source->string());
ParserError error;
if (!parseScript(vm, SourceCode(result.copyRef()), error)) {
Modified: trunk/Source/_javascript_Core/API/glib/JSCContext.cpp (239568 => 239569)
--- trunk/Source/_javascript_Core/API/glib/JSCContext.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/API/glib/JSCContext.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -945,7 +945,7 @@
String sourceURLString = uri ? String::fromUTF8(uri) : String();
JSC::SourceCode source = JSC::makeSource(String::fromUTF8(code, length < 0 ? strlen(code) : length), JSC::SourceOrigin { sourceURLString },
- sourceURLString, TextPosition(OrdinalNumber::fromOneBasedInt(lineNumber), OrdinalNumber()));
+ URL({ }, sourceURLString), TextPosition(OrdinalNumber::fromOneBasedInt(lineNumber), OrdinalNumber()));
bool success = false;
JSC::ParserError error;
switch (mode) {
Modified: trunk/Source/_javascript_Core/ChangeLog (239568 => 239569)
--- trunk/Source/_javascript_Core/ChangeLog 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/ChangeLog 2019-01-02 17:59:08 UTC (rev 239569)
@@ -1,3 +1,50 @@
+2018-12-31 Keith Miller <[email protected]>
+
+ SourceProviders should use an actual URL instead of a string
+ https://bugs.webkit.org/show_bug.cgi?id=192734
+
+ Reviewed by Yusuke Suzuki.
+
+ This will be useful for the Module loader API in the future where
+ by default it will use the relative path from the referring module
+ to resolve dependencies.
+
+ I didn't change the JSC shell's urls to be absolute paths as it
+ caused problems with the stack traces in our Chakra tests. Since
+ the absolute paths included system directories the diff would
+ appear incorrect.
+ See: https://bugs.webkit.org/show_bug.cgi?id=193077
+
+ * API/JSBase.cpp:
+ (JSEvaluateScript):
+ (JSCheckScriptSyntax):
+ * API/JSScriptRef.cpp:
+ (OpaqueJSScript::create):
+ (OpaqueJSScript::OpaqueJSScript):
+ * API/glib/JSCContext.cpp:
+ (jsc_context_check_syntax):
+ * jsc.cpp:
+ (jscSource):
+ (GlobalObject::moduleLoaderFetch):
+ (functionCheckModuleSyntax):
+ (runWithOptions):
+ * parser/SourceCode.h:
+ (JSC::makeSource):
+ * parser/SourceProvider.cpp:
+ (JSC::SourceProvider::SourceProvider):
+ * parser/SourceProvider.h:
+ (JSC::SourceProvider::url const):
+ (JSC::StringSourceProvider::create):
+ (JSC::StringSourceProvider::StringSourceProvider):
+ (JSC::WebAssemblySourceProvider::create):
+ (JSC::WebAssemblySourceProvider::WebAssemblySourceProvider):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::constructFunctionSkippingEvalEnabledCheck):
+ * tools/CodeProfile.h:
+ (JSC::CodeProfile::CodeProfile):
+ * tools/FunctionOverrides.cpp:
+ (JSC::initializeOverrideInfo):
+
2019-01-01 Jeff Miller <[email protected]>
Update user-visible copyright strings to include 2019
Modified: trunk/Source/_javascript_Core/jsc.cpp (239568 => 239569)
--- trunk/Source/_javascript_Core/jsc.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/jsc.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -87,6 +87,7 @@
#include <wtf/MonotonicTime.h>
#include <wtf/NeverDestroyed.h>
#include <wtf/StringPrintStream.h>
+#include <wtf/URL.h>
#include <wtf/WallTime.h>
#include <wtf/text/StringBuilder.h>
@@ -459,13 +460,6 @@
return String::fromUTF8WithLatin1Fallback(utf8.data(), utf8.size());
}
-template<typename Vector>
-static inline SourceCode jscSource(const Vector& utf8, const SourceOrigin& sourceOrigin, const String& filename)
-{
- String str = stringFromUTF(utf8);
- return makeSource(str, sourceOrigin, filename);
-}
-
class GlobalObject : public JSGlobalObject {
private:
GlobalObject(VM&, Structure*);
@@ -957,6 +951,14 @@
}
template<typename Vector>
+static inline SourceCode jscSource(const Vector& utf8, const SourceOrigin& sourceOrigin, const String& filename)
+{
+ // FIXME: This should use an absolute file URL https://bugs.webkit.org/show_bug.cgi?id=193077
+ String str = stringFromUTF(utf8);
+ return makeSource(str, sourceOrigin, URL({ }, filename));
+}
+
+template<typename Vector>
static bool fetchModuleFromLocalFileSystem(const String& fileName, Vector& buffer)
{
// We assume that fileName is always an absolute path.
@@ -1019,11 +1021,13 @@
if (!fetchModuleFromLocalFileSystem(moduleKey, buffer))
return reject(createError(exec, makeString("Could not open file '", moduleKey, "'.")));
+
+ URL moduleURL = URL({ }, moduleKey);
#if ENABLE(WEBASSEMBLY)
// FileSystem does not have mime-type header. The JSC shell recognizes WebAssembly's magic header.
if (buffer.size() >= 4) {
if (buffer[0] == '\0' && buffer[1] == 'a' && buffer[2] == 's' && buffer[3] == 'm') {
- auto source = SourceCode(WebAssemblySourceProvider::create(WTFMove(buffer), SourceOrigin { moduleKey }, moduleKey));
+ auto source = SourceCode(WebAssemblySourceProvider::create(WTFMove(buffer), SourceOrigin { moduleKey }, WTFMove(moduleURL)));
catchScope.releaseAssertNoException();
auto sourceCode = JSSourceCode::create(vm, WTFMove(source));
catchScope.releaseAssertNoException();
@@ -1034,7 +1038,7 @@
}
#endif
- auto sourceCode = JSSourceCode::create(vm, makeSource(stringFromUTF(buffer), SourceOrigin { moduleKey }, moduleKey, TextPosition(), SourceProviderSourceType::Module));
+ auto sourceCode = JSSourceCode::create(vm, makeSource(stringFromUTF(buffer), SourceOrigin { moduleKey }, WTFMove(moduleURL), TextPosition(), SourceProviderSourceType::Module));
catchScope.releaseAssertNoException();
auto result = deferred->resolve(exec, sourceCode);
catchScope.clearException();
@@ -2081,7 +2085,7 @@
stopWatch.start();
ParserError error;
- bool validSyntax = checkModuleSyntax(exec, makeSource(source, { }, String(), TextPosition(), SourceProviderSourceType::Module), error);
+ bool validSyntax = checkModuleSyntax(exec, makeSource(source, { }, URL(), TextPosition(), SourceProviderSourceType::Module), error);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
stopWatch.stop();
@@ -2440,8 +2444,10 @@
bool isLastFile = i == scripts.size() - 1;
if (isModule) {
- if (!promise)
- promise = loadAndEvaluateModule(globalObject->globalExec(), makeSource(stringFromUTF(scriptBuffer), SourceOrigin { absolutePath(fileName) }, fileName, TextPosition(), SourceProviderSourceType::Module), jsUndefined());
+ if (!promise) {
+ // FIXME: This should use an absolute file URL https://bugs.webkit.org/show_bug.cgi?id=193077
+ promise = loadAndEvaluateModule(globalObject->globalExec(), makeSource(stringFromUTF(scriptBuffer), SourceOrigin { absolutePath(fileName) }, URL({ }, fileName), TextPosition(), SourceProviderSourceType::Module), jsUndefined());
+ }
scope.clearException();
JSFunction* fulfillHandler = JSNativeStdFunction::create(vm, globalObject, 1, String(), [&success, &options, isLastFile](ExecState* exec) {
Modified: trunk/Source/_javascript_Core/parser/SourceCode.h (239568 => 239569)
--- trunk/Source/_javascript_Core/parser/SourceCode.h 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/parser/SourceCode.h 2019-01-02 17:59:08 UTC (rev 239569)
@@ -100,9 +100,9 @@
OrdinalNumber m_startColumn;
};
- inline SourceCode makeSource(const String& source, const SourceOrigin& sourceOrigin, const String& url = "" const TextPosition& startPosition = TextPosition(), SourceProviderSourceType sourceType = SourceProviderSourceType::Program)
+ inline SourceCode makeSource(const String& source, const SourceOrigin& sourceOrigin, URL&& url = "" const TextPosition& startPosition = TextPosition(), SourceProviderSourceType sourceType = SourceProviderSourceType::Program)
{
- return SourceCode(StringSourceProvider::create(source, sourceOrigin, url, startPosition, sourceType), startPosition.m_line.oneBasedInt(), startPosition.m_column.oneBasedInt());
+ return SourceCode(StringSourceProvider::create(source, sourceOrigin, WTFMove(url), startPosition, sourceType), startPosition.m_line.oneBasedInt(), startPosition.m_column.oneBasedInt());
}
inline SourceCode SourceCode::subExpression(unsigned openBrace, unsigned closeBrace, int firstLine, int startColumn) const
Modified: trunk/Source/_javascript_Core/parser/SourceProvider.cpp (239568 => 239569)
--- trunk/Source/_javascript_Core/parser/SourceProvider.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/parser/SourceProvider.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -31,11 +31,11 @@
namespace JSC {
-SourceProvider::SourceProvider(const SourceOrigin& sourceOrigin, const String& url, const TextPosition& startPosition, SourceProviderSourceType sourceType)
- : m_sourceType(sourceType)
+SourceProvider::SourceProvider(const SourceOrigin& sourceOrigin, URL&& url, const TextPosition& startPosition, SourceProviderSourceType sourceType)
+ : m_url(WTFMove(url))
+ , m_sourceType(sourceType)
, m_validated(false)
, m_sourceOrigin(sourceOrigin)
- , m_url(url)
, m_startPosition(startPosition)
{
}
Modified: trunk/Source/_javascript_Core/parser/SourceProvider.h (239568 => 239569)
--- trunk/Source/_javascript_Core/parser/SourceProvider.h 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/parser/SourceProvider.h 2019-01-02 17:59:08 UTC (rev 239569)
@@ -30,6 +30,7 @@
#include "SourceOrigin.h"
#include <wtf/RefCounted.h>
+#include <wtf/URL.h>
#include <wtf/text/TextPosition.h>
#include <wtf/text/WTFString.h>
@@ -45,7 +46,7 @@
public:
static const intptr_t nullID = 1;
- JS_EXPORT_PRIVATE SourceProvider(const SourceOrigin&, const String& url, const TextPosition& startPosition, SourceProviderSourceType);
+ JS_EXPORT_PRIVATE SourceProvider(const SourceOrigin&, URL&&, const TextPosition& startPosition, SourceProviderSourceType);
JS_EXPORT_PRIVATE virtual ~SourceProvider();
@@ -57,7 +58,7 @@
}
const SourceOrigin& sourceOrigin() const { return m_sourceOrigin; }
- const String& url() const { return m_url; }
+ const URL& url() const { return m_url; }
const String& sourceURL() const { return m_sourceURLDirective; }
const String& sourceMappingURL() const { return m_sourceMappingURLDirective; }
@@ -80,10 +81,10 @@
private:
JS_EXPORT_PRIVATE void getID();
+ URL m_url;
SourceProviderSourceType m_sourceType;
bool m_validated : 1;
SourceOrigin m_sourceOrigin;
- String m_url;
String m_sourceURLDirective;
String m_sourceMappingURLDirective;
TextPosition m_startPosition;
@@ -92,9 +93,9 @@
class StringSourceProvider : public SourceProvider {
public:
- static Ref<StringSourceProvider> create(const String& source, const SourceOrigin& sourceOrigin, const String& url, const TextPosition& startPosition = TextPosition(), SourceProviderSourceType sourceType = SourceProviderSourceType::Program)
+ static Ref<StringSourceProvider> create(const String& source, const SourceOrigin& sourceOrigin, URL&& url, const TextPosition& startPosition = TextPosition(), SourceProviderSourceType sourceType = SourceProviderSourceType::Program)
{
- return adoptRef(*new StringSourceProvider(source, sourceOrigin, url, startPosition, sourceType));
+ return adoptRef(*new StringSourceProvider(source, sourceOrigin, WTFMove(url), startPosition, sourceType));
}
unsigned hash() const override
@@ -108,8 +109,8 @@
}
private:
- StringSourceProvider(const String& source, const SourceOrigin& sourceOrigin, const String& url, const TextPosition& startPosition, SourceProviderSourceType sourceType)
- : SourceProvider(sourceOrigin, url, startPosition, sourceType)
+ StringSourceProvider(const String& source, const SourceOrigin& sourceOrigin, URL&& url, const TextPosition& startPosition, SourceProviderSourceType sourceType)
+ : SourceProvider(sourceOrigin, WTFMove(url), startPosition, sourceType)
, m_source(source.isNull() ? *StringImpl::empty() : *source.impl())
{
}
@@ -120,9 +121,9 @@
#if ENABLE(WEBASSEMBLY)
class WebAssemblySourceProvider : public SourceProvider {
public:
- static Ref<WebAssemblySourceProvider> create(Vector<uint8_t>&& data, const SourceOrigin& sourceOrigin, const String& url)
+ static Ref<WebAssemblySourceProvider> create(Vector<uint8_t>&& data, const SourceOrigin& sourceOrigin, URL&& url)
{
- return adoptRef(*new WebAssemblySourceProvider(WTFMove(data), sourceOrigin, url));
+ return adoptRef(*new WebAssemblySourceProvider(WTFMove(data), sourceOrigin, WTFMove(url)));
}
unsigned hash() const override
@@ -141,8 +142,8 @@
}
private:
- WebAssemblySourceProvider(Vector<uint8_t>&& data, const SourceOrigin& sourceOrigin, const String& url)
- : SourceProvider(sourceOrigin, url, TextPosition(), SourceProviderSourceType::WebAssembly)
+ WebAssemblySourceProvider(Vector<uint8_t>&& data, const SourceOrigin& sourceOrigin, URL&& url)
+ : SourceProvider(sourceOrigin, WTFMove(url), TextPosition(), SourceProviderSourceType::WebAssembly)
, m_source("[WebAssembly source]")
, m_data(WTFMove(data))
{
Modified: trunk/Source/_javascript_Core/runtime/FunctionConstructor.cpp (239568 => 239569)
--- trunk/Source/_javascript_Core/runtime/FunctionConstructor.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/runtime/FunctionConstructor.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -142,7 +142,7 @@
program = builder.toString();
}
- SourceCode source = makeSource(program, sourceOrigin, sourceURL, position);
+ SourceCode source = makeSource(program, sourceOrigin, URL({ }, sourceURL), position);
JSObject* exception = nullptr;
FunctionExecutable* function = FunctionExecutable::fromGlobalCode(functionName, *exec, source, exception, overrideLineNumber, functionConstructorParametersEndPosition);
if (!function) {
Modified: trunk/Source/_javascript_Core/tools/CodeProfile.h (239568 => 239569)
--- trunk/Source/_javascript_Core/tools/CodeProfile.h 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/tools/CodeProfile.h 2019-01-02 17:59:08 UTC (rev 239569)
@@ -35,7 +35,7 @@
WTF_MAKE_FAST_ALLOCATED;
public:
CodeProfile(const SourceCode& source, CodeProfile* parent)
- : m_file(source.provider()->url().utf8())
+ : m_file(String(source.provider()->url()).utf8())
, m_lineNumber(source.firstLine().oneBasedInt())
, m_parent(parent)
{
Modified: trunk/Source/_javascript_Core/tools/FunctionOverrides.cpp (239568 => 239569)
--- trunk/Source/_javascript_Core/tools/FunctionOverrides.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/_javascript_Core/tools/FunctionOverrides.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -126,7 +126,7 @@
newProviderStr.append(origHeader);
newProviderStr.append(newBody);
- Ref<SourceProvider> newProvider = StringSourceProvider::create(newProviderStr, SourceOrigin { "<overridden>" }, "<overridden>");
+ Ref<SourceProvider> newProvider = StringSourceProvider::create(newProviderStr, SourceOrigin { "<overridden>" }, URL({ }, "<overridden>"));
info.firstLine = 1;
info.lineCount = 1; // Faking it. This doesn't really matter for now.
Modified: trunk/Source/WebCore/ChangeLog (239568 => 239569)
--- trunk/Source/WebCore/ChangeLog 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/ChangeLog 2019-01-02 17:59:08 UTC (rev 239569)
@@ -1,3 +1,47 @@
+2018-12-31 Keith Miller <[email protected]>
+
+ SourceProviders should use an actual URL instead of a string
+ https://bugs.webkit.org/show_bug.cgi?id=192734
+
+ Reviewed by Yusuke Suzuki.
+
+ Remove ScriptSourceCode's URL member and make the url() method
+ reference the URL on the SourceProvider. Also, avoid some
+ ref count churn.
+
+ Additionally, this patch fixes an existing bug in
+ WorkletGlobalScope() that would use a ScriptSourceCode after
+ WTFMoving it.
+
+ * bindings/js/CachedScriptSourceProvider.h:
+ (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
+ * bindings/js/ScheduledAction.cpp:
+ (WebCore::ScheduledAction::execute):
+ * bindings/js/ScriptController.cpp:
+ (WebCore::ScriptController::executeScriptInWorld):
+ (WebCore::ScriptController::executeScript):
+ * bindings/js/ScriptSourceCode.h:
+ (WebCore::ScriptSourceCode::ScriptSourceCode):
+ (WebCore::ScriptSourceCode::m_code):
+ (WebCore::ScriptSourceCode::url const):
+ (WebCore::ScriptSourceCode::m_url): Deleted.
+ * dom/ScriptElement.cpp:
+ (WebCore::ScriptElement::prepareScript):
+ (WebCore::ScriptElement::requestModuleScript):
+ (WebCore::ScriptElement::executePendingScript):
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
+ * page/Frame.cpp:
+ (WebCore::Frame::injectUserScriptImmediately):
+ * workers/WorkerGlobalScope.cpp:
+ (WebCore::WorkerGlobalScope::importScripts):
+ * workers/WorkerThread.cpp:
+ (WebCore::WorkerThread::workerThread):
+ * worklets/WorkletGlobalScope.cpp:
+ (WebCore::WorkletGlobalScope::WorkletGlobalScope):
+ * xml/parser/XMLDocumentParserLibxml2.cpp:
+ (WebCore::XMLDocumentParser::endElementNs):
+
2019-01-01 Jeff Miller <[email protected]>
Update user-visible copyright strings to include 2019
Modified: trunk/Source/WebCore/bindings/js/CachedScriptSourceProvider.h (239568 => 239569)
--- trunk/Source/WebCore/bindings/js/CachedScriptSourceProvider.h 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/bindings/js/CachedScriptSourceProvider.h 2019-01-02 17:59:08 UTC (rev 239569)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008-2018 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -48,7 +48,7 @@
private:
CachedScriptSourceProvider(CachedScript* cachedScript, JSC::SourceProviderSourceType sourceType, Ref<CachedScriptFetcher>&& scriptFetcher)
- : SourceProvider(JSC::SourceOrigin { cachedScript->response().url(), WTFMove(scriptFetcher) }, cachedScript->response().url(), TextPosition(), sourceType)
+ : SourceProvider(JSC::SourceOrigin { cachedScript->response().url(), WTFMove(scriptFetcher) }, URL(cachedScript->response().url()), TextPosition(), sourceType)
, m_cachedScript(cachedScript)
{
m_cachedScript->addClient(*this);
Modified: trunk/Source/WebCore/bindings/js/ScheduledAction.cpp (239568 => 239569)
--- trunk/Source/WebCore/bindings/js/ScheduledAction.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/bindings/js/ScheduledAction.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -150,7 +150,7 @@
JSWorkerGlobalScope* contextWrapper = scriptController->workerGlobalScopeWrapper();
executeFunctionInContext(contextWrapper, contextWrapper, workerGlobalScope);
} else {
- ScriptSourceCode code(m_code, workerGlobalScope.url());
+ ScriptSourceCode code(m_code, URL(workerGlobalScope.url()));
scriptController->evaluate(code);
}
}
Modified: trunk/Source/WebCore/bindings/js/ScriptController.cpp (239568 => 239569)
--- trunk/Source/WebCore/bindings/js/ScriptController.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/bindings/js/ScriptController.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -543,7 +543,7 @@
JSValue ScriptController::executeScriptInWorld(DOMWrapperWorld& world, const String& script, bool forceUserGesture, ExceptionDetails* exceptionDetails)
{
UserGestureIndicator gestureIndicator(forceUserGesture ? Optional<ProcessingUserGestureState>(ProcessingUserGesture) : WTF::nullopt);
- ScriptSourceCode sourceCode(script, m_frame.document()->url(), TextPosition(), JSC::SourceProviderSourceType::Program, CachedScriptFetcher::create(m_frame.document()->charset()));
+ ScriptSourceCode sourceCode(script, URL(m_frame.document()->url()), TextPosition(), JSC::SourceProviderSourceType::Program, CachedScriptFetcher::create(m_frame.document()->charset()));
if (!canExecuteScripts(AboutToExecuteScript) || isPaused())
return { };
@@ -572,7 +572,7 @@
JSValue ScriptController::executeScript(const String& script, bool forceUserGesture, ExceptionDetails* exceptionDetails)
{
UserGestureIndicator gestureIndicator(forceUserGesture ? Optional<ProcessingUserGestureState>(ProcessingUserGesture) : WTF::nullopt);
- return executeScript(ScriptSourceCode(script, m_frame.document()->url(), TextPosition(), JSC::SourceProviderSourceType::Program, CachedScriptFetcher::create(m_frame.document()->charset())), exceptionDetails);
+ return executeScript(ScriptSourceCode(script, URL(m_frame.document()->url()), TextPosition(), JSC::SourceProviderSourceType::Program, CachedScriptFetcher::create(m_frame.document()->charset())), exceptionDetails);
}
JSValue ScriptController::executeScript(const ScriptSourceCode& sourceCode, ExceptionDetails* exceptionDetails)
Modified: trunk/Source/WebCore/bindings/js/ScriptSourceCode.h (239568 => 239569)
--- trunk/Source/WebCore/bindings/js/ScriptSourceCode.h 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/bindings/js/ScriptSourceCode.h 2019-01-02 17:59:08 UTC (rev 239569)
@@ -44,10 +44,9 @@
class ScriptSourceCode {
public:
- ScriptSourceCode(const String& source, const URL& url = "" const TextPosition& startPosition = TextPosition(), JSC::SourceProviderSourceType sourceType = JSC::SourceProviderSourceType::Program)
- : m_provider(JSC::StringSourceProvider::create(source, JSC::SourceOrigin { url.string() }, url.string(), startPosition, sourceType))
+ ScriptSourceCode(const String& source, URL&& url = "" const TextPosition& startPosition = TextPosition(), JSC::SourceProviderSourceType sourceType = JSC::SourceProviderSourceType::Program)
+ : m_provider(JSC::StringSourceProvider::create(source, JSC::SourceOrigin { url.string() }, WTFMove(url), startPosition, sourceType))
, m_code(m_provider.copyRef(), startPosition.m_line.oneBasedInt(), startPosition.m_column.oneBasedInt())
- , m_url(url)
{
}
@@ -58,10 +57,9 @@
{
}
- ScriptSourceCode(const String& source, const URL& url, const TextPosition& startPosition, JSC::SourceProviderSourceType sourceType, Ref<CachedScriptFetcher>&& scriptFetcher)
- : m_provider(JSC::StringSourceProvider::create(source, JSC::SourceOrigin { url.string(), WTFMove(scriptFetcher) }, url.string(), startPosition, sourceType))
+ ScriptSourceCode(const String& source, URL&& url, const TextPosition& startPosition, JSC::SourceProviderSourceType sourceType, Ref<CachedScriptFetcher>&& scriptFetcher)
+ : m_provider(JSC::StringSourceProvider::create(source, JSC::SourceOrigin { url.string(), WTFMove(scriptFetcher) }, WTFMove(url), startPosition, sourceType))
, m_code(m_provider.copyRef(), startPosition.m_line.oneBasedInt(), startPosition.m_column.oneBasedInt())
- , m_url(url)
{
}
@@ -75,13 +73,12 @@
CachedScript* cachedScript() const { return m_cachedScript.get(); }
- const URL& url() const { return m_url; }
+ const URL& url() const { return m_provider->url(); }
private:
Ref<JSC::SourceProvider> m_provider;
JSC::SourceCode m_code;
CachedResourceHandle<CachedScript> m_cachedScript;
- URL m_url;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/dom/ScriptElement.cpp (239568 => 239569)
--- trunk/Source/WebCore/dom/ScriptElement.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/dom/ScriptElement.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -264,7 +264,7 @@
} else {
ASSERT(scriptType == ScriptType::Classic);
TextPosition position = document.isInDocumentWrite() ? TextPosition() : scriptStartPosition;
- executeClassicScript(ScriptSourceCode(scriptContent(), document.url(), position, JSC::SourceProviderSourceType::Program, InlineClassicScript::create(*this)));
+ executeClassicScript(ScriptSourceCode(scriptContent(), URL(document.url()), position, JSC::SourceProviderSourceType::Program, InlineClassicScript::create(*this)));
}
return true;
@@ -347,7 +347,7 @@
auto script = LoadableModuleScript::create(nonce, emptyString(), crossOriginMode, scriptCharset(), m_element.localName(), m_element.isInUserAgentShadowTree());
TextPosition position = m_element.document().isInDocumentWrite() ? TextPosition() : scriptStartPosition;
- ScriptSourceCode sourceCode(scriptContent(), m_element.document().url(), position, JSC::SourceProviderSourceType::Module, script.copyRef());
+ ScriptSourceCode sourceCode(scriptContent(), URL(m_element.document().url()), position, JSC::SourceProviderSourceType::Module, script.copyRef());
ASSERT(m_element.document().contentSecurityPolicy());
const auto& contentSecurityPolicy = *m_element.document().contentSecurityPolicy();
@@ -435,7 +435,7 @@
else {
ASSERT(!pendingScript.error());
ASSERT_WITH_MESSAGE(scriptType() == ScriptType::Classic, "Module script always have a loadableScript pointer.");
- executeClassicScript(ScriptSourceCode(scriptContent(), m_element.document().url(), pendingScript.startingPosition(), JSC::SourceProviderSourceType::Program, InlineClassicScript::create(*this)));
+ executeClassicScript(ScriptSourceCode(scriptContent(), URL(m_element.document().url()), pendingScript.startingPosition(), JSC::SourceProviderSourceType::Program, InlineClassicScript::create(*this)));
dispatchLoadEventRespectingUserGestureIndicator();
}
}
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (239568 => 239569)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -7231,7 +7231,7 @@
#else
URL scriptURL;
#endif
- scriptController.evaluateInWorld(ScriptSourceCode(mediaControlsScript, scriptURL), world);
+ scriptController.evaluateInWorld(ScriptSourceCode(mediaControlsScript, WTFMove(scriptURL)), world);
if (UNLIKELY(scope.exception())) {
scope.clearException();
return false;
Modified: trunk/Source/WebCore/page/Frame.cpp (239568 => 239569)
--- trunk/Source/WebCore/page/Frame.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/page/Frame.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -738,7 +738,7 @@
document->topDocument().setAsRunningUserScripts();
loader().client().willInjectUserScript(world);
- m_script->evaluateInWorld(ScriptSourceCode(script.source(), script.url()), world);
+ m_script->evaluateInWorld(ScriptSourceCode(script.source(), URL(script.url())), world);
}
RenderView* Frame::contentRenderer() const
Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.cpp (239568 => 239569)
--- trunk/Source/WebCore/workers/WorkerGlobalScope.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -312,7 +312,7 @@
InspectorInstrumentation::scriptImported(*this, scriptLoader->identifier(), scriptLoader->script());
NakedPtr<JSC::Exception> exception;
- m_script->evaluate(ScriptSourceCode(scriptLoader->script(), scriptLoader->responseURL()), exception);
+ m_script->evaluate(ScriptSourceCode(scriptLoader->script(), URL(scriptLoader->responseURL())), exception);
if (exception) {
m_script->setException(exception);
return { };
Modified: trunk/Source/WebCore/workers/WorkerThread.cpp (239568 => 239569)
--- trunk/Source/WebCore/workers/WorkerThread.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/workers/WorkerThread.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -190,7 +190,7 @@
}
String exceptionMessage;
- scriptController->evaluate(ScriptSourceCode(m_startupData->m_sourceCode, m_startupData->m_scriptURL), &exceptionMessage);
+ scriptController->evaluate(ScriptSourceCode(m_startupData->m_sourceCode, URL(m_startupData->m_scriptURL)), &exceptionMessage);
callOnMainThread([evaluateCallback = WTFMove(m_evaluateCallback), message = exceptionMessage.isolatedCopy()] {
if (evaluateCallback)
Modified: trunk/Source/WebCore/worklets/WorkletGlobalScope.cpp (239568 => 239569)
--- trunk/Source/WebCore/worklets/WorkletGlobalScope.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/worklets/WorkletGlobalScope.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -61,7 +61,7 @@
ASSERT(document.page());
setSecurityOriginPolicy(SecurityOriginPolicy::create(m_topOrigin.copyRef()));
- setContentSecurityPolicy(std::make_unique<ContentSecurityPolicy>(URL { code.url() }, *this));
+ setContentSecurityPolicy(std::make_unique<ContentSecurityPolicy>(URL { m_code.url() }, *this));
}
WorkletGlobalScope::~WorkletGlobalScope()
Modified: trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp (239568 => 239569)
--- trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp 2019-01-01 19:29:55 UTC (rev 239568)
+++ trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp 2019-01-02 17:59:08 UTC (rev 239569)
@@ -877,7 +877,7 @@
// the libxml2 and Qt XMLDocumentParser implementations.
if (scriptElement.readyToBeParserExecuted())
- scriptElement.executeClassicScript(ScriptSourceCode(scriptElement.scriptContent(), document()->url(), m_scriptStartPosition, JSC::SourceProviderSourceType::Program, InlineClassicScript::create(scriptElement)));
+ scriptElement.executeClassicScript(ScriptSourceCode(scriptElement.scriptContent(), URL(document()->url()), m_scriptStartPosition, JSC::SourceProviderSourceType::Program, InlineClassicScript::create(scriptElement)));
else if (scriptElement.willBeParserExecuted() && scriptElement.loadableScript()) {
m_pendingScript = PendingScript::create(scriptElement, *scriptElement.loadableScript());
m_pendingScript->setClient(*this);