Commit graph

3525 commits

Author SHA1 Message Date
bors-servo
dedecec0e3 auto merge of #1631 : recrack/servo/background-image, r=SimonSapin
for #777 #800

- support(http://www.w3.org/TR/CSS21/colors.html#background)
 - background: url(foo.png)
 - background: url(data:image/png;base64...)
 - background-image: url(foo.png)
 - background-image: url(data:image/png;base64...)

- not support(http://www.w3.org/TR/css3-background/)
2014-02-19 05:25:58 -05:00
Youngmin Yoo
7b56e75adb Support base_url in stylesheet 2014-02-19 17:23:50 +09:00
Youngmin Yoo
a12608d2e4 Add a reftest for background-image 2014-02-19 17:14:06 +09:00
Youngmin Yoo
49952241ad Add background test file 2014-02-19 17:14:06 +09:00
Youngmin Yoo
7eabcbb8fe Impl background-image support. 2014-02-19 17:14:00 +09:00
Youngmin Yoo
3b55a5fca0 Add background-image property 2014-02-19 09:23:24 +09:00
bors-servo
20bbf6a859 auto merge of #1693 : lpy/servo/issue1692, r=pcwalton
see #1692
2014-02-18 16:17:07 -05:00
bors-servo
8b9411270c auto merge of #1706 : SimonSapin/servo/refactor-cascade, r=pcwalton
* Expand the apply() and apply_cached() templates. Their two invocations each were different enough that this improves readability IMO.
* Create computed::Context from inherited and cascaded values rather than computed value, as much as possible.
* Centralize this creation rather than making it per-property, making 'needed_for_context' not needed anymore.
* Pass a context to cascade_with_cached_declarations() rather than duplicate the creation code.

@pcwalton r? Does this hurt the optimization introduced in 0fa0940ce9?

This is mostly about nicer-looking code. The only thing that was wrong ([`apply_cached(priority)` instead of `apply_cached(needed_for_context)`](https://github.com/mozilla/servo/pull/1644#discussion_r9772133)) could be fixed with a much shorted diff.
2014-02-18 15:50:08 -05:00
bors-servo
01fcf3c877 auto merge of #1710 : jdm/servo/idmap-in-doc, r=Ms2ger
...ent.
2014-02-18 15:23:11 -05:00
Josh Matthews
70e8a5e90f Ensure id attributes on elements only affect elements present in a document. 2014-02-18 15:12:00 -05:00
bors-servo
edd7e32fdb auto merge of #1602 : pcwalton/servo/more-inlines, r=jdm
9% improvement in style recalc on the rainbow page.

r? @jdm
2014-02-18 14:08:12 -05:00
bors-servo
8f63dff8f8 auto merge of #1667 : brunoabinader/servo/dom-element-refs, r=jdm
This is a sub-task for #1660.
2014-02-18 13:35:16 -05:00
Simon Sapin
83510ebbff Refactor cascade() and fix cascade_with_cached_declarations()
* Expand the apply() and apply_cached() templates.
  Their two invocations each were different enough
  that this improves readability IMO.
* Create computed::Context from inherited and cascaded values
  rather than computed value, as much as possible.
* Centralize this creation rather than making it per-property,
  making 'needed_for_context' not needed anymore.
* Pass a context to cascade_with_cached_declarations() rather than
  duplicate the creation code.
2014-02-16 21:03:53 +00:00
bors-servo
85ef67ef14 auto merge of #1705 : lpy/servo/issue1704, r=Ms2ger
see #1704
2014-02-16 11:44:04 -05:00
lpy
cc77c29265 Change <em> and <strong> to be HTMLElement (fixes #1704) 2014-02-17 00:37:26 +08:00
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