| 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 reserv
ed. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
| 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 { | 119 { |
| 120 return !checkInvalidControlsAndCollectUnhandled(0, CheckValidityDispatchNoEv
ent); | 120 return !checkInvalidControlsAndCollectUnhandled(0, CheckValidityDispatchNoEv
ent); |
| 121 } | 121 } |
| 122 | 122 |
| 123 bool HTMLFormElement::layoutObjectIsNeeded(const LayoutStyle& style) | 123 bool HTMLFormElement::layoutObjectIsNeeded(const LayoutStyle& style) |
| 124 { | 124 { |
| 125 if (!m_wasDemoted) | 125 if (!m_wasDemoted) |
| 126 return HTMLElement::layoutObjectIsNeeded(style); | 126 return HTMLElement::layoutObjectIsNeeded(style); |
| 127 | 127 |
| 128 ContainerNode* node = parentNode(); | 128 ContainerNode* node = parentNode(); |
| 129 if (!node || !node->renderer()) | 129 if (!node || !node->layoutObject()) |
| 130 return HTMLElement::layoutObjectIsNeeded(style); | 130 return HTMLElement::layoutObjectIsNeeded(style); |
| 131 LayoutObject* parentRenderer = node->renderer(); | 131 LayoutObject* parentRenderer = node->layoutObject(); |
| 132 // FIXME: Shouldn't we also check for table caption (see |formIsTablePart| b
elow). | 132 // FIXME: Shouldn't we also check for table caption (see |formIsTablePart| b
elow). |
| 133 // FIXME: This check is not correct for Shadow DOM. | 133 // FIXME: This check is not correct for Shadow DOM. |
| 134 bool parentIsTableElementPart = (parentRenderer->isTable() && isHTMLTableEle
ment(*node)) | 134 bool parentIsTableElementPart = (parentRenderer->isTable() && isHTMLTableEle
ment(*node)) |
| 135 || (parentRenderer->isTableRow() && isHTMLTableRowElement(*node)) | 135 || (parentRenderer->isTableRow() && isHTMLTableRowElement(*node)) |
| 136 || (parentRenderer->isTableSection() && node->hasTagName(tbodyTag)) | 136 || (parentRenderer->isTableSection() && node->hasTagName(tbodyTag)) |
| 137 || (parentRenderer->isLayoutTableCol() && node->hasTagName(colTag)) | 137 || (parentRenderer->isLayoutTableCol() && node->hasTagName(colTag)) |
| 138 || (parentRenderer->isTableCell() && isHTMLTableRowElement(*node)); | 138 || (parentRenderer->isTableCell() && isHTMLTableRowElement(*node)); |
| 139 | 139 |
| 140 if (!parentIsTableElementPart) | 140 if (!parentIsTableElementPart) |
| 141 return true; | 141 return true; |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 toHTMLFormControlElement(elements[i])->hideVisibleValidationMessage(
); | 280 toHTMLFormControlElement(elements[i])->hideVisibleValidationMessage(
); |
| 281 } | 281 } |
| 282 | 282 |
| 283 WillBeHeapVector<RefPtrWillBeMember<HTMLFormControlElement>> unhandledInvali
dControls; | 283 WillBeHeapVector<RefPtrWillBeMember<HTMLFormControlElement>> unhandledInvali
dControls; |
| 284 if (!checkInvalidControlsAndCollectUnhandled(&unhandledInvalidControls, Chec
kValidityDispatchInvalidEvent)) | 284 if (!checkInvalidControlsAndCollectUnhandled(&unhandledInvalidControls, Chec
kValidityDispatchInvalidEvent)) |
| 285 return true; | 285 return true; |
| 286 // Because the form has invalid controls, we abort the form submission and | 286 // Because the form has invalid controls, we abort the form submission and |
| 287 // show a validation message on a focusable form control. | 287 // show a validation message on a focusable form control. |
| 288 | 288 |
| 289 // Needs to update layout now because we'd like to call isFocusable(), which | 289 // Needs to update layout now because we'd like to call isFocusable(), which |
| 290 // has !renderer()->needsLayout() assertion. | 290 // has !layoutObject()->needsLayout() assertion. |
| 291 document().updateLayoutIgnorePendingStylesheets(); | 291 document().updateLayoutIgnorePendingStylesheets(); |
| 292 | 292 |
| 293 RefPtrWillBeRawPtr<HTMLFormElement> protector(this); | 293 RefPtrWillBeRawPtr<HTMLFormElement> protector(this); |
| 294 // Focus on the first focusable control and show a validation message. | 294 // Focus on the first focusable control and show a validation message. |
| 295 for (unsigned i = 0; i < unhandledInvalidControls.size(); ++i) { | 295 for (unsigned i = 0; i < unhandledInvalidControls.size(); ++i) { |
| 296 HTMLFormControlElement* unhandled = unhandledInvalidControls[i].get(); | 296 HTMLFormControlElement* unhandled = unhandledInvalidControls[i].get(); |
| 297 if (unhandled->isFocusable()) { | 297 if (unhandled->isFocusable()) { |
| 298 unhandled->showValidationMessage(); | 298 unhandled->showValidationMessage(); |
| 299 break; | 299 break; |
| 300 } | 300 } |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 848 } | 848 } |
| 849 | 849 |
| 850 void HTMLFormElement::setDemoted(bool demoted) | 850 void HTMLFormElement::setDemoted(bool demoted) |
| 851 { | 851 { |
| 852 if (demoted) | 852 if (demoted) |
| 853 UseCounter::count(document(), UseCounter::DemotedFormElement); | 853 UseCounter::count(document(), UseCounter::DemotedFormElement); |
| 854 m_wasDemoted = demoted; | 854 m_wasDemoted = demoted; |
| 855 } | 855 } |
| 856 | 856 |
| 857 } // namespace | 857 } // namespace |
| OLD | NEW |