@@ -644,6 +644,11 @@ var gZenMarketplaceManager = {
644644
645645const kZenExtendedSidebar = "zen.view.sidebar-expanded" ;
646646const kZenSingleToolbar = "zen.view.use-single-toolbar" ;
647+ const kZenMacOSAppIconVariant = "zen.widget.macos.app-icon-variant" ;
648+ const kZenMacOSAppIconPreviewSrcByVariant = {
649+ default : "chrome://branding/content/icon48.png" ,
650+ alternate : "chrome://browser/content/zen-images/app-icons/alternate-preview.png" ,
651+ } ;
647652
648653var gZenLooksAndFeel = {
649654 init ( ) {
@@ -652,18 +657,24 @@ var gZenLooksAndFeel = {
652657 }
653658 this . __hasInitialized = true ;
654659 gZenMarketplaceManager . init ( ) ;
655- for ( const pref of [ kZenExtendedSidebar , kZenSingleToolbar ] ) {
660+ for ( const pref of [ kZenExtendedSidebar , kZenSingleToolbar , kZenMacOSAppIconVariant ] ) {
656661 Services . prefs . addObserver ( pref , this ) ;
657662 }
658663 window . addEventListener ( "unload" , ( ) => {
659- for ( const pref of [ kZenExtendedSidebar , kZenSingleToolbar ] ) {
664+ for ( const pref of [ kZenExtendedSidebar , kZenSingleToolbar , kZenMacOSAppIconVariant ] ) {
660665 Services . prefs . removeObserver ( pref , this ) ;
661666 }
662667 } ) ;
663668 this . applySidebarLayout ( ) ;
669+ this . applyMacOSAppIconPreview ( ) ;
664670 } ,
665671
666- observe ( ) {
672+ observe ( _subject , _topic , data ) {
673+ if ( data == kZenMacOSAppIconVariant ) {
674+ this . applyMacOSAppIconPreview ( ) ;
675+ return ;
676+ }
677+
667678 this . applySidebarLayout ( ) ;
668679 } ,
669680
@@ -708,6 +719,19 @@ var gZenLooksAndFeel = {
708719 } ) ;
709720 }
710721 } ,
722+
723+ applyMacOSAppIconPreview ( ) {
724+ const preview = document . getElementById ( "zenLooksAndFeelMacOSAppIconPreview" ) ;
725+ if ( ! preview ) {
726+ return ;
727+ }
728+
729+ const variant = Services . prefs . getStringPref ( kZenMacOSAppIconVariant , "default" ) ;
730+ const variantPreviewSrc = kZenMacOSAppIconPreviewSrcByVariant [ variant ] ;
731+ const defaultPreviewSrc = kZenMacOSAppIconPreviewSrcByVariant . default ;
732+ const previewSrc = variantPreviewSrc ?? defaultPreviewSrc ;
733+ preview . setAttribute ( "src" , previewSrc ) ;
734+ } ,
711735} ;
712736
713737var gZenWorkspacesSettings = {
@@ -1135,6 +1159,11 @@ Preferences.addAll([
11351159 type : "bool" ,
11361160 default : true ,
11371161 } ,
1162+ {
1163+ id : "zen.widget.macos.app-icon-variant" ,
1164+ type : "string" ,
1165+ default : "default" ,
1166+ } ,
11381167 {
11391168 id : "zen.workspaces.hide-default-container-indicator" ,
11401169 type : "bool" ,
0 commit comments