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

#ifndef CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_UTILS_H_
#define CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_UTILS_H_

#include <string>
#include "third_party/blink/public/mojom/push_messaging/push_messaging.mojom.h"

class GURL;

namespace push_messaging {

// Returns the URL used to send push messages to the subscription identified
// by |subscription_id|.
GURL CreateEndpoint(const std::string& subscription_id);

// Checks size and prefix to determine whether it is a VAPID key
bool IsVapidKey(const std::string& application_server_key);

// Normalizes the |sender_info|. In most cases the |sender_info| will be
// passed through to the GCM Driver as-is, but NIST P-256 application server
// keys have to be encoded using the URL-safe variant of the base64 encoding.
std::string NormalizeSenderInfo(const std::string& sender_info);

// Currently |user_visible_only| is always true, once silent pushes are
// enabled, get this information from SW database.
blink::mojom::PushSubscriptionOptionsPtr MakeOptions(
    const std::string& sender_id);

}  // namespace push_messaging

#endif  // CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_UTILS_H_
