Basically, instead of trying to check for specific kinds of statements,
just check the types of all local variables.
Also included are some commented-out proposals for some slightly more
aggressive lints which might be useful (but trigger a little too
frequently at the moment).
Source-Repo: https://github.com/servo/servo
Source-Revision: bb88832c078fbb14fa03c413fac1252b2b755015
Canvas is currently given a layer at the stacking context level.
Instead it's DisplayItem should be given a layer directly. This fixes
painting order issues where canvases are painted on top of other
positioned content that is later in tree order. It always simplifies
the code a bit.
Source-Repo: https://github.com/servo/servo
Source-Revision: 22a6884a671da0434fe2b3bf30f50b9133d4c70b
This commit will replace calls to `self.owner.root()` with `self.owner` to avoid unnecessary rooting of JS elements objects.
Ref.- Issue: #8126
Source-Repo: https://github.com/servo/servo
Source-Revision: ff2c7bb47b4303573e48021f5f5af6a0ab6e8e80
I initially used this to correctly handle ranges when their respective containers
are mutated, to get weak references of Range objects. I now realise that the weak
references should be handled at a lower level, closer to the JS-managed object.
Source-Repo: https://github.com/servo/servo
Source-Revision: e3bcf7bab7d0340fc7ebd0e58a2cde34e534c1cf
This tells Glutin's Android and iOS back-ends to send events for more than one
pointer at a time.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 28f4dd4f4806bfc2496bebcdedc3120731f14da2
This implements just enough of [Touch Events](http://w3c.github.io/touch-events/) to enable scrolling on Android without regressing basic single-touch interaction like clicking on links.
Dragging a page will scroll it, unless the page calls `preventDefault` on the "touchstart" event.
Does **not** yet support pinch zooming or other multi-touch gestures or events.
Includes a `-Z convert-mouse-to-touch` command line flag for testing on non-touch platforms. This is also enabled by default on Android because Glutin currently translates touch input to mouse events on Android.
Source-Repo: https://github.com/servo/servo
Source-Revision: dcd207f9bf15c9ecf5d043385ba93277e69201f6
This gives mach the ability to run clippy with `./mach clippy`.
Fixes#8134.
Source-Repo: https://github.com/servo/servo
Source-Revision: 79f300f0387ad8218d06511c429d071cdef0193c
For browser.html, we want to let the top level webpage handle these keybindings.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0d4641b640627da2a6f30b688d728f0a730671f6
Pretty straightforward use of lookup tables to replace a bunch of expensive float operations.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a34decec295563d3b4050bc53daad142450e0d5
This adds the input caret for textareas. Although, it does not handle multiline textareas correctly. The caret gets displayed for each line.
I'll look into that but that will take more time. Some feedback on this small patch would be appreciated though.
Source-Repo: https://github.com/servo/servo
Source-Revision: af6a64e176ec66a9c066e9e7bf40b6ce3ac77b2e
This isn't doing anything right now, and we're not even setting it properly
in dirty_impl the |dirty_subtree(self)| was causing us to hit the skip case
for step 3.
Source-Repo: https://github.com/servo/servo
Source-Revision: 50ec2353845bf2a3971d5b01db37d2c3741d3912
Use `libc::c_char` instead of `i8` for character data since that's more
portable. (Some architectures, e.g. AArch64, have unsigned characters,
i.e. `u8`.)
Source-Repo: https://github.com/servo/servo
Source-Revision: 3342cd9531c1f3c0419a0733b73c65838780a0f7
This is an rough solution to the issue described in #3396. XHRs still do their own thing and an overall clean up is in order. Before I do that, though, I'd really like someone to sign off on the overall idea.
There's one major difference to what jdm layed out #3396: The timers remain with the window/worker and only the earliest expiring one is coordinated with the dedicated timer thread.
That means both the timer thread and the window/worker have to keep track of which timer expires next, which feels a bit wonky. However, the upshot is that there's no need for communication with the timer thread when a pipeline is frozen, thawed or dropped.
Most relvant parts are
- the [`TimerScheduler`](6f5f661958 (diff-74137a6f50ab38e7a1e4d16920a66ce7R73)), which is the new per-constellation timer task and
- the [`ActiveTimers`](6f5f661958 (diff-86707d952414a2860b78bcf6c1db8e2eR34)) which is what's left on the window/worker side.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2de5407cdabef67ed03b2ad4edf4a22541d77875
CanvasFillOrStrokeStyle is only used in a single file,
so it does not need to be a public enum.
Fixes#8105.
Source-Repo: https://github.com/servo/servo
Source-Revision: 252e73ff9b43abdeee4eac37702ef2e3adef0062
Removes all those messy FooCast structures in InheritTypes.rs.
Source-Repo: https://github.com/servo/servo
Source-Revision: 674589c370d978f543e71f995d58c5b28e6e9842
Instead of always promoting iframes to StackingContexts, integrate them
into the display list. This prevents stacking bugs when
non-stacking-context elements should be drawn on top of iframes.
To accomplish this, we add another step to ordering layer creation,
where LayeredItems in the DisplayList are added to layers described by
the LayerInfo structures collected at the end of the DisplayList.
Unlayered items that follow these layered items are added to
synthesized layers.
Another result of this change is that iframe layers can be positioned
directly at the location of the iframe fragment, eliminating the need
for the SubpageLayerInfo struct entirely.
Iframes are the first type of content treated this way, but this change
opens up the possibility to properly order canvas and all other layered
content that does not create a stacking context.
Source-Repo: https://github.com/servo/servo
Source-Revision: 11d23a41b31c2b2846d1e9c6b40e87ba7e2a095f
This is mostly straightforward. I had to modify a couple of places
which were accidentally discarding whitespace.
Fixes#1513.
This fixes some relevant tests from the CSS testsuite... but a lot of
them are either manual, or don't pass because of unrelated issues. (For
example, white-space-mixed-002 renders correctly, but
white-space-mixed-002-ref doesn't because of a float bug.)
I'd appreciate any suggestions for how to go about adding tests for this.
Source-Repo: https://github.com/servo/servo
Source-Revision: c3ab71109ee2ffcc31b40890f4c6739d8f5b1333
Fixes#7867 (and probably several other iframe bugs).
When collecting layers for children of a pipeline, pass through the current
subpage pipeline recursively. This prevents descendant layers (such as scroll
layers) from being collected and re-created on the subsequent paint.
Source-Repo: https://github.com/servo/servo
Source-Revision: 3f4ce134198e398fa94d1e754364b220037e6b49
The URL spec recently changed and the variour "mixins" interfaces are gone,
this commit updates our code and WPT accordingly.
The new expected failures related to HTMLAnchorElement and HTMLAreaElement's
attributes are due to their moving to the HTMLHyperLinkElementUtils interface,
which is not anymore in a separate `<script class=untested>` element.
Source-Repo: https://github.com/servo/servo
Source-Revision: f73cd40282ab79f53b38f2b057677b0423282f32
rval.get() is believed to be always null upon entering this function.
This assumption is verified by the added assertion.
It makes more sense to move the block of code that was moved inside
the if statement which is the only place where it can be initialized.
Fixes#7941.
Source-Repo: https://github.com/servo/servo
Source-Revision: 6111cf9ffcb4427ab9a0966b9a4d0387b3101e7b
Implementing getAttributeNode() and similar methods
Attempting to solve #8066 Does it look good so far @Manishearth ?
Source-Repo: https://github.com/servo/servo
Source-Revision: 2e308e9eccb6c6d31906660bdfcf1a304f85dd56
We can only borrow `JS<T>` from rooted things, so it's safe to deref it.
The only types that provide mutable `JS<T>` things are `MutHeap<JS<T>>` and
`MutNullableHeap<JS<T>>`, which don't actually expose that they contain
`JS<T>` values.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1a376aa75d5de8781b17a673850860f8afd2c28f
`get_input_size ` and `get_input_value ` aren't used in the codebase.
Ref.-Issue: #8063
Source-Repo: https://github.com/servo/servo
Source-Revision: 50ad1b064d6e85e84707d83ca8f4b5b541b6b8da
Just getting my feet wet with Rust here. Please feel free to nit the hell out of it stylistically and idiomatically. :-)
Source-Repo: https://github.com/servo/servo
Source-Revision: ff2151b8bbc62fa29c90a429b7a4f12520420b6e
Well it built successfully this time around 😄 @jdm . Working to solve #7994
Source-Repo: https://github.com/servo/servo
Source-Revision: 23fa9de714662286480b26b28b742a7e23bc91f4
The only reason the Dockerfile was introduced is because the default
machines that Travis uses are based on Ubuntu 12.04, which has some very
old incompatible dependencies with Servo. Docker allowed use to use a
new version of Ubuntu, allowing us to compile with ease. I just learned
that they are currently beta testing 14.04 support:
http://docs.travis-ci.com/user/trusty-ci-environment/
This commit updates our Travis config to remove our dependency on Docker
and just build directly on the images, reducing some complexity and also
overhead of downloading Docker images.
In addition, this commit also enables caching of the .servo and .cargo
directories on Travis in an attempt to reduce build times.
http://docs.travis-ci.com/user/caching/#Arbitrary-directories
Source-Repo: https://github.com/servo/servo
Source-Revision: 628c2a04326b27ac2743771dca52612c8ce30ad2
Hi. added some of the spec links, that i could understand from the spec. Please mention if anything else needs to be added.
Source-Repo: https://github.com/servo/servo
Source-Revision: 7a71f3932078e8248ecf8c6d28984e2fd4d1df6c