| Issue 7475: | Bug: phantomjs TypeError: Unable to delete property | |
| 28 people starred this issue and may be notified of changes. | Back to list |
When using latest phantomjs[1], trying to load a web page that has a Google map results in a thrown TypeError with message "Unable to delete property". The stack trace (of minified code) is: TypeError: Unable to delete property. :219 https://maps.gstatic.com/maps-api-v3/api/js/19/4/main.js:20 https://maps.gstatic.com/maps-api-v3/api/js/19/4/main.js:20 https://maps.gstatic.com/maps-api-v3/api/js/19/4/main.js:19 :218 https://maps.gstatic.com/maps-api-v3/api/js/19/4/main.js:20 https://maps.gstatic.com/maps-api-v3/api/js/19/4/main.js:20 https://maps.gstatic.com/maps-api-v3/api/js/19/4/main.js:21 :176 :31 https://maps.gstatic.com/maps-api-v3/api/js/19/4/main.js:26 :178 As of Dec 16 and v3.18, this test case worked. Also, as of Dec 10 and v3.exp everything was fine too. It was only when patch releases on maps.gstatic.com were released that we started seeing these issues. A simplified test case for phantomjs is attached. [1]: Binary version of the latest release of phantomjs can be downloaded at http://phantomjs.org/download.html
Dec 17, 2014
#1
[email protected]
Dec 19, 2014
I first experienced it using: https://maps.googleapis.com/maps/api/js?v=3&key... When I specified the version as 3.18 the errors went away. But suddenly they came back today. And now it also happens with version 3.17 which is supposed to be "frozen." I have been able to narrow the problem to centering the map. Calls to: map.fitBounds(bounds); map.setCenter(bounds.getCenter()); trigger the exception.
Dec 19, 2014
This also happens for us (Capybara, Poltergeist, PhantomJS). However, I've been unable to reproduce the javascript error in any browser.
Dec 19, 2014
Having the same issue but while running Google Maps embedded in a PyQt4 application. The javascript runs in the QWebView widget that utilizes Qt's WebKit implementation. Was working perfectly up to two days ago until I started getting the 'Unable to delete property' error. After I set the api version back, it started working again until today where I started getting the same error but unable to fix the issue.
Dec 19, 2014
It seems this is happening outside of PhantomJS as well: https://github.com/ariya/phantomjs/issues/12836 j-louis reports that the bug is encountered when Google Maps is embedded in a PyQt4 application. There may be other javascript interpreters that are failing due to something in the recent changes.
Dec 22, 2014
We began to experience this issue also on Dec. 17 after 4:52 PM Eastern when printing using PhantomJS. We have narrowed also to calls made to setCenter or setZoom.
Dec 23, 2014
Also affecting our automated tests pretty badly.
Dec 29, 2014
Issue 7480 has been merged into this issue.
Dec 29, 2014
Yes, I am suddenly experiencing the same map issue in my Qt4 application (Mac)! Up until mid December 2014 my application was rendering Google Maps in a QWebView correctly. Then something suddenly changed around that time such that the map would no longer center correctly or show placemarks. The panTo() function was totally broken. Also, the map controls were missing. I reverted to API 3.17 and this fixed the problem--for a couple of days! Suddenly 3.17 now had the problem too. I have not found a workaround. Strangely, switching to Qt5 fixes the problem, but Qt5 has other issues that prevent me from using it. What's going on??
Dec 29, 2014
Contacted Google for Work support and they pointed out that PhantomJS is not in their list of supported browsers (https://developers.google.com/maps/faq#browsersupport). They also indicated that they were looking into the case to try and help with the issue. We have worked around the issue by avoiding panning/zooming/centering interactively in the map. These actions seem to always cause the error submitted by the OP.
Jan 4, 2015
This problem occurs on Safari for windows. Even if I go to official google maps example: https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete I get this in console: TypeError: Unable to delete property.
Jan 5, 2015
This problem also effects older Safari versions on Macs. We've had several end-user reports of this issue and those we've confirmed so far have been running Safari 5.1.10 on Snow Leopard (OSX 10.6). (I know this browser is officially no longer supported by the Maps API, but it had been working fine until December)
Jan 6, 2015
(No comment was entered for this change.)
Labels:
Internal-18865168
Jan 6, 2015
We are also experiencing this error using wkhtmltopdf.
Jan 20, 2015
Yes, I am suddenly experiencing the same map issue in my Qt4 application (windows) map.fitBounds(bounds); map.setCenter(bounds.getCenter()); trigger the exception.
Jan 22, 2015
Magically it appears the bug fixed itself. My Qt4 application with Google Map is now working correctly.
Jan 22, 2015
Not magic, a recent release of the experimental version (3.19 / 3.exp) of the Google Maps API included a workaround for this issue. This exception is isolated to browsers and tools that appear to be using an old snapshot of WebKit. We don't test new releases against these old browser engines. The best way to prevent this sort of problem going forward is to ensure your browser or tool is roughly as up to date as the browsers we officially support here [1]. [1] https://developers.google.com/maps/faq#browsersupport
Status:
Fixed
Jan 23, 2015
Confirmed - 3.19 working for me like a charm! Thank you for the fast fix!
Jan 23, 2015
Also confirming the fix. With v3.19 and phantomJS there are no problems left!
Jan 23, 2015
A work around on experimental 3.19 is not a fix for adding a bug to 3.17 version which was supposed to be fixed. Do you have a time frame for a stable release of this workaround to either 3.17, 3.18, or a future release date for 3.19.
Jan 23, 2015
If I want to ensure that I avoid this problem, do I need to explicitly pick version 3.19? Currently I'm using the async-load option: https://developers.google.com/loader/ google.load('maps', '3'); Is it just a matter of switching '3' to '3.19'? And I guess I would need to switch it back after 3.19 is rolled out as an official '3' release, right?
Jan 23, 2015
Switch '3' to '3.19' or '3.exp' in your google.load call should get the experimental version instead of the release one. Switching back to '3' once 3.19 is released will bring you back to tracking release versions. Versioning is dicussed in some detail here: https://developers.google.com/maps/documentation/javascript/basics#Versioning If you are loading the API in a test environment I encourage you to test your application against the experimental version to help catch any problems before an experimental version becomes release.
Feb 2, 2015
Dear PhantomJS users on Mac. PhantomJS 2.0 was released on Jan 23, 2015. Here are the notes: "PhantomJS 2.0 was released on January 23, 2015. This is a major release since the core was switched to use Qt 5 to get a more modern base platform, as well as to have an updated WebKit module." http://phantomjs.org/releases.html I experienced the same problems with Phantom JS 1.9 as documented in the original posting. The problems went away with 2.0 - probably because the WebKit module has been updated. |
|
| ► Sign in to add a comment |