172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// Use of this source code is governed by a BSD-style license that can be 306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// found in the LICENSE file. 406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "chrome/common/common_param_traits.h" 606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "ipc/ipc_message.h" 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "ipc/ipc_message_utils.h" 906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 1006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochnamespace IPC { 1106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 1206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochvoid ParamTraits<ContentSetting>::Write(Message* m, const param_type& p) { 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen m->WriteInt(static_cast<int>(p)); 1406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch} 1506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 1606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochbool ParamTraits<ContentSetting>::Read(const Message* m, void** iter, 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen param_type* p) { 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int type; 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (!m->ReadInt(iter, &type)) 2006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch return false; 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen *p = static_cast<param_type>(type); 2206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch return true; 2306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch} 2406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickvoid ParamTraits<ContentSetting>::Log(const param_type& p, std::string* l) { 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen std::string content_setting; 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen switch (p) { 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTING_DEFAULT: 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen content_setting = "CONTENT_SETTING_DEFAULT"; 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTING_ALLOW: 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen content_setting = "CONTENT_SETTING_ALLOW"; 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTING_BLOCK: 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen content_setting = "CONTENT_SETTING_BLOCK"; 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTING_ASK: 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen content_setting = "CONTENT_SETTING_ASK"; 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTING_SESSION_ONLY: 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen content_setting = "CONTENT_SETTING_SESSION_ONLY"; 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen default: 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen content_setting = "UNKNOWN"; 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 4606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch } 47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen LogParam(content_setting, l); 4806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch} 4906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ParamTraits<ContentSettingsType>::Write(Message* m, const param_type& p) { 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen m->WriteInt(static_cast<int>(p)); 5206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch} 5306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenbool ParamTraits<ContentSettingsType>::Read(const Message* m, void** iter, 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen param_type* p) { 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int type; 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (!m->ReadInt(iter, &type)) 5806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch return false; 59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen *p = static_cast<param_type>(type); 6006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch return true; 6106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch} 6206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 63ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ParamTraits<ContentSettingsType>::Log(const param_type& p, 64ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen std::string* l) { 65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen std::string setting_type; 66ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen switch (p) { 67ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTINGS_TYPE_DEFAULT: 68ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "CONTENT_SETTINGS_TYPE_DEFAULT"; 69ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 70ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTINGS_TYPE_COOKIES: 71ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "CONTENT_SETTINGS_TYPE_COOKIES"; 72ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 73ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTINGS_TYPE_IMAGES: 74ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "CONTENT_SETTINGS_TYPE_IMAGES"; 75ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 76ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTINGS_TYPE_JAVASCRIPT: 77ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "CONTENT_SETTINGS_TYPE_JAVASCRIPT"; 78ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 79ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTINGS_TYPE_PLUGINS: 80ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "CONTENT_SETTINGS_TYPE_PLUGINS"; 81ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 82ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTINGS_TYPE_POPUPS: 83ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "CONTENT_SETTINGS_TYPE_POPUPS"; 84ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 85ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTINGS_TYPE_GEOLOCATION: 86ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "CONTENT_SETTINGS_TYPE_GEOLOCATION"; 87ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 88ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: 89ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "CONTENT_SETTINGS_TYPE_NOTIFICATIONS"; 90ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 91ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen case CONTENT_SETTINGS_TYPE_PRERENDER: 92ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "CONTENT_SETTINGS_TYPE_PRERENDER"; 93ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 94ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen default: 95ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen setting_type = "UNKNOWN"; 96ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen break; 9706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch } 98ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen LogParam(setting_type, l); 9921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 10021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 10106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch} // namespace IPC 102