Whenever something changed on the selected element (pseudo, attribute), the
breadcrumbs widget used to loop over all breadcrumbs buttons and re-create the
markup for each.
Now, we cache a string version of the text displayed in a button and compare
the new value to that in the loop, to skip DOM updates.
Additionally, the breadcrumbs widget used to update itself after all markup mutations
in the DOM tree displayed in the inspector. The update method now looks at the mutations
array and early return if none of them actually impact the displayed breadcrumbs.
--HG--
extra : rebase_source : 4945c42d03e5be856c92919aa271811e66f3d188
Here we convert the logical padding properties into their new resolved-at-
cascade-time implementations. This involves:
* converting -moz-padding-{start,end} into logical longhand properties
* adding padding-inline-{start,end} aliases for -moz-padding-{start,end}
* converting padding-{left,right} into longhand properties
* removing padding-{left,right}-value and
padding-{left,right}-{ltr,rtl}-source internal properties
The CSS parser and various tests are simplified a bit as a result.
Here we convert the logical padding properties into their new resolved-at-
cascade-time implementations. This involves:
* converting -moz-padding-{start,end} into logical longhand properties
* adding padding-inline-{start,end} aliases for -moz-padding-{start,end}
* converting padding-{left,right} into longhand properties
* removing padding-{left,right}-value and
padding-{left,right}-{ltr,rtl}-source internal properties
The CSS parser and various tests are simplified a bit as a result.
The -*- file variable lines -*- establish per-file settings that Emacs will
pick up. This patch makes the following changes to those lines (and touches
nothing else):
- Never set the buffer's mode.
Years ago, Emacs did not have a good JavaScript mode, so it made sense
to use Java or C++ mode in .js files. However, Emacs has had js-mode for
years now; it's perfectly serviceable, and is available and enabled by
default in all major Emacs packagings.
Selecting a mode in the -*- file variable line -*- is almost always the
wrong thing to do anyway. It overrides Emacs's default choice, which is
(now) reasonable; and even worse, it overrides settings the user might
have made in their '.emacs' file for that file extension. It's only
useful when there's something specific about that particular file that
makes a particular mode appropriate.
- Correctly propagate settings that establish the correct indentation
level for this file: c-basic-offset and js2-basic-offset should be
js-indent-level. Whatever value they're given should be preserved;
different parts of our tree use different indentation styles.
- We don't use tabs in Mozilla JS code. Always set indent-tabs-mode: nil.
Remove tab-width: settings, at least in files that don't contain tab
characters.
- Remove js2-mode settings that belong in the user's .emacs file, like
js2-skip-preprocessor-directives.