OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights |
6 * reserved. | 6 * reserved. |
7 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 7 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 | 284 |
285 if (document().isSandboxed(SandboxForms)) { | 285 if (document().isSandboxed(SandboxForms)) { |
286 document().addConsoleMessage(ConsoleMessage::create( | 286 document().addConsoleMessage(ConsoleMessage::create( |
287 SecurityMessageSource, ErrorMessageLevel, | 287 SecurityMessageSource, ErrorMessageLevel, |
288 "Blocked form submission to '" + m_attributes.action() + | 288 "Blocked form submission to '" + m_attributes.action() + |
289 "' because the form's frame is sandboxed and the 'allow-forms' " | 289 "' because the form's frame is sandboxed and the 'allow-forms' " |
290 "permission is not set.")); | 290 "permission is not set.")); |
291 return; | 291 return; |
292 } | 292 } |
293 | 293 |
| 294 // https://github.com/whatwg/html/issues/2253 |
| 295 for (const auto& element : listedElements()) { |
| 296 if (element->isFormControlElement() && |
| 297 toHTMLFormControlElement(element)->blocksFormSubmission()) { |
| 298 UseCounter::count(document(), |
| 299 UseCounter::FormSubmittedWithUnclosedFormControl); |
| 300 if (RuntimeEnabledFeatures::unclosedFormControlIsInvalidEnabled()) { |
| 301 String tagName = toHTMLFormControlElement(element)->tagName(); |
| 302 document().addConsoleMessage(ConsoleMessage::create( |
| 303 SecurityMessageSource, ErrorMessageLevel, |
| 304 "Form submission failed, as the <" + tagName + "> element named " |
| 305 "'" + element->name() + "' was implicitly closed by reaching " |
| 306 "the end of the file. Please add an explicit end tag " |
| 307 "('</" + tagName + ">')")); |
| 308 dispatchEvent(Event::create(EventTypeNames::error)); |
| 309 return; |
| 310 } |
| 311 } |
| 312 } |
| 313 |
294 bool skipValidation = !document().page() || noValidate(); | 314 bool skipValidation = !document().page() || noValidate(); |
295 DCHECK(event); | 315 DCHECK(event); |
296 if (submitButton && submitButton->formNoValidate()) | 316 if (submitButton && submitButton->formNoValidate()) |
297 skipValidation = true; | 317 skipValidation = true; |
298 | 318 |
299 UseCounter::count(document(), UseCounter::FormSubmissionStarted); | 319 UseCounter::count(document(), UseCounter::FormSubmissionStarted); |
300 // Interactive validation must be done before dispatching the submit event. | 320 // Interactive validation must be done before dispatching the submit event. |
301 if (!skipValidation && !validateInteractively()) | 321 if (!skipValidation && !validateInteractively()) |
302 return; | 322 return; |
303 | 323 |
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 for (const auto& control : listedElements()) { | 826 for (const auto& control : listedElements()) { |
807 if (!control->isFormControlElement()) | 827 if (!control->isFormControlElement()) |
808 continue; | 828 continue; |
809 if (toHTMLFormControlElement(control)->canBeSuccessfulSubmitButton()) | 829 if (toHTMLFormControlElement(control)->canBeSuccessfulSubmitButton()) |
810 toHTMLFormControlElement(control)->pseudoStateChanged( | 830 toHTMLFormControlElement(control)->pseudoStateChanged( |
811 CSSSelector::PseudoDefault); | 831 CSSSelector::PseudoDefault); |
812 } | 832 } |
813 } | 833 } |
814 | 834 |
815 } // namespace blink | 835 } // namespace blink |
OLD | NEW |