Commit graph

513 commits

Author SHA1 Message Date
bors-servo
1f682d878d auto merge of #5281 : glennw/servo/mozbrowser, r=jdm 2015-03-22 21:36:51 -06:00
Glenn Watson
bf9b8f7050 Experimental implementation of (a small subset of) mozbrowser APIs. 2015-03-23 13:26:55 +10:00
Ms2ger
ba87666cdb Update some code that's feature-gated under core. 2015-03-21 18:44:39 +01:00
bors-servo
075f667ce7 auto merge of #5259 : frewsxcv/servo/constellation-cleanup, r=glennw
I messed up #5255
2015-03-20 15:57:45 -06:00
Corey Farwell
9101fa621a Minor cleanup in compositing/constellation
* No need to explicitly state .iter()
* Simplify NavigationDirection match branches
* Utilize Vec.map instead of match
* Clean up a couple imports
2015-03-20 16:15:24 -04:00
Simon Sapin
6a58cbd118 Fix more warnings everywhere. 2015-03-18 22:11:20 +01:00
Ms2ger
5f15eb5fbf Upgrade rustc to d3c49d2140fc65e8bb7d7cf25bfe74dda6ce5ecf/rustc-1.0.0-dev. 2015-03-18 13:18:31 -04:00
bors-servo
755581ff54 auto merge of #5249 : glennw/servo/iframe-navigate, r=jdm
This allows iframes to navigate their own history.
2015-03-17 16:21:48 -06:00
Glenn Watson
3fb3e66ada Add support for selecting which frame is requesting a navigation.
This allows iframes to navigate their own history.
2015-03-18 07:50:46 +10:00
Glenn Watson
84c5db900f Ensure that clicking a link in an iframe gets the existing iframe rect.
Otherwise, the new iframe may not get a valid window size until the
parent frame does another reflow.
2015-03-17 15:26:50 +10:00
bors-servo
2281bca892 auto merge of #5245 : nnethercote/servo/only-one-quit-event, r=glennw
This fixes #5234, in that the huge memory spike disappears. It still takes ~15 seconds for the window to actually disappear after that first `Quit` event is received by the IOCompositor. Maybe that's a pre-existing problem.

There may be better ways to do this, like handling it on the sending side (i.e. within glutin) instead of the receiving side. I just did it this way because it seemed like the easiest thing.
2015-03-16 22:21:49 -06:00
Nicholas Nethercote
2b10f6e7ea Make IOCompositor only respond to the first Quit event.
This avoids huge mpsc_queue build-ups from the flood of Quit events
coming from glutin.

Fixes #5234.
2015-03-16 19:32:57 -07:00
Nicholas Nethercote
ece2711185 Add memory reporting infrastructure and use it to measure the display list.
This changeset implements the beginnings of fine-grained measurement of
Servo's data structures.

- It adds a new `SizeOf` trait, which is used to measure the memory used
  by heap data structures, and implements it for some std types: Box,
  String, Option, Arc, Vec, and DList.

- It adds a new `MemoryReporter` trait which is used to report memory
  measurements from other threads to the memory profiler. Reporters are
  registered and unregistered with the memory profiler, and the memory
  profiler makes measurement requests of reporters when necessary.

- It plumbs a MemoryProfilerChan through to the layout task so it can
  register a memory reporter.

- It implements the `SizeOf` trait for `DisplayList` and associated
  types, and adds a memory reporter that uses it.

The display list hits 14.77 MiB when viewing
tests/html/perf-rainbow.html, and 2.51 MiB when viewing the Guardians of
the Galaxy Wikipedia page from servo-static-suite. Example output:

  0.29: display-list::http://www.reddit.com/
  0.00: display-list::http://static.adzerk.net/reddit/ads.html?sr=-reddit.com,loggedout&bust2#http://www.reddit.com
  0.00: display-list::http://www.reddit.com/static/createadframe.html

There are a number of FIXME comments indicating sub-optimal things. This
is a big enough change for now that doing them as follow-ups seems best.
2015-03-16 18:12:26 -07:00
Glenn Watson
939a89568e First part of refactoring constellation to support iframe navigation.
The history is now recorded per frame, but needs to be exposed in a followup PR.

Also fixes a race condition that occurs loading iframes under heavy CPU load.

This ensures that iframes never do a reflow / layout until they have a valid
window size set from their parent frame.
2015-03-17 09:35:41 +10:00
Glenn Watson
591b10aa58 Fix for race condition causing reftests to hang under load.
If the root layer has a zero size rectangle, it will never be
painted, so assume the pipeline is idle in that case.

Re-enable two reftests that were disabled due to this issue.
2015-03-17 08:48:45 +10:00
Glenn Watson
ec91fa2cfd Remove now unused id field for frame tree. 2015-03-11 13:41:55 +10:00
Glenn Watson
3befc8ce0b Make change page url message consistent with other compositor messages.
This doesn't have any effect on functionality, it just simplifies a few upcoming changes with how FrameIds work.
2015-03-11 08:54:36 +10: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
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
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
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
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
bors-servo
a3ea3eed47 auto merge of #4960 : pkondzior/servo/add-script-timers-suspend-resume-functionality, r=jdm
Adds free/thaw methods to script_task that let you send suspend/resume messages to web content timers. Fixes #4907
2015-02-23 21:45:46 -07:00
Pawel Kondzior
c2961c94b4 Add thaw/freeze messages that can suspend/resume webcontent timers #4907 2015-02-24 05:33:27 +01:00
Manish Goregaokar
46824616d2 Make gonk compile again 2015-02-21 09:42:45 +05:30
Ms2ger
895d1ec10a Move compositing to libc from crates.io. 2015-02-21 00:24:58 +01:00
Ruud van Asseldonk
0fbfb8cffc Do not glob-export EvaluateJSReply variants.
This closes #4921.
2015-02-13 14:59:50 +01:00
Ruud van Asseldonk
1452614e28 Do not glob-export DevtoolsControlMsg variants. 2015-02-13 14:51:10 +01:00
Ms2ger
dda12e196b Fix warnings in compositing. 2015-02-13 10:36:48 +01:00
Simon Sapin
d5dd1d658e Upgrade to rustc ba2f13ef0 2015-02-04 2015-02-11 14:48:34 -08:00
Martin Robinson
cf5b6199e7 Send back unused buffers to the right pipeline
Update to latest rust-layers and send back all buffers to their
original pipeline.
2015-02-10 17:11:28 -08:00
Ms2ger
a09a912178 Import net as net rather than servo_net. 2015-02-10 12:55:24 +01:00
Ms2ger
b2fcc2397e Import msg as msg rather than servo_msg. 2015-02-10 11:40:36 +01:00
Josh Matthews
446f0f447e Allow unused variables, imports, and mutable. 2015-02-09 17:41:57 -05:00
Glenn Watson
1e0e98b63c Implement window.frameElement, change window.parent to make use of it. 2015-02-07 06:46:29 +10:00
Josh Matthews
b2b7baf914 Fix devtools implementation of downcastable actors. Fixes #4844. 2015-02-05 14:29:09 +00:00
Glenn Watson
0873e5c8ca Implement window.parent for iframes. 2015-02-05 07:04:04 +10:00
bors-servo
58a3cdcbef auto merge of #4822 : KiChjang/servo/constellation-frame-handling, r=jdm
Attempt at fixing #4795. Code has been written to check for the existence for the current frame, but it seems to pass the condition every time.
2015-02-04 10:06:56 -07:00
Keith Yeung
37cb876f4e Changed Msg::KeyEvent to take in KeyState and moved the checks in CompositorTask::send_key_event to Compositor::handle_browser_message 2015-02-04 10:30:23 +08:00
Adenilson Cavalcanti
ffa23088ff Using the new transparent_black() in the proper places. 2015-02-03 18:08:30 -08:00
Keith Yeung
b262fc16e0 Modified constellation key event handler to deal with missing frames 2015-02-04 00:04:12 +08:00
Adenilson Cavalcanti
10418a0ea1 Using color helpers in Compositor and PaintContext
(plus added TODO related to equality operators).
2015-02-02 14:49:26 -08:00
Glenn Watson
f495884dcb Remove the glfw port (it doesn't compile since last rustup anyway). 2015-02-02 10:38:12 +10:00
Josh Matthews
9e01d91947 Lock crates.io dependencies to specific versions. 2015-01-31 01:27:26 +01:00
Ms2ger
505159a464 Import the util crate as util rather than servo_util.
This used to conflict with the util crate from the standard library, which
has long since been removed.

The import in layout has not been changed because of a conflict with the
util mod there.
2015-01-29 12:16:41 +01:00
Josh Matthews
95fc29fa0d Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
Ms2ger
808315926c Pass a String to spawn_named.
IntoString has been removed from Rust, and named() will take a String, so
there is no good reason to do otherwise here.
2015-01-21 11:23:19 +01:00
Glenn Watson
797658fb3a Fix change of src attributes on iframe (prevents SetLayerOrigin crash). 2015-01-20 15:38:58 +10:00
Martin Robinson
0d297aea9b Fix set_ids naming in Constellation
The set_ids name is a holdover from a previous design and no longer
reflects what this method does. Instead move the content into
grant_paint_permission and rename it to
send_frame_tree_and_grant_paint_permission. Also move out the handling of
evicted iframes into its own method.
2015-01-19 11:30:04 -08:00
Martin Robinson
c3d23a0630 Update to latest rust-azure and rust-layers
We no longer need to implement from_azure_surface in Servo, now that
rust-layers is handling more of the glue between rust-layers and Azure.
2015-01-15 12:59:11 -08:00