diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-10 01:04:19 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-10 01:04:19 +0000 |
commit | b2df464d2783521f8fabbbe76f74a4129dd8417e (patch) | |
tree | 82887ecc3529d0c0a99772fe5fc3c6dfa9c01e2f /chrome/browser/dom_ui/dom_ui.cc | |
parent | fab037936bbbd1085c80e38b7a675e50105bb981 (diff) | |
download | chromium_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.cc | 45 |
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 { |