| Index: chrome/browser/geolocation/geolocation_browsertest.cc
|
| diff --git a/chrome/browser/geolocation/geolocation_browsertest.cc b/chrome/browser/geolocation/geolocation_browsertest.cc
|
| index 34efb8e671fe8d162512833cd0a26095a0ef6987..5c40e9e438bbf0b2fec0fefed2d7435fd7f07d44 100644
|
| --- a/chrome/browser/geolocation/geolocation_browsertest.cc
|
| +++ b/chrome/browser/geolocation/geolocation_browsertest.cc
|
| @@ -413,19 +413,16 @@ void GeolocationBrowserTest::ExpectValueFromScript(
|
|
|
| bool GeolocationBrowserTest::SetPositionAndWaitUntilUpdated(double latitude,
|
| double longitude) {
|
| + content::DOMMessageQueue dom_message_queue;
|
| +
|
| fake_latitude_ = latitude;
|
| fake_longitude_ = longitude;
|
| ui_test_utils::OverrideGeolocation(latitude, longitude);
|
|
|
| - // Now wait until the new position gets to the script.
|
| - // Control will return (a) if the update has already been received, or (b)
|
| - // when the update is received. This will hang if the position is never
|
| - // updated. Currently this expects the position to be updated once; if your
|
| - // test updates it repeatedly, |position_updated| (JS) needs to change to an
|
| - // int to count how often it's been updated.
|
| - std::string result =
|
| - RunScript(render_frame_host_, "checkIfGeopositionUpdated()");
|
| - return result == "geoposition-updated";
|
| + std::string result;
|
| + if (!dom_message_queue.WaitForMessage(&result))
|
| + return false;
|
| + return result == "\"geoposition-updated\"";
|
| }
|
|
|
| int GeolocationBrowserTest::GetRequestQueueSize(
|
|
|