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, static bool FromV8(v8::Isolate* isolate,
v8::Handle<v8::Value> val, v8::Handle<v8::Value> val,
file_dialog::Filter* out) { file_dialog::Filter* out) {
mate::Dictionary dict(isolate); mate::Dictionary dict;
if (!ConvertFromV8(isolate, val, &dict)) if (!ConvertFromV8(isolate, val, &dict))
return false; return false;
if (!dict.Get("name", &(out->first))) 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 // This set of options are not availabe in WebPreferences, so we have to pass
// them via command line and enable them in renderer procss. // them via command line and enable them in renderer procss.
bool b; bool b;
mate::Dictionary web_preferences(web_preferences_.isolate(),
web_preferences_.NewHandle());
for (size_t i = 0; i < arraysize(kWebRuntimeFeatures); ++i) { for (size_t i = 0; i < arraysize(kWebRuntimeFeatures); ++i) {
const char* feature = 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"); command_line->AppendSwitchASCII(feature, b ? "true" : "false");
} }
} }
@ -361,25 +359,23 @@ void NativeWindow::OverrideWebkitPrefs(const GURL& url, WebPreferences* prefs) {
bool b; bool b;
std::vector<base::FilePath> list; std::vector<base::FilePath> list;
mate::Dictionary web_preferences(web_preferences_.isolate(), if (web_preferences_.Get("javascript", &b))
web_preferences_.NewHandle());
if (web_preferences.Get("javascript", &b))
prefs->javascript_enabled = b; prefs->javascript_enabled = b;
if (web_preferences.Get("web-security", &b)) if (web_preferences_.Get("web-security", &b))
prefs->web_security_enabled = b; prefs->web_security_enabled = b;
if (web_preferences.Get("images", &b)) if (web_preferences_.Get("images", &b))
prefs->images_enabled = b; prefs->images_enabled = b;
if (web_preferences.Get("java", &b)) if (web_preferences_.Get("java", &b))
prefs->java_enabled = 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; prefs->text_areas_are_resizable = b;
if (web_preferences.Get("webgl", &b)) if (web_preferences_.Get("webgl", &b))
prefs->experimental_webgl_enabled = b; prefs->experimental_webgl_enabled = b;
if (web_preferences.Get("webaudio", &b)) if (web_preferences_.Get("webaudio", &b))
prefs->webaudio_enabled = b; prefs->webaudio_enabled = b;
if (web_preferences.Get("plugins", &b)) if (web_preferences_.Get("plugins", &b))
prefs->plugins_enabled = 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) for (size_t i = 0; i < list.size(); ++i)
content::PluginService::GetInstance()->AddExtraPluginDir(list[i]); content::PluginService::GetInstance()->AddExtraPluginDir(list[i]);
} }

View file

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

2
vendor/native_mate vendored

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