Commit 64b5d6b3 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Add IHTMLWindow6::get_localStorage implementation.

parent 8c799991
...@@ -295,6 +295,8 @@ static void release_inner_window(HTMLInnerWindow *This) ...@@ -295,6 +295,8 @@ static void release_inner_window(HTMLInnerWindow *This)
if(This->session_storage) if(This->session_storage)
IHTMLStorage_Release(This->session_storage); IHTMLStorage_Release(This->session_storage);
if(This->local_storage)
IHTMLStorage_Release(This->local_storage);
if(This->mon) if(This->mon)
IMoniker_Release(This->mon); IMoniker_Release(This->mon);
...@@ -2123,7 +2125,7 @@ static HRESULT WINAPI HTMLWindow6_get_sessionStorage(IHTMLWindow6 *iface, IHTMLS ...@@ -2123,7 +2125,7 @@ static HRESULT WINAPI HTMLWindow6_get_sessionStorage(IHTMLWindow6 *iface, IHTMLS
{ {
HTMLWindow *This = impl_from_IHTMLWindow6(iface); HTMLWindow *This = impl_from_IHTMLWindow6(iface);
FIXME("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!This->inner_window->session_storage) { if(!This->inner_window->session_storage) {
HRESULT hres; HRESULT hres;
...@@ -2141,8 +2143,20 @@ static HRESULT WINAPI HTMLWindow6_get_sessionStorage(IHTMLWindow6 *iface, IHTMLS ...@@ -2141,8 +2143,20 @@ static HRESULT WINAPI HTMLWindow6_get_sessionStorage(IHTMLWindow6 *iface, IHTMLS
static HRESULT WINAPI HTMLWindow6_get_localStorage(IHTMLWindow6 *iface, IHTMLStorage **p) static HRESULT WINAPI HTMLWindow6_get_localStorage(IHTMLWindow6 *iface, IHTMLStorage **p)
{ {
HTMLWindow *This = impl_from_IHTMLWindow6(iface); HTMLWindow *This = impl_from_IHTMLWindow6(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; TRACE("(%p)->(%p)\n", This, p);
if(!This->inner_window->local_storage) {
HRESULT hres;
hres = create_storage(&This->inner_window->local_storage);
if(FAILED(hres))
return hres;
}
IHTMLStorage_AddRef(This->inner_window->local_storage);
*p = This->inner_window->local_storage;
return S_OK;
} }
static HRESULT WINAPI HTMLWindow6_put_onhashchange(IHTMLWindow6 *iface, VARIANT v) static HRESULT WINAPI HTMLWindow6_put_onhashchange(IHTMLWindow6 *iface, VARIANT v)
......
...@@ -515,6 +515,7 @@ struct HTMLInnerWindow { ...@@ -515,6 +515,7 @@ struct HTMLInnerWindow {
IHTMLScreen *screen; IHTMLScreen *screen;
OmHistory *history; OmHistory *history;
IHTMLStorage *session_storage; IHTMLStorage *session_storage;
IHTMLStorage *local_storage;
BOOL performance_initialized; BOOL performance_initialized;
VARIANT performance; VARIANT performance;
......
...@@ -290,6 +290,14 @@ function test_style_properties() { ...@@ -290,6 +290,14 @@ function test_style_properties() {
next_test(); next_test();
} }
function test_storage() {
ok(typeof(window.sessionStorage) === "object",
"typeof(window.sessionStorage) = " + typeof(window.sessionStorage));
ok(typeof(window.localStorage) === "object",
"typeof(window.localStorage) = " + typeof(window.localStorage));
next_test();
}
var tests = [ var tests = [
test_input_selection, test_input_selection,
test_textContent, test_textContent,
...@@ -301,5 +309,6 @@ var tests = [ ...@@ -301,5 +309,6 @@ var tests = [
test_query_selector, test_query_selector,
test_compare_position, test_compare_position,
test_document_owner, test_document_owner,
test_style_properties test_style_properties,
test_storage
]; ];
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment