1// Copyright (c) 2006-2008 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 5#ifndef CHROME_BROWSER_PREFS_SESSION_STARTUP_PREF_H__ 6#define CHROME_BROWSER_PREFS_SESSION_STARTUP_PREF_H__ 7#pragma once 8 9#include <vector> 10 11#include "googleurl/src/gurl.h" 12 13class PrefService; 14class Profile; 15 16// StartupPref specifies what should happen at startup for a specified profile. 17// StartupPref is stored in the preferences for a particular profile. 18struct SessionStartupPref { 19 enum Type { 20 // Indicates the user doesn't want to restore a previous session. 21 DEFAULT, 22 23 // Indicates the user wants to restore the last session. 24 LAST, 25 26 // Indicates the user wants to restore a specific set of URLs. The URLs 27 // are contained in urls. 28 URLS 29 }; 30 31 static void RegisterUserPrefs(PrefService* prefs); 32 33 // What should happen on startup for the specified profile. 34 static void SetStartupPref(Profile* profile, const SessionStartupPref& pref); 35 static void SetStartupPref(PrefService* prefs, 36 const SessionStartupPref& pref); 37 static SessionStartupPref GetStartupPref(Profile* profile); 38 static SessionStartupPref GetStartupPref(PrefService* prefs); 39 40 // Whether the startup type and URLs are managed via policy. 41 static bool TypeIsManaged(PrefService* prefs); 42 static bool URLsAreManaged(PrefService* prefs); 43 44 SessionStartupPref(); 45 46 explicit SessionStartupPref(Type type); 47 48 ~SessionStartupPref(); 49 50 // What to do on startup. 51 Type type; 52 53 // The URLs to restore. Only used if type == URLS. 54 std::vector<GURL> urls; 55}; 56 57#endif // CHROME_BROWSER_PREFS_SESSION_STARTUP_PREF_H__ 58