Do it so that we always try to evaluate the media expression and the modern
syntax last, so that the most specific error message comes up.
MozReview-Commit-ID: 2tqdAsWh6Kh
Summary:
This should make it easier to report errors, and also reduce codesize.
The reason this was so generic is that error reporting was unconditionally
enabled and was super-hot, but now that's no longer the case after bug 1452143,
so we can afford the virtual call in the "error reporting enabled" case.
This opens the possibility of simplifying a lot the error setup as well, though
this patch doesn't do it.
Test Plan: No behavior change, so no new tests.
Reviewers: xidorn
Bug #: 1469957
Differential Revision: https://phabricator.services.mozilla.com/D1734
MozReview-Commit-ID: F3wTdhX9MB5
And use the C++ ErrorReporter only to actually output errors.
ErrorReporter was so complicated because well, it was always enabled and had to
do a bunch of caching to not be (more) slow.
But since bug 1452143 it's disabled by default, so we can simplify this setup a
lot.
Also while at it make the error reporting pref a static pref so that we don't
mutate globals from CSS parsing unless we're actually reporting errors.
MozReview-Commit-ID: AuIyvJwt7AU
Use `cstr!()` macro with `CStr` to ensure that literal strings used with FFI is properly nul-terminated to avoid cases like #19915.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5af219e8188f2e657c5711eb5def4c8e8065e29d
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : fb6a22714c7b8ff534181e54c265fca24da7873b
This was causing the patch in bug 1420026 to fail.
Source-Repo: https://github.com/servo/servo
Source-Revision: 4bd0590117d0c76d59a509287a07c3bb9c8321ae
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 2399127ec9eddb478ec4edec488824ec6ccfe1a2
This is the Servo-side part of https://bugzilla.mozilla.org/show_bug.cgi?id=1420026.
Source-Repo: https://github.com/servo/servo
Source-Revision: e5637770086be7ef69f44c6eb7c9a621fa577d96
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 64d4ae259a985dc3b4cf41586a537bdce41c5866
… rather than the start location of the current construct. This likely places the error just *after* of the unexpected token whereas before would be best, but that’s likely a much bigger change.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1378861
Source-Repo: https://github.com/servo/servo
Source-Revision: c79a54dbd9d3a590f5fd8191b8e57a0b9d1d0fdb
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 7a78da26aa9801972da42123730f90bcddc92930
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [bug 1384225](https://bugzilla.mozilla.org/show_bug.cgi?id=1384225)
Source-Repo: https://github.com/servo/servo
Source-Revision: fef2cfde8cc6688c63cde1966b081a4698a5d977
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : f16c453db1e3cdccb516562ef92dc4ebce3e9cf1
Reviewed by xidorn in https://bugzilla.mozilla.org/show_bug.cgi?id=1386900.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [bug 1386900](https://bugzilla.mozilla.org/show_bug.cgi?id=1386900).
- [X] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: a7ea6741d38388bc562d5b1cb53e4bf581f6fafe
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : f5ac669e2aab0e477c7dd36dcb0de4b17ef40553
`format!` and `write!` create a somewhat-heavyweight `Formatting` struct and use dynamic dispatch to call into impls of `Dispaly` and related traits. The former also allocates an intermediate string that is sometimes unnecessary.
I started looking into this from https://bugzilla.mozilla.org/show_bug.cgi?id=1355599, but I expect the impact there will be small to insignificant. It might be a slightly less so on parsing (error reporting).
Source-Repo: https://github.com/servo/servo
Source-Revision: c60dd53210745d9d8e7d3a5ca0310370a33553f4
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d58ba91509b981489459b891f7632d035a43a7de
Report more specific errors for invalid CSS selectors. Reviewed by @heycam in https://bugzilla.mozilla.org/show_bug.cgi?id=1384216.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: b2f8974ab88c98277f03c727708096edce898974
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 3e6e805e10d74b130a1687dfdb8c9e85ec4d255f
Avoid some unnecessary string allocations when extracting meaningful values out of CSS parser error messages.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: b8159e659e787c1e792d13b0939bb88e978ae84e
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 2500d8540e1e3a72d3758f40e770cb321d74f63d
https://github.com/servo/rust-cssparser/pull/177
Also simplify the `ParseErrorReporter` trait a bit.
Source-Repo: https://github.com/servo/servo
Source-Revision: 845131c425ebd50eea2fe5bf6005b6c304664242
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d24cb7526225e8393bbc0a90206cba0199f95798
These address some small inefficiencies that showed up while profiling the myspace talos test.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
Source-Repo: https://github.com/servo/servo
Source-Revision: aef95cf195d8d74595b7b266472bc34634c49120
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : e4430604b572fe5a92b660e05768067e6afb18e5
Reviewed by heycam in https://bugzilla.mozilla.org/show_bug.cgi?id=1381143.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes (gecko devtools tests)
Source-Repo: https://github.com/servo/servo
Source-Revision: dc244ad9e93cf606352594176987aa73ce4ed74c
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 639d68d9e58fb898eb8eed3ce6c6b77cb74b475c
<!-- 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
This is the Servo-side part of https://bugzilla.mozilla.org/show_bug.cgi?id=1381137. This allows us to add the "Declaration dropped" or "Skipped to next declaration" messages after relevant CSS errors that are reported.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
Source-Repo: https://github.com/servo/servo
Source-Revision: f59bd8e2b2b245e76a587ce548af3975797f46e8
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9a4013efe443cc53b11b04bf22f3e9dfb603747b
Do not merge yet, depends on https://github.com/servo/rust-cssparser/pull/171.
Source-Repo: https://github.com/servo/servo
Source-Revision: 4f0821192c112943bb53b4fb04303c1afdde06e6
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : e4825d4514cfe2286e2f874b4bd643befe603521
This should be a straightforward performance improvement in pages with lots of CSS property values that the parser does not understand.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because there's no functional difference.
Source-Repo: https://github.com/servo/servo
Source-Revision: b70cbeb84caf5ec4a90a900fc5d4082989044acd
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 18e9fcafa9b8e8137b3991331effc2a629ff3e88
This matches the behaviour of Gecko's CSS parser.
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#17736
- [X] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: 38f4ae80c4b456b89ee33543c8c6699501696c9c
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 1a1909fa1db0e97b0997462f48b23827f84394f0
Per https://bugzilla.mozilla.org/show_bug.cgi?id=1381045 retrieving the CSS source is an unnecessary performance hit for Stylo.
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because they are tested by Gecko.
Source-Repo: https://github.com/servo/servo
Source-Revision: fe98a8001bd5f983956bd5bab8e3b192b936d2f2
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 6089e9ba19d02e60ef9190c587cb2275d5a3d96c
Reviewed by @emilio in https://bugzilla.mozilla.org/show_bug.cgi?id=1352669.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: 2ddbc92d90ec8df9e5bf4630cd3e93759da81649
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 87c38834194b9cb1d5fdfa4303c0754f866b6613