Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(162)

Unified Diff: chrome_frame/chrome_launcher.h

Issue 2278003: Rewrite of chrome_launcher.exe. ETW-based perf tests suggest that this is on ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome_frame/chrome_frame_launcher.gyp ('k') | chrome_frame/chrome_launcher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « chrome_frame/chrome_frame_launcher.gyp ('k') | chrome_frame/chrome_launcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698