summaryrefslogtreecommitdiffstats
path: root/chrome/plugin
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-31 00:48:10 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-31 00:48:10 +0000
commited455379daa50edcefa37dd5670c12e84dce72f6 (patch)
treec817a2deb91307a573610c8bf505631d032273fc /chrome/plugin
parente5047ff99b92662f3e3bda31650b16506ae5ad55 (diff)
downloadchromium_src-ed455379daa50edcefa37dd5670c12e84dce72f6.zip
chromium_src-ed455379daa50edcefa37dd5670c12e84dce72f6.tar.gz
chromium_src-ed455379daa50edcefa37dd5670c12e84dce72f6.tar.bz2
base: Add UnSetEnv function to EnvVarGetter API.
BUG=None TEST=out/Debug/base_unittests --gtest_filter=EnvVarTest.UnSetEnvVar Signed-off-by: Thiago Farina <tfarina@chromium.org> Review URL: http://codereview.chromium.org/3043018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54418 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/plugin')
-rw-r--r--chrome/plugin/plugin_main_mac.mm28
1 files changed, 16 insertions, 12 deletions
diff --git a/chrome/plugin/plugin_main_mac.mm b/chrome/plugin/plugin_main_mac.mm
index 56b7c95..119f986 100644
--- a/chrome/plugin/plugin_main_mac.mm
+++ b/chrome/plugin/plugin_main_mac.mm
@@ -1,17 +1,21 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 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/chrome_application_mac.h"
+#include "base/env_var.h"
+#include "base/scoped_ptr.h"
#include "base/string_util.h"
#include "chrome/common/plugin_carbon_interpose_constants_mac.h"
#include "chrome/plugin/plugin_interpose_util_mac.h"
#if !defined(__LP64__)
void TrimInterposeEnvironment() {
- const char* interpose_list =
- getenv(plugin_interpose_strings::kDYLDInsertLibrariesKey);
- if (!interpose_list) {
+ scoped_ptr<base::EnvVarGetter> env(base::EnvVarGetter::Create());
+
+ std::string interpose_list;
+ if (!env->GetEnv(plugin_interpose_strings::kDYLDInsertLibrariesKey,
+ &interpose_list)) {
NOTREACHED() << "No interposing libraries set";
return;
}
@@ -21,19 +25,19 @@ void TrimInterposeEnvironment() {
// need to handle are:
// 1) The whole string is "<kInterposeLibraryPath>", so just clear it, or
// 2) ":<kInterposeLibraryPath>" is the end of the string, so trim and re-set.
- int suffix_offset = strlen(interpose_list) -
+ int suffix_offset = strlen(interpose_list.c_str()) -
strlen(plugin_interpose_strings::kInterposeLibraryPath);
+
if (suffix_offset == 0 &&
- strcmp(interpose_list,
+ strcmp(interpose_list.c_str(),
plugin_interpose_strings::kInterposeLibraryPath) == 0) {
- unsetenv(plugin_interpose_strings::kDYLDInsertLibrariesKey);
+ env->UnSetEnv(plugin_interpose_strings::kDYLDInsertLibrariesKey);
} else if (suffix_offset > 0 && interpose_list[suffix_offset - 1] == ':' &&
- strcmp(interpose_list + suffix_offset,
+ strcmp(interpose_list.c_str() + suffix_offset,
plugin_interpose_strings::kInterposeLibraryPath) == 0) {
- std::string trimmed_list =
- std::string(interpose_list).substr(0, suffix_offset - 1);
- setenv(plugin_interpose_strings::kDYLDInsertLibrariesKey,
- trimmed_list.c_str(), 1);
+ std::string trimmed_list = interpose_list.substr(0, suffix_offset - 1);
+ env->SetEnv(plugin_interpose_strings::kDYLDInsertLibrariesKey,
+ trimmed_list.c_str());
} else {
NOTREACHED() << "Missing Carbon interposing library";
}