Home | History | Annotate | Download | only in common
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_COMMON_CHROME_PATHS_H__
      6 #define CHROME_COMMON_CHROME_PATHS_H__
      7 #pragma once
      8 
      9 #include "build/build_config.h"
     10 
     11 // This file declares path keys for the chrome module.  These can be used with
     12 // the PathService to access various special directories and files.
     13 
     14 namespace chrome {
     15 
     16 enum {
     17   PATH_START = 1000,
     18 
     19   DIR_APP = PATH_START,         // Directory where dlls and data reside.
     20   DIR_LOGS,                     // Directory where logs should be written.
     21   DIR_USER_DATA,                // Directory where user data can be written.
     22   DIR_CRASH_DUMPS,              // Directory where crash dumps are written.
     23   DIR_USER_DESKTOP,             // Directory that correspond to the desktop.
     24   DIR_RESOURCES,                // Directory containing separate file resources
     25                                 // used by Chrome at runtime.
     26   DIR_SHARED_RESOURCES,         // Directory containing js and css files used
     27                                 // by WebUI and component extensions.
     28   DIR_INSPECTOR,                // Directory where web inspector is located.
     29   DIR_APP_DICTIONARIES,         // Directory where the global dictionaries are.
     30   DIR_USER_DOCUMENTS,           // Directory for a user's "My Documents".
     31   DIR_DEFAULT_DOWNLOADS_SAFE,   // Directory for a user's
     32                                 // "My Documents/Downloads".
     33   DIR_DEFAULT_DOWNLOADS,        // Directory for a user's downloads.
     34   DIR_USER_DATA_TEMP,           // A temp directory within DIR_USER_DATA.  Use
     35                                 // this when a temporary file or directory will
     36                                 // be moved into the profile, to avoid issues
     37                                 // moving across volumes.  See crbug.com/13044 .
     38                                 // Getting this path does not create it.  Users
     39                                 // should check that the path exists before
     40                                 // using it.
     41   DIR_INTERNAL_PLUGINS,         // Directory where internal plugins reside.
     42   DIR_MEDIA_LIBS,               // Directory where the Media libraries reside.
     43 #if !defined(OS_MACOSX) && defined(OS_POSIX)
     44   DIR_POLICY_FILES,             // Directory for system-wide read-only
     45                                 // policy files that allow sys-admins
     46                                 // to set policies for chrome. This directory
     47                                 // contains subdirectories.
     48 #endif
     49 #if defined(OS_MACOSX)
     50   DIR_MANAGED_PREFS,            // Directory that stores the managed prefs plist
     51                                 // files for the current user.
     52 #endif
     53 #if defined(OS_CHROMEOS)
     54   DIR_USER_EXTERNAL_EXTENSIONS,  // Directory for per-user external extensions.
     55                                  // Used for OEM customization on Chrome OS.
     56                                  // Getting this path does not create it.
     57 #endif
     58 
     59   FILE_RESOURCE_MODULE,         // Full path and filename of the module that
     60                                 // contains embedded resources (version,
     61                                 // strings, images, etc.).
     62   FILE_LOCAL_STATE,             // Path and filename to the file in which
     63                                 // machine/installation-specific state is saved.
     64   FILE_RECORDED_SCRIPT,         // Full path to the script.log file that
     65                                 // contains recorded browser events for
     66                                 // playback.
     67   FILE_FLASH_PLUGIN,            // Full path to the internal Flash plugin file.
     68   FILE_PDF_PLUGIN,              // Full path to the internal PDF plugin file.
     69   FILE_NACL_PLUGIN,             // Full path to the internal NaCl plugin file.
     70   FILE_LIBAVCODEC,              // Full path to libavcodec media decoding
     71                                 // library.
     72   FILE_LIBAVFORMAT,             // Full path to libavformat media parsing
     73                                 // library.
     74   FILE_LIBAVUTIL,               // Full path to libavutil media utility library.
     75   FILE_RESOURCES_PACK,          // Full path to the .pak file containing
     76                                 // binary data (e.g., html files and images
     77                                 // used by interal pages).
     78 #if defined(OS_CHROMEOS)
     79   FILE_CHROMEOS_API,            // Full path to chrome os api shared object.
     80 #endif
     81 
     82 
     83   // Valid only in development environment; TODO(darin): move these
     84   DIR_TEST_DATA,                // Directory where unit test data resides.
     85   DIR_TEST_TOOLS,               // Directory where unit test tools reside.
     86 
     87   PATH_END
     88 };
     89 
     90 // Call once to register the provider for the path keys defined above.
     91 void RegisterPathProvider();
     92 
     93 }  // namespace chrome
     94 
     95 #endif  // CHROME_COMMON_CHROME_PATHS_H__
     96