anchor.diff:     */
     const String versionFile = "/Applications/Safari.app/Contents/version.plist";
   
  +  /**
  +   * Directories where safari stores state. We delete these if the deleteCache
  +   * is set
  +   */
  +  static const List<String> CACHE_DIRECTORIES =
  +      const ["Library/Caches/com.apple.Safari",
  +             "Library/Safari"];
  +
  +
     Future<bool> allowPopUps() {
       var command = "defaults";
       var args = ["write", "com.apple.safari",
  
positive.code:     });
    }
  
    // Clears the cache if the static deleteCache flag is set.
    // Returns false if the command to actually clear the cache did not complete.
    Future<bool> clearCache() {
      if (!deleteCache) return new Future.immediate(true);
      var home = Platform.environment['HOME'];
      var cache = "$home/Library/Caches/com.apple.Safari";
      _logEvent("Clearing safari cache: $cache}");
      return new Directory(cache).delete(recursive: true)
          .then((_) => true)
  	// This normally means that the directory was not there.
  	.catchError((error) => true);
    }
  
    Future<String> getVersion() {
  
negative.code:     _logEvent("Starting Safari browser on: $url");
      return allowPopUps().then((success) {
        if (!success) {
          return false;
        }
        return clearCache().then((cleared) {
          if (!cleared) {
            _logEvent("Could not clear cache");
            return false;
          }
          // Get the version and log that.
          return getVersion().then((version) {
            _logEvent("Got version: $version");
  