Diff
Modified: trunk/LayoutTests/ChangeLog (89990 => 89991)
--- trunk/LayoutTests/ChangeLog 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/LayoutTests/ChangeLog 2011-06-29 06:35:41 UTC (rev 89991)
@@ -1,3 +1,13 @@
+2011-06-28 Ilya Sherman <[email protected]>
+
+ Reviewed by Adam Barth.
+
+ form.autocomplete="off" does not work
+ https://bugs.webkit.org/show_bug.cgi?id=35823
+
+ * fast/forms/autocomplete-expected.txt: Added.
+ * fast/forms/autocomplete.html: Added.
+
2011-06-28 Roland Steiner <[email protected]>
Unreviewed: change URLs in ruby layout tests to lower case in order
Added: trunk/LayoutTests/fast/forms/autocomplete-expected.txt (0 => 89991)
--- trunk/LayoutTests/fast/forms/autocomplete-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/forms/autocomplete-expected.txt 2011-06-29 06:35:41 UTC (rev 89991)
@@ -0,0 +1,13 @@
+This tests that the 'autocomplete' attribute of form and input elements is bound to a _javascript_ property.
+
+PASS ('autocomplete' in form) is true
+PASS ('autocomplete' in field) is true
+PASS form.getAttribute('autocomplete') is null
+PASS field.getAttribute('autocomplete') is null
+PASS form.autocomplete is ""
+PASS field.autocomplete is ""
+PASS form.getAttribute('autocomplete') is "off"
+PASS field.getAttribute('autocomplete') is "off"
+PASS form.autocomplete is "on"
+PASS field.autocomplete is "on"
+
Added: trunk/LayoutTests/fast/forms/autocomplete.html (0 => 89991)
--- trunk/LayoutTests/fast/forms/autocomplete.html (rev 0)
+++ trunk/LayoutTests/fast/forms/autocomplete.html 2011-06-29 06:35:41 UTC (rev 89991)
@@ -0,0 +1,37 @@
+<html>
+<head>
+ <script src=""
+ <script>
+ function test() {
+ var form = document.getElementById('form');
+ var field = document.getElementById('field');
+
+ shouldBeTrue("('autocomplete' in form)");
+ shouldBeTrue("('autocomplete' in field)");
+
+ shouldBeNull("form.getAttribute('autocomplete')");
+ shouldBeNull("field.getAttribute('autocomplete')");
+
+ shouldBeEqualToString("form.autocomplete", "");
+ shouldBeEqualToString("field.autocomplete", "");
+
+ form.autocomplete = 'off';
+ field.autocomplete = 'off';
+ shouldBeEqualToString("form.getAttribute('autocomplete')", "off");
+ shouldBeEqualToString("field.getAttribute('autocomplete')", "off");
+
+ form.setAttribute('autocomplete', 'on');
+ field.setAttribute('autocomplete', 'on');
+ shouldBeEqualToString("form.autocomplete", "on");
+ shouldBeEqualToString("field.autocomplete", "on");
+ }
+ </script>
+</head>
+<body _onload_="test()">
+ This tests that the 'autocomplete' attribute of form and input elements is bound to a _javascript_ property.
+ <form id="form">
+ <input type="text" id="field" />
+ </form>
+ <div id="console"></div>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (89990 => 89991)
--- trunk/Source/WebCore/ChangeLog 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/ChangeLog 2011-06-29 06:35:41 UTC (rev 89991)
@@ -1,3 +1,33 @@
+2011-06-28 Ilya Sherman <[email protected]>
+
+ Reviewed by Adam Barth.
+
+ form.autocomplete="off" does not work
+ Rename the autoComplete() method for HTMLFormElement, HTMLFormControlElementWithState, and HTMLInputElement to shouldAutocomplete()
+ Add the autocomplete attribute to HTMLFormElement.idl and HTMLInputElement.idl
+ https://bugs.webkit.org/show_bug.cgi?id=35823
+
+ Test: fast/forms/autocomplete.html
+
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElementWithState::shouldAutocomplete): Renamed from ::autoComplete()
+ (WebCore::HTMLFormControlElementWithState::shouldSaveAndRestoreFormControlState): Update callsite.
+ * html/HTMLFormControlElement.h:
+ * html/HTMLFormElement.cpp:
+ (WebCore::HTMLFormElement::~HTMLFormElement): Update callsite.
+ (WebCore::HTMLFormElement::parseMappedAttribute): Update callsite.
+ (WebCore::HTMLFormElement::documentDidBecomeActive): Update callsite.
+ (WebCore::HTMLFormElement::willMoveToNewOwnerDocument): Update callsite.
+ (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Update callsite.
+ (WebCore::HTMLFormElement::shouldAutocomplete): Renamed from ::autoComplete()
+ * html/HTMLFormElement.h:
+ * html/HTMLFormElement.idl: Bind the autocomplete attribute to a _javascript_ property.
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::shouldAutocomplete): Renamed from ::autoComplete()
+ * html/HTMLInputElement.h:
+ * html/HTMLInputElement.idl: Bind the autocomplete attribute to a _javascript_ property.
+ * WebCore.exp.in: Updated autoComplete() -> shouldAutocomplete()
+
2011-06-28 Dimitri Glazkov <[email protected]>
Reviewed by Kent Tamura.
Modified: trunk/Source/WebCore/WebCore.exp.in (89990 => 89991)
--- trunk/Source/WebCore/WebCore.exp.in 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/WebCore.exp.in 2011-06-29 06:35:41 UTC (rev 89991)
@@ -1163,8 +1163,8 @@
__ZNK7WebCore15VisiblePosition8previousENS_27EditingBoundaryCrossingRuleE
__ZNK7WebCore16FontFallbackList10fontDataAtEPKNS_4FontEj
__ZNK7WebCore16HTMLInputElement11isTextFieldEv
-__ZNK7WebCore16HTMLInputElement12autoCompleteEv
__ZNK7WebCore16HTMLInputElement15isPasswordFieldEv
+__ZNK7WebCore16HTMLInputElement18shouldAutocompleteEv
__ZNK7WebCore16HTMLInputElement21lastChangeWasUserEditEv
__ZNK7WebCore16IconDatabaseBase12databasePathEv
__ZNK7WebCore16ResourceResponse13nsURLResponseEv
Modified: trunk/Source/WebCore/html/HTMLFormControlElement.cpp (89990 => 89991)
--- trunk/Source/WebCore/html/HTMLFormControlElement.cpp 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.cpp 2011-06-29 06:35:41 UTC (rev 89991)
@@ -521,17 +521,17 @@
HTMLFormControlElement::didMoveToNewOwnerDocument();
}
-bool HTMLFormControlElementWithState::autoComplete() const
+bool HTMLFormControlElementWithState::shouldAutocomplete() const
{
if (!form())
return true;
- return form()->autoComplete();
+ return form()->shouldAutocomplete();
}
bool HTMLFormControlElementWithState::shouldSaveAndRestoreFormControlState() const
{
// We don't save/restore control state in a form with autocomplete=off.
- return attached() && autoComplete();
+ return attached() && shouldAutocomplete();
}
void HTMLFormControlElementWithState::finishParsingChildren()
Modified: trunk/Source/WebCore/html/HTMLFormControlElement.h (89990 => 89991)
--- trunk/Source/WebCore/html/HTMLFormControlElement.h 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.h 2011-06-29 06:35:41 UTC (rev 89991)
@@ -175,7 +175,7 @@
protected:
HTMLFormControlElementWithState(const QualifiedName& tagName, Document*, HTMLFormElement*);
- virtual bool autoComplete() const;
+ virtual bool shouldAutocomplete() const;
virtual void finishParsingChildren();
virtual void willMoveToNewOwnerDocument();
virtual void didMoveToNewOwnerDocument();
Modified: trunk/Source/WebCore/html/HTMLFormElement.cpp (89990 => 89991)
--- trunk/Source/WebCore/html/HTMLFormElement.cpp 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/html/HTMLFormElement.cpp 2011-06-29 06:35:41 UTC (rev 89991)
@@ -91,7 +91,7 @@
HTMLFormElement::~HTMLFormElement()
{
- if (!autoComplete())
+ if (!shouldAutocomplete())
document()->unregisterForDocumentActivationCallbacks(this);
for (unsigned i = 0; i < m_associatedElements.size(); ++i)
@@ -376,7 +376,7 @@
else if (attr->name() == accept_charsetAttr)
m_attributes.setAcceptCharset(attr->value());
else if (attr->name() == autocompleteAttr) {
- if (!autoComplete())
+ if (!shouldAutocomplete())
document()->registerForDocumentActivationCallbacks(this);
else
document()->unregisterForDocumentActivationCallbacks(this);
@@ -638,7 +638,7 @@
void HTMLFormElement::documentDidBecomeActive()
{
- ASSERT(!autoComplete());
+ ASSERT(!shouldAutocomplete());
for (unsigned i = 0; i < m_associatedElements.size(); ++i) {
if (m_associatedElements[i]->isFormControlElement())
@@ -648,19 +648,19 @@
void HTMLFormElement::willMoveToNewOwnerDocument()
{
- if (!autoComplete())
+ if (!shouldAutocomplete())
document()->unregisterForDocumentActivationCallbacks(this);
HTMLElement::willMoveToNewOwnerDocument();
}
void HTMLFormElement::didMoveToNewOwnerDocument()
{
- if (!autoComplete())
+ if (!shouldAutocomplete())
document()->registerForDocumentActivationCallbacks(this);
HTMLElement::didMoveToNewOwnerDocument();
}
-bool HTMLFormElement::autoComplete() const
+bool HTMLFormElement::shouldAutocomplete() const
{
return !equalIgnoringCase(fastGetAttribute(autocompleteAttr), "off");
}
Modified: trunk/Source/WebCore/html/HTMLFormElement.h (89990 => 89991)
--- trunk/Source/WebCore/html/HTMLFormElement.h 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/html/HTMLFormElement.h 2011-06-29 06:35:41 UTC (rev 89991)
@@ -61,8 +61,7 @@
String encoding() const { return m_attributes.encodingType(); }
void setEncoding(const String& value) { setEnctype(value); }
- // FIXME: Rename this function to shouldAutocomplete.
- bool autoComplete() const;
+ bool shouldAutocomplete() const;
// FIXME: Should rename these two functions to say "form control" or "form-associated element" instead of "form element".
void registerFormElement(FormAssociatedElement*);
Modified: trunk/Source/WebCore/html/HTMLFormElement.idl (89990 => 89991)
--- trunk/Source/WebCore/html/HTMLFormElement.idl 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/html/HTMLFormElement.idl 2011-06-29 06:35:41 UTC (rev 89991)
@@ -35,6 +35,7 @@
attribute [ConvertNullToNullString] DOMString enctype;
attribute [Reflect] DOMString method;
attribute [Reflect] DOMString target;
+ attribute [Reflect] DOMString autocomplete;
#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
[ImplementationFunction=submitFromJavaScript] void submit();
Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (89990 => 89991)
--- trunk/Source/WebCore/html/HTMLInputElement.cpp 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp 2011-06-29 06:35:41 UTC (rev 89991)
@@ -161,11 +161,11 @@
}
#endif
-bool HTMLInputElement::autoComplete() const
+bool HTMLInputElement::shouldAutocomplete() const
{
if (m_autocomplete != Uninitialized)
return m_autocomplete == On;
- return HTMLTextFormControlElement::autoComplete();
+ return HTMLTextFormControlElement::shouldAutocomplete();
}
void HTMLInputElement::updateCheckedRadioButtons()
Modified: trunk/Source/WebCore/html/HTMLInputElement.h (89990 => 89991)
--- trunk/Source/WebCore/html/HTMLInputElement.h 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/html/HTMLInputElement.h 2011-06-29 06:35:41 UTC (rev 89991)
@@ -44,7 +44,7 @@
virtual HTMLInputElement* toInputElement() { return this; }
- bool autoComplete() const;
+ virtual bool shouldAutocomplete() const;
// For ValidityState
bool typeMismatch() const;
Modified: trunk/Source/WebCore/html/HTMLInputElement.idl (89990 => 89991)
--- trunk/Source/WebCore/html/HTMLInputElement.idl 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebCore/html/HTMLInputElement.idl 2011-06-29 06:35:41 UTC (rev 89991)
@@ -39,6 +39,7 @@
attribute boolean checked;
attribute [Reflect] boolean disabled;
attribute [Reflect] boolean autofocus;
+ attribute [Reflect] DOMString autocomplete;
#if defined(ENABLE_DATALIST) && ENABLE_DATALIST
readonly attribute HTMLElement list;
#endif
Modified: trunk/Source/WebKit/chromium/ChangeLog (89990 => 89991)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-06-29 06:35:41 UTC (rev 89991)
@@ -1,3 +1,19 @@
+2011-06-28 Ilya Sherman <[email protected]>
+
+ Reviewed by Adam Barth.
+
+ form.autocomplete="off" does not work
+ https://bugs.webkit.org/show_bug.cgi?id=35823
+
+ * src/EditorClientImpl.cpp:
+ (WebKit::EditorClientImpl::autofill): Update callsite.
+ * src/WebFormElement.cpp:
+ (WebKit::WebFormElement::autoComplete): Update callsite.
+ * src/WebInputElement.cpp:
+ (WebKit::WebInputElement::autoComplete): Update callsite.
+ * src/WebPasswordFormUtils.cpp:
+ (WebKit::findPasswordFormFields): Update callsite.
+
2011-06-28 Ryosuke Niwa <[email protected]>
Rolled DEPS.
Modified: trunk/Source/WebKit/chromium/src/EditorClientImpl.cpp (89990 => 89991)
--- trunk/Source/WebKit/chromium/src/EditorClientImpl.cpp 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/chromium/src/EditorClientImpl.cpp 2011-06-29 06:35:41 UTC (rev 89991)
@@ -731,11 +731,9 @@
m_autofillArgs.clear();
m_autofillTimer.stop();
- // FIXME: Remove the extraneous isEnabledFormControl call below.
// Let's try to trigger autofill for that field, if applicable.
if (!inputElement->isEnabledFormControl() || !inputElement->isTextField()
- || inputElement->isPasswordField() || !inputElement->autoComplete()
- || !inputElement->isEnabledFormControl()
+ || inputElement->isPasswordField() || !inputElement->shouldAutocomplete()
|| inputElement->isReadOnlyFormControl())
return false;
Modified: trunk/Source/WebKit/chromium/src/WebFormElement.cpp (89990 => 89991)
--- trunk/Source/WebKit/chromium/src/WebFormElement.cpp 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/chromium/src/WebFormElement.cpp 2011-06-29 06:35:41 UTC (rev 89991)
@@ -48,7 +48,7 @@
bool WebFormElement::autoComplete() const
{
- return constUnwrap<HTMLFormElement>()->autoComplete();
+ return constUnwrap<HTMLFormElement>()->shouldAutocomplete();
}
WebString WebFormElement::action() const
Modified: trunk/Source/WebKit/chromium/src/WebInputElement.cpp (89990 => 89991)
--- trunk/Source/WebKit/chromium/src/WebInputElement.cpp 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/chromium/src/WebInputElement.cpp 2011-06-29 06:35:41 UTC (rev 89991)
@@ -62,7 +62,7 @@
bool WebInputElement::autoComplete() const
{
- return constUnwrap<HTMLInputElement>()->autoComplete();
+ return constUnwrap<HTMLInputElement>()->shouldAutocomplete();
}
int WebInputElement::maxLength() const
Modified: trunk/Source/WebKit/chromium/src/WebPasswordFormUtils.cpp (89990 => 89991)
--- trunk/Source/WebKit/chromium/src/WebPasswordFormUtils.cpp 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/chromium/src/WebPasswordFormUtils.cpp 2011-06-29 06:35:41 UTC (rev 89991)
@@ -82,7 +82,7 @@
if ((fields->passwords.size() < maxPasswords)
&& inputElement->isPasswordField()
- && inputElement->autoComplete()) {
+ && inputElement->shouldAutocomplete()) {
if (fields->passwords.isEmpty())
firstPasswordIndex = i;
fields->passwords.append(inputElement);
@@ -104,7 +104,7 @@
// Various input types such as text, url, email can be a username field.
if ((inputElement->isTextField() && !inputElement->isPasswordField())
- && (inputElement->autoComplete())) {
+ && (inputElement->shouldAutocomplete())) {
fields->userName = inputElement;
break;
}
Modified: trunk/Source/WebKit/mac/ChangeLog (89990 => 89991)
--- trunk/Source/WebKit/mac/ChangeLog 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/mac/ChangeLog 2011-06-29 06:35:41 UTC (rev 89991)
@@ -1,3 +1,13 @@
+2011-06-28 Ilya Sherman <[email protected]>
+
+ Reviewed by Adam Barth.
+
+ form.autocomplete="off" does not work
+ https://bugs.webkit.org/show_bug.cgi?id=35823
+
+ * WebView/WebHTMLRepresentation.mm:
+ (-[WebHTMLRepresentation elementDoesAutoComplete:]): Update callsite.
+
2011-06-26 Mark Rowe <[email protected]>
Reviewed by Dan Bernstein.
Modified: trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm (89990 => 89991)
--- trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm 2011-06-29 06:35:41 UTC (rev 89991)
@@ -313,7 +313,7 @@
return inputElement
&& inputElement->isTextField()
&& !inputElement->isPasswordField()
- && inputElement->autoComplete();
+ && inputElement->shouldAutocomplete();
}
- (BOOL)elementIsPassword:(DOMElement *)element
Modified: trunk/Source/WebKit/qt/ChangeLog (89990 => 89991)
--- trunk/Source/WebKit/qt/ChangeLog 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/qt/ChangeLog 2011-06-29 06:35:41 UTC (rev 89991)
@@ -1,3 +1,13 @@
+2011-06-28 Ilya Sherman <[email protected]>
+
+ Reviewed by Adam Barth.
+
+ form.autocomplete="off" does not work
+ https://bugs.webkit.org/show_bug.cgi?id=35823
+
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ (DumpRenderTreeSupportQt::elementDoesAutoCompleteForElementWithId): Update callsite.
+
2011-06-27 Diego Gonzalez <[email protected]>
Reviewed by Kenneth Rohde Christiansen.
Modified: trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp (89990 => 89991)
--- trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp 2011-06-29 06:35:41 UTC (rev 89991)
@@ -642,7 +642,7 @@
HTMLInputElement* inputElement = static_cast<HTMLInputElement*>(coreNode);
- return inputElement->isTextField() && !inputElement->isPasswordField() && inputElement->autoComplete();
+ return inputElement->isTextField() && !inputElement->isPasswordField() && inputElement->shouldAutocomplete();
}
void DumpRenderTreeSupportQt::setEditingBehavior(QWebPage* page, const QString& editingBehavior)
Modified: trunk/Source/WebKit/win/ChangeLog (89990 => 89991)
--- trunk/Source/WebKit/win/ChangeLog 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/win/ChangeLog 2011-06-29 06:35:41 UTC (rev 89991)
@@ -1,3 +1,13 @@
+2011-06-28 Ilya Sherman <[email protected]>
+
+ Reviewed by Adam Barth.
+
+ form.autocomplete="off" does not work
+ https://bugs.webkit.org/show_bug.cgi?id=35823
+
+ * WebFrame.cpp:
+ (WebFrame::elementDoesAutoComplete): Updated callsite.
+
2011-06-27 Brent Fulgham <[email protected]>
Reviewed by Adam Roben.
Modified: trunk/Source/WebKit/win/WebFrame.cpp (89990 => 89991)
--- trunk/Source/WebKit/win/WebFrame.cpp 2011-06-29 06:06:14 UTC (rev 89990)
+++ trunk/Source/WebKit/win/WebFrame.cpp 2011-06-29 06:35:41 UTC (rev 89991)
@@ -1209,7 +1209,7 @@
if (!inputElement)
*result = false;
else
- *result = inputElement->isTextField() && !inputElement->isPasswordField() && inputElement->autoComplete();
+ *result = inputElement->isTextField() && !inputElement->isPasswordField() && inputElement->shouldAutocomplete();
return S_OK;
}