Bug 1367266 - Properly calculate autoscroll prop; r=nchevobbe
authorJan Odvarko <odvarko@gmail.com>
Fri, 26 May 2017 12:51:36 +0200
changeset 360804 2231d313a521211887a2ca6018af7e3bcc65c92b
parent 360803 fba7b035a4f98e9b74aa1e21916822593cc0c39d
child 360805 f54fb8956671dfe852517bfaac7e173e8d0ae195
push id31902
push userryanvm@gmail.com
push dateFri, 26 May 2017 19:43:26 +0000
treeherdermozilla-central@ba1a33add29d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnchevobbe
bugs1367266
milestone55.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1367266 - Properly calculate autoscroll prop; r=nchevobbe MozReview-Commit-ID: K5fJX7HzxGD
devtools/client/webconsole/new-console-output/reducers/ui.js
--- a/devtools/client/webconsole/new-console-output/reducers/ui.js
+++ b/devtools/client/webconsole/new-console-output/reducers/ui.js
@@ -3,34 +3,38 @@
 /* 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 {
   FILTER_BAR_TOGGLE,
   MESSAGE_ADD,
+  REMOVED_MESSAGES_CLEAR,
   TIMESTAMPS_TOGGLE
 } = require("devtools/client/webconsole/new-console-output/constants");
 const Immutable = require("devtools/client/shared/vendor/immutable");
 
 const UiState = Immutable.Record({
   filterBarVisible: false,
   filteredMessageVisible: false,
   autoscroll: true,
   timestampsVisible: true,
 });
 
 function ui(state = new UiState(), action) {
   // Autoscroll should be set for all action types. If the last action was not message
   // add, then turn it off. This prevents us from scrolling after someone toggles a
-  // filter, or to the bottom of the attachement when an expandable message at the bottom
+  // filter, or to the bottom of the attachment when an expandable message at the bottom
   // of the list is expanded. It does depend on the MESSAGE_ADD action being the last in
   // its batch, though.
-  state = state.set("autoscroll", action.type == MESSAGE_ADD);
+  // It also depends on REMOVED_MESSAGES_CLEAR action being sent after MESSAGE_ADD
+  // if number of messages reached the maximum limit.
+  let autoscroll = action.type == MESSAGE_ADD || action.type == REMOVED_MESSAGES_CLEAR;
+  state = state.set("autoscroll", autoscroll);
 
   switch (action.type) {
     case FILTER_BAR_TOGGLE:
       return state.set("filterBarVisible", !state.filterBarVisible);
     case TIMESTAMPS_TOGGLE:
       return state.set("timestampsVisible", action.visible);
 
   }