Commit Graph

26 Commits

Author SHA1 Message Date
Anthony Ramine
6fd1ea43cc servo: Merge #15715 - Make #[dom_struct] a proc_macro attribute (from nox:custom-derive); r=SimonSapin
The rustup is needed for https://github.com/rust-lang/rust/pull/40039.

Source-Repo: https://github.com/servo/servo
Source-Revision: a204c4176dcccdad8ec99d74055c66794c3f64ba
2017-02-24 05:56:30 -08:00
Josh Matthews
22c551f228 servo: Merge #15189 - Implement microtask checkpoints (from jdm:microtasks); r=nox
This generalizes the work previously done for Promise job callbacks. There is now a microtask queue that correctly processes all queued microtasks after each turn of the event loop, as well as after a scripted callback finishes executing, and after a classic script executes.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #4283
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: cbcafd18f4cb5973948b081b4c104d99735e2789
2017-02-03 07:53:17 -08:00
Alan Jeffrey
8e9816b9d8 servo: Merge #14351 - An in-memory RNG that shares its file descriptor (from asajeffrey:servo-rand-share-fds); r=emilio
<!-- Please describe your changes on the following line: -->

This PR implements an in-memory random number generator that only uses an OS RNG for (re)seeding. The OS RNG is shared, so there's only one file descriptor for `/dev/urandom` being used.

The PR also implements a tidy check that we don't accidentally introduce an RNG. Rather annoyingly, there are a lot of transitive dependencies on `rand`, notably hash maps in `std`.

This PR makes it possible to use uuids for identifiers such as pipeline and frame ids.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because it's fixing a resource issue

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 36ddf763f66b1b971db07649ff5c69b2e9fd5f91
2017-01-05 06:32:23 -08:00
Alan Jeffrey
965a687125 servo: Merge #14592 - Remove the util crate (from asajeffrey:util-goodbye); r=mbrubeck
<!-- Please describe your changes on the following line: -->

This PR removes the `util` crate.

* Replaced the `spawn_named` and `clamp` functions by appropriate uses of `std:🧵:Builder::spawn`, `std::cmp::min` and `std::cmp::max`.
* Moved `opts`, `prefs` and `resource_files` into a new `config` crate.
* Moved `remutex` and `geometry` into their own crates.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because they are refactorings

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 4eb653817f87e5fb47de34356f558eb76ecbca9f
2016-12-14 16:48:42 -08:00
Corey Farwell
1623c37a12 servo: Merge #14495 - Rename Reflectable to DomObject (from frewsxcv:reflectable-domobject); r=jdm
Fixes https://github.com/servo/servo/issues/8473.

Source-Repo: https://github.com/servo/servo
Source-Revision: b192ae9db7082346a4a6a985c5557d4cea75d50e
2016-12-08 12:41:08 -08:00
Anthony Ramine
8b94aadcfa servo: Merge #14376 - Make WebIDL static items take a more specific global if possible (from nox:specialized-constructors); r=KiChjang,nox
Source-Repo: https://github.com/servo/servo
Source-Revision: e315da07319c115bd85f7da1baa1cf0577a1980b
2016-11-30 15:43:48 -08:00
Emilio Cobos Álvarez
592972be51 servo: Merge #14246 - Urlmageddon (from emilio:servo-url); r=SimonSapin
<!-- Please describe your changes on the following line: -->

Still needs a bunch of code in net to be converted in order to get more
advantage of this for images and stuff, but meanwhile this should help quite a
bit with #13778.

Still wanted to get this in.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 22aebdf5d41a3509cd6515ccf5edcdf33715a76d
2016-11-17 15:34:47 -06:00
Abelardo E. Mendoza
f930ea16f9 servo: Merge #14096 - 11485 make dom methods taking mut js content unsafe (from fflorent:11485-make-dom-methods-taking-mut-JSContent-unsafe); r=nox
This is a rebased version of PR #11595

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #11485

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because: no code logic was changed

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: f70fc6644ddb142627c188ebbde2cc0a0282f9b4
2016-11-17 02:44:54 -06:00
Corey Farwell
b876af5eb9 servo: Merge #14097 - Add more event names to atom list; use more atom macros (from frewsxcv:hella-atoms); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1e771a80731adff5d26f0f9961469b2fcb15dd83
2016-11-06 15:28:54 -06:00
Corey Farwell
414322041f servo: Merge #14036 - A couple improvements to EventTarget event firing (from frewsxcv:event); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 73c9847ef81e838c970e44c1645209134fddd32e
2016-11-04 06:43:56 -05:00
Ms2ger
ff43bb321c servo: Merge #13961 - Move remaining users of the legacy networking stack to fetch (from servo:sync-fetch); r=jdm
Fixes #13931.
Fixes #13714.

Source-Repo: https://github.com/servo/servo
Source-Revision: 56f4a691dbe3f885b029b7a76924f6018f0894af
2016-11-02 10:59:18 -05:00
Anthony Ramine
e5bfcb23c0 servo: Merge #13596 - Get rid of dom::bindings::global (from nox:inline); r=Ms2ger
Globals in that PR are now represented by the fake IDL interface `GlobalScope`.

Source-Repo: https://github.com/servo/servo
Source-Revision: a6e4b5bb86ad707a0863acff87344ca4239cfd2c
2016-10-07 07:52:09 -05:00
Anthony Ramine
7d200bb697 servo: Merge #13554 - Some cleanups related to globals (from nox:cleanup-global); r=<try>
Source-Repo: https://github.com/servo/servo
Source-Revision: 522734de22ddbbc256cad94d1f07a8149e6e58fa
2016-10-03 04:48:13 -05:00
Vignesh Sarma K (വിഘ്നേഷ് ശ൪മ കെ)
9da0e8fdda servo: Merge #13416 - Replace instances of old ServiceWorker specification URL with new one (from vigneshsarma:issue-13408); r=jdm
<!-- Please describe your changes on the following line: -->

The old specification URL is
https://slightlyoff.github.io/ServiceWorker/spec/service_worker/, which has
been replaced by the new one at https://w3c.github.io/ServiceWorker/.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13408 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because all the changes are in commented parts of the code.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

The old specification URL is
https://slightlyoff.github.io/ServiceWorker/spec/service_worker/ has
been replaced by the new one at https://w3c.github.io/ServiceWorker/.

Source-Repo: https://github.com/servo/servo
Source-Revision: d00639c55f9a342765483d347a3c29d4647f7411
2016-09-25 10:12:30 -05:00
Rahul Sharma
46cffd949e servo: Merge #13292 - Implement ExtendableEvent as base type for ServiceWorker events (from creativcoder:extendable); r=jdm
<!-- Please describe your changes on the following line: -->
r? @jdm

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] These changes do not require tests because refactor

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 83f687a7be2d4cdda11f5ec03133c23d6d621e78
2016-09-17 10:33:03 -05:00
Rahul Sharma
ffa80ae74e servo: Merge #12910 - Implement postMessage for ServiceWorkers (from creativcoder:swsender); r=jdm
<!-- Please describe your changes on the following line: -->

Fixes #12773
r? @jdm

Changes:
* Implements `postMessage` on `ServiceWorker` object.
* Removes unused channels from sw and their scopes.
* Fixes a crash when calling `scope.script_chan()` in sw-scopes event handling.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12773

<!-- Either: -->
- [X] There are tests for these changes at `tests/html/service-worker`

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 0ec4ea4ee188f2e5db9d387d182c34a9d97d07cd
2016-09-15 08:34:22 -05:00
Aneesh Agrawal
ef256065f3 servo: Merge #11698 - Excise SubpageId and use only PipelineIds (from aneeshusa:remove-subpage-id); r=notriddle
<!-- Please describe your changes on the following line: -->

SubpageId was originally introduced in 2013 to help iframes keep track of
their associated (children) pipelines. However, since each pipeline
already has a PipelineId, and those are unique, those are sufficient
to keep track of children.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #11694  (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because refactoring

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 161e0741cd4942d337b8d0fca2e0eaa86482ad9a
2016-09-14 01:45:56 -05:00
Alan Jeffrey
4e5cb0a7ec servo: Merge #13106 - Remove mutex from Trusted (from servo:trusted); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 9e726b4d83fc169c38f176b9958cfb1b66363e8f
2016-08-29 05:00:39 -05:00
Ms2ger
d8a7720e88 servo: Merge #12970 - Move thread_state to style (from servo:thread-state); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 1911606e5c7d81e41b79fa25c41b1d7def7aef62
2016-08-22 10:39:51 -05:00
Rahul Sharma
c3fd74f79a servo: Merge #12682 - Dispatch lifecycle events to service worker object and refactor html tests (from creativcoder:fire-fetch); r=jdm
<!-- Please describe your changes on the following line: -->

Changes introduced to dispatch `controllerchange`, `activate` and `fetch` simple events to Service Worker interfaces. The html tests under `tests/html/service-workers` was also updated to demo the changes.
r? @jdm

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] These changes do not require tests because refactor.
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 20b9ce6cff2a2e553a1eba4bf74d8f58a96b6e65
2016-08-04 01:25:23 -05:00
Rahul Sharma
fb21fc0af8 servo: Merge #12557 - Bring back run_with_memory_reporting in serviceworkerglobalscope (from creativcoder:sw-scope); r=nox
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] These changes do not require tests because its a refactor.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 2aa257f603e73655ccf2375e3ee875a37d707d09
2016-08-02 08:05:16 -05:00
Rahul Sharma
a653a92a58 servo: Merge #12582 - Make the service worker send custom response (from creativcoder:sw-fetch); r=jdm
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] These changes do not require tests because "refactor".

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 3d976cc5932e550e74e186776a1be3aef432232f
2016-07-26 22:54:56 -05:00
Rahul Sharma
cbf85cb5a1 servo: Merge #11727 - Integrate service worker manager thread (from creativcoder:swmanager); r=jdm
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes are part of #11091

<!-- Either: -->
- [X] There are tests for these changes at my [gh-pages](https://github.com/creativcoder/gsoc16/tree/gh-pages) branch to test  the instantiation of service workers by their manager, but will need to discuss how that would integrate into master.

Changes:
- Introduces a `ServiceWorkerManager`, which maintains an map of registered service workers as well as a map of active workers keyed by their `scope_url`.
- Adds the initialization of ServiceWorkerManager, at the `script::init()`, which makes it available as a single entity listening for requests from different script threads.
- Adds a timeout thread in `serviceworkerglobalscope`, which terminates the workers, after a timeout of 60 secs, thereby removing it from the active workers list.
- Adds the matching of scope urls, in longest prefix way rather than path structural way, according to [spec](https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#scope-match-algorithm).
- Make ServiceWorkerManager, the holder of network sender, instead of script thread, so it can send `CustomResponse`.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 513811f6b40d522bc425c2588320b889614f2973
2016-07-18 09:50:59 -07:00
Eduard Burtescu
8567ba029a servo: Merge #11872 - Replace return_address usage for rooting with stack guards and convenience macros (from eddyb:back-to-roots); r=Ms2ger
The existing `Rooted` and `RootedVec` users were migrated the the following two macros:
```rust
let x = Rooted::new(cx, value);
// Was changed to:
rooted!(in(cx) let x = value);
// Which expands to:
let mut __root = Rooted::new_unrooted(value);
let x = RootedGuard::new(cx, &mut __root);
```
```rust
let mut v = RootedVec::new();
v.extend(iterator);
// Was changed to:
rooted_vec!(let v <- iterator);
// Which expands to:
let mut __root = RootableVec::new();
let v = RootedVec::new(&mut __root, iterator);
```

The `rooted!` macro depends on servo/rust-mozjs#272.
These APIs based on two types, a container to be rooted and a rooting guard, allow implementing both `Rooted`-style rooting and `Traceable`-based rooting in stable Rust, without abusing `return_address`.

Such macros may have been tried before, but in 1.9 their hygiene is broken, they work only since 1.10.

Sadly, `Rooted` is a FFI type and completely exposed, so I cannot prevent anyone from creating their own, although all fields but the value get overwritten by `RootedGuard::new` anyway.
`RootableVec` OTOH is *guaranteed* to be empty when not rooted, which makes it harmless AFAICT.

By fixing rust-lang/rust#34227, this PR enables Servo to build with `-Zorbit`.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix rust-lang/rust#34227
- [x] These changes do not require tests because they are not functional changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 80cb0cf8214fd52d2884724614c40cb278ee7575
2016-07-04 11:03:35 -07:00
Corey Farwell
335e26946e servo: Merge #12178 - Refactor util::prefs operations to be methods on static struct (from frewsxcv:prefs); r=emilio
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: b0a8ce5341f5148e36523fee0b0fcbc2684c0a68
2016-07-03 08:19:04 -07:00
Rahul Sharma
d6fcb0dcf7 servo: Merge #11114 - implement related service worker interface and register method (from creativcoder:nav-sw); r=jdm
Fixes  #11091

Source-Repo: https://github.com/servo/servo
Source-Revision: cc017fc0b8619726f0c82649f41fdcf5595b19e4
2016-06-02 06:18:59 -05:00