Changeset 24630 in webkit
- Timestamp:
- Jul 25, 2007, 1:54:03 PM (18 years ago)
- Location:
- trunk/WebKit/win
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/win/ChangeLog
r24602 r24630 1 2007-07-25 Ada Chan <adachan@apple.com> 2 3 Reviewed by Adam and Steve. 4 5 Implemented some DOM methods and other fixes for <rdar://problem/5311601>. 6 7 * DOMCoreClasses.cpp: 8 (DOMNode::ownerDocument): implemented 9 (DOMDocument::getComputedStyle): get the DOMElement via QueryInterface 10 (DOMElement::QueryInterface): 11 * DOMHTMLClasses.cpp: 12 (DOMHTMLDocument::body): fixed leak 13 (DOMHTMLFormElement::action): implemented 14 (DOMHTMLFormElement::method): ditto 15 (DOMHTMLInputElement::form): ditto 16 (DOMHTMLTextAreaElement::form): ditto 17 * Interfaces/DOMHTML.idl: IDOMHTMLInputElement should inherit from IDOMHTMLElement 18 1 19 2007-07-24 Steve Falkenburg <sfalken@apple.com> 2 20 -
trunk/WebKit/win/DOMCoreClasses.cpp
r24536 r24630 50 50 // {79A193A5-D783-4c73-9AD9-D10678B943DE} 51 51 DEFINE_GUID(IID_DOMNode, 0x79a193a5, 0xd783, 0x4c73, 0x9a, 0xd9, 0xd1, 0x6, 0x78, 0xb9, 0x43, 0xde); 52 // {3B0C0EFF-478B-4b0b-8290-D2321E08E23E} 53 DEFINE_GUID(IID_DOMElement, 0x3b0c0eff, 0x478b, 0x4b0b, 0x82, 0x90, 0xd2, 0x32, 0x1e, 0x8, 0xe2, 0x3e); 52 54 53 55 using namespace WebCore; … … 172 174 173 175 HRESULT STDMETHODCALLTYPE DOMNode::ownerDocument( 174 /* [retval][out] */ IDOMDocument** /*result*/) 175 { 176 ASSERT_NOT_REACHED(); 177 return E_NOTIMPL; 176 /* [retval][out] */ IDOMDocument** result) 177 { 178 if (!result) 179 return E_POINTER; 180 *result = 0; 181 if (!m_node) 182 return E_FAIL; 183 *result = DOMDocument::createInstance(m_node->ownerDocument()); 184 return S_OK; 178 185 } 179 186 … … 689 696 return E_POINTER; 690 697 691 DOMElement* domEle = static_cast<DOMElement*>(elt); 698 COMPtr<DOMElement> domEle; 699 HRESULT hr = elt->QueryInterface(IID_DOMElement, (void**)&domEle); 700 if (FAILED(hr)) 701 return hr; 692 702 Element* element = domEle->element(); 693 703 … … 755 765 if (IsEqualGUID(riid, IID_IDOMElement)) 756 766 *ppvObject = static_cast<IDOMElement*>(this); 767 else if (IsEqualGUID(riid, IID_DOMElement)) 768 *ppvObject = static_cast<DOMElement*>(this); 757 769 else if (IsEqualGUID(riid, IID_IDOMElementPrivate)) 758 770 *ppvObject = static_cast<IDOMElementPrivate*>(this); -
trunk/WebKit/win/DOMHTMLClasses.cpp
r23455 r24630 222 222 223 223 HTMLDocument* htmlDoc = static_cast<HTMLDocument*>(m_document); 224 COMPtr<IDOMElement> domEle = DOMHTMLElement::createInstance(htmlDoc->body()); 225 if (domEle) 226 return domEle->QueryInterface(IID_IDOMHTMLElement, (void**) bodyElement); 224 COMPtr<IDOMElement> domElement; 225 domElement.adoptRef(DOMHTMLElement::createInstance(htmlDoc->body())); 226 if (domElement) 227 return domElement->QueryInterface(IID_IDOMHTMLElement, (void**) bodyElement); 227 228 return E_FAIL; 228 229 } … … 510 511 511 512 HRESULT STDMETHODCALLTYPE DOMHTMLFormElement::action( 512 /* [retval][out] */ BSTR* /*result*/) 513 { 514 ASSERT_NOT_REACHED(); 515 return E_NOTIMPL; 513 /* [retval][out] */ BSTR* result) 514 { 515 ASSERT(m_element && m_element->hasTagName(formTag)); 516 WebCore::String actionString = static_cast<HTMLFormElement*>(m_element)->action(); 517 *result = BString(actionString.characters(), actionString.length()).release(); 518 return S_OK; 516 519 } 517 520 … … 538 541 539 542 HRESULT STDMETHODCALLTYPE DOMHTMLFormElement::method( 540 /* [retval][out] */ BSTR* /*method*/) 541 { 542 ASSERT_NOT_REACHED(); 543 return E_NOTIMPL; 543 /* [retval][out] */ BSTR* result) 544 { 545 ASSERT(m_element && m_element->hasTagName(formTag)); 546 WebCore::String methodString = static_cast<HTMLFormElement*>(m_element)->method(); 547 *result = BString(methodString.characters(), methodString.length()).release(); 548 return S_OK; 544 549 } 545 550 … … 899 904 900 905 HRESULT STDMETHODCALLTYPE DOMHTMLInputElement::form( 901 /* [retval][out] */ IDOMHTMLElement** /*result*/) 902 { 903 ASSERT_NOT_REACHED(); 904 return E_NOTIMPL; 906 /* [retval][out] */ IDOMHTMLElement** result) 907 { 908 if (!result) 909 return E_POINTER; 910 *result = 0; 911 ASSERT(m_element && m_element->hasTagName(inputTag)); 912 HTMLInputElement* inputElement = static_cast<HTMLInputElement*>(m_element); 913 COMPtr<IDOMElement> domElement; 914 domElement.adoptRef(DOMHTMLElement::createInstance(inputElement->form())); 915 if (domElement) 916 return domElement->QueryInterface(IID_IDOMHTMLElement, (void**) result); 917 return E_FAIL; 905 918 } 906 919 … … 1269 1282 1270 1283 HRESULT STDMETHODCALLTYPE DOMHTMLTextAreaElement::form( 1271 /* [retval][out] */ IDOMHTMLElement** /*result*/) 1272 { 1273 ASSERT_NOT_REACHED(); 1274 return E_NOTIMPL; 1284 /* [retval][out] */ IDOMHTMLElement** result) 1285 { 1286 if (!result) 1287 return E_POINTER; 1288 *result = 0; 1289 ASSERT(m_element && m_element->hasTagName(textareaTag)); 1290 HTMLTextAreaElement* textareaElement = static_cast<HTMLTextAreaElement*>(m_element); 1291 COMPtr<IDOMElement> domElement; 1292 domElement.adoptRef(DOMHTMLElement::createInstance(textareaElement->form())); 1293 if (domElement) 1294 return domElement->QueryInterface(IID_IDOMHTMLElement, (void**) result); 1295 return E_FAIL; 1275 1296 } 1276 1297 -
trunk/WebKit/win/Interfaces/DOMHTML.idl
r23357 r24630 612 612 pointer_default(unique) 613 613 ] 614 interface IDOMHTMLInputElement : IDOM Element614 interface IDOMHTMLInputElement : IDOMHTMLElement 615 615 { 616 616 /*
Note:
See TracChangeset
for help on using the changeset viewer.