Commit Graph

76 Commits

Author SHA1 Message Date
Mike Blumenkrantz
4be5a1ae35 servo: Merge #6175 - Embedding: revenge of cargo (from zmike:embedding-REVENGE_OF_CARGO); r=larsbergstrom
Adds a bunch more embedding interfaces/callbacks/functionality

@larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: 94ebfe81e454ca6dd68210b4475b4091e836dd1a
2015-05-27 14:17:32 -05:00
James Graham
771e23db73 servo: Merge #6022 - Add enough execute_async_script support to webdriver that we can run web-platform-tests (from jgraham:webdriver_execute_async_script); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: b05c3fc0c063e32168a9630dc2a0e8adc9285dae
2015-05-14 05:02:27 -05:00
Glenn Watson
6cd31b7d9f servo: Merge #5890 - Various fixes for cleaning up iframes, compositor layers, pipelines and threads (from glennw:iframe-cleanup); r=jdm
This allows most of the jquery test suite to run without exhausting thread resources.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7e022b25a8ab87897180dcf1b6aff8d9b57adcb4
2015-05-13 22:34:59 -05:00
Glenn Watson
76f1d2ef46 servo: Merge #6031 - Fixes a number of race conditions and reliability issues with reftests and compositor (from glennw:reftest-race-conditions); r=larsberg,jdm
The basic idea is it's safe to output an image for reftest by testing:
 - That the compositor doesn't have any animations active.
 - That the compositor is not waiting on any outstanding paint messages to arrive.
 - That the script tasks are "idle" and therefore won't cause reflow.
    - This currently means page loaded, onload fired, reftest-wait not active, first reflow triggered.
    - It could easily be expanded to handle pending timers etc.
 - That the "epoch" that the layout tasks have last laid out after script went idle, is reflected by the compositor in all visible layers for that pipeline.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5e61ebaa05e5babb7b2fdd1347b6cdd23df38e62
2015-05-13 18:37:54 -05:00
Brian Anderson
4a9a9a532c servo: Merge #6010 - More cleanup of the servo entry points (from brson:next); r=pcwalton
Just cleanup.

Source-Repo: https://github.com/servo/servo
Source-Revision: ca9c703bf5e7b6664ab956e15c7f53534f0f32cd
2015-05-12 03:26:54 -05:00
James Graham
3542f4af9e servo: Merge #5884 - Support WebDriver takeScreenshot command (from jgraham:webdriver_screenshot); r=jdm
This adds support for compositing to a PNG without actually quiting
the browser.

Cargo bits need to be updated after the upstream changes to rust-png land.

Source-Repo: https://github.com/servo/servo
Source-Revision: 63ba1cb69b80d70c1d893ba80edd802cd326316d
2015-05-07 04:59:04 -05:00
James Gilbertson
8a584c6fcf servo: Merge #5361 - Implement CSS Device Adaption Level 1 (from luniv:css-device-adapt); r=mbrubeck
Spec: http://dev.w3.org/csswg/css-device-adapt/

Currently, the actual viewport is used by the layout task as part of the reflow, and the compositor uses the zoom constraints. I'm not sure if anywhere else currently needs access to the constraints (i.e. there's no CSSOM as far as I can tell).

I did not implement sections 9 (viewport <META>) or 10 (handling 'auto' for 'zoom').

Source-Repo: https://github.com/servo/servo
Source-Revision: ccf1e6b9a701cf4ff010fa1f1b4ba9d656d962af
2015-05-06 12:41:09 -05:00
Guro Bokum
8800f4e7e5 servo: Merge #5753 - Start using on_refresh_driver_tick #5681 (from JIoJIaJIu:timeline); r=jdm
RequestAnimationFrame
[Task](https://github.com/servo/servo/issues/5681)

Source-Repo: https://github.com/servo/servo
Source-Revision: 5e59e77c416dbe35e8c30ca1c21c9088ed17a079
2015-05-06 00:50:13 -05:00
Nicholas Nethercote
afeab10374 servo: Merge #5912 - Add a profile_traits crate to reduce compile times (from nnethercote:profile_traits); r=Manishearth
A rebuild after touching components/profile/mem.rs now takes 48 seconds (and
only rebuilds `profile` and `servo`) which is much lower than it used to be.
In comparison, a rebuild after touching components/profile_traits/mem.rs takes
294 seconds and rebuilds many more crates.

This change also removes some unnecessary crate dependencies in `net` and
`net_traits`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 77f653da2c4120ea7ac1a946d97fc70059d513d4
2015-04-30 20:02:33 -05:00
Prabhjyot Singh Sodhi
c0097a3fe1 servo: Merge #5895 - Uniformise the various Msg types [#5882] (from psdh:uniformiseMsgTypes); r=jdm
Fixes #5882

Source-Repo: https://github.com/servo/servo
Source-Revision: 19a4a263645a643d3a3f79b41b816fe8b8727265
2015-04-29 15:51:39 -05:00
Ms2ger
622e167a6a servo: Merge #5888 - Prepare for the rustup (from Ms2ger:prepare-rustup); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: ab2d07db1fabd7ad9590aa7296038bbc91806c3f
2015-04-28 17:52:49 -05:00
James Graham
b71012fbc1 servo: Merge #5808 - Add script execution support via WebDriver (from jgraham:webdriver_execute_script); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 38ac11d0b8ae4244f49b59a6321a1a570ea01e03
2015-04-23 13:41:11 -05:00
Glenn Watson
1511f427f8 servo: Merge #5767 - Refactored image cache task - details below (from glennw:image-cache); r=larsbergstrom,jdm
* Simpler image cache API for clients to use.
 * Significantly fewer threads.
   * One thread for image cache task (multiplexes commands, decoder threads and async resource requests).
   * 4 threads for decoder worker tasks.
 * Removed ReflowEvent hacks in script and layout tasks.
   * Image elements pass a Trusted<T> to image cache, which is used to dirty nodes via script task. Previous use of Untrusted addresses was unsafe.
   * Image requests such as background-image on layout / paint threads trigger repaint only rather than full reflow.
 * Add reflow batching for when multiple images load quickly.
   * Reduces the number of paints loading wikipedia from ~95 to ~35.
 * Reasonably simple to add proper prefetch support in a follow up PR.
 * Async loaded images always construct Image fragments now, instead of generic.
   * Image fragments support the image not being present.
 * Simpler implementation of synchronous image loading for reftests.
 * Removed image holder.
 * image.onload support.
 * image NaturalWidth and NaturalHeight support.
 * Updated WPT expectations.

Source-Repo: https://github.com/servo/servo
Source-Revision: ac0645c2363b5a6ea3930b0857b3a27f1b6d033f
2015-04-22 19:16:46 -05:00
Avi Weinstock
effc56f690 servo: Merge #5547 - X11 clipboard support (from aweinstock314:x11-clipboard); r=jdm
Manual re-opening of #5479 (since it seems that GitHub disables re-opening with the same number after a rebase).

Source-Repo: https://github.com/servo/servo
Source-Revision: 9974ebb2f969d2de8959fe74844b7410a5acd54e
2015-04-21 14:41:32 -05:00
Glenn Watson
0eccf68b72 servo: Merge #5559 - Support focus management and keyboard events for iframes (from glennw:iframe-focus); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 8b8daa24b8d25c531ea74a70b4b6e25cb3d7d58c
2015-04-19 18:13:59 -05:00
James Graham
3ea2485816 servo: Merge #5610 - Add enough Webdriver support to enable Get() (from jgraham:jgraham/webdriver-get); r=jdm
This is incomplete in several ways:

* It assumes that there's only one constellation (i.e. top level browsing context), ever.
* The session support is very basic indeed (no capabilities)
* Passing channels over channels may not sit well with IPC
* The error handling is mostly missing

Source-Repo: https://github.com/servo/servo
Source-Revision: af2f46bddad7a0e87a46fc3e303f15b4343226c7
2015-04-16 12:35:25 -05:00
Aneesh Agrawal
b5257a6f0d servo: Merge #5558 - Remove compositor dependency on net crate (from aneeshusa:remove-compositor-dependency-on-net); r=jdm
Move the ImageCacheTaskClient trait and impl to net_traits. Fixes #5551.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6903955b9835b7cfdff6378e4a547cdad1589443
2015-04-10 07:41:54 -05:00
Manish Goregaokar
2674bab6a8 servo: Merge #5465 - Split out shared networking code into net_traits crate (from gilles-leblanc:issue-4476-b); r=jdm
Fixes #4476

Source-Repo: https://github.com/servo/servo
Source-Revision: d707d1b78e3393a1ed164af8ec855bd0ff119e55
2015-04-03 13:00:46 -06:00
Patrick Walton
b4a63e5dbd servo: Merge #5400 - layout: Implement CSS transitions per CSS-TRANSITIONS § 2 (from pcwalton:transitions-redux); r=glennw
Transition events are not yet supported, and the only animatable
properties are `top`, `right`, `bottom`, and `left`. However, all other
features of transitions are supported. There are no automated tests at
present because I'm not sure how best to test it, but three manual tests
are included.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: ebdf1d494b6c986e6dfcb7d8fd3f0ffa126523ed
2015-03-31 10:39:56 -06:00
Ms2ger
95298609f7 servo: Merge #5432 - Use the new io's stderr handle to write out the hard-fail warning (from Ms2ger:stderr-comp); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ce3f777a12212604ec5cb56a0145f3cf8fca9ea7
2015-03-28 12:10:06 -06:00
Nicholas Nethercote
511ce78c9b servo: Merge #5348 - Rename lots of profiling-related things (from nnethercote:profiler-renaming); r=jdm
```
------------------------------------------------------------------------
BEFORE                              AFTER
------------------------------------------------------------------------
util::memory                        util::mem
- heap_size_of                      - heap_size_of (unchanged)
- SizeOf                            - HeapSizeOf
  - size_of_excluding_self            - heap_size_of_children

prof::mem                           prof::mem
- MemoryProfilerChan                - ProfilerChan
- MemoryReport                      - Report
- MemoryReportsChan                 - ReportsChan
- MemoryReporter                    - Reporter
- MemoryProfilerMsg                 - ProfilerMsg
  - {R,UnR}egisterMemoryReporter      - {R,UnR}egisterReporter
- MemoryProfiler                    - Prof
- ReportsForest                     - ReportsForest (unchanged)
- ReportsTree                       - ReportsTree   (unchanged)
- SystemMemoryReporter              - SystemReporter

prof::time                          prof::time
- TimeProfilerChan                  - ProfilerChan
- TimerMetadata                     - TimerMetadata (unchanged)
- Formatable                        - Formattable [spelling!]
- TimeProfilerMsg                   - ProfilerMsg
- TimeProfilerCategory              - ProfilerCategory
- TimeProfilerBuckets               - ProfilerBuckets
- TimeProfiler                      - Profiler
- TimerMetadataFrameType            - TimerMetadataFrameType (unchanged)
- TimerMetadataReflowType           - TimerMetadataReflowType (unchanged)
- ProfilerMetadata                  - ProfilerMetadata (unchanged)
```
In a few places both prof::time and prof::mem are used, and so
module-qualification is needed to avoid overlap, e.g. time::Profiler and
mem::Profiler. Likewise with std::mem and prof::mem. This is not a big
deal.

Source-Repo: https://github.com/servo/servo
Source-Revision: d784d9c488be4533a3590a154addd366d15a5864
2015-03-25 21:18:48 -06:00
Avi Weinstock
96762695f2 servo: Merge #5359 - Moz events (from aweinstock314:moz-events); r=jdm
Addresses #5352.

This is based on https://github.com/glennw/servo/tree/moz-events

Source-Repo: https://github.com/servo/servo
Source-Revision: 432739164b1f3a117c0aac1dfc97b41018c89b46
2015-03-25 20:00:54 -06:00
Glenn Watson
262629a3e4 servo: Merge #5339 - Add mozbrowser events for location + title change (from glennw:moz-events); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 644dc405863cc5cdf7c562588cdd05c40d00ee35
2015-03-25 13:39:49 -06:00
Nicholas Nethercote
dab428b57b servo: Merge #5335 - Move profiler code from util into a new crate profile (from nnethercote:profile-crate); r=glennw
- Most of util::memory has been moved into profile::mem, though the
  `SizeOf` trait and related things remain in util::memory. The
  `SystemMemoryReporter` code is now in a submodule
  profile::mem::system_reporter.

- util::time has been moved entirely into profile::time.

Source-Repo: https://github.com/servo/servo
Source-Revision: d1268ec9c6633684270015e7b2619181aeb47b8b
2015-03-24 03:15:49 -06:00
Glenn Watson
99fb8dc2ab servo: Merge #5333 - Ensures that iframe navigation updates the parent iframe element subpage id (from glennw:fix-iframe-subpage); r=jdm
This fixes the case of clicking a link in an iframe, going back, then clicking the link again.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2f85c5bb502c2582d34772db979e27c741ee76e3
2015-03-23 23:03:45 -06:00
Glenn Watson
57e4f960bb servo: Merge #5332 - Fixes a bug where the window size may not get passed to a new root pipeline (from glennw:fix-root-window-rect); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: cad58b3bec03586fd7d81e6fa45831803efd2350
2015-03-23 21:45:46 -06:00
Glenn Watson
b3a06d687a servo: Merge #5281 - Experimental implementation of (a small subset of) mozbrowser APIs (from glennw:mozbrowser); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1f682d878db99651bfd26b8a28b57895f2238f87
2015-03-22 21:36:51 -06:00
Corey Farwell
0d30e3a9ed servo: Merge #5259 - A few Constellation cleanup commits (from frewsxcv:constellation-cleanup); r=glennw
I messed up #5255

Source-Repo: https://github.com/servo/servo
Source-Revision: 075f667ce7fe3d94e9013768449a93ff3155c307
2015-03-20 15:57:45 -06:00
Ms2ger
f4ea3a3dd0 servo: Merge #5256 - Upgrade rustc to d3c49d2140fc65e8bb7d7cf25bfe74dda6ce5ecf/rustc-1.0.0-de (from servo:rustup_20150311); r=jdm
...v.

Relies on:
* https://github.com/servo/rust-geom/pull/72
* https://github.com/servo/rust-glx/pull/10
* https://github.com/servo/gleam/pull/15
* https://github.com/servo/rust-mozjs/pull/137
* https://github.com/servo/rust-core-text/pull/35
* https://github.com/servo/rust-io-surface/pull/28

Source-Repo: https://github.com/servo/servo
Source-Revision: 99cf9dbfc107bacb84dfe5afa9539a0ede3beac2
2015-03-18 11:25:00 -06:00
Glenn Watson
5943bb91ad servo: Merge #5249 - Add support for selecting which frame is requesting a navigation (from glennw:iframe-navigate); r=jdm
This allows iframes to navigate their own history.

Source-Repo: https://github.com/servo/servo
Source-Revision: 755581ff54a6f55ff7b8cdf88e09f8f3ff8dd33a
2015-03-17 16:21:48 -06:00
Glenn Watson
447809c244 servo: Merge #5248 - Ensure that clicking a link in an iframe gets the existing iframe rect (from glennw:fix-subpage-reflow); r=jdm
Otherwise, the new iframe may not get a valid window size until the parent frame does another reflow.

Source-Repo: https://github.com/servo/servo
Source-Revision: b4b2c63c11a38ebda3eb3235af6ffa2413a73cf1
2015-03-16 23:51:49 -06:00
Nicholas Nethercote
9f66ff8f0d servo: Merge #5193 - Add memory reporting infrastructure and use it to measure the display list (from nnethercote:measure-display-list); r=jdm
These changeset implements the beginnings of fine-grained measurement of Servo's data structures.

@pcwalton, @jdm: are you likely reviewers for this?

Source-Repo: https://github.com/servo/servo
Source-Revision: f093620922621e1877393b03968ed0ce767fdf12
2015-03-16 21:33:50 -06:00
Glenn Watson
3329cf6c60 servo: Merge #5205 - First (and biggest) part of refactoring constellation to support iframe navigation (from glennw:iframe-nav); r=jdm
The history is now recorded per frame, but needs to be exposed in a followup PR.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1092ca10192c79b4b96c25985a2c6245d369090b
2015-03-16 17:54:50 -06:00
Glenn Watson
82955f4d72 servo: Merge #5192 - Remove now unused id field for frame tree (from glennw:remove-frame-id); r=Ms2ger
This will be re-introduced in a follow up PR with a different usage, but I'm trying to create small, independent PRs that are easier to review than one large change.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6ba3014d9b413d5d1d9911833e3ac08ecf97d65a
2015-03-11 03:45:47 -06:00
Glenn Watson
5eddd30761 servo: Merge #5189 - Make change page url message consistent with other compositor messages (from glennw:page-url); r=larsbergstrom
This doesn't have any effect on functionality, it just simplifies a few upcoming changes with how FrameIds work.

Source-Repo: https://github.com/servo/servo
Source-Revision: e581648c75a55a5939a16f4089295154e38dbc23
2015-03-10 18:12:47 -06:00
Josh Matthews
e85140b16c servo: Merge #5118 - Async document loads (from jdm:pageload); r=Ms2ger
Rebased and improved version of #4967.

Source-Repo: https://github.com/servo/servo
Source-Revision: 72f8898990f06e7f505eeaf9cfa671740c60395d
2015-03-03 16:03:45 -07:00
Glenn Watson
5b130f0345 servo: Merge #5065 - Fix making an iframe visible when it was initially set to display:none (from glennw: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.

Source-Repo: https://github.com/servo/servo
Source-Revision: 891dd496e3994a96dc76ce247623be6c32a073fb
2015-03-02 15:30:52 -07:00
Pawel Kondzior
231cf5701f servo: Merge #4960 - Add thaw/freeze messages that can suspend/resume webcontent timers #4907 (from pkondzior: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

Source-Repo: https://github.com/servo/servo
Source-Revision: a3ea3eed47713a4a6faa86c575bc2ac95c5fe135
2015-02-23 21:45:46 -07:00
Ruud van Asseldonk
02a3afe5ec servo: Merge #4925 - Remove glob re-exports in devtools_traits/lib.rs (from ruuda:devtools-traits); r=jdm
This resolves #4921.

Source-Repo: https://github.com/servo/servo
Source-Revision: 40eff84ae1220c3d596cddf4fb789763b71bcb38
2015-02-13 09:06:53 -07:00
Ms2ger
02ab4f60c3 servo: Merge #4922 - Fix some warnings (from servo:warnings); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 66f4faf44fbc6e8703d4336219a20dd3b19fb493
2015-02-13 05:33:49 -07:00
Simon Sapin
8fbd363d52 servo: Merge #4893 - Upgrade to rustc ba2f13ef0 2015-02-04 (from servo:rustup_2015-01-31); r=Ms2ger,glennw
Ready for review.

Final link step on android fails, but we know how to fix it and will add it to this branch soon.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2cc08f289ab909de44fa09a07b2c43b70ce379b9
2015-02-11 17:24:45 -07:00
Ms2ger
0a912ace80 servo: Merge #4887 - Import net as net rather than servo_net (from Ms2ger:servo_net); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e3a4d493117ffd09ce75270b36012845ebb9c08c
2015-02-10 05:15:45 -07:00
Ms2ger
f3a69a15a3 servo: Merge #4886 - Import msg as msg rather than servo_msg (from Ms2ger:servo_msg); r=saneyuki
Source-Repo: https://github.com/servo/servo
Source-Revision: 29d3b872de4abb693b75e71fc0b987c52b0fd1f6
2015-02-10 03:51:46 -07:00
Glenn Watson
7788241b2b servo: Merge #4842 - Implement window.frameElement, change window.parent to make use of it (from glennw:window-frameelement); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: d0f61f4f85acda3da2f0bbcccc5949f185f94373
2015-02-07 04:51:41 -07:00
Glenn Watson
f40e7fbf39 servo: Merge #4811 - Implement window.parent for iframes (from glennw:window_parent); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 0beb070d482323889556276b122624a2b14cd08b
2015-02-04 15:24:50 -07:00
Keith Yeung
9c9c344a4b servo: Merge #4822 - Modified constellation key event handler to deal with missing frames (from KiChjang: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.

Source-Repo: https://github.com/servo/servo
Source-Revision: 58a3cdcbef30e04199d33dc83cea0ace3e2cfcf1
2015-02-04 10:06:56 -07:00
Ms2ger
155838196e servo: Merge #4766 - Import the util crate as util rather than servo_util (from Ms2ger:util); r=Manishearth
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: 27e0f16407629422b5e047e067d458142372c97e
2015-01-29 05:12:49 -07:00
Josh Matthews
b11f7d94dc servo: Merge #4719 - Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev (from servo:rustup_20150109); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3f9012864a2cd927cf17a8e11dfa6922add1b7df
2015-01-27 18:15:50 -07:00
Ms2ger
0b22e8f634 servo: Merge #4703 - Pass a String to spawn_named (from servo:task); r=saneyuki
IntoString has been removed from Rust, and named() will take a String, so
there is no good reason to do otherwise here.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8df0ee2bb5d40e4b22db1666982e2e5ea36513f6
2015-01-21 03:48:49 -07:00
Martin Robinson
ee761dce30 servo: Merge #4668 - Fix set_ids naming in Constellation (from mrobinson:constellation-cleanup); r=glennw
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: 49c949803a96d675ea5ba6ab0426e06ababf0356
2015-01-19 20:33:45 -07:00