Index: chrome/common/extensions/extension_manifests_unittest.cc |
diff --git a/chrome/common/extensions/extension_manifests_unittest.cc b/chrome/common/extensions/extension_manifests_unittest.cc |
index 9dd988cd30e8a700f78b8d027629b1d423dc8e9e..f2abaf9cdbeb294c30bcc58ef841923523946e1b 100644 |
--- a/chrome/common/extensions/extension_manifests_unittest.cc |
+++ b/chrome/common/extensions/extension_manifests_unittest.cc |
@@ -74,6 +74,19 @@ class ExtensionManifestTest : public testing::Test { |
Manifest(DictionaryValue* manifest, const char* name) |
: name_(name), manifest_(manifest) { |
} |
+ Manifest(const Manifest& m) { |
+ // C++98 requires the copy constructor for a type to be visiable if you |
+ // take a const-ref of a temporary for that type. Since Manifest |
+ // contains a scoped_ptr, its implicit copy constructor is declared |
+ // Manifest(Manifest&) according to spec 12.8.5. This breaks the first |
+ // requirement and thus you cannot use it with LoadAndExpectError() or |
+ // LoadAndExpectSuccess() easily. |
+ // |
+ // To get around this spec pedantry, we declare the copy constructor |
+ // explicitly. It will never get invoked. |
+ NOTREACHED(); |
+ } |
+ |
const std::string& name() const { return name_; } |