b79457b703d9b51cf3e38199f4e154d21bc6fc97: Merge inbound to mozilla-central. a=merge
Noemi Erli <nerli@mozilla.com> - Sat, 14 Jul 2018 00:52:51 +0300 - rev 426577
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Merge inbound to mozilla-central. a=merge
4c9aa8e48d61555d84847adf67b41b4e846f7ddd: Bug 1471080 - Increase test chunks for geckoview-junit; r=me,a=test-only
Geoff Brown <gbrown@mozilla.com> - Fri, 13 Jul 2018 13:43:01 -0600 - rev 426576
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471080 - Increase test chunks for geckoview-junit; r=me,a=test-only This should reduce the frequency of gv-junit intermittent time-outs.
bd747e24063da7d803dc5fd20b5a8af0d036f4d5: Backed out 12 changesets (bug 1471025) for build bustages on dom/ipc/ContentProcess.cpp. CLOSED TREE
Brindusan Cristian <cbrindusan@mozilla.com> - Fri, 13 Jul 2018 22:11:24 +0300 - rev 426575
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Backed out 12 changesets (bug 1471025) for build bustages on dom/ipc/ContentProcess.cpp. CLOSED TREE Backed out changeset 398ccedc20dc (bug 1471025) Backed out changeset 599895de063e (bug 1471025) Backed out changeset dc7ec17179d1 (bug 1471025) Backed out changeset 5051f15fc200 (bug 1471025) Backed out changeset faef4df47b20 (bug 1471025) Backed out changeset d344247b8706 (bug 1471025) Backed out changeset 83d98ea5ebac (bug 1471025) Backed out changeset 38f690f30e78 (bug 1471025) Backed out changeset 4b7a8a35ed95 (bug 1471025) Backed out changeset e3bbc87b71af (bug 1471025) Backed out changeset 68bb03c63b3c (bug 1471025) Backed out changeset 4a8fbb472c91 (bug 1471025)
72c622b851f3b5402f0e954ce5f578caa645182c: Bug 1472748 - Convert the listbox in "editBookmarkPanel.inc.xul" to "richlistbox". r=mak
Paolo Amadini <paolo.mozmail@amadzone.org> - Fri, 13 Jul 2018 15:37:31 +0100 - rev 426574
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1472748 - Convert the listbox in "editBookmarkPanel.inc.xul" to "richlistbox". r=mak This uses the same event handling as the "listbox" and "listitem-checkbox" bindings that are scheduled for removal, and copies the required styles locally. There is no need to preserve the scroll position explicitly anymore, because "richlistbox" handles scrolling like regular elements, and we don't want to persist the position when the selector is closed and reopened. MozReview-Commit-ID: 4gYhwlprPN7
340fb9189eedfbc63078c50c08ceb6b8048cea09: Bug 1472716 - Part 2 - Convert the listbox in "languages.xul" to "richlistbox". r=jaws,gandalf
Paolo Amadini <paolo.mozmail@amadzone.org> - Tue, 10 Jul 2018 15:07:15 +0100 - rev 426573
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1472716 - Part 2 - Convert the listbox in "languages.xul" to "richlistbox". r=jaws,gandalf Support for "listbox" in preferences is also removed, in preparation for the removal of the "listbox" element and binding. MozReview-Commit-ID: Bi2VKKi5rdk
c33114c93dd0ebff53e29c92145b2673c496c339: Bug 1472716 - Part 1 - Whitelist the "value" attribute for XUL localization. r=gandalf
Paolo Amadini <paolo.mozmail@amadzone.org> - Tue, 10 Jul 2018 14:57:18 +0100 - rev 426572
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1472716 - Part 1 - Whitelist the "value" attribute for XUL localization. r=gandalf MozReview-Commit-ID: Gv9da9rqOrL
a299ae02fc4c0a7c507e4410c28414a9fdb25b90: Bug 1475612: Fix double file close on background thread. r=erahm
Kris Maglione <maglione.k@gmail.com> - Thu, 12 Jul 2018 23:13:04 -0700 - rev 426571
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1475612: Fix double file close on background thread. r=erahm LSBUtils closes a file descriptor twice, once with fclose and then again with close. It also does this on a background thread, during startup, which means it tends to race with main thread code which opens files. This patch fixes that, and also removes a work-around for the issue in the MemMapSnapshot code. MozReview-Commit-ID: JdDHt9ayFEl
398ccedc20dc1c3f29332dd5a4791b9ab96eb547: Bug 1471025: Part 8 - Add tests for shared memory preferences. r=njn
Kris Maglione <maglione.k@gmail.com> - Tue, 03 Jul 2018 20:17:15 -0700 - rev 426570
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 8 - Add tests for shared memory preferences. r=njn MozReview-Commit-ID: 8452JoTBHCU
599895de063ef005dbd34847db9ee555410a878f: Bug 1471025: Part 7c - Clear the dynamic hashtable in the parent process after snapshotting. r=njn
Kris Maglione <maglione.k@gmail.com> - Mon, 02 Jul 2018 22:48:40 -0700 - rev 426569
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 7c - Clear the dynamic hashtable in the parent process after snapshotting. r=njn The preference storage in the shared memory snapshot is much more compact than the dynamic hashtable, and is already mapped in memory, so there's no need to keep the full hashtable in memory in the parent process after the snapshot is created. This patch empties the hashtable and the name string arena after the snapshot. It also removes the accounting for preferences which have changed after init, since those are, by definition, exactly the set of entries in the dynamic hashtable. MozReview-Commit-ID: L6VGq2z4foH
dc7ec17179d1961d91b897cec9f409786363ec9e: Bug 1471025: Part 7b - Don't load preference files in the content process. r=njn
Kris Maglione <maglione.k@gmail.com> - Sat, 07 Jul 2018 12:45:57 -0700 - rev 426568
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 7b - Don't load preference files in the content process. r=njn With the parent sending a snapshot of its preference state at content process startup, we're guaranteed to have the full set of built-in preferences in the shared map at initialization time, so there's no need to load them again. This also applies to static preference default values, so we skip setting those, as well. However, we do need to make sure that we update static preference cache entries whose default values don't match the value in the shared map, since they may have been changed by user preference files. In order to deal with that, we iterate over all preferences in the map, and dispatch callbacks for any that have user values. MozReview-Commit-ID: DlRUbg7Qor3
5051f15fc2005667cfe76ccae0afb1fb0657c103: Bug 1471025: Part 7a - Look up preferences from both dynamic and shared preference tables. r=njn
Kris Maglione <maglione.k@gmail.com> - Mon, 02 Jul 2018 22:52:53 -0700 - rev 426567
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 7a - Look up preferences from both dynamic and shared preference tables. r=njn This patch changes our preference look-up behavior to first check the dynamic hashtable, and then fall back to the shared map. In order for this to work, we need to make several other changes as well: - Attempts to modify a preference that only exists in the shared table requires that we copy it to the dynamic table, and change the value of the new entry. - Attempts to clear a user preference with no default value, but which also exists in the shared map, requires that we keep an entry in the dynamic table to mask the shared entry. To make this work, we change the type of these entries to None, and ignore them during look-ups and iteration. - Iteration needs to take both hashtables into consideration. The serialization iterator for changed preferences only needs to care about dynamic values, so it remains unchanged. Most of the others need to use PrefsIter() instead. MozReview-Commit-ID: 9PWmSZxoC9Z
faef4df47b2089592df7637f5b8f4ae193e98046: Bug 1471025: Part 6 - Optimize preference lookups while dispatching callbacks. r=njn
Kris Maglione <maglione.k@gmail.com> - Sat, 07 Jul 2018 12:47:34 -0700 - rev 426566
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 6 - Optimize preference lookups while dispatching callbacks. r=njn Since lookups in the snapshotted hashtable are currently O(log n) rather than O(1), they're expected to be slightly more expensive than the previous purely-dynamic lookups. In general, I expect this not to be a major issue. The main concern is pref cache lookups while initializing the database. Initialization in the parent process will still always use only a dynamic hashtable, so the performance characteristics there won't change. In the child process, though, we'll still need to notify observers of preferences in the snapshot when they have user values, which could require any number of lookups at startup (though in practice probably will not). This patch solves that problem by caching the wrapper for the current known preference value when dispatching callbacks, and optimizing lookups for that value when it is present. MozReview-Commit-ID: 2CAn0rM0bE9
d344247b870668f53fa645e72bda4bb4309346c8: Bug 1471025: Part 5 - Add a range iterator helper for iterating both static and dynamic preferences. r=njn
Kris Maglione <maglione.k@gmail.com> - Mon, 02 Jul 2018 18:17:48 -0700 - rev 426565
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 5 - Add a range iterator helper for iterating both static and dynamic preferences. r=njn For memory efficiency in content processes, we need to be able to store changed preferences in a separate dynamic hashtable when their values don't match the snapshot values. That makes iteration over the full set of preferences somewhat more complicated, since not only do we need to iterate over two tables, but we also need to ignore preferences in the snapshot table if they also exist in the dynamic hashtable. This patch solves that problem by adding an iterator helper which iterates over values in both tables, and skips values in the static table if they also exist in the dynamic table. In order to support completely deleting preferences that exist in the base table, it also ignores all dynamic entries with the None type, so that they can completely mask deleted base table values. MozReview-Commit-ID: LCIwyPJMByj
83d98ea5ebaccded8a20929c0f3316e5618f1f76: Bug 1471025: Part 4 - Add a wrapper class that can access either static or dynamic prefs. r=njn
Kris Maglione <maglione.k@gmail.com> - Sun, 01 Jul 2018 23:23:48 -0700 - rev 426564
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 4 - Add a wrapper class that can access either static or dynamic prefs. r=njn The in-memory format of shared-memory preferences is significantly different from the format used by dynamic preferences, which means that we need different classes to access their properties. Virtual classes would be a potential solution to this problem, but I don't think the performance characteristics would be acceptable for preferences code. And since the wrapper classes used for static prefs are temporary, they would add the additional snag of figuring out how to keep a valid pointer alive. So, instead, this patch adds a wrapper class that can access either type of preference, based on known type flags in a Variant. It also moves some of the logic for deciding which preference value to return to the wrapper, so that it doesn't need to be duplicated for each representation. MozReview-Commit-ID: LameIIbYcD3
38f690f30e78764763bb012045073fa781efa691: Bug 1471025: Part 3c - Also pass the shared preference map handle to Android content processes. r=jld
Kris Maglione <maglione.k@gmail.com> - Fri, 13 Jul 2018 11:06:58 -0700 - rev 426563
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 3c - Also pass the shared preference map handle to Android content processes. r=jld MozReview-Commit-ID: CTjDzVC9gcD
4b7a8a35ed956159e2f443c6211164c0cbf3d926: Bug 1471025: Part 3b - Refactor Android shared FD API to require fewer modifications per change. r=jld
Kris Maglione <maglione.k@gmail.com> - Mon, 02 Jul 2018 15:01:25 -0700 - rev 426562
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 3b - Refactor Android shared FD API to require fewer modifications per change. r=jld Adding or removing an FD from this API currently requires changes in about a half dozen places. Ignoring the Java side of things. This patch changes the API to pass a struct, rather than additional arguments for each FD, so that adding and removing FDs only requires changing one declaration, and the two call sites that add and consume the FDs. MozReview-Commit-ID: CToSEVp1oqP
e3bbc87b71af2f2ce1fa8bdf2cf26857c071ba5e: Bug 1471025: Part 3a - Pass shared preference map to (non-Android) content processes at startup. r=jld,njn
Kris Maglione <maglione.k@gmail.com> - Mon, 02 Jul 2018 15:40:38 -0700 - rev 426561
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 3a - Pass shared preference map to (non-Android) content processes at startup. r=jld,njn This adds an additional file descriptor to the set sent at content process startup, for the read-only preference map that we share between all content processes. This forms the base set of preferences. The other preferences FD contains changes that the content process will need to apply on top of the snapshot. MozReview-Commit-ID: 6hc0HIxFmHg
68bb03c63b3cee1d47cbddfd3abf919f5783c04b: Bug 1471025: Part 2 - Add a helper class creating and accessing shared preference map snapshots. r=njn,erahm
Kris Maglione <maglione.k@gmail.com> - Sun, 01 Jul 2018 18:28:31 -0700 - rev 426560
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 2 - Add a helper class creating and accessing shared preference map snapshots. r=njn,erahm This is based on the SharedStringMap that's currently used for shared memory string bundles. When the parent process is ready to launch its first content process, it creates a snapshot of the current state of the preference database, maps that as read-only, and shares it with each content process. Look-ups in the snapshotted map are done entirely using data in the shared memory region. It doesn't require any additional per-process state data. MozReview-Commit-ID: BdTUhak7dmS
4a8fbb472c91f13554cac3d0ea638cf9f368ff11: Bug 1471025: Part 1 - Store preference access counts in a separate hashtable. r=njn
Kris Maglione <maglione.k@gmail.com> - Mon, 02 Jul 2018 23:33:28 -0700 - rev 426559
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1471025: Part 1 - Store preference access counts in a separate hashtable. r=njn Once the majority of preferences are stored in a read-only shared map, it won't be possible to modify the access counts in their entries. Which means we need a separate map for the access counts. Fortunately, this code is only active in debug builds, so it shouldn't affect release users. And the net impact on memory usage of this patchset will still be decidedly downward. MozReview-Commit-ID: EuLXlMQJP1M
3587c059bdd04fa2289c250817c8742f0c2700fe: Bug 1473403 - Remove unused theme-fg-color classes. r=bgrins
Gabriel Luong <gabriel.luong@gmail.com> - Fri, 13 Jul 2018 13:29:18 -0400 - rev 426558
Push 34275 by nerli@mozilla.com at Fri, 13 Jul 2018 21:53:18 +0000
Bug 1473403 - Remove unused theme-fg-color classes. r=bgrins
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 tip