OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 static void internalAddMessage(Page* page, MessageType type, MessageLevel level,
ScriptState* state, PassRefPtr<ScriptArguments> prpArguments, bool acceptNoArgu
ments = false, bool printTrace = false) | 62 static void internalAddMessage(Page* page, MessageType type, MessageLevel level,
ScriptState* state, PassRefPtr<ScriptArguments> prpArguments, bool acceptNoArgu
ments = false, bool printTrace = false) |
63 { | 63 { |
64 RefPtr<ScriptArguments> arguments = prpArguments; | 64 RefPtr<ScriptArguments> arguments = prpArguments; |
65 | 65 |
66 if (!page) | 66 if (!page) |
67 return; | 67 return; |
68 | 68 |
69 if (!acceptNoArguments && !arguments->argumentCount()) | 69 if (!acceptNoArguments && !arguments->argumentCount()) |
70 return; | 70 return; |
71 | 71 |
72 size_t stackSize = printTrace ? ScriptCallStack::maxCallStackSizeToCapture :
1; | 72 String executionContextURL = state->scriptExecutionContext()->url().string()
; |
73 RefPtr<ScriptCallStack> callStack(createScriptCallStack(state, stackSize)); | 73 bool reportDetailedMessage = page->chrome().client()->shouldReportDetailedMe
ssageForContext(state->context()) || page->chrome().client()->shouldReportDetail
edMessageForURL(executionContextURL); |
| 74 |
| 75 size_t stackSize = printTrace || reportDetailedMessage ? ScriptCallStack::ma
xCallStackSizeToCapture : 1; |
| 76 RefPtr<ScriptCallStack> callStack(createScriptCallStack(stackSize)); |
74 const ScriptCallFrame& lastCaller = callStack->at(0); | 77 const ScriptCallFrame& lastCaller = callStack->at(0); |
75 | 78 |
76 String message; | 79 String message; |
77 bool gotMessage = arguments->getFirstArgumentAsString(message); | 80 bool gotMessage = arguments->getFirstArgumentAsString(message); |
78 InspectorInstrumentation::addMessageToConsole(page, ConsoleAPIMessageSource,
type, level, message, state, arguments); | 81 InspectorInstrumentation::addMessageToConsole(page, ConsoleAPIMessageSource,
type, level, message, state, arguments); |
79 | 82 |
80 if (gotMessage) | 83 if (gotMessage) { |
81 page->chrome().client()->addMessageToConsole(ConsoleAPIMessageSource, ty
pe, level, message, lastCaller.lineNumber(), lastCaller.sourceURL()); | 84 String details; |
| 85 if (reportDetailedMessage) |
| 86 details = page->chrome().generateConsoleMessageDetails(callStack, ex
ecutionContextURL); |
| 87 |
| 88 page->chrome().client()->addMessageToConsole(ConsoleAPIMessageSource, le
vel, message, lastCaller.lineNumber(), lastCaller.sourceURL(), details); |
| 89 } |
82 } | 90 } |
83 | 91 |
84 void Console::debug(ScriptState* state, PassRefPtr<ScriptArguments> arguments) | 92 void Console::debug(ScriptState* state, PassRefPtr<ScriptArguments> arguments) |
85 { | 93 { |
86 internalAddMessage(page(), LogMessageType, DebugMessageLevel, state, argumen
ts); | 94 internalAddMessage(page(), LogMessageType, DebugMessageLevel, state, argumen
ts); |
87 } | 95 } |
88 | 96 |
89 void Console::error(ScriptState* state, PassRefPtr<ScriptArguments> arguments) | 97 void Console::error(ScriptState* state, PassRefPtr<ScriptArguments> arguments) |
90 { | 98 { |
91 internalAddMessage(page(), LogMessageType, ErrorMessageLevel, state, argumen
ts); | 99 internalAddMessage(page(), LogMessageType, ErrorMessageLevel, state, argumen
ts); |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 } | 238 } |
231 | 239 |
232 Page* Console::page() const | 240 Page* Console::page() const |
233 { | 241 { |
234 if (!m_frame) | 242 if (!m_frame) |
235 return 0; | 243 return 0; |
236 return m_frame->page(); | 244 return m_frame->page(); |
237 } | 245 } |
238 | 246 |
239 } // namespace WebCore | 247 } // namespace WebCore |
OLD | NEW |