{"action":"created","issue":{"url":"https://api.github.com/repos/ampproject/amphtml/issues/6579","repository_url":"https://api.github.com/repos/ampproject/amphtml","labels_url":"https://api.github.com/repos/ampproject/amphtml/issues/6579/labels{/name}","comments_url":"https://api.github.com/repos/ampproject/amphtml/issues/6579/comments","events_url":"https://api.github.com/repos/ampproject/amphtml/issues/6579/events","html_url":"https://github.com/ampproject/amphtml/issues/6579","id":194474964,"number":6579,"title":"Ban inputs with special names","user":{"login":"jridgewell","id":112982,"avatar_url":"https://avatars.githubusercontent.com/u/112982?v=3","gravatar_id":"","url":"https://api.github.com/users/jridgewell","html_url":"https://github.com/jridgewell","followers_url":"https://api.github.com/users/jridgewell/followers","following_url":"https://api.github.com/users/jridgewell/following{/other_user}","gists_url":"https://api.github.com/users/jridgewell/gists{/gist_id}","starred_url":"https://api.github.com/users/jridgewell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jridgewell/subscriptions","organizations_url":"https://api.github.com/users/jridgewell/orgs","repos_url":"https://api.github.com/users/jridgewell/repos","events_url":"https://api.github.com/users/jridgewell/events{/privacy}","received_events_url":"https://api.github.com/users/jridgewell/received_events","type":"User","site_admin":false},"labels":[{"id":270646244,"url":"https://api.github.com/repos/ampproject/amphtml/labels/Related%20to:%20Validator","name":"Related to: Validator","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":{"login":"Gregable","id":25519,"avatar_url":"https://avatars.githubusercontent.com/u/25519?v=3","gravatar_id":"","url":"https://api.github.com/users/Gregable","html_url":"https://github.com/Gregable","followers_url":"https://api.github.com/users/Gregable/followers","following_url":"https://api.github.com/users/Gregable/following{/other_user}","gists_url":"https://api.github.com/users/Gregable/gists{/gist_id}","starred_url":"https://api.github.com/users/Gregable/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gregable/subscriptions","organizations_url":"https://api.github.com/users/Gregable/orgs","repos_url":"https://api.github.com/users/Gregable/repos","events_url":"https://api.github.com/users/Gregable/events{/privacy}","received_events_url":"https://api.github.com/users/Gregable/received_events","type":"User","site_admin":false},"assignees":[{"login":"Gregable","id":25519,"avatar_url":"https://avatars.githubusercontent.com/u/25519?v=3","gravatar_id":"","url":"https://api.github.com/users/Gregable","html_url":"https://github.com/Gregable","followers_url":"https://api.github.com/users/Gregable/followers","following_url":"https://api.github.com/users/Gregable/following{/other_user}","gists_url":"https://api.github.com/users/Gregable/gists{/gist_id}","starred_url":"https://api.github.com/users/Gregable/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gregable/subscriptions","organizations_url":"https://api.github.com/users/Gregable/orgs","repos_url":"https://api.github.com/users/Gregable/repos","events_url":"https://api.github.com/users/Gregable/events{/privacy}","received_events_url":"https://api.github.com/users/Gregable/received_events","type":"User","site_admin":false},{"login":"honeybadgerdontcare","id":1340565,"avatar_url":"https://avatars.githubusercontent.com/u/1340565?v=3","gravatar_id":"","url":"https://api.github.com/users/honeybadgerdontcare","html_url":"https://github.com/honeybadgerdontcare","followers_url":"https://api.github.com/users/honeybadgerdontcare/followers","following_url":"https://api.github.com/users/honeybadgerdontcare/following{/other_user}","gists_url":"https://api.github.com/users/honeybadgerdontcare/gists{/gist_id}","starred_url":"https://api.github.com/users/honeybadgerdontcare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/honeybadgerdontcare/subscriptions","organizations_url":"https://api.github.com/users/honeybadgerdontcare/orgs","repos_url":"https://api.github.com/users/honeybadgerdontcare/repos","events_url":"https://api.github.com/users/honeybadgerdontcare/events{/privacy}","received_events_url":"https://api.github.com/users/honeybadgerdontcare/received_events","type":"User","site_admin":false}],"milestone":null,"comments":9,"created_at":"2016-12-08T23:41:09Z","updated_at":"2016-12-09T20:46:29Z","closed_at":null,"body":"As a result of https://github.com/ampproject/amphtml/issues/6540#issuecomment-265882107, here's a list of 287 inherited properties on `HTMLFormElement`s that get overridden by their inputs.\r\n\r\nOn [these elements](https://www.w3.org/TR/html5/forms.html#category-listed):\r\n\r\n- `<button>`\r\n- `<fieldset>`\r\n- `<input>`\r\n- `<keygen>`\r\n- `<object>`\r\n- `<output>`\r\n- `<select>`\r\n- `<textarea>`\r\n\r\nWe're gonna need to ban these `name`s or `id`s values...\r\n\r\n - [ ] `ALLOW_KEYBOARD_INPUT`\r\n - [ ] `ATTRIBUTE_NODE`\r\n - [ ] `CDATA_SECTION_NODE`\r\n - [ ] `COMMENT_NODE`\r\n - [ ] `DOCUMENT_FRAGMENT_NODE`\r\n - [ ] `DOCUMENT_NODE`\r\n - [ ] `DOCUMENT_POSITION_CONTAINED_BY`\r\n - [ ] `DOCUMENT_POSITION_CONTAINS`\r\n - [ ] `DOCUMENT_POSITION_DISCONNECTED`\r\n - [ ] `DOCUMENT_POSITION_FOLLOWING`\r\n - [ ] `DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC`\r\n - [ ] `DOCUMENT_POSITION_PRECEDING`\r\n - [ ] `DOCUMENT_TYPE_NODE`\r\n - [ ] `ELEMENT_NODE`\r\n - [ ] `ENTITY_NODE`\r\n - [ ] `ENTITY_REFERENCE_NODE`\r\n - [ ] `NOTATION_NODE`\r\n - [ ] `PROCESSING_INSTRUCTION_NODE`\r\n - [ ] `TEXT_NODE`\r\n - [ ] `__defineGetter__`\r\n - [ ] `__defineSetter__`\r\n - [ ] `__lookupGetter__`\r\n - [ ] `__lookupSetter__`\r\n - [ ] `__proto__`\r\n - [ ] `acceptCharset`\r\n - [ ] `accessKey`\r\n - [ ] `accessKeyLabel`\r\n - [ ] `action`\r\n - [ ] `addEventListener`\r\n - [ ] `after`\r\n - [ ] `animate`\r\n - [ ] `append`\r\n - [ ] `appendChild`\r\n - [ ] `assignedSlot`\r\n - [ ] `attachShadow`\r\n - [ ] `attributes`\r\n - [ ] `autocomplete`\r\n - [ ] `baseURI`\r\n - [ ] `before`\r\n - [ ] `blur`\r\n - [ ] `checkValidity`\r\n - [ ] `childElementCount`\r\n - [ ] `childNodes`\r\n - [ ] `children`\r\n - [ ] `classList`\r\n - [ ] `className`\r\n - [ ] `click`\r\n - [ ] `clientHeight`\r\n - [ ] `clientLeft`\r\n - [ ] `clientTop`\r\n - [ ] `clientWidth`\r\n - [ ] `cloneNode`\r\n - [ ] `closest`\r\n - [ ] `compareDocumentPosition`\r\n - [ ] `constructor`\r\n - [ ] `contains`\r\n - [ ] `contentEditable`\r\n - [ ] `contextMenu`\r\n - [ ] `createShadowRoot`\r\n - [ ] `dataset`\r\n - [ ] `dir`\r\n - [ ] `dispatchEvent`\r\n - [ ] `draggable`\r\n - [ ] `elements`\r\n - [ ] `encoding`\r\n - [ ] `enctype`\r\n - [ ] `firstChild`\r\n - [ ] `firstElementChild`\r\n - [ ] `focus`\r\n - [ ] `getAttribute`\r\n - [ ] `getAttributeNS`\r\n - [ ] `getAttributeNames`\r\n - [ ] `getAttributeNode`\r\n - [ ] `getAttributeNodeNS`\r\n - [ ] `getBoundingClientRect`\r\n - [ ] `getClientRects`\r\n - [ ] `getDestinationInsertionPoints`\r\n - [ ] `getElementsByClassName`\r\n - [ ] `getElementsByTagName`\r\n - [ ] `getElementsByTagNameNS`\r\n - [ ] `getRootNode`\r\n - [ ] `hasAttribute`\r\n - [ ] `hasAttributeNS`\r\n - [ ] `hasAttributes`\r\n - [ ] `hasChildNodes`\r\n - [ ] `hasOwnProperty`\r\n - [ ] `hidden`\r\n - [ ] `id`\r\n - [ ] `innerHTML`\r\n - [ ] `innerText`\r\n - [ ] `insertAdjacentElement`\r\n - [ ] `insertAdjacentHTML`\r\n - [ ] `insertAdjacentText`\r\n - [ ] `insertBefore`\r\n - [ ] `isConnected`\r\n - [ ] `isContentEditable`\r\n - [ ] `isDefaultNamespace`\r\n - [ ] `isEqualNode`\r\n - [ ] `isPrototypeOf`\r\n - [ ] `isSameNode`\r\n - [ ] `lang`\r\n - [ ] `lastChild`\r\n - [ ] `lastElementChild`\r\n - [ ] `length`\r\n - [ ] `localName`\r\n - [ ] `lookupNamespaceURI`\r\n - [ ] `lookupPrefix`\r\n - [ ] `matches`\r\n - [ ] `method`\r\n - [ ] `mozMatchesSelector`\r\n - [ ] `mozRequestFullScreen`\r\n - [ ] `mozRequestPointerLock`\r\n - [ ] `name`\r\n - [ ] `namespaceURI`\r\n - [ ] `nextElementSibling`\r\n - [ ] `nextSibling`\r\n - [ ] `noValidate`\r\n - [ ] `nodeName`\r\n - [ ] `nodeType`\r\n - [ ] `nodeValue`\r\n - [ ] `normalize`\r\n - [ ] `offsetHeight`\r\n - [ ] `offsetLeft`\r\n - [ ] `offsetParent`\r\n - [ ] `offsetTop`\r\n - [ ] `offsetWidth`\r\n - [ ] `onabort`\r\n - [ ] `onanimationend`\r\n - [ ] `onanimationiteration`\r\n - [ ] `onanimationstart`\r\n - [ ] `onbeforecopy`\r\n - [ ] `onbeforecut`\r\n - [ ] `onbeforeload`\r\n - [ ] `onbeforepaste`\r\n - [ ] `onblur`\r\n - [ ] `oncancel`\r\n - [ ] `oncanplay`\r\n - [ ] `oncanplaythrough`\r\n - [ ] `onchange`\r\n - [ ] `onclick`\r\n - [ ] `onclose`\r\n - [ ] `oncontextmenu`\r\n - [ ] `oncopy`\r\n - [ ] `oncuechange`\r\n - [ ] `oncut`\r\n - [ ] `ondblclick`\r\n - [ ] `ondrag`\r\n - [ ] `ondragend`\r\n - [ ] `ondragenter`\r\n - [ ] `ondragleave`\r\n - [ ] `ondragover`\r\n - [ ] `ondragstart`\r\n - [ ] `ondrop`\r\n - [ ] `ondurationchange`\r\n - [ ] `onemptied`\r\n - [ ] `onended`\r\n - [ ] `onerror`\r\n - [ ] `onfocus`\r\n - [ ] `onfocusin`\r\n - [ ] `onfocusout`\r\n - [ ] `oninput`\r\n - [ ] `oninvalid`\r\n - [ ] `onkeydown`\r\n - [ ] `onkeypress`\r\n - [ ] `onkeyup`\r\n - [ ] `onload`\r\n - [ ] `onloadeddata`\r\n - [ ] `onloadedmetadata`\r\n - [ ] `onloadstart`\r\n - [ ] `onmousedown`\r\n - [ ] `onmouseenter`\r\n - [ ] `onmouseleave`\r\n - [ ] `onmousemove`\r\n - [ ] `onmouseout`\r\n - [ ] `onmouseover`\r\n - [ ] `onmouseup`\r\n - [ ] `onmousewheel`\r\n - [ ] `onmozfullscreenchange`\r\n - [ ] `onmozfullscreenerror`\r\n - [ ] `onmozpointerlockchange`\r\n - [ ] `onmozpointerlockerror`\r\n - [ ] `onpaste`\r\n - [ ] `onpause`\r\n - [ ] `onplay`\r\n - [ ] `onplaying`\r\n - [ ] `onprogress`\r\n - [ ] `onratechange`\r\n - [ ] `onreset`\r\n - [ ] `onresize`\r\n - [ ] `onscroll`\r\n - [ ] `onsearch`\r\n - [ ] `onseeked`\r\n - [ ] `onseeking`\r\n - [ ] `onselect`\r\n - [ ] `onselectstart`\r\n - [ ] `onshow`\r\n - [ ] `onstalled`\r\n - [ ] `onsubmit`\r\n - [ ] `onsuspend`\r\n - [ ] `ontimeupdate`\r\n - [ ] `ontoggle`\r\n - [ ] `ontransitionend`\r\n - [ ] `onvolumechange`\r\n - [ ] `onwaiting`\r\n - [ ] `onwebkitanimationend`\r\n - [ ] `onwebkitanimationiteration`\r\n - [ ] `onwebkitanimationstart`\r\n - [ ] `onwebkitcurrentplaybacktargetiswirelesschanged`\r\n - [ ] `onwebkitfullscreenchange`\r\n - [ ] `onwebkitfullscreenerror`\r\n - [ ] `onwebkitkeyadded`\r\n - [ ] `onwebkitkeyerror`\r\n - [ ] `onwebkitkeymessage`\r\n - [ ] `onwebkitmouseforcechanged`\r\n - [ ] `onwebkitmouseforcedown`\r\n - [ ] `onwebkitmouseforceup`\r\n - [ ] `onwebkitmouseforcewillbegin`\r\n - [ ] `onwebkitneedkey`\r\n - [ ] `onwebkitplaybacktargetavailabilitychanged`\r\n - [ ] `onwebkittransitionend`\r\n - [ ] `onwheel`\r\n - [ ] `outerHTML`\r\n - [ ] `outerText`\r\n - [ ] `ownerDocument`\r\n - [ ] `parentElement`\r\n - [ ] `parentNode`\r\n - [ ] `prefix`\r\n - [ ] `prepend`\r\n - [ ] `previousElementSibling`\r\n - [ ] `previousSibling`\r\n - [ ] `propertyIsEnumerable`\r\n - [ ] `querySelector`\r\n - [ ] `querySelectorAll`\r\n - [ ] `releaseCapture`\r\n - [ ] `remove`\r\n - [ ] `removeAttribute`\r\n - [ ] `removeAttributeNS`\r\n - [ ] `removeAttributeNode`\r\n - [ ] `removeChild`\r\n - [ ] `removeEventListener`\r\n - [ ] `replaceChild`\r\n - [ ] `replaceWith`\r\n - [ ] `reportValidity`\r\n - [ ] `requestPointerLock`\r\n - [ ] `reset`\r\n - [ ] `scroll`\r\n - [ ] `scrollBy`\r\n - [ ] `scrollByLines`\r\n - [ ] `scrollByPages`\r\n - [ ] `scrollHeight`\r\n - [ ] `scrollIntoView`\r\n - [ ] `scrollIntoViewIfNeeded`\r\n - [ ] `scrollLeft`\r\n - [ ] `scrollLeftMax`\r\n - [ ] `scrollTo`\r\n - [ ] `scrollTop`\r\n - [ ] `scrollTopMax`\r\n - [ ] `scrollWidth`\r\n - [ ] `setAttribute`\r\n - [ ] `setAttributeNS`\r\n - [ ] `setAttributeNode`\r\n - [ ] `setAttributeNodeNS`\r\n - [ ] `setCapture`\r\n - [ ] `shadowRoot`\r\n - [ ] `slot`\r\n - [ ] `spellcheck`\r\n - [ ] `style`\r\n - [ ] `submit`\r\n - [ ] `tabIndex`\r\n - [ ] `tagName`\r\n - [ ] `target`\r\n - [ ] `textContent`\r\n - [ ] `title`\r\n - [ ] `toLocaleString`\r\n - [ ] `toSource`\r\n - [ ] `toString`\r\n - [ ] `translate`\r\n - [ ] `undefined`\r\n - [ ] `unwatch`\r\n - [ ] `valueOf`\r\n - [ ] `watch`\r\n - [ ] `webkitGetRegionFlowRanges`\r\n - [ ] `webkitMatchesSelector`\r\n - [ ] `webkitRegionOverset`\r\n - [ ] `webkitRequestFullScreen`\r\n - [ ] `webkitRequestFullscreen`\r\n - [ ] `webkitdropzone`\r\n\r\n\r\nNote, the forbidden values list was generated running the following on Firefox, Safari, and Chrome:\r\n\r\n```js\r\nconst array = [];\r\nlet proto = HTMLFormElement.prototype\r\nwhile (proto) {\r\n  array.push(...Object.getOwnPropertyNames(proto));\r\n  proto = proto.__proto__;\r\n}\r\nconst set = new Set(array);\r\n```"},"comment":{"url":"https://api.github.com/repos/ampproject/amphtml/issues/comments/266118835","html_url":"https://github.com/ampproject/amphtml/issues/6579#issuecomment-266118835","issue_url":"https://api.github.com/repos/ampproject/amphtml/issues/6579","id":266118835,"user":{"login":"mkhatib","id":2647,"avatar_url":"https://avatars.githubusercontent.com/u/2647?v=3","gravatar_id":"","url":"https://api.github.com/users/mkhatib","html_url":"https://github.com/mkhatib","followers_url":"https://api.github.com/users/mkhatib/followers","following_url":"https://api.github.com/users/mkhatib/following{/other_user}","gists_url":"https://api.github.com/users/mkhatib/gists{/gist_id}","starred_url":"https://api.github.com/users/mkhatib/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkhatib/subscriptions","organizations_url":"https://api.github.com/users/mkhatib/orgs","repos_url":"https://api.github.com/users/mkhatib/repos","events_url":"https://api.github.com/users/mkhatib/events{/privacy}","received_events_url":"https://api.github.com/users/mkhatib/received_events","type":"User","site_admin":false},"created_at":"2016-12-09T20:46:29Z","updated_at":"2016-12-09T20:46:29Z","body":"I like the runtime prefixing and submitting normally. The problem still exists though when we don't handle submission, I guess we can try to revert the names to be the old prefix before submission just before the submission and hopefully after everything else, this might work."}}
{"actor":{"display_login":"mkhatib"}}