blob: f0f3ad2088647f60e9b9d7ed4ba134a09392b8bf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
// 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.
#ifndef CHROME_COMMON_MAC_APP_MODE_COMMON_H_
#define CHROME_COMMON_MAC_APP_MODE_COMMON_H_
#pragma once
#import <Foundation/Foundation.h>
#include "base/file_path.h"
#include "base/string16.h"
// This file contains constants, interfaces, etc. which are common to the
// browser application and the app mode loader (a.k.a. shim).
namespace app_mode {
// The key under which the browser's bundle ID will be stored in the
// app mode launcher bundle's Info.plist.
extern NSString* const kBrowserBundleIDKey;
// Key for the shortcut ID.
extern NSString* const kCrAppModeShortcutIDKey;
// Key for the app's name.
extern NSString* const kCrAppModeShortcutNameKey;
// Key for the app's URL.
extern NSString* const kCrAppModeShortcutURLKey;
// Key for the app user data directory.
extern NSString* const kCrAppModeUserDataDirKey;
// Key for the app's extension path.
extern NSString* const kCrAppModeExtensionPathKey;
// When the Chrome browser is run, it stores it's location in the defaults
// system using this key.
extern NSString* const kLastRunAppBundlePathPrefsKey;
// Placeholders used in the app mode loader bundle' Info.plist:
extern NSString* const kShortcutIdPlaceholder; // Extension shortcut ID.
extern NSString* const kShortcutNamePlaceholder; // Extension name.
extern NSString* const kShortcutURLPlaceholder;
// Bundle ID of the Chrome browser bundle.
extern NSString* const kShortcutBrowserBundleIDPlaceholder;
// Current major/minor version numbers of |ChromeAppModeInfo| (defined below).
const unsigned kCurrentChromeAppModeInfoMajorVersion = 1;
const unsigned kCurrentChromeAppModeInfoMinorVersion = 0;
// The structure used to pass information from the app mode loader to the
// (browser) framework. This is versioned using major and minor version numbers,
// written below as v<major>.<minor>. Version-number checking is done by the
// framework, and the framework must accept all structures with the same major
// version number. It may refuse to load if the major version of the structure
// is different from the one it accepts.
struct ChromeAppModeInfo {
public:
ChromeAppModeInfo();
~ChromeAppModeInfo();
// Major and minor version number of this structure.
unsigned major_version; // Required: all versions
unsigned minor_version; // Required: all versions
// Original |argc| and |argv|.
int argc; // Required: v1.0
char** argv; // Required: v1.0
// Versioned path to the browser which is being loaded.
FilePath chrome_versioned_path; // Required: v1.0
// Path to Chrome app bundle.
FilePath chrome_outer_bundle_path; // Required: v1.0
// Information about the App Mode shortcut:
// Path to the App Mode Loader application bundle that launched the process.
FilePath app_mode_bundle_path; // Optional: v1.0
// Short ID string, preferably derived from |app_mode_short_name|. Should be
// safe for the file system.
std::string app_mode_id; // Required: v1.0
// Unrestricted (e.g., several-word) UTF8-encoded name for the shortcut.
string16 app_mode_name; // Optional: v1.0
// URL for the shortcut. Must be a valid URL.
std::string app_mode_url; // Required: v1.0
// Path to the app's user data directory.
FilePath user_data_dir;
// Path to the app's extension.
FilePath extension_path;
};
} // namespace app_mode
#endif // CHROME_COMMON_MAC_APP_MODE_COMMON_H_
|