1 // Copyright 2014 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 ConsoleMessage_h 6 #define ConsoleMessage_h 7 8 #include "bindings/core/v8/ScriptState.h" 9 #include "core/frame/ConsoleTypes.h" 10 #include "core/inspector/ConsoleAPITypes.h" 11 #include "core/inspector/ScriptCallStack.h" 12 #include "platform/heap/Handle.h" 13 #include "wtf/Forward.h" 14 #include "wtf/PassRefPtr.h" 15 #include "wtf/RefCounted.h" 16 #include "wtf/text/WTFString.h" 17 18 namespace blink { 19 20 class ScriptArguments; 21 class ScriptCallStack; 22 class ScriptState; 23 class WorkerGlobalScopeProxy; 24 25 class ConsoleMessage FINAL: public RefCountedWillBeGarbageCollectedFinalized<ConsoleMessage> { 26 public: 27 static PassRefPtrWillBeRawPtr<ConsoleMessage> create(MessageSource source, MessageLevel level, const String& message, const String& url = String(), unsigned lineNumber = 0, unsigned columnNumber = 0) 28 { 29 return adoptRefWillBeNoop(new ConsoleMessage(source, level, message, url, lineNumber, columnNumber)); 30 } 31 ~ConsoleMessage(); 32 33 MessageType type() const; 34 void setType(MessageType); 35 int scriptId() const; 36 void setScriptId(int); 37 const String& url() const; 38 void setURL(const String&); 39 unsigned lineNumber() const; 40 void setLineNumber(unsigned); 41 PassRefPtrWillBeRawPtr<ScriptCallStack> callStack() const; 42 void setCallStack(PassRefPtrWillBeRawPtr<ScriptCallStack>); 43 ScriptState* scriptState() const; 44 void setScriptState(ScriptState*); 45 PassRefPtrWillBeRawPtr<ScriptArguments> scriptArguments() const; 46 void setScriptArguments(PassRefPtrWillBeRawPtr<ScriptArguments>); 47 unsigned long requestIdentifier() const; 48 void setRequestIdentifier(unsigned long); 49 double timestamp() const; 50 void setTimestamp(double); workerGlobalScopeProxy()51 WorkerGlobalScopeProxy* workerGlobalScopeProxy() { return m_workerProxy; } setWorkerGlobalScopeProxy(WorkerGlobalScopeProxy * proxy)52 void setWorkerGlobalScopeProxy(WorkerGlobalScopeProxy* proxy) { m_workerProxy = proxy; } 53 54 MessageSource source() const; 55 MessageLevel level() const; 56 const String& message() const; 57 unsigned columnNumber() const; 58 59 void frameWindowDiscarded(LocalDOMWindow*); 60 unsigned argumentCount(); 61 62 void collectCallStack(); 63 64 void trace(Visitor*); 65 66 private: 67 ConsoleMessage(MessageSource, MessageLevel, const String& message, const String& url = String(), unsigned lineNumber = 0, unsigned columnNumber = 0); 68 69 MessageSource m_source; 70 MessageLevel m_level; 71 MessageType m_type; 72 String m_message; 73 int m_scriptId; 74 String m_url; 75 unsigned m_lineNumber; 76 unsigned m_columnNumber; 77 RefPtrWillBeMember<ScriptCallStack> m_callStack; 78 OwnPtr<ScriptStateProtectingContext> m_scriptState; 79 RefPtrWillBeMember<ScriptArguments> m_scriptArguments; 80 unsigned long m_requestIdentifier; 81 double m_timestamp; 82 WorkerGlobalScopeProxy* m_workerProxy; 83 }; 84 85 } // namespace blink 86 87 #endif // ConsoleMessage_h 88