Commit Graph

2416 Commits

Author SHA1 Message Date
Eli Friedman
920a384bcf servo: Merge #8073 - Make unrooted_must_root a bit more aggressive (from eefriedman:root-lint); r=Manishearth
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
2015-10-24 20:20:04 -05:00
Corey Farwell
e8557b5c4a servo: Merge #8181 - Remove unnecessary allocation with getElementById (from frewsxcv:no-alloc-get-element-by-id); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 3b50f219631ee8b8746199ef2bc1d60c716295ea
2015-10-24 17:25:09 -05:00
Ms2ger
3fa84a9213 servo: Merge #8171 - Remove the default implementation of Reflectable::init_reflector (from Ms2ger:reflector); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 354e75a447c8afc7757d0340c03119de853110f5
2015-10-23 17:49:28 -05:00
Roman Klauke
bde9ea29ba servo: Merge #8137 - Remove unnecessary rooting from CSSStyleDeclaration (from romankl:gh/8126); r=nox
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
2015-10-23 16:38:24 -05:00
Anthony Ramine
1e31b171ba servo: Merge #8091 - Remove Rc<T> usage from Range (from nox:cleanup-range); r=eefriedman
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
2015-10-23 16:00:00 -05:00
Ms2ger
a7fda48b5d servo: Merge #8170 - Cleanup some code in htmlcanvaselement.rs (from Ms2ger:cleanup-canvas); r=frewsxcv
Source-Repo: https://github.com/servo/servo
Source-Revision: ac8097b5d2532b3b9fb94f59dddc1be21aa1fb4d
2015-10-23 09:34:28 -06:00
Ms2ger
132cac7a9c servo: Merge #8155 - Remove Window::layout_join_port (from Ms2ger:join); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 4d737b51bb2053e9bb970b31b0516ac8810a061b
2015-10-23 04:50:38 -06:00
Matt Brubeck
62a3d94aaf servo: Merge #7204 - Very basic touch events and touch scrolling (from mbrubeck:touchevent); r=jdm
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
2015-10-22 15:54:01 -06:00
Nathan Froyd
c7178b65ad servo: Merge #8086 - add (un)premultiply tables for canvas {Get,Put}ImageData operations (from froydnj:premultiply-tables); r=jdm
Pretty straightforward use of lookup tables to replace a bunch of expensive float operations.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9a34decec295563d3b4050bc53daad142450e0d5
2015-10-21 17:48:49 -06:00
Florian Merz
63e894a766 servo: Merge #7761 - display input caret for textarea. fixes #7758 (from fiji-flo:input_caret); r=pcwalton
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
2015-10-21 15:23:52 -06:00
Matt Brubeck
8c3c73099e servo: Merge #8136 - Fix type in MutHeap docs (from mbrubeck:typo); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: f9e17d33bb3cd5cfe103bb1631f390123bcddc04
2015-10-21 14:15:28 -06:00
Bobby Holley
72a62272be servo: Merge #8042 - Remove HAS_DIRTY_SIBLINGS (from bholley:dirty_siblings); r=pcwalton
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
2015-10-21 12:18:02 -06:00
Akos Kiss
d99b23a735 servo: Merge #8132 - Fix char types in script binding codegen (from akosthekiss:codegen-u8); r=Ms2ger
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
2015-10-21 10:44:14 -06:00
benshu
0eaffe935d servo: Merge #7450 - Ordering guarantees for timers (from benschulz:constellation-timer); r=jdm
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
2015-10-21 09:07:30 -06:00
Brandon Fairchild
cd28992fae servo: Merge #8115 - Don't require the CanvasFillOrStrokeStyle enum to be public (from nerith:canvas); r=jdm
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
2015-10-21 08:32:36 -06:00
Anthony Ramine
db09beb657 servo: Merge #8041 - Introduce trait Castable (from nox:castable); r=jdm
Removes all those messy FooCast structures in InheritTypes.rs.

Source-Repo: https://github.com/servo/servo
Source-Revision: 674589c370d978f543e71f995d58c5b28e6e9842
2015-10-21 07:57:32 -06:00
Ms2ger
f51f42da73 servo: Merge #8124 - Remove unused JS::assign (from Ms2ger:js-assign); r=saneyuki
Source-Repo: https://github.com/servo/servo
Source-Revision: 20ea0f4755d2249a6abf9a4ade9d3df753f23bcf
2015-10-21 05:15:15 -06:00
Brandon Fairchild
a2a21d1dc3 servo: Merge #8112 - Remove Button prefix from names of variants of ButtonType enum (from nerith:buttontype); r=frewsxcv
Fixes #8106.

Source-Repo: https://github.com/servo/servo
Source-Revision: fde40edfdc1459e2ab66e8c66580bacb7dbde430
2015-10-20 21:28:38 -06:00
Adam Szopa
b2986ec771 servo: Merge #8099 - Remove explicit lifetimes which can be elided (from Darktori:master); r=mbrubeck
Fixes https://github.com/servo/servo/issues/8069

Source-Repo: https://github.com/servo/servo
Source-Revision: 941c06eb99533c6c1d55b4ad3b51804badf48a23
2015-10-20 17:30:57 -06:00
Leo Lahti
8f487896e7 servo: Merge #8095 - Removed unsafe from 'query_selector_iter' (from TileHalo:foo); r=Ms2ger
Fixing #8078.

Source-Repo: https://github.com/servo/servo
Source-Revision: 25d3c2b655303cf3b858e49019c42254433056cf
2015-10-20 01:13:49 -06:00
Anthony Ramine
aa367bf0f6 servo: Merge #8008 - Update URL-related interfaces and their tests up to spec (from nox:url); r=jdm
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
2015-10-19 14:24:05 -06:00
Pierre Chevalier
f67b1edb62 servo: Merge #7943 - Clarify some code in do_create_interface_objects (from pierrechevalier83:fix_issue_7941); r=Ms2ger
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
2015-10-19 09:37:03 -06:00
KALPESH KRISHNA
506f43168f servo: Merge #8068 - Implementing getAttributeNode() and similar methods (from martiansideofthemoon:my-code-fix); r=Manishearth
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
2015-10-19 07:58:41 -06:00
Anthony Ramine
95d40680d6 servo: Merge #8060 - Implement Deref<Target=T> for JS<T> where T: Reflectable (from nox:deref-js); r=Ms2ger
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
2015-10-19 06:32:05 -06:00
Bobby Holley
786aa62a34 servo: Merge #7935 - Move event state from Node to Element (from bholley:eventstate_element); r=nox
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
2015-10-19 02:47:21 -06:00
Corey Farwell
f23a91dcde servo: Merge #8059 - Fix formatting for variable in doc-comment within codegen (from frewsxcv:fix-codegen-docs); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: b847e4dd778e49ba60c786da4aa77813dee8b553
2015-10-18 07:55:48 -06:00
KALPESH KRISHNA
f4ebe1b230 servo: Merge #8038 - Adding window.onstorage WindowEventHandler (from martiansideofthemoon:my-code-fix); r=jdm
Well it built successfully this time around 😄 @jdm . Working to solve #7994

Source-Repo: https://github.com/servo/servo
Source-Revision: 23fa9de714662286480b26b28b742a7e23bc91f4
2015-10-17 22:36:13 -06:00
Till Schneidereit
951525599f servo: Merge #7415 - Improve implementation of DOMRect and implement DOMRectReadOnly (from tschneidereit:dom-rect); r=nox
Passes most tests from test-css. The remaining ones should pass once we have https://github.com/w3c/csswg-test/pull/834.

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 810d28a2574cd288ddfa5737ade417ea53a4b690
2015-10-17 15:17:27 -06:00
Corey Farwell
eaaa8e8849 servo: Merge #7977 - Implement HTMLTableRowElement insertCell and deleteCell (from frewsxcv:htmltablerowelement-insertcell-deletecell); r=eefriedman
Source-Repo: https://github.com/servo/servo
Source-Revision: ef8119511c440e50220417289a8adf5c7c1a93c3
2015-10-16 23:54:52 -06:00
Rahul Sharma
118f861a91 servo: Merge #8031 - added spec link for type mapping (from creativcoder:spec-links-js); r=jdm
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
2015-10-16 13:38:30 -06:00
Jim Berlage
1b2300154f servo: Merge #7947 - Adds bufferedAmount to Websocket (fixes #7856) (from jimberlage:7856/buffered-amount); r=jdm
This adds a readonly bufferedAmount attribute to Servo's websocket implementation.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0e4abddd37b1808033ad8811552575713fe7fa5a
2015-10-16 12:56:44 -06:00
Stephen Li
c478fe2533 servo: Merge #8035 - Issue 8028: parse_html should take Url rather than &Url (from sliz1:issues/8028); r=Manishearth
fixes #8028

Source-Repo: https://github.com/servo/servo
Source-Revision: 96ca6b6c6d1a7681e8b16fb313d548fc93753c67
2015-10-16 11:24:08 -06:00
Eli Friedman
2d0625bbbd servo: Merge #8043 - Make AsyncResponseListener methods take &mut self (from eefriedman:async-listener-mut); r=jdm
Gets rid of a bunch of useless `Cell`/`RefCell` types.

Source-Repo: https://github.com/servo/servo
Source-Revision: 724d4e191b80d84c46cde4a25be9c5f7340e9a06
2015-10-16 08:49:13 -06:00
Eli Friedman
bdf1870969 servo: Merge #8026 - Fix uses of JS<T> as a type on the stack (from eefriedman:js-rooting); r=nox
`JS<T>` belongs on the heap, and only on the heap.  This is a collection of fixes so that code uses either `Root<T>` or `&T` to pass around garbage-collected pointers.

Ideally, we could completely ban constructing a `JS<T>` outside of constructor functions, but we aren't quite there yet.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7c7dbde0f4372037aac3635b8d81531ca9cdced3
2015-10-16 08:05:59 -06:00
Ms2ger
0bb0efe6ee servo: Merge #8049 - Enable some warnings for generated code (from Ms2ger:warnings); r=nox
None of those warnings currently occur.

Source-Repo: https://github.com/servo/servo
Source-Revision: 67e8ec997faf6882e906229811dc64340eff2dd7
2015-10-16 04:09:42 -06:00
Manish Goregaokar
a201cbf9b0 servo: Merge #8030 - Fix unrooted_must_root lint to handle arguments/return types properly (from Manishearth:fix-lint-fn); r=frewsxcv
r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 9d5f09e09c64d878e6c2bb273195c3c6ca9fe82c
2015-10-15 15:00:00 -06:00
Anthony Ramine
39c1957849 servo: Merge #8020 - Generate all Derived implementations in codegen (from nox:codegen-derived); r=Ms2ger
Follow-up of #7873.

@Ms2ger r? :)

Source-Repo: https://github.com/servo/servo
Source-Revision: 417cf5738e4609f4b2e34e9e0c4f7ef68f087432
2015-10-15 12:53:08 -06:00
Anthony Ramine
89c1f09946 servo: Merge #7972 - Introduce DOMClass::heap_size_of (from nox:codegen-heapsize); r=Ms2ger
It holds a function pointer to the HeapSizeOf::heap_size_of_children()
implementation corresponding to that IDL interface.

This removes the need for a clumsly TypeId-based match expression in the
former heap_size_of_eventtarget() function.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5a0a91eba794af027723051c7f039cb22088aa65
2015-10-15 07:13:55 -06:00
Michael Wu
7e12ce1b44 servo: Merge #7727 - Support the updated spidermonkey bindings (from michaelwu:update-bindings); r=jdm
Still need to finish the rust-mozjs update and make cargo use it, but it's close enough that I don't expect much to change on the servo side.

Some changes here
- bools are properly translated now
- char16_t is handled as u16 now
- JS_GlobalObjectTraceHook isn't mangled now
- JSJitInfo has been adjusted
- A const fn is used to generate bitfields in JSJitInfo
- Manually generating handles now requires calling an unsafe function. It's not actually required, but it's too much of a hassle to generate them manually now due to bindgen++ adding base classes now.

Source-Repo: https://github.com/servo/servo
Source-Revision: b34fd5bd7e55be1d577df5cf70b41af8a6cc716b
2015-10-14 14:48:44 -06:00
Anthony Ramine
c60f627416 servo: Merge #7873 - Generate the various TypeId enums in codegen (from nox:codegen-typeid); r=Ms2ger
This frees us forever from caring about maintaining these enums. The last commit removes their use from the initialisation of interface objects derived from Node.

Source-Repo: https://github.com/servo/servo
Source-Revision: 32daa17d5cbcad02db0713e21e52410cdc60480e
2015-10-14 12:47:48 -06:00
Corey Farwell
87508032e1 servo: Merge #7829 - Implement HTMLTableCellElement::CellIndex (from frewsxcv:htmltablecellelement-cellindex); r=Ms2ger
Extracted from #6936

Source-Repo: https://github.com/servo/servo
Source-Revision: 55769b2fbf24ed84ee0f8ea5fe856e5fd29d8e60
2015-10-14 07:39:24 -06:00
Prabhjyot Singh Sodhi
937bba228f servo: Merge #7871 - Send reason in the Websocket close handshake (from psdh:sendReason); r=jdm
Fixes #7862

Source-Repo: https://github.com/servo/servo
Source-Revision: 26902a9a9b9266d7ffe13e9e1eb2c70fb0b70ae9
2015-10-13 17:25:27 -06:00
Eli Friedman
bd0eb1d471 servo: Merge #7997 - Link to the HTML multipage spec, not the single-page one (from eefriedman:html-spec-multipage); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 9fca41c7a7498cb6e27b914c45290dc4639d6f8b
2015-10-13 12:54:10 -06:00
Dongie Agnir
b2d14e64e2 servo: Merge #7990 - Add newline so code sample is parsed correctly (from dagnir:formatting-fix); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: efdaf5e7e5923d1078ed7b12b96325e2411cc3d2
2015-10-13 02:12:28 -06:00
Glenn Watson
e8bfc6de7a servo: Merge #7921 - Update RemoveIFrame to use pipeline id rather than subpage (from glennw:subpage-fixes-2); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 5ffeb3b95bfc90079622fa65fa7f6dc4fff25350
2015-10-12 07:49:26 -06:00
Corey Farwell
4e10b0fe98 servo: Merge #7976 - Cleanup code that was warned by rust-clippy (from frewsxcv:clippy); r=jdm
[whitespace agnostic diff](https://github.com/servo/servo/pull/7976/files?w=1)

Source-Repo: https://github.com/servo/servo
Source-Revision: ac1b595609a08c30d6c13dfe6e7705f061bbc010
2015-10-12 04:37:42 -06:00
Corey Farwell
ad55ad7d6d servo: Merge #7854 - Implement deleteRow and insertRow for table section elements (from frewsxcv:htmltablesectionelement-insertrow-deleterow); r=nox
Implement deleteRow and insertRow for <table> element

Continued from #6936

Source-Repo: https://github.com/servo/servo
Source-Revision: 292dbfe809ddf048065f790071ea2022406536d7
2015-10-11 16:44:13 -06:00
Corey Farwell
0c5acafbf1 servo: Merge #7958 - Consolidate magic number representing max unsigned long (from frewsxcv:consolidate-magic-number); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 02d889494580d2b387a42d3a94360e40dce96282
2015-10-10 15:00:39 -06:00
Corey Farwell
a62fb1a1a4 servo: Merge #7953 - Implement 'align' attribute for <div> elements (from frewsxcv:htmldivelement-align); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: babeed998d297d2d7badc06ba9c8f90e42239b4f
2015-10-10 14:11:33 -06:00
Corey Farwell
d9ff70bbe2 servo: Merge #7955 - Add 'listing' alias for <pre> elements (from frewsxcv:listing-pre); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: b34b82537acfb7cd9bd8bcecd5eb49528020b1ab
2015-10-10 11:08:14 -06:00