Commit graph

134 commits

Author SHA1 Message Date
Tomas Cernaj
18632570cd servo: Merge #8909 - Move ScriptMsg to script_traits crate, Fixes #8833 (from cnaj:msg_refactoring); r=jdm
Review of documentation that was missing needed.

Fixes #8833.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7438bc0425749989b8aab084a34ff3fff2ea6679
2015-12-10 10:55:44 +05:01
Ms2ger
6ce36f8878 servo: Merge #8820 - Fix warnings (from Ms2ger:warnings); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: bb117abcd3fee0c3435cefd3d4f196345770ca69
2015-12-04 14:40:00 +05:01
Matt Brubeck
90c5caf1aa servo: Merge #8785 - Add slow path for hit testing of iframe behind positioned content layer (from mbrubeck:fixed-hit-test); r=pcwalton
Fixes browser.html blocker #8759. r? @pcwalton

This adds a slow path for cases where the compositor's layer-based hit testing is incorrect.  If the script task discovers that a mouse event should have been dispatched to an iframe, it bounces the event back to the constellation to be forwarded to the correct pipeline.

This isn't terribly slow (on the slow path, it adds one extra round-trip message between script and constellation), but if we want to optimize this better we could instead replace the compositor's layer hit testing with display list hit testing in the paint task.  This would be a more complicated change that I think we should save for a follow-up.

This only fixes mouse input for now.  A basically-identical change will be needed for touch-screen input, whether we stick with this approach or switch to the paint task.

Source-Repo: https://github.com/servo/servo
Source-Revision: bc62b5aadb62267582fbd65daa28438ce6c6ac9c
2015-12-04 02:25:22 +05:01
Josh Matthews
602578f515 servo: Merge #8558 - Dispatch load events for cross origin iframes. Resolves #6672 (from jdm:crossoriginiframeload); r=glennw
Splitting it out from #6677.

Source-Repo: https://github.com/servo/servo
Source-Revision: 51c19fd733a863f2fae05e693795dbecce69f2ed
2015-12-01 03:40:11 +05:01
Ms2ger
a8449660df servo: Merge #8688 - Some compositing cleanup (from Ms2ger:compositing); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: fa7e1d07ff405e8121bbbe15557343846d657c85
2015-11-28 06:57:14 +05:01
Greg Guthe
0619875813 servo: Merge #8598 - Split paint task messages from ScriptMsg (from g-k:split-scriptmsg); r=KiChjang
Refs: https://github.com/servo/servo/issues/8592
Source-Repo: https://github.com/servo/servo
Source-Revision: 5e7306bf1965988551cafe6a27baab13eb927bbe
2015-11-26 02:33:47 +05:01
r0e
3e26b6db66 servo: Merge #8597 - Fix for #8593 'loop..match' should be 'while let' (from r0e:testing); r=Manishearth
As per #8593.

Source-Repo: https://github.com/servo/servo
Source-Revision: e3eee5a41b2bc6e3517cdcdc745d74c59a82e76e
2015-11-23 07:49:20 +05:01
Corey Farwell
142c7b7efe servo: Merge #8622 - Implement 'url!(..)' macro (from frewsxcv:url-plugin); r=SimonSapin
https://github.com/servo/rust-url/issues/136

https://github.com/servo/rust-url/pull/137

Source-Repo: https://github.com/servo/servo
Source-Revision: ea690a2dff64d1cb4eb668473d62f1bbcb19f7c8
2015-11-21 20:41:52 +05:01
Patrick Walton
8c7de61738 servo: Merge #8599 - compositing: Split Servo up into multiple sandboxed processes (from jdm:e10s-redux); r=metajack
Multiprocess mode is enabled with the `-M` switch, and sandboxing is
enabled with the `-S` switch.

Rebase of #6884.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8b39b9afed6ef8a3d7d3e6609fd301a37825d3e1
2015-11-20 03:30:48 +05:01
Keith Yeung
5b3f4b220a servo: Merge #8530 - Split ConstellationMsg into ScriptMsg and CompositorMsg (from KiChjang:split-constellation-msg); r=jdm
Fixes #8356.

Source-Repo: https://github.com/servo/servo
Source-Revision: acbe41305230a926458596444ca955eff063d9dd
2015-11-19 04:10:20 +05:01
James Graham
182556357b servo: Merge #8151 - Implement support for WebDriver send keys command (from jgraham:webdriver_sendkeys); r=jgraham
Supports sending keys to an element. The specification here is still
rather unfinished so the error handling and so on in this code will
need iteration as it becomes clearer what the expected behaviour is.

Source-Repo: https://github.com/servo/servo
Source-Revision: afe03870ce1a5a65b4c22f2e64155259da8b4609
2015-11-17 10:33:50 +05:01
Keith Yeung
25a8fb9779 servo: Merge #8478 - Split chan and receiver_port into script and compositor flavors (from KiChjang:constellation-two-receivers); r=Ms2ger
Partial #8356. Currently this doesn't build because of a lint denying me to user unsafe code, which unfortunately the select! macro falls under. Not sure what to do there.

Source-Repo: https://github.com/servo/servo
Source-Revision: 231bf425f26a1c2aa993e3adfed1e3cfae0da027
2015-11-13 14:06:08 +05:01
Patrick Walton
2d74e05b04 servo: Merge #8492 - script: Make timer events e10s-safe (from jdm:e10s-timer-events); r=jdm
Closes #8235.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9eaa8e7b1f2e462f62b73477c30183c836a18399
2015-11-13 04:50:48 +05:01
Ms2ger
d1fefa91f1 servo: Merge #8355 - Cleanup exit messages and related code (from Ms2ger:Exit); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a465c58429547b59b8a6e1258eaaea46bf7e5a2
2015-11-07 22:05:45 +05:01
Josh Matthews
b69131fe1b servo: Merge #8314 - Investigations for #7787 (from jdm:timeoutinvestigations); r=metajack
I'm just going to keep throwing stuff at try, because running directly on the builders isn't yielding results.

Source-Repo: https://github.com/servo/servo
Source-Revision: c78da15abbffd223290300b6b985d65cd6f03d08
2015-11-05 03:39:30 +05:01
Eli Friedman
8b4bb62780 servo: Merge #8257 - Attempt to fix webfont-related intermittent test failures (from eefriedman:reorder-webfont-check); r=mbrubeck
I'm not completely sure the race condition outlined in this patch is
actually the race condition causing failures... but it's a possibility.

(I plan to run this through try a couple of times to see if it actually helps.)

Source-Repo: https://github.com/servo/servo
Source-Revision: cff9a5456915403cc9559b14f1353adf3f8504f6
2015-10-31 03:14:54 +05:01
benshu
7eac66ba86 servo: Merge #7450 - Ordering guarantees for timers (from benschulz:constellation-timer); r=jdm
This is an rough solution to the issue described in #3396. XHRs still do their own thing and an overall clean up is in order. Before I do that, though, I'd really like someone to sign off on the overall idea.

There's one major difference to what jdm layed out #3396: The timers remain with the window/worker and only the earliest expiring one is coordinated with the dedicated timer thread.
That means both the timer thread and the window/worker have to keep track of which timer expires next, which feels a bit wonky. However, the upshot is that there's no need for communication with the timer thread when a pipeline is frozen, thawed or dropped.

Most relvant parts are
 - the [`TimerScheduler`](6f5f661958 (diff-74137a6f50ab38e7a1e4d16920a66ce7R73)), which is the new per-constellation timer task and
 - the [`ActiveTimers`](6f5f661958 (diff-86707d952414a2860b78bcf6c1db8e2eR34)) which is what's left on the window/worker side.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2de5407cdabef67ed03b2ad4edf4a22541d77875
2015-10-21 09:07:30 -06:00
Glenn Watson
c019e2993c servo: Merge #8009 - Remove webdriver use of SubpageId (from glennw:webdriver-subpage); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ac733746094c2ab1c3e5a3326095032206e5fb86
2015-10-14 18:05:17 -06:00
Glenn Watson
4bbac71ac7 servo: Merge #7921 - Update RemoveIFrame to use pipeline id rather than subpage (from glennw:subpage-fixes-2); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 5ffeb3b95bfc90079622fa65fa7f6dc4fff25350
2015-10-12 07:49:26 -06:00
Glenn Watson
9272f395c5 servo: Merge #7899 - Remove constellation round trip for subpage mapping in compositor (from glennw:subpage-fixes-1); r=pcwalton
This makes use of the new functionality that allows iframes to generate their own pipeline IDs in order to remove any knowledge of subpage ids from the compositor.

(This is the first of several commits removing subpage from parts of servo).

Source-Repo: https://github.com/servo/servo
Source-Revision: 1d617f332edd0036ca4cbc3890f1f44f57597906
2015-10-07 18:36:35 -06:00
Glenn Watson
5130b51a6c servo: Merge #7807 - Make it possible for iframes to create their own pipeline ID (from glennw:pid); r=jdm
This doesn't change any functionality, but it's the first step towards removing SubpageId.

Adding this change now will allow us to gradually change over code referencing subpage id rather than in one massive PR.

Introduces a namespace for pipeline ID generation - there is a namespace for the constellation thread, and one per script thread.

Source-Repo: https://github.com/servo/servo
Source-Revision: 098bdb5f22500a6e856b085a1140090f63ef8645
2015-10-06 01:08:32 -06:00
Matt Brubeck
cb9647d82e servo: Merge #7808 - Start the constellation with the correct pixel ratio (from mbrubeck:headless-dpr); r=mrobinson
This may mitigate race conditions like #7730. r? @mrobinson

Source-Repo: https://github.com/servo/servo
Source-Revision: 9b37de965c9e7b2b906685e2f0ee915f1c901fb5
2015-09-30 20:58:10 -06:00
Patrick Walton
0f5d421cf7 servo: Merge #7423 - layout: Make the compositor rather than layout determine the position of each iframe (from pcwalton:iframe-stacking-context-position); r=glennw
The old code that attempted to do this during layout wasn't able to work
for multiple reasons: it couldn't know where the iframe was going to be
on the page (because of nested iframes), and at the time it was building
the display list for a fragment it couldn't know where that fragment was
going to be in page coordinates.

This patch rewrites that code so that only the size of an iframe is
determined during layout, and the position is determined by the
compositor. Layout layerizes iframes and marks the iframe layers with
the appropriate subpage ID so that the compositor can place them
correctly.

Closes #7377.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0cb657fe80859dd8862361631268479d1045432
2015-09-29 19:26:49 -06:00
Patrick Walton
da504ba30c servo: Merge #7596 - layout: Load Web fonts asynchronously (from pcwalton:async-web-font-loading); r=mbrubeck
Improves page load times significantly.

Closes #7343.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7933b484300131d3de79edbcf399288b22010616
2015-09-28 12:11:50 -06:00
James Graham
c18b23949d servo: Merge #7651 - Implement resettable and String-valued prefs (from jgraham:prefs_reset); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: e04c2c78ee43ad81f2794d908a13744b6b976443
2015-09-25 08:18:06 -06:00
Ravi Shankar
7d512d50d1 servo: Merge #7698 - sorted the declarations in various files (from Wafflespeanut:sorting); r=frewsxcv
This is a direct extract from my abandoned PR for a lint (#7546), along with some rather clumsy modifications (only on `components/script/dom/mod.rs` and `components/style/lib.rs`), because I had to sort some of the files again to make peace with tidy, which hasn't been educated about sorting yet!

Source-Repo: https://github.com/servo/servo
Source-Revision: a7208869f2903e36f9b2f540b55b50283d7df466
2015-09-23 15:02:56 -06:00
Maciej Skrzypkowski
20c67c2367 servo: Merge #7707 - Add plugins for compositing and net crates #7699 (from mskrzypkows:compositing_net_plugins); r=jdm
Changed to_string calls to to_owned calls
where was a need.

Source-Repo: https://github.com/servo/servo
Source-Revision: d588ce8d8503bf0b340abfb13e2bd6a228cab900
2015-09-22 07:58:55 -06:00
Brandon Fairchild
f7fb1e4b4a servo: Merge #7662 - Check for multiple import blocks separated by whitespace (from nerith:import); r=frewsxcv
Fixes #7381.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0d3c9223f09757124b1520c4f17e94fa8bbe249
2015-09-19 13:34:51 -06:00
Anthony Ramine
4310c0b4aa servo: Merge #7645 - Introduce structs for compositing and script task constructors' arguments (from nox:omtc-types); r=Ms2ger
Extracted from @pcwalton's #4271.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2879da54f943c9379b0c86461a87e20911bc0a0f
2015-09-16 10:41:10 -06:00
James Graham
fbe716c4c1 servo: Merge #7545 - Update prefs API to return an Option<bool> (from jgraham:get_pref_option); r=jdm
This allows for situations where there is no reasonable default
to apply for the pref value e.g. when we are just listing values

Source-Repo: https://github.com/servo/servo
Source-Revision: 9d4217990060b3d2c93a4b39fe391985f01a5979
2015-09-04 11:02:12 -06:00
João Oliveira
360ac1d5bf servo: Merge #7508 - Add style_traits crate to improve crate separation, (from jxs:master); r=SimonSapin
closes #7353

Source-Repo: https://github.com/servo/servo
Source-Revision: cc1eb3f741554b3f1711cd1938d1c16b6b7d2879
2015-09-04 06:46:11 -06:00
Josh Matthews
b308b8b05e servo: Merge #7391 - Replace catch-all experimental flag with fine-grained boolean prefere… (from jdm:prefs); r=Ms2ger
…nces initialized from a JSON document.

Source-Repo: https://github.com/servo/servo
Source-Revision: 72125f070d7faa0f3a927cf8150fabfb382648e7
2015-08-28 10:08:32 -06:00
Johann Tuffe
5c3a5a67f5 servo: Merge #7265 - Add alphabetical order check for use statements (from tafia:tidy-use); r=Ms2ger
close #7112

Source-Repo: https://github.com/servo/servo
Source-Revision: a5fbb2f2a6fa79755f975feff2435abb6a5dd0e9
2015-08-20 07:43:56 -06:00
Josh Matthews
6a81d499fc servo: Merge #7203 - Add automated style nit checks to test-tidy (from jdm:style); r=Ms2ger
Expands on the work by @wilmoz and cleans up the existing errors. Closes #7180. Closes #7111.

Source-Repo: https://github.com/servo/servo
Source-Revision: e74825f9fde8e222f4ba9bb24b2c2a3864c73e5f
2015-08-16 08:37:40 -06:00
João Oliveira
8410286b02 servo: Merge #7225 - Replace uses of for foo in bar.iter() and for foo in bar.iter_mut() (from jxs:master); r=nox
closes #7197

Source-Repo: https://github.com/servo/servo
Source-Revision: a1b3f477aa541fda4d1b6ccb02c3e56143f4d217
2015-08-15 03:03:21 -06:00
Ms2ger
da9bb62e1d servo: Merge #7171 - Remove ScriptControlChan (from Ms2ger:ScriptControlChan); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3ad49fc689ceb6067cd6dea1aa0d004321704b8e
2015-08-12 08:28:29 -06:00
Ms2ger
05b3751faf servo: Merge #7170 - Avoid unwrap calls in handle_navigate_msg (from Ms2ger:unwrap-constellation); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 54300a9c73f7c8289604ab9a957419577e10c1ac
2015-08-12 07:29:47 -06:00
Connor Imes
d598f44b6b servo: Merge #7009 - Remove typedefs DevtoolsControlChan and DevtoolsControlPort (from connorimes:remove-confusing-typedefs); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: a5c7508fabb36f9f5bc14e84b5f481cf7036e5f7
2015-08-07 14:41:37 -06:00
James Graham
f689852d1b servo: Merge #6415 - Add DOMLoad message to constellation that is sent after the DOM Load event is dispatched (from jgraham:dom_load); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 361d94d23ebf2897a240763d28fbb77b3d831b34
2015-08-07 11:30:33 -06:00
Manish Goregaokar
f5870d2f32 servo: Merge #7054 - Rollup of 3 pull requests (from Manishearth:rollup); r=Manishearth
- Successful merges: #7028, #7034, #7039
- Failed merges:

Source-Repo: https://github.com/servo/servo
Source-Revision: 76b4bae6ee45317f2ca0aefbc48b89169d2450c8
2015-08-06 17:43:09 -06:00
James Graham
a77654c4c2 servo: Merge #6416 - Use hosts-replaced URL only when loading resources (from jgraham:hosts_replaced); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 8602d01af2b2081ea1e9d600abdb1ea609a65038
2015-08-05 08:01:03 -06:00
Bruno de Oliveira Abinader
0de6fc8eb2 servo: Merge #6181 - Implement Msg::Status with serialized url upon mouseover (from brunoabinader:mouseover-status); r=larsbergstrom
Credits for Mike Blumenkrantz (@zmike), I just rebased against trunk and
fixed the url serialization.

Fixes #6178.

Source-Repo: https://github.com/servo/servo
Source-Revision: 82e476fd07564f2822a5af1f397751027ddf7258
2015-07-30 08:45:31 -06:00
ecoal95
5f266e5366 servo: Merge #6812 - webgl: Make context creation fallible. Fixes #6806 (from emilio:webgl-fail); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: b90fd5931dbba9cf26e3111132587ea285dbca05
2015-07-29 15:29:58 -06:00
Avi Weinstock
6a5f0dd49d servo: Merge #6654 - Add copy-to-clipboard feature under x11 (from aweinstock314:add-x11-copy-to-clipboard); r=jdm
The main work is in the the rust-clipboard library, this PR updates Cargo.lock and adds plumbing.

0337e48b3f

Source-Repo: https://github.com/servo/servo
Source-Revision: 28e163d6c44f1d85fbaea7f236da40972b6a63b1
2015-07-29 11:26:00 -06:00
Patrick Walton
8325a09ce0 servo: Merge #6745 - devtools: Convert the developer tools to run over IPC (from pcwalton:devtools-ipc); r=jdm
This was a large, invasive change.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 4bc1db3fe85f2a1a04536f0f6045b53b1319f4bc
2015-07-27 11:09:38 -06:00
Patrick Walton
d4fd20dc7c servo: Merge #6616 - script: Make most of 2D canvas and WebGL run over IPC (from pcwalton:canvas-webgl-ipc); r=jdm
To actually make the multiprocess communication work, we'll need to
reroute the task creation to the pipeline or the compositor. But this
works as a first step.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 1764267379a00b96a1df89f3917299a0c6fd325c
2015-07-25 01:50:31 -06:00
James Graham
4f18454d47 servo: Merge #6392 - Implement support for Get URL and Refresh in WebDriver server (from jgraham:webdriver_get_url_refresh); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 93a0c29ad4531880b359b96cc5e086af2d30f71c
2015-07-19 15:03:36 -06:00
Patrick Walton
45366270f1 servo: Merge #6593 - compositing: Make the constellation messages serializable (from pcwalton:constellation-ipc); r=jdm
Same idea as before. This depends on:

* https://github.com/servo/euclid/pull/94
* https://github.com/hyperium/hyper/pull/603

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 2f4bdc6ad631dc56b64622e3390943b59270b3ae
2015-07-18 07:43:24 -06:00
Patrick Walton
5e391f57ba servo: Merge #6618 - script: Split Pipeline::create into chrome process and content process parts (from pcwalton:content-process-code-shuffling); r=larsbergstrom
This will make it easier to adapt to IPC.

The trickiest part here was to make script tasks spawn new layout tasks
directly instead of having the pipeline do it for them. The latter
approach will not work in multiprocess mode, because layout and script
must run in the same address space and the pipeline cannot inject tasks
into another process.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: e06eaa0064f49bc215e3851f0a3686e1191b356a
2015-07-14 12:11:09 -06:00
Patrick Walton
31494292e3 servo: Merge #6596 - compositing: Make ScriptListener and LayoutControlChan messages go over IPC (from pcwalton:layout-control-ipc); r=jdm
r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 64751b8eef5b95de9ac3b9a382b4cb4408cb90c0
2015-07-14 08:46:07 -06:00