void WebEditorClient::textWillBeDeletedInTextField(Element* e) { // We're using the deleteBackward command for all deletion operations since the autofill code treats all deletions the same way. IWebFormDelegate* formDelegate; if (SUCCEEDED(m_webView->formDelegate(&formDelegate)) && formDelegate) { IDOMElement* domElement = DOMElement::createInstance(e); if (domElement) { IDOMHTMLInputElement* domInputElement; if (SUCCEEDED(domElement->QueryInterface(IID_IDOMHTMLInputElement, (void**)&domInputElement))) { BOOL result; formDelegate->doPlatformCommand(domInputElement, BString(L"DeleteBackward"), kit(e->document()->frame()), &result); domInputElement->Release(); } domElement->Release(); } formDelegate->Release(); } }
bool WebEditorClient::doTextFieldCommandFromEvent(Element* e, KeyboardEvent* ke) { BOOL result = FALSE; IWebFormDelegate* formDelegate; if (SUCCEEDED(m_webView->formDelegate(&formDelegate)) && formDelegate) { IDOMElement* domElement = DOMElement::createInstance(e); if (domElement) { IDOMHTMLInputElement* domInputElement; if (SUCCEEDED(domElement->QueryInterface(IID_IDOMHTMLInputElement, (void**)&domInputElement))) { String command = m_webView->interpretKeyEvent(ke); // We allow empty commands here because the app code actually depends on this being called for all key presses. // We may want to revisit this later because it doesn't really make sense to send an empty command. formDelegate->doPlatformCommand(domInputElement, BString(command), kit(e->document()->frame()), &result); domInputElement->Release(); } domElement->Release(); } formDelegate->Release(); } return !!result; }