[Webkit-unassigned] [Bug 140575] New: Web Inspector: Native Bindings Descriptors are Incomplete

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jan 16 16:36:04 PST 2015


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

            Bug ID: 140575
           Summary: Web Inspector: Native Bindings Descriptors are
                    Incomplete
    Classification: Unclassified
           Product: WebKit
           Version: 528+ (Nightly build)
          Hardware: All
                OS: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Web Inspector
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: joepeck at webkit.org
                CC: graouts at webkit.org, joepeck at webkit.org,
                    jonowells at apple.com, mattbaker at apple.com,
                    nvasilyev at apple.com, timothy at apple.com,
                    webkit-bug-importer at group.apple.com

* SUMMARY
Native Bindings Descriptors are Incomplete. We are not returning a getter/function and the configurable property looks incorrect.

According to WebIDL:
http://www.w3.org/TR/WebIDL/#es-attributes

> For each attribute defined on the interface, there must exist a corresponding property. If the attribute was declared
> with the [Unforgeable] extended attribute, then the property exists on every object that implements the interface.
> Otherwise, it exists on the interface’s interface prototype object.
> 
> The characteristics of these properties are as follows:
> 
> - The name of the property is the identifier of the attribute.
> - The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]: true, [[Configurable]]: configurable }, ...
>   - G is the attribute getter, defined below; and
>   - S is the attribute setter, also defined below.
> - The attribute getter is a Function object ...
> - The attribute setter is undefined if the attribute is declared readonly and has neither a [PutForwards] nor
>   a [Replaceable] extended attribute declared on it. Otherwise, it is a Function object ...


For example, in MouseEvent: (simplified)

    interface MouseEvent : UIEvent {
        readonly attribute boolean altKey;
    };

WebKit gives us a descriptor with empty get/set and configurable "false" but should be true:

    webkit-console> Object.getOwnPropertyDescriptor(MouseEvent.prototype, "altKey");
    {
        configurable: false
        enumerable: true
        get: undefined
        set: undefined
    }

I expect something more like Firefox:

    firefox-console> Object.getOwnPropertyDescriptor(MouseEvent.prototype, "altKey");
    Object { configurable: true, enumerable: true, get: altKey(), set: undefined }

Note that Chrome's bindings are on the instance, not prototype, and so don't seem to match the spec.

    chrome-console> Object.getOwnPropertyDescriptor(x, "altKey")
    Object {value: false, writable: true, enumerable: true, configurable: true}

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20150117/f76a62c3/attachment-0002.html>


More information about the webkit-unassigned mailing list