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

Side by Side Diff: chrome/renderer/resource_bundle_source_map.cc

Issue 9386001: Implement a module system for the extension bindings JS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase 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 #include "chrome/renderer/resource_bundle_source_map.h"
6
7 #include "ui/base/resource/resource_bundle.h"
8
9 ResourceBundleSourceMap::ResourceBundleSourceMap(
10 const ui::ResourceBundle* resource_bundle)
11 : resource_bundle_(resource_bundle) {
12 }
13
14 ResourceBundleSourceMap::~ResourceBundleSourceMap() {
15 }
16
17 void ResourceBundleSourceMap::RegisterSource(const std::string& name,
18 int resource_id) {
19 resource_id_map_[name] = resource_id;
20 }
21
22 v8::Handle<v8::Value> ResourceBundleSourceMap::GetSource(
23 const std::string& name) {
24 if (!Contains(name))
25 return v8::Undefined();
26 int resource_id = resource_id_map_[name];
27 return ConvertString(resource_bundle_->GetRawDataResource(resource_id));
28 }
29
30 bool ResourceBundleSourceMap::Contains(const std::string& name) {
31 return resource_id_map_.count(name) > 0;
32 }
33
34 v8::Handle<v8::String> ResourceBundleSourceMap::ConvertString(
35 const base::StringPiece& string) {
36 // v8 takes ownership of the StaticV8ExternalAsciiStringResource (see
37 // v8::String::NewExternal()).
38 return v8::String::NewExternal(
39 new StaticV8ExternalAsciiStringResource(string));
40 }
OLDNEW
« no previous file with comments | « chrome/renderer/resource_bundle_source_map.h ('k') | chrome/renderer/resources/extensions/apitest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698