[email protected] | 12dc3d4 | 2010-02-22 23:37:12 | [diff] [blame] | 1 | // Copyright (c) 2010 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 | |||||
[email protected] | 646b9b9 | 2010-04-30 21:51:58 | [diff] [blame] | 5 | #ifndef CHROME_COMMON_APP_MODE_COMMON_MAC_H_ |
6 | #define CHROME_COMMON_APP_MODE_COMMON_MAC_H_ | ||||
[email protected] | 32b76ef | 2010-07-26 23:08:24 | [diff] [blame] | 7 | #pragma once |
[email protected] | 12dc3d4 | 2010-02-22 23:37:12 | [diff] [blame] | 8 | |
9 | #include <CoreFoundation/CoreFoundation.h> | ||||
10 | |||||
[email protected] | 646b9b9 | 2010-04-30 21:51:58 | [diff] [blame] | 11 | // This file contains constants, interfaces, etc. which are common to the |
12 | // browser application and the app mode loader (a.k.a. shim). | ||||
[email protected] | 12dc3d4 | 2010-02-22 23:37:12 | [diff] [blame] | 13 | |
14 | namespace app_mode { | ||||
15 | |||||
16 | // The ID under which app mode preferences will be recorded | ||||
17 | // ("org.chromium.Chromium" or "com.google.Chrome"). | ||||
18 | extern const CFStringRef kAppPrefsID; | ||||
19 | |||||
20 | // The key under which to record the path to the (user-visible) application | ||||
21 | // bundle; this key is recorded under the ID given by |kAppPrefsID|. | ||||
22 | extern const CFStringRef kLastRunAppBundlePathPrefsKey; | ||||
23 | |||||
[email protected] | adf0225 | 2010-05-18 22:09:40 | [diff] [blame] | 24 | // Current major/minor version numbers of |ChromeAppModeInfo| (defined below). |
[email protected] | 4f48637 | 2010-06-17 12:30:34 | [diff] [blame] | 25 | const unsigned kCurrentChromeAppModeInfoMajorVersion = 1; |
26 | const unsigned kCurrentChromeAppModeInfoMinorVersion = 0; | ||||
[email protected] | adf0225 | 2010-05-18 22:09:40 | [diff] [blame] | 27 | |
28 | // The structure used to pass information from the app mode loader to the | ||||
29 | // (browser) framework. This is versioned using major and minor version numbers, | ||||
30 | // written below as v<major>.<minor>. Version-number checking is done by the | ||||
31 | // framework, and the framework must accept all structures with the same major | ||||
32 | // version number. It may refuse to load if the major version of the structure | ||||
33 | // is different from the one it accepts. | ||||
34 | struct ChromeAppModeInfo { | ||||
35 | // Major and minor version number of this structure. | ||||
36 | unsigned major_version; // Required: all versions | ||||
37 | unsigned minor_version; // Required: all versions | ||||
38 | |||||
39 | // Original |argc| and |argv|. | ||||
[email protected] | 4f48637 | 2010-06-17 12:30:34 | [diff] [blame] | 40 | int argc; // Required: v1.0 |
41 | char** argv; // Required: v1.0 | ||||
[email protected] | adf0225 | 2010-05-18 22:09:40 | [diff] [blame] | 42 | |
43 | // Versioned path to the browser which is being loaded. | ||||
[email protected] | 4f48637 | 2010-06-17 12:30:34 | [diff] [blame] | 44 | char* chrome_versioned_path; // Required: v1.0 |
[email protected] | adf0225 | 2010-05-18 22:09:40 | [diff] [blame] | 45 | |
46 | // Information about the App Mode shortcut: | ||||
47 | |||||
48 | // Path to the App Mode Loader application bundle originally run. | ||||
[email protected] | 4f48637 | 2010-06-17 12:30:34 | [diff] [blame] | 49 | char* app_mode_bundle_path; // Optional: v1.0 |
[email protected] | adf0225 | 2010-05-18 22:09:40 | [diff] [blame] | 50 | |
51 | // Short ID string, preferably derived from |app_mode_short_name|. Should be | ||||
52 | // safe for the file system. | ||||
[email protected] | 4f48637 | 2010-06-17 12:30:34 | [diff] [blame] | 53 | char* app_mode_id; // Required: v1.0 |
[email protected] | adf0225 | 2010-05-18 22:09:40 | [diff] [blame] | 54 | |
55 | // Short (e.g., one-word) UTF8-encoded name for the shortcut. | ||||
[email protected] | 4f48637 | 2010-06-17 12:30:34 | [diff] [blame] | 56 | char* app_mode_short_name; // Optional: v1.0 |
[email protected] | adf0225 | 2010-05-18 22:09:40 | [diff] [blame] | 57 | |
58 | // Unrestricted (e.g., several-word) UTF8-encoded name for the shortcut. | ||||
[email protected] | 4f48637 | 2010-06-17 12:30:34 | [diff] [blame] | 59 | char* app_mode_name; // Optional: v1.0 |
[email protected] | adf0225 | 2010-05-18 22:09:40 | [diff] [blame] | 60 | |
61 | // URL for the shortcut. Must be a valid URL. | ||||
[email protected] | 4f48637 | 2010-06-17 12:30:34 | [diff] [blame] | 62 | char* app_mode_url; // Required: v1.0 |
[email protected] | adf0225 | 2010-05-18 22:09:40 | [diff] [blame] | 63 | }; |
64 | |||||
[email protected] | 12dc3d4 | 2010-02-22 23:37:12 | [diff] [blame] | 65 | } // namespace app_mode |
66 | |||||
[email protected] | 646b9b9 | 2010-04-30 21:51:58 | [diff] [blame] | 67 | #endif // CHROME_COMMON_APP_MODE_COMMON_MAC_H_ |