Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/console_model/ConsoleModel.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/console_model/ConsoleModel.js b/third_party/WebKit/Source/devtools/front_end/console_model/ConsoleModel.js |
| index ad35836ac61d2c33e12da8ba71ac39b209caff1e..749e7f6b82309fb16cc6e59759516049652e1330 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/console_model/ConsoleModel.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/console_model/ConsoleModel.js |
| @@ -45,6 +45,23 @@ ConsoleModel.ConsoleModel = class extends Common.Object { |
| SDK.targetManager.observeTargets(this); |
| } |
| + /** |
| + * @param {!ConsoleModel.ConsoleMessage} message |
| + * @return {boolean} |
| + */ |
| + static canMessageClearConsole(message) { |
| + if (Common.moduleSetting('preserveConsoleLog').get() || |
|
luoe
2017/07/06 22:16:00
ConsoleModel is the only place that knows that pre
pfeldman
2017/07/12 21:17:28
As you prefer.
|
| + message.source !== ConsoleModel.ConsoleMessage.MessageSource.ConsoleAPI || |
| + message.type !== ConsoleModel.ConsoleMessage.MessageType.Clear) |
| + return false; |
| + var runtimeModel = message.runtimeModel(); |
| + var executionContext = runtimeModel.executionContext(message.executionContextId); |
|
pfeldman
2017/07/12 21:17:28
when executionContext.isDefault === false, we shou
luoe
2017/07/13 00:42:03
Done.
|
| + var resourceTreeModel = runtimeModel.target().model(SDK.ResourceTreeModel); |
| + var frame = resourceTreeModel && executionContext && executionContext.frameId && |
|
pfeldman
2017/07/12 21:17:28
If there is no resourceTreeModel, we should allow
luoe
2017/07/13 00:42:03
Done.
|
| + resourceTreeModel.frameForId(executionContext.frameId); |
| + return !!(frame && frame.isMainFrame()); |
| + } |
| + |
| /** |
| * @override |
| * @param {!SDK.Target} target |
| @@ -160,8 +177,7 @@ ConsoleModel.ConsoleModel = class extends Common.Object { |
| if (msg.source === ConsoleModel.ConsoleMessage.MessageSource.Worker && SDK.targetManager.targetById(msg.workerId)) |
| return; |
| - if (msg.source === ConsoleModel.ConsoleMessage.MessageSource.ConsoleAPI && |
| - msg.type === ConsoleModel.ConsoleMessage.MessageType.Clear) |
| + if (ConsoleModel.ConsoleModel.canMessageClearConsole(msg)) |
| this._clear(); |
| this._messages.push(msg); |