Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added changes from @nicolashenry out of #9248 #9996

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Cellebyte
Copy link

@Cellebyte Cellebyte commented Jun 1, 2024

Description

This Pull Request should solve problems with window.opener not being available in some edge-cases when the oauth2-redirect.html is used with an external auth provider.

Motivation and Context

In the comments of #9248 there was a proper successor to solve the the original problem.
The functionality started breaking when browsers introduced rel=noopener for target=_blank links.

The reasons why it breaks in some setups is described in #8315.

closes #8030
closes #8315

How Has This Been Tested?

I did not test it yet but others did in #9248.

Checklist

My PR contains...

  • No code changes (src/ is unmodified: changes to documentation, CI, metadata, etc.)
  • Dependency changes (any modification to dependencies in package.json)
  • Bug fixes (non-breaking change which fixes an issue)
  • Improvements (misc. changes to existing features)
  • Features (non-breaking change which adds functionality)

My changes...

  • are breaking changes to a public API (config options, System API, major UI change, etc).
  • are breaking changes to a private API (Redux, component props, utility functions, etc.).
  • are breaking changes to a developer API (npm script behavior changes, new dev system dependencies, etc).
  • are not breaking changes.

Documentation

  • My changes do not require a change to the project documentation.
  • My changes require a change to the project documentation.
  • If yes to above: I have updated the documentation accordingly.

Automated tests

  • My changes can not or do not need to be tested.
  • My changes can and should be tested by unit and/or integration tests.
  • If yes to above: I have added tests to cover my changes.
  • If yes to above: I have taken care to cover edge cases in my tests.
  • All new and existing tests passed.

@nicolashenry
Copy link

Sorry I wanted to finalize it but there are some breaking tests due to my change and I did not had time to fix those. I was due to the introduction of BroadcastChannel global not existing in a NodeJs environment used in the tests if I remember correctly.

@pasha-vuiko
Copy link

Any updates on this?

@MaksSlesarenko
Copy link

any news here?

@ppena-LiveData
Copy link

ppena-LiveData commented Jul 11, 2024

@nicolashenry, do you know if https://www.npmjs.com/package/broadcast-channel would work to fix the broken tests?

UPDATE: that is not a polyfill, so it's not a drop-in replacement so won't work. Luckily, it looks like https://www.npmjs.com/package/broadcastchannel-polyfill will work. I'm not sure if this is the cleanest fix, but this makes npm run tests succeed...

First, I ran npm install --save-dev broadcastchannel-polyfill, and then I made this change:

diff --git a/test/unit/core/plugins/auth/actions.js b/test/unit/core/plugins/auth/actions.js
index d9c751be..62604056 100644
--- a/test/unit/core/plugins/auth/actions.js
+++ b/test/unit/core/plugins/auth/actions.js
@@ -1,3 +1,5 @@
+import { BroadcastChannel } from "broadcastchannel-polyfill"
+import { MessageChannel } from "node:worker_threads"
 import { Map } from "immutable"
 import win from "core/window"
 import {
@@ -10,6 +12,9 @@ import {
 } from "core/plugins/auth/actions"
 import {authorizeAccessCodeWithBasicAuthentication, authPopup} from "../../../../../src/core/plugins/auth/actions"

+// broadcastchannel-polyfill expects MessageChannel to exist
+global.MessageChannel = MessageChannel
+
 describe("auth plugin - actions", () => {

   describe("authorizeRequest", () => {

@delepster
Copy link

any updates?

@Cellebyte
Copy link
Author

@ppena-LiveData should I add your change to this PR as well?

@ppena-LiveData
Copy link

@Cellebyte, if you think my suggested change is good, then yes, please add it to the PR so that the unit tests can pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants