I am always happy to see more xul going away. Please implement a filter to only show modified preferences. Sorting by modified is probably my most common operation after search on the old page.
Thanks On Fri, Jan 25, 2019 at 11:40 AM Axel Hecht <l...@mozilla.com> wrote: > > Is there a tracking bug for follow-ups? > > I'd have a few, adding pref w/out search (*), show add on screen for > long searches, filter/order by modified, search in values, can't abort edit. > > (*) I just realize that I didn't understand how "add" works. Maybe the > bug is to make that discoverable? > > Axel > > Am 24.01.19 um 20:31 schrieb Paolo Amadini: > > Last year a group of students, Luke, Matthias, and Vincent, designed and > > implemented a new version of "about:config" in order to improve the > > ergonomics and align the look and feel with other in-content Firefox > > pages. They did an amazing job, working with design input from Amy Lee > > and with myself doing code reviews. > > > > I'm happy to announce that this work will be available to everyone in > > Firefox 67, and can be already used in Nightly at this URL: > > > > chrome://browser/content/aboutconfig/aboutconfig.html > > > > Most improvements are the natural result of using HTML instead of XUL: > > > > * There are visible buttons for editing preferences > > * String values are displayed in full as multiline text > > * Find in page works for both names and values > > * Triple click selects one preference name or value quickly > > * Text selection works on multiple preferences > > * The context menu is the same as regular web pages > > - Copy to the clipboard > > - Open selected link > > - Search with your preferred engine > > * Search results don't include spurious value matches anymore > > * Closing and reopening the browser while the tab is pinned > > preserves the search term > > > > We've not just converted the old page, we've designed something new > > based on actual use cases, telemetry data, and opportunity cost. We > > preferred natural HTML page interactions, for example a double click now > > selects text instead of toggling the value. The way the page is explored > > with screen readers has also changed, and we've ensured that the new way > > is still clear and easy to use. > > > > We're still keeping the old "about:config" around at the following URL > > for a while, to mitigate risk related to unforeseen circumstances: > > > > chrome://global/content/config.xul > > > > Thunderbird will not be affected by this change initially, but at some > > point we'll remove the old code from mozilla-central since Thunderbird > > will be the only remaining user. > > > > > > *Performance* > > > > This page can be slower than the old one in some cases. On slower > > machines the page may take a moment to display all preferences, if you > > so choose. We worked around this by waiting for the first input before > > displaying results, as 93% of "about:config" page shows include a search > > anyway. Navigation, scrolling, and find in page are then fast. > > > > We've used performance profiling to optimize the page and avoid the > > slowest layout modes, but we've not compromised on using the latest > > best practices for Firefox Desktop like Fluent localization, which are > > anyways in the process of being optimized on their own. > > > > We've explicitly chosen to avoid virtualizing the list, that is only > > rendering visible DOM nodes, because this would add complexity that is > > not needed for an internal page. It would also nullify most of the > > advantages in accessibility and usability that we gained at a low cost > > just because we're using a simple HTML table. Effort would be better > > spent on optimizing the web for the layout of tables of about 3,000 > > rows, which would benefit every web site instead of Firefox only. > > > > > > *Tutorials and screenshots on the web* > > > > While with some features there is a concern that a change would make it > > more difficult for users to follow instructions found in older tutorials > > on the web, this is much less of a concern in this case, given that the > > page caters to experienced users and the changes affect presentation > > rather than actual functionality. > > > > In fact, existing information on the web can more easily become obsolete > > because the preferences go away or change their meaning, rather than > > because of a change in how the values can be changed. > > > > > > *Features that have not been rewritten* > > > > If the new page is missing a feature that the old one used to have, > > there is probably a good reason. Luke added telemetry probes to the > > current "about:config" so we know how people use it. It's basically just > > one mode of operation across all channels: search, then maybe edit or > > add a preference. > > > > There are more details in the history section below, but this is to say > > that it is unlikely that we would accept a patch to add back a certain > > feature just because it used to be present before. All patches would > > have to be motivated by an actual need and include exhaustive > > regression tests. > > > > That said, we have ideas for supporting new use cases for browser > > developers, like pinning a list of favorites or just showing recently > > modified preferences first, but we don't plan to start working on them > > before the current version reaches Release. > > > > > > *More details on history, motivation, and process* > > > > If you're reading this you probably already have a good idea of what > > we're talking about, but it's worth stating how we thought about the > > project when we approached it. > > > > "about:config" allows the occasional modification of application data > > that developers have chosen to store using the internal Preferences API. > > This may be operational data, feature flags, or settings that cannot be > > modified anywhere else in the user interface because it would be > > dangerous or rarely needed. This page is used very often by browser > > engineers during regular development and occasionally by other users > > after reading specific documentation in advance. > > > > The original "about:config" page was put together in the remote past as > > the "simplest thing that works" for the use case above. At the time, > > this involved about 600 lines of JavaScript, a supporting XUL "tree" > > element, and a few predefined "alert" and "input" modal dialogs. While > > this didn't result in the most comfortable user interface possible, it > > served the purpose and we're still using it today with little or no > > changes. > > > > Now we're in the process of removing XUL from mozilla-central, including > > the "tree" widget, and we're taking this opportunity to use standard web > > technologies for more of our internal pages. The practical effect is > > that we've improved the user experience of a functionality that was > > effectively left unchanged for decades. > > > > When rewriting the page, however, we followed the exact same criteria: > > simplest thing that works, cheap, and easy to maintain, but without XUL. > > Just reimplementing the same user experience, which was a side effect of > > the cheapest tools available at the time, would have been unnecessarily > > expensive today. > > > > One good thing with this approach is that the page can feel like part of > > Firefox with little effort, just by using HTML and the default styles > > from the Photon design system. > > > > Also, thanks to the better web platform that we have today, the same use > > case can be supported using about 400 lines of JavaScript and a few > > lines of HTML and CSS, without any external UI components. For example, > > we can use HTML5 form validation to get a better user experience when > > editing numeric values at a low cost. > > > > We've also added extensive regression test coverage as we progressed, in > > line with our usual practices, to ensure easy maintenance going forward. > > > > Thanks again to Luke, Matthias, and Vincent for making all of this > > possible! > > > > Cheers, > > Paolo > > _______________________________________________ > dev-platform mailing list > dev-platform@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-platform _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform