Since bug 635961, building with relro makes elfhack try to use the bss
data for a temporary function pointer. If there is not enough space for
a pointer in the bss, elfhack will complain it couldn't find the bss.
In normal circumstances, this is most likely fine. Libraries with a bss
so small that it can't fit a pointer are already too small to be
elfhacked anyways. In Firefox, the two libraries with the smallest bss
have enough space for two pointers, and aren't elfhacked (libmozgtk.so
and libplds4.so).
However, the testcase that is used during the build to validate that
elfhack works doesn't have a large enough bss on x86-64, making elfhack
bail out, and the build fail as a consequence.
This, in turn, is due to the only non-thread-local zeroed data being an
int, which is not enough to fit a pointer on x86-64. We thus make it a
size_t.
--HG--
extra : rebase_source : bca2ddbf9d4a5e8786881fc524d642c38d610227
This avoids large gaps in the profiler output.
Sometimes we hold on to exit profiles for a long time before a profile is
gathered. During that time, the parent process's profile buffer might have
looped around several times. At that point, profiles from processes that have
exited long ago are no longer interesting.
MozReview-Commit-ID: 5C47vb69DfK
--HG--
extra : rebase_source : 57f0df2f21ab778ec689a08d0bbf010b10f18ed9
* Has storage providers metadata
* Scan for storage providers returning preferred provider
* Helper methods to access cloud services prefs
* Helper method to set cloud storage as default download directory
* Notify observers for displaying cloud storage prompt
* Support pref value browser.downloads.folderList 3
* Read dropbox custom downloadpath from info.json
* Handle rejected providers by saving response in cloud.services.rejected.key
* Load providers metadata from providers.json
* Tested using add-on implemented in Bug 1365129
* Tests for Linux, Mac and Win Platform
MozReview-Commit-ID: LrmoDfsRTBV
--HG--
extra : rebase_source : cc3933407def5da26b4c0fb29a32797bc6a13130
Add ServoFontFeatureValuesRule for CSSOM representation of
@font-feature-values rule and wire up with bindings.
MozReview-Commit-ID: B4Lpj43bvKX
--HG--
extra : rebase_source : 6508027f88ff76784ed7d0e5420d6e174f116b38
Because we want to remove nsAdoptingString. We have other variants that don't
use nsAdoptingString, which can be used instead. There are three basic
patterns.
1. The easiest case is when we don't check for success.
> nsAdoptingString s = Preferences::GetString("foo");
> foo(s);
becomes:
> nsAutoString s;
> Preferences::GetString("foo", s);
> foo(s);
2. The next case is when we check if the result is empty.
> nsAdoptingString s = Preferences::GetString("foo");
> if (s.IsEmpty()) { ... }
becomes:
> nsAutoString s;
> Preferences::GetString("foo", s);
> if (s.IsEmpty()) { ... }
3. The final case is when we null check the result.
> nsAdoptingString s = Preferences::GetString("foo");
> if (s) { ... }
becomes:
> nsAutoString s;
> nsresult rv = Preferences::GetString("foo", s);
> if (NS_SUCCEEDED(rv)) { ... }
The patch also avoids some UTF8/UTF16 conversions in a few places.
--HG--
extra : rebase_source : f339b1a3dda4dc93979d38c30c001fbe77485b55
This is basically a cosmetic change; references are the normal way to do string
outparams.
--HG--
extra : rebase_source : ffc5945f269bdcd3d4116755b56713e87a44b6cd
The ICO decoder creates a cloned SourceBufferIterator for its own
SourceBuffer bounded by the resource size. This iterator is used by the
child decoder (PNG, BMP) for decoding the actual image. However we rely
upon the ICO decoder and its iterator to drive event loop, rather than
the child decoder and the cloned iterator. The cloned iterator knows how
many bytes it requires, but it is problematic to give it a consumer to
tell us when to resume without changes to StreamingLexer.
Without a consumer (IResumable), we won't have anything to notify when
we get the appropriate amount of data for the caller. If the caller
tries to advance after some, unknown amount of data has been written to
the SourceBuffer, then it may need to go back to waiting. Thus it should
only assert for a spurious wakeup if we have an actual consumer.
Currently the cached count is only updated if a table was passed in to keep
track of the window IDs. This changes the behavior to always update the count
regardless of whether a table is passed in.
MozReview-Commit-ID: EkfzLemVJyV
The original NetworkPrioritizer tracks each browser window and give the high priority to the selected tab.
This patch is based on the NetworkPrioritizer, but only send a notification of the current selected tab's content outer window ID to network module.
Extract CSSFontFeatureValuesRule from nsCSSFontFeatureValuesRule
class. This is necessary because we will create a FontFeatureValues
rule for Servo side.
MozReview-Commit-ID: GKy5wa6JLv9
--HG--
extra : rebase_source : 015f13da9a776c4ece8aa13655395afbb347b870
<!-- Please describe your changes on the following line: -->
This is reviewed by SimonSapin and xidorn in [Bug 1365900](https://bugzilla.mozilla.org/show_bug.cgi?id=1365900).
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1365900](https://bugzilla.mozilla.org/show_bug.cgi?id=1365900)
Source-Repo: https://github.com/servo/servo
Source-Revision: 00e55dd278f46560e61959a1fd5aa9e1846cb557
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 31540bc2de7cc2b7b5bd29a8b59d1963591de14b
There does not seem to be any bad effects from calling stop twice, so just log that
it has happened rather than throwing an exception.
--HG--
extra : rebase_source : 0d92bad7b33010f50f41de8498b8406c3521c9e7