Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Side by Side Diff: chrome/common/mac/app_mode_common.h

Issue 9416012: Mac: Generate App Mode Loader bundle + cleanup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix review comments Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_COMMON_MAC_APP_MODE_COMMON_H_ 5 #ifndef CHROME_COMMON_MAC_APP_MODE_COMMON_H_
6 #define CHROME_COMMON_MAC_APP_MODE_COMMON_H_ 6 #define CHROME_COMMON_MAC_APP_MODE_COMMON_H_
7 #pragma once 7 #pragma once
8 8
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 10
11 #include "base/file_path.h" 11 #include "base/file_path.h"
12 #include "base/string16.h" 12 #include "base/string16.h"
13 13
14 // This file contains constants, interfaces, etc. which are common to the 14 // This file contains constants, interfaces, etc. which are common to the
15 // browser application and the app mode loader (a.k.a. shim). 15 // browser application and the app mode loader (a.k.a. shim).
16 16
17 namespace app_mode { 17 namespace app_mode {
18 18
19 // The key under which the browser's bundle ID will be stored in the 19 // The key under which the browser's bundle ID will be stored in the
20 // app mode launcher bundle's Info.plist. 20 // app mode launcher bundle's Info.plist.
21 extern NSString* const kBrowserBundleIDKey; 21 extern NSString* const kBrowserBundleIDKey;
22 22
23 // The key under which to record the path to the (user-visible) application
24 // bundle; this key is recorded under the ID given by |kAppPrefsID|.
25 extern NSString* const kLastRunAppBundlePathPrefsKey;
26
27 // Key for the shortcut ID. 23 // Key for the shortcut ID.
28 extern NSString* const kCrAppModeShortcutIDKey; 24 extern NSString* const kCrAppModeShortcutIDKey;
29 25
30 // Key for the app's shortcut name. 26 // Key for the app's shortcut name.
31 extern NSString* const kCrAppModeShortcutShortNameKey; 27 extern NSString* const kCrAppModeShortcutShortNameKey;
32 28
33 // Key for the app's unrestricted name. 29 // Key for the app's unrestricted name.
34 extern NSString* const kCrAppModeShortcutNameKey; 30 extern NSString* const kCrAppModeShortcutNameKey;
35 31
36 // Key for the app's URL. 32 // Key for the app's URL.
37 extern NSString* const kCrAppModeShortcutURLKey; 33 extern NSString* const kCrAppModeShortcutURLKey;
38 34
35 // When the Chrome browser is run, it stores it's location in the defaults
36 // system using this key.
37 extern NSString* const kLastRunAppBundlePathPrefsKey;
38
39 // Placeholder used in the Info.plist, meant to be replaced by the extension
40 // shortcut ID.
41 extern NSString* const kShortcutIdPlaceholder;
42
39 // Current major/minor version numbers of |ChromeAppModeInfo| (defined below). 43 // Current major/minor version numbers of |ChromeAppModeInfo| (defined below).
40 const unsigned kCurrentChromeAppModeInfoMajorVersion = 1; 44 const unsigned kCurrentChromeAppModeInfoMajorVersion = 1;
41 const unsigned kCurrentChromeAppModeInfoMinorVersion = 0; 45 const unsigned kCurrentChromeAppModeInfoMinorVersion = 0;
42 46
43 // The structure used to pass information from the app mode loader to the 47 // The structure used to pass information from the app mode loader to the
44 // (browser) framework. This is versioned using major and minor version numbers, 48 // (browser) framework. This is versioned using major and minor version numbers,
45 // written below as v<major>.<minor>. Version-number checking is done by the 49 // written below as v<major>.<minor>. Version-number checking is done by the
46 // framework, and the framework must accept all structures with the same major 50 // framework, and the framework must accept all structures with the same major
47 // version number. It may refuse to load if the major version of the structure 51 // version number. It may refuse to load if the major version of the structure
48 // is different from the one it accepts. 52 // is different from the one it accepts.
49 struct ChromeAppModeInfo { 53 struct ChromeAppModeInfo {
50 public: 54 public:
51 ChromeAppModeInfo(); 55 ChromeAppModeInfo();
52 ~ChromeAppModeInfo(); 56 ~ChromeAppModeInfo();
53 57
54 // Major and minor version number of this structure. 58 // Major and minor version number of this structure.
55 unsigned major_version; // Required: all versions 59 unsigned major_version; // Required: all versions
56 unsigned minor_version; // Required: all versions 60 unsigned minor_version; // Required: all versions
57 61
58 // Original |argc| and |argv|. 62 // Original |argc| and |argv|.
59 int argc; // Required: v1.0 63 int argc; // Required: v1.0
60 char** argv; // Required: v1.0 64 char** argv; // Required: v1.0
61 65
62 // Versioned path to the browser which is being loaded. 66 // Versioned path to the browser which is being loaded.
63 FilePath chrome_versioned_path; // Required: v1.0 67 FilePath chrome_versioned_path; // Required: v1.0
64 68
69 // Path to Chrome app bundle.
70 FilePath chrome_outer_bundle_path; // Required: v1.0
71
65 // Information about the App Mode shortcut: 72 // Information about the App Mode shortcut:
66 73
67 // Path to the App Mode Loader application bundle originally run. 74 // Path to the App Mode Loader application bundle that launched the process.
68 FilePath app_mode_bundle_path; // Optional: v1.0 75 FilePath app_mode_bundle_path; // Optional: v1.0
69 76
70 // Short ID string, preferably derived from |app_mode_short_name|. Should be 77 // Short ID string, preferably derived from |app_mode_short_name|. Should be
71 // safe for the file system. 78 // safe for the file system.
72 std::string app_mode_id; // Required: v1.0 79 std::string app_mode_id; // Required: v1.0
73 80
74 // Short (e.g., one-word) UTF8-encoded name for the shortcut. 81 // Short (e.g., one-word) UTF8-encoded name for the shortcut.
75 string16 app_mode_short_name; // Optional: v1.0 82 string16 app_mode_short_name; // Optional: v1.0
76 83
77 // Unrestricted (e.g., several-word) UTF8-encoded name for the shortcut. 84 // Unrestricted (e.g., several-word) UTF8-encoded name for the shortcut.
78 string16 app_mode_name; // Optional: v1.0 85 string16 app_mode_name; // Optional: v1.0
79 86
80 // URL for the shortcut. Must be a valid URL. 87 // URL for the shortcut. Must be a valid URL.
81 std::string app_mode_url; // Required: v1.0 88 std::string app_mode_url; // Optional: v1.0
82 }; 89 };
83 90
84 } // namespace app_mode 91 } // namespace app_mode
85 92
86 #endif // CHROME_COMMON_MAC_APP_MODE_COMMON_H_ 93 #endif // CHROME_COMMON_MAC_APP_MODE_COMMON_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698