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 "remoting/host/setup/me2me_native_messaging_host.h" | 5 #include "remoting/host/setup/me2me_native_messaging_host.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 "getRefreshTokenFromAuthCode", | 56 "getRefreshTokenFromAuthCode", |
57 }; | 57 }; |
58 | 58 |
59 // Helper to extract the "config" part of a message as a DictionaryValue. | 59 // Helper to extract the "config" part of a message as a DictionaryValue. |
60 // Returns nullptr on failure, and logs an error message. | 60 // Returns nullptr on failure, and logs an error message. |
61 std::unique_ptr<base::DictionaryValue> ConfigDictionaryFromMessage( | 61 std::unique_ptr<base::DictionaryValue> ConfigDictionaryFromMessage( |
62 std::unique_ptr<base::DictionaryValue> message) { | 62 std::unique_ptr<base::DictionaryValue> message) { |
63 std::unique_ptr<base::DictionaryValue> result; | 63 std::unique_ptr<base::DictionaryValue> result; |
64 const base::DictionaryValue* config_dict; | 64 const base::DictionaryValue* config_dict; |
65 if (message->GetDictionary("config", &config_dict)) { | 65 if (message->GetDictionary("config", &config_dict)) { |
66 result.reset(config_dict->DeepCopy()); | 66 result = config_dict->CreateDeepCopy(); |
67 } else { | 67 } else { |
68 LOG(ERROR) << "'config' dictionary not found"; | 68 LOG(ERROR) << "'config' dictionary not found"; |
69 } | 69 } |
70 return result; | 70 return result; |
71 } | 71 } |
72 | 72 |
73 } // namespace | 73 } // namespace |
74 | 74 |
75 namespace remoting { | 75 namespace remoting { |
76 | 76 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 } | 120 } |
121 | 121 |
122 std::unique_ptr<base::DictionaryValue> message_dict( | 122 std::unique_ptr<base::DictionaryValue> message_dict( |
123 static_cast<base::DictionaryValue*>(message.release())); | 123 static_cast<base::DictionaryValue*>(message.release())); |
124 std::unique_ptr<base::DictionaryValue> response(new base::DictionaryValue()); | 124 std::unique_ptr<base::DictionaryValue> response(new base::DictionaryValue()); |
125 | 125 |
126 // If the client supplies an ID, it will expect it in the response. This | 126 // If the client supplies an ID, it will expect it in the response. This |
127 // might be a string or a number, so cope with both. | 127 // might be a string or a number, so cope with both. |
128 const base::Value* id; | 128 const base::Value* id; |
129 if (message_dict->Get("id", &id)) | 129 if (message_dict->Get("id", &id)) |
130 response->Set("id", id->DeepCopy()); | 130 response->Set("id", id->CreateDeepCopy()); |
131 | 131 |
132 std::string type; | 132 std::string type; |
133 if (!message_dict->GetString("type", &type)) { | 133 if (!message_dict->GetString("type", &type)) { |
134 LOG(ERROR) << "'type' not found"; | 134 LOG(ERROR) << "'type' not found"; |
135 channel_->SendMessage(nullptr); | 135 channel_->SendMessage(nullptr); |
136 return; | 136 return; |
137 } | 137 } |
138 | 138 |
139 response->SetString("type", type + "Response"); | 139 response->SetString("type", type + "Response"); |
140 | 140 |
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
744 | 744 |
745 bool Me2MeNativeMessagingHost::DelegateToElevatedHost( | 745 bool Me2MeNativeMessagingHost::DelegateToElevatedHost( |
746 std::unique_ptr<base::DictionaryValue> message) { | 746 std::unique_ptr<base::DictionaryValue> message) { |
747 NOTREACHED(); | 747 NOTREACHED(); |
748 return false; | 748 return false; |
749 } | 749 } |
750 | 750 |
751 #endif // !defined(OS_WIN) | 751 #endif // !defined(OS_WIN) |
752 | 752 |
753 } // namespace remoting | 753 } // namespace remoting |
OLD | NEW |