Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Side by Side Diff: Source/core/inspector/ConsoleMessageStorage.cpp

Issue 645693003: [DevTools] Console Message Storage moved from top local frame to frame host (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/inspector/ConsoleMessageStorage.h" 6 #include "core/inspector/ConsoleMessageStorage.h"
7 7
8 #include "core/frame/LocalDOMWindow.h" 8 #include "core/frame/LocalDOMWindow.h"
9 #include "core/inspector/ConsoleMessage.h" 9 #include "core/inspector/ConsoleMessage.h"
10 #include "core/inspector/InspectorConsoleInstrumentation.h" 10 #include "core/inspector/InspectorConsoleInstrumentation.h"
11 11
12 namespace blink { 12 namespace blink {
13 13
14 static const unsigned maxConsoleMessageCount = 1000; 14 static const unsigned maxConsoleMessageCount = 1000;
15 15
16 ConsoleMessageStorage::ConsoleMessageStorage(ExecutionContext* context) 16 ConsoleMessageStorage::ConsoleMessageStorage(ExecutionContext* context)
17 : m_expiredCount(0) 17 : m_expiredCount(0)
18 , m_context(context) 18 , m_context(context)
19 , m_frame(nullptr) 19 , m_frameHost(nullptr)
20 { 20 {
21 } 21 }
22 22
23 ConsoleMessageStorage::ConsoleMessageStorage(LocalFrame* frame) 23 ConsoleMessageStorage::ConsoleMessageStorage(FrameHost* frameHost)
24 : m_expiredCount(0) 24 : m_expiredCount(0)
25 , m_context(nullptr) 25 , m_context(nullptr)
26 , m_frame(frame) 26 , m_frameHost(frameHost)
27 { 27 {
28 } 28 }
29 29
30 void ConsoleMessageStorage::reportMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> prpMessage) 30 void ConsoleMessageStorage::reportMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> prpMessage)
31 { 31 {
32 RefPtrWillBeRawPtr<ConsoleMessage> message = prpMessage; 32 RefPtrWillBeRawPtr<ConsoleMessage> message = prpMessage;
33 message->collectCallStack(); 33 message->collectCallStack();
34 34
35 if (message->type() == ClearMessageType) 35 if (message->type() == ClearMessageType)
36 clear(); 36 clear();
37 37
38 InspectorInstrumentation::addMessageToConsole(executionContext(), message.ge t()); 38 if (m_frameHost)
39 InspectorInstrumentation::addMessageToConsole(m_frameHost, message.get() );
40 else
41 InspectorInstrumentation::addMessageToConsole(m_context, message.get());
39 42
40 ASSERT(m_messages.size() <= maxConsoleMessageCount); 43 ASSERT(m_messages.size() <= maxConsoleMessageCount);
41 if (m_messages.size() == maxConsoleMessageCount) { 44 if (m_messages.size() == maxConsoleMessageCount) {
42 ++m_expiredCount; 45 ++m_expiredCount;
43 m_messages.removeFirst(); 46 m_messages.removeFirst();
44 } 47 }
45 m_messages.append(message); 48 m_messages.append(message);
46 } 49 }
47 50
48 void ConsoleMessageStorage::clear() 51 void ConsoleMessageStorage::clear()
49 { 52 {
50 InspectorInstrumentation::consoleMessagesCleared(executionContext()); 53 if (m_frameHost)
54 InspectorInstrumentation::consoleMessagesCleared(m_frameHost);
55 else
56 InspectorInstrumentation::consoleMessagesCleared(m_context);
51 m_messages.clear(); 57 m_messages.clear();
52 m_expiredCount = 0; 58 m_expiredCount = 0;
53 } 59 }
54 60
55 Vector<unsigned> ConsoleMessageStorage::argumentCounts() const 61 Vector<unsigned> ConsoleMessageStorage::argumentCounts() const
56 { 62 {
57 Vector<unsigned> result(m_messages.size()); 63 Vector<unsigned> result(m_messages.size());
58 for (size_t i = 0; i < m_messages.size(); ++i) 64 for (size_t i = 0; i < m_messages.size(); ++i)
59 result[i] = m_messages[i]->argumentCount(); 65 result[i] = m_messages[i]->argumentCount();
60 return result; 66 return result;
(...skipping 21 matching lines...) Expand all
82 ConsoleMessage* ConsoleMessageStorage::at(size_t index) const 88 ConsoleMessage* ConsoleMessageStorage::at(size_t index) const
83 { 89 {
84 return m_messages[index].get(); 90 return m_messages[index].get();
85 } 91 }
86 92
87 int ConsoleMessageStorage::expiredCount() const 93 int ConsoleMessageStorage::expiredCount() const
88 { 94 {
89 return m_expiredCount; 95 return m_expiredCount;
90 } 96 }
91 97
92 ExecutionContext* ConsoleMessageStorage::executionContext() const
93 {
94 return m_frame ? m_frame->document() : m_context;
95 }
96
97 void ConsoleMessageStorage::trace(Visitor* visitor) 98 void ConsoleMessageStorage::trace(Visitor* visitor)
98 { 99 {
99 visitor->trace(m_messages); 100 visitor->trace(m_messages);
100 visitor->trace(m_context); 101 visitor->trace(m_context);
101 visitor->trace(m_frame); 102 visitor->trace(m_frameHost);
102 } 103 }
103 104
104 } // namespace blink 105 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698