Index: content/browser/renderer_host/media/service_video_capture_device_launcher.cc |
diff --git a/content/browser/renderer_host/media/service_video_capture_device_launcher.cc b/content/browser/renderer_host/media/service_video_capture_device_launcher.cc |
index b74cf52865a5a817f84c712489d31c1dc6316391..4c86c448638cc39f1665e20a9a52664c24e6452e 100644 |
--- a/content/browser/renderer_host/media/service_video_capture_device_launcher.cc |
+++ b/content/browser/renderer_host/media/service_video_capture_device_launcher.cc |
@@ -88,9 +88,12 @@ void ServiceVideoCaptureDeviceLauncher::LaunchDeviceAsync( |
return; |
} |
video_capture::mojom::DevicePtr device; |
+ // We need the temporary variable |device_request| in order to guarantee that |
+ // mojo::MakeRequest(&device) happens before base::Passed(&device). |
+ auto device_request = mojo::MakeRequest(&device); |
(*device_factory_) |
->CreateDevice( |
- device_id, mojo::MakeRequest(&device), |
+ device_id, std::move(device_request), |
base::Bind( |
// Use of Unretained |this| is safe, because |done_cb| guarantees |
// that |this| stays alive. |