summaryrefslogtreecommitdiff
path: root/core/java/android/webkit/CallbackProxy.java
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-01-28 15:06:32 +0000
committerBen Murdoch <benm@google.com>2010-02-04 10:44:18 +0000
commit3141e0a62abe57e93e5d716895a2a57cc052bb50 (patch)
tree95927990d870487c71e3813e6631bed5bdcb3b78 /core/java/android/webkit/CallbackProxy.java
parent5d9661be8eaa2a4702a4d3c0fa0fd07a8638b503 (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.java42
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);
}