Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1374)

Side by Side Diff: chrome/renderer/extensions/v8_schema_registry.h

Issue 9616055: Make a process-wide cache for the v8::Value representation of extension APIs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, go back to old method Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 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_RENDERER_EXTENSIONS_V8_SCHEMA_REGISTRY_H_
6 #define CHROME_RENDERER_EXTENSIONS_V8_SCHEMA_REGISTRY_H_
7 #pragma once
8
9 #include <map>
10 #include <set>
11 #include <string>
12
13 #include "base/basictypes.h"
14 #include "v8/include/v8.h"
15
16 namespace extensions {
17
18 // A registry for the v8::Value representations of extension API schemas.
19 // In a way, the v8 counterpart to ExtensionAPI.
20 class V8SchemaRegistry {
21 public:
22 V8SchemaRegistry();
23 ~V8SchemaRegistry();
24
25 // Returns a v8::Array with all the schemas for the APIs in |apis|.
26 v8::Handle<v8::Array> GetSchemas(const std::set<std::string>& apis);
27
28 private:
29 // Returns a v8::Object for the schema for |api|, possibly from the cache.
30 v8::Handle<v8::Object> GetSchema(const std::string& api);
31
32 // Cache of schemas.
33 typedef std::map<std::string, v8::Persistent<v8::Object> > SchemaCache;
34 SchemaCache schema_cache_;
35
36 // Single per-instance v8::Context to create v8::Values.
37 v8::Persistent<v8::Context> context_;
38
39 DISALLOW_COPY_AND_ASSIGN(V8SchemaRegistry);
40 };
41
42 } // namespace extensions
43
44 #endif // CHROME_RENDERER_EXTENSIONS_V8_SCHEMA_REGISTRY_H_
OLDNEW
« no previous file with comments | « chrome/renderer/extensions/schema_generated_bindings.cc ('k') | chrome/renderer/extensions/v8_schema_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698