Replace WTF::move with WTFMove
[WebKit-https.git] / Source / JavaScriptCore / inspector / agents / InspectorConsoleAgent.cpp
index 37b2227..13eebe9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2014, 2015 Apple Inc. All rights reserved.
  * Copyright (C) 2011 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 #include "config.h"
 #include "InspectorConsoleAgent.h"
 
-#if ENABLE(INSPECTOR)
-
 #include "ConsoleMessage.h"
 #include "InjectedScriptManager.h"
+#include "InspectorFrontendRouter.h"
 #include "ScriptArguments.h"
 #include "ScriptCallFrame.h"
 #include "ScriptCallStack.h"
 
 namespace Inspector {
 
-static const unsigned maximumConsoleMessages = 1000;
-static const int expireConsoleMessagesStep = 100;
+static const unsigned maximumConsoleMessages = 100;
+static const int expireConsoleMessagesStep = 10;
 
-InspectorConsoleAgent::InspectorConsoleAgent(InjectedScriptManager* injectedScriptManager)
+InspectorConsoleAgent::InspectorConsoleAgent(AgentContext& context)
     : InspectorAgentBase(ASCIILiteral("Console"))
-    , m_injectedScriptManager(injectedScriptManager)
-    , m_previousMessage(nullptr)
-    , m_expiredConsoleMessageCount(0)
-    , m_enabled(false)
+    , m_injectedScriptManager(context.injectedScriptManager)
+    , m_frontendDispatcher(std::make_unique<ConsoleFrontendDispatcher>(context.frontendRouter))
+    , m_backendDispatcher(ConsoleBackendDispatcher::create(context.backendDispatcher, this))
 {
 }
 
@@ -57,22 +55,17 @@ InspectorConsoleAgent::~InspectorConsoleAgent()
 {
 }
 
-void InspectorConsoleAgent::didCreateFrontendAndBackend(Inspector::InspectorFrontendChannel* frontendChannel, InspectorBackendDispatcher* backendDispatcher)
+void InspectorConsoleAgent::didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*)
 {
-    m_frontendDispatcher = std::make_unique<InspectorConsoleFrontendDispatcher>(frontendChannel);
-    m_backendDispatcher = InspectorConsoleBackendDispatcher::create(backendDispatcher, this);
 }
 
-void InspectorConsoleAgent::willDestroyFrontendAndBackend(InspectorDisconnectReason)
+void InspectorConsoleAgent::willDestroyFrontendAndBackend(DisconnectReason)
 {
-    m_frontendDispatcher = nullptr;
-    m_backendDispatcher.clear();
-
     String errorString;
-    disable(&errorString);
+    disable(errorString);
 }
 
-void InspectorConsoleAgent::enable(ErrorString*)
+void InspectorConsoleAgent::enable(ErrorString&)
 {
     if (m_enabled)
         return;
@@ -81,15 +74,15 @@ void InspectorConsoleAgent::enable(ErrorString*)
 
     if (m_expiredConsoleMessageCount) {
         ConsoleMessage expiredMessage(MessageSource::Other, MessageType::Log, MessageLevel::Warning, String::format("%d console messages are not shown.", m_expiredConsoleMessageCount));
-        expiredMessage.addToFrontend(m_frontendDispatcher.get(), m_injectedScriptManager, false);
+        expiredMessage.addToFrontend(*m_frontendDispatcher, m_injectedScriptManager, false);
     }
 
     size_t messageCount = m_consoleMessages.size();
     for (size_t i = 0; i < messageCount; ++i)
-        m_consoleMessages[i]->addToFrontend(m_frontendDispatcher.get(), m_injectedScriptManager, false);
+        m_consoleMessages[i]->addToFrontend(*m_frontendDispatcher, m_injectedScriptManager, false);
 }
 
-void InspectorConsoleAgent::disable(ErrorString*)
+void InspectorConsoleAgent::disable(ErrorString&)
 {
     if (!m_enabled)
         return;
@@ -97,72 +90,38 @@ void InspectorConsoleAgent::disable(ErrorString*)
     m_enabled = false;
 }
 
-void InspectorConsoleAgent::clearMessages(ErrorString*)
+void InspectorConsoleAgent::clearMessages(ErrorString&)
 {
     m_consoleMessages.clear();
     m_expiredConsoleMessageCount = 0;
     m_previousMessage = nullptr;
 
-    m_injectedScriptManager->releaseObjectGroup(ASCIILiteral("console"));
+    m_injectedScriptManager.releaseObjectGroup(ASCIILiteral("console"));
 
-    if (m_frontendDispatcher && m_enabled)
+    if (m_enabled)
         m_frontendDispatcher->messagesCleared();
 }
 
 void InspectorConsoleAgent::reset()
 {
-    ErrorString error;
-    clearMessages(&error);
+    ErrorString unused;
+    clearMessages(unused);
 
     m_times.clear();
     m_counts.clear();
 }
 
-void InspectorConsoleAgent::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, unsigned long requestIdentifier)
+void InspectorConsoleAgent::addMessageToConsole(std::unique_ptr<ConsoleMessage> message)
 {
-    if (!m_injectedScriptManager->inspectorEnvironment().developerExtrasEnabled())
+    if (!m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled())
         return;
 
-    if (type == MessageType::Clear) {
-        ErrorString error;
-        clearMessages(&error);
+    if (message->type() == MessageType::Clear) {
+        ErrorString unused;
+        clearMessages(unused);
     }
 
-    addConsoleMessage(std::make_unique<ConsoleMessage>(source, type, level, message, callStack, requestIdentifier));
-}
-
-void InspectorConsoleAgent::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, const String& message, JSC::ExecState* state, PassRefPtr<ScriptArguments> arguments, unsigned long requestIdentifier)
-{
-    if (!m_injectedScriptManager->inspectorEnvironment().developerExtrasEnabled())
-        return;
-
-    if (type == MessageType::Clear) {
-        ErrorString error;
-        clearMessages(&error);
-    }
-
-    addConsoleMessage(std::make_unique<ConsoleMessage>(source, type, level, message, arguments, state, requestIdentifier));
-}
-
-void InspectorConsoleAgent::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, const String& message, const String& scriptID, unsigned lineNumber, unsigned columnNumber, JSC::ExecState* state, unsigned long requestIdentifier)
-{
-    if (!m_injectedScriptManager->inspectorEnvironment().developerExtrasEnabled())
-        return;
-
-    if (type == MessageType::Clear) {
-        ErrorString error;
-        clearMessages(&error);
-    }
-
-    addConsoleMessage(std::make_unique<ConsoleMessage>(source, type, level, message, scriptID, lineNumber, columnNumber, state, requestIdentifier));
-}
-
-Vector<unsigned> InspectorConsoleAgent::consoleMessageArgumentCounts() const
-{
-    Vector<unsigned> result(m_consoleMessages.size());
-    for (size_t i = 0; i < m_consoleMessages.size(); i++)
-        result[i] = m_consoleMessages[i]->argumentCount();
-    return result;
+    addConsoleMessage(WTFMove(message));
 }
 
 void InspectorConsoleAgent::startTiming(const String& title)
@@ -191,7 +150,7 @@ void InspectorConsoleAgent::stopTiming(const String& title, PassRefPtr<ScriptCal
 
     double elapsed = monotonicallyIncreasingTime() - startTime;
     String message = title + String::format(": %.3fms", elapsed * 1000);
-    addMessageToConsole(MessageSource::ConsoleAPI, MessageType::Timing, MessageLevel::Debug, message, callStack);
+    addMessageToConsole(std::make_unique<ConsoleMessage>(MessageSource::ConsoleAPI, MessageType::Timing, MessageLevel::Debug, message, callStack));
 }
 
 void InspectorConsoleAgent::count(JSC::ExecState* state, PassRefPtr<ScriptArguments> arguments)
@@ -216,7 +175,7 @@ void InspectorConsoleAgent::count(JSC::ExecState* state, PassRefPtr<ScriptArgume
     m_counts.add(identifier, count);
 
     String message = title + ": " + String::number(count);
-    addMessageToConsole(MessageSource::ConsoleAPI, MessageType::Log, MessageLevel::Debug, message, callStack);
+    addMessageToConsole(std::make_unique<ConsoleMessage>(MessageSource::ConsoleAPI, MessageType::Log, MessageLevel::Debug, message, callStack));
 }
 
 static bool isGroupMessage(MessageType type)
@@ -228,26 +187,24 @@ static bool isGroupMessage(MessageType type)
 
 void InspectorConsoleAgent::addConsoleMessage(std::unique_ptr<ConsoleMessage> consoleMessage)
 {
-    ASSERT(m_injectedScriptManager->inspectorEnvironment().developerExtrasEnabled());
+    ASSERT(m_injectedScriptManager.inspectorEnvironment().developerExtrasEnabled());
     ASSERT_ARG(consoleMessage, consoleMessage);
 
     if (m_previousMessage && !isGroupMessage(m_previousMessage->type()) && m_previousMessage->isEqual(consoleMessage.get())) {
         m_previousMessage->incrementCount();
-        if (m_frontendDispatcher && m_enabled)
-            m_previousMessage->updateRepeatCountInConsole(m_frontendDispatcher.get());
+        if (m_enabled)
+            m_previousMessage->updateRepeatCountInConsole(*m_frontendDispatcher);
     } else {
         m_previousMessage = consoleMessage.get();
-        m_consoleMessages.append(std::move(consoleMessage));
-        if (m_frontendDispatcher && m_enabled)
-            m_previousMessage->addToFrontend(m_frontendDispatcher.get(), m_injectedScriptManager, true);
+        m_consoleMessages.append(WTFMove(consoleMessage));
+        if (m_enabled)
+            m_previousMessage->addToFrontend(*m_frontendDispatcher, m_injectedScriptManager, true);
     }
 
-    if (!m_frontendDispatcher && m_consoleMessages.size() >= maximumConsoleMessages) {
+    if (m_consoleMessages.size() >= maximumConsoleMessages) {
         m_expiredConsoleMessageCount += expireConsoleMessagesStep;
         m_consoleMessages.remove(0, expireConsoleMessagesStep);
     }
 }
 
 } // namespace Inspector
-
-#endif // ENABLE(INSPECTOR)