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

Fix copy functionality in Firefox #32077

Merged
merged 1 commit into from
Jan 15, 2025
Merged

Conversation

V3RON
Copy link
Contributor

@V3RON V3RON commented Jan 15, 2025

Summary

This pull request addresses an issue where the copy functionality was not working in Firefox. The root cause was the absence of the 'clipboardWrite' permission in the manifest. To ensure consistency across all supported browsers, the 'clipboardWrite' permission has been added to the manifests for Chrome, Edge, and Firefox extensions.

Closes #31422

How did you test this change?

I ran the modified extension in all browsers (MacOS) and verified that the copy functionality works in each.
https://github.com/user-attachments/assets/a41ff14b-3d65-409c-ac7f-1ccd72fa944a

Copy link
Contributor

@hoxyq hoxyq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@hoxyq hoxyq merged commit f13abbb into facebook:main Jan 15, 2025
186 of 187 checks passed
hoxyq added a commit that referenced this pull request Jan 16, 2025
List of changes in this release:

* fix[DevTools]: fix HostComponent naming in filters for Native
([hoxyq](https://github.com/hoxyq) in
[#32086](#32086))
* Fix copy functionality in Firefox ([V3RON](https://github.com/V3RON)
in [#32077](#32077))
* chore[DevTools]: don't use batchedUpdate
([hoxyq](https://github.com/hoxyq) in
[#32074](#32074))
* Prevent crash when starting consecutive profiling sessions
([V3RON](https://github.com/V3RON) in
[#32066](#32066))
* fix[DevTools/Tree]: only scroll to item when panel is visible
([hoxyq](https://github.com/hoxyq) in
[#32018](#32018))
* feat[Tree]: set initial scroll offset when inspected element index is
set ([hoxyq](https://github.com/hoxyq) in
[#31968](#31968))
* DevTools: merge element fields in TreeStateContext
([hoxyq](https://github.com/hoxyq) in
[#31956](#31956))
* DevTools: fix initial host instance selection
([hoxyq](https://github.com/hoxyq) in
[#31892](#31892))
* chore[DevTools/Tree]: don't pre-select root element and remove unused
code ([hoxyq](https://github.com/hoxyq) in
[#32015](#32015))
* chore[DevTools/TraceUpdates]: display names by default
([hoxyq](https://github.com/hoxyq) in
[#32019](#32019))
* Add ViewTransitionComponent to Stacks and DevTools
([sebmarkbage](https://github.com/sebmarkbage) in
[#32034](#32034))
* Add <ViewTransition> Component
([sebmarkbage](https://github.com/sebmarkbage) in
[#31975](#31975))
* chore[react-devtools-shell]: disable warnings in dev server overlay
([hoxyq](https://github.com/hoxyq) in
[#32005](#32005))
* DevTools: fork FastRefresh test for <18 versions of React
([hoxyq](https://github.com/hoxyq) in
[#31893](#31893))
* Show component names while highlighting renders
([piotrski](https://github.com/piotrski) in
[#31577](#31577))
* allow non-coercible objects in formatConsoleArgumentsToSingleString
([henryqdineen](https://github.com/henryqdineen) in
[#31444](#31444))
* Remove enableRefAsProp feature flag
([kassens](https://github.com/kassens) in
[#30346](#30346))
* [flow] Eliminate usage of more than 1-arg `React.AbstractComponent` in
React codebase ([SamChou19815](https://github.com/SamChou19815) in
[#31314](#31314))
* Audit try/finally around console patching
([sebmarkbage](https://github.com/sebmarkbage) in
[#31286](#31286))
* tests[react-devtools]: added tests for Compiler integration
([hoxyq](https://github.com/hoxyq) in
[#31241](#31241))
* Add Bridge types for Fusebox
([EdmondChuiHW](https://github.com/EdmondChuiHW) in
[#31274](#31274))
@TomasHubelbauer
Copy link

Hi, I just found this PR after searching for why the extension was disabled in Edge asking for new permissions. It seems the Edge extension store page has no release notes section, just the latest release date. Would it be possible to link to https://github.com/facebook/react/blob/main/packages/react-devtools/CHANGELOG.md in the Edge store description section?

@Indigo744
Copy link

Same as @TomasHubelbauer, I came looking for an answer on why suddenly this extension requires write access to the clipboard.

I would have expected more care would be put in communicating on this kind of changes. It's an extension used by ~6 M users if the numbers in Chrome/Edge web stores are to be believed. Not exactly a "low profile" extension by any means, targetted to tech savvy users.

A link to the changelog would be a start. An explanation for each requested permissions would be even better.

Thank you!

@hoxyq
Copy link
Contributor

hoxyq commented Jan 27, 2025

@TomasHubelbauer @Indigo744

For Chrome we are required to explain why each permission is used, and I've added an explanation. For Edge, though, I didn't find any field for it. Also, I couldn't find any field for a changelog, only the field for additional notes for testers.

I definitely might be missing something, any help or links would be appreciated :)

@TomasHubelbauer
Copy link

TomasHubelbauer commented Jan 27, 2025

I am not an extension developer, I only have personal-project level experience with publishing extensions, so I won't be of much help here.

But I checked the uBlock Origin Edge extension store page to se an example of another high-profile extension and how they handle surfacing this information and I have not found any particular release notes section there either. This forces me to conclude there is no support on the Microsoft Edge extension store side for this.

They do however link to their release notes in the description section like I suggested the React developer tools could do:

https://microsoftedge.microsoft.com/addons/detail/ublock-origin/odfafepnkmbhccpbejgmiehpchacaeak

Documentation:
https://github.com/gorhill/uBlock#ublock-origin
Project change log:
https://github.com/gorhill/uBlock/releases
Contributors @ Github:
https://github.com/gorhill/uBlock/graphs/contributors
Contributors @ Crowdin:
https://crowdin.net/project/ublock

Currently, the React developer tools extension links to its source code in the description field, which is a great start, and I continue to personally recommend the React developer tools extension does the same:

https://microsoftedge.microsoft.com/addons/detail/react-developer-tools/gpphkfbcpidddadnkolkpfckpihlkkil

  This extension requires permissions to access the page's React tree, but it does not transmit any data remotely.
  It is fully open source, and you can find its source code at
  https://github.com/facebook/react/tree/master/packages/react-devtools-extensions.
+ Find the release notes here:
+ https://github.com/facebook/react/blob/main/packages/react-devtools/CHANGELOG.md

@hoxyq
Copy link
Contributor

hoxyq commented Jan 27, 2025

I am not an extension developer, I only have personal-project level experience with publishing extensions, so I won't be of much help here.

But I checked the uBlock Origin Edge extension store page to se an example of another high-profile extension and how they handle surfacing this information and I have not found any particular release notes section there either. This forces me to conclude there is no support on the Microsoft Edge extension store side for this.

Thanks! We definitely can add a link to the changelog file to the extension description. I will add it.

@TomasHubelbauer
Copy link

Thank you, this is much appreciated!

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

Successfully merging this pull request may close these issues.

[DevTools Bug]: Copy to clipboard doesn't work
5 participants