Commit graph

201 commits

Author SHA1 Message Date
Jeena Lee
b2281e107b servo: Merge #13323 - Implement the Fetch method (from jeenalee:fetch); r=jdm
<!-- Please describe your changes on the following line: -->

This PR implements the fetch method, which is described in [the Fetch Spec](https://fetch.spec.whatwg.org/#fetch-method). The expected wpt results are updated as well.

A few comments about the current fetch implementation:
- The fetch method manually calls `JSAutoCompartment` in order to prevent SpiderMonkey from crashing. This may have to change in the future.
- Not all `FetchResponseListener` methods are implemented.
- `net_traits::CoreResourceMsg::Fetch` message takes a `net_traits::request::RequestInit`. However, when the fetch method is called, a `RequestBinding::RequestInit` is given. The fetch method constructs a `dom::request::Request` with the given `RequestInit`, then creates `net_traits::request::RequestInit` from the dom Request object for the fetch message.

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

<!-- Either: -->
- [X] 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: 5996e008a34dd92602acb7bbd3ea41a880053110
2016-09-29 14:28:54 -05:00
Malisa Smith
a170c73a61 servo: Merge #13345 - implement Body for dom::Response and dom::Request (from malisas:malisa-bodyAPI); r=jdm
<!-- Please describe your changes on the following line: -->

This PR adds dom::Response and dom::Request's `Text()`, `Blob()`, `Json()`, and (part of the) `FormData()` functions, part of the [Body mixin](https://fetch.spec.whatwg.org/#body). The corresponding tests have also been updated as passing.

@jeenalee also contributed to this PR, primarily the `Blob()`, `Json()`, and `FormData()` implementations.

---
<!-- 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] 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: a03a5e814a7003ba9697aa37d7492cf9e6425ea4
2016-09-29 06:19:59 -05:00
Glenn Watson
85b62f0bcf servo: Merge #13382 - Add OSMesa headless mode, run WPT against Webrender (from glennw:headless); r=larsbergstrom
Add OSMesa headless mode, run WPT against Webrender.

Source-Repo: https://github.com/servo/servo
Source-Revision: c7e1a575a5225ccfb00a38fb50e052d986c0a78d
2016-09-27 21:46:13 -05:00
Guillaume Gomez
032104d477 servo: Merge #13094 - Put back video metadata (from GuillaumeGomez:the_comeback); r=KiChjang
I updated the `video-metadata-rs` crate: now, no more ffmpeg, just pure rust. The webm format isn't checked yet.

Source-Repo: https://github.com/servo/servo
Source-Revision: 142578f2e9dddadd530a4a436a74cfa411341cb5
2016-09-09 16:28:34 -05:00
Simon Sapin
ec40d2a379 servo: Merge #13134 - Add lots of Arc’s in style, and prepare for using DOMRefCell (from servo:archery); r=emilio
<!-- Please describe your changes on the following line: -->

`DOMRefCell` usage is not there year because of thread-safety questions, but I have this much already that I’d like to land before it bitrots.

r? @emilio

---
<!-- 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 new 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: bbfe38e35f3f6a51009c0411647c89c8b5616357

--HG--
rename : servo/components/script/dom/bindings/cell.rs => servo/components/style/domrefcell.rs
2016-08-31 16:30:56 -05:00
Josh Matthews
1e538847df servo: Merge #12980 - Fix ridiculous DOM proxy getter performance (from jdm:proxychanges); r=nox
This implements the missing shadowing checks that were causing us to take many slow paths when dealing with proxy objects. Verified by running `tests/html/binding_perf.html` before and after and observing a 12x improvement.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12357
- [X] These changes do not require tests because we can't test performance yet.

Source-Repo: https://github.com/servo/servo
Source-Revision: 78344754826e938c004a83a21c898552a8e77b17
2016-08-25 06:31:46 -05:00
Anthony Ramine
766c939965 servo: Merge #12997 - Update Rust to 1.13.0-nightly (3c5a0fa45 2016-08-22) (from servo:rustup); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 6f22251e6599aa529ce024d8618595be765c9a18
2016-08-23 10:09:49 -05:00
Anthony Ramine
cb433752b0 servo: Merge #12955 - Use try_borrow instead of borrow_state (from nox:try-borrow); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 530c36a99ad7faad585bd9998de44b918aa737bc
2016-08-21 00:47:10 -05:00
Emilio Cobos Álvarez
6aef8a7d74 servo: Merge #12863 - script: Disable our dependency in ffmpeg until the media madness is over (from emilio:disable-media); r=larsbergstrom
<!-- Please describe your changes on the following line: -->

r? @larsbergstrom

---
<!-- 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.

<!-- 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: fb7cb92076b42caf3e66b46391e79f551bf4ba88
2016-08-18 11:22:06 -05:00
Anthony Ramine
8d93fbfdac servo: Merge #12854 - Use impl Trait syntax for Node::child_elements (from nox:impl-trait); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 27d082e5779904a5e68e99841ae1511ff126bacd
2016-08-14 08:26:21 -05:00
Anthony Ramine
64c09a7eda servo: Merge #12828 - Update serde to 0.8 (fixes #12659) (from nox:serde); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 9abe9e450b54ef9151bbee1aa0bd2dedb685fa7a
2016-08-12 12:23:10 -05:00
Guillaume Gomez
e9909eaf64 servo: Merge #12186 - Implement video-metadata check (from GuillaumeGomez:video-metadata); r=larsbergstrom,jdm,KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: d053fb16f6519726c14ac4580301df4883e4af23
2016-07-29 17:46:42 -05:00
Ms2ger
e8a467a45c servo: Merge #12649 - Some fixes to the script crate (from Ms2ger:update-script); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 74d3b87c3e79abaf5c64e6e3f06e8a00148ea19d
2016-07-29 04:42:18 -05:00
UK992
7aae8ab4c9 servo: Merge #12588 - Support tinyfiledialogs on Windows (from UK992:tinyfiledialogs); 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

<!-- Either: -->
- [X] These changes do not require tests because only add support for Windows

<!-- 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: 2de3b119a961942943280fa280c50a7a814de583
2016-07-25 08:14:09 -05:00
Rahul Sharma
7fc9b5fc26 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
Guillaume Gomez
72faf336b2 servo: Merge #12419 - Replace AdjacentPosition::parse by TryFrom (from GuillaumeGomez:try_from); r=Ms2ger
Fixes #12387.

Source-Repo: https://github.com/servo/servo
Source-Revision: 902e6322e0d8768acf5349d20e1328e6b15a446c
2016-07-13 00:57:35 -07:00
Anthony Ramine
d5e723e59f servo: Merge #12287 - Remove util::breakpoint (from nox:die-util-die); r=KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: 921f605c0528b087db627f02c94fb71849a40b1c
2016-07-06 15:49:18 -07:00
Eduard Burtescu
da092febcb 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
Dan Robertson
827980c736 servo: Merge #10826 - Add webdriver commands for (Get|Add)Cookie (from danlrobertson:cookies); r=asajeffrey
Add the webdriver commands for GetCookie and AddCookie. In addition the basic messages for sending cookie data back and forth from the resource thread needed to be created and the handlers for those messages were created as well.

Do we plan to have some sort of test suite for the webdriver at some point? At this point I primarily test my PRs with basic shell scripts with a lot of `curl` and `jq`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 054bb381e94b82fad4e502bc0f3229f39195c713
2016-06-26 03:19:14 -05:00
Ms2ger
874621db97 servo: Merge #11754 - Move ServoLayoutNode and related structs to script (from Ms2ger:wrapper-traits-prep2); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: ee8c5c5a67e1181eca163d3cd1189866d230b8f0

--HG--
rename : servo/components/script/reporter.rs => servo/components/script_layout_interface/reporter.rs
rename : servo/components/layout/incremental.rs => servo/components/script_layout_interface/restyle_damage.rs
2016-06-20 12:54:20 -05:00
Zhen Zhang
3979b057f1 servo: Merge #11757 - Implement filter for file-type input's accept attribute (from izgzhen:file-acccept-mime-filter); r=Manishearth
Now the two sides are pasted together with the new version of `mime_guess` landed.

I tested this thing locally with stuff like this:

```html
<input id="input_file" type="file" accept=".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"></input>
<a onclick="open_file();">Click</a>

<script type="text/javascript">
    function open_file() {
        console.log("Open file");
        document.getElementById("input_file").click();
    }
</script>
```

Will WPT be able to handle this automatically?

---
<!-- 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 is related to #11131

<!-- 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: 33bda9c207001b1f4f0676cbab3222218e94e987
2016-06-20 12:06:52 -05:00
Zhen Zhang
d9f7b258af servo: Merge #11716 - Implement Blob URL's DOM interfaces (from izgzhen:impl-blob-url-dom); r=Manishearth
r? @Manishearth

Implement the two functions in `URL` to create/revoke Blob URLs, and related code to approximate our proposed design to make things work together.

<!-- 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 fix part of #10539, related to #11131

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

<!-- 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: 0c9d0eb68575f20a8239bac8204f8e25de0f61d2
2016-06-17 07:26:16 -05:00
Anthony Ramine
ef224b9804 servo: Merge #11506 - Make canvas send their data themselves to other canvas (from nox:slither); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 5a0c98afb2998e7990e1c813f2bc15fe3c191638
2016-06-17 02:07:37 -05:00
Manish Goregaokar
abc4d8d572 servo: Merge #11556 - Make fetch happen (from Manishearth:make-fetch-happen); r=jdm
<!-- Please describe your changes on the following line: -->
Moves XHR over to the fetch backend.

Previous PR: https://github.com/servo/servo/pull/114

---
<!-- 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
- [ ] `./mach test-tidy` does not report any errors (Will fix later)

<!-- Either: -->
- [x] 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: 0c11e8340b26aa86faf9ea40aae253392b338ba3
2016-06-11 19:30:28 -05:00
Patrick Walton
2120477f7d servo: Merge #11680 - script: When using WebRender, keep the DOM-side scroll positions for elements with overflow: scroll up to date, and take them into account when doing hit testing (from pcwalton:wr-overflow-scroll-hit-testing); r=jdm
Closes #11648.

r? @jdm
cc @paulrouget

Source-Repo: https://github.com/servo/servo
Source-Revision: 2d9338085561e7908c80ec7b2dd6d30125489aac
2016-06-11 11:01:36 -05:00
Guillaume Gomez
25d44516ab servo: Merge #11668 - Insert adjacent (from GuillaumeGomez:insert_adjacent); r=nox
Fixes #11622.

r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: da5007ef1c4860a6cdd71ecd1efd9adb630e4890
2016-06-08 08:29:42 -05:00
Anthony Ramine
1a3ce10075 servo: Merge #11640 - Update Rust to 1.11.0-nightly (ec872dc8a 2016-06-07) (from servo:rustup); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 57e086f0fb185e5f6143f5c26d54162c5d07456b
2016-06-08 07:36:55 -05:00
Zhen Zhang
d49903ea92 servo: Merge #11534 - Add Blob URL store (from izgzhen:add-blob-url-store); r=Manishearth
Spec: https://w3c.github.io/FileAPI/#BlobURLStore.

I finally decide to put the store under `ScriptThread` and interpret the "global object" as the script thread itself. The new APIs will be used during the page loading (if scheme is `blob`) and `URL.createObjectURL/revokeObjectURL`.

Related to #11131.

<!-- 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 fix part of #10539

<!-- Either: -->
- [x] These changes do not require tests because it is new stub code which needs further integrating PRs.

<!-- 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: b389ecda67d834de1893c6e7a118c0f0fd713b8c
2016-06-03 13:26:29 -05:00
Ms2ger
ea681c7d99 servo: Merge #11553 - Remove spurious JS_Init call (from Ms2ger:init); r=nox
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] We don't run debug-mozjs tests

Runtime::new() will call JS_Init a second time, leading to an assertion.

Source-Repo: https://github.com/servo/servo
Source-Revision: d191a4754727abe470d39710e7ef47907faf9131
2016-06-02 04:36:56 -05:00
Zhen Zhang
7a309c887c servo: Merge #11221 - Add file backend support for Blob and related (from izgzhen:blob-file-backend); r=Manishearth
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy --faster` does not report any errors
- [x] These changes fix #10851, related to #11131
- [x] These changes do not require tests because the implementation is partial and can't work alone

1. Add new backend to `Blob` and a `BlobImpl` struct to abstract multiple backends
2. Rewrite most interfaces of `Blob` to accommodate the change
3. Change the `read` behaviour of `FileReader`, considering the case when blob is file-backed and not cached

The design is still immature, welcome comments!

- [x] I used `DOMRefCell` to cache the bytes in `BlobImpl`, is it sound?
- [x] The interfaces (like `BlobImpl::get_bytes`) handle requests in a default-to-empty way when the inner `DataSlice` is not cached. It might be possible to handle this condition better.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3d7b17681dc9c20358fda9efc72575feb968cc81
2016-06-01 05:09:21 -05:00
fokinv
b4d36ebe1d servo: Merge #11335 - Add WebBluetooth GATTBlacklist support (from szeged:blacklist); 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 --faster` 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 there are no webbluetooth tests yet.

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: 6b1088234bca2643a993dd8b9b809e8a763c03bb
2016-05-31 20:00:23 -05:00
Anthony Ramine
6c7df3f453 servo: Merge #11465 - Implement window.openURLInDefaultBrowser() (fixes #11292) (from nox:open); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3052e4f478e660a60c01dcd2368607429d423e10
2016-05-27 12:03:56 -05:00
Anthony Ramine
5aa3cb5ed3 servo: Merge #11326 - Move DOMString back to script (from nox:non-geckolib); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 6abcd793d780369767385b01b02ee725d6b10585
2016-05-24 02:07:29 -07:00
Connor Brewster
95730ed890 servo: Merge #11044 - Combine Page into BrowsingContext (from cbrewster:page_to_browsing_context); r=jdm
Fixes #11031.

`Page` and `BrowsingContext` have similar use cases and we decided it would be best to join the two.

This is the ground work for actually using session history in the `BrowsingContext` to implement the History API.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 685dc99e3ef9cf6c88487704709dc13a26812889
2016-05-11 20:53:02 -07:00
Josh Matthews
006edb3c13 servo: Merge #11113 - Trace and finalize BrowsingContext (from jdm:trace_browsingcontext); r=Ms2ger
This is a prerequisite for merging #11044, and is an important correctness fix on its own.

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 91cabf8427ae8a7693a56c11abfd32b5058c21de
2016-05-11 05:43:41 -07:00
Connor Brewster
45d5d547d3 servo: Merge #10840 - Implement alert dialogs (from cbrewster:window_alert); r=jdm
fix #10812

Implements alert dialogs using tinyfiledialogs

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: b4f573db1a4a054f7f991ac19c299a5a10aabad8
2016-05-04 09:10:40 -07:00
Keith Yeung
570d798ed2 servo: Merge #10712 - Support form submission of multipart/form-data (from KiChjang:multipart-form-data); r=jdm
Fixes #7553.

Source-Repo: https://github.com/servo/servo
Source-Revision: 77cb2ca89a87829e7e95fad17ae698c4ae097455
2016-04-30 18:43:30 -07:00
Matt Brubeck
22979e08c6 servo: Merge #10895 - Use byte indices instead of char indices for text runs (from mbrubeck:byteindex); r=pcwalton
Replace character indices with UTF-8 byte offsets throughout all code dealing with text runs.  This eliminates a lot of complexity when converting from one to the other, and interoperates better with the rest of the Rust ecosystem.

For most code this is just a simple replacement of char indices with byte indices.  In a few places like glyph storage and text fragment scanning, it also lets us get rid of code that existed only to map between bytes and chars.

Also includes some related fixes to text shaping, discovered while working on this conversion.  See the commit messages for details.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: cf121ad8dff90b8fa55558ca9bdcbfe29512a617
2016-04-28 20:22:09 -07:00
Ms2ger
2e7b36df9b servo: Merge #10847 - Update rustc (from servo:rustup-20160424); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: caba731da15e468872e41da466b68ea5a327128a
2016-04-26 14:41:54 -07:00
Zbynek Winkler
170606fd25 servo: Merge #10706 - Turn on unused-extern-crates warning (from zwn:unused-extern-crates); r=nox
As discussed in #9256. It should solve second half of the issue.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0a3a50a1293e4e8f3e04161014d03802765140c7
2016-04-22 13:40:38 -07:00
Ms2ger
828c6b2e34 servo: Merge #10750 - Use num's constituent crates (from servo:num); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 89b276c889ce76f8fe43c22779835af138472dac
2016-04-20 20:11:24 +05:01
Josh Matthews
c57148a88d servo: Merge #8658 - Implement origin concept and browsing contextless documents (from jdm:origin2); r=Ms2ger+jdm
These pave the way for implementing other parts of specifications more thoroughly.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9b57d8d686d361c0dfba1056523cbea12abd148b
2016-04-13 15:40:38 +05:01
Rahul Sharma
2c5ce6248a servo: Merge #10342 - Refactors some entities from script_thread into script_runtime (from creativcoder:script-runtime-module); r=Ms2ger
Fixes #10271.

Source-Repo: https://github.com/servo/servo
Source-Revision: 883cde424b61f4a06d52da5448da0095503b29b8
2016-04-06 12:52:21 +05:01
Matt Brubeck
717538ceb7 servo: Merge #10350 - Fix some char/byte bugs in textinput (from mbrubeck:selection-chars); r=SimonSapin
Fixes #9569. r? @SimonSapin or @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: c0bfcc5155ec559e8976d684ac463229a4487277
2016-04-02 20:24:26 +05:01
Jan-Fabian Humann
b60a127aa6 servo: Merge #10291 - #10211: Stop re-exporting webrender_traits WebGL types from canvas_traits (from jfhumann:10211); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 524a004e771b465e3de9ebbc33816e50949d6a25
2016-04-01 01:28:20 +05:01
Matt Brubeck
7f2f49fe54 servo: Merge #10176 - Highlight selected text in input fields (from mbrubeck:selection-range); r=pcwalton
Fixes #9993.  This does not yet allow stylesheets to set the selection colors; instead it uses a hard-coded orange background and white foreground.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: bed91b3334786970c91a47c3bc95889d8675b4d5
2016-03-26 07:47:20 +05:01
Attila Dusnoki
a8c186678e servo: Merge #9838 - WebBluetooth API classes (from szeged:webbluetooth); r=jdm
Basic implementation of WebBluetooth API
API spec.: https://webbluetoothcg.github.io/web-bluetooth/

Source-Repo: https://github.com/servo/servo
Source-Revision: 37574065e0a1a22493bdbf1ce8dd0480aa88c758
2016-03-16 20:32:18 +05:01
Keith Yeung
f7c5861d34 servo: Merge #9217 - Redesign ScriptMsg to be more specific to DOMManipulationTaskSource (from KiChjang:dom-manipulation-msg); r=jdm
This is a large-ish PR that contains the following:
* A new directory is created under `components/script/` called `task_source`, which houses all the stuff for different task sources. Note that the ones that I have now aren't exhaustive - there are more task sources than just the generic ones.
* A `DOMManipulationTaskMsg` which eliminates some usage of `Runnable`s to fire events. Instead, they send event information to the `DOMManipulationTaskSource` and lets the `ScriptTask` handle all the event firing.
* Re-added `fn script_chan`, since I can't think of any other way to give `Trusted` values an appropriate sender.
* Rewrote step 7 of [the end](https://html.spec.whatwg.org/multipage/syntax.html#the-end) to make use of the `DOMManipulationTaskSource`

Partial #7959

Source-Repo: https://github.com/servo/servo
Source-Revision: 740965e39f4d62e5807d21734ed9a7a881eca392
2016-03-11 01:09:27 +05:01
Suvish Varghese Thoovamalayil
932eddd474 servo: Merge #9920 - Remove unused cell_extras feature gates. Fixes #9912 (from vishy1618:issue_9912); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: a96b2360a9e6cfed26c101704fd4c804ed1fcfd3
2016-03-08 16:56:16 +05:01
Simon Sapin
1436e99264 servo: Merge #9903 - Replace usage of deprecated std::cell::Ref::filter_map (from servo:ref-filter-map); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: b6e469cbde0e58bab1b99e8c5ba356be2fc61843
2016-03-08 08:23:45 +05:01