Commit graph

4690 commits

Author SHA1 Message Date
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
Rémi Bernon 466f31dce9 mshtml: Fix realloc size vs element count mixup. 2022-12-03 00:05:16 +01:00
Alex Henrie e1f1912abe mshtml: Annotate nsalloc with __WINE_(DEALLOC|MALLOC). 2022-12-03 00:05:16 +01:00
Gabriel Ivăncescu f98ba4fa9b mshtml: Rename EVENTID_INVALID to EVENTID_INVALID_ID.
There is actually an "invalid" event type (sent on invalid input for example),
so this avoids confusion with it.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-12-01 20:36:05 +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 ce54f50feb mshtml: Keep a ref to the window during the doc nsevent handlers.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53999
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-30 20:48:20 +01:00
Alex Henrie b1391caf64 mshtml: Remove string constant macros from navigate.c.
Having an extra layer of indirection here makes the code less clear.
2022-11-28 21:01:55 +01:00
Gabriel Ivăncescu 9a0d0e8616 mshtml: Don't check for doc_node from the doc obj when it can't be NULL.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-28 21:01:55 +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 25f205d9ac mshtml: Set reload load type to Gecko for document reloads.
So it can async open with proper binding flags.

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 0e71100e56 mshtml: Implement print events.
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
Rémi Bernon a49838f24e mshtml: Free wine_get_dos_file_name memory with HeapFree. 2022-11-25 18:09:57 +01:00
Alex Henrie 76696cd966 mshtml: Handle memory allocation failure in ConnectionPoint_Advise. 2022-11-25 17:42:57 +01:00
Alex Henrie 5c00a8a330 mshtml: Use standard C functions for memory allocation. 2022-11-24 22:20:20 +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 6fa4c42608 mshtml: Get rid of useless window check.
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 1dc507d33c mshtml: Link the performance.timing from the window at creation.
This avoids having to keep refs to the window from the performance timing. The
dispex initialization is deferred until it's actually used, however, so it
has the proper compat mode.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Gabriel Ivăncescu 88c3fa62ca mshtml: Fix performance variant leak.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-22 18:27:31 +01:00
Alex Henrie 6e79aff665 mshtml: Handle realloc failure in add_func_info. 2022-11-21 15:35:53 +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 bc286247c4 mshtml: Store the nsevent listener descs in a table.
Rather than hardcoding them individually, so that it's all in one place
when adding new ones.

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
Gabriel Ivăncescu 7d85bd5dde mshtml: Dispatch Gecko events to the window if there's no node.
The window itself is not a DOM node, so this is perfectly normal to fail
here. In fact, we weren't dispatching any gecko events sent to the window.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-18 17:33:49 +01:00
Gabriel Ivăncescu f658f68d63 mshtml: Do not register Gecko load event handler twice.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-18 17:33:49 +01:00
Gabriel Ivăncescu 574e207ab7 mshtml: Allow EVENT_BIND_TO_TARGET to bind to the window.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2022-11-18 17:33:49 +01:00