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 "extensions/common/permissions/manifest_permission.h" | 5 #include "extensions/common/permissions/manifest_permission.h" |
6 | 6 |
| 7 #include "base/json/json_writer.h" |
| 8 #include "extensions/common/manifest_handler.h" |
| 9 #include "ipc/ipc_message.h" |
| 10 #include "ipc/ipc_message_utils.h" |
| 11 |
7 namespace extensions { | 12 namespace extensions { |
8 | 13 |
9 ManifestPermission::ManifestPermission() {} | 14 ManifestPermission::ManifestPermission() {} |
10 | 15 |
11 ManifestPermission::~ManifestPermission() { } | 16 ManifestPermission::~ManifestPermission() { } |
12 | 17 |
| 18 ManifestPermission* ManifestPermission::Clone() const { |
| 19 return Union(this); |
| 20 } |
| 21 |
| 22 bool ManifestPermission::Contains(const ManifestPermission* rhs) const { |
| 23 return scoped_ptr<ManifestPermission>(Intersect(rhs))->Equal(rhs); |
| 24 } |
| 25 |
| 26 bool ManifestPermission::Equal(const ManifestPermission* rhs) const { |
| 27 return ToValue()->Equals(rhs->ToValue().get()); |
| 28 } |
| 29 |
| 30 void ManifestPermission::Write(IPC::Message* m) const { |
| 31 base::ListValue singleton; |
| 32 base::Value* value = ToValue().release(); |
| 33 singleton.Append(value); |
| 34 IPC::WriteParam(m, singleton); |
| 35 } |
| 36 |
| 37 bool ManifestPermission::Read(const IPC::Message* m, PickleIterator* iter) { |
| 38 base::ListValue singleton; |
| 39 if (!IPC::ReadParam(m, iter, &singleton)) |
| 40 return false; |
| 41 if (singleton.GetSize() != 1) |
| 42 return false; |
| 43 base::Value* value = NULL; |
| 44 if (!singleton.Get(0, &value)) |
| 45 return false; |
| 46 return FromValue(value); |
| 47 } |
| 48 |
| 49 void ManifestPermission::Log(std::string* log) const { |
| 50 base::JSONWriter::WriteWithOptions( |
| 51 ToValue().get(), base::JSONWriter::OPTIONS_PRETTY_PRINT, log); |
| 52 } |
| 53 |
13 } // namespace extensions | 54 } // namespace extensions |
OLD | NEW |