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

Unified Diff: services/ui/display/screen_manager_forwarding.cc

Issue 2835933005: Make ForwardingDisplayDelegate initially sync. (Closed)
Patch Set: Add comment explaining sync usage. Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/ui/display/screen_manager_forwarding.h ('k') | ui/display/manager/forwarding_display_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/display/screen_manager_forwarding.cc
diff --git a/services/ui/display/screen_manager_forwarding.cc b/services/ui/display/screen_manager_forwarding.cc
index c218d27924d123ae45176d0b7bfa1a418f39b40f..9ea90983fabfd12083f02a5cb54ca505504791ea 100644
--- a/services/ui/display/screen_manager_forwarding.cc
+++ b/services/ui/display/screen_manager_forwarding.cc
@@ -69,7 +69,8 @@ void ScreenManagerForwarding::OnDisplaySnapshotsInvalidated() {
}
void ScreenManagerForwarding::Initialize(
- mojom::NativeDisplayObserverPtr observer) {
+ mojom::NativeDisplayObserverPtr observer,
+ const InitializeCallback& callback) {
DCHECK(!native_display_delegate_);
observer_ = std::move(observer);
@@ -77,6 +78,16 @@ void ScreenManagerForwarding::Initialize(
ui::OzonePlatform::GetInstance()->CreateNativeDisplayDelegate();
native_display_delegate_->AddObserver(this);
native_display_delegate_->Initialize();
+
+ // Provide the list of display snapshots initially. ForwardingDisplayDelegate
+ // will wait synchronously for this.
+ native_display_delegate_->GetDisplays(
+ base::Bind(&ScreenManagerForwarding::ForwardGetDisplays,
+ base::Unretained(this), callback));
+
+ // When ForwardingDisplayDelegate receives this it will start asynchronous
+ // operation and redo any configuration that was skipped.
+ observer_->OnConfigurationChanged();
}
void ScreenManagerForwarding::TakeDisplayControl(
@@ -170,7 +181,7 @@ void ScreenManagerForwarding::Create(
}
void ScreenManagerForwarding::ForwardGetDisplays(
- const mojom::NativeDisplayDelegate::GetDisplaysCallback& callback,
+ const GetDisplaysCallback& callback,
const std::vector<DisplaySnapshot*>& snapshots) {
snapshot_map_.clear();
« no previous file with comments | « services/ui/display/screen_manager_forwarding.h ('k') | ui/display/manager/forwarding_display_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698