Use PersistentDictionary to store web perferences.

This commit is contained in:
Cheng Zhao 2014-09-09 14:13:21 +08:00
parent 44d3e58ddb
commit 33b94edcf0
4 changed files with 14 additions and 18 deletions

View file

@ -23,7 +23,7 @@ struct Converter<file_dialog::Filter> {
static bool FromV8(v8::Isolate* isolate,
v8::Handle<v8::Value> val,
file_dialog::Filter* out) {
mate::Dictionary dict(isolate);
mate::Dictionary dict;
if (!ConvertFromV8(isolate, val, &dict))
return false;
if (!dict.Get("name", &(out->first)))

View file

@ -346,11 +346,9 @@ void NativeWindow::AppendExtraCommandLineSwitches(
// This set of options are not availabe in WebPreferences, so we have to pass
// them via command line and enable them in renderer procss.
bool b;
mate::Dictionary web_preferences(web_preferences_.isolate(),
web_preferences_.NewHandle());
for (size_t i = 0; i < arraysize(kWebRuntimeFeatures); ++i) {
const char* feature = kWebRuntimeFeatures[i];
if (web_preferences.Get(feature, &b))
if (web_preferences_.Get(feature, &b))
command_line->AppendSwitchASCII(feature, b ? "true" : "false");
}
}
@ -361,25 +359,23 @@ void NativeWindow::OverrideWebkitPrefs(const GURL& url, WebPreferences* prefs) {
bool b;
std::vector<base::FilePath> list;
mate::Dictionary web_preferences(web_preferences_.isolate(),
web_preferences_.NewHandle());
if (web_preferences.Get("javascript", &b))
if (web_preferences_.Get("javascript", &b))
prefs->javascript_enabled = b;
if (web_preferences.Get("web-security", &b))
if (web_preferences_.Get("web-security", &b))
prefs->web_security_enabled = b;
if (web_preferences.Get("images", &b))
if (web_preferences_.Get("images", &b))
prefs->images_enabled = b;
if (web_preferences.Get("java", &b))
if (web_preferences_.Get("java", &b))
prefs->java_enabled = b;
if (web_preferences.Get("text-areas-are-resizable", &b))
if (web_preferences_.Get("text-areas-are-resizable", &b))
prefs->text_areas_are_resizable = b;
if (web_preferences.Get("webgl", &b))
if (web_preferences_.Get("webgl", &b))
prefs->experimental_webgl_enabled = b;
if (web_preferences.Get("webaudio", &b))
if (web_preferences_.Get("webaudio", &b))
prefs->webaudio_enabled = b;
if (web_preferences.Get("plugins", &b))
if (web_preferences_.Get("plugins", &b))
prefs->plugins_enabled = b;
if (web_preferences.Get("extra-plugin-dirs", &list))
if (web_preferences_.Get("extra-plugin-dirs", &list))
for (size_t i = 0; i < list.size(); ++i)
content::PluginService::GetInstance()->AddExtraPluginDir(list[i]);
}

View file

@ -20,7 +20,7 @@
#include "brightray/browser/inspectable_web_contents_impl.h"
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_observer.h"
#include "native_mate/scoped_persistent.h"
#include "native_mate/persistent_dictionary.h"
#include "ui/gfx/image/image_skia.h"
struct WebPreferences;
@ -298,7 +298,7 @@ class NativeWindow : public brightray::DefaultWebContentsDelegate,
base::CancelableClosure window_unresposive_closure_;
// Web preferences.
mate::ScopedPersistent<v8::Object> web_preferences_;
mate::PersistentDictionary web_preferences_;
// Page's default zoom factor.
double zoom_factor_;

2
vendor/native_mate vendored

@ -1 +1 @@
Subproject commit 980036b78a132ab820ed1d7866a06aac9a5c95a8
Subproject commit 12f4e9b7ea0038e58e52839142eff0a4d17069bf