This patch remove some unused dom elements and CSS rules
that might negatively influence reflow times.
Also, we set an hidden overflow to all the element we know
for sure won't ever have a scrollbar, which seems to speed
up the reflow significantly.
Differential Revision: https://phabricator.services.mozilla.com/D4695
--HG--
extra : moz-landing-system : lando
This patch introduces some options that can be passed to
setItems and openPopup to prevent doing unecessary work.
The main ideas here are to create all the popup items and
put them in a document fragment which then will be appended
to the popup, so we don't add them one by one which can be costly.
When creatingthe items, we also create one directly with the
selected class if autoSelect is set to true. This way, we don't have
to toggle the class later (which led to another reflow).
We take this work as an opportinuity to clean up the component.
Unused function (like appendItem and removeItem) are removed,
selectedIndex does not use a getter/setter anymore.
Some of the consumers calls are updated and so is the component test.
Differential Revision: https://phabricator.services.mozilla.com/D4848
--HG--
extra : moz-landing-system : lando
This patch introduces some options that can be passed to
setItems and openPopup to prevent doing unecessary work.
The main ideas here are to create all the popup items and
put them in a document fragment which then will be appended
to the popup, so we don't add them one by one which can be costly.
When creatingthe items, we also create one directly with the
selected class if autoSelect is set to true. This way, we don't have
to toggle the class later (which led to another reflow).
We take this work as an opportinuity to clean up the component.
Unused function (like appendItem and removeItem) are removed,
selectedIndex does not use a getter/setter anymore.
Some of the consumers calls are updated and so is the component test.
Differential Revision: https://phabricator.services.mozilla.com/D4848
--HG--
extra : moz-landing-system : lando
This way, codeMirror does not trigger so many reflows and
makes setAutocompletionText faster.
An unwanted side-effect was that it made closing the console
a lot slower. Looking at the closing code of the JsTerm, we
do call setAutocompletionText("") in the end, which we don't
really need since we destroy the editor shortly after. Removing
this call keeps closing time the same as before.
Differential Revision: https://phabricator.services.mozilla.com/D4905
--HG--
extra : moz-landing-system : lando
This enables the following extra rules over the current configuration:
- for-direction
- no-compare-neg-zero
- no-new-symbol
- no-this-before-super
Other rules that are in eslint:recommended but not in our configuration are turned off for now.
Differential Revision: https://phabricator.services.mozilla.com/D4944
--HG--
extra : moz-landing-system : lando
GCLI has been handling the state of our buttons as well as managing shared highlighters.
Since the gcli removal, we no longer share the rulers and measure with any other UI, so a location
for shared state is no longer needed.
Differential Revision: https://phabricator.services.mozilla.com/D3506
--HG--
extra : moz-landing-system : lando
Fixes this warning every time the toolbox is opened:
"Warning: Each child in an array or iterator should have a unique "key" prop.
Check the render method of `ToolboxTabs`. See https://fb.me/react-warning-keys for more information.
in MenuItem (created by ToolboxTabs)
in ToolboxTabs (created by ToolboxToolbar)
in div (created by ToolboxToolbar)
in ToolboxToolbar (created by ToolboxController)
in ToolboxController"
Differential Revision: https://phabricator.services.mozilla.com/D4671
--HG--
extra : moz-landing-system : lando