Commit graph

1796 commits

Author SHA1 Message Date
Gabriel Ivăncescu
25abbfff68 mshtml: Send all readystatechange events for synchronous XHRs in IE9 and below.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2023-03-01 21:39:30 +01:00
Gabriel Ivăncescu
6a31e4acc7 mshtml: Implement synchronous XMLHttpRequest.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2023-03-01 21:39:30 +01:00
Michael Stefaniuc
dc31e66e01 mshtml/tests: Actually test a return value. 2023-02-06 10:33:49 +01:00
Gabriel Ivăncescu
7b084e9f23 mshtml: Tie window.location to the outer window.
Even in IE9+ modes, it's still a non-JS object.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2023-02-01 22:29:51 +01:00
Gabriel Ivăncescu
fa63e870c5 mshtml: Return undefined from window.XMLHttpRequest for uninitialized documents.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2023-02-01 22:29:43 +01:00
Gabriel Ivăncescu
a9a3c65cd0 mshtml: Set SCRIPTPROP_ABBREVIATE_GLOBALNAME_RESOLUTION properly.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2023-01-27 13:39:06 +01:00
Gabriel Ivăncescu
97b509ea8b mshtml: Implement location props when there's no URI.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2023-01-27 13:39:06 +01:00
Santino Mazza
84f1b60e33 mshtml: Implement HTMLDocument_get_body for document fragments. 2023-01-26 22:05:13 +01:00
Santino Mazza
071f38b123 mshtml: Use This->node for HTMLDocument_get_all. 2023-01-26 22:05:13 +01:00
Santino Mazza
d8030d1543 mshtml/tests: Test for get_all and get_body in document fragments. 2023-01-26 22:05:13 +01:00
Gabriel Ivăncescu
bdc67e95b5 mshtml/tests: Fix window leaks in dom tests.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2023-01-24 18:18:04 +01:00
Gabriel Ivăncescu
5f031f2c87 mshtml/tests: Fix EventObj leak in onclick test.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2023-01-24 18:18:04 +01:00
Evan Tang
8b0868c176 mshtml: Implement IHTMLRect2 for HTMLRect. 2023-01-24 18:14:11 +01:00
Gabriel Ivăncescu
60bddb6b7d mshtml/tests: Accept rare unknown error in ReportResult.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54087
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-12-06 17:11:06 +01:00
Gabriel Ivăncescu
a431aa42b0 mshtml/tests: Expect UpdateUI, Exec_UPDATECOMMANDS and Exec_SETTITLE in edit mode.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53530
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-30 20:48:20 +01:00
Gabriel Ivăncescu
823a4414f2 mshtml/tests: Allow BINDINFO_OPTIONS_ENABLE_UTF8 in bind options.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52910
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-30 20:48:20 +01:00
Gabriel Ivăncescu
8cb7dc2e40 mshtml: Don't lock document mode when querying IEventTarget.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-30 20:48:20 +01:00
Gabriel Ivăncescu
2e4721ac8f jscript: Pass correct 'this' to host objects in ES5 mode.
For some reason, only pure js objects are passed in mshtml's jscript engine.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-30 20:48:20 +01:00
Gabriel Ivăncescu
144479afa1 mshtml: Send load event synchronously for img elements that loaded instantly in legacy modes.
Otherwise, script56.chm's javascript will keep reloading the image and
triggering onload events non-stop. It protects against this using a variable
"noReentry", which is only set temporarily while setting the source, so it
expects it to be triggered synchronously.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53927
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-30 20:48:20 +01:00
Gabriel Ivăncescu
b99c89f383 mshtml: Return proper error for invalid selectors in IE8 mode.
More importantly it gets rid of the ERR since such failures are normal.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-28 21:01:55 +01:00
Gabriel Ivăncescu
be8bd0e6b0 mshtml: Treat edit mode as a reload.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-28 21:01:55 +01:00
Gabriel Ivăncescu
a44ce98d10 mshtml: Implement performance.navigation.type.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-28 21:01:55 +01:00
Gabriel Ivăncescu
2e0a5d429e mshtml: Implement performance.navigation.redirectCount.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-28 21:01:55 +01:00
Gabriel Ivăncescu
12213e13ab mshtml: Implement onload prop for input elements.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-28 21:01:55 +01:00
Gabriel Ivăncescu
2865a5f113 mshtml: Implement location.reload().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53927
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-28 21:01:55 +01:00
Gabriel Ivăncescu
534b977c62 jscript: Throw proper error when calling Set constructor as method.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-23 17:59:47 +01:00
Gabriel Ivăncescu
84f7f60192 jscript: Throw proper error when calling Map constructor as method.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-23 17:59:47 +01:00
Gabriel Ivăncescu
8cb5d74125 jscript: Pass correct 'this' to callbacks called by builtins.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-23 17:59:47 +01:00
Gabriel Ivăncescu
dd30d429fa mshtml: Implement performance.timing.msFirstPaint.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
72b13c5ab8 mshtml: Implement performance.timing.loadEventStart & loadEventEnd.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
35ee108181 mshtml: Implement performance.timing.domContentLoadedEventStart & End.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
e0cda0e147 mshtml: Implement performance.timing.domComplete.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
ac7a3de155 mshtml: Implement performance.timing.domInteractive.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
d0165504be mshtml: Implement performance.timing.domLoading.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
3de9f679d6 mshtml: Implement performance.timing.responseStart & responseEnd.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
0118f3608f mshtml: Implement the remaining pre-response performance.timing props.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
020a020df1 mshtml: Implement performance.timing.unloadEventStart & unloadEventEnd.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
5db7d0d0ea mshtml: Implement performance.timing.redirectStart.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
fe66c7240a mshtml: Implement performance.timing.navigationStart.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu
f8d4dbd703 mshtml: Implement pagehide event.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-18 17:33:49 +01:00
Gabriel Ivăncescu
570e6b2087 mshtml: Implement unload event.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-18 17:33:49 +01:00
Gabriel Ivăncescu
00dbd769b9 mshtml: Dispatch beforeunload event to the window.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-18 17:33:49 +01:00
Gabriel Ivăncescu
e2bb4c1b88 mshtml: Implement pageshow event.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-18 17:33:49 +01:00
Gabriel Ivăncescu
a85ebbcef1 mshtml: Add visibilitychange event stub.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-18 17:33:49 +01:00
Evan Tang
0ba543acb4 mshtml: Hide things that were removed in IE11. 2022-11-17 16:35:54 +01:00
Evan Tang
b45eca88f4 mshtml: Add tests for things removed in IE11.
PS Elements installer needs this, as it picks attachEvent over
addEventListener if it exists, and then tries to use it with a
function that only works with addEventListener (needs the event object
passed)
2022-11-17 16:35:54 +01:00
Gabriel Ivăncescu
cc0f443088 mshtml: Handle cNames > 1 in GetIDsOfNames properly.
Native ignores any cNames > 1 and doesn't even fill the dispids for them. Note
that it was already wrong; the multiple dispids are supposed to correspond
to the member's argument names, not extra dispids.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-14 20:10:10 +01:00
Gabriel Ivăncescu
7001705c86 mshtml: Forward IDispatchEx to the document node.
And get rid of the dispex since it's useless now.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-14 20:10:08 +01:00
Gabriel Ivăncescu
0d1309b79b mshtml: Forward toString to the document node.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-14 20:10:08 +01:00
Gabriel Ivăncescu
cab7ce5935 mshtml: Expose IEventTarget on HTMLDocumentObj and forward it to the doc node.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-14 20:10:08 +01:00