For now, this can only be tested by replacing `resources/certs` with `resources/cert-google-only` (an Equifax certificate -- will work for Google but not Wikipedia or Stack Exchange)
I can replace the error page with something less frivolous, but since we already have the "I tried" star (and this stuff is the job of the chrome anyway), I thought this would be more fun to have.
This also contains a partial hyper upgrade.
Fixes#4119
Source-Repo: https://github.com/servo/servo
Source-Revision: 2010fbf0ddabdaf3bcb52c5f2075e7d994fc63ec
...id 'DOMRefCell already mutably borrowed' messages. This is just a temporary fix until the Rust standard library allows borrowing already-borrowed RefCell values during unwinding.
It also removes LiveDOMReferences destructor that it's a no-op but it contains an assert that was being violated causing an endless cycle of destructor calls ending up in a stack overflow.
Source-Repo: https://github.com/servo/servo
Source-Revision: a7e29939a1df679bd865573dc71f7ba65f0268c4
CSS-TEXT-3 § 7.3.
`text-justify: distribute` is not supported.
The behavior of `text-justify: none` does not seem to match what Firefox
and Chrome do, but it seems to match the spec.
Closes#213.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 7359f99f201a359aaebf334a1787d1975c9fa7d4
This is the Rust style, and there's no reason to deviate here.
Source-Repo: https://github.com/servo/servo
Source-Revision: d026457fdde615bd3185abeda0e844bd42a7805a
This is the Rust style, and there's no reason to deviate here.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8f351cdc3209c0be2e02b9d08fef502eb7aa04ec
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
This patch also makes Servo not crash when
`generated_containing_block_rect()` is called on a list item (as, for
example, GitHub does), and for good measure I added the fix to other
flows as well.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 221a343883f510c7743908136438f5ed40bd17ed
Only the one-value syntax is supported for now.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: c8e68fa45c43856f7ffbdde25b6e68571ad288bf
As discussed in a previous weekly meeting, this avoids changing any directories outside the repo, which is better for some automation scenarios.
The servobuild.example file has a "cache-dir" setting that restores the previous default location of `~/.servo`, which is useful for developers working with multiple clones on the same machine.
I'm not sure which setting we want to use for our buildbot hosts.
r? @metajack or @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 74e32d119c864f527510a3ca008f88c26818df0b
'oblique' font-style is not supported now.
When I checked freetype.h, same macro is used for italic and oblique.
/* FT_STYLE_FLAG_ITALIC :: */
/* Indicates that a given face style is italic or oblique. */
So, when font style is 'oblique', enable flag for italic.
With tests/html/test_italic_bold.html, it works well.
Source-Repo: https://github.com/servo/servo
Source-Revision: c2076d707e85c0b197c6fde286b1799a80de4d80
Fixes#4125
Conforming to section 5.5 (Rounded Corners/Overlapping Curves) of "CSS Background and Borders Module Level 3", border radii on elements whose border curves would have overlapped are uniformly scaled down to the point that they no longer do.
http://dev.w3.org/csswg/css-backgrounds/#corner-overlap
Source-Repo: https://github.com/servo/servo
Source-Revision: 6dc2b895b877b2455ac8cbc5239b9c2f314f4fda
This will allow us to make it Send after the Rust upgrade.
Source-Repo: https://github.com/servo/servo
Source-Revision: d9c2bfae8764d9f7813a6b6e9267102625e3d7b8
The majority of this change is simply re-arranging the code in the glutin port so that the windowed/headless code is configured at build time rather than runtime. There shouldn't be any functional difference as a result of this change.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1b496d80dec4f202e0f318ee60ac156ad74256ff
This will allow us to make them Send in the future.
Source-Repo: https://github.com/servo/servo
Source-Revision: ad328fda65e6b7180de8b47f0964fe2f94c505a9
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
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
This change makes glutin the default windowing system on mac/linux.
If you run into any issues with the glutin system, you can temporarily
build the GLFW system with the following command:
cd components/servo
../../mach cargo build --no-default-features --features=glfw
Once any glutin related issues have been sorted out, the GLFW
port will be removed.
Source-Repo: https://github.com/servo/servo
Source-Revision: ccf5f96fa91540ca73cfb24dd130d5124975fc6e
Avoids duplicated code when implementing the CSS properties accessors in
CSSStyleDeclaration WebIDL. Servo internal CSS properties are not
accessible.
CSS property "float" is unnacessible because we currently lack support
for BinaryName IDL annotation (#4435).
Fixes#4429, #4430.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1e85bb67b24483d08edfdc868454fd86dee3ece8
Needs to be updated for arch / fedora too, but I'm not sure what the relevant packages are.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0a787ddb671afda148734c6e499bce29fc33a743
The Rust style guide suggests 100, but we have too many violations in the
tree already. This check can be tightened over time.
Source-Repo: https://github.com/servo/servo
Source-Revision: ee94b3e8bf659c847bda967700272f8f98fdb0cc
Fixes#4622
Previously, when the edit point was being clamped leftward by a shortened
line, it would be placed one one character too far to the left instead of
at the very end.
The "if" removed here was introduced in f686943eb40aa25e0a06837eeae6a907d9617d2b to fix a crash, but the underlying reason for the crash was the incorrect "- 1", which has been there since the beginning ( 80764f65e3e4895d3a012d6bc1d3bb8183ae15da ).
Source-Repo: https://github.com/servo/servo
Source-Revision: 9844ec907e61793eee442d0f18c80c7c6e9534b2
fixes#4603
- Add definition to the Element.webidl and implementation to element.rs.
- Create inclusive_ancestors helper in NodeHelpers
- Update test expectations
Source-Repo: https://github.com/servo/servo
Source-Revision: ea83ffdb980d290a910e78b96c3f056280487ac7
We no longer need to implement from_azure_surface in Servo, now that
rust-layers is handling more of the glue between rust-layers and Azure.
Source-Repo: https://github.com/servo/servo
Source-Revision: efae66bccb116ddf41857436718ef1556243a3f2
Please bear with me. This is the first Rust code I've ever written and the first systems programming language I've ever used.
I've added unit tests for all methods of TextInput ( - except `handle_keydown`). I probably didn't cover all cases - I don't know if this is a real requirement until we have some coverage tools which identify all missing cases easily.
If someone could show me how to create a `KeyboardEvent` easily I could add another test for `handle_keydown`.
Other questions:
1. Running `$ time ./mach test-unit -c script test_textinput` takes `3m29.536s` on my MacBook Pro (2012). Any hints on speeding this up?
2. Who is responsible for the feedback of the unit tests? It would be nice if the output could be colored (e.g. make `11 passed;` green, `0 failed;` red and so on.)
Source-Repo: https://github.com/servo/servo
Source-Revision: e7d79842a85dfa8eaee8c2f441977edbf061bbed
Rebased version of #4399 that addresses points 2 & 5 from https://critic.hoppipolla.co.uk/showcomment?chain=9848 . Introduction of an AutoJSAPI equivalent and setting the error reporter to null will come later, as they are much larger changes and we're currently blocking any further updates to rust-mozjs that are unrelated to error reporting.
Source-Repo: https://github.com/servo/servo
Source-Revision: 4bb5822f9189b7c04101ba2fdfc99535ecd4bc27
After this patch somebody just needs to implement the new IndexedGetter (and probably frames/length) on window to fix#4589.
Source-Repo: https://github.com/servo/servo
Source-Revision: a227faa41610cdc826da4ec8d25839c2ec3061db
`background-blend-mode` is not yet supported because we don't support
multiple backgrounds yet.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: e6fe9f14092251b0d1a8c97473dda9b5d73679cd
We do not intend to implement the DOM in JS, so this code isn't necessary.
Source-Repo: https://github.com/servo/servo
Source-Revision: 665f0e9c77292a42aa5a939bd31886e3f371419e
With the latest rustup, we can use std::io::File since as_raw_fd() is available.
Source-Repo: https://github.com/servo/servo
Source-Revision: d9a26ad595ee94361ce20064355fd77061eda625
iframes added or loaded via script are not reflected visibly in the content of a page. The next step in making this happen is to have compositor layers accurately reflect newly recreated or loaded iframes. This change allows iframes to appear, but there are still some further changes necessary to make the output correct and reliable.
Source-Repo: https://github.com/servo/servo
Source-Revision: 16c2025a4e30121baebde348e3c3f0e6ed197667
Clean up compositor data structures and fix timing issues that cause Compositor panics.
Source-Repo: https://github.com/servo/servo
Source-Revision: c1d218cf0260da4e0642e2ea5b73823de79aa2c7
Fixes#3758
Store the sandbox attribute of HTMLIFrameElement as a TokenList
internally. Use .tokens() to iterate over the tokens instead of
splitting on the string value.
The external interface for sandbox remains a DOMString, which will need
to be fixed when DOMSettableTokenList is implemented (#1717).
Source-Repo: https://github.com/servo/servo
Source-Revision: ebb702ab943a6baa971d316bf0e7a773d84b3710
Content of the canvas is drawn, tests/html/test_canvas.html now works.
Source-Repo: https://github.com/servo/servo
Source-Revision: da400a7a453eacf6f3089cc07e5dc61f385a0909
`blur` and `drop-shadow` are not yet supported, because the
`text-shadow` PR makes some fundamental changes to blur rendering that
are needed first.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: ffdbf29db28ba334e8baf8d35141b5e8ad289459
This simplifies calling it substantially. Also avoid unnecessarily
changing the PaintTask epoch when we don't have paint permission.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0b06aeebe3e39374bcd9e31b4f948461c0ed1d0e
As a first start, this allows them indiscriminately where used.
Source-Repo: https://github.com/servo/servo
Source-Revision: f74d5360ba30ec7aaa12f675eb267fd11053d8a8
Fixes#4573 Replaces the boolean argument of TextInput::adjust[horizontal | vertical] with enum to self document the code
Source-Repo: https://github.com/servo/servo
Source-Revision: 3e8cab758e3154d0df91aa4c4e1f8a22093ddeb2
My local android build is a bit wonky so I'm not sure if all warnings have been fixed, though. I'll try to poke around and fix it.
Source-Repo: https://github.com/servo/servo
Source-Revision: d9751c0fbb13d04b27c42a9ba5065b5af26f1286
Notes:
* This adds `#![allow(missing_copy_implementations)]` to components/*/lib.rs. I'm not sure how to approach the missing Copy warnings (are there things for which Copy should NOT be implemented, and how can I tell?) so I stuck this in to make life easier when looking through the warnings. I can easily remove this if necessary.
* This leaves the following type of warnings, which I couldn't figure out how to approach (I'll investigate it later if no one else wants to).
```
css/matching.rs:72:23: 72:35 warning: use of deprecated item: Use overloaded core::cmp::PartialEq, #[warn(deprecated)] on by default
css/matching.rs:72 this_as_query.equiv(other)
^~~~~~~~~~~~
css/matching.rs:95:10: 95:49 warning: use of deprecated item: Use overloaded core::cmp::PartialEq, #[warn(deprecated)] on by default
css/matching.rs:95 impl<'a> Equiv<ApplicableDeclarationsCacheEntry> for ApplicableDeclarationsCacheQuery<'a> {
```
Source-Repo: https://github.com/servo/servo
Source-Revision: 0793137631cbe4ebbff8fb85639206ce8e41bbb7
Like Gecko, we treat `geometricprecision` the same as
`optimizelegibility` for now.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 1a021f66354d9b6c14f76178d803185e50ad87d3
These names no longer reflect what the messages do, so rename them to
SetFrameTree, AssignPaintedBuffers, and CreateOrUpdateBaseLayer.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1458709247586fcb3c14cd9132b735ff3080bf07
Didn't do the `Vec<Temporary<T>>` banning since we might want to whitelist something there. I'll work on that next.
Source-Repo: https://github.com/servo/servo
Source-Revision: ec474ae835586c14ec4e1fb72196f2bc211f865f
When invoking `./mach cargo` the following error appeared
```
Error running mach:
['cargo']
The error occurred in the implementation of the invoked mach command.
This should never occur and is likely a bug in the implementation of that
command. Consider filing a bug for this issue.
If filing a bug, please include the full output of mach, including this error
message.
The details of the failure are as follows:
TypeError: can only concatenate list (not "NoneType") to list
File "/home/tj/servo/python/servo/devenv_commands.py", line 24, in cargo
return subprocess.call(["cargo"] + params,
```
it seems to be that all that's missing is checking whether params is None or not.
Source-Repo: https://github.com/servo/servo
Source-Revision: 3639c4e9818c5421659827b1da1844a9bbb792be
This was making `box-shadow` not show up in many cases, in particular,
but the effects were not limited to that.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 499d17f564d699e5e290e8a3859f64e7536827a7
In particular, this contains changes to qualify enums where rust will require it, and to stop using some features that will be removed.
Source-Repo: https://github.com/servo/servo
Source-Revision: ba8cf6b0e6145265f9472d4855f078d8b5943fe7
A lot of tests were failing when I ran `./mach test tests/wpt/web-platform-tests/workers --processes=4` and
`./mach test tests/wpt/web-platform-tests/XMLHttpRequest --processes=4` on master. So I could not completely test it. I verified that the tests that were failing were the same, before and after the change.
Is there any way to run it here?
Source-Repo: https://github.com/servo/servo
Source-Revision: 076e28795d90a9a8bb523774b993f841602ae9e6
This prepares for the rust upgrade currently being conducted.
Source-Repo: https://github.com/servo/servo
Source-Revision: e8fac3681b690adb0796b2a807ac95bd9c13597a
It is possible for a PaintTask to start exiting soon after sending new
buffers to the compositor. In that case, the compositor should return
the now unnecessary buffers to the PaintTask so that it can properly
free them.
To accomplish this, the compositor now keeps a hash map of paint task
channels per pipeline id. When a PaintTask exists, the constellation
informs the compositor that it can forget about it. Additionally, the
PaintTask should not wait for any buffers when the engine is doing a
complete shutdown. In that case, the compositor is already halted and
has simply let all buffers leak. We pipe through the shutdown type when
destroying the pipeline to make this decision.
Fixes#2641.
Source-Repo: https://github.com/servo/servo
Source-Revision: a31acffb0405b2c38b39c39c6d552f2ba79b6326
This is a start towards fixing #3868. Not all callers have been fixed yet, so the `Deref` implementation remains for now.
Source-Repo: https://github.com/servo/servo
Source-Revision: 141b5d038fad3c0c44a6f1b309b8ca9edea54580
This method is deprecated in rust master; removing its users in advance will
make a future rust upgrade smoother.
Source-Repo: https://github.com/servo/servo
Source-Revision: a61417e2a87004e30e2a02f2e6ae58629062e3d5
A follow-up for issue #1820, adds the optional "type" support.
Source-Repo: https://github.com/servo/servo
Source-Revision: 111a196e9d300164391d12ab292c1d4c0ef2b44a
Note that I had to change some expectations to make them pass.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5d8ec549597de4af1008ee1395f89adbcf40fdb8
This fixes the following warning:
```
display_list/mod.rs:735:20: 735:30 warning: use of deprecated item: Use `Int::zero()` or `Float::zero()`., #[warn(deprecated)] on by default
display_list/mod.rs:735 let zero = Zero::zero();
^~~~~~~~~~
```
Source-Repo: https://github.com/servo/servo
Source-Revision: de3cff0e08bb93bad0c317ba4fe130a8a89cdb55
This is a short update to ORGANIZATION.md. Since I just join this project, and cannot find the entry point described in this doc, so I search git log to figure out the description of each file and directory.
Any comment is welcome.
Source-Repo: https://github.com/servo/servo
Source-Revision: d98062e2d4bf87d1ac24ce28e638d132cada812d
This replaces the specialized TrustedXHRAddress and TrustedWorkerAddress code that was used for the same purpose. A non-zero refcount pins the given DOM object's reflector and prevents it from being GCed even when there are no other outstanding references visible to SpiderMonkey. This will enable us to implement asynchronous operations that refer to particular DOM objects (such as "queue a task to fire a simple event named load at the iframe element" from the spec) safely and conveniently, and paves the way for things like asynchronous network responses.
Some concerns about the resulting size of XHR progress messages have been expressed, but I believe optimizations to reduce that can be implemented in subsequent PRs.
r? @Ms2ger - note in particular the changes to the worker lifetime code. I couldn't figure out how to achieve an identical lifetime to the previous addref/release pairing, and I also was having trouble figuring out why the existing setup was safe. The new implementation now holds the main script task Worker object alive via the TrustedWorkerAddress field in the dedicated worker global scope, which is a significant difference.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2c259f477c41331e66beab8bda865971982a1ff4
Now `#[dom_struct]` also generates Reflectable impls, and there's another lint to ensure that a DOM struct only contains one bare DOM field (as the first field) or a Reflector.
A lot of this was generated by sed -- each autogenerated change has its own commit for easy review; these will be squashed later.
Source-Repo: https://github.com/servo/servo
Source-Revision: 56d1b16d1b3a18d5ffa1d9c32562d3b209851711
`str::to_string()` goes through a `Formatter`, `str::into_string()` is a direct copy and is apparently 5× faster.
This is a rebase of the boring and bitrot-prone parts of #4366.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9857ea26cb9ee262654bee97322dbbf373486bff