1e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)// found in the LICENSE file. 4e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 5e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#ifndef ConsoleMessage_h 6e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#define ConsoleMessage_h 7e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 8e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "bindings/core/v8/ScriptState.h" 9e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "core/frame/ConsoleTypes.h" 109e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#include "core/inspector/ConsoleAPITypes.h" 11e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "core/inspector/ScriptCallStack.h" 12e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "platform/heap/Handle.h" 13e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "wtf/Forward.h" 14e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "wtf/PassRefPtr.h" 15e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "wtf/RefCounted.h" 16e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "wtf/text/WTFString.h" 17e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 18e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)namespace blink { 19e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 209e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)class ScriptArguments; 21e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class ScriptCallStack; 22e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class ScriptState; 23e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class WorkerGlobalScopeProxy; 24e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 25e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class ConsoleMessage FINAL: public RefCountedWillBeGarbageCollectedFinalized<ConsoleMessage> { 26e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)public: 27e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static PassRefPtrWillBeRawPtr<ConsoleMessage> create(MessageSource source, MessageLevel level, const String& message, const String& url = String(), unsigned lineNumber = 0, unsigned columnNumber = 0) 28e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { 29e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return adoptRefWillBeNoop(new ConsoleMessage(source, level, message, url, lineNumber, columnNumber)); 30e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) } 31e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) ~ConsoleMessage(); 32e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 339e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) MessageType type() const; 349e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setType(MessageType); 357242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci int scriptId() const; 367242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void setScriptId(int); 379e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) const String& url() const; 389e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setURL(const String&); 399e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) unsigned lineNumber() const; 409e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setLineNumber(unsigned); 41e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) PassRefPtrWillBeRawPtr<ScriptCallStack> callStack() const; 42e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) void setCallStack(PassRefPtrWillBeRawPtr<ScriptCallStack>); 43e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) ScriptState* scriptState() const; 44e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) void setScriptState(ScriptState*); 459e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) PassRefPtrWillBeRawPtr<ScriptArguments> scriptArguments() const; 469e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void setScriptArguments(PassRefPtrWillBeRawPtr<ScriptArguments>); 47e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) unsigned long requestIdentifier() const; 48e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) void setRequestIdentifier(unsigned long); 497242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci double timestamp() const; 507242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void setTimestamp(double); 517242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci WorkerGlobalScopeProxy* workerGlobalScopeProxy() { return m_workerProxy; } 527242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void setWorkerGlobalScopeProxy(WorkerGlobalScopeProxy* proxy) { m_workerProxy = proxy; } 53e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 54e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) MessageSource source() const; 55e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) MessageLevel level() const; 56e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) const String& message() const; 57e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) unsigned columnNumber() const; 58e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 597242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void frameWindowDiscarded(LocalDOMWindow*); 607242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci unsigned argumentCount(); 617242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 627242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void collectCallStack(); 637242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 64e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) void trace(Visitor*); 65e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 66e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)private: 67e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) ConsoleMessage(MessageSource, MessageLevel, const String& message, const String& url = String(), unsigned lineNumber = 0, unsigned columnNumber = 0); 68e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 69e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) MessageSource m_source; 70e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) MessageLevel m_level; 719e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) MessageType m_type; 72e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) String m_message; 737242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci int m_scriptId; 74e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) String m_url; 75e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) unsigned m_lineNumber; 76e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) unsigned m_columnNumber; 77e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) RefPtrWillBeMember<ScriptCallStack> m_callStack; 789e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) OwnPtr<ScriptStateProtectingContext> m_scriptState; 799e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) RefPtrWillBeMember<ScriptArguments> m_scriptArguments; 80e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) unsigned long m_requestIdentifier; 817242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci double m_timestamp; 82e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WorkerGlobalScopeProxy* m_workerProxy; 83e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)}; 84e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 85e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)} // namespace blink 86e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 87e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#endif // ConsoleMessage_h 88