| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef InspectorLogAgent_h |
| #define InspectorLogAgent_h |
| |
| #include "core/CoreExport.h" |
| #include "core/frame/PerformanceMonitor.h" |
| #include "core/inspector/InspectorBaseAgent.h" |
| #include "core/inspector/protocol/Log.h" |
| |
| namespace blink { |
| |
| class ConsoleMessage; |
| class ConsoleMessageStorage; |
| |
| class CORE_EXPORT InspectorLogAgent |
| : public InspectorBaseAgent<protocol::Log::Metainfo>, |
| public PerformanceMonitor::Client { |
| USING_GARBAGE_COLLECTED_MIXIN(InspectorLogAgent); |
| WTF_MAKE_NONCOPYABLE(InspectorLogAgent); |
| |
| public: |
| InspectorLogAgent(ConsoleMessageStorage*, PerformanceMonitor*); |
| ~InspectorLogAgent() override; |
| DECLARE_VIRTUAL_TRACE(); |
| |
| void restore() override; |
| |
| // Called from InspectorInstrumentation. |
| void consoleMessageAdded(ConsoleMessage*); |
| |
| // Protocol methods. |
| Response enable() override; |
| Response disable() override; |
| Response clear() override; |
| Response startViolationsReport( |
| std::unique_ptr<protocol::Array<protocol::Log::ViolationSetting>>) |
| override; |
| Response stopViolationsReport() override; |
| |
| private: |
| // PerformanceMonitor::Client implementation. |
| void reportLongLayout(double duration) override; |
| void reportGenericViolation(PerformanceMonitor::Violation, |
| const String& text, |
| double time, |
| SourceLocation*) override; |
| |
| bool m_enabled; |
| Member<ConsoleMessageStorage> m_storage; |
| Member<PerformanceMonitor> m_performanceMonitor; |
| }; |
| |
| } // namespace blink |
| |
| #endif // !defined(InspectorLogAgent_h) |