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

Side by Side Diff: chrome/browser/web_applications/web_app_mac.mm

Issue 9423048: Add user data dir field to Mac platform apps (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address 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 #import "chrome/browser/web_applications/web_app_mac.h" 5 #import "chrome/browser/web_applications/web_app_mac.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/mac/bundle_locations.h" 10 #include "base/mac/bundle_locations.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 65
66 return [image_rep.release() autorelease]; 66 return [image_rep.release() autorelease];
67 } 67 }
68 68
69 } // namespace 69 } // namespace
70 70
71 71
72 namespace web_app { 72 namespace web_app {
73 73
74 WebAppShortcutCreator::WebAppShortcutCreator( 74 WebAppShortcutCreator::WebAppShortcutCreator(
75 const FilePath& data_dir,
75 const ShellIntegration::ShortcutInfo& shortcut_info, 76 const ShellIntegration::ShortcutInfo& shortcut_info,
76 const string16& chrome_bundle_id) 77 const string16& chrome_bundle_id)
77 : info_(shortcut_info), 78 : data_dir_(data_dir),
79 info_(shortcut_info),
78 chrome_bundle_id_(chrome_bundle_id) { 80 chrome_bundle_id_(chrome_bundle_id) {
79 } 81 }
80 82
81 WebAppShortcutCreator::~WebAppShortcutCreator() { 83 WebAppShortcutCreator::~WebAppShortcutCreator() {
82 } 84 }
83 85
84 bool WebAppShortcutCreator::CreateShortcut() { 86 bool WebAppShortcutCreator::CreateShortcut() {
85 FilePath app_name = internals::GetSanitizedFileName(info_.title); 87 FilePath app_name = internals::GetSanitizedFileName(info_.title);
86 FilePath app_file_name = app_name.ReplaceExtension("app"); 88 FilePath app_file_name = app_name.ReplaceExtension("app");
87 ScopedTempDir scoped_temp_dir; 89 ScopedTempDir scoped_temp_dir;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 [value substringWithRange:NSMakeRange(1, [value length] - 2)]; 166 [value substringWithRange:NSMakeRange(1, [value length] - 2)];
165 167
166 NSString* substitution = [replacement_dict valueForKey:variable]; 168 NSString* substitution = [replacement_dict valueForKey:variable];
167 if (substitution) 169 if (substitution)
168 [plist setObject:substitution forKey:key]; 170 [plist setObject:substitution forKey:key];
169 } 171 }
170 172
171 // 2. Fill in other values. 173 // 2. Fill in other values.
172 [plist setObject:GetBundleIdentifier(plist) 174 [plist setObject:GetBundleIdentifier(plist)
173 forKey:base::mac::CFToNSCast(kCFBundleIdentifierKey)]; 175 forKey:base::mac::CFToNSCast(kCFBundleIdentifierKey)];
176 [plist setObject:base::mac::FilePathToNSString(data_dir_)
177 forKey:app_mode::kCrAppModeUserDataDirKey];
Robert Sesek 2012/02/23 01:30:43 nit: align colons. Line above, too.
sail 2012/02/23 03:00:41 Done.
174 178
175 return [plist writeToFile:plist_path atomically:YES]; 179 return [plist writeToFile:plist_path atomically:YES];
176 } 180 }
177 181
178 bool WebAppShortcutCreator::UpdateIcon(const FilePath& app_path) const { 182 bool WebAppShortcutCreator::UpdateIcon(const FilePath& app_path) const {
179 // TODO(sail): Add support for multiple icon sizes. 183 // TODO(sail): Add support for multiple icon sizes.
180 if (info_.favicon.empty() || info_.favicon.width() != 32 || 184 if (info_.favicon.empty() || info_.favicon.width() != 32 ||
181 info_.favicon.height() != 32) { 185 info_.favicon.height() != 32) {
182 return true; 186 return true;
183 } 187 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 } // namespace 232 } // namespace
229 233
230 namespace web_app { 234 namespace web_app {
231 namespace internals { 235 namespace internals {
232 236
233 void CreateShortcutTask(const FilePath& web_app_path, 237 void CreateShortcutTask(const FilePath& web_app_path,
234 const FilePath& profile_path, 238 const FilePath& profile_path,
235 const ShellIntegration::ShortcutInfo& shortcut_info) { 239 const ShellIntegration::ShortcutInfo& shortcut_info) {
236 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 240 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE));
237 string16 bundle_id = UTF8ToUTF16(base::mac::BaseBundleID()); 241 string16 bundle_id = UTF8ToUTF16(base::mac::BaseBundleID());
238 WebAppShortcutCreator shortcut_creator(shortcut_info, bundle_id); 242 WebAppShortcutCreator shortcut_creator(
243 web_app_path, shortcut_info, bundle_id);
239 shortcut_creator.CreateShortcut(); 244 shortcut_creator.CreateShortcut();
240 } 245 }
241 246
242 } // namespace internals 247 } // namespace internals
243 } // namespace web_app 248 } // namespace web_app
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698