Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Make logging console messages to STDOUT work in WebKit2 via a new set…
…ting.

https://bugs.webkit.org/show_bug.cgi?id=107157

Reviewed by Joseph Pecoraro.

Source/WebCore:

* page/Console.cpp:
(WebCore::Console::addMessage): Check logsPageMessagesToSystemConsoleEnabled().
(WebCore::internalAddMessage): Ditto. Refactored to return early and drop printExceptions argument.
(WebCore::Console::error): Removed call to shouldPrintExceptions().
(WebCore::Console::log): Ditto.
(WebCore::Console::warn): Ditto.
(WebCore::Console::dir): Ditto.
(WebCore::Console::dirxml): Ditto.
(WebCore::Console::clear): Ditto.
(WebCore::Console::trace): Ditto.
(WebCore::Console::assertCondition): Ditto.
* page/Settings.in: Added logsPageMessagesToSystemConsoleEnabled.

Source/WebKit2:

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetLogsPageMessagesToSystemConsoleEnabled): Added.
(WKPreferencesGetLogsPageMessagesToSystemConsoleEnabled): Added.
* UIProcess/API/C/WKPreferencesPrivate.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::createInspectorPageGroup): Enable logging in debug builds.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Set new setting in WebCore.

Canonical link: https://commits.webkit.org/125410@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
xeenon committed Jan 17, 2013
1 parent ee8dac0 commit e28487b
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 19 deletions.
21 changes: 21 additions & 0 deletions Source/WebCore/ChangeLog
@@ -1,3 +1,24 @@
2013-01-17 Timothy Hatcher <timothy@apple.com>

Make logging console messages to STDOUT work in WebKit2 via a new setting.

https://bugs.webkit.org/show_bug.cgi?id=107157

Reviewed by Joseph Pecoraro.

* page/Console.cpp:
(WebCore::Console::addMessage): Check logsPageMessagesToSystemConsoleEnabled().
(WebCore::internalAddMessage): Ditto. Refactored to return early and drop printExceptions argument.
(WebCore::Console::error): Removed call to shouldPrintExceptions().
(WebCore::Console::log): Ditto.
(WebCore::Console::warn): Ditto.
(WebCore::Console::dir): Ditto.
(WebCore::Console::dirxml): Ditto.
(WebCore::Console::clear): Ditto.
(WebCore::Console::trace): Ditto.
(WebCore::Console::assertCondition): Ditto.
* page/Settings.in: Added logsPageMessagesToSystemConsoleEnabled.

2013-01-17 Sheriff Bot <webkit.review.bot@gmail.com>

Unreviewed, rolling out r140023.
Expand Down
39 changes: 20 additions & 19 deletions Source/WebCore/page/Console.cpp
Expand Up @@ -176,7 +176,7 @@ void Console::addMessage(MessageSource source, MessageLevel level, const String&

page->chrome()->client()->addMessageToConsole(source, level, message, lineNumber, url);

if (!shouldPrintExceptions())
if (!m_frame->settings()->logsPageMessagesToSystemConsoleEnabled() && !shouldPrintExceptions())
return;

printSourceURLAndLine(url, lineNumber);
Expand All @@ -185,7 +185,7 @@ void Console::addMessage(MessageSource source, MessageLevel level, const String&
printf(" %s\n", message.utf8().data());
}

static void internalAddMessage(Page* page, MessageType type, MessageLevel level, ScriptState* state, PassRefPtr<ScriptArguments> prpArguments, bool printExceptions, bool acceptNoArguments = false, bool printTrace = false)
static void internalAddMessage(Page* page, MessageType type, MessageLevel level, ScriptState* state, PassRefPtr<ScriptArguments> prpArguments, bool acceptNoArguments = false, bool printTrace = false)
{
RefPtr<ScriptArguments> arguments = prpArguments;

Expand All @@ -209,21 +209,22 @@ static void internalAddMessage(Page* page, MessageType type, MessageLevel level,
if (gotMessage)
page->chrome()->client()->addMessageToConsole(ConsoleAPIMessageSource, type, level, message, lastCaller.lineNumber(), lastCaller.sourceURL());

if (printExceptions) {
printSourceURLAndLine(lastCaller.sourceURL(), lastCaller.lineNumber());
printMessageSourceAndLevelPrefix(ConsoleAPIMessageSource, level);
if (!page->settings()->logsPageMessagesToSystemConsoleEnabled() && !Console::shouldPrintExceptions())
return;

for (unsigned i = 0; i < arguments->argumentCount(); ++i) {
String argAsString = arguments->argumentAt(i).toString(arguments->globalState());
printf(" %s", argAsString.utf8().data());
}
printSourceURLAndLine(lastCaller.sourceURL(), lastCaller.lineNumber());
printMessageSourceAndLevelPrefix(ConsoleAPIMessageSource, level);

printf("\n");
for (size_t i = 0; i < arguments->argumentCount(); ++i) {
String argAsString = arguments->argumentAt(i).toString(arguments->globalState());
printf(" %s", argAsString.utf8().data());
}

printf("\n");

if (printTrace) {
printf("Stack Trace\n");
for (unsigned i = 0; i < callStack->size(); ++i) {
for (size_t i = 0; i < callStack->size(); ++i) {
String functionName = String(callStack->at(i).functionName());
printf("\t%s\n", functionName.utf8().data());
}
Expand All @@ -238,7 +239,7 @@ void Console::debug(ScriptState* state, PassRefPtr<ScriptArguments> arguments)

void Console::error(ScriptState* state, PassRefPtr<ScriptArguments> arguments)
{
internalAddMessage(page(), LogMessageType, ErrorMessageLevel, state, arguments, shouldPrintExceptions());
internalAddMessage(page(), LogMessageType, ErrorMessageLevel, state, arguments);
}

void Console::info(ScriptState* state, PassRefPtr<ScriptArguments> arguments)
Expand All @@ -248,40 +249,40 @@ void Console::info(ScriptState* state, PassRefPtr<ScriptArguments> arguments)

void Console::log(ScriptState* state, PassRefPtr<ScriptArguments> arguments)
{
internalAddMessage(page(), LogMessageType, LogMessageLevel, state, arguments, shouldPrintExceptions());
internalAddMessage(page(), LogMessageType, LogMessageLevel, state, arguments);
}

void Console::warn(ScriptState* state, PassRefPtr<ScriptArguments> arguments)
{
internalAddMessage(page(), LogMessageType, WarningMessageLevel, state, arguments, shouldPrintExceptions());
internalAddMessage(page(), LogMessageType, WarningMessageLevel, state, arguments);
}

void Console::dir(ScriptState* state, PassRefPtr<ScriptArguments> arguments)
{
internalAddMessage(page(), DirMessageType, LogMessageLevel, state, arguments, shouldPrintExceptions());
internalAddMessage(page(), DirMessageType, LogMessageLevel, state, arguments);
}

void Console::dirxml(ScriptState* state, PassRefPtr<ScriptArguments> arguments)
{
internalAddMessage(page(), DirXMLMessageType, LogMessageLevel, state, arguments, shouldPrintExceptions());
internalAddMessage(page(), DirXMLMessageType, LogMessageLevel, state, arguments);
}

void Console::clear(ScriptState* state, PassRefPtr<ScriptArguments> arguments)
{
internalAddMessage(page(), ClearMessageType, LogMessageLevel, state, arguments, shouldPrintExceptions(), true);
internalAddMessage(page(), ClearMessageType, LogMessageLevel, state, arguments, true);
}

void Console::trace(ScriptState* state, PassRefPtr<ScriptArguments> arguments)
{
internalAddMessage(page(), TraceMessageType, LogMessageLevel, state, arguments, shouldPrintExceptions(), true, shouldPrintExceptions());
internalAddMessage(page(), TraceMessageType, LogMessageLevel, state, arguments, true, true);
}

void Console::assertCondition(ScriptState* state, PassRefPtr<ScriptArguments> arguments, bool condition)
{
if (condition)
return;

internalAddMessage(page(), AssertMessageType, ErrorMessageLevel, state, arguments, shouldPrintExceptions(), true);
internalAddMessage(page(), AssertMessageType, ErrorMessageLevel, state, arguments, true);
}

void Console::count(ScriptState* state, PassRefPtr<ScriptArguments> arguments)
Expand Down
2 changes: 2 additions & 0 deletions Source/WebCore/page/Settings.in
Expand Up @@ -176,3 +176,5 @@ spatialNavigationEnabled initial=false
touchDragDropEnabled initial=false

unifiedTextCheckerEnabled initial=defaultUnifiedTextCheckerEnabled

logsPageMessagesToSystemConsoleEnabled initial=false
18 changes: 18 additions & 0 deletions Source/WebKit2/ChangeLog
@@ -1,3 +1,21 @@
2013-01-17 Timothy Hatcher <timothy@apple.com>

Make logging console messages to STDOUT work in WebKit2 via a new setting.

https://bugs.webkit.org/show_bug.cgi?id=107157

Reviewed by Joseph Pecoraro.

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetLogsPageMessagesToSystemConsoleEnabled): Added.
(WKPreferencesGetLogsPageMessagesToSystemConsoleEnabled): Added.
* UIProcess/API/C/WKPreferencesPrivate.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::createInspectorPageGroup): Enable logging in debug builds.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Set new setting in WebCore.

2013-01-17 Brady Eidson <beidson@apple.com>

Each NetworkConnectionToWebProcess should keep its own map of NetworkResourceLoaders
Expand Down
4 changes: 4 additions & 0 deletions Source/WebKit2/Shared/WebPreferencesStore.h
Expand Up @@ -137,7 +137,11 @@ namespace WebKit {
macro(UsesEncodingDetector, usesEncodingDetector, Bool, bool, false) \
macro(TextAutosizingEnabled, textAutosizingEnabled, Bool, bool, false) \
macro(AggressiveTileRetentionEnabled, aggressiveTileRetentionEnabled, Bool, bool, false) \
<<<<<<< HEAD
macro(QTKitEnabled, isQTKitEnabled, Bool, bool, true) \
=======
macro(LogsPageMessagesToSystemConsoleEnabled, logsPageMessagesToSystemConsoleEnabled, Bool, bool, false) \
>>>>>>> Make logging console messages to STDOUT work in WebKit2 via a new setting.
\

#define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \
Expand Down
11 changes: 11 additions & 0 deletions Source/WebKit2/UIProcess/API/C/WKPreferences.cpp
Expand Up @@ -1004,6 +1004,7 @@ bool WKPreferencesGetAggressiveTileRetentionEnabled(WKPreferencesRef preferences
return toImpl(preferencesRef)->aggressiveTileRetentionEnabled();
}

<<<<<<< HEAD
void WKPreferencesSetQTKitEnabled(WKPreferencesRef preferencesRef, bool enabled)
{
toImpl(preferencesRef)->setQTKitEnabled(enabled);
Expand All @@ -1012,4 +1013,14 @@ void WKPreferencesSetQTKitEnabled(WKPreferencesRef preferencesRef, bool enabled)
bool WKPreferencesGetQTKitEnabled(WKPreferencesRef preferencesRef)
{
return toImpl(preferencesRef)->isQTKitEnabled();
=======
void WKPreferencesSetLogsPageMessagesToSystemConsoleEnabled(WKPreferencesRef preferencesRef, bool enabled)
{
toImpl(preferencesRef)->setLogsPageMessagesToSystemConsoleEnabled(enabled);
}

bool WKPreferencesGetLogsPageMessagesToSystemConsoleEnabled(WKPreferencesRef preferencesRef)
{
return toImpl(preferencesRef)->logsPageMessagesToSystemConsoleEnabled();
>>>>>>> Make logging console messages to STDOUT work in WebKit2 via a new setting.
}
4 changes: 4 additions & 0 deletions Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h
Expand Up @@ -239,6 +239,10 @@ WK_EXPORT bool WKPreferencesGetPDFPluginEnabled(WKPreferencesRef preferences);
WK_EXPORT void WKPreferencesSetAggressiveTileRetentionEnabled(WKPreferencesRef preferences, bool enabled);
WK_EXPORT bool WKPreferencesGetAggressiveTileRetentionEnabled(WKPreferencesRef preferences);

// Defaults to false
WK_EXPORT void WKPreferencesSetLogsPageMessagesToSystemConsoleEnabled(WKPreferencesRef preferences, bool enabled);
WK_EXPORT bool WKPreferencesGetLogsPageMessagesToSystemConsoleEnabled(WKPreferencesRef preferences);

WK_EXPORT void WKPreferencesResetTestRunnerOverrides(WKPreferencesRef preferencesRef);

#ifdef __cplusplus
Expand Down
1 change: 1 addition & 0 deletions Source/WebKit2/UIProcess/WebInspectorProxy.cpp
Expand Up @@ -62,6 +62,7 @@ static PassRefPtr<WebPageGroup> createInspectorPageGroup()
#ifndef NDEBUG
// Allow developers to inspect the Web Inspector in debug builds.
pageGroup->preferences()->setDeveloperExtrasEnabled(true);
pageGroup->preferences()->setLogsPageMessagesToSystemConsoleEnabled(true);
#endif

pageGroup->preferences()->setApplicationChromeModeEnabled(true);
Expand Down
2 changes: 2 additions & 0 deletions Source/WebKit2/WebProcess/WebPage/WebPage.cpp
Expand Up @@ -2409,6 +2409,8 @@ void WebPage::updatePreferences(const WebPreferencesStore& store)
settings->setTextAutosizingEnabled(store.getBoolValueForKey(WebPreferencesKey::textAutosizingEnabledKey()));
#endif

settings->setLogsPageMessagesToSystemConsoleEnabled(store.getBoolValueForKey(WebPreferencesKey::logsPageMessagesToSystemConsoleEnabledKey()));

platformPreferencesDidChange(store);

if (m_drawingArea)
Expand Down

0 comments on commit e28487b

Please sign in to comment.