mshtml: Add stubs for MutationObserver methods.

This commit is contained in:
Yuxuan Shui 2023-07-25 23:53:11 +01:00 committed by Alexandre Julliard
parent 02994bdd10
commit 724e54d54f
3 changed files with 47 additions and 1 deletions

View file

@ -21,6 +21,7 @@
#include <mshtmdid.h>
import "ocidl.idl";
import "mshtml.idl";
[
version(1.0),
@ -85,6 +86,12 @@ interface IWineMSHTMLConsole : IDispatch
]
interface IWineMSHTMLMutationObserver : IDispatch
{
[id(1)]
HRESULT disconnect();
[id(2)]
HRESULT observe([in] IHTMLDOMNode *target, [in] IDispatch *options);
[id(3)]
HRESULT takeRecords([retval, out] IDispatch **records);
}
[

View file

@ -1172,6 +1172,34 @@ static HRESULT WINAPI MutationObserver_Invoke(IWineMSHTMLMutationObserver *iface
pDispParams, pVarResult, pExcepInfo, puArgErr);
}
static HRESULT WINAPI MutationObserver_disconnect(IWineMSHTMLMutationObserver *iface)
{
struct mutation_observer *This = impl_from_IWineMSHTMLMutationObserver(iface);
FIXME("(%p), stub\n", This);
return S_OK;
}
static HRESULT WINAPI MutationObserver_observe(IWineMSHTMLMutationObserver *iface, IHTMLDOMNode *target,
IDispatch *options)
{
struct mutation_observer *This = impl_from_IWineMSHTMLMutationObserver(iface);
FIXME("(%p)->(%p %p), stub\n", This, target, options);
return S_OK;
}
static HRESULT WINAPI MutationObserver_takeRecords(IWineMSHTMLMutationObserver *iface, IDispatch **ret)
{
struct mutation_observer *This = impl_from_IWineMSHTMLMutationObserver(iface);
FIXME("(%p)->(%p), stub\n", This, ret);
return E_NOTIMPL;
}
static const IWineMSHTMLMutationObserverVtbl WineMSHTMLMutationObserverVtbl = {
MutationObserver_QueryInterface,
MutationObserver_AddRef,
@ -1180,6 +1208,9 @@ static const IWineMSHTMLMutationObserverVtbl WineMSHTMLMutationObserverVtbl = {
MutationObserver_GetTypeInfo,
MutationObserver_GetIDsOfNames,
MutationObserver_Invoke,
MutationObserver_disconnect,
MutationObserver_observe,
MutationObserver_takeRecords
};
static const tid_t mutation_observer_iface_tids[] = {

View file

@ -2909,7 +2909,15 @@ sync_test("MutationObserver", function() {
} catch(e) {
ok(false, "MutationObserver with extra args threw exception " + e.number);
}
})
var mutation_observer = new MutationObserver(function() {});
function test_exposed(prop) {
ok(prop in mutation_observer, prop + " not found in MutationObserver.");
}
test_exposed("observe");
test_exposed("disconnect");
test_exposed("takeRecords");
});
async_test("postMessage", function() {
var v = document.documentMode;