| Index: Source/core/html/forms/RadioInputType.cpp
|
| diff --git a/Source/core/html/forms/RadioInputType.cpp b/Source/core/html/forms/RadioInputType.cpp
|
| index b6045b22108c6e13bf6141e5475f854104d98dbf..f851b6dd73a6511a10829aafb7ad5b1cd68f214a 100644
|
| --- a/Source/core/html/forms/RadioInputType.cpp
|
| +++ b/Source/core/html/forms/RadioInputType.cpp
|
| @@ -36,7 +36,7 @@ namespace WebCore {
|
|
|
| using namespace HTMLNames;
|
|
|
| -PassRefPtr<InputType> RadioInputType::create(HTMLInputElement* element)
|
| +PassRefPtr<InputType> RadioInputType::create(HTMLInputElement& element)
|
| {
|
| return adoptRef(new RadioInputType(element));
|
| }
|
| @@ -48,7 +48,7 @@ const AtomicString& RadioInputType::formControlType() const
|
|
|
| bool RadioInputType::valueMissing(const String&) const
|
| {
|
| - return element()->isInRequiredRadioButtonGroup() && !element()->checkedRadioButtonForGroup();
|
| + return element().isInRequiredRadioButtonGroup() && !element().checkedRadioButtonForGroup();
|
| }
|
|
|
| String RadioInputType::valueMissingText() const
|
| @@ -76,14 +76,14 @@ void RadioInputType::handleKeydownEvent(KeyboardEvent* event)
|
| // (and so moves to the right). Seems strange, but we'll match it. However,
|
| // when using Spatial Navigation, we need to be able to navigate without
|
| // changing the selection.
|
| - Document& document = element()->document();
|
| + Document& document = element().document();
|
| if (isSpatialNavigationEnabled(document.frame()))
|
| return;
|
| bool forward = (key == "Down" || key == "Right");
|
|
|
| // We can only stay within the form's children if the form hasn't been demoted to a leaf because
|
| // of malformed HTML.
|
| - Node* node = element();
|
| + Node* node = &element();
|
| while ((node = (forward ? NodeTraversal::next(node) : NodeTraversal::previous(node)))) {
|
| // Once we encounter a form element, we know we're through.
|
| if (node->hasTagName(formTag))
|
| @@ -92,9 +92,9 @@ void RadioInputType::handleKeydownEvent(KeyboardEvent* event)
|
| if (!node->hasTagName(inputTag))
|
| continue;
|
| HTMLInputElement* inputElement = toHTMLInputElement(node);
|
| - if (inputElement->form() != element()->form())
|
| + if (inputElement->form() != element().form())
|
| break;
|
| - if (inputElement->isRadioButton() && inputElement->name() == element()->name() && inputElement->isFocusable()) {
|
| + if (inputElement->isRadioButton() && inputElement->name() == element().name() && inputElement->isFocusable()) {
|
| RefPtr<HTMLInputElement> protector(inputElement);
|
| document.setFocusedElement(inputElement);
|
| inputElement->dispatchSimulatedClick(event, SendNoEvents, DoNotShowPressedLook);
|
| @@ -111,7 +111,7 @@ void RadioInputType::handleKeyupEvent(KeyboardEvent* event)
|
| return;
|
| // If an unselected radio is tabbed into (because the entire group has nothing
|
| // checked, or because of some explicit .focus() call), then allow space to check it.
|
| - if (element()->checked())
|
| + if (element().checked())
|
| return;
|
| dispatchSimulatedClickIfActive(event);
|
| }
|
| @@ -122,27 +122,27 @@ bool RadioInputType::isKeyboardFocusable() const
|
| return false;
|
|
|
| // When using Spatial Navigation, every radio button should be focusable.
|
| - if (isSpatialNavigationEnabled(element()->document().frame()))
|
| + if (isSpatialNavigationEnabled(element().document().frame()))
|
| return true;
|
|
|
| // Never allow keyboard tabbing to leave you in the same radio group. Always
|
| // skip any other elements in the group.
|
| - Element* currentFocusedElement = element()->document().focusedElement();
|
| + Element* currentFocusedElement = element().document().focusedElement();
|
| if (currentFocusedElement && currentFocusedElement->hasTagName(inputTag)) {
|
| HTMLInputElement* focusedInput = toHTMLInputElement(currentFocusedElement);
|
| - if (focusedInput->isRadioButton() && focusedInput->form() == element()->form() && focusedInput->name() == element()->name())
|
| + if (focusedInput->isRadioButton() && focusedInput->form() == element().form() && focusedInput->name() == element().name())
|
| return false;
|
| }
|
|
|
| // Allow keyboard focus if we're checked or if nothing in the group is checked.
|
| - return element()->checked() || !element()->checkedRadioButtonForGroup();
|
| + return element().checked() || !element().checkedRadioButtonForGroup();
|
| }
|
|
|
| bool RadioInputType::shouldSendChangeEventAfterCheckedChanged()
|
| {
|
| // Don't send a change event for a radio button that's getting unchecked.
|
| // This was done to match the behavior of other browsers.
|
| - return element()->checked();
|
| + return element().checked();
|
| }
|
|
|
| PassOwnPtr<ClickHandlingState> RadioInputType::willDispatchClick()
|
| @@ -156,9 +156,9 @@ PassOwnPtr<ClickHandlingState> RadioInputType::willDispatchClick()
|
|
|
| OwnPtr<ClickHandlingState> state = adoptPtr(new ClickHandlingState);
|
|
|
| - state->checked = element()->checked();
|
| - state->checkedRadioButton = element()->checkedRadioButtonForGroup();
|
| - element()->setChecked(true, DispatchChangeEvent);
|
| + state->checked = element().checked();
|
| + state->checkedRadioButton = element().checkedRadioButtonForGroup();
|
| + element().setChecked(true, DispatchChangeEvent);
|
|
|
| return state.release();
|
| }
|
| @@ -171,8 +171,8 @@ void RadioInputType::didDispatchClick(Event* event, const ClickHandlingState& st
|
| HTMLInputElement* checkedRadioButton = state.checkedRadioButton.get();
|
| if (checkedRadioButton
|
| && checkedRadioButton->isRadioButton()
|
| - && checkedRadioButton->form() == element()->form()
|
| - && checkedRadioButton->name() == element()->name()) {
|
| + && checkedRadioButton->form() == element().form()
|
| + && checkedRadioButton->name() == element().name()) {
|
| checkedRadioButton->setChecked(true);
|
| }
|
| }
|
|
|