#ifndef EXTENSIONS_BROWSER_API_STORAGE_STORAGE_UTILS_H_
#define EXTENSIONS_BROWSER_API_STORAGE_STORAGE_UTILS_H_
#include "content/public/browser/browser_context.h"
#include "extensions/browser/api/storage/session_storage_manager.h"
#include "extensions/browser/api/storage/storage_area_namespace.h"
#include "extensions/common/api/storage.h"
#include "extensions/common/extension_id.h"
namespace content {
class RenderFrameHost;
class RenderProcessHost;
}
namespace extensions::storage_utils {
api::storage::AccessLevel GetAccessLevelForArea(
const ExtensionId& extension_id,
content::BrowserContext& browser_context,
StorageAreaNamespace storage_area);
void SetAccessLevelForArea(const ExtensionId& extension_id,
content::BrowserContext& browser_context,
StorageAreaNamespace storage_area,
api::storage::AccessLevel access_level);
base::Value ValueChangeToValue(
std::vector<SessionStorageManager::ValueChange> changes);
bool CanRendererAccessExtensionStorage(
content::BrowserContext& browser_context,
const Extension& extension,
std::optional<StorageAreaNamespace> storage_area,
content::RenderFrameHost* render_frame_host,
content::RenderProcessHost& render_process_host);
}
#endif