Index: bindings/v8/custom/V8DOMWindowCustom.cpp |
=================================================================== |
--- bindings/v8/custom/V8DOMWindowCustom.cpp (revision 45738) |
+++ bindings/v8/custom/V8DOMWindowCustom.cpp (working copy) |
@@ -153,6 +153,47 @@ |
return jsEvent; |
} |
+#if ENABLE(DOM_STORAGE) |
+static bool enableLocalStorage = false; |
+static bool enableSessionStorage = false; |
+ |
+void V8Custom::setEnableLocalStorage(bool setting) |
+{ |
+ enableLocalStorage = setting; |
+} |
+ |
+void V8Custom::setEnableSessionStorage(bool setting) |
+{ |
+ enableSessionStorage = setting; |
+} |
+ |
+ACCESSOR_GETTER(DOMWindowLocalStorage) |
+{ |
+ INC_STATS("DOM.DOMWindow.localStorage._get"); |
+ if (!enableLocalStorage) |
+ return v8::Undefined(); |
+ v8::Handle<v8::Object> holder = info.Holder(); |
+ DOMWindow* imp = V8DOMWrapper::convertToNativeObject<DOMWindow>(V8ClassIndex::DOMWINDOW, holder); |
+ Storage* storage = imp->localStorage(); |
+ if (!storage) |
+ return v8::Undefined(); |
+ return V8DOMWrapper::convertToV8Object(V8ClassIndex::STORAGE, storage); |
+} |
+ |
+ACCESSOR_GETTER(DOMWindowSessionStorage) |
+{ |
+ INC_STATS("DOM.DOMWindow.sessionStorage._get"); |
+ if (!enableSessionStorage) |
+ return v8::Undefined(); |
+ v8::Handle<v8::Object> holder = info.Holder(); |
+ DOMWindow* imp = V8DOMWrapper::convertToNativeObject<DOMWindow>(V8ClassIndex::DOMWINDOW, holder); |
+ Storage* storage = imp->sessionStorage(); |
+ if (!storage) |
+ return v8::Undefined(); |
+ return V8DOMWrapper::convertToV8Object(V8ClassIndex::STORAGE, storage); |
+} |
+#endif |
+ |
ACCESSOR_GETTER(DOMWindowCrypto) |
{ |
// FIXME: Implement me. |