blob: db7ecdfdee75fbdfb7ebf163bc8af20476f8e6ff [file] [log] [blame]
// Copyright 2021 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_WEB_APPLICATIONS_ISOLATION_PREFS_UTILS_H_
#define CHROME_BROWSER_WEB_APPLICATIONS_ISOLATION_PREFS_UTILS_H_
#include <string>
class PrefRegistrySimple;
class PrefService;
namespace url {
class Origin;
}
namespace web_app {
class WebApp;
extern const char kStorageIsolation[];
void IsolationPrefsUtilsRegisterProfilePrefs(PrefRegistrySimple* registry);
// Updates |web_app|'s entry in the "isolation_state" dictionary to be in sync
// with its current isolation state.
void RecordOrRemoveAppIsolationState(PrefService* pref_service,
const WebApp& web_app);
// Removes |web_app|'s entry in the "isolation_state" dictionary. Must be called
// when uninstalling an app.
void RemoveAppIsolationState(PrefService* pref_service,
const url::Origin& origin);
// Returns the storage isolation key to use when loading resources
// from |origin|.
const std::string* GetStorageIsolationKey(PrefService* pref_service,
const url::Origin& origin);
} // namespace web_app
#endif // CHROME_BROWSER_WEB_APPLICATIONS_ISOLATION_PREFS_UTILS_H_