| ;; |
| ;; Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| ;; Use of this source code is governed by a BSD-style license that can be |
| ;; found in the LICENSE file. |
| ;; |
| ; This configuration file isn't used on it's own, but instead implicitly |
| ; included at the start of all other sandbox configuration files in Chrome. |
| (version 1) |
| |
| ; Helper function to check if a param is set to true. |
| (define (param-true? str) (string=? (param str) "TRUE")) |
| |
| ; Helper function to determine if a parameter is defined or not. |
| (define (param-defined? str) (string? (param str))) |
| |
| ; Define constants for all of the parameter strings passed in. |
| (define disable-sandbox-denial-logging "DISABLE_SANDBOX_DENIAL_LOGGING") |
| (define enable-logging "ENABLE_LOGGING") |
| (define permitted-dir "PERMITTED_DIR") |
| (define homedir-as-literal "USER_HOMEDIR_AS_LITERAL") |
| (define elcap-or-later "ELCAP_OR_LATER") |
| |
| ; Consumes a subpath and appends it to the user's homedir path. |
| (define (user-homedir-path subpath) (string-append (param homedir-as-literal) subpath)) |
| |
| ; DISABLE_SANDBOX_DENIAL_LOGGING turns off log messages in the system log. |
| (if (param-true? disable-sandbox-denial-logging) |
| (deny default (with no-log)) |
| (deny default)) |
| |
| ; Support for programmatically enabling verbose debugging. |
| (if (param-true? enable-logging) (debug deny)) |
| |
| ; Allow sending signals to self - https://crbug.com/20370 |
| (allow signal (target self)) |
| |
| ; Needed for full-page-zoomed controls - https://crbug.com/11325 |
| (allow sysctl-read) |
| |
| ; Loading System Libraries. |
| (allow file-read* |
| (regex #"^/System/Library/Frameworks($|/)") |
| (regex #"^/System/Library/PrivateFrameworks($|/)") |
| (regex #"^/System/Library/CoreServices($|/)")) |
| |
| (allow ipc-posix-shm) |
| |
| ; Allow direct access to /dev/urandom, similar to Linux/POSIX, to allow |
| ; third party code (eg: bits of Adobe Flash and NSS) to function properly. |
| (allow file-read-data file-read-metadata (literal "/dev/urandom")) |