summaryrefslogtreecommitdiffstats
path: root/chrome/browser/dom_ui/dom_ui.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-10 01:04:19 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-10 01:04:19 +0000
commitb2df464d2783521f8fabbbe76f74a4129dd8417e (patch)
tree82887ecc3529d0c0a99772fe5fc3c6dfa9c01e2f /chrome/browser/dom_ui/dom_ui.cc
parentfab037936bbbd1085c80e38b7a675e50105bb981 (diff)
downloadchromium_src-b2df464d2783521f8fabbbe76f74a4129dd8417e.zip
chromium_src-b2df464d2783521f8fabbbe76f74a4129dd8417e.tar.gz
chromium_src-b2df464d2783521f8fabbbe76f74a4129dd8417e.tar.bz2
Content settings: generalize the exceptions lists for all settings types.
BUG=48862 TEST=exceptions lists work for types besides images Review URL: http://codereview.chromium.org/3035060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55515 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/dom_ui/dom_ui.cc')
-rw-r--r--chrome/browser/dom_ui/dom_ui.cc45
1 files changed, 34 insertions, 11 deletions
diff --git a/chrome/browser/dom_ui/dom_ui.cc b/chrome/browser/dom_ui/dom_ui.cc
index f3000f3..a4f3583 100644
--- a/chrome/browser/dom_ui/dom_ui.cc
+++ b/chrome/browser/dom_ui/dom_ui.cc
@@ -17,6 +17,24 @@
#include "chrome/browser/tab_contents/tab_contents_view.h"
#include "chrome/common/bindings_policy.h"
+namespace {
+
+std::wstring GetJavascript(const std::wstring& function_name,
+ const std::vector<const Value*>& arg_list) {
+ std::wstring parameters;
+ std::string json;
+ for (size_t i = 0; i < arg_list.size(); ++i) {
+ if (i > 0)
+ parameters += L",";
+
+ base::JSONWriter::Write(arg_list[i], false, &json);
+ parameters += UTF8ToWide(json);
+ }
+ return function_name + L"(" + parameters + L");";
+}
+
+} // namespace
+
DOMUI::DOMUI(TabContents* contents)
: hide_favicon_(false),
force_bookmark_bar_visible_(false),
@@ -58,23 +76,28 @@ void DOMUI::CallJavascriptFunction(const std::wstring& function_name) {
void DOMUI::CallJavascriptFunction(const std::wstring& function_name,
const Value& arg) {
- std::string json;
- base::JSONWriter::Write(&arg, false, &json);
- std::wstring javascript = function_name + L"(" + UTF8ToWide(json) + L");";
-
- ExecuteJavascript(javascript);
+ std::vector<const Value*> args;
+ args.push_back(&arg);
+ ExecuteJavascript(GetJavascript(function_name, args));
}
void DOMUI::CallJavascriptFunction(
const std::wstring& function_name,
const Value& arg1, const Value& arg2) {
- std::string json;
- base::JSONWriter::Write(&arg1, false, &json);
- std::wstring javascript = function_name + L"(" + UTF8ToWide(json);
- base::JSONWriter::Write(&arg2, false, &json);
- javascript += L"," + UTF8ToWide(json) + L");";
+ std::vector<const Value*> args;
+ args.push_back(&arg1);
+ args.push_back(&arg2);
+ ExecuteJavascript(GetJavascript(function_name, args));
+}
- ExecuteJavascript(javascript);
+void DOMUI::CallJavascriptFunction(
+ const std::wstring& function_name,
+ const Value& arg1, const Value& arg2, const Value& arg3) {
+ std::vector<const Value*> args;
+ args.push_back(&arg1);
+ args.push_back(&arg2);
+ args.push_back(&arg3);
+ ExecuteJavascript(GetJavascript(function_name, args));
}
ThemeProvider* DOMUI::GetThemeProvider() const {