Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / chrome / renderer / extensions / console.h
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_RENDERER_EXTENSIONS_CONSOLE_H_
6 #define CHROME_RENDERER_EXTENSIONS_CONSOLE_H_
7
8 #include <string>
9
10 #include "content/public/common/console_message_level.h"
11 #include "v8/include/v8.h"
12
13 namespace content {
14 class RenderView;
15 }
16
17 namespace extensions {
18
19 // Utility for logging messages to RenderViews.
20 namespace console {
21
22 // Adds |message| to the console of |render_view| at various log levels.
23 void Debug(content::RenderView* render_view, const std::string& message);
24 void Log(content::RenderView* render_view, const std::string& message);
25 void Warn(content::RenderView* render_view, const std::string& message);
26 void Error(content::RenderView* render_view, const std::string& message);
27
28 // Logs an Error then crashes the current process.
29 void Fatal(content::RenderView* render_view, const std::string& message);
30
31 void AddMessage(content::RenderView* render_view,
32                 content::ConsoleMessageLevel level,
33                 const std::string& message);
34
35 // Adds |message| to the console that hosts |context|, if any.
36 void Debug(v8::Handle<v8::Context> context, const std::string& message);
37 void Log(v8::Handle<v8::Context> context, const std::string& message);
38 void Warn(v8::Handle<v8::Context> context, const std::string& message);
39 void Error(v8::Handle<v8::Context> context, const std::string& message);
40
41 // Logs an Error then crashes the current process.
42 void Fatal(v8::Handle<v8::Context> context, const std::string& message);
43
44 void AddMessage(v8::Handle<v8::Context> context,
45                 content::ConsoleMessageLevel level,
46                 const std::string& message);
47
48 // Returns a new v8::Object with each standard log method (Debug/Log/Warn/Error)
49 // bound to respective debug/log/warn/error methods. This is a direct drop-in
50 // replacement for the standard devtools console.* methods usually accessible
51 // from JS.
52 v8::Local<v8::Object> AsV8Object();
53
54 }  // namespace console
55
56 }  // namespace extensions
57
58 #endif  // CHROME_RENDERER_EXTENSIONS_CONSOLE_H_