WebCore: Geolocation does not correctly handle reentrant calls from callbacks.
authorbenm@google.com <benm@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Sep 2009 17:16:39 +0000 (17:16 +0000)
committerbenm@google.com <benm@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Sep 2009 17:16:39 +0000 (17:16 +0000)
commitb0becb9b49999f36ca54ee434884187f7c14611f
tree2d976b3a1662e4f7eea82c352bc68ca6f985d69c
parente9cf4e4211cf13127430913460a708ea81ecf93a
WebCore: Geolocation does not correctly handle reentrant calls from callbacks.
https://bugs.webkit.org/show_bug.cgi?id=29040

Patch by Steve Block <steveblock@google.com> on 2009-09-10
Reviewed by Darin Adler.

Tests: fast/dom/Geolocation/reentrant-error.html
       fast/dom/Geolocation/reentrant-success.html

* page/Geolocation.cpp: Modified.
(WebCore::Geolocation::handleError): Modified. Call sendError directly, clearing notifier lists before making callback.
(WebCore::Geolocation::makeSuccessCallbacks): Modified. Call sendPosition directly, clearing notifier lists before making callback.
* page/Geolocation.h: Modified. Deleted sendErrorToXX and sendPositionToXXX methods.

LayoutTests: Geolocation does not correctly handle reentrant calls from callbacks.
https://bugs.webkit.org/show_bug.cgi?id=29040

Patch by Steve Block <steveblock@google.com> on 2009-09-09
Reviewed by Darin Adler.

* fast/dom/Geolocation/resources/reentrant-error.js: Added. Tests that reentrant calls from the error callback are OK.
* fast/dom/Geolocation/reentrant-error.html: Added. Wrapper for above test.
* fast/dom/Geolocation/reentrant-error-expected.txt: Added. Expected result for above test.
* fast/dom/Geolocation/resources/reentrant-success.js: Added. Tests that reentrant calls from the success callback are OK.
* fast/dom/Geolocation/reentrant-success.html: Added. Wrapper for above test.
* fast/dom/Geolocation/reentrant-success-expected.txt: Added. Expected result for above test.
* platform/gtk/Skipped: Modified. Skips above tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@48258 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/fast/dom/Geolocation/reentrant-error-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/Geolocation/reentrant-error.html [new file with mode: 0644]
LayoutTests/fast/dom/Geolocation/reentrant-success-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/Geolocation/reentrant-success.html [new file with mode: 0644]
LayoutTests/fast/dom/Geolocation/resources/reentrant-error.js [new file with mode: 0644]
LayoutTests/fast/dom/Geolocation/resources/reentrant-success.js [new file with mode: 0644]
LayoutTests/platform/gtk/Skipped
WebCore/ChangeLog
WebCore/page/Geolocation.cpp
WebCore/page/Geolocation.h