OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * Copyright (C) 2012 Intel Inc. All rights reserved. | 3 * Copyright (C) 2012 Intel Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
399 this._captureFilmStripSetting.addChangeListener(this._onModeChanged, thi s); | 399 this._captureFilmStripSetting.addChangeListener(this._onModeChanged, thi s); |
400 | 400 |
401 this._panelToolbar.appendSeparator(); | 401 this._panelToolbar.appendSeparator(); |
402 var garbageCollectButton = new WebInspector.ToolbarButton(WebInspector.U IString("Collect garbage"), "garbage-collect-toolbar-item"); | 402 var garbageCollectButton = new WebInspector.ToolbarButton(WebInspector.U IString("Collect garbage"), "garbage-collect-toolbar-item"); |
403 garbageCollectButton.addEventListener("click", this._garbageCollectButto nClicked, this); | 403 garbageCollectButton.addEventListener("click", this._garbageCollectButto nClicked, this); |
404 this._panelToolbar.appendToolbarItem(garbageCollectButton); | 404 this._panelToolbar.appendToolbarItem(garbageCollectButton); |
405 | 405 |
406 if (Runtime.experiments.isEnabled("cpuThrottling")) { | 406 if (Runtime.experiments.isEnabled("cpuThrottling")) { |
407 this._panelToolbar.appendSeparator(); | 407 this._panelToolbar.appendSeparator(); |
408 this._cpuThrottlingCombobox = new WebInspector.ToolbarComboBox(this. _onCPUThrottlingChanged.bind(this)); | 408 this._cpuThrottlingCombobox = new WebInspector.ToolbarComboBox(this. _onCPUThrottlingChanged.bind(this)); |
409 /** | |
410 * @param {string} name | |
411 * @param {number} value | |
412 * @this {WebInspector.TimelinePanel} | |
413 */ | |
414 function addGroupingOption(name, value) | |
415 { | |
416 var option = this._cpuThrottlingCombobox.createOption(name, "", String(value)); | |
417 this._cpuThrottlingCombobox.addOption(option); | |
418 if (value === this._cpuThrottlingManager.rate()) | |
419 this._cpuThrottlingCombobox.select(option); | |
420 } | |
421 addGroupingOption.call(this, WebInspector.UIString("No CPU throttlin g"), 1); | |
422 addGroupingOption.call(this, WebInspector.UIString("High end device\ u2003(2x slowdown)"), 2); | |
423 addGroupingOption.call(this, WebInspector.UIString("Low end device\u 2003(5x slowdown)"), 5); | |
424 this._panelToolbar.appendToolbarItem(this._cpuThrottlingCombobox); | 409 this._panelToolbar.appendToolbarItem(this._cpuThrottlingCombobox); |
410 this._populateCPUThrottingCombobox(); | |
425 } | 411 } |
426 }, | 412 }, |
427 | 413 |
414 _populateCPUThrottingCombobox: function() | |
415 { | |
416 var cpuThrottlingCombobox = this._cpuThrottlingCombobox; | |
417 cpuThrottlingCombobox.removeOptions(); | |
418 var currentRate = this._cpuThrottlingManager.rate(); | |
419 var hasSelection = false; | |
420 /** | |
421 * @param {string} name | |
422 * @param {number} value | |
423 */ | |
424 function addGroupingOption(name, value) | |
425 { | |
426 var option = cpuThrottlingCombobox.createOption(name, "", String(val ue)); | |
427 cpuThrottlingCombobox.addOption(option); | |
428 if (hasSelection || (value && value !== currentRate)) | |
429 return; | |
430 cpuThrottlingCombobox.select(option); | |
431 hasSelection = true; | |
432 } | |
433 var predefinedRates = new Map([ | |
434 [1, WebInspector.UIString("No CPU throttling")], | |
435 [2, WebInspector.UIString("High end device (2\xD7 slowdown)")], | |
436 [5, WebInspector.UIString("Low end device (5\xD7 slowdown)")] | |
437 ]); | |
438 for (var rate of predefinedRates) | |
439 addGroupingOption(rate[1], rate[0]); | |
440 var customRate = predefinedRates.has(currentRate) ? "" : WebInspector.UI String(" (%d\xD7 slowdown)", currentRate); | |
441 addGroupingOption(WebInspector.UIString("Custom rate%s\u2026", customRat e), 0); | |
caseq
2016/08/10 18:28:47
addGroupingOption(predefinedRates.has(currentRate)
alph
2016/08/10 21:14:21
Done.
| |
442 }, | |
443 | |
428 _prepareToLoadTimeline: function() | 444 _prepareToLoadTimeline: function() |
429 { | 445 { |
430 console.assert(this._state === WebInspector.TimelinePanel.State.Idle); | 446 console.assert(this._state === WebInspector.TimelinePanel.State.Idle); |
431 this._setState(WebInspector.TimelinePanel.State.Loading); | 447 this._setState(WebInspector.TimelinePanel.State.Loading); |
432 }, | 448 }, |
433 | 449 |
434 _createFileSelector: function() | 450 _createFileSelector: function() |
435 { | 451 { |
436 if (this._fileSelectorElement) | 452 if (this._fileSelectorElement) |
437 this._fileSelectorElement.remove(); | 453 this._fileSelectorElement.remove(); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
551 _onNetworkChanged: function() | 567 _onNetworkChanged: function() |
552 { | 568 { |
553 if (this._flameChart) | 569 if (this._flameChart) |
554 this._flameChart.enableNetworkPane(this._captureNetworkSetting.get() , true); | 570 this._flameChart.enableNetworkPane(this._captureNetworkSetting.get() , true); |
555 }, | 571 }, |
556 | 572 |
557 _onCPUThrottlingChanged: function() | 573 _onCPUThrottlingChanged: function() |
558 { | 574 { |
559 if (!this._cpuThrottlingManager) | 575 if (!this._cpuThrottlingManager) |
560 return; | 576 return; |
561 var value = Number.parseFloat(this._cpuThrottlingCombobox.selectedOption ().value); | 577 var value = this._cpuThrottlingCombobox.selectedOption().value; |
562 this._cpuThrottlingManager.setRate(value); | 578 this._populateCPUThrottingCombobox(); |
579 if (value === "0") | |
caseq
2016/08/10 18:28:47
can we have some other check here? Either check fo
alph
2016/08/10 21:14:21
Done.
| |
580 WebInspector.TimelinePanel.CustomCPUThrottlingRateDialog.show(setNew Rate.bind(this), this._cpuThrottlingCombobox.element); | |
581 else | |
582 setNewRate.call(this, value); | |
583 | |
584 /** | |
585 * @param {string} text | |
586 * @this {WebInspector.TimelinePanel} | |
587 */ | |
588 function setNewRate(text) | |
589 { | |
590 this._cpuThrottlingManager.setRate(Number.parseFloat(text)); | |
591 this._populateCPUThrottingCombobox(); | |
592 } | |
563 }, | 593 }, |
564 | 594 |
565 /** | 595 /** |
566 * @param {boolean} enabled | 596 * @param {boolean} enabled |
567 */ | 597 */ |
568 _setUIControlsEnabled: function(enabled) | 598 _setUIControlsEnabled: function(enabled) |
569 { | 599 { |
570 /** | 600 /** |
571 * @param {!WebInspector.ToolbarButton} toolbarButton | 601 * @param {!WebInspector.ToolbarButton} toolbarButton |
572 */ | 602 */ |
(...skipping 1443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2016 * @override | 2046 * @override |
2017 * @param {!WebInspector.Target} target | 2047 * @param {!WebInspector.Target} target |
2018 */ | 2048 */ |
2019 targetRemoved: function(target) | 2049 targetRemoved: function(target) |
2020 { | 2050 { |
2021 this._targets.remove(target, true); | 2051 this._targets.remove(target, true); |
2022 }, | 2052 }, |
2023 | 2053 |
2024 __proto__: WebInspector.Object.prototype | 2054 __proto__: WebInspector.Object.prototype |
2025 } | 2055 } |
2056 | |
2057 /** | |
2058 * @constructor | |
2059 * @extends {WebInspector.HBox} | |
2060 * @param {function(string)} callback | |
caseq
2016/08/10 18:28:47
use a promise perhaps?
alph
2016/08/10 21:14:21
Done.
| |
2061 */ | |
2062 WebInspector.TimelinePanel.CustomCPUThrottlingRateDialog = function(callback) | |
2063 { | |
2064 WebInspector.HBox.call(this, true); | |
2065 this.registerRequiredCSS("ui_lazy/dialog.css"); | |
caseq
2016/08/10 18:28:47
can this be taken care of by Dialog?
alph
2016/08/10 21:14:21
Looks like a separate CL.
| |
2066 this.contentElement.createChild("label").textContent = WebInspector.UIString ("CPU Slowdown Rate: "); | |
2067 | |
2068 this._input = this.contentElement.createChild("input"); | |
2069 this._input.setAttribute("type", "text"); | |
2070 this._input.style.width = "64px"; | |
2071 this._input.addEventListener("keydown", this._onKeyDown.bind(this), false); | |
2072 | |
2073 var addButton = this.contentElement.createChild("button"); | |
2074 addButton.textContent = WebInspector.UIString("Set"); | |
2075 addButton.addEventListener("click", this._apply.bind(this), false); | |
2076 | |
2077 this.setDefaultFocusedElement(this._input); | |
2078 this._callback = callback; | |
2079 this.contentElement.tabIndex = 0; | |
2080 } | |
2081 | |
2082 /** | |
2083 * @param {function(string)} callback | |
2084 * @param {!Element=} anchor | |
2085 */ | |
2086 WebInspector.TimelinePanel.CustomCPUThrottlingRateDialog.show = function(callbac k, anchor) | |
2087 { | |
2088 var dialog = new WebInspector.Dialog(); | |
2089 var dialogContent = new WebInspector.TimelinePanel.CustomCPUThrottlingRateDi alog(done); | |
2090 dialogContent.show(dialog.element); | |
2091 dialog.setWrapsContent(true); | |
2092 if (anchor) | |
2093 dialog.setPosition(anchor.totalOffsetLeft() - 32, anchor.totalOffsetTop( ) + anchor.offsetHeight); | |
2094 dialog.show(); | |
2095 | |
2096 /** | |
2097 * @param {string} value | |
2098 */ | |
2099 function done(value) | |
2100 { | |
2101 dialog.detach(); | |
2102 callback(value); | |
2103 } | |
2104 } | |
2105 | |
2106 WebInspector.TimelinePanel.CustomCPUThrottlingRateDialog.prototype = { | |
2107 _apply: function() | |
2108 { | |
2109 this._callback(this._input.value); | |
2110 }, | |
2111 | |
2112 /** | |
2113 * @param {!Event} event | |
2114 */ | |
2115 _onKeyDown: function(event) | |
2116 { | |
2117 if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Enter.code) { | |
2118 event.preventDefault(); | |
2119 this._apply(); | |
2120 } | |
2121 }, | |
2122 | |
2123 __proto__: WebInspector.HBox.prototype | |
2124 } | |
OLD | NEW |