File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed
Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change 1111// duplication.
1212
1313import { PureComponent } from 'react' ;
14+ import { escapeCssUrl } from 'firefox-profiler/utils/url' ;
1415
1516type StyleDefProps = {
1617 readonly content : string ;
@@ -59,7 +60,7 @@ export class BackgroundImageStyleDef extends PureComponent<BackgroundImageStyleD
5960 override render ( ) : React . ReactElement {
6061 const content = `
6162 .${ this . props . className } {
62- background-image: url(${ this . props . url } );
63+ background-image: url(" ${ escapeCssUrl ( this . props . url ) } " );
6364 }
6465 ` ;
6566 return < StyleDef content = { content } /> ;
Original file line number Diff line number Diff line change @@ -20,3 +20,15 @@ export function isLocalURL(url: string | URL): boolean {
2020 return false ;
2121 }
2222}
23+
24+ /**
25+ * Escape a URL string so it can be safely embedded inside a double-quoted CSS
26+ * url("...").
27+ */
28+ export function escapeCssUrl ( url : string ) : string {
29+ return url
30+ . replace ( / \\ / g, '\\\\' )
31+ . replace ( / " / g, '\\"' )
32+ . replace ( / \n / g, '\\A ' )
33+ . replace ( / \r / g, '' ) ;
34+ }
You can’t perform that action at this time.
0 commit comments