Commit Graph

2416 Commits

Author SHA1 Message Date
Alexander Popiak
c7308925a3 servo: Merge #10066 - implement and use From<bool> for enum and back (from apopiak:fromBool); r=asajeffrey
as discussed in the #servo channel on IRC:

implement and use  `From<bool>` for `EventBubbles` (and back direction)
implement and use `From<bool>` for `EventCancelable` (and back direction)

Source-Repo: https://github.com/servo/servo
Source-Revision: 4df7975ed3e74f1d6c491b0435bb3e751b5386a8
2016-03-19 22:28:21 +05:00
Rahul Sharma
aa5c559137 servo: Merge #10009 - implements NavigatorLanguage (from creativcoder:impl-navigator-language); r=Ms2ger
Fixes #9992

Source-Repo: https://github.com/servo/servo
Source-Revision: 20eb81c00ab62b582372c1dbdffc2b21e01d5d2d
2016-03-18 14:59:46 +05:00
Saurav Sachidanand
f857c33136 servo: Merge #10014 - Update WebSocket blocked ports to match the Fetch spec (from saurvs:pr1); r=KiChjang
Adresses #9949.

This adds a function that tests whether a request should be blocked or not based on it's url's scheme and port. It also adds testing for port restriction to the `main_fetch` method. More info in eb07418c83.

@Ms2ger In https://github.com/whatwg/html/issues/841, @annevk proposes to remove port restrictions from websockets. Should we go ahead do that, given that the spec hasn't been changed yet?

Source-Repo: https://github.com/servo/servo
Source-Revision: 0008c07dc343d911be042516b32c994fc18e3900
2016-03-18 00:01:24 +05:00
Attila Dusnoki
0d4709c4e3 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:31:18 +05:00
Saurav Sachidanand
3fbcfd7b4f servo: Merge #9967 - Convert directly from DOMString to Vec<u8> (from saurvs:master); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 00ab2e9f9e5457375c38bbc349ae26db92fae578
2016-03-12 00:49:04 +05:00
Daniel Robertson
bbf0ddbc91 servo: Merge #9824 - Add the scrollWidth and scrollHeight extensions to the element interface (from danlrobertson:element1); r=asajeffrey
Add the `scrollWidth` and `scrollHeight` extensions to the element interface. My goal was to create a method that encompassed getting `scrollWidth`, `scrollHeight`, `scrollTop`, and `scrollLeft`.

I also noted that `clientHeight` and `clientWidth` to not handle the root element and the body element correctly.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7ff7932a8cb15c42a436958e953cc904ba7a0bd8
2016-03-11 23:49:24 +05:00
Rebecca
9f096f5a2a servo: Merge #9930 - Remove activatable element filter within HTMLElement#click() (from rebstar6:htmlclick); r=jdm
Address https://github.com/servo/servo/issues/6542

Ensure that click() calls are not limited to activatable elements. Also makes the isTrusted attribute false when synthetic click activation are called from a click() method (as per spec).

Source-Repo: https://github.com/servo/servo
Source-Revision: f2f6787189d8ea021cbd4ea3425d39ef8b1b8f93
2016-03-11 09:36:24 +05:00
Saurav Sachidanand
f4c07ed25b servo: Merge #9905 - Implement input.setSelectionRange (from saurvs:master); r=ecoal95
Fixes https://github.com/servo/servo/issues/9862.

Passes all tests for `input` in `tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html`.

Source-Repo: https://github.com/servo/servo
Source-Revision: eac68c523bd0456671b1301a4a72184e46e5df86
2016-03-11 05:43:51 +05:00
Keith Yeung
a035f90a20 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:08:27 +05:00
Keith Yeung
2f19190f26 servo: Merge #9796 - Implement Stringifier for Range (from KiChjang:range-stringifier); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: fa93d3f4674c0e326a644826f5c394136a858f2b
2016-03-10 07:05:06 +05:00
Simon Sapin
48ac2a2726 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:22:45 +05:00
Arpad Borsos
48e9f69a25 servo: Merge #9896 - rename deprecated utf16_units to encode_utf16 (from Swatinem:rename_utf16); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: e8aeebbac5584e19e7ee23f187cdd6cf0da5ecb9
2016-03-08 06:02:43 +05:00
Ravi Shankar
1dc5aed88c servo: Merge #9800 - fixed the last failing test in dom/nodes/attributes.html (from Wafflespeanut:node_attrs); r=nox
r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: 64fb09ca2d5d077b4d3e0815ee3e094f67b7cf4e
2016-03-05 21:02:46 +05:00
Peter
65942f4b1d servo: Merge #9786 - Fixed compile error in generated code, when webidl constructors have same number of args (from peterjoel:fix_codegen_is_array_like); r=jdm
One of the ways that generated code differentiates constructors is by comparing if the args are array-like. The generated code was calling a function `IsArrayLike` that no longer exists. I re-implemented it with a more rust-like naming scheme.

Source-Repo: https://github.com/servo/servo
Source-Revision: c37a0866608421d9e3afd67f0777e27091104f0f
2016-03-04 14:44:20 +05:00
Jack Moffitt
59abe603c0 servo: Merge #9832 - Suppress reflows before RefreshTick or FirstLoad (from metajack:suppress-reflows); r=mbrubeck
This fixes a bug where partially loaded content is displayed to the user
before it should be, usually before stylesheets have loaded. This commit
supresses reflows until either FirstLoad or RefreshTick, whichever comes
first.

Source-Repo: https://github.com/servo/servo
Source-Revision: 37bcc161fe45bf8c1cb1172b8e0d12c7d03371b6
2016-03-04 03:30:30 +05:00
Emilio Cobos Álvarez
63d6f4eb6d servo: Merge #9715 - script: Fix MouseOver handling (from emilio:mousemove); r=mbrubeck
Now we only query for the topmost node, and apply the hover state to all
of the parent elements.

This fixes things like #9705, where the hover state was applied only to
the children.

This also makes us more conformant with other browsers in the case of
taking in account margins and paddings.

For example, prior to this PR, when your mouse was over the inner
element, in the bottom part, `hover` styles didn't apply to the parent.

```html
<style>
div {
  padding: 10px;
  margin: 10px;
  height: 15px;
  background: blue;
}

div:hover {
  background: red;
}
</style>

<div>
  <div></div>
</div>
```

Fixes #9705

Source-Repo: https://github.com/servo/servo
Source-Revision: 056a7cf1a2284063e5d32c6627b86f6931957a74
2016-03-03 22:25:35 +05:00
Rahul Sharma
bb4b0a2bb3 servo: Merge #9825 - removed XMLDocument constructor according to spec (from creativcoder:remove-contructor-xmldoc); r=KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: 46256b33efeb84b35cc90ae2dee03890ba7f38c7
2016-03-03 17:11:03 +05:00
Anthony Ramine
355c64dde4 servo: Merge #9837 - Use a BTreeMap for Document::animation_frame_list (fixes #9834) (from nox:deterministic-raf); r=mbrubeck
The callbacks must stay ordered.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9ceda7de509d3dff01a766077011207f94ffadfd
2016-03-02 20:54:38 +05:00
Gregory Malecha
956b08bf0c servo: Merge #9823 - updating the CanvasRenderingContext2D to match the spec (from gmalecha:canvas-rendering-context-2d-update-idl); r=jdm
- fixes #9443

Source-Repo: https://github.com/servo/servo
Source-Revision: f895f871971bcdcdb4631a0566660340399b7bed
2016-03-02 04:02:26 +05:00
Ms2ger
b32760d83d servo: Merge #9817 - Stop generating a parser.out file in the source (from Ms2ger:yacc-log); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: b355c0dbcbbbb5155170b4db971e012659081843
2016-03-02 00:25:02 +05:00
Dominik Menzi
d8918528c0 servo: Merge #9763 - Implement value for DOMTokenList (from Tangresh:i9725); r=nox
Fixes #9725

Source-Repo: https://github.com/servo/servo
Source-Revision: 00628704ca5f3318a4b97b7586cd17b31eabf5f6
2016-03-01 08:04:21 +05:00
Rizky Luthfianto
f8805d8889 servo: Merge #8932 - Implement Document#elementFromPoint (from rilut:add-elementfrompoint); r=nox
Related to #8666. I haven't implemented elementsFromPoint, because from my past discussion with jdm, [it's not good yet](dbfa25214b (commitcomment-14668959)) to implement elementsFromPoint because it may cause GC hazards.

By the way, I also have to include the test for this, right? I've found this [1]. So, is all I have to do is just to put this into `tests/wpt/web-platform-tests/cssom-view/elementFromPoint.html`?

[1] http://test.csswg.org/suites/cssom-view-1_dev/nightly-unstable/html/elementFromPosition.htm

Source-Repo: https://github.com/servo/servo
Source-Revision: 4bcdbe6d56d4d4e2a679ad7e0e27f2caf71f4d22
2016-03-01 02:31:50 +05:00
Anthony Ramine
afcdbf6963 servo: Merge #9787 - Refactor dispatch_event according to the spec (fixes #9178) (from nox:event-invoke); r=Ms2ger
Two new functions invoke and invoke_inner are introduced and some invariants documented.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7d4276b393fe3df1a04ade010bc345388ac390cd
2016-02-29 19:43:11 +05:00
Anthony Ramine
cdab80c43c servo: Merge #9799 - Fix step 14.2 of Range::ExtractContents (from nox:range-extractcontents); r=KiChjang
We need the last inclusive ancestor of start node that is not an inclusive ancestor
of end node, not the first that is an inclusive ancestor of it.

Source-Repo: https://github.com/servo/servo
Source-Revision: dfdeabf57df02cf4b8a878b3b9933a08d156082d
2016-02-29 04:41:28 +05:00
Anthony Ramine
20ceb47c3a servo: Merge #9797 - Fix step 1 of Range::InsertNode (from nox:range-insertnode); r=KiChjang
The method needs to throw when trying to insert start node into range.

Source-Repo: https://github.com/servo/servo
Source-Revision: b3964a89585539082982160f5f4fb4bd05ddac2f
2016-02-29 03:48:06 +05:00
Emilio Cobos Álvarez
02369afff6 servo: Merge #9795 - script: Fix remaining bugs from Range.deleteContents (from emilio:other-range-bugs); r=nox
This makes all the `Range.deleteContents` tests pass.

I changed some `try!()`s for `unwraps()` because those calls are actually infallible.

r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: 492e3241715e125df3587c8454ce52c925377152
2016-02-28 23:28:41 +05:00
Anthony Ramine
e369d2b4c7 servo: Merge #9793 - Fix step 6 of Range::DeleteContents (from nox:range-deletecontents); r=ecoal95
Source-Repo: https://github.com/servo/servo
Source-Revision: be6940db59a2e8bf4fac45911848edbc8cd3dd8d
2016-02-28 19:51:51 +05:00
Josh Matthews
b71084427f servo: Merge #9784 - Fix some errors in the DOM documentation (from servo:jdm-patch-1); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 5b8041147d81f56c908080c6da36d206bdc3debe
2016-02-28 01:12:47 +05:00
Anthony Ramine
2b0d8015f8 servo: Merge #9734 - Fix the "get the parent" loop when dispatching event (fixes #6733) (from nox:finish-event-dispatch); r=Ms2ger
The DOM specification says:

> A document's get the parent algorithm, given an event, returns null
> if event's type attribute value is "load" or document does not have
> a browsing context, and the document's associated Window object
> otherwise.

Source-Repo: https://github.com/servo/servo
Source-Revision: d5ce8f308faca3dda0728a2fd92b7d875a955d15
2016-02-27 22:33:25 +05:00
Chandler Abraham
882b70a9d7 servo: Merge #9768 - disallow restricted XMLHttpRequest header prefixes (from jdm:add_disallowed_prefixes); r=jdm
Rebased from #9376.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4a7d234510d5a5f6b2b960a84f70a7260e1fc0a9
2016-02-27 21:39:46 +05:00
Nick Fitzgerald
e2b9500fa0 servo: Merge #9774 - Implement removeAttributeNode (from nox:remove-attribute-node); r=nox
Supersedes #8727

Source-Repo: https://github.com/servo/servo
Source-Revision: 6c65e154f481afca53f155736c0d226e3ae44916
2016-02-27 14:53:06 +05:00
João Oliveira
2e430a19e4 servo: Merge #9755 - use return value of invoking event handlers to cancel the event (from jdm:handlerreturn); r=jdm
Rebased from #8707. Fixes #8490. We can modify the code and test as necessary whenever we make a decision about https://github.com/whatwg/html/issues/423 in the future.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8bdffa25f9eb69b3c044d89364083755687acf8f
2016-02-27 06:40:50 +05:00
Greg Guthe
297060996c servo: Merge #9514 - HTML input value (from g-k:html-input-value); r=KiChjang
Ready for review.

Fixes #9455.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0d7a2eee2db7a2bc96f69645c9eefee5204ebbb2
2016-02-27 04:06:46 +05:00
Anthony Ramine
a163e999dd servo: Merge #9064 - Implement Element.getAttributeNames (from nox:them-attr-names); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 918681931f0eff7f7e5658b8d869eba233bbd1c6
2016-02-27 00:14:24 +05:00
Sam Gibson
ead2896473 servo: Merge #9757 - Trigger WebSocket error event (from jdm:websocket-errors-rebase); r=jdm
Trigger a WebSocket error after receiving an invalid message from the server. Rebased from #8868. Fixes #7861.

Source-Repo: https://github.com/servo/servo
Source-Revision: 26b40afe237f97ebd81d537e8ed1201c7c1e4011
2016-02-26 13:44:06 +05:00
Eli Friedman
ed6993fee8 servo: Merge #9743 - Use presentation hints correctly for the dimensions of <img> (from jdm:image-preshint-rebase); r=pcwalton
Mostly straightforward; includes some extra fixes to make `<canvas>`
work the same way as `<img>` for reflow.

Rebase of #8531.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8c23cbb78b36ac143bbea3b2e64961bfc46d8e0d
2016-02-26 00:39:32 +05:00
Anthony Ramine
4acb3febf5 servo: Merge #9652 - Lazily define interface objects on globals (fixes #6419) (from nox:lazy-interface-object); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: b188cb542e92f3490b049e8db8473c7e2acf6dc9
2016-02-25 21:12:11 +05:00
Paul Rouget
1068e083ab servo: Merge #9740 - Support Browser API event mozbrowserconnected (from paulrouget:mozbrowserconnected); r=jdm
Fixes https://github.com/servo/servo/issues/9382

This new event is not yet documented. If this lands, I will add documentation to MDN.

Source-Repo: https://github.com/servo/servo
Source-Revision: 42f17128461f8da56a510b3454406cb74e3bba1a
2016-02-25 15:26:24 +05:00
Anthony Ramine
1856ae1166 servo: Merge #9742 - Make use of From<String> for Atom (from nox:atom-from-string); r=ecoal95
Source-Repo: https://github.com/servo/servo
Source-Revision: b3b6f092062eed2f323da88991553d0285da6a16
2016-02-25 08:09:44 +05:00
benshu
e36cabb63f servo: Merge #9661 - Completed implementation of devtools' getLayout (from jdm:devtools-inspector-get-layout); r=pcwalton
Rebase of #7267. Fixes #3598.

This avoids all of the sketchy issues of trying to read the style data for margins from the script thread. I replaced it with a layout query that fetches the margin style properties for a given element.

Source-Repo: https://github.com/servo/servo
Source-Revision: 09e987b559688caeef75aecd265c68f8d2b5c7e2
2016-02-24 23:52:43 +05:00
Paul Rouget
884ac2e5e4 servo: Merge #9731 - allow mozbrowser only for top level windows (from paulrouget:mozbrowserRootPipelineOnly); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3212d3a91ef749db9eb118c9168b2d5f6510bb59
2016-02-24 21:48:19 +05:00
Matt Brubeck
cf6376f15e servo: Merge #9722 - Dirty elements whose selectors are affected by sibling changes (from mbrubeck:slow-selector); r=nox
This fixes incremental layout of nodes that match pseudo-class selectors such as :first-child, :nth-child, :last-child, :first-of-type, etc.  Fixes #8191 and other intermittent layout bugs.

This code is based on the following flags from Gecko:
https://hg.mozilla.org/mozilla-central/file/e1cf617a1f28/dom/base/nsINode.h#l134

Depends on servo/rust-selectors#71. r? @SimonSapin

There are a couple of TODO items in this commit, but I'd appreciate feedback on the general approach before I finish it up.  (Also, if someone who knows more than I do could give some advice about atomic orderings...)

Source-Repo: https://github.com/servo/servo
Source-Revision: 438b3a444b40ea85e53be0bd1c4689680d577727
2016-02-24 18:25:39 +05:00
Saurav Sachidanand
e36dd9057e servo: Merge #9739 - Inline functions HTMLCollection::get_length and get_item (from saurvs:master); r=nox
Fixes https://github.com/servo/servo/issues/9726

Source-Repo: https://github.com/servo/servo
Source-Revision: 7d25243af12e8546c6a7dc5dafc15fc2a5006345
2016-02-24 17:31:29 +05:00
Ms2ger
ad2340f22d servo: Merge #9729 - Stop returning an Option from Window::browsing_context (from Ms2ger:bc-option); r=jdm
A Window always has a WindowProxy; the only reason it's wrapped in a nullable
field is the order in which those objects are created.

Source-Repo: https://github.com/servo/servo
Source-Revision: d85ee09bc72a9819269455a126a1eda018254822
2016-02-24 00:51:01 +05:00
Anthony Ramine
0bb2cc8605 servo: Merge #9067 - Make NamedNodeMap's named properties unenumerable (from nox:unenumerable-named-properties); r=jdm
https://dom.spec.whatwg.org/#dom-htmlcollection-item

Source-Repo: https://github.com/servo/servo
Source-Revision: 7192495e1a5ae24b62c61b718df38ee2f8803e03
2016-02-23 22:28:30 +05:00
Tim Neumann
f377cd7dc7 servo: Merge #9598 - Implement XHR::SetRequestHeader Step 3 (from TimNN:xhr-header-step-3); r=Ms2ger
Closes #9548.

Alternative implementation of #9595.

cc @timvandermeij

I'm not sure if a utility method on `ByteString` is the best place for this functionality, maybe a free function in XHR module would be more suitable.

Also where would be the correct place to add a test for this functionality (if required)?

Source-Repo: https://github.com/servo/servo
Source-Revision: 433232a7fffc3bd6bb830b4e1580e24801618fc1
2016-02-23 20:38:43 +05:00
Anthony Ramine
b9bea8d569 servo: Merge #9728 - Preliminary commits for lazy interface objects in #9652 (from nox:lazy-preliminaries); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 3550993075a0dedb5857a421cf39c3e8942b30f8
2016-02-23 19:43:45 +05:00
Ms2ger
061de8b75e servo: Merge #9727 - Remove an unused import from xmlhttprequest (from Ms2ger:xhr-import); r=KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: 90c7b78b12c772e4019c9724e0037b813eb8a555
2016-02-23 17:59:59 +05:00
benshu
78d56ec03d servo: Merge #8603 - Timers clean up (from benschulz:timers-clean-up); r=jdm
This PR splits the `ActiveTimers` abstraction into

 - `OneshotTimers` for scheduling "arbitrary" oneshot timers, such as XHR timeouts, and
 - `JsTimers`, based on `OneshotTimers`, for scheduling JS timers (`setTimeout`/`setInterval`).

The result is mich cleaner and the timer initialization steps now closely resemble the specification.

**Notes**
 - The second and third commit are strictly renames and code rearrangements.
 - I'm not particularily happy with the `OneshotTimerCallback` enum and its circular dependency with `XHRTimeoutCallback`, but I couldn't come up with anything better.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f278109ce84aa482ccc0d25938970435fb6e536
2016-02-21 21:13:28 +05:00
Josh Matthews
f0b42112b4 servo: Merge #9714 - Improvements to Documents' browsing contexts (from servo:browsingcontext); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: f5193ebd82b7d4daf2e5aa30948845bab7a696ea
2016-02-21 04:03:32 +05:00