From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlelem.c | 33 +++++++++++++++++++++++++++---- dlls/mshtml/tests/documentmode.js | 14 ++++++------- 2 files changed, 35 insertions(+), 12 deletions(-)
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index 6674a843b3e..172175b26fa 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -6680,23 +6680,35 @@ void HTMLElement_init_dispex_info(dispex_data_t *info, compat_mode_t mode) {DISPID_UNKNOWN} }; const dispex_hook_t *const elem6_ie9_hooks = elem6_ie10_hooks + 4; - static const dispex_hook_t elem_ie9_hooks[] = { + static const dispex_hook_t elem_ie10_hooks[] = { + {DISPID_IHTMLELEMENT_DOCUMENT, NULL}, + {DISPID_IHTMLELEMENT_FILTERS, NULL}, + + /* IE9+ */ {DISPID_IHTMLELEMENT_TOSTRING, NULL}, {DISPID_UNKNOWN} }; + const dispex_hook_t *const elem_ie9_hooks = elem_ie10_hooks + 2; static const dispex_hook_t elem2_ie11_hooks[] = { {DISPID_IHTMLELEMENT2_ATTACHEVENT, NULL}, {DISPID_IHTMLELEMENT2_DETACHEVENT, NULL}, {DISPID_IHTMLELEMENT2_DOSCROLL, NULL}, {DISPID_IHTMLELEMENT2_READYSTATE, NULL},
+ /* IE10+ */ + {DISPID_IHTMLELEMENT2_SCOPENAME, NULL}, + {DISPID_IHTMLELEMENT2_ADDFILTER, NULL}, + {DISPID_IHTMLELEMENT2_REMOVEFILTER,NULL}, + {DISPID_IHTMLELEMENT2_TAGURN, NULL}, + /* IE9+ */ {DISPID_IHTMLELEMENT2_SETEXPRESSION, NULL}, {DISPID_IHTMLELEMENT2_GETEXPRESSION, NULL}, {DISPID_IHTMLELEMENT2_REMOVEEXPRESSION, NULL}, {DISPID_UNKNOWN} }; - const dispex_hook_t *const elem2_ie9_hooks = elem2_ie11_hooks + 4; + const dispex_hook_t *const elem2_ie10_hooks = elem2_ie11_hooks + 4; + const dispex_hook_t *const elem2_ie9_hooks = elem2_ie10_hooks + 4; static const dispex_hook_t elem3_ie11_hooks[] = { {DISPID_IHTMLELEMENT3_FIREEVENT, NULL},
@@ -6711,12 +6723,23 @@ void HTMLElement_init_dispex_info(dispex_data_t *info, compat_mode_t mode) }; static const dispex_hook_t elem7_ie11_hooks[] = { {DISPID_IHTMLELEMENT7_ONMSPOINTERHOVER}, + + /* IE10+ */ + {DISPID_IHTMLELEMENT7_ONMSTRANSITIONSTART}, + {DISPID_IHTMLELEMENT7_ONMSTRANSITIONEND}, + {DISPID_IHTMLELEMENT7_ONMSANIMATIONSTART}, + {DISPID_IHTMLELEMENT7_ONMSANIMATIONEND}, + {DISPID_IHTMLELEMENT7_ONMSANIMATIONITERATION}, + {DISPID_IHTMLELEMENT7_ONINVALID}, + {DISPID_IHTMLELEMENT7_XMSACCELERATORKEY}, {DISPID_UNKNOWN} }; + const dispex_hook_t *const elem7_ie10_hooks = elem7_ie11_hooks + 1;
HTMLDOMNode_init_dispex_info(info, mode);
dispex_info_add_interface(info, IHTMLElement2_tid, mode >= COMPAT_MODE_IE11 ? elem2_ie11_hooks : + mode >= COMPAT_MODE_IE10 ? elem2_ie10_hooks : mode >= COMPAT_MODE_IE9 ? elem2_ie9_hooks : NULL); if(mode >= COMPAT_MODE_IE8) dispex_info_add_interface(info, IElementSelector_tid, NULL); @@ -6728,13 +6751,15 @@ void HTMLElement_init_dispex_info(dispex_data_t *info, compat_mode_t mode)
if(mode >= COMPAT_MODE_IE10) { - dispex_info_add_interface(info, IHTMLElement7_tid, mode >= COMPAT_MODE_IE11 ? elem7_ie11_hooks : NULL); + dispex_info_add_interface(info, IHTMLElement7_tid, mode >= COMPAT_MODE_IE11 ? elem7_ie11_hooks : + mode >= COMPAT_MODE_IE10 ? elem7_ie10_hooks : NULL); dispex_info_add_interface(info, IWineHTMLElementPrivate_tid, NULL); }
dispex_info_add_interface(info, IHTMLElement3_tid, mode >= COMPAT_MODE_IE11 ? elem3_ie11_hooks : mode >= COMPAT_MODE_IE9 ? elem3_ie9_hooks : NULL); - dispex_info_add_interface(info, IHTMLElement_tid, mode >= COMPAT_MODE_IE9 ? elem_ie9_hooks : NULL); + dispex_info_add_interface(info, IHTMLElement_tid, mode >= COMPAT_MODE_IE10 ? elem_ie10_hooks : + mode >= COMPAT_MODE_IE9 ? elem_ie9_hooks : NULL); dispex_info_add_interface(info, IHTMLElement4_tid, mode >= COMPAT_MODE_IE9 ? elem4_ie9_hooks : NULL); }
diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js index 78a909d2944..fb0bbcbe691 100644 --- a/dlls/mshtml/tests/documentmode.js +++ b/dlls/mshtml/tests/documentmode.js @@ -3745,14 +3745,12 @@ sync_test("prototype props", function() { "scrollIntoView", "setActive", "setCapture", "sourceIndex", ["spellcheck",10], "style", "swapNode", "tabIndex", ["tagUrn",9,9], "title", "uniqueID", "uniqueNumber" ], [ - ["addBehavior",11], ["addFilter",10], ["all",11], ["behaviorUrns",11], ["dataset",11], ["document",10], ["draggable",10], ["filters",10], - ["hidden",11], ["msGetInputContext",11], ["onafterupdate",11], ["onbeforeeditfocus",11], ["onbeforeupdate",11], ["oncellchange",11], - ["oncontrolselect",11], ["ondataavailable",11], ["ondatasetchanged",11], ["ondatasetcomplete",11], ["onerrorupdate",11], - ["onfilterchange",11], ["oninvalid",10], ["onlayoutcomplete",11], ["onlosecapture",11], ["onmove",11], ["onmoveend",11], ["onmovestart",11], - ["onmsanimationend",10], ["onmsanimationiteration",10], ["onmsanimationstart",10], ["onmscontentzoom",10], ["onmstransitionend",10], - ["onmstransitionstart",10], ["onpropertychange",11], ["onreadystatechange",11], ["onresize",11], ["onresizeend",11], ["onresizestart",11], - ["onrowenter",11], ["onrowexit",11], ["onrowsdelete",11], ["onrowsinserted",11], ["removeBehavior",11], ["removeFilter",10], ["scopeName",10], - ["tagUrn",10], ["xmsAcceleratorKey",10] + ["addBehavior",11], ["all",11], ["behaviorUrns",11], ["dataset",11], ["draggable",10], ["hidden",11], ["msGetInputContext",11], + ["onafterupdate",11], ["onbeforeeditfocus",11], ["onbeforeupdate",11], ["oncellchange",11], ["oncontrolselect",11], ["ondataavailable",11], + ["ondatasetchanged",11], ["ondatasetcomplete",11], ["onerrorupdate",11], ["onfilterchange",11], ["onlayoutcomplete",11], + ["onlosecapture",11], ["onmove",11], ["onmoveend",11], ["onmovestart",11], ["onmscontentzoom",10], ["onpropertychange",11], + ["onreadystatechange",11], ["onresize",11], ["onresizeend",11], ["onresizestart",11], ["onrowenter",11], ["onrowexit",11], ["onrowsdelete",11], + ["onrowsinserted",11], ["removeBehavior",11] ]); check(HTMLUnknownElement, [ "namedRecordset", "recordset" ]); check(KeyboardEvent, [