Index: chrome_frame/chrome_launcher.h |
=================================================================== |
--- chrome_frame/chrome_launcher.h (revision 48414) |
+++ chrome_frame/chrome_launcher.h (working copy) |
@@ -7,41 +7,46 @@ |
#include <string> |
-#include "base/file_path.h" |
+// arraysize macro shamelessly stolen from base\basictypes.h |
+template <typename T, size_t N> |
+char (&ArraySizeHelper(T (&array)[N]))[N]; |
-class CommandLine; |
+#define arraysize(array) (sizeof(ArraySizeHelper(array))) |
namespace chrome_launcher { |
// The base name of the chrome_launcher.exe file. |
extern const wchar_t kLauncherExeBaseName[]; |
-// Creates a command line suitable for launching Chrome. You can add any |
-// flags needed before launching. |
-// |
-// The command-line may use the Chrome executable directly, or use an in-between |
-// process if needed for security/elevation purposes. You must delete the |
-// returned command line. |
-CommandLine* CreateLaunchCommandLine(); |
+// Returns true if command_line contains only flags that we allow through. |
+// Returns false if command_line contains any unrecognized flags. |
+bool IsValidCommandLine(const wchar_t* command_line); |
-// Fills in a new command line from the flags on this process's command line |
-// that we are allowing Low Integrity to invoke. |
-// |
-// Logs a warning for any flags that were passed that are not allowed to be |
-// invoked by Low Integrity. |
-void SanitizeCommandLine(const CommandLine& original, CommandLine* sanitized); |
- |
// Given a command-line without an initial program part, launch our associated |
// chrome.exe with a sanitized version of that command line. Returns true iff |
// successful. |
bool SanitizeAndLaunchChrome(const wchar_t* command_line); |
+// Returns a pointer to the position in command_line the string right after the |
+// name of the executable. This is equivalent to the second element of the |
+// array returned by CommandLineToArgvW. Returns NULL if there are no further |
+// arguments. |
+const wchar_t* GetArgumentsStart(const wchar_t* command_line); |
+ |
// Returns the full path to the Chrome executable. |
-FilePath GetChromeExecutablePath(); |
+bool GetChromeExecutablePath(std::wstring* chrome_path); |
-// The type of the CfLaunchChrome entrypoint exported from this DLL. |
-typedef int (__stdcall *CfLaunchChromeProc)(); |
+// Returns whether a given argument is considered a valid flag. Only accepts |
+// flags of the forms: |
+// --foo |
+// --foo=bar |
+bool IsValidArgument(const std::wstring& argument); |
+// Returns a string that is equivalent in input_str without any leading |
+// or trailing whitespace. Returns an empty string if input_str contained only |
+// whitespace. |
+std::wstring TrimWhiteSpace(const wchar_t* input_str); |
+ |
} // namespace chrome_launcher |
#endif // CHROME_FRAME_CHROME_LAUNCHER_H_ |