Bug 155749 - REGRESSION(r196648): [GTK] The Spotify web player does not work since r196648
Summary: REGRESSION(r196648): [GTK] The Spotify web player does not work since r196648
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-22 07:33 PDT by Alberto Garcia
Modified: 2016-04-13 08:19 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alberto Garcia 2016-03-22 07:33:02 PDT
You can reproduce this by logging in to https://play.spotify.com

You'll need a Spotify account and the Flash plugin.

2.10.9 works fine, 2.12.0 does not (you can only see the side bar, but not anything else). I haven't tried any of the 2.11.x releases, though.
Comment 1 Carlos Garcia Campos 2016-03-23 08:03:47 PDT
d5618d20fdccdc627970c893f3d72f64447490ee is the first bad commit
commit d5618d20fdccdc627970c893f3d72f64447490ee
Author: cdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Feb 16 20:23:02 2016 +0000

    [Web IDL] Operations should be on the instance for global objects or if [Unforgeable]
    https://bugs.webkit.org/show_bug.cgi?id=154120
    <rdar://problem/24613231>
    
    Reviewed by Gavin Barraclough.
    
    LayoutTests/imported/w3c:
    
    Rebaseline now that more checks are passing.
    
    * web-platform-tests/html/dom/interfaces-expected.txt:
    
    Source/JavaScriptCore:
    
    Have putEntry() take a thisValue parameter in addition to the base,
    instead of relying on PropertySlot::thisValue() because this did not
    always do the right thing. In particular, when JSDOMWindow::put() was
    called to set a function, it would end up setting the new value on the
    JSDOMWindowShell instead of the actual JSDOMWindow.
    JSDOMWindow::getOwnPropertySlot() would then not be able to find it.
    Therefore the following would fail:
    $ window.open = "test"
    $ console.log(window.open) // prints the native function instead of "test"
    
    * runtime/JSObject.cpp:
    (JSC::JSObject::putInlineSlow):
    * runtime/Lookup.h:
    (JSC::putEntry):
    (JSC::lookupPut):
    
    Source/WebCore:
    
    Operations should be on the instance for global objects or if
    [Unforgeable] as per the Web IDL specification:
    - http://heycam.github.io/webidl/#es-operations
    - http://heycam.github.io/webidl/#dfn-unforgeable-on-an-interface
    
    This patch implements this behavior in order to align
    with the specification and other browsers.
    
    No new tests, already covered by existing tests.
    
    * bindings/js/JSDOMWindowCustom.cpp:
    (WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
    Update function names now that they have "Instance" in their
    name instead of "Prototype".
    
    (WebCore::JSDOMWindow::getOwnPropertySlot):
    - Update function names now that they have "Instance" in their
      name instead of "Prototype".
    - Move the functions hard-coding *before* the static table check
      now that these functions are in the static table to maintain
      the previous behavior.
    
    * bindings/js/JSLocationCustom.cpp:
    (WebCore::JSLocation::getOwnPropertySlotDelegate):
    Update function names now that they have "Instance" in their
    name instead of "Prototype".
    
    * bindings/scripts/CodeGeneratorJS.pm:
    - Move functions to the instance if their interface is a global
      object or if they are marked as [Unforgeable]. Operations are
      now treated more like attributes, as they can now be either on
      the instance or the prototype. In a lot of places, I now use
      the naming "properties" instead of "attributes" as "properties"
      refer both "attributes" and "operations" / "functions".
    
    * bindings/scripts/test/JS/JSTestInterface.cpp:
    * bindings/scripts/test/JS/JSTestObj.cpp:
    Rebaseline bindings tests.
    
    LayoutTests:
    
    * inspector/model/remote-object-get-properties-expected.txt:
    Rebaseline test because the order of static properties has changed:
    functions are now before constants instead of after.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@196648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Comment 2 Carlos Garcia Campos 2016-03-30 05:18:19 PDT
Chris, any idea about this or how I can debug it?
Comment 3 Carlos Garcia Campos 2016-04-11 06:04:55 PDT
This is now working in trunk, I'll try to find the commit that fixed it.
Comment 4 Carlos Garcia Campos 2016-04-13 08:19:40 PDT
It seems it was r199087, that I've just merged in the stable branch in r199489, so it will be fixed in 2.12.1