lacros_service_never_blocking_state.cc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "chromeos/lacros/lacros_service_never_blocking_state.h"
  5. namespace chromeos {
  6. LacrosServiceNeverBlockingState::LacrosServiceNeverBlockingState() {
  7. DETACH_FROM_SEQUENCE(sequence_checker_);
  8. }
  9. LacrosServiceNeverBlockingState::~LacrosServiceNeverBlockingState() {
  10. DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
  11. }
  12. // Crosapi is the interface that lacros-chrome uses to message
  13. // ash-chrome. This method binds the remote, which allows queuing of message
  14. // to ash-chrome. The messages will not go through until
  15. // RequestCrosapiReceiver() is invoked.
  16. void LacrosServiceNeverBlockingState::BindCrosapi() {
  17. DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
  18. pending_crosapi_receiver_ = crosapi_.BindNewPipeAndPassReceiver();
  19. }
  20. void LacrosServiceNeverBlockingState::FusePipeCrosapi(
  21. mojo::PendingRemote<crosapi::mojom::Crosapi> pending_remote) {
  22. DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
  23. mojo::FusePipes(std::move(pending_crosapi_receiver_),
  24. std::move(pending_remote));
  25. }
  26. void LacrosServiceNeverBlockingState::OnBrowserStartup(
  27. crosapi::mojom::BrowserInfoPtr browser_info) {
  28. DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
  29. crosapi_->OnBrowserStartup(std::move(browser_info));
  30. }
  31. base::WeakPtr<LacrosServiceNeverBlockingState>
  32. LacrosServiceNeverBlockingState::GetWeakPtr() {
  33. return weak_factory_.GetWeakPtr();
  34. }
  35. } // namespace chromeos