summaryrefslogtreecommitdiffstats
path: root/ipc/chromium/src/base/mac_util.mm
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/chromium/src/base/mac_util.mm')
-rw-r--r--ipc/chromium/src/base/mac_util.mm32
1 files changed, 32 insertions, 0 deletions
diff --git a/ipc/chromium/src/base/mac_util.mm b/ipc/chromium/src/base/mac_util.mm
new file mode 100644
index 0000000000..a8564127df
--- /dev/null
+++ b/ipc/chromium/src/base/mac_util.mm
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 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.
+
+#include "base/mac_util.h"
+
+#include <Carbon/Carbon.h>
+#import <Cocoa/Cocoa.h>
+
+#include "base/file_path.h"
+#include "base/logging.h"
+#include "base/scoped_cftyperef.h"
+#include "base/sys_string_conversions.h"
+
+namespace mac_util {
+
+// Adapted from http://developer.apple.com/carbon/tipsandtricks.html#AmIBundled
+bool AmIBundled() {
+ ProcessSerialNumber psn = {0, kCurrentProcess};
+
+ FSRef fsref;
+ if (GetProcessBundleLocation(&psn, &fsref) != noErr) return false;
+
+ FSCatalogInfo info;
+ if (FSGetCatalogInfo(&fsref, kFSCatInfoNodeFlags, &info, NULL, NULL, NULL) != noErr) {
+ return false;
+ }
+
+ return info.nodeFlags & kFSNodeIsDirectoryMask;
+}
+
+} // namespace mac_util