From 33b94edcf0c52587e530bd5643b60fe48957e70e Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 9 Sep 2014 14:13:21 +0800 Subject: [PATCH] Use PersistentDictionary to store web perferences. --- atom/browser/api/atom_api_dialog.cc | 2 +- atom/browser/native_window.cc | 24 ++++++++++-------------- atom/browser/native_window.h | 4 ++-- vendor/native_mate | 2 +- 4 files changed, 14 insertions(+), 18 deletions(-) diff --git a/atom/browser/api/atom_api_dialog.cc b/atom/browser/api/atom_api_dialog.cc index 6a1a7a4b5763..64c4d2fd863a 100644 --- a/atom/browser/api/atom_api_dialog.cc +++ b/atom/browser/api/atom_api_dialog.cc @@ -23,7 +23,7 @@ struct Converter { static bool FromV8(v8::Isolate* isolate, v8::Handle 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))) diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index 6cc0bc8fe052..be41bf25e177 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -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 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]); } diff --git a/atom/browser/native_window.h b/atom/browser/native_window.h index bc052a8e105d..1da62ce3f7bd 100644 --- a/atom/browser/native_window.h +++ b/atom/browser/native_window.h @@ -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 web_preferences_; + mate::PersistentDictionary web_preferences_; // Page's default zoom factor. double zoom_factor_; diff --git a/vendor/native_mate b/vendor/native_mate index 980036b78a13..12f4e9b7ea00 160000 --- a/vendor/native_mate +++ b/vendor/native_mate @@ -1 +1 @@ -Subproject commit 980036b78a132ab820ed1d7866a06aac9a5c95a8 +Subproject commit 12f4e9b7ea0038e58e52839142eff0a4d17069bf