manage_chrome_extensions_macos

in itchef/cookbooks/cpe_chrome/resources/cpe_chrome_posix.rb [223:282]


  def manage_chrome_extensions_macos(extprefs)
    return if extprefs.empty?
    prefix = node['cpe_profiles']['prefix']
    organization = node['organization'] ? node['organization'] : 'Facebook'
    extprefs.each do |k, v|
      chrome_ext_profile = {
        'PayloadIdentifier' => "#{prefix}.browsers.chrome.extension.#{k}",
        'PayloadRemovalDisallowed' => true,
        'PayloadScope' => 'System',
        'PayloadType' => 'Configuration',
        'PayloadUUID' => v['profile_uuid'],
        'PayloadOrganization' => organization,
        'PayloadVersion' => 1,
        'PayloadDisplayName' => "Chrome Extension (#{v['display_name']})",
        'PayloadContent' => [{
          'PayloadType' => "com.google.Chrome.extensions.#{k}",
          'PayloadVersion' => 1,
          'PayloadIdentifier' => "#{prefix}.browsers.chrome.extension.settings.#{k}",
          'PayloadUUID' => v['payload_uuid'],
          'PayloadEnabled' => true,
          'PayloadDisplayName' => "Chrome Extension (#{v['display_name']})",
        }],
      }
      v['profile'].each do |k_ext, v_ext|
        chrome_ext_profile['PayloadContent'][0][k_ext] = v_ext['value']
      end
      node.default['cpe_profiles']["#{prefix}.browsers.chrome.extension.#{k}"] = chrome_ext_profile
    end

    
    if node.installed?('com.google.Chrome.canary')
      prefix = node['cpe_profiles']['prefix']
      organization = node['organization'] ? node['organization'] : 'Facebook'
      extprefs.each do |k, v|
        canary_ext_profile = {
          'PayloadIdentifier' => "#{prefix}.browsers.chromecanary.extension.#{k}",
          'PayloadRemovalDisallowed' => true,
          'PayloadScope' => 'System',
          'PayloadType' => 'Configuration',
          'PayloadUUID' => v['profile_uuid'],
          'PayloadOrganization' => organization,
          'PayloadVersion' => 1,
          'PayloadDisplayName' => "Chrome Extension (#{v['display_name']})",
          'PayloadContent' => [{
            'PayloadType' => "com.google.Chrome.canary.extensions.#{k}",
            'PayloadVersion' => 1,
            'PayloadIdentifier' => "#{prefix}.browsers.chromecanary.extension.settings.#{k}",
            'PayloadUUID' => v['payload_uuid'],
            'PayloadEnabled' => true,
            'PayloadDisplayName' => "Chrome Canary Extension (#{v['display_name']})",
          }],
        }
        v['profile'].each do |k_ext, v_ext|
          canary_ext_profile['PayloadContent'][0][k_ext] = v_ext['value']
        end
        node.default['cpe_profiles']["#{prefix}.browsers.chromecanary.extension.#{k}"] = canary_ext_profile
      end
    end
  end