From 6952a239465811c26838e177d35222fd5229e393 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sun, 5 May 2019 20:50:21 +0100 Subject: Provide new browser_window_console_log() API Signed-off-by: Daniel Silverstone --- desktop/browser.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'desktop') diff --git a/desktop/browser.c b/desktop/browser.c index d26abd043..1a7493537 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -3427,3 +3427,46 @@ bool browser_window_exec(struct browser_window *bw, const char *src, size_t srcl */ return content_exec(bw->current_content, src, srclen); } + +/* exported interface documented in browser_window.h */ +nserror browser_window_console_log(struct browser_window *bw, + browser_window_console_source src, + const char *msg, + size_t msglen, + browser_window_console_flags flags) +{ + browser_window_console_flags log_level = flags & BW_CS_FLAG_LEVEL_MASK; + struct browser_window *root = browser_window_get_root(bw); + + assert(msg != NULL); + assert(msglen > 0); + + /* bw is the target of the log, but root is where we log it */ + + NSLOG(netsurf, DEEPDEBUG, "Logging message in %p targetted at %p", root, bw); + NSLOG(netsurf, DEEPDEBUG, "Log came from %s", + ((src == BW_CS_INPUT) ? "user input" : + (src == BW_CS_SCRIPT_ERROR) ? "script error" : + (src == BW_CS_SCRIPT_CONSOLE) ? "script console" : + "unknown input location")); + + switch (log_level) { + case BW_CS_FLAG_LEVEL_LOG: + NSLOG(netsurf, VERBOSE, "%.*s", (int)msglen, msg); + break; + case BW_CS_FLAG_LEVEL_INFO: + NSLOG(netsurf, INFO, "%.*s", (int)msglen, msg); + break; + case BW_CS_FLAG_LEVEL_WARN: + NSLOG(netsurf, WARNING, "%.*s", (int)msglen, msg); + break; + case BW_CS_FLAG_LEVEL_ERROR: + NSLOG(netsurf, ERROR, "%.*s", (int)msglen, msg); + break; + default: + /* Unreachable */ + break; + } + + return NSERROR_OK; +} -- cgit v1.2.3