| 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(
 | 
| 
 |