Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upwon't login into zoho.com because of missing named getter on HTMLFormElement #16479
Comments
|
The console shows
This is part of the code that is executed during the form submission; we are missing the named getter on HTMLFormElement which allows referencing form elements by their id. |
|
Code: |
|
I'd like to try to implement this. Not very experienced, but I've got the summer cleared up. |
|
Please do! Ask questions about anything that's unclear! |
|
We do not implement the past names map yet. Adding support for it is required for the named getter. |
|
If you have questions about how to implement the past names map, I am happy to answer them :) |
|
@jdm I'm not quite sure how to implement this. I understand from the documentation that the map is member variable in htmlformelement and that the bindings will handle the lifetimes of the object and not its implementation. So I figure that all the info that I'd need sits on the rust side, but I don't know how I'm to keep track of the changes made on each of the children of htmlformelement. Should I modify htmlelement to alert it's parent on a name change or is there something I'm missing? |
|
Think I may have found what I'm looking for with the attribute list within elements. Would love your input if I'm still way off base. |
|
The more I read the specification's description of the past names map, the weirder it becomes. It appears that you do not need to track changes to the children of a form element (as sensible as that might seem!). Instead, the specification describes behaviour that allows this script to show Let's look at all of the references to the "past names map" in the specification (click on the bold text to see the list for yourself):
All of these are lazy activities - the map only ever is modified during the process of returning the list of supported property names. This means that this algorithm returns the list of names of elements that currently belong to this form, and the list of names that were known last time the list was created. Am I making sense? In short, I would be surprised to see many (if any) changes outside of htmlformelement.rs, since HTMLFormElement has a |
|
Thanks so much! This makes a lot more sense. |
|
Simple question. In step two from here it mentions the image object. For what I've written I've assumed it means an image button, as I think a regular image wouldn't be of much use for form submission. So I'm wondering if this is correct or if I should swap it to use the html image? |
|
I agree that it's confusing! Given that the previous step is very explicit about image buttons, I recommend following the instructions as written. I'll see if I can figure out why they care about img elements in that algorithm. |
|
I went looking through standard and found that usemap, a member variable of img, is considered palpable content. So I'm guessing a form might use it to choose between options. |
|
@WholeGrainGoats Are you still working on this? |
|
Yes, I started debugging this Monday. Sorry for taking so long. I do have a question, though. Is this |
|
Yes, since we have lists of expected results like https://dxr.mozilla.org/servo/source/tests/wpt/metadata/html/semantics/forms/the-form-element/form-nameditem.html.ini which currently expect failures for all tests related to the named getter. Those should end up showing "PASS expected FAIL" once your changes take effect. |
|
@WholeGrainGoats Are you still working on this? |
|
I attempted to find related test cases and Bugzilla reports for Firefox. The only test case I could find is: https://dxr.mozilla.org/comm-central/source/mozilla/dom/html/test/forms/test_form_named_getter_dynamic.html I found three Bugzilla reports that are related: |
|
Hi, @jdm! I would like to work on this issue. |
|
Lack of a named getter makes WPT html/semantics/forms/form-submission-0/constructing-form-data-set.html fail (slightly confusingly, since the button is named "submit" and expected to shadow the built-in .submit without a comment explaining what's going on) |
Named form getter This PR contains changes related to adding named getter in Servo for getting the list of all meaningful property names for a HTMLFormElement object, and getting the value of a specific property name. The following changes have been made: * uncomment the [named getter](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/webidls/HTMLFormElement.webidl#L30) from HTMLFormElement.webidl * add the missing `NamedGetter` and `SupportedPropertyNames` methods to [HTMLFormElement](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/htmlformelement.rs#L113) * implement `SupportedPropertyNames` according to [the specification](https://html.spec.whatwg.org/multipage/forms.html#the-form-element:supported-property-names): * create an enum to represent the `id`, `name`, and `past` states for the sourced names * create a vector of `(SourcedName, DomRoot<HTMLElement>)` by iterating over `self.controls` and checking the element type and calling methods like `HTMLElement::is_listed_element` --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #16479 (GitHub issue number if applicable)
Named form getter This PR contains changes related to adding named getter in Servo for getting the list of all meaningful property names for a HTMLFormElement object, and getting the value of a specific property name. The following changes have been made: * uncomment the [named getter](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/webidls/HTMLFormElement.webidl#L30) from HTMLFormElement.webidl * add the missing `NamedGetter` and `SupportedPropertyNames` methods to [HTMLFormElement](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/htmlformelement.rs#L113) * implement `SupportedPropertyNames` according to [the specification](https://html.spec.whatwg.org/multipage/forms.html#the-form-element:supported-property-names): * create an enum to represent the `id`, `name`, and `past` states for the sourced names * create a vector of `(SourcedName, DomRoot<HTMLElement>)` by iterating over `self.controls` and checking the element type and calling methods like `HTMLElement::is_listed_element` --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #16479 (GitHub issue number if applicable)
Named form getter This PR contains changes related to adding named getter in Servo for getting the list of all meaningful property names for a HTMLFormElement object, and getting the value of a specific property name. The following changes have been made: * uncomment the [named getter](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/webidls/HTMLFormElement.webidl#L30) from HTMLFormElement.webidl * add the missing `NamedGetter` and `SupportedPropertyNames` methods to [HTMLFormElement](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/htmlformelement.rs#L113) * implement `SupportedPropertyNames` according to [the specification](https://html.spec.whatwg.org/multipage/forms.html#the-form-element:supported-property-names): * create an enum to represent the `id`, `name`, and `past` states for the sourced names * create a vector of `(SourcedName, DomRoot<HTMLElement>)` by iterating over `self.controls` and checking the element type and calling methods like `HTMLElement::is_listed_element` --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #16479 (GitHub issue number if applicable)
Named form getter This PR contains changes related to adding named getter in Servo for getting the list of all meaningful property names for a HTMLFormElement object, and getting the value of a specific property name. The following changes have been made: * uncomment the [named getter](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/webidls/HTMLFormElement.webidl#L30) from HTMLFormElement.webidl * add the missing `NamedGetter` and `SupportedPropertyNames` methods to [HTMLFormElement](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/htmlformelement.rs#L113) * implement `SupportedPropertyNames` according to [the specification](https://html.spec.whatwg.org/multipage/forms.html#the-form-element:supported-property-names): * create an enum to represent the `id`, `name`, and `past` states for the sourced names * create a vector of `(SourcedName, DomRoot<HTMLElement>)` by iterating over `self.controls` and checking the element type and calling methods like `HTMLElement::is_listed_element` --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #16479 (GitHub issue number if applicable)
Named form getter This PR contains changes related to adding named getter in Servo for getting the list of all meaningful property names for a HTMLFormElement object, and getting the value of a specific property name. The following changes have been made: * uncomment the [named getter](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/webidls/HTMLFormElement.webidl#L30) from HTMLFormElement.webidl * add the missing `NamedGetter` and `SupportedPropertyNames` methods to [HTMLFormElement](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/htmlformelement.rs#L113) * implement `SupportedPropertyNames` according to [the specification](https://html.spec.whatwg.org/multipage/forms.html#the-form-element:supported-property-names): * create an enum to represent the `id`, `name`, and `past` states for the sourced names * create a vector of `(SourcedName, DomRoot<HTMLElement>)` by iterating over `self.controls` and checking the element type and calling methods like `HTMLElement::is_listed_element` --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #16479 (GitHub issue number if applicable)
Named form getter This PR contains changes related to adding named getter in Servo for getting the list of all meaningful property names for a HTMLFormElement object, and getting the value of a specific property name. The following changes have been made: * uncomment the [named getter](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/webidls/HTMLFormElement.webidl#L30) from HTMLFormElement.webidl * add the missing `NamedGetter` and `SupportedPropertyNames` methods to [HTMLFormElement](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/htmlformelement.rs#L113) * implement `SupportedPropertyNames` according to [the specification](https://html.spec.whatwg.org/multipage/forms.html#the-form-element:supported-property-names): * create an enum to represent the `id`, `name`, and `past` states for the sourced names * create a vector of `(SourcedName, DomRoot<HTMLElement>)` by iterating over `self.controls` and checking the element type and calling methods like `HTMLElement::is_listed_element` --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #16479 (GitHub issue number if applicable)
Named form getter This PR contains changes related to adding named getter in Servo for getting the list of all meaningful property names for a HTMLFormElement object, and getting the value of a specific property name. The following changes have been made: * uncomment the [named getter](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/webidls/HTMLFormElement.webidl#L30) from HTMLFormElement.webidl * add the missing `NamedGetter` and `SupportedPropertyNames` methods to [HTMLFormElement](https://github.com/servo/servo/blob/f63b404e0cbf30380c4043700861110d06e548bb/components/script/dom/htmlformelement.rs#L113) * implement `SupportedPropertyNames` according to [the specification](https://html.spec.whatwg.org/multipage/forms.html#the-form-element:supported-property-names): * create an enum to represent the `id`, `name`, and `past` states for the sourced names * create a vector of `(SourcedName, DomRoot<HTMLElement>)` by iterating over `self.controls` and checking the element type and calling methods like `HTMLElement::is_listed_element` --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #16479 (GitHub issue number if applicable)
Servo reports an error in the authentication. Sometimes it freezes afterwards. Windows build.