summaryrefslogtreecommitdiffstats
path: root/chrome/common/common_param_traits.cc
diff options
context:
space:
mode:
authorgrt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-15 21:07:03 +0000
committergrt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-15 21:07:03 +0000
commit79d68c6ea3f0ee22789e04bcdcdf64841618f2c1 (patch)
tree99e371bf8e2be6bdbf3ea7a0b24bd50e5eb1cc20 /chrome/common/common_param_traits.cc
parentea2a7b919337fb796c8602f1701b60d8fa2d7f42 (diff)
downloadchromium_src-79d68c6ea3f0ee22789e04bcdcdf64841618f2c1.zip
chromium_src-79d68c6ea3f0ee22789e04bcdcdf64841618f2c1.tar.gz
chromium_src-79d68c6ea3f0ee22789e04bcdcdf64841618f2c1.tar.bz2
Moved ParamTraits specializations that depend on WebKit out of content/common/common_param_traits and into webkit_param_traits. Also pulled some specializations out of chrome/common/render_messages and into chrome/common/common_param_traits. This is done so that the MS toolchain can succeed in discarding more code at link time. This halves the size of npchrome_frame.dll in ordinary "Release" builds. I hope for a similar reduction in official builds.
BUG=77445 TEST=Everything should just work(TM). Review URL: http://codereview.chromium.org/6840044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81803 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/common_param_traits.cc')
-rw-r--r--chrome/common/common_param_traits.cc101
1 files changed, 101 insertions, 0 deletions
diff --git a/chrome/common/common_param_traits.cc b/chrome/common/common_param_traits.cc
new file mode 100644
index 0000000..4f2a1e4
--- /dev/null
+++ b/chrome/common/common_param_traits.cc
@@ -0,0 +1,101 @@
+// Copyright (c) 2011 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.
+
+#include "chrome/common/common_param_traits.h"
+
+#include "ipc/ipc_message.h"
+#include "ipc/ipc_message_utils.h"
+
+namespace IPC {
+
+void ParamTraits<ContentSetting>::Write(Message* m, const param_type& p) {
+ m->WriteInt(static_cast<int>(p));
+}
+
+bool ParamTraits<ContentSetting>::Read(const Message* m, void** iter,
+ param_type* p) {
+ int type;
+ if (!m->ReadInt(iter, &type))
+ return false;
+ *p = static_cast<param_type>(type);
+ return true;
+}
+
+void ParamTraits<ContentSetting>::Log(const param_type& p, std::string* l) {
+ std::string content_setting;
+ switch (p) {
+ case CONTENT_SETTING_DEFAULT:
+ content_setting = "CONTENT_SETTING_DEFAULT";
+ break;
+ case CONTENT_SETTING_ALLOW:
+ content_setting = "CONTENT_SETTING_ALLOW";
+ break;
+ case CONTENT_SETTING_BLOCK:
+ content_setting = "CONTENT_SETTING_BLOCK";
+ break;
+ case CONTENT_SETTING_ASK:
+ content_setting = "CONTENT_SETTING_ASK";
+ break;
+ case CONTENT_SETTING_SESSION_ONLY:
+ content_setting = "CONTENT_SETTING_SESSION_ONLY";
+ break;
+ default:
+ content_setting = "UNKNOWN";
+ break;
+ }
+ LogParam(content_setting, l);
+}
+
+void ParamTraits<ContentSettingsType>::Write(Message* m, const param_type& p) {
+ m->WriteInt(static_cast<int>(p));
+}
+
+bool ParamTraits<ContentSettingsType>::Read(const Message* m, void** iter,
+ param_type* p) {
+ int type;
+ if (!m->ReadInt(iter, &type))
+ return false;
+ *p = static_cast<param_type>(type);
+ return true;
+}
+
+void ParamTraits<ContentSettingsType>::Log(const param_type& p,
+ std::string* l) {
+ std::string setting_type;
+ switch (p) {
+ case CONTENT_SETTINGS_TYPE_DEFAULT:
+ setting_type = "CONTENT_SETTINGS_TYPE_DEFAULT";
+ break;
+ case CONTENT_SETTINGS_TYPE_COOKIES:
+ setting_type = "CONTENT_SETTINGS_TYPE_COOKIES";
+ break;
+ case CONTENT_SETTINGS_TYPE_IMAGES:
+ setting_type = "CONTENT_SETTINGS_TYPE_IMAGES";
+ break;
+ case CONTENT_SETTINGS_TYPE_JAVASCRIPT:
+ setting_type = "CONTENT_SETTINGS_TYPE_JAVASCRIPT";
+ break;
+ case CONTENT_SETTINGS_TYPE_PLUGINS:
+ setting_type = "CONTENT_SETTINGS_TYPE_PLUGINS";
+ break;
+ case CONTENT_SETTINGS_TYPE_POPUPS:
+ setting_type = "CONTENT_SETTINGS_TYPE_POPUPS";
+ break;
+ case CONTENT_SETTINGS_TYPE_GEOLOCATION:
+ setting_type = "CONTENT_SETTINGS_TYPE_GEOLOCATION";
+ break;
+ case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
+ setting_type = "CONTENT_SETTINGS_TYPE_NOTIFICATIONS";
+ break;
+ case CONTENT_SETTINGS_TYPE_PRERENDER:
+ setting_type = "CONTENT_SETTINGS_TYPE_PRERENDER";
+ break;
+ default:
+ setting_type = "UNKNOWN";
+ break;
+ }
+ LogParam(setting_type, l);
+}
+
+} // namespace IPC