code: function expandConfiguration(taskConfig, defaults){
      taskConfig = extend(getTaskConfiguration(), defaults || {}, taskConfig);
  
      var crxConfig = {
        maxBuffer: taskConfig.options.maxBuffer || undefined
      };
  
      // Compute a list of ignored filed
      // Eventually expanding `~` in config paths
      if (taskConfig.options.privateKey) {
        var privateKeyPath = resolveHomeDirectory(taskConfig.options.privateKey);
  
        if (!grunt.file.exists(privateKeyPath)){
  	grunt.fail.fatal('Unable to locate your private key at path "' + privateKeyPath + '".');
        }
        else{
  	crxConfig.privateKey = grunt.file.read(privateKeyPath);
        }
      }
  
      crxConfig.codebase = taskConfig.options.baseURL || taskConfig.options.codebase || null;
  
      if (crxConfig.codebase && !/.crx$/.test(crxConfig.codebase)){
        crxConfig.codebase = crxConfig.codebase.replace(/\/$/, '');
        crxConfig.codebase += '/' + path.basename(taskConfig.dest);
      }
  
      return crxConfig;
    }
docs: Refines a task configuration (expand settings etc.)
  
  @param {Object} taskConfig
  @param {Object=} defaults
  @return {Object}