Index: ui/ozone/platform/dri/chromeos/native_display_delegate_proxy.cc |
diff --git a/ui/ozone/platform/dri/chromeos/native_display_delegate_proxy.cc b/ui/ozone/platform/dri/chromeos/native_display_delegate_proxy.cc |
index 2219e4d2ff68025e755a9cc1f13705e8b2891303..7230558e310b76ed74a28ba93ffe4547b6bba911 100644 |
--- a/ui/ozone/platform/dri/chromeos/native_display_delegate_proxy.cc |
+++ b/ui/ozone/platform/dri/chromeos/native_display_delegate_proxy.cc |
@@ -113,15 +113,21 @@ void NativeDisplayDelegateProxy::OnDeviceEvent(const DeviceEvent& event) { |
if (event.action_type() == DeviceEvent::CHANGE) { |
VLOG(1) << "Got display changed event"; |
- proxy_->Send(new OzoneGpuMsg_RefreshNativeDisplays()); |
+ proxy_->Send(new OzoneGpuMsg_RefreshNativeDisplays( |
+ std::vector<DisplaySnapshot_Params>())); |
} |
} |
void NativeDisplayDelegateProxy::OnChannelEstablished( |
int host_id, IPC::Sender* sender) { |
+ std::vector<DisplaySnapshot_Params> display_params; |
+ for (size_t i = 0; i < displays_.size(); ++i) |
+ display_params.push_back(GetDisplaySnapshotParams(*displays_[i])); |
+ |
// Force an initial configure such that the browser process can get the actual |
- // state. |
- proxy_->Send(new OzoneGpuMsg_RefreshNativeDisplays()); |
+ // state. Pass in the current display state since the GPU process may have |
+ // crashed and we want to re-synchronize the state between processes. |
+ proxy_->Send(new OzoneGpuMsg_RefreshNativeDisplays(display_params)); |
} |
void NativeDisplayDelegateProxy::OnChannelDestroyed(int host_id) { |