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

Side by Side Diff: chrome/common/jstemplate_builder.cc

Issue 193072: Move StringPiece into the base namespace. It is colliding (Closed)
Patch Set: take 2 Created 11 years, 3 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
« no previous file with comments | « chrome/common/jstemplate_builder.h ('k') | chrome/renderer/render_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // A helper function for using JsTemplate. See jstemplate_builder.h for more 5 // A helper function for using JsTemplate. See jstemplate_builder.h for more
6 // info. 6 // info.
7 7
8 #include "chrome/common/jstemplate_builder.h" 8 #include "chrome/common/jstemplate_builder.h"
9 9
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/string_util.h" 12 #include "base/string_util.h"
13 #include "chrome/common/json_value_serializer.h" 13 #include "chrome/common/json_value_serializer.h"
14 14
15 #include "grit/common_resources.h" 15 #include "grit/common_resources.h"
16 16
17 namespace jstemplate_builder { 17 namespace jstemplate_builder {
18 18
19 std::string GetTemplateHtml(const StringPiece& html_template, 19 std::string GetTemplateHtml(const base::StringPiece& html_template,
20 const DictionaryValue* json, 20 const DictionaryValue* json,
21 const StringPiece& template_id) { 21 const base::StringPiece& template_id) {
22 std::string output(html_template.data(), html_template.size()); 22 std::string output(html_template.data(), html_template.size());
23 AppendJsonHtml(json, &output); 23 AppendJsonHtml(json, &output);
24 AppendJsTemplateSourceHtml(&output); 24 AppendJsTemplateSourceHtml(&output);
25 AppendJsTemplateProcessHtml(template_id, &output); 25 AppendJsTemplateProcessHtml(template_id, &output);
26 return output; 26 return output;
27 } 27 }
28 28
29 std::string GetI18nTemplateHtml(const StringPiece& html_template, 29 std::string GetI18nTemplateHtml(const base::StringPiece& html_template,
30 const DictionaryValue* json) { 30 const DictionaryValue* json) {
31 std::string output(html_template.data(), html_template.size()); 31 std::string output(html_template.data(), html_template.size());
32 AppendJsonHtml(json, &output); 32 AppendJsonHtml(json, &output);
33 AppendI18nTemplateSourceHtml(&output); 33 AppendI18nTemplateSourceHtml(&output);
34 AppendI18nTemplateProcessHtml(&output); 34 AppendI18nTemplateProcessHtml(&output);
35 return output; 35 return output;
36 } 36 }
37 37
38 std::string GetTemplatesHtml(const StringPiece& html_template, 38 std::string GetTemplatesHtml(const base::StringPiece& html_template,
39 const DictionaryValue* json, 39 const DictionaryValue* json,
40 const StringPiece& template_id) { 40 const base::StringPiece& template_id) {
41 std::string output(html_template.data(), html_template.size()); 41 std::string output(html_template.data(), html_template.size());
42 AppendI18nTemplateSourceHtml(&output); 42 AppendI18nTemplateSourceHtml(&output);
43 AppendJsTemplateSourceHtml(&output); 43 AppendJsTemplateSourceHtml(&output);
44 AppendJsonHtml(json, &output); 44 AppendJsonHtml(json, &output);
45 AppendI18nTemplateProcessHtml(&output); 45 AppendI18nTemplateProcessHtml(&output);
46 AppendJsTemplateProcessHtml(template_id, &output); 46 AppendJsTemplateProcessHtml(template_id, &output);
47 return output; 47 return output;
48 } 48 }
49 49
50 void AppendJsonHtml(const DictionaryValue* json, std::string* output) { 50 void AppendJsonHtml(const DictionaryValue* json, std::string* output) {
51 // Convert the template data to a json string. 51 // Convert the template data to a json string.
52 DCHECK(json) << "must include json data structure"; 52 DCHECK(json) << "must include json data structure";
53 53
54 std::string jstext; 54 std::string jstext;
55 JSONStringValueSerializer serializer(&jstext); 55 JSONStringValueSerializer serializer(&jstext);
56 serializer.Serialize(*json); 56 serializer.Serialize(*json);
57 // </ confuses the HTML parser because it could be a </script> tag. So we 57 // </ confuses the HTML parser because it could be a </script> tag. So we
58 // replace </ with <\/. The extra \ will be ignored by the JS engine. 58 // replace </ with <\/. The extra \ will be ignored by the JS engine.
59 ReplaceSubstringsAfterOffset(&jstext, 0, "</", "<\\/"); 59 ReplaceSubstringsAfterOffset(&jstext, 0, "</", "<\\/");
60 60
61 output->append("<script>"); 61 output->append("<script>");
62 output->append("var templateData = "); 62 output->append("var templateData = ");
63 output->append(jstext); 63 output->append(jstext);
64 output->append(";"); 64 output->append(";");
65 output->append("</script>"); 65 output->append("</script>");
66 } 66 }
67 67
68 void AppendJsTemplateSourceHtml(std::string* output) { 68 void AppendJsTemplateSourceHtml(std::string* output) {
69 // fetch and cache the pointer of the jstemplate resource source text. 69 // fetch and cache the pointer of the jstemplate resource source text.
70 static const StringPiece jstemplate_src(ResourceBundle::GetSharedInstance(). 70 static const base::StringPiece jstemplate_src(
71 GetRawDataResource(IDR_JSTEMPLATE_JS)); 71 ResourceBundle::GetSharedInstance().GetRawDataResource(
72 IDR_JSTEMPLATE_JS));
72 73
73 if (jstemplate_src.empty()) { 74 if (jstemplate_src.empty()) {
74 NOTREACHED() << "Unable to get jstemplate src"; 75 NOTREACHED() << "Unable to get jstemplate src";
75 return; 76 return;
76 } 77 }
77 78
78 output->append("<script>"); 79 output->append("<script>");
79 output->append(jstemplate_src.data(), jstemplate_src.size()); 80 output->append(jstemplate_src.data(), jstemplate_src.size());
80 output->append("</script>"); 81 output->append("</script>");
81 } 82 }
82 83
83 void AppendJsTemplateProcessHtml(const StringPiece& template_id, 84 void AppendJsTemplateProcessHtml(const base::StringPiece& template_id,
84 std::string* output) { 85 std::string* output) {
85 output->append("<script>"); 86 output->append("<script>");
86 output->append("var tp = document.getElementById('"); 87 output->append("var tp = document.getElementById('");
87 output->append(template_id.data(), template_id.size()); 88 output->append(template_id.data(), template_id.size());
88 output->append("');"); 89 output->append("');");
89 output->append("jstProcess(new JsEvalContext(templateData), tp);"); 90 output->append("jstProcess(new JsEvalContext(templateData), tp);");
90 output->append("</script>"); 91 output->append("</script>");
91 } 92 }
92 93
93 void AppendI18nTemplateSourceHtml(std::string* output) { 94 void AppendI18nTemplateSourceHtml(std::string* output) {
94 // fetch and cache the pointer of the jstemplate resource source text. 95 // fetch and cache the pointer of the jstemplate resource source text.
95 static const StringPiece i18n_template_src( 96 static const base::StringPiece i18n_template_src(
96 ResourceBundle::GetSharedInstance().GetRawDataResource( 97 ResourceBundle::GetSharedInstance().GetRawDataResource(
97 IDR_I18N_TEMPLATE_JS)); 98 IDR_I18N_TEMPLATE_JS));
98 99
99 if (i18n_template_src.empty()) { 100 if (i18n_template_src.empty()) {
100 NOTREACHED() << "Unable to get i18n template src"; 101 NOTREACHED() << "Unable to get i18n template src";
101 return; 102 return;
102 } 103 }
103 104
104 output->append("<script>"); 105 output->append("<script>");
105 output->append(i18n_template_src.data(), i18n_template_src.size()); 106 output->append(i18n_template_src.data(), i18n_template_src.size());
106 output->append("</script>"); 107 output->append("</script>");
107 } 108 }
108 109
109 void AppendI18nTemplateProcessHtml(std::string* output) { 110 void AppendI18nTemplateProcessHtml(std::string* output) {
110 output->append("<script>"); 111 output->append("<script>");
111 output->append("i18nTemplate.process(document, "); 112 output->append("i18nTemplate.process(document, ");
112 output->append("templateData);"); 113 output->append("templateData);");
113 output->append("</script>"); 114 output->append("</script>");
114 } 115 }
115 116
116 } // namespace jstemplate_builder 117 } // namespace jstemplate_builder
OLDNEW
« no previous file with comments | « chrome/common/jstemplate_builder.h ('k') | chrome/renderer/render_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698