| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Apple Inc. All rights reserved. | 2 * Copyright (C) 2013 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 27 */ | 27 */ |
| 28 | 28 |
| 29 #include "config.h" | 29 #include "config.h" |
| 30 #include "core/page/PageConsole.h" | 30 #include "core/page/PageConsole.h" |
| 31 | 31 |
| 32 #include "core/dom/Document.h" | 32 #include "core/dom/Document.h" |
| 33 #include "core/dom/ScriptableDocumentParser.h" | 33 #include "core/dom/ScriptableDocumentParser.h" |
| 34 #include "core/inspector/ConsoleAPITypes.h" | 34 #include "core/inspector/ConsoleAPITypes.h" |
| 35 #include "core/inspector/InspectorAgent.h" |
| 35 #include "core/inspector/InspectorConsoleInstrumentation.h" | 36 #include "core/inspector/InspectorConsoleInstrumentation.h" |
| 36 #include "core/inspector/ScriptCallStack.h" | 37 #include "core/inspector/ScriptCallStack.h" |
| 37 #include "core/page/Chrome.h" | 38 #include "core/page/Chrome.h" |
| 38 #include "core/page/ChromeClient.h" | 39 #include "core/page/ChromeClient.h" |
| 39 #include "core/page/ConsoleTypes.h" | 40 #include "core/page/ConsoleTypes.h" |
| 40 #include "core/page/Page.h" | 41 #include "core/page/Page.h" |
| 41 #include "wtf/text/WTFString.h" | 42 #include "wtf/text/WTFString.h" |
| 42 | 43 |
| 43 namespace WebCore { | 44 namespace WebCore { |
| 44 | 45 |
| 45 namespace { | 46 namespace { |
| 46 | 47 |
| 47 int muteCount = 0; | 48 int muteCount = 0; |
| 48 | 49 |
| 50 PassOwnPtr<ConsoleMessage> createConsoleMessage(Page* page, MessageSource source
, MessageLevel level, const String& message, const String& url, unsigned lineNum
ber, unsigned columnNumber, PassRefPtr<ScriptCallStack> callStack, ScriptState*
state, unsigned long requestIdentifier) |
| 51 { |
| 52 String executionContextURL = page->mainFrame()->document()->url().string(); |
| 53 bool reportDetailedMessage = (state && page->chrome().client()->shouldReport
DetailedMessageForContext(state->context())) |
| 54 || page->chrome().client()->shouldReportDetailedMessageForURL(url) |
| 55 || page->chrome().client()->shouldReportDetailedMessageForURL(executionC
ontextURL); |
| 56 |
| 57 if (callStack) |
| 58 return adoptPtr(new ConsoleMessage(reportDetailedMessage, source, LogMes
sageType, level, message, executionContextURL, callStack, requestIdentifier)); |
| 59 |
| 60 return adoptPtr(new ConsoleMessage(reportDetailedMessage, source, LogMessage
Type, level, message, executionContextURL, url, lineNumber, columnNumber, state,
requestIdentifier)); |
| 49 } | 61 } |
| 50 | 62 |
| 63 } // anonymous namespace |
| 64 |
| 51 PageConsole::PageConsole(Page* page) | 65 PageConsole::PageConsole(Page* page) |
| 52 : m_page(page) | 66 : m_page(page) |
| 53 { | 67 { |
| 54 } | 68 } |
| 55 | 69 |
| 56 PageConsole::~PageConsole() { } | 70 PageConsole::~PageConsole() { } |
| 57 | 71 |
| 58 void PageConsole::addMessage(MessageSource source, MessageLevel level, const Str
ing& message, unsigned long requestIdentifier, Document* document) | 72 void PageConsole::addMessage(MessageSource source, MessageLevel level, const Str
ing& message, unsigned long requestIdentifier, Document* document) |
| 59 { | 73 { |
| 60 String url; | 74 String url; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 76 | 90 |
| 77 void PageConsole::addMessage(MessageSource source, MessageLevel level, const Str
ing& message, const String& url, unsigned lineNumber, unsigned columnNumber, Pas
sRefPtr<ScriptCallStack> callStack, ScriptState* state, unsigned long requestIde
ntifier) | 91 void PageConsole::addMessage(MessageSource source, MessageLevel level, const Str
ing& message, const String& url, unsigned lineNumber, unsigned columnNumber, Pas
sRefPtr<ScriptCallStack> callStack, ScriptState* state, unsigned long requestIde
ntifier) |
| 78 { | 92 { |
| 79 if (muteCount && source != ConsoleAPIMessageSource) | 93 if (muteCount && source != ConsoleAPIMessageSource) |
| 80 return; | 94 return; |
| 81 | 95 |
| 82 Page* page = this->page(); | 96 Page* page = this->page(); |
| 83 if (!page) | 97 if (!page) |
| 84 return; | 98 return; |
| 85 | 99 |
| 100 OwnPtr<ConsoleMessage> consoleMessage = createConsoleMessage(page, source, l
evel, message, url, lineNumber, columnNumber, callStack, state, requestIdentifie
r); |
| 101 |
| 102 if (source != CSSMessageSource) |
| 103 page->chrome().client()->addMessageToConsole(source, level, message, lin
eNumber, url, consoleMessage->generateJSONWithoutArguments()->toJSONString()); |
| 104 |
| 86 if (callStack) | 105 if (callStack) |
| 87 InspectorInstrumentation::addMessageToConsole(page, source, LogMessageTy
pe, level, message, callStack, requestIdentifier); | 106 InspectorInstrumentation::addMessageToConsole(page, consoleMessage.relea
se(), InspectorAgent::DontCheckFrontend); |
| 88 else | 107 else |
| 89 InspectorInstrumentation::addMessageToConsole(page, source, LogMessageTy
pe, level, message, url, lineNumber, columnNumber, state, requestIdentifier); | 108 InspectorInstrumentation::addMessageToConsole(page, consoleMessage.relea
se(), InspectorAgent::CheckFrontend); |
| 90 | |
| 91 if (source == CSSMessageSource) | |
| 92 return; | |
| 93 | |
| 94 page->chrome().client()->addMessageToConsole(source, level, message, lineNum
ber, url); | |
| 95 } | 109 } |
| 96 | 110 |
| 97 // static | 111 // static |
| 98 void PageConsole::mute() | 112 void PageConsole::mute() |
| 99 { | 113 { |
| 100 muteCount++; | 114 muteCount++; |
| 101 } | 115 } |
| 102 | 116 |
| 103 // static | 117 // static |
| 104 void PageConsole::unmute() | 118 void PageConsole::unmute() |
| 105 { | 119 { |
| 106 ASSERT(muteCount > 0); | 120 ASSERT(muteCount > 0); |
| 107 muteCount--; | 121 muteCount--; |
| 108 } | 122 } |
| 109 | 123 |
| 110 } // namespace WebCore | 124 } // namespace WebCore |
| OLD | NEW |