Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chromium: fix nix_plugin_paths for 68+
- Loading branch information
Showing
2 changed files
with
74 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
70 changes: 70 additions & 0 deletions
70
pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc | ||
index f4e119d..d9775bd 100644 | ||
--- a/chrome/common/chrome_paths.cc | ||
+++ b/chrome/common/chrome_paths.cc | ||
@@ -68,21 +68,14 @@ static base::LazyInstance<base::FilePath> | ||
g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER; | ||
|
||
// Gets the path for internal plugins. | ||
-bool GetInternalPluginsDirectory(base::FilePath* result) { | ||
-#if defined(OS_MACOSX) | ||
- // If called from Chrome, get internal plugins from a subdirectory of the | ||
- // framework. | ||
- if (base::mac::AmIBundled()) { | ||
- *result = chrome::GetFrameworkBundlePath(); | ||
- DCHECK(!result->empty()); | ||
- *result = result->Append("Internet Plug-Ins"); | ||
- return true; | ||
- } | ||
- // In tests, just look in the module directory (below). | ||
-#endif | ||
- | ||
- // The rest of the world expects plugins in the module directory. | ||
- return base::PathService::Get(base::DIR_MODULE, result); | ||
+bool GetInternalPluginsDirectory(base::FilePath* result, | ||
+ const std::string& ident) { | ||
+ std::string full_env = std::string("NIX_CHROMIUM_PLUGIN_PATH_") + ident; | ||
+ const char* value = getenv(full_env.c_str()); | ||
+ if (value == NULL) | ||
+ return PathService::Get(base::DIR_MODULE, result); | ||
+ else | ||
+ *result = base::FilePath(value); | ||
} | ||
|
||
// Gets the path for bundled implementations of components. Note that these | ||
@@ -272,7 +265,7 @@ bool PathProvider(int key, base::FilePath* result) { | ||
create_dir = true; | ||
break; | ||
case chrome::DIR_INTERNAL_PLUGINS: | ||
- if (!GetInternalPluginsDirectory(&cur)) | ||
+ if (!GetInternalPluginsDirectory(&cur, "ALL")) | ||
return false; | ||
break; | ||
case chrome::DIR_COMPONENTS: | ||
@@ -280,7 +273,7 @@ bool PathProvider(int key, base::FilePath* result) { | ||
return false; | ||
break; | ||
case chrome::DIR_PEPPER_FLASH_PLUGIN: | ||
- if (!GetInternalPluginsDirectory(&cur)) | ||
+ if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH")) | ||
return false; | ||
cur = cur.Append(kPepperFlashBaseDirectory); | ||
break; | ||
@@ -323,7 +316,7 @@ bool PathProvider(int key, base::FilePath* result) { | ||
// We currently need a path here to look up whether the plugin is disabled | ||
// and what its permissions are. | ||
case chrome::FILE_NACL_PLUGIN: | ||
- if (!GetInternalPluginsDirectory(&cur)) | ||
+ if (!GetInternalPluginsDirectory(&cur, "NACL")) | ||
return false; | ||
cur = cur.Append(kInternalNaClPluginFileName); | ||
break; | ||
@@ -358,7 +351,7 @@ bool PathProvider(int key, base::FilePath* result) { | ||
cur = cur.DirName(); | ||
} | ||
#else | ||
- if (!GetInternalPluginsDirectory(&cur)) | ||
+ if (!GetInternalPluginsDirectory(&cur, "PNACL")) | ||
return false; | ||
#endif | ||
cur = cur.Append(FILE_PATH_LITERAL("pnacl")); |