18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 38f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> 428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * Copyright (C) 2009, 2010 Google Inc. All rights reserved. 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * notice, this list of conditions and the following disclaimer. 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 148f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * documentation and/or other materials provided with the distribution. 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * its contributors may be used to endorse or promote products derived 178f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * from this software without specific prior written permission. 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#ifndef ConsoleMessage_h 328f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define ConsoleMessage_h 338f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 348f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include "Console.h" 3581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "InspectorFrontend.h" 368f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include "ScriptState.h" 378f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 3828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#include <wtf/Forward.h> 398f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include <wtf/Vector.h> 408f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 418f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qiannamespace WebCore { 422bde8e466a4451c7319e3a072d118917957d6554Steve Blockclass InjectedScriptManager; 43e8b154fd68f9b33be40a3590e58347f353835f5cSteve Blockclass InspectorFrontend; 440617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsenclass InspectorObject; 4528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhuclass ScriptArguments; 46967717af5423377c967781471ee106e2bb4e11c8Ben Murdochclass ScriptCallFrame; 47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockclass ScriptCallStack; 48dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochclass ScriptValue; 498f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 50ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochclass ConsoleMessage { 51ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch WTF_MAKE_NONCOPYABLE(ConsoleMessage); WTF_MAKE_FAST_ALLOCATED; 52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockpublic: 53f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch ConsoleMessage(MessageSource, MessageType, MessageLevel, const String& m, unsigned li, const String& u); 54f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch ConsoleMessage(MessageSource, MessageType, MessageLevel, const String& m, PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack>); 55f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch ConsoleMessage(MessageSource, MessageType, MessageLevel, const String& m, const String& responseUrl, unsigned long identifier); 5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ~ConsoleMessage(); 578f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 582bde8e466a4451c7319e3a072d118917957d6554Steve Block void addToFrontend(InspectorFrontend::Console*, InjectedScriptManager*); 5981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void updateRepeatCountInConsole(InspectorFrontend::Console*); 60dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void incrementCount() { ++m_repeatCount; } 61a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch bool isEqual(ConsoleMessage* msg) const; 628f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block MessageSource source() const { return m_source; } 64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const String& message() const { return m_message; } 652bde8e466a4451c7319e3a072d118917957d6554Steve Block MessageType type() const { return m_type; } 660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 67dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockprivate: 68dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block MessageSource m_source; 69dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block MessageType m_type; 70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block MessageLevel m_level; 71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block String m_message; 72f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch RefPtr<ScriptArguments> m_arguments; 73f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch RefPtr<ScriptCallStack> m_callStack; 74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unsigned m_line; 75dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block String m_url; 76dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unsigned m_repeatCount; 77f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch unsigned int m_requestId; 78dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}; 79635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 808f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian} // namespace WebCore 818f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 828f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#endif // ConsoleMessage_h 83