RESOLVED FIXED 155749
REGRESSION(r196648): [GTK] The Spotify web player does not work since r196648
https://bugs.webkit.org/show_bug.cgi?id=155749
Summary REGRESSION(r196648): [GTK] The Spotify web player does not work since r196648
Alberto Garcia
Reported 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.
Attachments
Carlos Garcia Campos
Comment 1 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
Carlos Garcia Campos
Comment 2 2016-03-30 05:18:19 PDT
Chris, any idea about this or how I can debug it?
Carlos Garcia Campos
Comment 3 2016-04-11 06:04:55 PDT
This is now working in trunk, I'll try to find the commit that fixed it.
Carlos Garcia Campos
Comment 4 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
Note You need to log in before you can comment on or make changes to this bug.