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

Side by Side Diff: Source/core/frame/FrameConsole.cpp

Issue 517043003: Move Frame to the Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Back out non-Oilpan experiment + tidy up by adding frame() ref accessors Created 6 years, 3 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 /* 1 /*
2 * Copyright (C) 2013 Apple Inc. All rights reserved. 2 * Copyright (C) 2013 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 return types; 60 return types;
61 } 61 }
62 62
63 namespace { 63 namespace {
64 64
65 int muteCount = 0; 65 int muteCount = 0;
66 66
67 } 67 }
68 68
69 FrameConsole::FrameConsole(LocalFrame& frame) 69 FrameConsole::FrameConsole(LocalFrame& frame)
70 : m_frame(frame) 70 : m_frame(&frame)
71 { 71 {
72 } 72 }
73 73
74 DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(FrameConsole); 74 DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(FrameConsole);
75 75
76 void FrameConsole::addMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> prpConsoleM essage) 76 void FrameConsole::addMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> prpConsoleM essage)
77 { 77 {
78 RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = prpConsoleMessage; 78 RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = prpConsoleMessage;
79 if (muteCount && consoleMessage->source() != ConsoleAPIMessageSource) 79 if (muteCount && consoleMessage->source() != ConsoleAPIMessageSource)
80 return; 80 return;
81 81
82 // FIXME: This should not need to reach for the main-frame. 82 // FIXME: This should not need to reach for the main-frame.
83 // Inspector code should just take the current frame and know how to walk it self. 83 // Inspector code should just take the current frame and know how to walk it self.
84 ExecutionContext* context = m_frame.document(); 84 ExecutionContext* context = frame().document();
85 if (!context) 85 if (!context)
86 return; 86 return;
87 87
88 String messageURL; 88 String messageURL;
89 unsigned lineNumber = 0; 89 unsigned lineNumber = 0;
90 if (consoleMessage->callStack() && consoleMessage->callStack()->size()) { 90 if (consoleMessage->callStack() && consoleMessage->callStack()->size()) {
91 lineNumber = consoleMessage->callStack()->at(0).lineNumber(); 91 lineNumber = consoleMessage->callStack()->at(0).lineNumber();
92 messageURL = consoleMessage->callStack()->at(0).sourceURL(); 92 messageURL = consoleMessage->callStack()->at(0).sourceURL();
93 } else { 93 } else {
94 lineNumber = consoleMessage->lineNumber(); 94 lineNumber = consoleMessage->lineNumber();
95 messageURL = consoleMessage->url(); 95 messageURL = consoleMessage->url();
96 } 96 }
97 97
98 messageStorage()->reportMessage(consoleMessage); 98 messageStorage()->reportMessage(consoleMessage);
99 99
100 if (consoleMessage->source() == CSSMessageSource || consoleMessage->source() == NetworkMessageSource) 100 if (consoleMessage->source() == CSSMessageSource || consoleMessage->source() == NetworkMessageSource)
101 return; 101 return;
102 102
103 RefPtrWillBeRawPtr<ScriptCallStack> reportedCallStack = nullptr; 103 RefPtrWillBeRawPtr<ScriptCallStack> reportedCallStack = nullptr;
104 if (consoleMessage->source() != ConsoleAPIMessageSource) { 104 if (consoleMessage->source() != ConsoleAPIMessageSource) {
105 if (consoleMessage->callStack() && m_frame.chromeClient().shouldReportDe tailedMessageForSource(messageURL)) 105 if (consoleMessage->callStack() && frame().chromeClient().shouldReportDe tailedMessageForSource(messageURL))
106 reportedCallStack = consoleMessage->callStack(); 106 reportedCallStack = consoleMessage->callStack();
107 } else { 107 } else {
108 if (!m_frame.host() || (consoleMessage->scriptArguments() && consoleMess age->scriptArguments()->argumentCount() == 0)) 108 if (!frame().host() || (consoleMessage->scriptArguments() && !consoleMes sage->scriptArguments()->argumentCount()))
109 return; 109 return;
110 110
111 if (!allClientReportingMessageTypes().contains(consoleMessage->type())) 111 if (!allClientReportingMessageTypes().contains(consoleMessage->type()))
112 return; 112 return;
113 113
114 if (m_frame.chromeClient().shouldReportDetailedMessageForSource(messageU RL)) 114 if (frame().chromeClient().shouldReportDetailedMessageForSource(messageU RL))
115 reportedCallStack = createScriptCallStack(ScriptCallStack::maxCallSt ackSizeToCapture); 115 reportedCallStack = createScriptCallStack(ScriptCallStack::maxCallSt ackSizeToCapture);
116 } 116 }
117 117
118 String stackTrace; 118 String stackTrace;
119 if (reportedCallStack) 119 if (reportedCallStack)
120 stackTrace = FrameConsole::formatStackTraceString(consoleMessage->messag e(), reportedCallStack); 120 stackTrace = FrameConsole::formatStackTraceString(consoleMessage->messag e(), reportedCallStack);
121 m_frame.chromeClient().addMessageToConsole(&m_frame, consoleMessage->source( ), consoleMessage->level(), consoleMessage->message(), lineNumber, messageURL, s tackTrace); 121 frame().chromeClient().addMessageToConsole(m_frame, consoleMessage->source() , consoleMessage->level(), consoleMessage->message(), lineNumber, messageURL, st ackTrace);
122 } 122 }
123 123
124 void FrameConsole::reportResourceResponseReceived(DocumentLoader* loader, unsign ed long requestIdentifier, const ResourceResponse& response) 124 void FrameConsole::reportResourceResponseReceived(DocumentLoader* loader, unsign ed long requestIdentifier, const ResourceResponse& response)
125 { 125 {
126 if (!loader) 126 if (!loader)
127 return; 127 return;
128 if (response.httpStatusCode() < 400) 128 if (response.httpStatusCode() < 400)
129 return; 129 return;
130 String message = "Failed to load resource: the server responded with a statu s of " + String::number(response.httpStatusCode()) + " (" + response.httpStatusT ext() + ')'; 130 String message = "Failed to load resource: the server responded with a statu s of " + String::number(response.httpStatusCode()) + " (" + response.httpStatusT ext() + ')';
131 RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(N etworkMessageSource, ErrorMessageLevel, message, response.url().string()); 131 RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(N etworkMessageSource, ErrorMessageLevel, message, response.url().string());
(...skipping 25 matching lines...) Expand all
157 } 157 }
158 158
159 void FrameConsole::unmute() 159 void FrameConsole::unmute()
160 { 160 {
161 ASSERT(muteCount > 0); 161 ASSERT(muteCount > 0);
162 muteCount--; 162 muteCount--;
163 } 163 }
164 164
165 ConsoleMessageStorage* FrameConsole::messageStorage() 165 ConsoleMessageStorage* FrameConsole::messageStorage()
166 { 166 {
167 LocalFrame* curFrame = &m_frame; 167 LocalFrame* curFrame = m_frame;
168 Frame* topFrame = curFrame->tree().top(); 168 Frame* topFrame = curFrame->tree().top();
169 ASSERT(topFrame->isLocalFrame()); 169 ASSERT(topFrame->isLocalFrame());
170 LocalFrame* localTopFrame = toLocalFrame(topFrame); 170 LocalFrame* localTopFrame = toLocalFrame(topFrame);
171 if (localTopFrame != curFrame) 171 if (localTopFrame != curFrame)
172 return localTopFrame->console().messageStorage(); 172 return localTopFrame->console().messageStorage();
173 if (!m_consoleMessageStorage) 173 if (!m_consoleMessageStorage)
174 m_consoleMessageStorage = ConsoleMessageStorage::createForFrame(&m_frame ); 174 m_consoleMessageStorage = ConsoleMessageStorage::createForFrame(m_frame) ;
175 return m_consoleMessageStorage.get(); 175 return m_consoleMessageStorage.get();
176 } 176 }
177 177
178 void FrameConsole::clearMessages() 178 void FrameConsole::clearMessages()
179 { 179 {
180 messageStorage()->clear(); 180 messageStorage()->clear();
181 } 181 }
182 182
183 void FrameConsole::adoptWorkerMessagesAfterTermination(WorkerGlobalScopeProxy* p roxy) 183 void FrameConsole::adoptWorkerMessagesAfterTermination(WorkerGlobalScopeProxy* p roxy)
184 { 184 {
185 messageStorage()->adoptWorkerMessagesAfterTermination(proxy); 185 messageStorage()->adoptWorkerMessagesAfterTermination(proxy);
186 } 186 }
187 187
188 void FrameConsole::trace(Visitor* visitor) 188 void FrameConsole::trace(Visitor* visitor)
189 { 189 {
190 visitor->trace(m_frame);
190 visitor->trace(m_consoleMessageStorage); 191 visitor->trace(m_consoleMessageStorage);
191 } 192 }
192 193
193 } // namespace blink 194 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698