Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index 6d2a060598458f4b7cd1267c85f963cb2b87bd16..3fae4b1f9eea86152c8e55f1467b406bd227cdeb 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -2626,7 +2626,7 @@ bool Document::dispatchBeforeUnloadEvent(Chrome& chrome, bool& didAllowNavigatio |
return true; |
if (didAllowNavigation) { |
- addConsoleMessage(JSMessageSource, ErrorMessageLevel, "Blocked attempt to show multiple 'beforeunload' confirmation panels for a single navigation."); |
+ addConsoleMessage(ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, "Blocked attempt to show multiple 'beforeunload' confirmation panels for a single navigation.")); |
return true; |
} |
@@ -2745,7 +2745,7 @@ void Document::write(const SegmentedString& text, Document* ownerDocument, Excep |
bool hasInsertionPoint = m_parser && m_parser->hasInsertionPoint(); |
if (!hasInsertionPoint && m_ignoreDestructiveWriteCount) { |
- addConsoleMessage(JSMessageSource, WarningMessageLevel, ExceptionMessages::failedToExecute("write", "Document", "It isn't possible to write into a document from an asynchronously-loaded external script unless it is explicitly opened.")); |
+ addConsoleMessage(ConsoleMessage::create(JSMessageSource, WarningMessageLevel, ExceptionMessages::failedToExecute("write", "Document", "It isn't possible to write into a document from an asynchronously-loaded external script unless it is explicitly opened."))); |
return; |
} |
@@ -2794,7 +2794,9 @@ EventTarget* Document::errorEventTarget() |
void Document::logExceptionToConsole(const String& errorMessage, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack) |
{ |
- internalAddMessage(JSMessageSource, ErrorMessageLevel, errorMessage, sourceURL, lineNumber, callStack, 0); |
+ RefPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, errorMessage, sourceURL, lineNumber); |
+ consoleMessage->setCallStack(callStack); |
+ addMessage(consoleMessage.release()); |
} |
void Document::setURL(const KURL& url) |
@@ -3089,13 +3091,13 @@ void Document::maybeHandleHttpRefresh(const String& content, HttpRefreshType htt |
if (protocolIsJavaScript(refreshURL)) { |
String message = "Refused to refresh " + m_url.elidedString() + " to a javascript: URL"; |
- addConsoleMessage(SecurityMessageSource, ErrorMessageLevel, message); |
+ addConsoleMessage(ConsoleMessage::create(SecurityMessageSource, ErrorMessageLevel, message)); |
return; |
} |
if (httpRefreshType == HttpRefreshFromMetaTag && isSandboxed(SandboxAutomaticFeatures)) { |
String message = "Refused to execute the redirect specified via '<meta http-equiv='refresh' content='...'>'. The document is sandboxed, and the 'allow-scripts' keyword is not set."; |
- addConsoleMessage(SecurityMessageSource, ErrorMessageLevel, message); |
+ addConsoleMessage(ConsoleMessage::create(SecurityMessageSource, ErrorMessageLevel, message)); |
return; |
} |
m_frame->navigationScheduler().scheduleRedirect(delay, refreshURL); |
@@ -3126,7 +3128,9 @@ void Document::processHttpEquivXFrameOptions(const AtomicString& content) |
// intent, we must navigate away from the possibly partially-rendered document to a location that |
// doesn't inherit the parent's SecurityOrigin. |
frame->navigationScheduler().scheduleLocationChange(this, SecurityOrigin::urlWithUniqueSecurityOrigin(), Referrer()); |
- addConsoleMessageWithRequestIdentifier(SecurityMessageSource, ErrorMessageLevel, message, requestIdentifier); |
+ RefPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(SecurityMessageSource, ErrorMessageLevel, message); |
+ consoleMessage->setRequestIdentifier(requestIdentifier); |
+ addMessage(consoleMessage.release()); |
} |
} |
@@ -3184,7 +3188,7 @@ void Document::processReferrerPolicy(const String& policy) |
} else if (equalIgnoringCase(policy, "default")) { |
setReferrerPolicy(ReferrerPolicyDefault); |
} else { |
- addConsoleMessage(RenderingMessageSource, ErrorMessageLevel, "Failed to set referrer policy: The value '" + policy + "' is not one of 'always', 'default', 'never', or 'origin'. Defaulting to 'never'."); |
+ addConsoleMessage(ConsoleMessage::create(RenderingMessageSource, ErrorMessageLevel, "Failed to set referrer policy: The value '" + policy + "' is not one of 'always', 'default', 'never', or 'origin'. Defaulting to 'never'.")); |
setReferrerPolicy(ReferrerPolicyNever); |
} |
} |
@@ -4342,7 +4346,7 @@ bool Document::execCommand(const String& commandName, bool userInterface, const |
static bool inExecCommand = false; |
if (inExecCommand) { |
String message = "We don't execute document.execCommand() this time, because it is called recursively."; |
- addConsoleMessage(JSMessageSource, WarningMessageLevel, message); |
+ addConsoleMessage(ConsoleMessage::create(JSMessageSource, WarningMessageLevel, message)); |
return false; |
} |
TemporaryChange<bool> executeScope(inExecCommand, true); |
@@ -5001,48 +5005,25 @@ void Document::reportBlockedScriptExecutionToInspector(const String& directiveTe |
InspectorInstrumentation::scriptExecutionBlockedByCSP(this, directiveText); |
} |
-void Document::addMessage(MessageSource source, MessageLevel level, const String& message, const String& sourceURL, unsigned lineNumber, ScriptState* scriptState) |
-{ |
- internalAddMessage(source, level, message, sourceURL, lineNumber, nullptr, scriptState); |
-} |
- |
-void Document::internalAddMessage(MessageSource source, MessageLevel level, const String& message, const String& sourceURL, unsigned lineNumber, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack, ScriptState* scriptState) |
+void Document::addMessage(PassRefPtr<ConsoleMessage> consoleMessage) |
{ |
if (!isContextThread()) { |
- m_taskRunner->postTask(AddConsoleMessageTask::create(source, level, message)); |
+ m_taskRunner->postTask(AddConsoleMessageTask::create(consoleMessage->source(), consoleMessage->level(), consoleMessage->message())); |
return; |
} |
if (!m_frame) |
return; |
- String messageURL = sourceURL; |
- if (!scriptState && sourceURL.isNull() && !lineNumber) { |
- messageURL = url().string(); |
+ if (!consoleMessage->scriptState() && consoleMessage->url().isNull() && !consoleMessage->lineNumber()) { |
+ consoleMessage->setURL(url().string()); |
if (parsing() && !isInDocumentWrite() && scriptableDocumentParser()) { |
ScriptableDocumentParser* parser = scriptableDocumentParser(); |
if (!parser->isWaitingForScripts() && !parser->isExecutingScript()) |
- lineNumber = parser->lineNumber().oneBasedInt(); |
+ consoleMessage->setLineNumber(parser->lineNumber().oneBasedInt()); |
} |
} |
- RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(source, level, message, messageURL, lineNumber); |
- consoleMessage->setCallStack(callStack); |
- consoleMessage->setScriptState(scriptState); |
- m_frame->console().addMessage(consoleMessage.release()); |
-} |
- |
-void Document::addConsoleMessageWithRequestIdentifier(MessageSource source, MessageLevel level, const String& message, unsigned long requestIdentifier) |
-{ |
- if (!isContextThread()) { |
- m_taskRunner->postTask(AddConsoleMessageTask::create(source, level, message)); |
- return; |
- } |
- |
- if (m_frame) { |
- RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(source, level, message); |
- consoleMessage->setRequestIdentifier(requestIdentifier); |
- m_frame->console().addMessage(consoleMessage.release()); |
- } |
+ m_frame->console().addMessage(consoleMessage); |
} |
// FIXME(crbug.com/305497): This should be removed after ExecutionContext-LocalDOMWindow migration. |