Fix passing paths in command line
authorCheng Zhao <zcbenz@gmail.com>
Tue, 10 May 2016 23:47:50 +0000 (08:47 +0900)
committerCheng Zhao <zcbenz@gmail.com>
Tue, 10 May 2016 23:57:35 +0000 (08:57 +0900)
atom/app/atom_content_client.cc
atom/browser/api/atom_api_app.cc

index 8f59c77768c67963ad635d40001740052f4093ab..705573abe5d23ca99989679bc6998b7017a2938d 100644 (file)
@@ -126,7 +126,7 @@ void ConvertStringWithSeparatorToVector(std::vector<std::string>* vec,
 void AddPepperFlashFromCommandLine(
     std::vector<content::PepperPluginInfo>* plugins) {
   auto command_line = base::CommandLine::ForCurrentProcess();
-  auto flash_path = command_line->GetSwitchValueNative(
+  base::FilePath flash_path = command_line->GetSwitchValuePath(
       switches::kPpapiFlashPath);
   if (flash_path.empty())
     return;
@@ -134,20 +134,19 @@ void AddPepperFlashFromCommandLine(
   auto flash_version = command_line->GetSwitchValueASCII(
       switches::kPpapiFlashVersion);
 
-  plugins->push_back(
-      CreatePepperFlashInfo(base::FilePath(flash_path), flash_version));
+  plugins->push_back(CreatePepperFlashInfo(flash_path, flash_version));
 }
 
 #if defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS)
 void AddWidevineCdmFromCommandLine(
     std::vector<content::PepperPluginInfo>* plugins) {
   auto command_line = base::CommandLine::ForCurrentProcess();
-  auto widevine_cdm_path = command_line->GetSwitchValueNative(
+  base::FilePath widevine_cdm_path = command_line->GetSwitchValuePath(
       switches::kWidevineCdmPath);
   if (widevine_cdm_path.empty())
     return;
 
-  if (!base::PathExists(base::FilePath(widevine_cdm_path)))
+  if (!base::PathExists(widevine_cdm_path))
     return;
 
   auto widevine_cdm_version = command_line->GetSwitchValueASCII(
@@ -155,7 +154,7 @@ void AddWidevineCdmFromCommandLine(
   if (widevine_cdm_version.empty())
     return;
 
-  plugins->push_back(CreateWidevineCdmInfo(base::FilePath(widevine_cdm_path),
+  plugins->push_back(CreateWidevineCdmInfo(widevine_cdm_path,
                                            widevine_cdm_version));
 }
 #endif
index 52a6926d1a9b82f08a832a0d55628825253fbf90..4d587d9f0b6469ad5c3d68619d3d577defc69be7 100644 (file)
@@ -27,6 +27,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/path_service.h"
+#include "base/strings/string_util.h"
 #include "brightray/browser/brightray_paths.h"
 #include "chrome/common/chrome_paths.h"
 #include "content/public/browser/client_certificate_delegate.h"
@@ -500,7 +501,8 @@ namespace {
 void AppendSwitch(const std::string& switch_string, mate::Arguments* args) {
   auto command_line = base::CommandLine::ForCurrentProcess();
 
-  if (switch_string == atom::switches::kPpapiFlashPath ||
+  if (base::EndsWith(switch_string, "-path",
+                     base::CompareCase::INSENSITIVE_ASCII) ||
       switch_string == switches::kLogNetLog) {
     base::FilePath path;
     args->GetNext(&path);