New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Html options collection#13129 #13380

Merged
merged 4 commits into from Sep 26, 2016

Conversation

Projects
None yet
7 participants
@splav
Contributor

splav commented Sep 22, 2016

Implement HTMLOptionsCollection and related HTMLSelectElement items


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • These changes fix #13129 (github issue number if applicable).
  • There are tests for these changes OR
  • These changes do not require tests because _____

This change is Reviewable

@highfive

This comment has been minimized.

Show comment
Hide comment
@highfive

highfive Sep 22, 2016

Heads up! This PR modifies the following files:

  • @KiChjang: components/script/dom/bindings/codegen/CodegenRust.py, components/script/dom/htmloptionscollection.rs, components/script/dom/webidls/HTMLOptionsCollection.webidl, components/script/dom/webidls/HTMLSelectElement.webidl, components/script/dom/mod.rs, components/script/dom/htmlselectelement.rs

Heads up! This PR modifies the following files:

  • @KiChjang: components/script/dom/bindings/codegen/CodegenRust.py, components/script/dom/htmloptionscollection.rs, components/script/dom/webidls/HTMLOptionsCollection.webidl, components/script/dom/webidls/HTMLSelectElement.webidl, components/script/dom/mod.rs, components/script/dom/htmlselectelement.rs
Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
#[dom_struct]
pub struct HTMLOptionsCollection {
collection: HTMLCollection,
root: MutHeap<JS<Node>>

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this necessary? The parent class already has this field.

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this necessary? The parent class already has this field.

@@ -28,7 +32,8 @@ use style::element_state::*;
#[dom_struct]
pub struct HTMLSelectElement {
htmlelement: HTMLElement
htmlelement: HTMLElement,
options: MutNullableHeap<JS<HTMLOptionsCollection>>,

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

This shouldn't be nullable.

@KiChjang

KiChjang Sep 22, 2016

Member

This shouldn't be nullable.

This comment has been minimized.

@splav

splav Sep 22, 2016

Contributor

Why not? It's done so in HTMLFormElement.

@splav

splav Sep 22, 2016

Contributor

Why not? It's done so in HTMLFormElement.

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

It's expensive to create an HTMLFormControlsCollection for HTMLFormElement, but for HTMLSelectElement, creating an HTMLOptionsCollection is just a straightforward filter, hence it isn't necessary.

@KiChjang

KiChjang Sep 22, 2016

Member

It's expensive to create an HTMLFormControlsCollection for HTMLFormElement, but for HTMLSelectElement, creating an HTMLOptionsCollection is just a straightforward filter, hence it isn't necessary.

This comment has been minimized.

@KiChjang

KiChjang Sep 23, 2016

Member

Looks like this isn't possible to create an HTMLOptionsCollection during the creation of HTMLSelectElement. Ignore my comment and leave it as-is.

@KiChjang

KiChjang Sep 23, 2016

Member

Looks like this isn't possible to create an HTMLOptionsCollection during the creation of HTMLSelectElement. Ignore my comment and leave it as-is.

Show outdated Hide outdated components/script/dom/htmlselectelement.rs
let options = HTMLOptionsCollection::new(window.r(), self.upcast(), filter);
self.options.set(Some(&options));
options
}

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

nit: Indentation.

@KiChjang

KiChjang Sep 22, 2016

Member

nit: Indentation.

Show outdated Hide outdated components/script/dom/htmlselectelement.rs
// https://html.spec.whatwg.org/multipage/#dom-select-item
fn Item(&self, index: u32) -> Option<Root<Element>> {
self.Options().IndexedGetter(index)

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this not Item(index) instead?

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this not Item(index) instead?

This comment has been minimized.

@splav

splav Sep 22, 2016

Contributor

There is no such method for HTMLOptionsCollection.

@splav

splav Sep 22, 2016

Contributor

There is no such method for HTMLOptionsCollection.

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
// https://html.spec.whatwg.org/multipage/#dom-htmloptionscollection-add
fn Add(&self, element: HTMLOptionElementOrHTMLOptGroupElement, before: Option<HTMLElementOrLong >) -> ErrorResult {
// TODO

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

What is this TODO doing here?

@KiChjang

KiChjang Sep 22, 2016

Member

What is this TODO doing here?

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
let name = QualName::new(ns!(html), name_atom.clone());
let element = Element::create(name, None, document.r(), ElementCreator::ScriptCreated);
let node = element.r().upcast::<Node>();
try!(Node::pre_insert(node, root.r(), None));

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

This looks pretty messy, you can achieve the same simply by using the AppendChild WebIDL function on Node and HTMLOptionElement::new.

@KiChjang

KiChjang Sep 22, 2016

Member

This looks pretty messy, you can achieve the same simply by using the AppendChild WebIDL function on Node and HTMLOptionElement::new.

Show outdated Hide outdated components/script/dom/htmlselectelement.rs
// // https://html.spec.whatwg.org/multipage/#dom-select-setter
// fn IndexedSetter(&self, index: u32, value: Option<&HTMLOptionElement>) -> ErrorResult {
// self.Options().IndexedSetter(index, value)
// }

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this commented out?

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this commented out?

Show outdated Hide outdated components/script/dom/htmlselectelement.rs
// // https://html.spec.whatwg.org/multipage/#dom-select-remove
// fn Remove(&self, index: i32) -> ErrorResult {
// self.Options().Remove(index)
// }

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this commented out?

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this commented out?

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
element.r().Remove();
Ok(())
} else {
Err(Error::NotFound)

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

The spec doesn't say that you should throw a NotFoundError in this case, instead it says to abort the algorithm.

@KiChjang

KiChjang Sep 22, 2016

Member

The spec doesn't say that you should throw a NotFoundError in this case, instead it says to abort the algorithm.

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
if delta < 0 {
// new length is lower - deleting last option elements
for index in (length..current_length).rev() {
self.Remove(index as i32).unwrap()

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

Unwrapping is not fine here, since it can fail. If you don't care about the result of removing, you can do let _ = self.Remove(index as i32);

@KiChjang

KiChjang Sep 22, 2016

Member

Unwrapping is not fine here, since it can fail. If you don't care about the result of removing, you can do let _ = self.Remove(index as i32);

Show outdated Hide outdated components/script/dom/htmlselectelement.rs
.filter_map(Root::downcast::<HTMLOptionElement>)
.nth(index as usize)
.map(|item| Root::from_ref(item.upcast()))
self.Options().IndexedGetter(index)

This comment has been minimized.

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this not self.Options().Item(index)?

@KiChjang

KiChjang Sep 22, 2016

Member

Why is this not self.Options().Item(index)?

This comment has been minimized.

@KiChjang

KiChjang Sep 24, 2016

Member

Looks like you ignored my review comment here.

@KiChjang

KiChjang Sep 24, 2016

Member

Looks like you ignored my review comment here.

This comment has been minimized.

@splav

splav Sep 24, 2016

Contributor

Same as the previous similar - there is no such method (Item) for HTMLOptionsCollection.

@splav

splav Sep 24, 2016

Contributor

Same as the previous similar - there is no such method (Item) for HTMLOptionsCollection.

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
fn add_new_elements(&self, count: u32) -> ErrorResult {
let root = self.collection.get_root();
let document = document_from_node(root.r());
let name_atom = Atom::from(DOMString::from("option".to_owned()));

This comment has been minimized.

@KiChjang

KiChjang Sep 24, 2016

Member

let name_atom = atom!("option");

@KiChjang

KiChjang Sep 24, 2016

Member

let name_atom = atom!("option");

@splav

This comment has been minimized.

Show comment
Hide comment
@splav

splav Sep 24, 2016

Contributor

@KiChjang fixed latest one, fixed indentation in idl file.

Contributor

splav commented Sep 24, 2016

@KiChjang fixed latest one, fixed indentation in idl file.

@splav

This comment has been minimized.

Show comment
Hide comment
@splav

splav Sep 24, 2016

Contributor

@KiChjang as for Item method - how are they used from JS? The collection should inherit these methods from HTMLCollection, but binding generator does not require them for HTMLOptionsCollection. Should I implement it anyway?

Contributor

splav commented Sep 24, 2016

@KiChjang as for Item method - how are they used from JS? The collection should inherit these methods from HTMLCollection, but binding generator does not require them for HTMLOptionsCollection. Should I implement it anyway?

@KiChjang

This comment has been minimized.

Show comment
Hide comment
@KiChjang

KiChjang Sep 25, 2016

Member

What you need to do is to .upcast::<HTMLCollection>() the resulting HTMLOptionsCollection, and call Item() on it.

Member

KiChjang commented Sep 25, 2016

What you need to do is to .upcast::<HTMLCollection>() the resulting HTMLOptionsCollection, and call Item() on it.

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
fn add_new_elements(&self, count: u32) -> ErrorResult {
let root = self.collection.get_root();
let document = document_from_node(root.r());
let name_atom = atom!("option");

This comment has been minimized.

@KiChjang

KiChjang Sep 25, 2016

Member

I missed this in my previous review, but name_atom is completely unnecessary. You can just call atom!("option") directly in HTMLOptionElement::new.

@KiChjang

KiChjang Sep 25, 2016

Member

I missed this in my previous review, but name_atom is completely unnecessary. You can just call atom!("option") directly in HTMLOptionElement::new.

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
for _ in 0..count {
let element = HTMLOptionElement::new(name_atom.clone(), None, document.r());
let node = element.upcast::<Node>();
try!(root.AppendChild(node).map(|_| ()));

This comment has been minimized.

@KiChjang

KiChjang Sep 25, 2016

Member

Why is the map necessary?

@KiChjang

KiChjang Sep 25, 2016

Member

Why is the map necessary?

This comment has been minimized.

@splav

splav Sep 25, 2016

Contributor

AppentChild returns Fallable

@splav

splav Sep 25, 2016

Contributor

AppentChild returns Fallable

This comment has been minimized.

@KiChjang

KiChjang Sep 25, 2016

Member

And...?

@KiChjang

KiChjang Sep 25, 2016

Member

And...?

This comment has been minimized.

@jdm

jdm Sep 25, 2016

Member

Presumably this function returns ErrorResult, which is Fallible<(), Error>.

@jdm

jdm Sep 25, 2016

Member

Presumably this function returns ErrorResult, which is Fallible<(), Error>.

This comment has been minimized.

@splav

splav Sep 25, 2016

Contributor

Yes, AppendChild returns Fallible<Root<Node>, Error> and the function returns Fallible<(), Error> so I had to map Root<Node> to ().

@splav

splav Sep 25, 2016

Contributor

Yes, AppendChild returns Fallible<Root<Node>, Error> and the function returns Fallible<(), Error> so I had to map Root<Node> to ().

Show outdated Hide outdated components/script/dom/htmlcollection.rs
@@ -229,6 +229,9 @@ impl HTMLCollection {
}
}
pub fn get_root(&self) -> Root<Node> {

This comment has been minimized.

@KiChjang

KiChjang Sep 25, 2016

Member

Let's call this root_node instead.

@KiChjang

KiChjang Sep 25, 2016

Member

Let's call this root_node instead.

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
let node = match element {
HTMLOptionElementOrHTMLOptGroupElement::HTMLOptionElement(ref element) => element.upcast::<Node>(),
HTMLOptionElementOrHTMLOptGroupElement::HTMLOptGroupElement(ref element) => element.upcast::<Node>(),

This comment has been minimized.

@KiChjang

KiChjang Sep 25, 2016

Member
HTMLOptionElementOrHTMLOptGroupElement::HTMLOptionElement(ref el) |
HTMLOptionElementOrHTMLOptGroupElement::HTMLOptGroupElement(ref el) => el.upcast::<Node>()

I'm not sure the above works, but if not, use the following:

let node: &Node = match element {
    // same as above, but use element.upcast() instead of element.upcast::<Node>()
}
@KiChjang

KiChjang Sep 25, 2016

Member
HTMLOptionElementOrHTMLOptGroupElement::HTMLOptionElement(ref el) |
HTMLOptionElementOrHTMLOptGroupElement::HTMLOptGroupElement(ref el) => el.upcast::<Node>()

I'm not sure the above works, but if not, use the following:

let node: &Node = match element {
    // same as above, but use element.upcast() instead of element.upcast::<Node>()
}

This comment has been minimized.

@jdm

jdm Sep 25, 2016

Member

I don't believe either of those will work - match arms that are combined must contain the exact same types.
edit: oh, I think I'm misreading your second suggestion. If "as above" means the original code, then that's fine.

@jdm

jdm Sep 25, 2016

Member

I don't believe either of those will work - match arms that are combined must contain the exact same types.
edit: oh, I think I'm misreading your second suggestion. If "as above" means the original code, then that's fine.

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
fn add_new_elements(&self, count: u32) -> ErrorResult {
let root = self.collection.get_root();
let document = document_from_node(root.r());

This comment has been minimized.

@KiChjang

KiChjang Sep 25, 2016

Member

Not sure why it has to be root.r(), but self works here.

@KiChjang

KiChjang Sep 25, 2016

Member

Not sure why it has to be root.r(), but self works here.

This comment has been minimized.

@splav

splav Sep 25, 2016

Contributor

Self is not derived from Node. Base 'class' is HTMLCollection.

@splav

splav Sep 25, 2016

Contributor

Self is not derived from Node. Base 'class' is HTMLCollection.

@KiChjang

This comment has been minimized.

Show comment
Hide comment
@KiChjang

KiChjang Sep 25, 2016

Member

@bors-servo r+

Thanks!

Member

KiChjang commented Sep 25, 2016

@bors-servo r+

Thanks!

@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 25, 2016

Contributor

📌 Commit 0245c9c has been approved by KiChjang

Contributor

bors-servo commented Sep 25, 2016

📌 Commit 0245c9c has been approved by KiChjang

@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 25, 2016

Contributor

⌛️ Testing commit 0245c9c with merge c605984...

Contributor

bors-servo commented Sep 25, 2016

⌛️ Testing commit 0245c9c with merge c605984...

bors-servo added a commit that referenced this pull request Sep 25, 2016

Auto merge of #13380 - splav:HTMLOptionsCollection#13129, r=KiChjang
Html options collection#13129

<!-- Please describe your changes on the following line: -->
Implement HTMLOptionsCollection and related HTMLSelectElement items

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13129 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13380)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 25, 2016

Contributor

💔 Test failed - linux-rel

Contributor

bors-servo commented Sep 25, 2016

💔 Test failed - linux-rel

@splav

This comment has been minimized.

Show comment
Hide comment
@splav

splav Sep 25, 2016

Contributor

I've found some errors while reviewing the tests that are market as FAIL now but should pass and they don't. I'll try to fix them as soon as possible and update the PR.

Contributor

splav commented Sep 25, 2016

I've found some errors while reviewing the tests that are market as FAIL now but should pass and they don't. I'll try to fix them as soon as possible and update the PR.

@splav

This comment has been minimized.

Show comment
Hide comment
@splav

splav Sep 25, 2016

Contributor

@jdm, changing public interfaces list, should require your review according to test messages.

Contributor

splav commented Sep 25, 2016

@jdm, changing public interfaces list, should require your review according to test messages.

@KiChjang

This comment has been minimized.

Show comment
Hide comment
@KiChjang

KiChjang Sep 26, 2016

Member

@bors-servo retry

  • The annoying git
Member

KiChjang commented Sep 26, 2016

@bors-servo retry

  • The annoying git

bors-servo added a commit that referenced this pull request Sep 26, 2016

Auto merge of #13380 - splav:HTMLOptionsCollection#13129, r=KiChjang
Html options collection#13129

<!-- Please describe your changes on the following line: -->
Implement HTMLOptionsCollection and related HTMLSelectElement items

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13129 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13380)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 26, 2016

Contributor

⌛️ Testing commit de23c13 with merge 16a09cb...

Contributor

bors-servo commented Sep 26, 2016

⌛️ Testing commit de23c13 with merge 16a09cb...

@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 26, 2016

Contributor

💔 Test failed - linux-rel

Contributor

bors-servo commented Sep 26, 2016

💔 Test failed - linux-rel

@KiChjang

This comment has been minimized.

Show comment
Hide comment
Member

KiChjang commented Sep 26, 2016

@bors-servo retry

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
for _ in 0..count {
let element = HTMLOptionElement::new(atom!("option"), None, document.r());
let node = element.upcast::<Node>();
try!(root.AppendChild(node).map(|_| ()));

This comment has been minimized.

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

What's the map for?

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

What's the map for?

This comment has been minimized.

@jdm

jdm Sep 26, 2016

Member

This was covered in a previous review comment.

@jdm

jdm Sep 26, 2016

Member

This was covered in a previous review comment.

This comment has been minimized.

@splav

splav Sep 26, 2016

Contributor

@jdm, @KiChjang I guess I was wrong, being wrapped inside try! is works without map. It doesn't in direct return cases, but do work in this one.

@splav

splav Sep 26, 2016

Contributor

@jdm, @KiChjang I guess I was wrong, being wrapped inside try! is works without map. It doesn't in direct return cases, but do work in this one.

Show outdated Hide outdated components/script/dom/htmloptionscollection.rs
//
// https://dom.spec.whatwg.org/#dom-htmlcollection-nameditem
fn NamedGetter(&self, name: DOMString) -> Option<Root<Element>> {
self.collection.NamedItem(name)

This comment has been minimized.

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

Please use self.upcast() (or self.upcast::<HTMLCollection>()) rather than self.collection.

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

Please use self.upcast() (or self.upcast::<HTMLCollection>()) rather than self.collection.

Show outdated Hide outdated components/script/dom/htmlselectelement.rs
}
let node = elem.upcast::<Node>();
if _root.is_parent_of(node) {

This comment has been minimized.

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

Please call the argument root.

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

Please call the argument root.

Show outdated Hide outdated components/script/dom/htmlselectelement.rs
.traverse_preorder()
.filter_map(Root::downcast::<HTMLOptionElement>)
.count() as u32
self.Options().Length() as u32

This comment has been minimized.

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

Cast should not be necessary here.

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

Cast should not be necessary here.

Show outdated Hide outdated components/script/dom/htmlselectelement.rs
let window = window_from_node(self);
let options = HTMLOptionsCollection::new(window.r(),
self.upcast(), box OptionsFilter);

This comment has been minimized.

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

I think this could be simplified with or_init()

@Ms2ger

Ms2ger Sep 26, 2016

Contributor

I think this could be simplified with or_init()

@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 26, 2016

Contributor

🔒 Merge conflict

Contributor

bors-servo commented Sep 26, 2016

🔒 Merge conflict

@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 26, 2016

Contributor

☔️ The latest upstream changes (presumably #13426) made this pull request unmergeable. Please resolve the merge conflicts.

Contributor

bors-servo commented Sep 26, 2016

☔️ The latest upstream changes (presumably #13426) made this pull request unmergeable. Please resolve the merge conflicts.

@jdm

This comment has been minimized.

Show comment
Hide comment
@jdm

jdm Sep 26, 2016

Member

@bors-servo: r=KiChjang

Member

jdm commented Sep 26, 2016

@bors-servo: r=KiChjang

@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 26, 2016

Contributor

📌 Commit 6d5791f has been approved by KiChjang

Contributor

bors-servo commented Sep 26, 2016

📌 Commit 6d5791f has been approved by KiChjang

@jdm

This comment has been minimized.

Show comment
Hide comment
@jdm

jdm Sep 26, 2016

Member

@bors-servo: r=KiChjang

Member

jdm commented Sep 26, 2016

@bors-servo: r=KiChjang

@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 26, 2016

Contributor

📌 Commit 80c70e3 has been approved by KiChjang

Contributor

bors-servo commented Sep 26, 2016

📌 Commit 80c70e3 has been approved by KiChjang

@bors-servo

This comment has been minimized.

Show comment
Hide comment
@bors-servo

bors-servo Sep 26, 2016

Contributor

⌛️ Testing commit 80c70e3 with merge 7de13a6...

Contributor

bors-servo commented Sep 26, 2016

⌛️ Testing commit 80c70e3 with merge 7de13a6...

bors-servo added a commit that referenced this pull request Sep 26, 2016

Auto merge of #13380 - splav:HTMLOptionsCollection#13129, r=KiChjang
Html options collection#13129

<!-- Please describe your changes on the following line: -->
Implement HTMLOptionsCollection and related HTMLSelectElement items

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13129 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13380)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Show comment
Hide comment
Contributor

bors-servo commented Sep 26, 2016

@bors-servo bors-servo merged commit 80c70e3 into servo:master Sep 26, 2016

2 of 3 checks passed

continuous-integration/travis-ci/pr The Travis CI build failed
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
homu Test successful
Details

@splav splav deleted the splav:HTMLOptionsCollection#13129 branch Sep 27, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment