Commit graph

3497 commits

Author SHA1 Message Date
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
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
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
bors-servo
52b6993dc8 auto merge of #1659 : brunoabinader/servo/dom-document-add-links, r=Ms2ger
This is a sub-task for #1428.
2014-02-10 16:37:46 -05:00
Bruno de Oliveira Abinader
6fde4f82e7 Added refs to Document's DOM spec 2014-02-10 17:17:07 -04:00
bors-servo
6235f9fae1 auto merge of #1653 : SimonSapin/servo/attr-selectors, r=pcwalton
… and not "any namespace" or use the default namespace declaration.
2014-02-10 12:04:43 -05:00
bors-servo
d5c15598cd auto merge of #1656 : brunoabinader/servo/node-add-links, r=metajack
This is a sub-task for #1655.
2014-02-10 11:37:42 -05:00
Bruno de Oliveira Abinader
b46de88a2b Added missing refs to DOM spec
This is a sub-task for #1655.
2014-02-10 11:40:43 -04:00
bors-servo
a36a9850c8 auto merge of #1646 : brunoabinader/servo/node-isequalnode, r=Ms2ger
Spec:
http://dom.spec.whatwg.org/#dom-node-isequalnode

This is a sub-task for #1655. Closes #1645.
2014-02-10 10:04:47 -05:00
Bruno de Oliveira Abinader
4d4495b015 Implement Node.isEqualNode
Spec:
http://dom.spec.whatwg.org/#dom-node-isequalnode

Closes #1645.
2014-02-10 11:01:12 -04:00
Simon Sapin
f72f655312 Fix #1652: Attribute selectors should default to the null namespace
… and not "any namespace" or use the default namespace declaration.
2014-02-10 10:13:34 +00:00
bors-servo
f26cdcf235 auto merge of #1617 : xiongmao86/servo/issue1612, r=larsbergstrom
Rename *.rc to *.rs in components directory, and do some relevant changes in Makefile.in
2014-02-09 22:07:36 -05:00
bors-servo
ccfd595d6e auto merge of #1633 : parkjaeman/servo/pseudo-class-hover, r=larsbergstrom
Fix #790 partially.
I am sure I need to merge with @jdm's event handler for dom.
As son as the event handler is implemented, I will fix.
And this is implement Hover Event. If over element, Currently Full reflow.
After PR, will make partial reflow. 
Thank you!
2014-02-09 21:35:09 -05:00
HyunJune Kim
c8d503898a This is implement Hover Event. If over element, currently full reflow. after PR, will make partial reflow. 2014-02-10 11:16:07 +09:00
HyunJune Kim
d2f8b593a9 compositor can get mouse point from window event 2014-02-10 11:14:29 +09:00