1

Chrome 開発者ツールでは、javascript コンソールでさまざまなコンテキストを切り替えて、chrome.storage.local.get()およびchrome.storage.sync.get()API を個別にクエリできます。すべてのクロムのためにそこに保存されているものの全体を表示する方法はありますか?

4

2 に答える 2

0

APIのソースコードを見ると

bool StorageGetFunction::RunWithStorage(ValueStore* storage) {
  Value* input = NULL;
  EXTENSION_FUNCTION_VALIDATE(args_->Get(0, &input));

  switch (input->GetType()) {
    case Value::TYPE_NULL:
      return UseReadResult(storage->Get());

    case Value::TYPE_STRING: {
      std::string as_string;
      input->GetAsString(&as_string);
      return UseReadResult(storage->Get(as_string));
    }

    case Value::TYPE_LIST: {
      std::vector<std::string> as_string_list;
      AddAllStringValues(*static_cast<ListValue*>(input), &as_string_list);
      return UseReadResult(storage->Get(as_string_list));
    }

    case Value::TYPE_DICTIONARY: {
      DictionaryValue* as_dict = static_cast<DictionaryValue*>(input);
      ValueStore::ReadResult result = storage->Get(GetKeys(*as_dict));
      if (result->HasError()) {
        return UseReadResult(result.Pass());
      }

      DictionaryValue* with_default_values = as_dict->DeepCopy();
      with_default_values->MergeDictionary(result->settings().get());
      return UseReadResult(
          ValueStore::MakeReadResult(with_default_values));
    }

    default:
      return UseReadResult(
          ValueStore::MakeReadResult(kUnsupportedArgumentType));
  }
}

ストレージ タイプは、結果をクエリするための引数として使用されます。そのため、現在のところ、すべてのクロムについてそこに保存されているものの全体を表示することはできず、2 つの異なるクエリ (chrome.storage.local.get()およびchrome.storage.sync.get()API) を使用する必要があります。

于 2013-02-14T06:40:53.230 に答える