blob: 4b5194737f9af4f586d9769e0256d41e46831146 [file] [log] [blame]
// Copyright 2016 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_UI_WEBUI_WELCOME_WELCOME_UI_H_
#define CHROME_BROWSER_UI_WEBUI_WELCOME_WELCOME_UI_H_
#include <memory>
#include <string>
#include "base/memory/weak_ptr.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/welcome/ntp_background_fetcher.h"
#include "content/public/browser/web_ui_controller.h"
#include "content/public/browser/web_ui_data_source.h"
#include "url/gurl.h"
// The WebUI for chrome://welcome, the page which greets new Desktop users and
// promotes sign-in. By default, this page uses the "Welcome to Chrome" language
// and layout; the "Take Chrome Everywhere" variant may be accessed by appending
// the query string "?variant=everywhere".
class WelcomeUI : public content::WebUIController {
public:
WelcomeUI(content::WebUI* web_ui, const GURL& url);
~WelcomeUI() override;
void CreateBackgroundFetcher(
size_t background_index,
content::WebUIDataSource::GotDataCallback callback);
protected:
// Visible for testing.
static bool IsGzipped(const std::string& path);
private:
void StorePageSeen(Profile* profile);
std::unique_ptr<welcome::NtpBackgroundFetcher> background_fetcher_;
base::WeakPtrFactory<WelcomeUI> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(WelcomeUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_WELCOME_WELCOME_UI_H_