chromium/chrome/browser/ash/android_sms/android_sms_urls.h

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_ASH_ANDROID_SMS_ANDROID_SMS_URLS_H_
#define CHROME_BROWSER_ASH_ANDROID_SMS_ANDROID_SMS_URLS_H_

#include <ostream>

#include "url/gurl.h"

namespace ash {
namespace android_sms {

enum class PwaDomain {
  kProdAndroid,  // Production, android.com domain.
  kProdGoogle,   // Production, google.com domain.
  kStaging,      // Staging server.
};
std::ostream& operator<<(std::ostream& stream, const PwaDomain& pwa_domain);

// Returns the preferred domain to be used for the Android Messages PWA given
// the currently-enabled flags. In this context, "preferred" refers to the
// domain which is used assuming that a PWA can be successfully installed at
// the associated URL (note that installation fails while offline).
PwaDomain GetPreferredPwaDomain();

// Returns the URL to be used for the Android Messages PWA at a given domain. If
// |use_install_url| is true, the returned URL is used for installation/
// uninstallation of the PWA; otherwise, the returned URL is used for
// ServiceWorker-related tasks (e.g., installing cookies).
GURL GetAndroidMessagesURL(bool use_install_url = false,
                           PwaDomain pwa_domain = GetPreferredPwaDomain());

}  // namespace android_sms
}  // namespace ash

#endif  // CHROME_BROWSER_ASH_ANDROID_SMS_ANDROID_SMS_URLS_H_