[NoInterfaceObject] extended attribute should be removed for several interfaces

https://bugs.webkit.org/show_bug.cgi?id=115852

Reviewed by Benjamin Poulain.

Source/WebCore:

Remove [NoInterfaceObject] extended attribute from the following Web IDL
interfaces: SecurityPolicy, History, Location, Navigator, Performance,
PerformanceEntry, PerformanceMark, PerformanceMeasure, PerformanceNavigation,
PerformanceResourceTiming, PerformanceTiming and Screen.

These interfaces should not have the [NoInterfaceObject] extended attribute
according to their respective specifications:
- http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-history-interface
- http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-location-interface
- https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicy
- http://www.w3.org/html/wg/drafts/html/master/webappapis.html#the-navigator-object
- http://www.w3.org/TR/navigation-timing/#performance
- https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html#sec-PerformanceEntry-interface
- http://www.w3.org/TR/navigation-timing/#performancenavigation
- http://www.w3.org/TR/navigation-timing/#performancetiming
- http://www.w3.org/TR/user-timing/#performancemark
- http://www.w3.org/TR/user-timing/#performancemeasure
- http://www.w3c-test.org/webperf/specs/ResourceTiming/#performanceresourcetiming
- http://dev.w3.org/csswg/cssom-view/#the-screen-interface

The new behavior is consistent with the specifications, Firefox and soon Blink.

No new tests, already covered by existing tests.

* page/DOMSecurityPolicy.idl:
* page/History.idl:
* page/Location.idl:
* page/Navigator.idl:
* page/Performance.idl:
* page/PerformanceEntry.idl:
* page/PerformanceMark.idl:
* page/PerformanceMeasure.idl:
* page/PerformanceNavigation.idl:
* page/PerformanceResourceTiming.idl:
* page/PerformanceTiming.idl:
* page/Screen.idl:

LayoutTests:

Rebaseline several layout tests whose output has changed now that a few more
global constructors are exposed.

* fast/dom/dom-constructors-expected.txt:
* fast/js/global-constructors-attributes-expected.txt:
* platform/efl/fast/js/global-constructors-attributes-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 619744e4
2013-05-09 Christophe Dumez <ch.dumez@sisa.samsung.com>
[NoInterfaceObject] extended attribute should be removed for several interfaces
https://bugs.webkit.org/show_bug.cgi?id=115852
Reviewed by Benjamin Poulain.
Rebaseline several layout tests whose output has changed now that a few more
global constructors are exposed.
* fast/dom/dom-constructors-expected.txt:
* fast/js/global-constructors-attributes-expected.txt:
* platform/efl/fast/js/global-constructors-attributes-expected.txt:
2013-05-09 Robert Hogan <robert@webkit.org>
REGRESSION (Safari 3-Safari 4): Replaced element with percent height in table has incorrect height
......
......@@ -113,13 +113,13 @@ PASS TryAllocate('CanvasPattern') is 'exception'
FAIL TryAllocate('Console') should be exception. Was no constructor.
PASS TryAllocate('Selection') is 'exception'
PASS TryAllocate('Window') is 'exception'
FAIL TryAllocate('History') should be exception. Was no constructor.
PASS TryAllocate('History') is 'exception'
PASS TryAllocate('HTMLOptionsCollection') is 'exception'
FAIL TryAllocate('Location') should be exception. Was no constructor.
FAIL TryAllocate('Navigator') should be exception. Was no constructor.
PASS TryAllocate('Location') is 'exception'
PASS TryAllocate('Navigator') is 'exception'
FAIL TryAllocate('NodeIterator') should be exception. Was no constructor.
PASS TryAllocate('RGBColor') is 'exception'
FAIL TryAllocate('Screen') should be exception. Was no constructor.
PASS TryAllocate('Screen') is 'exception'
FAIL TryAllocate('TreeWalker') should be exception. Was no constructor.
FAIL TryAllocate('XPathExpression') should be exception. Was no constructor.
PASS TryAllocate('Worker') is 'exception'
......
......@@ -658,6 +658,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'HashChangeEvent').hasOwnProperty('
PASS Object.getOwnPropertyDescriptor(global, 'HashChangeEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'HashChangeEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'HashChangeEvent').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'History').value is History
PASS Object.getOwnPropertyDescriptor(global, 'History').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'History').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'History').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'History').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Image').value is Image
PASS Object.getOwnPropertyDescriptor(global, 'Image').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Image').hasOwnProperty('set') is false
......@@ -688,6 +693,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').hasOwnProperty('ge
PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Location').value is Location
PASS Object.getOwnPropertyDescriptor(global, 'Location').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Location').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Location').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Location').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'MediaController').value is MediaController
PASS Object.getOwnPropertyDescriptor(global, 'MediaController').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'MediaController').hasOwnProperty('set') is false
......@@ -753,6 +763,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'NamedNodeMap').hasOwnProperty('get
PASS Object.getOwnPropertyDescriptor(global, 'NamedNodeMap').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'NamedNodeMap').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'NamedNodeMap').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').value is Navigator
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Node').value is Node
PASS Object.getOwnPropertyDescriptor(global, 'Node').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Node').hasOwnProperty('set') is false
......@@ -803,6 +818,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'Path').hasOwnProperty('get') is fa
PASS Object.getOwnPropertyDescriptor(global, 'Path').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Path').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Path').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Performance').value is Performance
PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Plugin').value is Plugin
PASS Object.getOwnPropertyDescriptor(global, 'Plugin').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Plugin').hasOwnProperty('set') is false
......@@ -1563,6 +1583,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'SVGZoomEvent').hasOwnProperty('get
PASS Object.getOwnPropertyDescriptor(global, 'SVGZoomEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGZoomEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGZoomEvent').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Screen').value is Screen
PASS Object.getOwnPropertyDescriptor(global, 'Screen').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Screen').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Screen').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Screen').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Selection').value is Selection
PASS Object.getOwnPropertyDescriptor(global, 'Selection').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Selection').hasOwnProperty('set') is false
......
......@@ -673,6 +673,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'HashChangeEvent').hasOwnProperty('
PASS Object.getOwnPropertyDescriptor(global, 'HashChangeEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'HashChangeEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'HashChangeEvent').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'History').value is History
PASS Object.getOwnPropertyDescriptor(global, 'History').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'History').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'History').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'History').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'IDBCursor').value is IDBCursor
PASS Object.getOwnPropertyDescriptor(global, 'IDBCursor').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'IDBCursor').hasOwnProperty('set') is false
......@@ -758,6 +763,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').hasOwnProperty('ge
PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Location').value is Location
PASS Object.getOwnPropertyDescriptor(global, 'Location').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Location').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Location').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Location').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'MediaController').value is MediaController
PASS Object.getOwnPropertyDescriptor(global, 'MediaController').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'MediaController').hasOwnProperty('set') is false
......@@ -823,6 +833,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'NamedNodeMap').hasOwnProperty('get
PASS Object.getOwnPropertyDescriptor(global, 'NamedNodeMap').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'NamedNodeMap').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'NamedNodeMap').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').value is Navigator
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Navigator').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Node').value is Node
PASS Object.getOwnPropertyDescriptor(global, 'Node').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Node').hasOwnProperty('set') is false
......@@ -868,6 +883,21 @@ PASS Object.getOwnPropertyDescriptor(global, 'Path').hasOwnProperty('get') is fa
PASS Object.getOwnPropertyDescriptor(global, 'Path').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Path').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Path').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Performance').value is Performance
PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').value is PerformanceNavigation
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceTiming').value is PerformanceTiming
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceTiming').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceTiming').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceTiming').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'PerformanceTiming').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Plugin').value is Plugin
PASS Object.getOwnPropertyDescriptor(global, 'Plugin').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Plugin').hasOwnProperty('set') is false
......@@ -1633,6 +1663,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'SVGZoomEvent').hasOwnProperty('get
PASS Object.getOwnPropertyDescriptor(global, 'SVGZoomEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGZoomEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGZoomEvent').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Screen').value is Screen
PASS Object.getOwnPropertyDescriptor(global, 'Screen').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Screen').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Screen').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Screen').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Selection').value is Selection
PASS Object.getOwnPropertyDescriptor(global, 'Selection').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Selection').hasOwnProperty('set') is false
......
2013-05-09 Christophe Dumez <ch.dumez@sisa.samsung.com>
[NoInterfaceObject] extended attribute should be removed for several interfaces
https://bugs.webkit.org/show_bug.cgi?id=115852
Reviewed by Benjamin Poulain.
Remove [NoInterfaceObject] extended attribute from the following Web IDL
interfaces: SecurityPolicy, History, Location, Navigator, Performance,
PerformanceEntry, PerformanceMark, PerformanceMeasure, PerformanceNavigation,
PerformanceResourceTiming, PerformanceTiming and Screen.
These interfaces should not have the [NoInterfaceObject] extended attribute
according to their respective specifications:
- http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-history-interface
- http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-location-interface
- https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicy
- http://www.w3.org/html/wg/drafts/html/master/webappapis.html#the-navigator-object
- http://www.w3.org/TR/navigation-timing/#performance
- https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html#sec-PerformanceEntry-interface
- http://www.w3.org/TR/navigation-timing/#performancenavigation
- http://www.w3.org/TR/navigation-timing/#performancetiming
- http://www.w3.org/TR/user-timing/#performancemark
- http://www.w3.org/TR/user-timing/#performancemeasure
- http://www.w3c-test.org/webperf/specs/ResourceTiming/#performanceresourcetiming
- http://dev.w3.org/csswg/cssom-view/#the-screen-interface
The new behavior is consistent with the specifications, Firefox and soon Blink.
No new tests, already covered by existing tests.
* page/DOMSecurityPolicy.idl:
* page/History.idl:
* page/Location.idl:
* page/Navigator.idl:
* page/Performance.idl:
* page/PerformanceEntry.idl:
* page/PerformanceMark.idl:
* page/PerformanceMeasure.idl:
* page/PerformanceNavigation.idl:
* page/PerformanceResourceTiming.idl:
* page/PerformanceTiming.idl:
* page/Screen.idl:
2013-05-09 Robert Hogan <robert@webkit.org>
REGRESSION (Safari 3-Safari 4): Replaced element with percent height in table has incorrect height
......
......@@ -23,9 +23,7 @@
*/
[
NoInterfaceObject,
Conditional=CSP_NEXT,
OmitConstructor,
InterfaceName=SecurityPolicy
] interface DOMSecurityPolicy {
readonly attribute boolean allowsEval;
......
......@@ -24,13 +24,11 @@
*/
[
NoInterfaceObject,
JSCustomGetOwnPropertySlotAndDescriptor,
CustomNamedSetter,
GenerateIsReachable=ImplFrame,
CustomDeleteProperty,
CustomEnumerateProperty,
OmitConstructor
] interface History {
readonly attribute unsigned long length;
[CachedAttribute, Custom] readonly attribute SerializedScriptValue state;
......
......@@ -27,7 +27,6 @@
*/
[
NoInterfaceObject,
JSCustomGetOwnPropertySlotAndDescriptor,
CustomNamedSetter,
GenerateIsReachable=ImplFrame,
......@@ -36,7 +35,6 @@
JSCustomDefineOwnProperty,
JSCustomNamedGetterOnPrototype,
JSCustomDefineOwnPropertyOnPrototype,
OmitConstructor
] interface Location {
#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
[DoNotCheckSecurityOnSetter, CustomSetter] attribute DOMString href;
......
......@@ -18,9 +18,7 @@
*/
[
NoInterfaceObject,
GenerateIsReachable=ImplFrame,
OmitConstructor
] interface Navigator {
readonly attribute DOMString appCodeName;
readonly attribute DOMString appName;
......
......@@ -31,10 +31,8 @@
// See: http://dev.w3.org/2006/webapi/WebTiming/
[
NoInterfaceObject,
Conditional=WEB_TIMING|WEB_TIMING_MINIMAL,
EventTarget,
OmitConstructor
] interface Performance {
#if !defined(ENABLE_WEB_TIMING_MINIMAL)
readonly attribute PerformanceNavigation navigation;
......
......@@ -30,11 +30,9 @@
// See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
[
NoInterfaceObject,
Conditional=WEB_TIMING,
Conditional=PERFORMANCE_TIMELINE,
CustomToJSObject,
OmitConstructor
] interface PerformanceEntry {
readonly attribute DOMString name;
readonly attribute DOMString entryType;
......
......@@ -24,8 +24,6 @@
*/
[
NoInterfaceObject,
Conditional=USER_TIMING,
OmitConstructor
] interface PerformanceMark : PerformanceEntry {
};
......@@ -24,8 +24,6 @@
*/
[
NoInterfaceObject,
Conditional=USER_TIMING,
OmitConstructor
] interface PerformanceMeasure : PerformanceEntry {
};
......@@ -30,9 +30,7 @@
// See: http://www.w3.org/TR/navigation-timing/
[
NoInterfaceObject,
Conditional=WEB_TIMING,
OmitConstructor
] interface PerformanceNavigation {
const unsigned short TYPE_NAVIGATE = 0;
const unsigned short TYPE_RELOAD = 1;
......
......@@ -30,9 +30,7 @@
// See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/ResourceTiming/Overview.html
[
NoInterfaceObject,
Conditional=RESOURCE_TIMING,
OmitConstructor
] interface PerformanceResourceTiming : PerformanceEntry {
readonly attribute DOMString initiatorType;
......
......@@ -30,9 +30,7 @@
// See: http://dev.w3.org/2006/webapi/WebTiming/
[
NoInterfaceObject,
Conditional=WEB_TIMING,
OmitConstructor
] interface PerformanceTiming {
readonly attribute unsigned long long navigationStart;
readonly attribute unsigned long long unloadEventStart;
......
......@@ -28,9 +28,7 @@
[
NoInterfaceObject,
GenerateIsReachable=ImplFrame,
OmitConstructor
] interface Screen {
readonly attribute unsigned long height;
readonly attribute unsigned long width;
......
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