Alexey Baskakov | fd3894e | 2018-10-16 06:09:58 | [diff] [blame] | 1 | // Copyright 2018 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 | |
Alexey Baskakov | 4768f623 | 2018-11-08 09:26:46 | [diff] [blame] | 5 | #include <ios> |
Alexey Baskakov | 393b2aa | 2018-10-25 06:42:31 | [diff] [blame] | 6 | #include <ostream> |
| 7 | |
Alexey Baskakov | fd3894e | 2018-10-16 06:09:58 | [diff] [blame] | 8 | #include "chrome/browser/web_applications/web_app.h" |
Alexey Baskakov | 8975f35 | 2018-12-05 02:28:26 | [diff] [blame^] | 9 | |
| 10 | #include "base/logging.h" |
Alexey Baskakov | 4768f623 | 2018-11-08 09:26:46 | [diff] [blame] | 11 | #include "ui/gfx/color_utils.h" |
Alexey Baskakov | fd3894e | 2018-10-16 06:09:58 | [diff] [blame] | 12 | |
| 13 | namespace web_app { |
| 14 | |
| 15 | WebApp::WebApp(const AppId& app_id) : app_id_(app_id) {} |
| 16 | |
| 17 | WebApp::~WebApp() = default; |
| 18 | |
| 19 | void WebApp::SetName(const std::string& name) { |
| 20 | name_ = name; |
| 21 | } |
| 22 | |
| 23 | void WebApp::SetDescription(const std::string& description) { |
| 24 | description_ = description; |
| 25 | } |
| 26 | |
Alexey Baskakov | 79b0690 | 2018-11-08 05:30:03 | [diff] [blame] | 27 | void WebApp::SetLaunchUrl(const GURL& launch_url) { |
| 28 | DCHECK(!launch_url.is_empty() && launch_url.is_valid()); |
Alexey Baskakov | fd3894e | 2018-10-16 06:09:58 | [diff] [blame] | 29 | launch_url_ = launch_url; |
| 30 | } |
| 31 | |
Alexey Baskakov | 4768f623 | 2018-11-08 09:26:46 | [diff] [blame] | 32 | void WebApp::SetScope(const GURL& scope) { |
| 33 | DCHECK(scope.is_empty() || scope.is_valid()); |
| 34 | scope_ = scope; |
| 35 | } |
| 36 | |
| 37 | void WebApp::SetThemeColor(base::Optional<SkColor> theme_color) { |
| 38 | theme_color_ = theme_color; |
| 39 | } |
| 40 | |
Alexey Baskakov | 8975f35 | 2018-12-05 02:28:26 | [diff] [blame^] | 41 | void WebApp::SetIcons(Icons icons) { |
| 42 | DCHECK(!icons.empty()); |
| 43 | icons_ = std::move(icons); |
| 44 | } |
| 45 | |
Alexey Baskakov | 393b2aa | 2018-10-25 06:42:31 | [diff] [blame] | 46 | std::ostream& operator<<(std::ostream& out, const WebApp& app) { |
Alexey Baskakov | 4768f623 | 2018-11-08 09:26:46 | [diff] [blame] | 47 | const std::string theme_color = |
| 48 | app.theme_color() |
| 49 | ? color_utils::SkColorToRgbaString(app.theme_color().value()) |
| 50 | : "none"; |
| 51 | |
Alexey Baskakov | 393b2aa | 2018-10-25 06:42:31 | [diff] [blame] | 52 | return out << "app_id: " << app.app_id() << std::endl |
| 53 | << " name: " << app.name() << std::endl |
| 54 | << " launch_url: " << app.launch_url() << std::endl |
Alexey Baskakov | 4768f623 | 2018-11-08 09:26:46 | [diff] [blame] | 55 | << " scope: " << app.scope() << std::endl |
| 56 | << " theme_color: " << theme_color << std::endl |
Alexey Baskakov | 393b2aa | 2018-10-25 06:42:31 | [diff] [blame] | 57 | << " description: " << app.description(); |
| 58 | } |
| 59 | |
Alexey Baskakov | fd3894e | 2018-10-16 06:09:58 | [diff] [blame] | 60 | } // namespace web_app |