| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/ash/system_logs/ui_hierarchy_log_source.h" |
| |
| #include <memory> |
| #include <utility> |
| |
| #include "ash/public/cpp/debug_utils.h" |
| |
| namespace system_logs { |
| |
| void UiHierarchyLogSource::Fetch(SysLogsSourceCallback callback) { |
| DCHECK(!callback.is_null()); |
| |
| auto response = std::make_unique<SystemLogsResponse>(); |
| |
| { |
| std::ostringstream out; |
| ash::debug::PrintWindowHierarchy(&out, scrub_data_); |
| response->emplace("UI Hierarchy: Windows", out.str()); |
| } |
| |
| { |
| std::ostringstream out; |
| ash::debug::PrintViewHierarchy(&out); |
| response->emplace("UI Hierarchy: Views", out.str()); |
| } |
| |
| { |
| std::ostringstream out; |
| ash::debug::PrintLayerHierarchy(&out); |
| response->emplace("UI Hierarchy: Layers", out.str()); |
| } |
| |
| std::move(callback).Run(std::move(response)); |
| } |
| |
| } // namespace system_logs |