Bug 87033
| Summary: | Geolocation is not robust to unexpected updates from GeolocationClient | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Steve Block <steveblock> |
| Component: | WebCore Misc. | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | benjamin |
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Steve Block
Geolocation does not correctly handle updates from the client (via the controller) when they are not expected. For example ...
- A request is made
- Geolocation starts the client
- Permission is denied
- Geolocation invokes the error callback and stops the client, so expects no further updates from the client
- A new request is made
- Geolocation schedules an error callback
- Client makes an unexpected call to Geolocation::positionChanged()
- Geolocation erroneously calls the success callback
This means that tests which manipulate the mock in ways which fall outside of the expected pattern are flaky. For example, permission-denied-already-[error|success].html configure the mock to deny permission, but then later provide a position update.
We should either make Geolocation robust to this case, or update/remove the tests.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Benjamin Poulain
> - Permission is denied
> [...]
> - Client makes an unexpected call to Geolocation::positionChanged()
> - Geolocation erroneously calls the success callback
Actually, this is now considered an error of the Client and I am pretty sure that should crash nowadays (see r113505 and some previous changes).
I am in favor of updating the tests doing this. What is your opinion on this issue?