Source/WebCore: [CSS Regions] broken feature detection: body.webkitRegionOverset...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 16 Dec 2012 10:01:09 +0000 (10:01 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 16 Dec 2012 10:01:09 +0000 (10:01 +0000)
commit72f211b5345e442c0ffbcbee79fafdb9bf48a3fb
tree6030b40fdfff087d8cacc626b9f0cf3d7dc0b7c9
parent56e3e1a6c1059b8bd4eb885be42faee3d3d3c727
Source/WebCore: [CSS Regions] broken feature detection: body.webkitRegionOverset and body.webkitGetRegionFlowRanges shouldn't succeed when disabled at runtime
https://bugs.webkit.org/show_bug.cgi?id=99707

Patch by Mihai Maerean <mmaerean@adobe.com> on 2012-12-16
Reviewed by Hajime Morita.

The bug is that the CSS Regions feature leaks information at run-time. There are JS properties that exist even
if the feature is disabled at run-time (document.webkitGetNamedFlows, document.body.webkitRegionOverset,
document.body.webkitGetRegionFlowRanges and window.WebKitCSSRegionRule).

The fix is to add V8EnabledAtRuntime=cssRegions in the IDL files to the properties that leak information and to
the interfaces that are the type of those properties.

Test: fast/regions/region-leak-js-information-when-disabled-at-runtime.html

* css/WebKitCSSRegionRule.idl:
    added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule interface.
* dom/DOMNamedFlowCollection.idl:
    added V8EnabledAtRuntime=cssRegions for the DOMNamedFlowCollection interface.
* dom/Document.idl:
    added V8EnabledAtRuntime=cssRegions for the webkitGetNamedFlows method.
* dom/Element.idl:
    added V8EnabledAtRuntime=cssRegions for the webkitRegionOverset attribute.
    added V8EnabledAtRuntime=cssRegions for the webkitGetRegionFlowRanges method.
* page/DOMWindow.idl:
    added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule attribute.

LayoutTests: [CSS Regions] broken feature detection: body.webkitRegionOverset and body.webkitGetRegionFlowRanges shouldn't succeed when disabled at runtime.
https://bugs.webkit.org/show_bug.cgi?id=99707

Patch by Mihai Maerean <mmaerean@adobe.com> on 2012-12-16
Reviewed by Hajime Morita.

The bug is that the CSS Regions feature leaks information at run-time. There are JS properties that exist even
if the feature is disabled at run-time (document.webkitGetNamedFlows, document.body.webkitRegionOverset,
document.body.webkitGetRegionFlowRanges and window.WebKitCSSRegionRule).
The best LayoutTest would test that the properties exist when the feature is enabled and that the properties
just aren't there when the feature is disabled.
But, since during running Layout Tests the feature is enabled by default and switching the
RuntimeEnabledFeatures requires the process to be restarted and that is currently not possible, we can only test
that the properties exist and have the proper type.

* fast/regions/region-leak-js-information-when-disabled-at-runtime-expected.txt: Added.
* fast/regions/region-leak-js-information-when-disabled-at-runtime.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/fast/regions/region-leak-js-information-when-disabled-at-runtime-expected.txt [new file with mode: 0644]
LayoutTests/fast/regions/region-leak-js-information-when-disabled-at-runtime.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/css/WebKitCSSRegionRule.idl
Source/WebCore/dom/DOMNamedFlowCollection.idl
Source/WebCore/dom/Document.idl
Source/WebCore/dom/Element.idl
Source/WebCore/page/DOMWindow.idl