Add undocumented "preload-url" option for web-preferences

This commit is contained in:
Cheng Zhao 2015-09-05 10:57:39 +09:00
parent 0b97d58a6f
commit b1afe538ee
3 changed files with 18 additions and 5 deletions

View file

@ -8,7 +8,7 @@
#include "base/command_line.h" #include "base/command_line.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "content/public/common/web_preferences.h" #include "content/public/common/web_preferences.h"
#include "storage/common/fileapi/file_system_util.h" // IsAbsolute #include "net/base/filename_util.h"
#if defined(OS_WIN) #if defined(OS_WIN)
#include "ui/gfx/switches.h" #include "ui/gfx/switches.h"
@ -90,10 +90,19 @@ void WebContentsPreferences::AppendExtraCommandLineSwitches(
// The preload script. // The preload script.
base::FilePath::StringType preload; base::FilePath::StringType preload;
if (web_preferences.GetString(switches::kPreloadScript, &preload) && if (web_preferences.GetString(switches::kPreloadScript, &preload)) {
!preload.empty() && if (base::FilePath(preload).IsAbsolute())
base::FilePath(preload).IsAbsolute()) command_line->AppendSwitchNative(switches::kPreloadScript, preload);
command_line->AppendSwitchNative(switches::kPreloadScript, preload); else
LOG(ERROR) << "preload script must have abosulute path.";
} else if (web_preferences.GetString(switches::kPreloadUrl, &preload)) {
// Translate to file path if there is "preload-url" option.
base::FilePath preload_path;
if (net::FileURLToFilePath(GURL(preload), &preload_path))
command_line->AppendSwitchPath(switches::kPreloadScript, preload_path);
else
LOG(ERROR) << "preload url must be file:// protocol.";
}
// The zoom factor. // The zoom factor.
double zoom_factor = 1.0; double zoom_factor = 1.0;

View file

@ -75,6 +75,9 @@ const char kGuestInstanceID[] = "guest-instance-id";
// Script that will be loaded by guest WebContents before other scripts. // Script that will be loaded by guest WebContents before other scripts.
const char kPreloadScript[] = "preload"; const char kPreloadScript[] = "preload";
// Like --preload, but the passed argument is an URL.
const char kPreloadUrl[] = "preload-url";
// Whether the window should be transparent. // Whether the window should be transparent.
const char kTransparent[] = "transparent"; const char kTransparent[] = "transparent";

View file

@ -41,6 +41,7 @@ extern const char kPpapiFlashPath[];
extern const char kPpapiFlashVersion[]; extern const char kPpapiFlashVersion[];
extern const char kGuestInstanceID[]; extern const char kGuestInstanceID[];
extern const char kPreloadScript[]; extern const char kPreloadScript[];
extern const char kPreloadUrl[];
extern const char kTransparent[]; extern const char kTransparent[];
extern const char kType[]; extern const char kType[];
extern const char kDisableAutoHideCursor[]; extern const char kDisableAutoHideCursor[];