Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(150)

Side by Side Diff: components/mus/ws/platform_display.cc

Issue 1827453002: Handful of changes to get mus to shutdown correctly (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/mus/mus_app.cc ('k') | components/mus/ws/server_window_surface.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/mus/ws/platform_display.h" 5 #include "components/mus/ws/platform_display.h"
6 6
7 #include "base/numerics/safe_conversions.h" 7 #include "base/numerics/safe_conversions.h"
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 #include "cc/output/compositor_frame.h" 9 #include "cc/output/compositor_frame.h"
10 #include "cc/output/copy_output_request.h" 10 #include "cc/output/copy_output_request.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 platform_window_ = 193 platform_window_ =
194 ui::OzonePlatform::GetInstance()->CreatePlatformWindow(this, bounds); 194 ui::OzonePlatform::GetInstance()->CreatePlatformWindow(this, bounds);
195 #else 195 #else
196 NOTREACHED() << "Unsupported platform"; 196 NOTREACHED() << "Unsupported platform";
197 #endif 197 #endif
198 platform_window_->SetBounds(bounds); 198 platform_window_->SetBounds(bounds);
199 platform_window_->Show(); 199 platform_window_->Show();
200 } 200 }
201 201
202 DefaultPlatformDisplay::~DefaultPlatformDisplay() { 202 DefaultPlatformDisplay::~DefaultPlatformDisplay() {
203 delegate_->OnTopLevelSurfaceChanged(cc::SurfaceId()); 203 // Don't notify the delegate from the destructor.
204 delegate_ = nullptr;
205
204 // Invalidate WeakPtrs now to avoid callbacks back into the 206 // Invalidate WeakPtrs now to avoid callbacks back into the
205 // DefaultPlatformDisplay during destruction of |top_level_display_client_|. 207 // DefaultPlatformDisplay during destruction of |top_level_display_client_|.
206 weak_factory_.InvalidateWeakPtrs(); 208 weak_factory_.InvalidateWeakPtrs();
207 top_level_display_client_.reset(); 209 top_level_display_client_.reset();
208 // Destroy the PlatformWindow early on as it may call us back during 210 // Destroy the PlatformWindow early on as it may call us back during
209 // destruction and we want to be in a known state. But destroy the surface 211 // destruction and we want to be in a known state. But destroy the surface
210 // first because it can still be using the platform window. 212 // first because it can still be using the platform window.
211 platform_window_.reset(); 213 platform_window_.reset();
212 } 214 }
213 215
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 delegate_->OnEvent(char_event); 394 delegate_->OnEvent(char_event);
393 } 395 }
394 #endif 396 #endif
395 } 397 }
396 398
397 void DefaultPlatformDisplay::OnCloseRequest() { 399 void DefaultPlatformDisplay::OnCloseRequest() {
398 platform_window_->Close(); 400 platform_window_->Close();
399 } 401 }
400 402
401 void DefaultPlatformDisplay::OnClosed() { 403 void DefaultPlatformDisplay::OnClosed() {
402 delegate_->OnDisplayClosed(); 404 if (delegate_)
405 delegate_->OnDisplayClosed();
403 } 406 }
404 407
405 void DefaultPlatformDisplay::OnWindowStateChanged( 408 void DefaultPlatformDisplay::OnWindowStateChanged(
406 ui::PlatformWindowState new_state) {} 409 ui::PlatformWindowState new_state) {}
407 410
408 void DefaultPlatformDisplay::OnLostCapture() { 411 void DefaultPlatformDisplay::OnLostCapture() {
409 delegate_->OnNativeCaptureLost(); 412 delegate_->OnNativeCaptureLost();
410 } 413 }
411 414
412 void DefaultPlatformDisplay::OnAcceleratedWidgetAvailable( 415 void DefaultPlatformDisplay::OnAcceleratedWidgetAvailable(
(...skipping 16 matching lines...) Expand all
429 432
430 void DefaultPlatformDisplay::RequestCopyOfOutput( 433 void DefaultPlatformDisplay::RequestCopyOfOutput(
431 scoped_ptr<cc::CopyOutputRequest> output_request) { 434 scoped_ptr<cc::CopyOutputRequest> output_request) {
432 if (top_level_display_client_) 435 if (top_level_display_client_)
433 top_level_display_client_->RequestCopyOfOutput(std::move(output_request)); 436 top_level_display_client_->RequestCopyOfOutput(std::move(output_request));
434 } 437 }
435 438
436 } // namespace ws 439 } // namespace ws
437 440
438 } // namespace mus 441 } // namespace mus
OLDNEW
« no previous file with comments | « components/mus/mus_app.cc ('k') | components/mus/ws/server_window_surface.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698