Loading dom/base/Navigator.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -1541,8 +1541,7 @@ already_AddRefed<LegacyMozTCPSocket> Navigator::MozTCPSocket() { void Navigator::GetGamepads(nsTArray<RefPtr<Gamepad>>& aGamepads, ErrorResult& aRv) { if (!mWindow || !mWindow->GetExtantDoc()) { aRv.Throw(NS_ERROR_UNEXPECTED); if (!mWindow || !mWindow->IsFullyActive()) { return; } NS_ENSURE_TRUE_VOID(mWindow->GetDocShell()); Loading testing/web-platform/tests/gamepad/not-fully-active.https.html 0 → 100644 +21 −0 Original line number Diff line number Diff line <!DOCTYPE html> <meta charset="utf-8" /> <title>Gamepad tests for non-fully-active document</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <body> <script> promise_test(async () => { const iframe = document.createElement('iframe'); iframe.srcdoc = `<h1>test</h1>` await new Promise(resolve => { iframe.onload = resolve; document.body.appendChild(iframe); }); const navigator = iframe.contentWindow.navigator; iframe.remove(); const gamepads = navigator.getGamepads(); assert_true(Array.isArray(gamepads), 'getGamepads should return an array'); assert_equals(gamepads.length, 0, "No gamepads should be available"); }, "calling getGamepads() in a non-fully-active document"); </script> Loading
dom/base/Navigator.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -1541,8 +1541,7 @@ already_AddRefed<LegacyMozTCPSocket> Navigator::MozTCPSocket() { void Navigator::GetGamepads(nsTArray<RefPtr<Gamepad>>& aGamepads, ErrorResult& aRv) { if (!mWindow || !mWindow->GetExtantDoc()) { aRv.Throw(NS_ERROR_UNEXPECTED); if (!mWindow || !mWindow->IsFullyActive()) { return; } NS_ENSURE_TRUE_VOID(mWindow->GetDocShell()); Loading
testing/web-platform/tests/gamepad/not-fully-active.https.html 0 → 100644 +21 −0 Original line number Diff line number Diff line <!DOCTYPE html> <meta charset="utf-8" /> <title>Gamepad tests for non-fully-active document</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <body> <script> promise_test(async () => { const iframe = document.createElement('iframe'); iframe.srcdoc = `<h1>test</h1>` await new Promise(resolve => { iframe.onload = resolve; document.body.appendChild(iframe); }); const navigator = iframe.contentWindow.navigator; iframe.remove(); const gamepads = navigator.getGamepads(); assert_true(Array.isArray(gamepads), 'getGamepads should return an array'); assert_equals(gamepads.length, 0, "No gamepads should be available"); }, "calling getGamepads() in a non-fully-active document"); </script>