Commit graph

2510 commits

Author SHA1 Message Date
Josh Matthews
1fb12b11f4 Remove the newly-created Page from the tree if loading fails. 2015-03-03 16:25:40 -05:00
Josh Matthews
4972b623e1 Separate disposing of layout data from the GCing of the DOM object reflectors. Change the order of operations when shutting down the script task to ensure that Window globals aren't used after they've been GCed. 2015-03-03 16:25:40 -05:00
Josh Matthews
c816975750 Documentation and cleanup. 2015-03-03 16:25:40 -05:00
Josh Matthews
6351fc75fd Only store the url inside a pipeline instead of the rest of the LoadData. 2015-03-03 16:25:40 -05:00
Josh Matthews
e2c4f5ed67 Move everything unrelated to the frame tree out of Page and into Document or Window. Reduce the API surface of Page to a bare minimum to allow for easier future removal. 2015-03-03 16:25:40 -05:00
Josh Matthews
d9f04180a5 Split page load into separate network and parsing stages. Delay Page creation until the load is finished. Make session history traversal simply activate existing pipelines, rather than potentially loading them from the network. 2015-03-03 16:25:40 -05:00
bors-servo
621150db1c auto merge of #5124 : Adenilson/servo/cleanupWarning01, r=Ms2ger 2015-03-03 13:51:48 -07:00
Simon Sapin
4c1d778ced Revert "layout: Implement ordered lists, CSS counters, and quotes per CSS 2.1"
This reverts commit 30fd28d107.
2015-03-03 21:16:24 +01:00
Simon Sapin
7a218b3f08 Revert "Refactor content property parsing."
This reverts commit 50800940dc.
2015-03-03 21:16:03 +01:00
Simon Sapin
e590f9b7f4 Revert "Tidy."
This reverts commit e209f5e0da.
2015-03-03 21:16:01 +01:00
Dan Fox
3441b2c329 layout/layout_data.rs -> layout/data.rs 2015-03-03 19:59:38 +00:00
bors-servo
e1a50c7719 auto merge of #5133 : servo/servo/background-size, r=SimonSapin
`background-size` per CSS-BACKGROUNDS § 3.9.

Nearest neighbor interpolation is used for `crisp-edges`, like Firefox.
A note has been added that we could do better if we wanted to.

Multiple backgrounds are not yet supported.

Rebase of #4368. Fixes #4368.
2015-03-03 11:48:54 -07:00
Dan Fox
3f9032c1a1 Re-alphabetise imports 2015-03-03 18:16:50 +00:00
Dan Fox
dd0df4e9c5 Rename util.rs -> layout_data.rs 2015-03-03 18:12:06 +00:00
Dan Fox
564d12435a Move ToGfxColor to display_list_builder.rs 2015-03-03 17:59:44 +00:00
Dan Fox
b424de2092 Extract OpaqueNodeMethods to own file 2015-03-03 17:49:10 +00:00
Simon Sapin
1c4b0dda55 Fix up libstyle unit test for background-size. 2015-03-03 18:48:17 +01:00
bors-servo
5cd6316add auto merge of #5067 : servo/servo/counters, r=SimonSapin
Only simple alphabetic and numeric counter styles are supported. (This
is most of them though.)

Although this PR adds a sequential pass to layout, I verified that on
pages that contain a reasonable number of ordered lists (Reddit
`/r/rust`), the time spent in generated content resolution is dwarfed by
the time spent in the parallelizable parts of layout. So I don't expect
this to negatively affect our parallelism expect perhaps in pathological
cases.

Moved from #4544, because Critic.

Fixes #4544.
2015-03-03 10:42:52 -07:00
Patrick Walton
09c53f461d layout: Implement image-rendering per CSS-IMAGES-3 § 5.3 and
`background-size` per CSS-BACKGROUNDS § 3.9.

Nearest neighbor interpolation is used for `crisp-edges`, like Firefox.
A note has been added that we could do better if we wanted to.

Multiple backgrounds are not yet supported.
2015-03-03 17:54:12 +01:00
Simon Sapin
e209f5e0da Tidy. 2015-03-03 17:46:14 +01:00
Simon Sapin
50800940dc Refactor content property parsing.
It wasn’t wrong, but it could be a lot shorter.

* Use try! and match_ignore_ascii_case! macros whenever possible
* Use expect_comma() instead of parse_comma_separated() when comma-separated values don’t have the same syntax
* Prefer Parser::expect_* methods over doing the same with Parser::next
* Take advantage of parse_nested_block returnin the return value of the closure
* Use try! more.
2015-03-03 17:31:19 +01:00
Patrick Walton
30fd28d107 layout: Implement ordered lists, CSS counters, and quotes per CSS 2.1
§ 12.3-12.5.

Only simple alphabetic and numeric counter styles are supported. (This
is most of them though.)

Although this PR adds a sequential pass to layout, I verified that on
pages that contain a reasonable number of ordered lists (Reddit
`/r/rust`), the time spent in generated content resolution is dwarfed by
the time spent in the parallelizable parts of layout. So I don't expect
this to negatively affect our parallelism expect perhaps in pathological
cases.
2015-03-03 17:31:19 +01:00
Patrick Walton
a82fc00806 layout: Implement overflow-x and overflow-y per CSS-OVERFLOW § 3.
Fragmentation is not yet supported.
2015-03-03 17:03:27 +01:00
Avi Weinstock
bcc27d9bd0 Replace borrow with borrow_for_gc_trace in JSTraceable::trace (Issue #4778). 2015-03-03 09:06:45 -05:00
Keith Yeung
a07a0cf39f Added type parameter to PartialEq on JSRef (fixes #5112, #3960) 2015-03-03 11:46:13 +08:00
bors-servo
ac4a690e8f auto merge of #5121 : glennw/servo/transparent-hover, r=mbrubeck
Move culling of transparent display items to paint task rather than display list builder, so that hit testing detects mouse over on transparent background elements.
2015-03-02 19:42:49 -07:00
bors-servo
290b025f89 auto merge of #5114 : psdh/servo/foldsum, r=jdm
Fix #5109
2015-03-02 18:27:51 -07:00
Adenilson Cavalcanti
a2fea4c093 Cleanup compilation warning. 2015-03-02 17:03:06 -08:00
bors-servo
6927bf6ff0 auto merge of #5113 : glennw/servo/fix-title, r=mbrubeck
Sometimes, the root pipeline title is sent before the compositor has created the root pipeline, so also request the main page title once the initial frame tree has been sent.
2015-03-02 17:24:56 -07:00
bors-servo
65454e51c8 auto merge of #5086 : glennw/servo/reap-more-stuff, r=jdm
Also introduce a clear() function to layout data which will be used to clear items such as compositor layouts.

Clear the layout data when a node becomes display:none.
2015-03-02 16:45:51 -07:00
Glenn Watson
0817f9ad44 Fix hover state on elements with transparent background colours.
Move culling of transparent display items to paint task rather than display list builder, so that hit testing detects mouse over on transparent background elements.
2015-03-03 09:15:11 +10:00
bors-servo
891dd496e3 auto merge of #5065 : glennw/servo/iframe-vis-fix, r=pcwalton
When an iframe is created with display:none it sets the root layer to be zero width and height. When updating the rect of the iframe from layout send the entire rect rather than just the new origin, which handles the case where the iframe has been made visible and now has a non-zero rect.
2015-03-02 15:30:52 -07:00
bors-servo
93d1f40a96 auto merge of #4475 : pcwalton/servo/text-shadow, r=mbrubeck
r? @mbrubeck 

Depends on servo/rust-geom#64.
2015-03-02 14:54:52 -07:00
Glenn Watson
f68386f0fa Fix making an iframe visible when it was initially set to display:none.
When an iframe is created with display:none it sets the root layer to be
zero width and height. When updating the rect of the iframe from layout
send the entire rect rather than just the new origin, which handles the case
where the iframe has been made visible and now has a non-zero rect.
2015-03-03 07:46:26 +10:00
Patrick Walton
09358b908d layout: Implement text-shadow per CSS-TEXT-DECORATION-3 § 4. 2015-03-02 13:28:51 -08:00
Glenn Watson
611fd7a846 Reap layout data whenever a node is removed from the tree.
Also introduce a clear() function to layout data which will be used to clear items such as compositor layouts.

Clear the layout data when a node becomes display:none.
2015-03-03 07:12:51 +10:00
bors-servo
9eaa48b793 auto merge of #5089 : mmatyas/servo/canvas_lineto, r=jdm
This patch enables the use of `lineTo()` on the canvas.
2015-03-02 13:33:55 -07:00
Glenn Watson
2517bb561a Only allow root pipelines to set the window title.
Sometimes, the root pipeline title is sent before the compositor
has created the root pipeline, so also request the main page
title once the initial frame tree has been sent.
2015-03-03 06:10:47 +10:00
Mátyás Mustoha
774cc4a93a Canvas: added lineTo(). 2015-03-02 21:00:50 +01:00
bors-servo
2f3697f5f3 auto merge of #5110 : Ms2ger/servo/defaultvalue-strings, r=jdm 2015-03-02 12:57:59 -07:00
Ms2ger
5a1e6b772c Fix string default values. 2015-03-02 20:54:55 +01:00
Prabhjyot Singh Sodhi
dbc654ffa8 Replacing uses of accumulating fold with sum 2015-03-02 06:11:39 -05:00
bors-servo
fed878710c auto merge of #5111 : KiChjang/servo/step-1-anchor, r=Manishearth
Fixes #4871
2015-03-01 22:18:49 -07:00
Keith Yeung
83f56ed061 Implementation of step 1 activation behavior of htmlanchorelement (fixes #4871)
Fixed issues
2015-03-02 12:54:50 +08:00
bors-servo
154427ce51 auto merge of #5104 : Ms2ger/servo/unused-import, r=Manishearth 2015-02-28 14:45:47 -07:00
Ms2ger
fde91b19ff Remove unused import from script_task. 2015-02-28 22:03:40 +01:00
bors-servo
184d32b519 auto merge of #5103 : Ms2ger/servo/from_actual, r=jdm 2015-02-28 13:33:49 -07:00
bors-servo
75060f41db auto merge of #5073 : JIoJIaJIu/servo/handle_mouse_event, r=jdm 2015-02-28 12:21:51 -07:00
bors-servo
16bc4749af auto merge of #5102 : servo/servo/profile-img, r=jdm
This extracts some independently useful parts of
<https://github.com/servo/servo/pull/4215>.
2015-02-28 11:46:02 -07:00
bors-servo
5eaf1144c3 auto merge of #5099 : Ms2ger/servo/exceptions, r=saneyuki 2015-02-28 11:09:55 -07:00