Commit 1afbe2e1 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Expose IHTMLStyleSheet4 to scripts.

parent 9756574f
......@@ -1102,6 +1102,12 @@ static const IHTMLStyleSheet4Vtbl HTMLStyleSheet4Vtbl = {
HTMLStyleSheet4_deleteRule,
};
static void HTMLStyleSheet_init_dispex_info(dispex_data_t *info, compat_mode_t mode)
{
if(mode >= COMPAT_MODE_IE9)
dispex_info_add_interface(info, IHTMLStyleSheet4_tid, NULL);
}
static const tid_t HTMLStyleSheet_iface_tids[] = {
IHTMLStyleSheet_tid,
0
......@@ -1109,7 +1115,8 @@ static const tid_t HTMLStyleSheet_iface_tids[] = {
static dispex_static_data_t HTMLStyleSheet_dispex = {
NULL,
DispHTMLStyleSheet_tid,
HTMLStyleSheet_iface_tids
HTMLStyleSheet_iface_tids,
HTMLStyleSheet_init_dispex_info
};
HRESULT create_style_sheet(nsIDOMStyleSheet *nsstylesheet, compat_mode_t compat_mode, IHTMLStyleSheet **ret)
......
......@@ -134,6 +134,42 @@ sync_test("xhr_props", function() {
test_exposed("dispatchEvent", v >= 9);
});
sync_test("stylesheet_props", function() {
var v = document.documentMode;
var elem = document.createElement("style");
document.body.appendChild(elem);
var sheet = v >= 9 ? elem.sheet : elem.styleSheet;
function test_exposed(prop, expect) {
if(expect)
ok(prop in sheet, prop + " not found in style sheet.");
else
ok(!(prop in sheet), prop + " found in style sheet.");
}
test_exposed("href", true);
test_exposed("title", true);
test_exposed("type", true);
test_exposed("media", true);
test_exposed("ownerNode", v >= 9);
test_exposed("ownerRule", v >= 9);
test_exposed("cssRules", v >= 9);
test_exposed("insertRule", v >= 9);
test_exposed("deleteRule", v >= 9);
test_exposed("disabled", true);
test_exposed("parentStyleSheet", true);
test_exposed("owningElement", true);
test_exposed("readOnly", true);
test_exposed("imports", true);
test_exposed("id", true);
test_exposed("addImport", true);
test_exposed("addRule", true);
test_exposed("removeImport", true);
test_exposed("removeRule", true);
test_exposed("cssText", true);
test_exposed("rules", true);
});
sync_test("xhr open", function() {
var e = false;
try {
......
......@@ -381,6 +381,7 @@ sync_test("style_properties", function() {
sync_test("stylesheets", function() {
document.body.innerHTML = '<style>.div { margin-right: 1px; }</style>';
var elem = document.body.firstChild;
ok(document.styleSheets.length === 1, "document.styleSheets.length = " + document.styleSheets.length);
......@@ -393,6 +394,17 @@ sync_test("stylesheets", function() {
stylesheet.rules.item(1);
ok(false, "expected exception");
}catch(e) {}
ok(stylesheet.href === null, "stylesheet.href = " + stylesheet.href);
var id = stylesheet.insertRule(".input { margin-left: 1px; }", 0);
ok(id === 0, "id = " + id);
ok(document.styleSheets.length === 1, "document.styleSheets.length = " + document.styleSheets.length);
try {
stylesheet.insertRule(".input { margin-left: 1px; }", 3);
ok(false, "expected exception");
}catch(e) {}
});
sync_test("storage", function() {
......
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