Module: wine Branch: master Commit: 69dba71619944e8a82927e751af9b21b8f97b1da URL: https://gitlab.winehq.org/wine/wine/-/commit/69dba71619944e8a82927e751af9b21...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Jul 10 23:12:20 2024 +0200
mshtml: Use host object script bindings for Navigator class.
---
dlls/mshtml/htmlwindow.c | 2 +- dlls/mshtml/mshtml_private.h | 2 +- dlls/mshtml/omnavigator.c | 5 +++-- dlls/mshtml/tests/documentmode.js | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index 9b7e69a25df..40f738df8b3 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -829,7 +829,7 @@ static HRESULT WINAPI HTMLWindow2_get_navigator(IHTMLWindow2 *iface, IOmNavigato
if(!window->navigator) { HRESULT hres; - hres = create_navigator(dispex_compat_mode(&window->event_target.dispex), &window->navigator); + hres = create_navigator(window, &window->navigator); if(FAILED(hres)) return hres; } diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 4fd94034bfe..e3296ff1b5c 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -1043,7 +1043,7 @@ HRESULT HTMLOptionElementFactory_Create(HTMLInnerWindow*,HTMLOptionElementFactor HRESULT HTMLImageElementFactory_Create(HTMLInnerWindow*,HTMLImageElementFactory**); HRESULT HTMLXMLHttpRequestFactory_Create(HTMLInnerWindow*,HTMLXMLHttpRequestFactory**); HRESULT create_location(HTMLOuterWindow*,HTMLLocation**); -HRESULT create_navigator(compat_mode_t,IOmNavigator**); +HRESULT create_navigator(HTMLInnerWindow*,IOmNavigator**); HRESULT create_html_screen(HTMLInnerWindow*,IHTMLScreen**); HRESULT create_performance(HTMLInnerWindow*,IHTMLPerformance**); HRESULT create_history(HTMLInnerWindow*,OmHistory**); diff --git a/dlls/mshtml/omnavigator.c b/dlls/mshtml/omnavigator.c index 21383808c32..4eac4ffd7f8 100644 --- a/dlls/mshtml/omnavigator.c +++ b/dlls/mshtml/omnavigator.c @@ -1159,7 +1159,7 @@ static dispex_static_data_t OmNavigator_dispex = { OmNavigator_iface_tids };
-HRESULT create_navigator(compat_mode_t compat_mode, IOmNavigator **navigator) +HRESULT create_navigator(HTMLInnerWindow *script_global, IOmNavigator **navigator) { OmNavigator *ret;
@@ -1169,7 +1169,8 @@ HRESULT create_navigator(compat_mode_t compat_mode, IOmNavigator **navigator)
ret->IOmNavigator_iface.lpVtbl = &OmNavigatorVtbl;
- init_dispatch(&ret->dispex, &OmNavigator_dispex, NULL, compat_mode); + init_dispatch(&ret->dispex, &OmNavigator_dispex, script_global, + dispex_compat_mode(&script_global->event_target.dispex));
*navigator = &ret->IOmNavigator_iface; return S_OK; diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js index 3b2dca84c86..83559c07171 100644 --- a/dlls/mshtml/tests/documentmode.js +++ b/dlls/mshtml/tests/documentmode.js @@ -305,7 +305,7 @@ sync_test("builtin_toString", function() { if(localStorage) test("localStorage", localStorage, "Storage", null, true); test("location", window.location, "Object", window.location.href, null, true); if(v >= 11 /* todo_wine */) test("mimeTypes", window.navigator.mimeTypes, v < 11 ? "MSMimeTypesCollection" : "MimeTypeArray", null, true); - test("navigator", window.navigator, "Navigator", null, true); + test("navigator", window.navigator, "Navigator"); test("performance", window.performance, "Performance"); test("performanceNavigation", window.performance.navigation, "PerformanceNavigation"); test("performanceTiming", window.performance.timing, "PerformanceTiming");