Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/devtools/devtools_embedder_message_dispatcher.h" | 5 #include "chrome/browser/devtools/devtools_embedder_message_dispatcher.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 | 9 |
| 10 namespace { | 10 namespace { |
| 11 | 11 |
| 12 bool GetValue(const base::ListValue& list, int pos, std::string& value) { | 12 bool GetValue(const base::ListValue& list, int pos, std::string& value) { |
| 13 return list.GetString(pos, &value); | 13 return list.GetString(pos, &value); |
| 14 } | 14 } |
| 15 | 15 |
| 16 bool GetValue(const base::ListValue& list, int pos, int& value) { | 16 bool GetValue(const base::ListValue& list, int pos, int& value) { |
| 17 return list.GetInteger(pos, &value); | 17 return list.GetInteger(pos, &value); |
| 18 } | 18 } |
| 19 | 19 |
| 20 bool GetValue(const base::ListValue& list, int pos, bool& value) { | 20 bool GetValue(const base::ListValue& list, int pos, bool& value) { |
| 21 return list.GetBoolean(pos, &value); | 21 return list.GetBoolean(pos, &value); |
| 22 } | 22 } |
| 23 | 23 |
| 24 bool GetValue(const base::ListValue& list, int pos, | |
|
pfeldman
2014/01/31 11:28:30
I'd rather define traits for Insets and Size
dgozman
2014/01/31 13:33:13
Done.
| |
| 25 DevToolsContentsResizingStrategy& strategy) { | |
| 26 const base::DictionaryValue* dict; | |
| 27 if (!list.GetDictionary(pos, &dict)) | |
| 28 return false; | |
| 29 const base::DictionaryValue* insets; | |
| 30 if (!dict->GetDictionary("insets", &insets)) | |
| 31 return false; | |
| 32 int top = 0; | |
| 33 int left = 0; | |
| 34 int bottom = 0; | |
| 35 int right = 0; | |
| 36 if (!insets->GetInteger("top", &top) || | |
| 37 !insets->GetInteger("left", &left) || | |
| 38 !insets->GetInteger("bottom", &bottom) || | |
| 39 !insets->GetInteger("right", &right)) | |
| 40 return false; | |
| 41 strategy.insets.Set(top, left, bottom, right); | |
| 42 const base::DictionaryValue* min_size; | |
| 43 if (!dict->GetDictionary("min_size", &min_size)) | |
| 44 return false; | |
| 45 int width = 0; | |
| 46 int height = 0; | |
| 47 if (!min_size->GetInteger("width", &width) || | |
| 48 !min_size->GetInteger("height", &height)) | |
| 49 return false; | |
| 50 strategy.min_size.SetSize(width, height); | |
| 51 return true; | |
| 52 } | |
| 53 | |
| 24 template <typename T> | 54 template <typename T> |
| 25 struct StorageTraits { | 55 struct StorageTraits { |
| 26 typedef T StorageType; | 56 typedef T StorageType; |
| 27 }; | 57 }; |
| 28 | 58 |
| 29 template <typename T> | 59 template <typename T> |
| 30 struct StorageTraits<const T&> { | 60 struct StorageTraits<const T&> { |
| 31 typedef T StorageType; | 61 typedef T StorageType; |
| 32 }; | 62 }; |
| 33 | 63 |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 154 Delegate* delegate) { | 184 Delegate* delegate) { |
| 155 RegisterHandler("bringToFront", | 185 RegisterHandler("bringToFront", |
| 156 BindToListParser(base::Bind(&Delegate::ActivateWindow, | 186 BindToListParser(base::Bind(&Delegate::ActivateWindow, |
| 157 base::Unretained(delegate)))); | 187 base::Unretained(delegate)))); |
| 158 RegisterHandler("closeWindow", | 188 RegisterHandler("closeWindow", |
| 159 BindToListParser(base::Bind(&Delegate::CloseWindow, | 189 BindToListParser(base::Bind(&Delegate::CloseWindow, |
| 160 base::Unretained(delegate)))); | 190 base::Unretained(delegate)))); |
| 161 RegisterHandler("setContentsInsets", | 191 RegisterHandler("setContentsInsets", |
| 162 BindToListParser(base::Bind(&Delegate::SetContentsInsets, | 192 BindToListParser(base::Bind(&Delegate::SetContentsInsets, |
| 163 base::Unretained(delegate)))); | 193 base::Unretained(delegate)))); |
| 194 RegisterHandler("setContentsResizingStrategy", | |
| 195 BindToListParser(base::Bind(&Delegate::SetContentsResizingStrategy, | |
| 196 base::Unretained(delegate)))); | |
| 164 RegisterHandler("moveWindowBy", | 197 RegisterHandler("moveWindowBy", |
| 165 BindToListParser(base::Bind(&Delegate::MoveWindow, | 198 BindToListParser(base::Bind(&Delegate::MoveWindow, |
| 166 base::Unretained(delegate)))); | 199 base::Unretained(delegate)))); |
| 167 RegisterHandler("setIsDocked", | 200 RegisterHandler("setIsDocked", |
| 168 BindToListParser(base::Bind(&Delegate::SetIsDocked, | 201 BindToListParser(base::Bind(&Delegate::SetIsDocked, |
| 169 base::Unretained(delegate)))); | 202 base::Unretained(delegate)))); |
| 170 RegisterHandler("openInNewTab", | 203 RegisterHandler("openInNewTab", |
| 171 BindToListParser(base::Bind(&Delegate::OpenInNewTab, | 204 BindToListParser(base::Bind(&Delegate::OpenInNewTab, |
| 172 base::Unretained(delegate)))); | 205 base::Unretained(delegate)))); |
| 173 RegisterHandler("save", | 206 RegisterHandler("save", |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 210 | 243 |
| 211 if (!it->second.Run(*params)) | 244 if (!it->second.Run(*params)) |
| 212 return "Invalid frontend host message parameters: " + method; | 245 return "Invalid frontend host message parameters: " + method; |
| 213 return ""; | 246 return ""; |
| 214 } | 247 } |
| 215 | 248 |
| 216 void DevToolsEmbedderMessageDispatcher::RegisterHandler( | 249 void DevToolsEmbedderMessageDispatcher::RegisterHandler( |
| 217 const std::string& method, const Handler& handler) { | 250 const std::string& method, const Handler& handler) { |
| 218 handlers_[method] = handler; | 251 handlers_[method] = handler; |
| 219 } | 252 } |
| OLD | NEW |