| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chromeos/crosapi/mojom/browser_app_instance_registry_mojom_traits.h" |
| |
| namespace mojo { |
| |
| bool StructTraits<crosapi::mojom::BrowserWindowInstanceUpdateDataView, |
| apps::BrowserWindowInstanceUpdate>:: |
| Read(crosapi::mojom::BrowserWindowInstanceUpdateDataView input, |
| apps::BrowserWindowInstanceUpdate* output) { |
| apps::BrowserWindowInstanceUpdate update; |
| if (input.ReadId(&update.id) && input.ReadWindowId(&update.window_id)) { |
| update.is_active = input.is_active(); |
| update.browser_session_id = input.browser_session_id(); |
| update.restored_browser_session_id = input.restored_browser_session_id(); |
| *output = std::move(update); |
| return true; |
| } |
| return false; |
| } |
| |
| bool StructTraits<crosapi::mojom::BrowserAppInstanceUpdateDataView, |
| apps::BrowserAppInstanceUpdate>:: |
| Read(crosapi::mojom::BrowserAppInstanceUpdateDataView input, |
| apps::BrowserAppInstanceUpdate* output) { |
| apps::BrowserAppInstanceUpdate update; |
| if (input.ReadId(&update.id) && input.ReadType(&update.type) && |
| input.ReadAppId(&update.app_id) && |
| input.ReadWindowId(&update.window_id) && input.ReadTitle(&update.title)) { |
| update.is_browser_active = input.is_browser_active(); |
| update.is_web_contents_active = input.is_web_contents_active(); |
| update.browser_session_id = input.browser_session_id(); |
| update.restored_browser_session_id = input.restored_browser_session_id(); |
| *output = std::move(update); |
| return true; |
| } |
| return false; |
| } |
| |
| crosapi::mojom::BrowserAppInstanceType |
| EnumTraits<crosapi::mojom::BrowserAppInstanceType, |
| apps::BrowserAppInstanceUpdate::Type>:: |
| ToMojom(apps::BrowserAppInstanceUpdate::Type input) { |
| switch (input) { |
| case apps::BrowserAppInstanceUpdate::Type::kAppTab: |
| return crosapi::mojom::BrowserAppInstanceType::kAppTab; |
| case apps::BrowserAppInstanceUpdate::Type::kAppWindow: |
| return crosapi::mojom::BrowserAppInstanceType::kAppWindow; |
| } |
| } |
| |
| bool EnumTraits<crosapi::mojom::BrowserAppInstanceType, |
| apps::BrowserAppInstanceUpdate::Type>:: |
| FromMojom(crosapi::mojom::BrowserAppInstanceType input, |
| apps::BrowserAppInstanceUpdate::Type* output) { |
| switch (input) { |
| case crosapi::mojom::BrowserAppInstanceType::kAppTab: |
| *output = apps::BrowserAppInstanceUpdate::Type::kAppTab; |
| return true; |
| case crosapi::mojom::BrowserAppInstanceType::kAppWindow: |
| *output = apps::BrowserAppInstanceUpdate::Type::kAppWindow; |
| return true; |
| } |
| } |
| |
| } // namespace mojo |