Let's build this incrementally. I implemented a `Blob` that can hold a `DOMString`, and has `size` attribute and `slice(...)` method. I'll finish the rest in later PRs.
Source-Repo: https://github.com/servo/servo
Source-Revision: d2a67abea9f6acd7b0ea29a852bf5029aef3f405
Bootstrapping automatically downloads new Rust and Cargo snapshots as needed into versioned directories, but do not remove now-unused versions. This is the desired behavior for `git bisect` to be usable.
However, this means that old version keep accumulating, taking up disk space. This adds a mach command to remove snapshots other than the ones currently being used. It is never run automatically.
To be safe, the command defaults to only printing what would be removed, and only removes stuff when run with a `-f` argument.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 00298221a6238c4fe4909f68a6616a718908ccf5
The glut makefile will be removed shortly after glutin lands
for android, so we need to build openssl for android elsewhere
in the build process.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2741fd2e139b9cb8e9f14857877f567ecae3bced
--HG--
rename : servo/ports/android/openssl.sh => servo/support/android/openssl.sh
Since default argument to params is None, concatenating it with a
list will raise an error. This behaviour prevents `./mach rustc`
to be called when system-rust is defined in .servobuild.
Currently it will only work when followed by an argument, i.e.
`./mach rustc -arg`.
Testing this patch: `./mach rustc` should not raise an error.
Source-Repo: https://github.com/servo/servo
Source-Revision: 35c13f07bfd6a8973399e75404fa61a6d9aeda00
This exposed some problems in our clipping logic, which was never
properly rewritten for the stacking context reform. The clipping code
worked in terms of a stack of clips, but the new stacking context code
has no concept of a stack of clip regions. Fixing that in turn exposed
some flaky/incorrect tests:
* `borders` had an incorrect reference image, as far as I can tell.
* `negative_margins` had some stray pixels, fixed by changing the text.
r? @mrobinson
Source-Repo: https://github.com/servo/servo
Source-Revision: 40c706b42d9d29ef58913f22da49159796e1b81b
When inserting a node that was already dirtied, the dirtying logic
would short circuit: "This node is already dirty? Great! Then its
parents must be HAS_DIRTY_DESCENDANTS, too! Let's skip that step."
This isn't appropriate when nodes move around the tree. In that case,
the node may be marked HAS_CHANGED, but ancestors may not yet have
the HAS_DIRTY_DESCENDANTS flag set.
This patch adds a `content_and_heritage_changed` hook in the document,
to deal with these cases appropriately.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5c506f7a98368020c7936517f1d8e243c9556937
#4275
* This changeset rename "render"/"rendering" to "paint"/"painting" under `components/`.
* This does not rename words which are used as general browser's working.
* So this doesn't change `reftest.rs`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0b486b12109ab765ecee4cbcc684e5d99e8ad5ad
--HG--
rename : servo/components/canvas/canvas_render_task.rs => servo/components/canvas/canvas_paint_task.rs
rename : servo/components/gfx/render_context.rs => servo/components/gfx/paint_context.rs
rename : servo/components/gfx/render_task.rs => servo/components/gfx/paint_task.rs
This prevents a crash when the script in the javascript URL accesses the
document attribute.
Source-Repo: https://github.com/servo/servo
Source-Revision: ea907c1311051506bc3e7ef6fef8857968c71387
When running commands through Registrar.dispatch, mach does not behave
in the same way it would as if it were running through the command line.
Defaults normally provided through a combination of @CommandArgument and
argparse magic are ignored.
I have some ideas as to how to fix this, but until then, this will allow
`./mach test` to run through test-unit properly.
Source-Repo: https://github.com/servo/servo
Source-Revision: a6768b62446d599b23906eae08845dcb8bbe8853
`self` is never used, so there's no need for this to be a method.
Fixes#4261. @jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3eec780c0050d034c06c3b7b2128401a8b3b1a37
Still need to impl `Activatable` on all activatable elements. I'll probably push those changes to this PR, however they can be made separately as well.
Source-Repo: https://github.com/servo/servo
Source-Revision: 19c69b1625dda46d3c5501292e7e2d0328e400b4
This makes these parameters self-documenting.
This patch does not attempt to push those enums into the data
structures that feed calls to this function.
Fixes#4158.
Source-Repo: https://github.com/servo/servo
Source-Revision: bc7b5b35b44e82dadb35242e39b190b3d1fcba10
Fixes#3918
Can be tested in `tests/html/textarea.html`. Also implemented some content reflecting IDL attributes for HTMLTextAreaElement while I was in there.
There are some major problems with TextInput when Multiple is enabled that I haven't addressed here, but I'm prepared to open up a follow-up issue.
Source-Repo: https://github.com/servo/servo
Source-Revision: a369dcfa01f5ad7634469f3a3b652d7f650129a0
This is the Hyper pull request, plus the set up for OpenSSL on Android to make it merge.
Sean's commits have been reviewed in #4065 (My Android changes were reviewed by Glenn)
Source-Repo: https://github.com/servo/servo
Source-Revision: 6bd9bf979bcfa96ea14e666b59eab01a6d6c373e
Somehow didn't catch this when renaming a variable.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1046839e8cbf049f13d465cf7137e501a83119b9
These files don't exist in the tree, and the codegen doesn't create them, so we shouldn't have them sitting around in .gitignore.
There are h/cpp files sitting around in the bindings codegen directory; I suppose one could make the argument that they're useful for examples, so we should keep them around, too?
Source-Repo: https://github.com/servo/servo
Source-Revision: 590c6e841bb39c6dd5fdfc8434b722f170bcb4a4
This will avoid drawing Arcs if there's no border-radius property set.
Fixes#4127
Source-Repo: https://github.com/servo/servo
Source-Revision: 736d542beb82218e4c4c6eeb8116bc95334d9115
Changes
* Implemented Storage Task
* Used Storage Task in methods of storage.rs
* Updated webstorage test expectations
Pending Changes:
* Handle Storage Event
* Throw QuotaExceededError in case of failure for method setItem
* localStorage as alias of sessionStorage
Source-Repo: https://github.com/servo/servo
Source-Revision: 0d2251510fb9ad8f4974c99cadafbd1a9a81e30f
This adds the infrastructure necessary to support stacking contexts that
are not containing blocks for absolutely-positioned elements. Our
infrastructure did not support that before. This minor revamp actually
ended up simplifying the logic around display list building and
stacking-relative position computation for absolutely-positioned flows,
which was nice.
This will need this PR: https://github.com/servo/rust-azure/pull/112 I have not updated the Cargo.lock file yet because I want the merge commit.
r? @glennw
f? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 68c90e27970808bddcb8c8a4e782bd4405e67a5c
d1b433a3b3bab353f320b2f39fa953ce326d2d55 changed the encoding format for Flows. The root is no longer wrapped inside a `data` field, but instead includes BaseFlow fields directly. This broke the layout trace viewer, which threw an uncaught exception when the `data` property was missing. This fixes the exception, though some functionality may still be partly broken.
Source-Repo: https://github.com/servo/servo
Source-Revision: b2b6d4d0d1e381d038dc5e45cbe74304704934e7
Minor change, added unit test filter to components so that ./mach test-unit [test-filter] works in line with documentation.
I'd personally like to also make filters on the components as well as the tests. This would change the interface (probably to ./mach test-unit [component-filter] [test-filter]), but change is NOT in this pull request.
Source-Repo: https://github.com/servo/servo
Source-Revision: c91e949ed02dc299900ed2c50812d733e6740afb
No actual change in functionality here. I was just unhappy with the way test-ref was singled out before, and realized an obvious fix.
Source-Repo: https://github.com/servo/servo
Source-Revision: 600da2af7e6c886f46d013008d2f933b99a2b92f
Fixes the blank spaces showing up in Wikipedia.
r? @kmcallister
Source-Repo: https://github.com/servo/servo
Source-Revision: 9afdce4405f0f5998c81eae83bbb527d0e95ec8e
Moved all getters from Element to ElementHelpers. Existing ElementHelpers getters `get_namespace` and `get_local_name` were replaced by `namespace` and `local_name`. Callers were updated accordingly. Also the getters are no longer inlined.
3 of the getters needed to be added to RawLayoutElementHelpers as well, to accomodate existing calls directly from Element objects.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9541dcdee271d83834af12c756932697ab0ef5dc
`./mach test-ref` no longer eats the first "-" prefixed argument for test name filtering, instead using an explicit "--name" argument. This should avoid any potential confusion when passing down arguments to servo.
Also allows for ./tests/ref to be included (and trimmed away) for tab completion convenience (`./mach test` has also been updated to take advantage of this when inferring tests from file paths).
(fixes#4091)
Source-Repo: https://github.com/servo/servo
Source-Revision: b87d98e468d6c405dd02625e3e223e2412db8610
Issue: #3144
This PR addresses the second step of the ticket. i.e. move from a 1:1 sniffer:request task model to a shared sniffer task.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1ac79c64da4b14f83fed6ca123a81417b9c0fc87
Fix#4124
This also introduce `BarCast::from_actual()` which is used for up-cast for dom's actual data types (non JS pointer values).
Source-Repo: https://github.com/servo/servo
Source-Revision: 82050d1e535681ea993e4290d02bcf4b9f4ee5a2
This replaces hand-implemented CEF bindings with proper Rust wrappers
automatically generated from the C++ headers. This means that, whenever
CEF's C++ headers change, we can easily generate both the appropriate C
API and the appropriate Rust API. It eliminates much of the hand-written
unsafe code within the CEF port, because the CEF translator tool now
knows how to generate Rust smart pointer wrappers for each class that
corrently perform reference counting.
Additionally, this commit adds utility macros (located in `macros.rs`)
that make it easier to correctly expose Rust objects as CEF objects.
They handle the marshaling of objects between Rust and CEF properly.
The net result of this is that you can write mostly-natural-looking Rust
in the CEF port and interact with it with a natural-looking C++ API on
the embedding side.
This setup relies on the branch of CEF located here:
https://github.com/pcwalton/chromium-embedded-framework
To regenerate, follow the instructions in `ports/cef/README.md`. For
convenience, and because I don't anticipate the API to change much, I
have vendored in all of the appropriate interfaces.
r? @zmike or @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 02c2f53ccd8b75ff0b87edfce4f2f9315a6417bd
Bad HTTP responses now have a 0 status code instead of 200 OK.
Source-Repo: https://github.com/servo/servo
Source-Revision: b56bab4e407b38fa1e58d8be247ecd5f156c89bc
The attribute `value` and the underlying model `TextInput` are not connected to each other, so I just pulled the value out of `TextInput`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 184a3346ab2fb2a4dfd267681af02711cfb6bc44
This allows using `.cargo/config` at the root of the repository for local path override, without risk of accidentally committing it.
However I don’t have the environment to test the Android build. Would this break it?
Source-Repo: https://github.com/servo/servo
Source-Revision: b5d6864de1000d6d54c2d5ebfd90ea9f6a596c54
--HG--
rename : servo/.cargo/config => servo/ports/android/.cargo/config
selector_matching.rs:1263:44: 1263:63 warning: use of deprecated item: Renamed to `get`, #[warn(deprecated)] on by default
selector_matching.rs:1263 assert_eq!(1, selector_map.id_hash.find(&atom!("top")).unwrap()[0].declarations.source_order);
^~~~~~~~~~~~~~~~~~~
selector_matching.rs:1265:47: 1265:79 warning: use of deprecated item: Renamed to `get`, #[warn(deprecated)] on by default
selector_matching.rs:1265 assert_eq!(0, selector_map.class_hash.find(&Atom::from_slice("intro")).unwrap()[0].declarations.source_order);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
selector_matching.rs:1266:41: 1266:71 warning: use of deprecated item: Renamed to `get`, #[warn(deprecated)] on by default
selector_matching.rs:1266 assert!(selector_map.class_hash.find(&Atom::from_slice("foo")).is_none());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'find' function was changed to 'get'. Updated to remove this warning given when running the tests.
Source-Repo: https://github.com/servo/servo
Source-Revision: 7b72ffcbafe6c526f6bf27aee71842b94f62a858
Fixes#4086
Lets `./mach test` take a file or directory as an argument, and infers `test-content`, `test-wpt`, or `test-ref` from the file's path.
Usage Example:
```
$ ./mach test tests/wpt/web-platform-tests/dom/interfaces.html
0:00.27 LOG: MainThread INFO Using 1 client processes
...
```
Note that while there is no functionality for `test-ref` to accept individual files, `./mach test tests/ref` will still trigger `test-ref`.
Passing arguments properly through python would have been ugly (though maybe there are some mach internals I could have taken advantage of), so this instead runs a new mach process and lets the individual test suites manage their arguments like normal.
Source-Repo: https://github.com/servo/servo
Source-Revision: 10f8fe00677c756bd69adcf90b96a7e36bae8f56
Previously, if the attribute was not parsed into a token list, and the
tokens() method returned None, DOMTokenList#contains would silently return
false. This issue was encountered in
<https://github.com/servo/servo/pull/4076> and took quite some time to
figure out.
Source-Repo: https://github.com/servo/servo
Source-Revision: 51aa2fde10daa8c98f5407e35b8abf01bd364788
Updates the way mach mixes unrecognized arguments and predefined arguments (see [mozilla bug 1076649](https://bugzilla.mozilla.org/show_bug.cgi?id=1076649) for details on this change), and also adds support for argument groupings (see [1077272](https://bugzilla.mozilla.org/show_bug.cgi?id=1077272)).
I was running into some annoyances when trying to implement a change that would allow a `--debug` flag to be used in `./mach run` for running Servo through a debugger (basically, the same behavior described under "How do I run Mozilla under gdb?" [here](https://developer.mozilla.org/en-US/docs/Debugging_Mozilla_with_gdb)). This change should make those annoyances go away, and as far as I can tell, it doesn't have an impact on the way any of the existing commands are used.
Source-Repo: https://github.com/servo/servo
Source-Revision: 4a257bc27152bef98068cfdc1433549aab05c5de
Created an `IsInterval` enum to improve readability and remove the need for `true // is_interval`
I'm still fairly new to rust. I briefly looked for a way to implement boolean comparisons of the enum but didn't figure out a way.
Also I'm not attached to any of the names. Let me know what I can fix :)
Source-Repo: https://github.com/servo/servo
Source-Revision: 90007ee781e53f65344a24a0bdbeb86d5c0fe065
Requested by kmc in IRC.
```
11:36 < kmc> while you're mach-ing about, can you modify build-cef to
accept --release like build does?
```
Source-Repo: https://github.com/servo/servo
Source-Revision: a1a268ce1d00c865f14ae76c1d767f905cfc3a92
rust-layers will now avoid sending empty buffer requests which can
cause failures when Servo tries to create empty platform surfaces.
Fixes#4060.
Source-Repo: https://github.com/servo/servo
Source-Revision: b33c31b5748ddfe4f1aec5f0813b47dc74adf604
Fixes#4055
This PR allows `./mach test-wpt` to be run (from /path/to/servo) with a single relative path to some wpt test.
For example:
```
./mach test-wpt tests/wpt/web-platform-tests/dom/sometest.html
```
The argument `tests/wpt/web-platform-tests/dom/sometest.html` is passed on as `--include dom/sometest.html`.
Source-Repo: https://github.com/servo/servo
Source-Revision: e6e73b8da70a6acaeabc1abf13071d044996f103