Commit graph

4860 commits

Author SHA1 Message Date
bors-servo
41f55059a8 auto merge of #1703 : Ms2ger/servo/strings-cleanup, r=jdm 2014-02-16 06:02:05 -05:00
Ms2ger
f556197567 Make some selector matching code a little more consistent. 2014-02-16 10:25:30 +01:00
Ms2ger
6681476713 Use push_str instead of operator + for efficiency. 2014-02-16 10:25:12 +01:00
Ms2ger
e45b7fa22d Use eq() and eq_slice() less, and map_default() more. 2014-02-16 10:24:24 +01:00
Ms2ger
ecc07e3b49 Use DOMString instead of ~str in a few places. 2014-02-16 10:22:47 +01:00
Ms2ger
68f534c45a Use DOMString in a few more places in utils.rs. 2014-02-16 09:50:29 +01:00
Ms2ger
6cc8a4dfba Simplify string construction in InterfaceObjectToString. 2014-02-16 09:50:10 +01:00
bors-servo
a0b55b4c6c auto merge of #1702 : quandrum/servo/element_to_characterdata, r=jdm
... to characterdata

All other node's parent type names reflect the actual type of the parent. This change extends that convention to the indicated nodes.

closes #1594
2014-02-15 22:05:04 -05:00
Adam Sinnett
ffcd3833de Change Text, Comment and ProcessingInstructions parent name from element to characterdata
All other node's parent type names reflect the actual type of the parent. This change extends that convention to the indicated nodes.

closes #1594
2014-02-15 13:52:33 -08:00
bors-servo
425210b9b4 auto merge of #1644 : pcwalton/servo/style-sharing, r=larsbergstrom
This series of patches implements style struct sharing as found in existing browser engines, as well as a bunch of related important optimizations. With them, we are faster than Blink, WebKit, and Gecko on the rainbow page for style recalc in sequential mode by at least 15%. Parallel gains are mixed—the rainbow page turns out to be a degenerate sequential case for the LRU cache used to track candidates for style sharing and so there is no improvement. For cases in which the cache is not hit, such as `perf-rainbow-hard.html`, we are around 25% slower than Blink sequentially, but have very large parallel wins so that we are around 2x faster at style recalc. (Note that parallel flow tree construction will improve this further.)

This patch series also fixes, as near as I can tell, some bugs related to ordering of properties that other properties depend on in selector matching.

r? @larsbergstrom
feedback? @SimonSapin (for selector matching changes)
feedback? @bzbarsky (for style sharing heuristics)
2014-02-14 20:47:01 -05:00
Patrick Walton
d3e56fa9cc layout: Aggressively try to share styles with the last few nodes seen.
This roughly implements the same cache found in Blink. 50% improvement
on the rainbow page, but at the cost of reducing parallel gains down to
nothing. I added a new page, `perf-rainbow-hard.html`, which disables
the optimizations in both Blink and Servo.
2014-02-14 17:37:51 -08:00
Patrick Walton
0b894113e9 style: Eliminate a temporary vector when performing selector matching.
26% improvement in style recalc on the rainbow page.
2014-02-14 17:37:50 -08:00
Patrick Walton
0fa0940ce9 layout: Cache applicable-declarations-to-computed-values mappings.
If the cache is hit, then we can only compute inherited properties. This
is a WebKit optimization.
2014-02-14 17:37:50 -08:00
Patrick Walton
1678cc9a88 layout: Implement basic style sharing.
No improvement on the rainbow page, but necessary for some other
optimizations we want to do.
2014-02-14 17:37:50 -08:00
Patrick Walton
cf8203848a layout: Stop storing intermediate applicable declarations inside layout
data.

9% improvement in style recalc on the rainbow page.
2014-02-14 17:37:12 -08:00
Patrick Walton
758f5ba755 style: Separate out style structs into inherited and initial structs.
This doesn't make much of a difference in performance, but will be
necessary for style struct sharing.
2014-02-14 17:37:12 -08:00
bors-servo
6b89cbf3c5 auto merge of #1694 : Ms2ger/servo/move-DOMString, r=SimonSapin 2014-02-14 07:25:58 -05:00
Ms2ger
951d35902c Add str.rs. 2014-02-14 13:20:48 +01:00
Ms2ger
59184bf6e1 Move DOMString into servo_util. 2014-02-14 12:48:51 +01:00
lpy
280b109733 Rename starts_*_flow to is_*_flow 2014-02-14 17:02:03 +08:00
bors-servo
f1de0b7381 auto merge of #1691 : kmcallister/servo/linked-failure, r=pcwalton
We probably leak some threads and resources, e.g. when the script task crashes and doesn't get a chance to send layout data back to layout to be deallocated.

Not tested with iframes yet.
2014-02-13 18:08:07 -05:00
bors-servo
7135bd53f2 auto merge of #1690 : Ms2ger/servo/DOMStrings, r=jdm 2014-02-13 15:23:03 -05:00
Ms2ger
0f5c9a35b9 Use DOMString more consistently. 2014-02-13 19:32:59 +01:00
Keegan McAllister
2a1c450cdf Find failure.html relative to exe path, not cwd 2014-02-12 18:07:32 -08:00
Keegan McAllister
4b0f6c3e5c Use hard-fail for reftests 2014-02-12 18:07:32 -08:00
Keegan McAllister
ce603a06b7 Restore hard-fail mode 2014-02-12 18:07:32 -08:00
Keegan McAllister
36b8f63984 Restore failure handling
We probably leak some threads and resources, e.g. when the script task crashes
and doesn't get a chance to send layout data back to layout to be deallocated.

Not tested with iframes yet.
2014-02-12 18:07:32 -08:00
Keegan McAllister
68cc30c1df Add a helper for sending a message on task failure 2014-02-12 18:07:32 -08:00
Keegan McAllister
73e2e57535 Move FailureMsg contents into a cloneable struct 2014-02-12 18:07:32 -08:00
Keegan McAllister
e7aa445e52 Change the mechanism behind summit-crash.html 2014-02-12 18:07:32 -08:00
Keegan McAllister
1d19023486 Build libstd etc. with debug info when Servo configured with --enable-debug 2014-02-12 18:07:32 -08:00
bors-servo
a0a61fe976 auto merge of #1668 : larsbergstrom/servo/windowing_android_fixups, r=metajack
When I was doing my earlier PR for @mut-removal in windowing, I failed to add/commit/fetch/merge/push the changes in my Android-targeting copy of the repo and only just noticed.

r? @metajack
2014-02-12 11:58:51 -05:00
bors-servo
31e36b7bd7 auto merge of #1672 : kmcallister/servo/tests, r=pcwalton
I'd like to have an `iframe` reftest as well but `iframe`s are currently broken.  Will look into that next.
2014-02-11 19:19:51 -05:00
Keegan McAllister
0a8ada86c5 Accept data: URLs on the command line without URL encoding
This facilitates quick testing, e.g.

    ./servo 'data:,<div style="color: red;">hi</div>'
2014-02-11 15:38:20 -08:00
Keegan McAllister
8a7cc86aa9 Provide an error message for URL parse failure 2014-02-11 15:33:08 -08:00
Keegan McAllister
d723798298 Eliminate string match allocation in url.rs 2014-02-11 12:43:28 -08:00
Keegan McAllister
d1f98e0c75 Convert data-url.html to a reftest 2014-02-11 12:14:49 -08:00
Keegan McAllister
93d7ddd6d7 Add a simple iframe test page 2014-02-11 12:04:26 -08:00
bors-servo
1662e7a02f auto merge of #1666 : ozten/servo/issue-506-add-basic-console, r=Ms2ger
Here is an attempt to fix Issue#506.

I couldn't figure out how to do variadic arguments to `console.log`, but I did test calling `console.log('foo', 'bar', 'baz')` and it prints the first argument and doesn't error out, which is nice.

window.console is not a web standards. I did the popular functions, but not some of the newer ones documented [on MDN](https://developer.mozilla.org/en-US/docs/Web/API/console).

This PR will allow more pages to load properly, where developers have left in window.console calls.
2014-02-11 13:01:50 -05:00
Austin King
b1b481f3f3 Adding most commonly used parts of window.console. Fixes Issue#506. r=Ms2ger 2014-02-11 09:55:29 -08:00
Lars Bergstrom
f89eec140b Fix GLUT build for Android 2014-02-11 10:44:37 -06:00
bors-servo
7a86383eef auto merge of #1663 : larsbergstrom/servo/remove_atmut, r=pcwalton
I'm submitting a part of this at first to get your feedback on whether I'm removing them in the style you like (before I go and push this strategy through the rest of non-script Servo). Note that Windowing is a little weird because its calls bounce down into C code which then re-calls into Rust, getting a handle on the Rc'd Window object out of TLS.

r? @pcwalton
2014-02-11 11:04:58 -05:00
Lars Bergstrom
14a2ab977b Glut RefCell->Cell 2014-02-11 09:34:10 -06:00
Lars Bergstrom
d7a80e95bb RefCell->Cell 2014-02-11 09:29:27 -06:00
Bruno de Oliveira Abinader
93e539d636 Fixed FIXME message as pointed out by jdm 2014-02-11 09:45:05 -04:00
Bruno de Oliveira Abinader
9b56e2cc09 Added refs to live HTMLCollections issue 2014-02-11 09:35:52 -04:00
Bruno de Oliveira Abinader
7f5e27fd9d Added refs to Element's DOM spec
This is a sub-task for #1660.
2014-02-11 09:27:45 -04:00
bors-servo
7d740f8f8b auto merge of #1661 : SimonSapin/servo/attr-selectors, r=jdm
… instead of None meaning "any namespace" (where it could be the null namespace.)
2014-02-11 08:13:51 -05:00
Simon Sapin
e0580bf2f5 Use custom enum for the namespace of attribute selectors.
… instead of None meaning "any namespace"
(where it could be the null namespace.)
2014-02-11 08:59:36 +00:00
Lars Bergstrom
bfa4226e8f De @-mut windowing. 2014-02-10 20:24:29 -06:00