ConsoleInstance.h (3707B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #ifndef mozilla_dom_ConsoleInstance_h 8 #define mozilla_dom_ConsoleInstance_h 9 10 #include "mozilla/dom/Console.h" 11 12 namespace mozilla::dom { 13 14 class ConsoleInstance final : public nsISupports, public nsWrapperCache { 15 public: 16 NS_DECL_CYCLE_COLLECTING_ISUPPORTS 17 NS_DECL_CYCLE_COLLECTION_WRAPPERCACHE_CLASS(ConsoleInstance) 18 19 MOZ_CAN_RUN_SCRIPT 20 explicit ConsoleInstance(JSContext* aCx, 21 const ConsoleInstanceOptions& aOptions); 22 23 // WebIDL methods 24 JSObject* WrapObject(JSContext* aCx, 25 JS::Handle<JSObject*> aGivenProto) override; 26 27 nsPIDOMWindowInner* GetParentObject() const { return nullptr; } 28 29 MOZ_CAN_RUN_SCRIPT 30 void Log(JSContext* aCx, const Sequence<JS::Value>& aData); 31 32 MOZ_CAN_RUN_SCRIPT 33 void Info(JSContext* aCx, const Sequence<JS::Value>& aData); 34 35 MOZ_CAN_RUN_SCRIPT 36 void Warn(JSContext* aCx, const Sequence<JS::Value>& aData); 37 38 MOZ_CAN_RUN_SCRIPT 39 void Error(JSContext* aCx, const Sequence<JS::Value>& aData); 40 41 MOZ_CAN_RUN_SCRIPT 42 void Exception(JSContext* aCx, const Sequence<JS::Value>& aData); 43 44 MOZ_CAN_RUN_SCRIPT 45 void Debug(JSContext* aCx, const Sequence<JS::Value>& aData); 46 47 MOZ_CAN_RUN_SCRIPT 48 void Table(JSContext* aCx, const Sequence<JS::Value>& aData); 49 50 MOZ_CAN_RUN_SCRIPT 51 void Trace(JSContext* aCx, const Sequence<JS::Value>& aData); 52 53 MOZ_CAN_RUN_SCRIPT 54 void Dir(JSContext* aCx, const Sequence<JS::Value>& aData); 55 56 MOZ_CAN_RUN_SCRIPT 57 void Dirxml(JSContext* aCx, const Sequence<JS::Value>& aData); 58 59 MOZ_CAN_RUN_SCRIPT 60 void Group(JSContext* aCx, const Sequence<JS::Value>& aData); 61 62 MOZ_CAN_RUN_SCRIPT 63 void GroupCollapsed(JSContext* aCx, const Sequence<JS::Value>& aData); 64 65 MOZ_CAN_RUN_SCRIPT 66 void GroupEnd(JSContext* aCx); 67 68 MOZ_CAN_RUN_SCRIPT 69 void Time(JSContext* aCx, const nsAString& aLabel); 70 71 MOZ_CAN_RUN_SCRIPT 72 void TimeLog(JSContext* aCx, const nsAString& aLabel, 73 const Sequence<JS::Value>& aData); 74 75 MOZ_CAN_RUN_SCRIPT 76 void TimeEnd(JSContext* aCx, const nsAString& aLabel); 77 78 MOZ_CAN_RUN_SCRIPT 79 void TimeStamp(JSContext* aCx, const JS::Handle<JS::Value> aData); 80 81 MOZ_CAN_RUN_SCRIPT 82 void Profile(JSContext* aCx, const Sequence<JS::Value>& aData); 83 84 MOZ_CAN_RUN_SCRIPT 85 void ProfileEnd(JSContext* aCx, const Sequence<JS::Value>& aData); 86 87 MOZ_CAN_RUN_SCRIPT 88 void Assert(JSContext* aCx, bool aCondition, 89 const Sequence<JS::Value>& aData); 90 91 MOZ_CAN_RUN_SCRIPT 92 void Count(JSContext* aCx, const nsAString& aLabel); 93 94 MOZ_CAN_RUN_SCRIPT 95 void CountReset(JSContext* aCx, const nsAString& aLabel); 96 97 MOZ_CAN_RUN_SCRIPT 98 void Clear(JSContext* aCx); 99 100 bool ShouldLog(ConsoleLogLevel aLevel); 101 102 // For testing only. 103 void ReportForServiceWorkerScope(const nsAString& aScope, 104 const nsAString& aMessage, 105 const nsACString& aFilename, 106 uint32_t aLineNumber, uint32_t aColumnNumber, 107 ConsoleLevel aLevel); 108 109 private: 110 ~ConsoleInstance(); 111 112 void SetLogLevel(); 113 static void MaxLogLevelPrefChangedCallback(const char* /* aPrefName */, 114 void* /* aClosure */); 115 116 ConsoleLogLevel mMaxLogLevel; 117 nsCString mMaxLogLevelPref; 118 RefPtr<Console> mConsole; 119 }; 120 121 } // namespace mozilla::dom 122 123 #endif // mozilla_dom_ConsoleInstance_h