| 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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 this._model.addFilter(this._durationFilter); | 106 this._model.addFilter(this._durationFilter); |
| 107 this._model.addFilter(this._textFilter); | 107 this._model.addFilter(this._textFilter); |
| 108 | 108 |
| 109 /** @type {!Array.<!WebInspector.TimelineModeView>} */ | 109 /** @type {!Array.<!WebInspector.TimelineModeView>} */ |
| 110 this._currentViews = []; | 110 this._currentViews = []; |
| 111 | 111 |
| 112 this._overviewModeSetting = WebInspector.settings.createSetting("timelineOve
rviewMode", WebInspector.TimelinePanel.OverviewMode.Events); | 112 this._overviewModeSetting = WebInspector.settings.createSetting("timelineOve
rviewMode", WebInspector.TimelinePanel.OverviewMode.Events); |
| 113 this._flameChartEnabledSetting = WebInspector.settings.createSetting("timeli
neFlameChartEnabled", false); | 113 this._flameChartEnabledSetting = WebInspector.settings.createSetting("timeli
neFlameChartEnabled", false); |
| 114 this._createStatusBarItems(); | 114 this._createStatusBarItems(); |
| 115 | 115 |
| 116 this._topPane = new WebInspector.SplitView(true, false); | 116 var topPaneElement = this.element.createChild("div", "hbox"); |
| 117 this._topPane.element.id = "timeline-overview-panel"; | 117 topPaneElement.id = "timeline-overview-panel"; |
| 118 this._topPane.show(this.element); | |
| 119 this._topPane.addEventListener(WebInspector.SplitView.Events.SidebarSizeChan
ged, this._sidebarResized, this); | |
| 120 this._topPane.setResizable(false); | |
| 121 this._createRecordingOptions(); | |
| 122 | 118 |
| 123 // Create top overview component. | 119 // Create top overview component. |
| 124 this._overviewPane = new WebInspector.TimelineOverviewPane(this._model, this
._uiUtils); | 120 this._overviewPane = new WebInspector.TimelineOverviewPane(this._model, this
._uiUtils); |
| 125 this._overviewPane.addEventListener(WebInspector.TimelineOverviewPane.Events
.WindowChanged, this._onWindowChanged.bind(this)); | 121 this._overviewPane.addEventListener(WebInspector.TimelineOverviewPane.Events
.WindowChanged, this._onWindowChanged.bind(this)); |
| 126 this._overviewPane.show(this._topPane.mainElement()); | 122 this._overviewPane.show(topPaneElement); |
| 127 | 123 |
| 128 this._createFileSelector(); | 124 this._createFileSelector(); |
| 129 this._registerShortcuts(); | 125 this._registerShortcuts(); |
| 130 | 126 |
| 131 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod
el.EventTypes.WillReloadPage, this._willReloadPage, this); | 127 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod
el.EventTypes.WillReloadPage, this._willReloadPage, this); |
| 132 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod
el.EventTypes.Load, this._loadEventFired, this); | 128 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod
el.EventTypes.Load, this._loadEventFired, this); |
| 133 | 129 |
| 134 // Create top level properties splitter. | 130 // Create top level properties splitter. |
| 135 this._detailsSplitView = new WebInspector.SplitView(false, true, "timelinePa
nelDetailsSplitViewState"); | 131 this._detailsSplitView = new WebInspector.SplitView(false, true, "timelinePa
nelDetailsSplitViewState"); |
| 136 this._detailsSplitView.element.classList.add("timeline-details-split"); | 132 this._detailsSplitView.element.classList.add("timeline-details-split"); |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 return this._windowEndTime; | 230 return this._windowEndTime; |
| 235 return this._model.maximumRecordTime() || Infinity; | 231 return this._model.maximumRecordTime() || Infinity; |
| 236 }, | 232 }, |
| 237 | 233 |
| 238 /** | 234 /** |
| 239 * @param {!WebInspector.Event} event | 235 * @param {!WebInspector.Event} event |
| 240 */ | 236 */ |
| 241 _sidebarResized: function(event) | 237 _sidebarResized: function(event) |
| 242 { | 238 { |
| 243 var width = /** @type {number} */ (event.data); | 239 var width = /** @type {number} */ (event.data); |
| 244 this._topPane.setSidebarSize(width); | |
| 245 for (var i = 0; i < this._currentViews.length; ++i) | 240 for (var i = 0; i < this._currentViews.length; ++i) |
| 246 this._currentViews[i].setSidebarSize(width); | 241 this._currentViews[i].setSidebarSize(width); |
| 247 }, | 242 }, |
| 248 | 243 |
| 249 /** | 244 /** |
| 250 * @param {!WebInspector.Event} event | 245 * @param {!WebInspector.Event} event |
| 251 */ | 246 */ |
| 252 _onWindowChanged: function(event) | 247 _onWindowChanged: function(event) |
| 253 { | 248 { |
| 254 this._windowStartTime = event.data.startTime; | 249 this._windowStartTime = event.data.startTime; |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 return this._lazyPaintProfilerView; | 312 return this._lazyPaintProfilerView; |
| 318 }, | 313 }, |
| 319 | 314 |
| 320 /** | 315 /** |
| 321 * @param {!WebInspector.TimelineModeView} modeView | 316 * @param {!WebInspector.TimelineModeView} modeView |
| 322 */ | 317 */ |
| 323 _addModeView: function(modeView) | 318 _addModeView: function(modeView) |
| 324 { | 319 { |
| 325 modeView.setWindowTimes(this.windowStartTime(), this.windowEndTime()); | 320 modeView.setWindowTimes(this.windowStartTime(), this.windowEndTime()); |
| 326 modeView.refreshRecords(this._textFilter._regex); | 321 modeView.refreshRecords(this._textFilter._regex); |
| 327 modeView.view().setSidebarSize(this._topPane.sidebarSize()); | |
| 328 this._stackView.appendView(modeView.view(), "timelinePanelTimelineStackS
plitViewState"); | 322 this._stackView.appendView(modeView.view(), "timelinePanelTimelineStackS
plitViewState"); |
| 329 modeView.view().addEventListener(WebInspector.SplitView.Events.SidebarSi
zeChanged, this._sidebarResized, this); | 323 modeView.view().addEventListener(WebInspector.SplitView.Events.SidebarSi
zeChanged, this._sidebarResized, this); |
| 330 this._currentViews.push(modeView); | 324 this._currentViews.push(modeView); |
| 331 }, | 325 }, |
| 332 | 326 |
| 333 _removeAllModeViews: function() | 327 _removeAllModeViews: function() |
| 334 { | 328 { |
| 335 for (var i = 0; i < this._currentViews.length; ++i) { | 329 for (var i = 0; i < this._currentViews.length; ++i) { |
| 336 this._currentViews[i].removeEventListener(WebInspector.SplitView.Eve
nts.SidebarSizeChanged, this._sidebarResized, this); | 330 this._currentViews[i].removeEventListener(WebInspector.SplitView.Eve
nts.SidebarSizeChanged, this._sidebarResized, this); |
| 337 this._currentViews[i].dispose(); | 331 this._currentViews[i].dispose(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 350 { | 344 { |
| 351 if (!this._recordingOptionUIControls) | 345 if (!this._recordingOptionUIControls) |
| 352 this._recordingOptionUIControls = []; | 346 this._recordingOptionUIControls = []; |
| 353 | 347 |
| 354 var checkboxElement = document.createElement("input"); | 348 var checkboxElement = document.createElement("input"); |
| 355 var labelElement = WebInspector.SettingsUI.createSettingCheckbox(name, s
etting, true, checkboxElement, tooltip); | 349 var labelElement = WebInspector.SettingsUI.createSettingCheckbox(name, s
etting, true, checkboxElement, tooltip); |
| 356 this._recordingOptionUIControls.push({ "label": labelElement, "checkbox"
: checkboxElement }); | 350 this._recordingOptionUIControls.push({ "label": labelElement, "checkbox"
: checkboxElement }); |
| 357 return labelElement; | 351 return labelElement; |
| 358 }, | 352 }, |
| 359 | 353 |
| 360 _createRecordingOptions: function() | |
| 361 { | |
| 362 var topPaneSidebarElement = this._topPane.sidebarElement(); | |
| 363 this._captureStacksSetting = WebInspector.settings.createSetting("timeli
neCaptureStacks", true); | |
| 364 topPaneSidebarElement.appendChild(this._createSettingCheckbox(WebInspect
or.UIString("Capture stacks"), | |
| 365 this._capt
ureStacksSetting, | |
| 366 WebInspect
or.UIString("Capture JavaScript stack on every timeline event"))); | |
| 367 | |
| 368 this._captureMemorySetting = WebInspector.settings.createSetting("timeli
neCaptureMemory", false); | |
| 369 topPaneSidebarElement.appendChild(this._createSettingCheckbox(WebInspect
or.UIString("Capture memory"), | |
| 370 this._capt
ureMemorySetting, | |
| 371 WebInspect
or.UIString("Capture memory information on every timeline event"))); | |
| 372 this._captureMemorySetting.addChangeListener(this._onModeChanged, this); | |
| 373 | |
| 374 if (WebInspector.experimentsSettings.timelinePowerProfiler.isEnabled())
{ | |
| 375 this._capturePowerSetting = WebInspector.settings.createSetting("tim
elineCapturePower", false); | |
| 376 topPaneSidebarElement.appendChild(this._createSettingCheckbox(WebIns
pector.UIString("Capture power"), | |
| 377 this._
capturePowerSetting, | |
| 378 WebIns
pector.UIString("Capture power information"))); | |
| 379 this._capturePowerSetting.addChangeListener(this._onModeChanged, thi
s); | |
| 380 } | |
| 381 | |
| 382 if (WebInspector.experimentsSettings.timelineOnTraceEvents.isEnabled())
{ | |
| 383 this._captureLayersAndPicturesSetting = WebInspector.settings.create
Setting("timelineCaptureLayersAndPictures", false); | |
| 384 topPaneSidebarElement.appendChild(this._createSettingCheckbox(WebIns
pector.UIString("Capture pictures"), | |
| 385 this._
captureLayersAndPicturesSetting, | |
| 386 WebIns
pector.UIString("Capture graphics layer positions and painted pictures"))); | |
| 387 } | |
| 388 }, | |
| 389 | |
| 390 _createStatusBarItems: function() | 354 _createStatusBarItems: function() |
| 391 { | 355 { |
| 392 var panelStatusBarElement = this.element.createChild("div", "panel-statu
s-bar"); | 356 var panelStatusBarElement = this.element.createChild("div", "panel-statu
s-bar"); |
| 393 this._statusBarButtons = /** @type {!Array.<!WebInspector.StatusBarItem>
} */ ([]); | 357 this._statusBarButtons = /** @type {!Array.<!WebInspector.StatusBarItem>
} */ ([]); |
| 394 | 358 |
| 395 this.toggleTimelineButton = new WebInspector.StatusBarButton("", "record
-profile-status-bar-item"); | 359 this.toggleTimelineButton = new WebInspector.StatusBarButton("", "record
-profile-status-bar-item"); |
| 396 this.toggleTimelineButton.addEventListener("click", this._toggleTimeline
ButtonClicked, this); | 360 this.toggleTimelineButton.addEventListener("click", this._toggleTimeline
ButtonClicked, this); |
| 397 this._statusBarButtons.push(this.toggleTimelineButton); | 361 this._statusBarButtons.push(this.toggleTimelineButton); |
| 398 panelStatusBarElement.appendChild(this.toggleTimelineButton.element); | 362 panelStatusBarElement.appendChild(this.toggleTimelineButton.element); |
| 399 this._updateToggleTimelineButton(false); | 363 this._updateToggleTimelineButton(false); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 418 panelStatusBarElement.appendChild(framesToggleButton.element); | 382 panelStatusBarElement.appendChild(framesToggleButton.element); |
| 419 | 383 |
| 420 if (WebInspector.experimentsSettings.timelineOnTraceEvents.isEnabled())
{ | 384 if (WebInspector.experimentsSettings.timelineOnTraceEvents.isEnabled())
{ |
| 421 var flameChartToggleButton = new WebInspector.StatusBarButton(WebIns
pector.UIString("Tracing mode"), "timeline-flame-chart-status-bar-item"); | 385 var flameChartToggleButton = new WebInspector.StatusBarButton(WebIns
pector.UIString("Tracing mode"), "timeline-flame-chart-status-bar-item"); |
| 422 flameChartToggleButton.toggled = this._flameChartEnabledSetting.get(
); | 386 flameChartToggleButton.toggled = this._flameChartEnabledSetting.get(
); |
| 423 flameChartToggleButton.addEventListener("click", this._flameChartEna
bledChanged.bind(this, flameChartToggleButton)); | 387 flameChartToggleButton.addEventListener("click", this._flameChartEna
bledChanged.bind(this, flameChartToggleButton)); |
| 424 this._statusBarButtons.push(flameChartToggleButton); | 388 this._statusBarButtons.push(flameChartToggleButton); |
| 425 panelStatusBarElement.appendChild(flameChartToggleButton.element); | 389 panelStatusBarElement.appendChild(flameChartToggleButton.element); |
| 426 } | 390 } |
| 427 | 391 |
| 392 this._captureStacksSetting = WebInspector.settings.createSetting("timeli
neCaptureStacks", true); |
| 393 panelStatusBarElement.appendChild(this._createSettingCheckbox(WebInspect
or.UIString("Stacks"), |
| 394 this._capt
ureStacksSetting, |
| 395 WebInspect
or.UIString("Capture JavaScript stack on every timeline event"))); |
| 396 this._captureMemorySetting = WebInspector.settings.createSetting("timeli
neCaptureMemory", false); |
| 397 panelStatusBarElement.appendChild(this._createSettingCheckbox(WebInspect
or.UIString("Memory"), |
| 398 this._capt
ureMemorySetting, |
| 399 WebInspect
or.UIString("Capture memory information on every timeline event"))); |
| 400 this._captureMemorySetting.addChangeListener(this._onModeChanged, this); |
| 401 if (WebInspector.experimentsSettings.timelinePowerProfiler.isEnabled())
{ |
| 402 this._capturePowerSetting = WebInspector.settings.createSetting("tim
elineCapturePower", false); |
| 403 panelStatusBarElement.appendChild(this._createSettingCheckbox(WebIns
pector.UIString("Power"), |
| 404 this._
capturePowerSetting, |
| 405 WebIns
pector.UIString("Capture power information"))); |
| 406 this._capturePowerSetting.addChangeListener(this._onModeChanged, thi
s); |
| 407 } |
| 408 if (WebInspector.experimentsSettings.timelineOnTraceEvents.isEnabled())
{ |
| 409 this._captureLayersAndPicturesSetting = WebInspector.settings.create
Setting("timelineCaptureLayersAndPictures", false); |
| 410 panelStatusBarElement.appendChild(this._createSettingCheckbox(WebIns
pector.UIString("Paint"), |
| 411 this._
captureLayersAndPicturesSetting, |
| 412 WebIns
pector.UIString("Capture graphics layer positions and painted pictures"))); |
| 413 } |
| 414 |
| 428 this._miscStatusBarItems = panelStatusBarElement.createChild("div", "sta
tus-bar-item"); | 415 this._miscStatusBarItems = panelStatusBarElement.createChild("div", "sta
tus-bar-item"); |
| 429 | 416 |
| 430 this._filtersContainer = this.element.createChild("div", "timeline-filte
rs-header hidden"); | 417 this._filtersContainer = this.element.createChild("div", "timeline-filte
rs-header hidden"); |
| 431 this._filtersContainer.appendChild(this._filterBar.filtersElement()); | 418 this._filtersContainer.appendChild(this._filterBar.filtersElement()); |
| 432 this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersTo
ggled, this._onFiltersToggled, this); | 419 this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersTo
ggled, this._onFiltersToggled, this); |
| 433 this._filterBar.setName("timelinePanel"); | 420 this._filterBar.setName("timelinePanel"); |
| 434 }, | 421 }, |
| 435 | 422 |
| 436 /** | 423 /** |
| 437 * @return {!WebInspector.FilterBar} | 424 * @return {!WebInspector.FilterBar} |
| (...skipping 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1481 * @param {!WebInspector.TimelineModel.Record} record | 1468 * @param {!WebInspector.TimelineModel.Record} record |
| 1482 * @return {boolean} | 1469 * @return {boolean} |
| 1483 */ | 1470 */ |
| 1484 accept: function(record) | 1471 accept: function(record) |
| 1485 { | 1472 { |
| 1486 return !this._regex || this._uiUtils.testContentMatching(record, this._r
egex); | 1473 return !this._regex || this._uiUtils.testContentMatching(record, this._r
egex); |
| 1487 }, | 1474 }, |
| 1488 | 1475 |
| 1489 __proto__: WebInspector.TimelineModel.Filter.prototype | 1476 __proto__: WebInspector.TimelineModel.Filter.prototype |
| 1490 } | 1477 } |
| OLD | NEW |