pixiebrix / pixiebrix-extension

PixieBrix browser extension
https://www.pixiebrix.com
GNU Affero General Public License v3.0
83 stars 22 forks source link

Remove User Gesture popup modal on Sidebar #9165

Open Pashaminkovsky opened 6 days ago

Pashaminkovsky commented 6 days ago

MV3 requires a user gesture before opening the sidepanel. This is causing friction with a number of use cases (e.g. compliance).

This was available in MV2 but broke in MV3. Are there any workarounds to the user gesture requirement that we can implement?

Relevant discussions:

  1. Discussion with the Chrome team: https://groups.google.com/a/chromium.org/g/chromium-extensions/c/WRGFOAHxoaY/m/nPkUkJlqAAAJ?utm_medium=email&utm_source=footer
  2. W3C proposal: https://github.com/w3c/webextensions/issues/472
twschiller commented 5 days ago

Adding "specification required flag" because, as per the discussions/proposal we don't have a technical workaround for this. So it needs clarification before engineering picks it up

One option that has been floated is to open the sidebar on all tabs (i.e., keep it globally open) to avoid having to reopen it. But that solution may not be suitable

Another option would be to re-add support for an embedded sidebar (aka MV2 sidebar) to better support these use cases

Pashaminkovsky commented 5 days ago

@mthek10 would either of the workarounds that Todd mentioned^ suffice in the meantime?

@twschiller can you share documentation so I can read up on the MV2 embedded sidebar?

twschiller commented 5 days ago

@twschiller can you share documentation so I can read up on the MV2 embedded sidebar?

The MV2 sidebar isn't a Chrome affordance. It was a sidebar we implemented. It injects a frame into the page and attempts (sometimes unsuccessfully, due to absolute element positioning) to shift the main content over

You can find videos of the old behavior on our YouTube channel: https://www.youtube.com/watch?v=iL7IXGFt1Ys

Pashaminkovsky commented 3 days ago

Next steps: @Pashaminkovsky to sync w/ @mthek10 on what we can do here