diff options
| author | Ben Murdoch <benm@google.com> | 2010-01-28 15:06:32 +0000 |
|---|---|---|
| committer | Ben Murdoch <benm@google.com> | 2010-02-04 10:44:18 +0000 |
| commit | 3141e0a62abe57e93e5d716895a2a57cc052bb50 (patch) | |
| tree | 95927990d870487c71e3813e6631bed5bdcb3b78 /core/java/android/webkit/CallbackProxy.java | |
| parent | 5d9661be8eaa2a4702a4d3c0fa0fd07a8638b503 (diff) | |
Add new ConsoleMessage class that adds more information (such as the Message Log Level from WebCore) and a new overload of onConsoleMessage that takes this as a parameter.
This change requires a corresponding change in external/webkit.
BUG=2401755
Change-Id: Iea2c58e93172240f162d8ad57eb2c8f2352f8162
Diffstat (limited to 'core/java/android/webkit/CallbackProxy.java')
| -rw-r--r-- | core/java/android/webkit/CallbackProxy.java | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/core/java/android/webkit/CallbackProxy.java b/core/java/android/webkit/CallbackProxy.java index 6790c5db21cb..61a2d2ef046d 100644 --- a/core/java/android/webkit/CallbackProxy.java +++ b/core/java/android/webkit/CallbackProxy.java @@ -651,7 +651,42 @@ class CallbackProxy extends Handler { String message = msg.getData().getString("message"); String sourceID = msg.getData().getString("sourceID"); int lineNumber = msg.getData().getInt("lineNumber"); - mWebChromeClient.onConsoleMessage(message, lineNumber, sourceID); + int msgLevel = msg.getData().getInt("msgLevel"); + int numberOfMessageLevels = ConsoleMessage.MessageLevel.values().length; + // Sanity bounds check as we'll index an array with msgLevel + if (msgLevel < 0 || msgLevel >= numberOfMessageLevels) { + msgLevel = 0; + } + + ConsoleMessage.MessageLevel messageLevel = + ConsoleMessage.MessageLevel.values()[msgLevel]; + + if (!mWebChromeClient.onConsoleMessage(new ConsoleMessage(message, sourceID, + lineNumber, messageLevel))) { + // If false was returned the user did not provide their own console function so + // we should output some default messages to the system log. + String logTag = "Web Console"; + String logMessage = message + " at " + sourceID + ":" + lineNumber; + + switch (messageLevel) { + case TIP: + Log.v(logTag, logMessage); + break; + case LOG: + Log.i(logTag, logMessage); + break; + case WARNING: + Log.w(logTag, logMessage); + break; + case ERROR: + Log.e(logTag, logMessage); + break; + case DEBUG: + Log.d(logTag, logMessage); + break; + } + } + break; case GET_VISITED_HISTORY: @@ -1286,8 +1321,10 @@ class CallbackProxy extends Handler { * occurred. * @param sourceID The filename of the source file in which the error * occurred. + * @param msgLevel The message level, corresponding to the MessageLevel enum in + * WebCore/page/Console.h */ - public void addMessageToConsole(String message, int lineNumber, String sourceID) { + public void addMessageToConsole(String message, int lineNumber, String sourceID, int msgLevel) { if (mWebChromeClient == null) { return; } @@ -1296,6 +1333,7 @@ class CallbackProxy extends Handler { msg.getData().putString("message", message); msg.getData().putString("sourceID", sourceID); msg.getData().putInt("lineNumber", lineNumber); + msg.getData().putInt("msgLevel", msgLevel); sendMessage(msg); } |
