Module: wine Branch: master Commit: 5db7d0d0ead3247bae3659d4bbff9ebbf2ddb220 URL: https://gitlab.winehq.org/wine/wine/-/commit/5db7d0d0ead3247bae3659d4bbff9eb...
Author: Gabriel Ivăncescu gabrielopcode@gmail.com Date: Tue Nov 22 18:26:21 2022 +0200
mshtml: Implement performance.timing.redirectStart.
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com
---
dlls/mshtml/mshtml_private.h | 1 + dlls/mshtml/navigate.c | 2 ++ dlls/mshtml/omnavigator.c | 4 ++-- dlls/mshtml/tests/documentmode.js | 1 + 4 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index d80c9284168..db72f29e1a3 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -510,6 +510,7 @@ typedef struct { LONG ref;
ULONGLONG navigation_start_time; + ULONGLONG redirect_time; } HTMLPerformanceTiming;
typedef struct nsChannelBSC nsChannelBSC; diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c index 241d790f9e6..f53348b7721 100644 --- a/dlls/mshtml/navigate.c +++ b/dlls/mshtml/navigate.c @@ -1717,6 +1717,8 @@ static HRESULT nsChannelBSC_on_progress(BSCallback *bsc, ULONG progress, ULONG t This->nschannel->content_type = heap_strdupWtoA(status_text); break; case BINDSTATUS_REDIRECTING: + if(This->is_doc_channel && !This->bsc.window->performance_timing->redirect_time) + This->bsc.window->performance_timing->redirect_time = get_time_stamp(); return handle_redirect(This, status_text); case BINDSTATUS_BEGINDOWNLOADDATA: { IWinInetHttpInfo *http_info; diff --git a/dlls/mshtml/omnavigator.c b/dlls/mshtml/omnavigator.c index 128f9d700eb..57c59eaddca 100644 --- a/dlls/mshtml/omnavigator.c +++ b/dlls/mshtml/omnavigator.c @@ -1621,9 +1621,9 @@ static HRESULT WINAPI HTMLPerformanceTiming_get_redirectStart(IHTMLPerformanceTi { HTMLPerformanceTiming *This = impl_from_IHTMLPerformanceTiming(iface);
- FIXME("(%p)->(%p) returning fake value\n", This, p); + TRACE("(%p)->(%p)\n", This, p);
- *p = TIMING_FAKE_TIMESTAMP; + *p = This->redirect_time; return S_OK; }
diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js index f83597d305a..f0a91fea545 100644 --- a/dlls/mshtml/tests/documentmode.js +++ b/dlls/mshtml/tests/documentmode.js @@ -20,6 +20,7 @@ var compat_version; var tests = [];
ok(performance.timing.navigationStart > 0, "navigationStart <= 0"); +ok(performance.timing.redirectStart === 0, "redirectStart != 0");
var pageshow_fired = false, pagehide_fired = false; document.doc_unload_events_called = false;