summaryrefslogtreecommitdiffstats
path: root/chrome/common/jstemplate_builder.cc
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 19:22:37 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 19:22:37 +0000
commit7359238b124bc0a5ff08fb128c052115fc431d96 (patch)
tree1a9e4e75222b474c36ac823ad836f3d4d162335c /chrome/common/jstemplate_builder.cc
parent73fd536e3c955029e636b311a663b82a84635ce7 (diff)
downloadchromium_src-7359238b124bc0a5ff08fb128c052115fc431d96.zip
chromium_src-7359238b124bc0a5ff08fb128c052115fc431d96.tar.gz
chromium_src-7359238b124bc0a5ff08fb128c052115fc431d96.tar.bz2
Move jstemplate_builder.* to ui\webui so it can be reused by webui implementations outside of chrome.
BUG=169170 TBR=estade Review URL: https://codereview.chromium.org/11929016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177729 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/jstemplate_builder.cc')
-rw-r--r--chrome/common/jstemplate_builder.cc156
1 files changed, 0 insertions, 156 deletions
diff --git a/chrome/common/jstemplate_builder.cc b/chrome/common/jstemplate_builder.cc
deleted file mode 100644
index e8da8bd..0000000
--- a/chrome/common/jstemplate_builder.cc
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// A helper function for using JsTemplate. See jstemplate_builder.h for more
-// info.
-
-#include "chrome/common/jstemplate_builder.h"
-
-#include "base/json/json_file_value_serializer.h"
-#include "base/json/json_string_value_serializer.h"
-#include "base/logging.h"
-#include "base/string_util.h"
-#include "grit/common_resources.h"
-#include "ui/base/layout.h"
-#include "ui/base/resource/resource_bundle.h"
-
-namespace {
-
-// Non-zero when building version 2 templates. See UseVersion2 class.
-int g_version2 = 0;
-
-} // namespace
-
-namespace jstemplate_builder {
-
-UseVersion2::UseVersion2() {
- g_version2++;
-}
-
-UseVersion2::~UseVersion2() {
- g_version2--;
-}
-
-std::string GetTemplateHtml(const base::StringPiece& html_template,
- const DictionaryValue* json,
- const base::StringPiece& template_id) {
- std::string output(html_template.data(), html_template.size());
- AppendJsonHtml(json, &output);
- AppendJsTemplateSourceHtml(&output);
- AppendJsTemplateProcessHtml(template_id, &output);
- return output;
-}
-
-std::string GetI18nTemplateHtml(const base::StringPiece& html_template,
- const DictionaryValue* json) {
- std::string output(html_template.data(), html_template.size());
- AppendJsonHtml(json, &output);
- AppendI18nTemplateSourceHtml(&output);
- AppendI18nTemplateProcessHtml(&output);
- return output;
-}
-
-std::string GetTemplatesHtml(const base::StringPiece& html_template,
- const DictionaryValue* json,
- const base::StringPiece& template_id) {
- std::string output(html_template.data(), html_template.size());
- AppendI18nTemplateSourceHtml(&output);
- AppendJsTemplateSourceHtml(&output);
- AppendJsonHtml(json, &output);
- AppendI18nTemplateProcessHtml(&output);
- AppendJsTemplateProcessHtml(template_id, &output);
- return output;
-}
-
-void AppendJsonHtml(const DictionaryValue* json, std::string* output) {
- std::string javascript_string;
- jstemplate_builder::AppendJsonJS(json, &javascript_string);
-
- // </ confuses the HTML parser because it could be a </script> tag. So we
- // replace </ with <\/. The extra \ will be ignored by the JS engine.
- ReplaceSubstringsAfterOffset(&javascript_string, 0, "</", "<\\/");
-
- output->append("<script>");
- output->append(javascript_string);
- output->append("</script>");
-}
-
-void AppendJsonJS(const DictionaryValue* json, std::string* output) {
- // Convert the template data to a json string.
- DCHECK(json) << "must include json data structure";
-
- std::string jstext;
- JSONStringValueSerializer serializer(&jstext);
- serializer.Serialize(*json);
- output->append(g_version2 ? "loadTimeData.data = " : "var templateData = ");
- output->append(jstext);
- output->append(";");
-}
-
-void AppendJsTemplateSourceHtml(std::string* output) {
- // fetch and cache the pointer of the jstemplate resource source text.
- static const base::StringPiece jstemplate_src(
- ResourceBundle::GetSharedInstance().GetRawDataResource(
- IDR_JSTEMPLATE_JS));
-
- if (jstemplate_src.empty()) {
- NOTREACHED() << "Unable to get jstemplate src";
- return;
- }
-
- output->append("<script>");
- output->append(jstemplate_src.data(), jstemplate_src.size());
- output->append("</script>");
-}
-
-void AppendJsTemplateProcessHtml(const base::StringPiece& template_id,
- std::string* output) {
- output->append("<script>");
- output->append("var tp = document.getElementById('");
- output->append(template_id.data(), template_id.size());
- output->append("');");
- output->append("jstProcess(new JsEvalContext(templateData), tp);");
- output->append("</script>");
-}
-
-void AppendI18nTemplateSourceHtml(std::string* output) {
- // fetch and cache the pointer of the jstemplate resource source text.
- static const base::StringPiece i18n_template_src(
- ResourceBundle::GetSharedInstance().GetRawDataResource(
- IDR_I18N_TEMPLATE_JS));
- static const base::StringPiece i18n_template2_src(
- ResourceBundle::GetSharedInstance().GetRawDataResource(
- IDR_I18N_TEMPLATE2_JS));
- const base::StringPiece* template_src = g_version2 ?
- &i18n_template2_src : &i18n_template_src;
-
- if (template_src->empty()) {
- NOTREACHED() << "Unable to get i18n template src";
- return;
- }
-
- output->append("<script>");
- output->append(template_src->data(), template_src->size());
- output->append("</script>");
-}
-
-void AppendI18nTemplateProcessHtml(std::string* output) {
- if (g_version2)
- return;
-
- static const base::StringPiece i18n_process_src(
- ResourceBundle::GetSharedInstance().GetRawDataResource(
- IDR_I18N_PROCESS_JS));
-
- if (i18n_process_src.empty()) {
- NOTREACHED() << "Unable to get i18n process src";
- return;
- }
-
- output->append("<script>");
- output->append(i18n_process_src.data(), i18n_process_src.size());
- output->append("</script>");
-}
-
-} // namespace jstemplate_builder