Commit Graph

35 Commits

Author SHA1 Message Date
Anthony Ramine
065f27b190 servo: Merge #16010 - Properly coalesce whitespace when given a reference child (fixes #15979) (from nox:h5e); r=KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: 32784c5fa8f30f007a45122dae5ae16d06d1733d
2017-03-17 04:25:20 -07:00
Anthony Ramine
690d4ab6e5 servo: Merge #15987 - Fix a couple of HTML parsing issues (from nox:h5e); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 47f0b4155cb2925dc0702aedf1a539b5ac22a286
2017-03-16 17:36:00 -07:00
Mukilan Thiyagarajan
8c2fe2e716 servo: Merge #15938 - Implement the form owner concept (from servo:form-owner); r=nox,jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ed98cb9c0a0ce66e2580773c0716ce86fa1f5377
2017-03-15 09:16:08 -07:00
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
Connor Brewster
a2ecca5cf6 servo: Merge #15438 - Add ImmutableOrigin to allow for serializing origins (from asajeffrey:url-serializable-origin); r=jdm
<!-- Please describe your changes on the following line: -->

This PR adds a serializable type `ImmutableOrigin` and a non-serializable type `MutableOrigin`. The immutable type represents an origin with `null` domain, and the mutable type represents an origin with a mutable domain. This separation is needed for implementing setting `document.domain`.

---
<!-- 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 #14892.
- [X] These changes do not require tests because it's a refactoring which will enable other features.

<!-- 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: 78e8c31a4d1890260dda83f2db85672f693c1e97
2017-02-22 09:46:27 -08:00
Anthony Ramine
66ba1d8435 servo: Merge #15303 - Implement document.open and document.close (from nox:open-your-heart-to-eternal-dimension); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: fa60ce62b8770c4658518e4fe66dbb529b9ffd5f
2017-02-03 10:53:46 -08:00
Simon Martin
c48c031ae2 servo: Merge #15285 - Issue #15017: Properly handle and report network errors on page loads (from simartin:issue_15017); r=nox
<!-- Please describe your changes on the following line: -->
This patch fixes how network errors are handled during page loads: they would not be reported and cause crashes before, and do not anymore.

---
<!-- 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 #15017 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes

<!-- 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: f0e21d0bbe38774e6fb2c756a7302f79a86ae717
2017-02-03 06:04:40 -08:00
Alan Jeffrey
5a393b1395 servo: Merge #15120 - Allow windows to share browsing contexts (from asajeffrey:script-windows-share-browsing-contexts); r=jdm
<!-- Please describe your changes on the following line: -->

This PR allows different `Window` objects in the same browsing context to share a `BrowsingContext` object.

SpiderMonkey requires a `WindowProxy` object to be in the same compartment as its `Window`, so when a `WindowProxy` changes `Window`, we have to brain-transplant it. In turn this requires the reflector of a `BrowsingContext` to be mutable.

---
<!-- 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 #13608 and #14843
- [X] These changes do not require tests because an existing test catches this (`/html/browsers/the-window-object/Window-document.html` is now `PASS`)

<!-- 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: 67c182638253211553161495cd2e4570002fd5bc
2017-01-28 20:35:39 -08:00
Alan Jeffrey
c1586c2a52 servo: Merge #14971 - Constellation informs script about documents becoming inactive, active or fully active (from asajeffrey:script-track-active-documents); r=cbrewster
<!-- Please describe your changes on the following line: -->

This PR replaces the current freeze/thaw mechanism by messages from the constellation to script informing it about when documents become inactive, active or fully active.

This means we can now implement |Document::is_active()| which is used in |document.write|.

This PR also changes how timers work: previously they were initialized running, and were then frozen/thawed. This means there was a transitory period when timers were running even though the document was not fully active. With this PR, timers are initially suspended, and are only resumed when the document is made fully active.

---
<!-- 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 #14876
- [X] These changes do not require tests because it's an interal 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: b5c94bad371114ab9f03e910f66c00a042997fc2
2017-01-27 16:30:37 -08:00
Anthony Ramine
037927e6a8 servo: Merge #15220 - Kill ServoParser::pipeline (from nox:kill-parser-pipeline); r=SimonSapin,jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ba7696ebc64c1a73aee1547fcea8b75b2a1eb4b1
2017-01-27 04:19:24 -08:00
Anthony Ramine
1702341d8a servo: Merge #15128 - Simplify how we handle script scheduling and delaying the load event (from nox:load-fixes); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 830fe189adfa93a09af5e4018a110a718a8a95cd
2017-01-20 13:41:32 -08:00
Anthony Ramine
5f1d1401b4 servo: Merge #15098 - Mark the page source as loaded only after parsing is done (from nox:load-fixes); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 6272cb5a519d2b5e92ac7112c177043970feedaa
2017-01-19 07:32:45 -08:00
Anthony Ramine
706e835d36 servo: Merge #15072 - Refactor some things related to script loading (from nox:load-fixes); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 80c6383140cfcac0a9ee7363e0a49f1a061a5c84
2017-01-18 02:17:17 -08:00
karenher
69efe04a02 servo: Merge #14963 - Report meaningful line numbers for inline script errors (from jdm:script_current_line); r=asajeffrey
Rebased from #14661.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: eb72c0ec7bc1e3547aa09fbe2ad800310f42989b
2017-01-11 18:11:52 -08:00
Anthony Ramine
f33a8acdaa servo: Merge #14959 - Introduce PendingScript (from nox:pending-script); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: d1bc1a4f1b66ab9f63fa37f649eaf79035e12f8e
2017-01-11 09:37:23 -08:00
Anthony Ramine
6af30460e7 servo: Merge #14928 - Unify text insertion when parsing HTML and XML (from nox:insert); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: f54dd0112bd9e51b21e9a5ee38bb2cfc0326e071
2017-01-10 03:51:47 -08:00
Anthony Ramine
38ca8c334a servo: Merge #14867 - Properly insert text in document when parsing (from nox:a-base-de-popopopop); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: f313e8baffe5a41d839c3e0de28e8cd6e7a4773a
2017-01-07 10:57:36 -08:00
Ms2ger
0df616901d servo: Merge #14647 - Support the 'current' global object (from servo:current-global); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 885d152e92b20bdaeb0d0ad20affd269fc3b55d3
2016-12-29 01:38:19 -08:00
Julien Wajsberg
512238ace2 servo: Merge #14430 - Expose Quirks Mode information in the layout data and code (from julienw:access-quirks-mode-from-layout); r=emilio
<!-- Please describe your changes on the following line: -->
This patch exposes the Quirks (NoQuirks/LimitedQuirks/Quirks) state to the layout subsystem.

---
<!-- 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).
Prelimary work for issue #11704.

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
(Waiting for guidance of where/which tests I could do here)

<!-- 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: 164426a7f90c90652d2d52c5a54be91154d26af7
2016-12-17 13:25:06 -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
Anthony Ramine
15a4fcbbab servo: Merge #14557 - Improve safety or our tracing architecture (from nox:trace); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 87f7b29d65d8a0ad137e38412aef50734b24ea6c
2016-12-12 20:34:51 -08:00
Anthony Ramine
e9a7225287 servo: Merge #14473 - Clean up JSTraceable and how we use it (from nox:raf-safety); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 32c121b6ff4a3f9336e742ecf1a96b187986fde0
2016-12-06 18:31:46 -08:00
Anthony Ramine
cfc2192752 servo: Merge #14423 - Properly mark application/xhtml+xml documents as XML (from nox:xml-document); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 5abbc9f69668f23469a9c01937c68e305fa36cd8
2016-12-01 03:57:14 -08:00
Anthony Ramine
fc2b4c9ed0 servo: Merge #14361 - Implement document.write (fixes #3704) (from nox:write); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 00f30d1b7e0073cd7896eee12ca3832c017993a0
2016-11-29 04:18:43 -08:00
Anthony Ramine
3932728ed8 servo: Merge #14250 - Make ServoParser::pending_input hold onto a BufferQueue (from nox:write); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: fdcf510ac89d728081969b703f9b0b418554e592
2016-11-18 19:46:15 -06: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
Anthony Ramine
c60c0fb4e9 servo: Merge #14201 - Reorganise ServoParser (from nox:write); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 0d22adfd42c870c75b6a8247f3e9d7b362ffbe18
2016-11-14 10:22:25 -06:00
Anthony Ramine
60a6566a9e servo: Merge #14164 - Update html5ever to 0.10.1 (from nox:write); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 990884be20a4f3e2785280ac3fc7d7e68ecf1b00
2016-11-10 13:51:37 -06:00
Simon Sapin
6250c60a7d servo: Merge #14043 - Update to string-cache 0.3 (from servo:string-cache-up); r=nox
Previously, `string-cache` defined:
*  An string-like `Atom` type,
* An `atom!("foo")` macro that expands to a value of that type, for a set of strings known at compile-time,
* A `struct Namespace(Atom);` type
* A `ns!(html)` macro that maps known prefixed to `Namespace` values with the corresponding namespace URL.

Adding a string to the static set required making a change to the `string-cache` crate.

With 0.3, the `Atom` type is now generic, with a type parameter that provides a set of static strings. We can have multiple such sets, defined in different crates. The `string_cache_codegen` crate, to be used in build scripts, generates code that defines such a set, a new atom type (a type alias for `Atom<_>` with the type parameter set), and an `atom!`-like macro.

The html5ever repository has a new `html5ever_atoms` crate that defines three such types: `Prefix`, `Namespace`, and `LocalName` (with respective `namespace_prefix!`, `namespace_url!`, and `local_name!` macros). It also defines the `ns!` macro like before.

This repository has a new `servo_atoms` crate in `components/atoms` that, for now, defines a single `Atom` type (and `atom!`) macro. (`servo_atoms::Atom` is defined as something like `type Atom = string_cache::Atom<ServoStaticStringSet>;`, so overall there’s now two types named `Atom`.)

In this PR, `servo_atoms::Atom` is used for everything else that was `string_cache::Atom` before. But more atom types can be defined as needed. Two reasons to do this are to auto-generate the set of static strings (I’m planning to do this for CSS property names, which is the motivation for this change), or to have the type system help us avoid mix up unrelated things (this is why we had a `Namespace` type ever before this change).

Introducing new types helped me find a bug: when creating a new attribute `dom::Element::set_style_attr`, would pass `Some(atom!("style"))` instead of `None` (now `Option<html5ever_atoms::Prefix>` instead of `Option<string_cache::Atom>`) to the `prefix` argument of `Attr::new`. I suppose the author of that code confused it with the `local_name` argument.

---

Note that Stylo is not affected by any of this. The `gecko_string_cache` module is unchanged, with a single `Atom` type. The `style` crate conditionally compiles `Prefix` and `LocalName` re-exports for that are both `gecko_string_cache::Atom` on stylo.

---
<!-- 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
- [ ] 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: 5b4cc9568dbd5c15e5d2fbc62719172f11566ffa
2016-11-03 11:19:44 -05:00
Anthony Ramine
ccea8d6a25 servo: Merge #13813 - Update html5ever to 0.8 (from nox:h5e); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 9fcc9d9d3f59428bf19f950bd79ab257d59e3d16
2016-11-03 07:20:24 -05:00
Ms2ger
05bd7057b7 servo: Merge #13742 - Use the fetch stack for documents (from servo:fetch-documents); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ba2fb4e2e29125e66ed1d6a129735858604709fc
2016-11-02 03:26:42 -05:00
Anthony Ramine
10c8ab8363 servo: Merge #13801 - Bump html5ever to 0.5.5 (from nox:h5e); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: cbe2f7e53b0f44673f7bb26e6ff114b87b431419
2016-10-17 12:33:36 -05:00
Gregory
7a1dd7e827 servo: Merge #13785 - switch to using DOMRefCell<VeqDeque<String>> for ServoParser::pending… (from gterzian:use_veqdequeu_in_servoparser); r=nox
<!-- Please describe your changes on the following line: -->
The field ServoParser::pending_input should be a DOMRefCell<VeqDeque<String>>, this lets us use VecDeque::pop_front instead of Vec::remove in ServoParser::take_next_input_chunk.

---
<!-- 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 #13690 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] 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. -->

…_input

Source-Repo: https://github.com/servo/servo
Source-Revision: 0b697c108001f70cf0a2aca4855815e579be6838
2016-10-16 05:46:56 -05:00
Anthony Ramine
1682fdb232 servo: Merge #13647 - Unify all rooting traits under RootedReference (from nox:rootedreference); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: cf2a6475cb3d7d98b925e7a235ebf36f6abe883d
2016-10-11 17:00:55 -05:00
Anthony Ramine
e60351619c servo: Merge #13675 - Clean up the parsers into a single interface (from nox:servoparser); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 928e5ad1e5ca4344e69cd8029749ecb623eabd9f
2016-10-11 10:16:23 -05:00