LayoutTests:
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 22 Oct 2008 23:31:28 +0000 (23:31 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 22 Oct 2008 23:31:28 +0000 (23:31 +0000)
2008-10-22  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam Roben

        <rdar://6261773> - autocomplete="off" doesn't work on Windows

        Remove a skipped test that can now pass with proper DRT support

        * platform/win/Skipped: Remove security/autocomplete-cleared-on-back.html

WebKitTools:
2008-10-22  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam Roben

        <rdar://6261773> - autocomplete="off" doesn't work on Windows

        Implement LayoutTestController::elementDoesAutoCompleteForElementWithId() on Windows

        * DumpRenderTree/win/LayoutTestControllerWin.cpp:

WebKit/win:
2008-10-22  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam Roben

        Move elementDoesAutoComplete() to IWebFramePrivate so it is exposed for DRT to use

        * Interfaces/IWebFramePrivate.idl:

        * WebFrame.cpp:
        (WebFrame::elementDoesAutoComplete):
        * WebFrame.h:

        * WebHTMLRepresentation.cpp:
        (WebHTMLRepresentation::elementDoesAutoComplete):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@37796 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/platform/win/Skipped
WebKit/win/ChangeLog
WebKit/win/Interfaces/IWebFramePrivate.idl
WebKit/win/WebFrame.cpp
WebKit/win/WebFrame.h
WebKit/win/WebHTMLRepresentation.cpp
WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp

index 2c8c14e..445d3fe 100644 (file)
@@ -1,3 +1,13 @@
+2008-10-22  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Adam Roben
+
+        <rdar://6261773> - autocomplete="off" doesn't work on Windows
+
+        Remove a skipped test that can now pass with proper DRT support
+        
+        * platform/win/Skipped: Remove security/autocomplete-cleared-on-back.html
+
 2008-10-22  Simon Fraser  <simon.fraser@apple.com>
 
         Reviewed by Dave Hyatt
index 32d0298..e163370 100644 (file)
@@ -412,9 +412,6 @@ accessibility
 # No support for print-to-pdf in Windows DRT
 printing
 
-# Need Windows DRT support for "elementDoesAutoCompleteForElementWithId()"
-security/set-form-autocomplete-attribute.html
-
 # No upload progress events on windows
 http/tests/xmlhttprequest/upload-onload-event.html
 http/tests/xmlhttprequest/upload-onloadstart-event.html
index c643ec4..4a697c7 100644 (file)
@@ -1,3 +1,18 @@
+2008-10-22  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Adam Roben
+        
+        Move elementDoesAutoComplete() to IWebFramePrivate so it is exposed for DRT to use
+
+        * Interfaces/IWebFramePrivate.idl:
+        
+        * WebFrame.cpp:
+        (WebFrame::elementDoesAutoComplete):
+        * WebFrame.h:
+        
+        * WebHTMLRepresentation.cpp:
+        (WebHTMLRepresentation::elementDoesAutoComplete):
+
 2008-10-20  Sam Weinig  <sam@webkit.org>
 
         Reviewed by Anders Carlsson.
index e26bfa2..bd7c0b6 100755 (executable)
@@ -81,4 +81,6 @@ interface IWebFramePrivate : IUnknown
     HRESULT fetchApplicationIcon([in] IWebIconFetcherDelegate* delegate, [out, retval] IWebIconFetcher** result);
 
     HRESULT paintDocumentRectToContext([in] RECT rect, [in] OLE_HANDLE deviceContext);
+
+    HRESULT elementDoesAutoComplete([in] IDOMElement* element, [out, retval] BOOL* result);
 }
index 199f41f..701d1ab 100644 (file)
@@ -1029,7 +1029,7 @@ HRESULT WebFrame::formForElement(IDOMElement* element, IDOMElement** form)
     return S_OK;
 }
 
-HRESULT WebFrame::elementDoesAutoComplete(IDOMElement *element, bool *result)
+HRESULT WebFrame::elementDoesAutoComplete(IDOMElement *element, BOOL *result)
 {
     *result = false;
     if (!element)
index c6a522a..1bd7478 100644 (file)
@@ -220,6 +220,10 @@ public:
         /* [in] */ RECT rect,
         /* [in] */ OLE_HANDLE deviceContext);
 
+    virtual HRESULT STDMETHODCALLTYPE elementDoesAutoComplete(
+        /* [in] */ IDOMElement* element, 
+        /* [retval][out] */ BOOL* result);
+    
     // IWebDocumentText
     virtual HRESULT STDMETHODCALLTYPE supportsTextEncoding( 
         /* [retval][out] */ BOOL* result);
@@ -302,7 +306,6 @@ public:
     HRESULT setInViewSourceMode(BOOL flag);
     HRESULT elementWithName(BSTR name, IDOMElement* form, IDOMElement** element);
     HRESULT formForElement(IDOMElement* element, IDOMElement** form);
-    HRESULT elementDoesAutoComplete(IDOMElement* element, bool* result);
     HRESULT controlsInForm(IDOMElement* form, IDOMElement** controls, int* cControls);
     HRESULT elementIsPassword(IDOMElement* element, bool* result);
     HRESULT searchForLabelsBeforeElement(const BSTR* labels, int cLabels, IDOMElement* beforeElement, BSTR* result);
index a753f37..5e5d56b 100644 (file)
@@ -154,7 +154,7 @@ HRESULT STDMETHODCALLTYPE WebHTMLRepresentation::elementDoesAutoComplete(
         /* [in] */ IDOMElement* element,
         /* [retval][out] */ BOOL* result)
 {
-    bool doesAutoComplete;
+    BOOL doesAutoComplete;
     HRESULT hr = m_frame->elementDoesAutoComplete(element, &doesAutoComplete);
     *result = doesAutoComplete ? TRUE : FALSE;
     return hr;
index 2d47a0e..9e567ec 100644 (file)
@@ -1,3 +1,13 @@
+2008-10-22  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Adam Roben
+        
+        <rdar://6261773> - autocomplete="off" doesn't work on Windows
+
+        Implement LayoutTestController::elementDoesAutoCompleteForElementWithId() on Windows
+        
+        * DumpRenderTree/win/LayoutTestControllerWin.cpp:
+
 2008-10-22  Darin Adler  <darin@apple.com>
 
         * Scripts/do-webcore-rename: More renaming plans.
index b25472a..272ce11 100644 (file)
@@ -6,13 +6,13 @@
  * are met:
  *
  * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
+ *     notice, this list of conditions and the following disclaimer.
  * 2.  Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution. 
+ *     documentation and/or other materials provided with the distribution.
  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
  *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission. 
+ *     from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@@ -390,7 +390,7 @@ static bool resolveCygwinPath(const wstring& cygwinPath, wstring& windowsPath)
     DWORD rootPathSize = _countof(rootPath);
     DWORD keyType;
     DWORD result = ::SHGetValueW(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Cygnus Solutions\\Cygwin\\mounts v2\\/"), TEXT("native"), &keyType, &rootPath, &rootPathSize);
-    
+
     if (result != ERROR_SUCCESS || keyType != REG_SZ)
         return false;
 
@@ -548,9 +548,28 @@ int LayoutTestController::windowCount()
 
 bool LayoutTestController::elementDoesAutoCompleteForElementWithId(JSStringRef id)
 {
-    // FIXME: Implement this almost exactly like the Mac version
+    COMPtr<IDOMDocument> document;
+    if (FAILED(frame->DOMDocument(&document)))
+        return false;
+
+    wstring idWstring = jsStringRefToWString(id);
+    BSTR idBSTR = SysAllocStringLen((OLECHAR*)idWstring.c_str(), idWstring.length());
+    COMPtr<IDOMElement> element;
+    HRESULT result = document->getElementById(idBSTR, &element);
+    SysFreeString(idBSTR);
 
-    return false;
+    if (FAILED(result))
+        return false;
+
+    COMPtr<IWebFramePrivate> framePrivate(Query, frame);
+    if (!framePrivate)
+        return false;
+
+    BOOL autoCompletes;
+    if (FAILED(framePrivate->elementDoesAutoComplete(element.get(), &autoCompletes)))
+        return false;
+
+    return autoCompletes;
 }
 
 void LayoutTestController::execCommand(JSStringRef name, JSStringRef value)
@@ -578,8 +597,8 @@ void LayoutTestController::clearAllDatabases()
 {
     printf("ERROR: LayoutTestController::clearAllDatabases() not implemented\n");
 }
+
 void LayoutTestController::setDatabaseQuota(unsigned long long quota)
-{    
+{
     printf("ERROR: LayoutTestController::setDatabaseQuota() not implemented\n");
 }