| Index: src/inspector/v8-console-message.cc
|
| diff --git a/src/inspector/v8-console-message.cc b/src/inspector/v8-console-message.cc
|
| index 73f74e4f67988221150dab285fb4afa2b0c128e7..22fe18137ede9a1cb1bda927634321fc7affd259 100644
|
| --- a/src/inspector/v8-console-message.cc
|
| +++ b/src/inspector/v8-console-message.cc
|
| @@ -353,15 +353,11 @@ ConsoleAPIType V8ConsoleMessage::type() const { return m_type; }
|
|
|
| // static
|
| std::unique_ptr<V8ConsoleMessage> V8ConsoleMessage::createForConsoleAPI(
|
| - double timestamp, ConsoleAPIType type,
|
| + v8::Local<v8::Context> v8Context, int contextId, int groupId,
|
| + V8InspectorImpl* inspector, double timestamp, ConsoleAPIType type,
|
| const std::vector<v8::Local<v8::Value>>& arguments,
|
| - std::unique_ptr<V8StackTraceImpl> stackTrace,
|
| - InspectedContext* inspectedContext) {
|
| - v8::Isolate* isolate = inspectedContext->isolate();
|
| - int contextId = inspectedContext->contextId();
|
| - int contextGroupId = inspectedContext->contextGroupId();
|
| - V8InspectorImpl* inspector = inspectedContext->inspector();
|
| - v8::Local<v8::Context> context = inspectedContext->context();
|
| + std::unique_ptr<V8StackTraceImpl> stackTrace) {
|
| + v8::Isolate* isolate = v8Context->GetIsolate();
|
|
|
| std::unique_ptr<V8ConsoleMessage> message(
|
| new V8ConsoleMessage(V8MessageOrigin::kConsole, timestamp, String16()));
|
| @@ -380,7 +376,8 @@ std::unique_ptr<V8ConsoleMessage> V8ConsoleMessage::createForConsoleAPI(
|
| v8::debug::EstimatedValueSize(isolate, arguments.at(i));
|
| }
|
| if (arguments.size())
|
| - message->m_message = V8ValueStringBuilder::toString(arguments[0], context);
|
| + message->m_message =
|
| + V8ValueStringBuilder::toString(arguments[0], v8Context);
|
|
|
| v8::Isolate::MessageErrorLevel clientLevel = v8::Isolate::kMessageInfo;
|
| if (type == ConsoleAPIType::kDebug || type == ConsoleAPIType::kCount ||
|
| @@ -397,7 +394,7 @@ std::unique_ptr<V8ConsoleMessage> V8ConsoleMessage::createForConsoleAPI(
|
|
|
| if (type != ConsoleAPIType::kClear) {
|
| inspector->client()->consoleAPIMessage(
|
| - contextGroupId, clientLevel, toStringView(message->m_message),
|
| + groupId, clientLevel, toStringView(message->m_message),
|
| toStringView(message->m_url), message->m_lineNumber,
|
| message->m_columnNumber, message->m_stackTrace.get());
|
| }
|
| @@ -490,8 +487,37 @@ void V8ConsoleMessageStorage::clear() {
|
| m_messages.clear();
|
| m_estimatedSize = 0;
|
| if (V8InspectorSessionImpl* session =
|
| - m_inspector->sessionForContextGroup(m_contextGroupId))
|
| + m_inspector->sessionForContextGroup(m_contextGroupId)) {
|
| session->releaseObjectGroup("console");
|
| + }
|
| + m_data.clear();
|
| +}
|
| +
|
| +bool V8ConsoleMessageStorage::shouldReportDeprecationMessage(
|
| + int contextId, const String16& method) {
|
| + std::set<String16>& reportedDeprecationMessages =
|
| + m_data[contextId].m_reportedDeprecationMessages;
|
| + auto it = reportedDeprecationMessages.find(method);
|
| + if (it != reportedDeprecationMessages.end()) return false;
|
| + reportedDeprecationMessages.insert(it, method);
|
| + return true;
|
| +}
|
| +
|
| +int V8ConsoleMessageStorage::count(int contextId, const String16& id) {
|
| + return ++m_data[contextId].m_count[id];
|
| +}
|
| +
|
| +void V8ConsoleMessageStorage::time(int contextId, const String16& id) {
|
| + m_data[contextId].m_time[id] = m_inspector->client()->currentTimeMS();
|
| +}
|
| +
|
| +double V8ConsoleMessageStorage::timeEnd(int contextId, const String16& id) {
|
| + std::map<String16, double>& time = m_data[contextId].m_time;
|
| + auto it = time.find(id);
|
| + if (it == time.end()) return 0.0;
|
| + double elapsed = m_inspector->client()->currentTimeMS() - it->second;
|
| + time.erase(it);
|
| + return elapsed;
|
| }
|
|
|
| void V8ConsoleMessageStorage::contextDestroyed(int contextId) {
|
| @@ -500,6 +526,8 @@ void V8ConsoleMessageStorage::contextDestroyed(int contextId) {
|
| m_messages[i]->contextDestroyed(contextId);
|
| m_estimatedSize += m_messages[i]->estimatedSize();
|
| }
|
| + auto it = m_data.find(contextId);
|
| + if (it != m_data.end()) m_data.erase(contextId);
|
| }
|
|
|
| } // namespace v8_inspector
|
|
|