| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "extensions/browser/api/storage/storage_area_namespace.h" |
| |
| #include "base/notreached.h" |
| |
| namespace extensions { |
| |
| namespace { |
| constexpr char kLocalString[] = "local"; |
| constexpr char kSyncString[] = "sync"; |
| constexpr char kManagedString[] = "managed"; |
| constexpr char kSessionString[] = "session"; |
| } // namespace |
| |
| const char* StorageAreaToString(StorageAreaNamespace storage_area) { |
| switch (storage_area) { |
| case StorageAreaNamespace::kLocal: |
| return kLocalString; |
| case StorageAreaNamespace::kSync: |
| return kSyncString; |
| case StorageAreaNamespace::kManaged: |
| return kManagedString; |
| case StorageAreaNamespace::kSession: |
| return kSessionString; |
| case StorageAreaNamespace::kInvalid: |
| NOTREACHED(); |
| } |
| } |
| |
| settings_namespace::Namespace StorageAreaToSettingsNamespace( |
| StorageAreaNamespace storage_area) { |
| switch (storage_area) { |
| case StorageAreaNamespace::kLocal: |
| return settings_namespace::LOCAL; |
| case StorageAreaNamespace::kSync: |
| return settings_namespace::SYNC; |
| case StorageAreaNamespace::kManaged: |
| return settings_namespace::MANAGED; |
| case StorageAreaNamespace::kSession: |
| return settings_namespace::INVALID; |
| case StorageAreaNamespace::kInvalid: |
| NOTREACHED(); |
| } |
| } |
| |
| StorageAreaNamespace StorageAreaFromString( |
| const std::string& storage_area_string) { |
| if (storage_area_string == kLocalString) |
| return StorageAreaNamespace::kLocal; |
| if (storage_area_string == kSyncString) |
| return StorageAreaNamespace::kSync; |
| if (storage_area_string == kManagedString) |
| return StorageAreaNamespace::kManaged; |
| if (storage_area_string == kSessionString) |
| return StorageAreaNamespace::kSession; |
| return StorageAreaNamespace::kInvalid; |
| } |
| |
| } // namespace extensions |