@@ -14,6 +14,7 @@ import {toNormalUrl} from 'jsc-safe-url';
1414import Button from '../Button' ;
1515import ButtonIcon from '../ButtonIcon' ;
1616import Skeleton from './Skeleton' ;
17+ import { withPermissionsCheck } from 'react-devtools-shared/src/frontend/utils/withPermissionsCheck' ;
1718
1819import type { Source as InspectedElementSource } from 'react-devtools-shared/src/shared/types' ;
1920import styles from './InspectedElementSourcePanel.css' ;
@@ -59,7 +60,10 @@ function CopySourceButton({source, symbolicatedSourcePromise}: Props) {
5960 const symbolicatedSource = React . use ( symbolicatedSourcePromise ) ;
6061 if ( symbolicatedSource == null ) {
6162 const { sourceURL, line, column} = source ;
62- const handleCopy = ( ) => copy ( `${ sourceURL } :${ line } :${ column } ` ) ;
63+ const handleCopy = withPermissionsCheck (
64+ { permissions : [ 'clipboardWrite' ] } ,
65+ ( ) => copy ( `${ sourceURL } :${ line } :${ column } ` ) ,
66+ ) ;
6367
6468 return (
6569 < Button onClick = { handleCopy } title = "Copy to clipboard" >
@@ -69,7 +73,10 @@ function CopySourceButton({source, symbolicatedSourcePromise}: Props) {
6973 }
7074
7175 const { sourceURL, line, column} = symbolicatedSource ;
72- const handleCopy = ( ) => copy ( `${ sourceURL } :${ line } :${ column } ` ) ;
76+ const handleCopy = withPermissionsCheck (
77+ { permissions : [ 'clipboardWrite' ] } ,
78+ ( ) => copy ( `${ sourceURL } :${ line } :${ column } ` ) ,
79+ ) ;
7380
7481 return (
7582 < Button onClick = { handleCopy } title = "Copy to clipboard" >
0 commit comments