diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-03-03 19:42:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-03 19:42:25 +0100 |
commit | d252c5b2320859c58900b68a7f5ac82199aa1e83 (patch) | |
tree | bee56152ced9b7485267debb8d50fca952d9c447 /devtools/client/netmonitor/reducers | |
parent | c3039dadd95f5487e84311a9719604fa901aacd7 (diff) | |
parent | 8114b67b64e17482e46c2eaa77dd6a6156130dba (diff) | |
download | UXP-d252c5b2320859c58900b68a7f5ac82199aa1e83.tar UXP-d252c5b2320859c58900b68a7f5ac82199aa1e83.tar.gz UXP-d252c5b2320859c58900b68a7f5ac82199aa1e83.tar.lz UXP-d252c5b2320859c58900b68a7f5ac82199aa1e83.tar.xz UXP-d252c5b2320859c58900b68a7f5ac82199aa1e83.zip |
Merge pull request #36 from janekptacijarabaci/devtools_import-from-moebius_2
Port across devtools enhancements - 2
Diffstat (limited to 'devtools/client/netmonitor/reducers')
-rw-r--r-- | devtools/client/netmonitor/reducers/index.js | 2 | ||||
-rw-r--r-- | devtools/client/netmonitor/reducers/moz.build | 1 | ||||
-rw-r--r-- | devtools/client/netmonitor/reducers/timing-markers.js | 52 |
3 files changed, 55 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/reducers/index.js b/devtools/client/netmonitor/reducers/index.js index f36b1d91f..f003c7805 100644 --- a/devtools/client/netmonitor/reducers/index.js +++ b/devtools/client/netmonitor/reducers/index.js @@ -6,10 +6,12 @@ const { combineReducers } = require("devtools/client/shared/vendor/redux"); const filters = require("./filters"); const requests = require("./requests"); +const timingMarkers = require("./timing-markers"); const ui = require("./ui"); module.exports = combineReducers({ filters, requests, + timingMarkers, ui, }); diff --git a/devtools/client/netmonitor/reducers/moz.build b/devtools/client/netmonitor/reducers/moz.build index d0ac61944..ce904cae8 100644 --- a/devtools/client/netmonitor/reducers/moz.build +++ b/devtools/client/netmonitor/reducers/moz.build @@ -7,5 +7,6 @@ DevToolsModules( 'filters.js', 'index.js', 'requests.js', + 'timing-markers.js', 'ui.js', ) diff --git a/devtools/client/netmonitor/reducers/timing-markers.js b/devtools/client/netmonitor/reducers/timing-markers.js new file mode 100644 index 000000000..cb500b2c4 --- /dev/null +++ b/devtools/client/netmonitor/reducers/timing-markers.js @@ -0,0 +1,52 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const I = require("devtools/client/shared/vendor/immutable"); +const { ADD_TIMING_MARKER, + CLEAR_TIMING_MARKERS } = require("../constants"); + +const TimingMarkers = I.Record({ + firstDocumentDOMContentLoadedTimestamp: -1, + firstDocumentLoadTimestamp: -1, +}); + +function addTimingMarker(state, action) { + if (action.marker.name == "document::DOMContentLoaded" && + state.firstDocumentDOMContentLoadedTimestamp == -1) { + return state.set("firstDocumentDOMContentLoadedTimestamp", + action.marker.unixTime / 1000); + } + + if (action.marker.name == "document::Load" && + state.firstDocumentLoadTimestamp == -1) { + return state.set("firstDocumentLoadTimestamp", + action.marker.unixTime / 1000); + } + + return state; +} + +function clearTimingMarkers(state) { + return state.withMutations(st => { + st.remove("firstDocumentDOMContentLoadedTimestamp"); + st.remove("firstDocumentLoadTimestamp"); + }); +} + +function timingMarkers(state = new TimingMarkers(), action) { + switch (action.type) { + case ADD_TIMING_MARKER: + return addTimingMarker(state, action); + + case CLEAR_TIMING_MARKERS: + return clearTimingMarkers(state); + + default: + return state; + } +} + +module.exports = timingMarkers; |