chrome: Add out-of-line copy ctors for complex classes.

This patch adds out of line copy constructors for classes that our
clang-plugin considers heavy. This is an effort to enable copy
constructor checks by default.

BUG=436357
[email protected], [email protected]

Review URL: https://codereview.chromium.org/1731483003

Cr-Commit-Position: refs/heads/master@{#377767}
diff --git a/chrome/browser/browsing_data/browsing_data_database_helper.cc b/chrome/browser/browsing_data/browsing_data_database_helper.cc
index 219be90..43b7d0c 100644
--- a/chrome/browser/browsing_data/browsing_data_database_helper.cc
+++ b/chrome/browser/browsing_data/browsing_data_database_helper.cc
@@ -37,6 +37,9 @@
       size(size),
       last_modified(last_modified) {}
 
+BrowsingDataDatabaseHelper::DatabaseInfo::DatabaseInfo(
+    const DatabaseInfo& other) = default;
+
 BrowsingDataDatabaseHelper::DatabaseInfo::~DatabaseInfo() {}
 
 BrowsingDataDatabaseHelper::BrowsingDataDatabaseHelper(Profile* profile)
diff --git a/chrome/browser/browsing_data/browsing_data_database_helper.h b/chrome/browser/browsing_data/browsing_data_database_helper.h
index e0565d3..6d34f628 100644
--- a/chrome/browser/browsing_data/browsing_data_database_helper.h
+++ b/chrome/browser/browsing_data/browsing_data_database_helper.h
@@ -37,6 +37,7 @@
                  const std::string& description,
                  int64_t size,
                  base::Time last_modified);
+    DatabaseInfo(const DatabaseInfo& other);
     ~DatabaseInfo();
 
     storage::DatabaseIdentifier identifier;
diff --git a/chrome/browser/browsing_data/browsing_data_file_system_helper.cc b/chrome/browser/browsing_data/browsing_data_file_system_helper.cc
index f1ee3d8..302dffe3 100644
--- a/chrome/browser/browsing_data/browsing_data_file_system_helper.cc
+++ b/chrome/browser/browsing_data/browsing_data_file_system_helper.cc
@@ -144,6 +144,9 @@
 BrowsingDataFileSystemHelper::FileSystemInfo::FileSystemInfo(
     const GURL& origin) : origin(origin) {}
 
+BrowsingDataFileSystemHelper::FileSystemInfo::FileSystemInfo(
+    const FileSystemInfo& other) = default;
+
 BrowsingDataFileSystemHelper::FileSystemInfo::~FileSystemInfo() {}
 
 // static
diff --git a/chrome/browser/browsing_data/browsing_data_file_system_helper.h b/chrome/browser/browsing_data/browsing_data_file_system_helper.h
index 0f2066a1..b8e73c9 100644
--- a/chrome/browser/browsing_data/browsing_data_file_system_helper.h
+++ b/chrome/browser/browsing_data/browsing_data_file_system_helper.h
@@ -44,6 +44,7 @@
   // the amount of data (in bytes) for each sandboxed filesystem type.
   struct FileSystemInfo {
     explicit FileSystemInfo(const GURL& origin);
+    FileSystemInfo(const FileSystemInfo& other);
     ~FileSystemInfo();
 
     // The origin for which the information is relevant.
diff --git a/chrome/browser/browsing_data/browsing_data_service_worker_helper.cc b/chrome/browser/browsing_data/browsing_data_service_worker_helper.cc
index b55b6b58..74dfef3 100644
--- a/chrome/browser/browsing_data/browsing_data_service_worker_helper.cc
+++ b/chrome/browser/browsing_data/browsing_data_service_worker_helper.cc
@@ -92,6 +92,10 @@
 }
 
 CannedBrowsingDataServiceWorkerHelper::PendingServiceWorkerUsageInfo::
+    PendingServiceWorkerUsageInfo(const PendingServiceWorkerUsageInfo& other) =
+        default;
+
+CannedBrowsingDataServiceWorkerHelper::PendingServiceWorkerUsageInfo::
     ~PendingServiceWorkerUsageInfo() {
 }
 
diff --git a/chrome/browser/browsing_data/browsing_data_service_worker_helper.h b/chrome/browser/browsing_data/browsing_data_service_worker_helper.h
index 50c807f3..f4ccba6 100644
--- a/chrome/browser/browsing_data/browsing_data_service_worker_helper.h
+++ b/chrome/browser/browsing_data/browsing_data_service_worker_helper.h
@@ -71,6 +71,7 @@
   struct PendingServiceWorkerUsageInfo {
     PendingServiceWorkerUsageInfo(const GURL& origin,
                                   const std::vector<GURL>& scopes);
+    PendingServiceWorkerUsageInfo(const PendingServiceWorkerUsageInfo& other);
     ~PendingServiceWorkerUsageInfo();
 
     bool operator<(const PendingServiceWorkerUsageInfo& other) const;
diff --git a/chrome/browser/browsing_data/cookies_tree_model.cc b/chrome/browser/browsing_data/cookies_tree_model.cc
index 804242c..1f4cfd3 100644
--- a/chrome/browser/browsing_data/cookies_tree_model.cc
+++ b/chrome/browser/browsing_data/cookies_tree_model.cc
@@ -175,6 +175,8 @@
 
 CookieTreeNode::DetailedInfo::DetailedInfo() : node_type(TYPE_NONE) {}
 
+CookieTreeNode::DetailedInfo::DetailedInfo(const DetailedInfo& other) = default;
+
 CookieTreeNode::DetailedInfo::~DetailedInfo() {}
 
 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::Init(
diff --git a/chrome/browser/browsing_data/cookies_tree_model.h b/chrome/browser/browsing_data/cookies_tree_model.h
index 4772c7e..f543767 100644
--- a/chrome/browser/browsing_data/cookies_tree_model.h
+++ b/chrome/browser/browsing_data/cookies_tree_model.h
@@ -111,6 +111,7 @@
     };
 
     DetailedInfo();
+    DetailedInfo(const DetailedInfo& other);
     ~DetailedInfo();
 
     DetailedInfo& Init(NodeType type);
diff --git a/chrome/browser/devtools/device/android_device_manager.cc b/chrome/browser/devtools/device/android_device_manager.cc
index 7b647ef..ccae719 100644
--- a/chrome/browser/devtools/device/android_device_manager.cc
+++ b/chrome/browser/devtools/device/android_device_manager.cc
@@ -331,16 +331,24 @@
     : type(kTypeOther) {
 }
 
+AndroidDeviceManager::BrowserInfo::BrowserInfo(const BrowserInfo& other) =
+    default;
+
 AndroidDeviceManager::DeviceInfo::DeviceInfo()
     : model(kModelOffline), connected(false) {
 }
 
+AndroidDeviceManager::DeviceInfo::DeviceInfo(const DeviceInfo& other) = default;
+
 AndroidDeviceManager::DeviceInfo::~DeviceInfo() {
 }
 
 AndroidDeviceManager::DeviceDescriptor::DeviceDescriptor() {
 }
 
+AndroidDeviceManager::DeviceDescriptor::DeviceDescriptor(
+    const DeviceDescriptor& other) = default;
+
 AndroidDeviceManager::DeviceDescriptor::~DeviceDescriptor() {
 }
 
diff --git a/chrome/browser/devtools/device/android_device_manager.h b/chrome/browser/devtools/device/android_device_manager.h
index 331e8fa5..55dac0e 100644
--- a/chrome/browser/devtools/device/android_device_manager.h
+++ b/chrome/browser/devtools/device/android_device_manager.h
@@ -38,6 +38,7 @@
 
   struct BrowserInfo {
     BrowserInfo();
+    BrowserInfo(const BrowserInfo& other);
 
     enum Type {
       kTypeChrome,
@@ -53,6 +54,7 @@
 
   struct DeviceInfo {
     DeviceInfo();
+    DeviceInfo(const DeviceInfo& other);
     ~DeviceInfo();
 
     std::string model;
@@ -207,6 +209,7 @@
 
   struct DeviceDescriptor {
     DeviceDescriptor();
+    DeviceDescriptor(const DeviceDescriptor& other);
     ~DeviceDescriptor();
 
     scoped_refptr<DeviceProvider> provider;
diff --git a/chrome/browser/devtools/devtools_network_interceptor.cc b/chrome/browser/devtools/devtools_network_interceptor.cc
index 5b3fc87..0d780272 100644
--- a/chrome/browser/devtools/devtools_network_interceptor.cc
+++ b/chrome/browser/devtools/devtools_network_interceptor.cc
@@ -32,6 +32,9 @@
 DevToolsNetworkInterceptor::ThrottleRecord::ThrottleRecord() {
 }
 
+DevToolsNetworkInterceptor::ThrottleRecord::ThrottleRecord(
+    const ThrottleRecord& other) = default;
+
 DevToolsNetworkInterceptor::ThrottleRecord::~ThrottleRecord() {
 }
 
diff --git a/chrome/browser/devtools/devtools_network_interceptor.h b/chrome/browser/devtools/devtools_network_interceptor.h
index 1b8976bd..05eaa67 100644
--- a/chrome/browser/devtools/devtools_network_interceptor.h
+++ b/chrome/browser/devtools/devtools_network_interceptor.h
@@ -52,6 +52,7 @@
   struct ThrottleRecord {
    public:
     ThrottleRecord();
+    ThrottleRecord(const ThrottleRecord& other);
     ~ThrottleRecord();
     int result;
     int64_t bytes;
diff --git a/chrome/browser/extensions/active_script_controller.cc b/chrome/browser/extensions/active_script_controller.cc
index c167d2e9..cb4ba00 100644
--- a/chrome/browser/extensions/active_script_controller.cc
+++ b/chrome/browser/extensions/active_script_controller.cc
@@ -40,6 +40,9 @@
     const base::Closure& permit_script)
     : run_location(run_location), permit_script(permit_script) {}
 
+ActiveScriptController::PendingScript::PendingScript(
+    const PendingScript& other) = default;
+
 ActiveScriptController::PendingScript::~PendingScript() {}
 
 ActiveScriptController::ActiveScriptController(
diff --git a/chrome/browser/extensions/active_script_controller.h b/chrome/browser/extensions/active_script_controller.h
index ed47821..94e8f374 100644
--- a/chrome/browser/extensions/active_script_controller.h
+++ b/chrome/browser/extensions/active_script_controller.h
@@ -91,6 +91,7 @@
   struct PendingScript {
     PendingScript(UserScript::RunLocation run_location,
                   const base::Closure& permit_script);
+    PendingScript(const PendingScript& other);
     ~PendingScript();
 
     // The run location that the script wants to inject at.
diff --git a/chrome/browser/extensions/api/automation_internal/automation_event_router.cc b/chrome/browser/extensions/api/automation_internal/automation_event_router.cc
index 4c58c72..d0f5c033 100644
--- a/chrome/browser/extensions/api/automation_internal/automation_event_router.cc
+++ b/chrome/browser/extensions/api/automation_internal/automation_event_router.cc
@@ -103,6 +103,9 @@
 AutomationEventRouter::AutomationListener::AutomationListener() {
 }
 
+AutomationEventRouter::AutomationListener::AutomationListener(
+    const AutomationListener& other) = default;
+
 AutomationEventRouter::AutomationListener::~AutomationListener() {
 }
 
diff --git a/chrome/browser/extensions/api/automation_internal/automation_event_router.h b/chrome/browser/extensions/api/automation_internal/automation_event_router.h
index 21968fd..82239ea 100644
--- a/chrome/browser/extensions/api/automation_internal/automation_event_router.h
+++ b/chrome/browser/extensions/api/automation_internal/automation_event_router.h
@@ -59,6 +59,7 @@
  private:
   struct AutomationListener {
     AutomationListener();
+    AutomationListener(const AutomationListener& other);
     ~AutomationListener();
 
     ExtensionId extension_id;
diff --git a/chrome/browser/extensions/api/dial/dial_device_data.cc b/chrome/browser/extensions/api/dial/dial_device_data.cc
index f8f55404..821f055 100644
--- a/chrome/browser/extensions/api/dial/dial_device_data.cc
+++ b/chrome/browser/extensions/api/dial/dial_device_data.cc
@@ -17,6 +17,8 @@
       response_time_(response_time), max_age_(-1), config_id_(-1) {
 }
 
+DialDeviceData::DialDeviceData(const DialDeviceData& other) = default;
+
 DialDeviceData::~DialDeviceData() { }
 
 const GURL& DialDeviceData::device_description_url() const {
diff --git a/chrome/browser/extensions/api/dial/dial_device_data.h b/chrome/browser/extensions/api/dial/dial_device_data.h
index a59900cb..bd9f561 100644
--- a/chrome/browser/extensions/api/dial/dial_device_data.h
+++ b/chrome/browser/extensions/api/dial/dial_device_data.h
@@ -29,6 +29,7 @@
   DialDeviceData(const std::string& device_id,
                  const GURL& device_description_url,
                  const base::Time& response_time);
+  DialDeviceData(const DialDeviceData& other);
   ~DialDeviceData();
 
   bool operator==(const DialDeviceData& other_data) const {
diff --git a/chrome/browser/extensions/api/identity/extension_token_key.cc b/chrome/browser/extensions/api/identity/extension_token_key.cc
index 8eb44a5..08f81d0 100644
--- a/chrome/browser/extensions/api/identity/extension_token_key.cc
+++ b/chrome/browser/extensions/api/identity/extension_token_key.cc
@@ -13,6 +13,8 @@
                                      const std::set<std::string>& scopes)
     : extension_id(extension_id), account_id(account_id), scopes(scopes) {}
 
+ExtensionTokenKey::ExtensionTokenKey(const ExtensionTokenKey& other) = default;
+
 ExtensionTokenKey::~ExtensionTokenKey() {}
 
 bool ExtensionTokenKey::operator<(const ExtensionTokenKey& rhs) const {
diff --git a/chrome/browser/extensions/api/identity/extension_token_key.h b/chrome/browser/extensions/api/identity/extension_token_key.h
index b6a0f9fb..d722dee8 100644
--- a/chrome/browser/extensions/api/identity/extension_token_key.h
+++ b/chrome/browser/extensions/api/identity/extension_token_key.h
@@ -14,6 +14,7 @@
   ExtensionTokenKey(const std::string& extension_id,
                     const std::string& account_id,
                     const std::set<std::string>& scopes);
+  ExtensionTokenKey(const ExtensionTokenKey& other);
   ~ExtensionTokenKey();
   bool operator<(const ExtensionTokenKey& rhs) const;
   std::string extension_id;
diff --git a/chrome/browser/extensions/api/identity/identity_api.cc b/chrome/browser/extensions/api/identity/identity_api.cc
index 5c217b2ee..3155af0 100644
--- a/chrome/browser/extensions/api/identity/identity_api.cc
+++ b/chrome/browser/extensions/api/identity/identity_api.cc
@@ -121,6 +121,9 @@
   expiration_time_ = base::Time::Now() + time_to_live;
 }
 
+IdentityTokenCacheValue::IdentityTokenCacheValue(
+    const IdentityTokenCacheValue& other) = default;
+
 IdentityTokenCacheValue::~IdentityTokenCacheValue() {}
 
 IdentityTokenCacheValue::CacheValueStatus IdentityTokenCacheValue::status()
diff --git a/chrome/browser/extensions/api/identity/identity_api.h b/chrome/browser/extensions/api/identity/identity_api.h
index c109754..c0fe913 100644
--- a/chrome/browser/extensions/api/identity/identity_api.h
+++ b/chrome/browser/extensions/api/identity/identity_api.h
@@ -60,6 +60,7 @@
   explicit IdentityTokenCacheValue(const IssueAdviceInfo& issue_advice);
   IdentityTokenCacheValue(const std::string& token,
                           base::TimeDelta time_to_live);
+  IdentityTokenCacheValue(const IdentityTokenCacheValue& other);
   ~IdentityTokenCacheValue();
 
   // Order of these entries is used to determine whether or not new
diff --git a/chrome/browser/extensions/api/mdns/dns_sd_delegate.cc b/chrome/browser/extensions/api/mdns/dns_sd_delegate.cc
index 3f9524b..3dca22b 100644
--- a/chrome/browser/extensions/api/mdns/dns_sd_delegate.cc
+++ b/chrome/browser/extensions/api/mdns/dns_sd_delegate.cc
@@ -7,6 +7,7 @@
 namespace extensions {
 
 DnsSdService::DnsSdService() {}
+DnsSdService::DnsSdService(const DnsSdService& other) = default;
 DnsSdService::~DnsSdService() {}
 
 }  // namespace extensions
diff --git a/chrome/browser/extensions/api/mdns/dns_sd_delegate.h b/chrome/browser/extensions/api/mdns/dns_sd_delegate.h
index 7149295..7a06066 100644
--- a/chrome/browser/extensions/api/mdns/dns_sd_delegate.h
+++ b/chrome/browser/extensions/api/mdns/dns_sd_delegate.h
@@ -17,6 +17,7 @@
   std::vector<std::string> service_data;
 
   DnsSdService();
+  DnsSdService(const DnsSdService& other);
   virtual ~DnsSdService();
 
   bool operator==(const DnsSdService& other) const {
diff --git a/chrome/browser/extensions/api/messaging/incognito_connectability.cc b/chrome/browser/extensions/api/messaging/incognito_connectability.cc
index 1caac20..7c00d4a0 100644
--- a/chrome/browser/extensions/api/messaging/incognito_connectability.cc
+++ b/chrome/browser/extensions/api/messaging/incognito_connectability.cc
@@ -218,6 +218,9 @@
 IncognitoConnectability::TabContext::TabContext() : infobar(nullptr) {
 }
 
+IncognitoConnectability::TabContext::TabContext(const TabContext& other) =
+    default;
+
 IncognitoConnectability::TabContext::~TabContext() {
 }
 
diff --git a/chrome/browser/extensions/api/messaging/incognito_connectability.h b/chrome/browser/extensions/api/messaging/incognito_connectability.h
index 2402ab8..026ade9 100644
--- a/chrome/browser/extensions/api/messaging/incognito_connectability.h
+++ b/chrome/browser/extensions/api/messaging/incognito_connectability.h
@@ -71,6 +71,7 @@
  private:
   struct TabContext {
     TabContext();
+    TabContext(const TabContext& other);
     ~TabContext();
 
     // The infobar being shown in a given tab. The InfoBarManager maintains
diff --git a/chrome/browser/extensions/bundle_installer.cc b/chrome/browser/extensions/bundle_installer.cc
index a0762a7..1e66c13c 100644
--- a/chrome/browser/extensions/bundle_installer.cc
+++ b/chrome/browser/extensions/bundle_installer.cc
@@ -92,6 +92,8 @@
 
 BundleInstaller::Item::Item() : state(STATE_PENDING) {}
 
+BundleInstaller::Item::Item(const Item& other) = default;
+
 BundleInstaller::Item::~Item() {}
 
 base::string16 BundleInstaller::Item::GetNameForDisplay() const {
diff --git a/chrome/browser/extensions/bundle_installer.h b/chrome/browser/extensions/bundle_installer.h
index 96a2129..9c3888b 100644
--- a/chrome/browser/extensions/bundle_installer.h
+++ b/chrome/browser/extensions/bundle_installer.h
@@ -61,6 +61,7 @@
     };
 
     Item();
+    Item(const Item& other);
     ~Item();
 
     // Gets the localized name, formatted for display in the bubble.
diff --git a/chrome/browser/extensions/chrome_app_sorting.cc b/chrome/browser/extensions/chrome_app_sorting.cc
index 8410eae..ad18f3b 100644
--- a/chrome/browser/extensions/chrome_app_sorting.cc
+++ b/chrome/browser/extensions/chrome_app_sorting.cc
@@ -47,6 +47,8 @@
 
 ChromeAppSorting::AppOrdinals::AppOrdinals() {}
 
+ChromeAppSorting::AppOrdinals::AppOrdinals(const AppOrdinals& other) = default;
+
 ChromeAppSorting::AppOrdinals::~AppOrdinals() {}
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/browser/extensions/chrome_app_sorting.h b/chrome/browser/extensions/chrome_app_sorting.h
index d33078f..de8ca40 100644
--- a/chrome/browser/extensions/chrome_app_sorting.h
+++ b/chrome/browser/extensions/chrome_app_sorting.h
@@ -85,6 +85,7 @@
   // Maps an app id to its ordinals.
   struct AppOrdinals {
     AppOrdinals();
+    AppOrdinals(const AppOrdinals& other);
     ~AppOrdinals();
 
     syncer::StringOrdinal page_ordinal;
diff --git a/chrome/browser/extensions/extension_service_test_base.cc b/chrome/browser/extensions/extension_service_test_base.cc
index 78cfc04..ab739a44 100644
--- a/chrome/browser/extensions/extension_service_test_base.cc
+++ b/chrome/browser/extensions/extension_service_test_base.cc
@@ -78,6 +78,10 @@
       profile_is_supervised(false) {
 }
 
+ExtensionServiceTestBase::ExtensionServiceInitParams::
+    ExtensionServiceInitParams(const ExtensionServiceInitParams& other) =
+        default;
+
 ExtensionServiceTestBase::ExtensionServiceTestBase()
     : thread_bundle_(new content::TestBrowserThreadBundle(kThreadOptions)),
       service_(NULL),
diff --git a/chrome/browser/extensions/extension_service_test_base.h b/chrome/browser/extensions/extension_service_test_base.h
index e9de2739..03f164cc 100644
--- a/chrome/browser/extensions/extension_service_test_base.h
+++ b/chrome/browser/extensions/extension_service_test_base.h
@@ -58,6 +58,7 @@
     // Though you could use this constructor, you probably want to use
     // CreateDefaultInitParams(), and then make a change or two.
     ExtensionServiceInitParams();
+    ExtensionServiceInitParams(const ExtensionServiceInitParams& other);
   };
 
   // Public because parameterized test cases need it to be, or else the compiler
diff --git a/chrome/browser/extensions/extension_sync_data.cc b/chrome/browser/extensions/extension_sync_data.cc
index 1fc56d45..3e88aa6 100644
--- a/chrome/browser/extensions/extension_sync_data.cc
+++ b/chrome/browser/extensions/extension_sync_data.cc
@@ -134,6 +134,8 @@
   }
 }
 
+ExtensionSyncData::ExtensionSyncData(const ExtensionSyncData& other) = default;
+
 ExtensionSyncData::~ExtensionSyncData() {}
 
 // static
diff --git a/chrome/browser/extensions/extension_sync_data.h b/chrome/browser/extensions/extension_sync_data.h
index 3505c86..0feefeb 100644
--- a/chrome/browser/extensions/extension_sync_data.h
+++ b/chrome/browser/extensions/extension_sync_data.h
@@ -64,6 +64,7 @@
                     const syncer::StringOrdinal& app_launch_ordinal,
                     const syncer::StringOrdinal& page_ordinal,
                     extensions::LaunchType launch_type);
+  ExtensionSyncData(const ExtensionSyncData& other);
   ~ExtensionSyncData();
 
   // For constructing an ExtensionSyncData from received sync data.
diff --git a/chrome/browser/extensions/install_signer.cc b/chrome/browser/extensions/install_signer.cc
index 7ce0ccb..19c3f919 100644
--- a/chrome/browser/extensions/install_signer.cc
+++ b/chrome/browser/extensions/install_signer.cc
@@ -160,6 +160,7 @@
 
 InstallSignature::InstallSignature() {
 }
+InstallSignature::InstallSignature(const InstallSignature& other) = default;
 InstallSignature::~InstallSignature() {
 }
 
diff --git a/chrome/browser/extensions/install_signer.h b/chrome/browser/extensions/install_signer.h
index d2df9875..81d3d7af 100644
--- a/chrome/browser/extensions/install_signer.h
+++ b/chrome/browser/extensions/install_signer.h
@@ -47,6 +47,7 @@
   ExtensionIdSet invalid_ids;
 
   InstallSignature();
+  InstallSignature(const InstallSignature& other);
   ~InstallSignature();
 
   // Helper methods for serialization to/from a base::DictionaryValue.
diff --git a/chrome/browser/extensions/pending_extension_info.cc b/chrome/browser/extensions/pending_extension_info.cc
index 94a5608..0759fdc2 100644
--- a/chrome/browser/extensions/pending_extension_info.cc
+++ b/chrome/browser/extensions/pending_extension_info.cc
@@ -41,6 +41,9 @@
       remote_install_(false) {
 }
 
+PendingExtensionInfo::PendingExtensionInfo(const PendingExtensionInfo& other) =
+    default;
+
 PendingExtensionInfo::~PendingExtensionInfo() {}
 
 bool PendingExtensionInfo::operator==(const PendingExtensionInfo& rhs) const {
diff --git a/chrome/browser/extensions/pending_extension_info.h b/chrome/browser/extensions/pending_extension_info.h
index 8ac52c5..9d4e939 100644
--- a/chrome/browser/extensions/pending_extension_info.h
+++ b/chrome/browser/extensions/pending_extension_info.h
@@ -41,6 +41,8 @@
   // Required for STL container membership.  Should not be used directly.
   PendingExtensionInfo();
 
+  PendingExtensionInfo(const PendingExtensionInfo& other);
+
   ~PendingExtensionInfo();
 
   // Consider two PendingExtensionInfos equal if their ids are equal.
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc
index 2c939b1a..bd93ba3 100644
--- a/chrome/browser/extensions/updater/extension_updater.cc
+++ b/chrome/browser/extensions/updater/extension_updater.cc
@@ -116,11 +116,17 @@
     : file_ownership_passed(true) {
 }
 
+ExtensionUpdater::FetchedCRXFile::FetchedCRXFile(const FetchedCRXFile& other) =
+    default;
+
 ExtensionUpdater::FetchedCRXFile::~FetchedCRXFile() {}
 
 ExtensionUpdater::InProgressCheck::InProgressCheck()
     : install_immediately(false) {}
 
+ExtensionUpdater::InProgressCheck::InProgressCheck(
+    const InProgressCheck& other) = default;
+
 ExtensionUpdater::InProgressCheck::~InProgressCheck() {}
 
 struct ExtensionUpdater::ThrottleInfo {
diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h
index 772eef6..dcf656e 100644
--- a/chrome/browser/extensions/updater/extension_updater.h
+++ b/chrome/browser/extensions/updater/extension_updater.h
@@ -137,6 +137,7 @@
                    bool file_ownership_passed,
                    const std::set<int>& request_ids,
                    const InstallCallback& callback);
+    FetchedCRXFile(const FetchedCRXFile& other);
     ~FetchedCRXFile();
 
     CRXFileInfo info;
@@ -148,6 +149,7 @@
 
   struct InProgressCheck {
     InProgressCheck();
+    InProgressCheck(const InProgressCheck& other);
     ~InProgressCheck();
 
     bool install_immediately;
diff --git a/chrome/browser/local_discovery/service_discovery_client.cc b/chrome/browser/local_discovery/service_discovery_client.cc
index ca0715b..8c331f0 100644
--- a/chrome/browser/local_discovery/service_discovery_client.cc
+++ b/chrome/browser/local_discovery/service_discovery_client.cc
@@ -11,6 +11,9 @@
 ServiceDescription::ServiceDescription() {
 }
 
+ServiceDescription::ServiceDescription(const ServiceDescription& other) =
+    default;
+
 ServiceDescription::~ServiceDescription() {
 }
 
diff --git a/chrome/browser/local_discovery/service_discovery_client.h b/chrome/browser/local_discovery/service_discovery_client.h
index b01feba3..911dc6d 100644
--- a/chrome/browser/local_discovery/service_discovery_client.h
+++ b/chrome/browser/local_discovery/service_discovery_client.h
@@ -24,6 +24,7 @@
 struct ServiceDescription {
  public:
   ServiceDescription();
+  ServiceDescription(const ServiceDescription& other);
   ~ServiceDescription();
 
   // Convenience function to get useful parts of the service name. A service
diff --git a/chrome/browser/media/router/issue.cc b/chrome/browser/media/router/issue.cc
index 6798d95..6afa57e 100644
--- a/chrome/browser/media/router/issue.cc
+++ b/chrome/browser/media/router/issue.cc
@@ -38,6 +38,8 @@
     DCHECK_NE(default_action_.type(), secondary_actions_[0].type());
 }
 
+Issue::Issue(const Issue& other) = default;
+
 Issue::~Issue() {
 }
 
diff --git a/chrome/browser/media/router/issue.h b/chrome/browser/media/router/issue.h
index 4e65f7f..60f33035 100644
--- a/chrome/browser/media/router/issue.h
+++ b/chrome/browser/media/router/issue.h
@@ -60,6 +60,8 @@
         bool is_blocking,
         const std::string& helpUrl);
 
+  Issue(const Issue& other);
+
   ~Issue();
 
   // See constructor comments for more information about these fields.
diff --git a/chrome/browser/media/router/media_route.cc b/chrome/browser/media/router/media_route.cc
index c998d02..6a7fbbd69 100644
--- a/chrome/browser/media/router/media_route.cc
+++ b/chrome/browser/media/router/media_route.cc
@@ -25,6 +25,8 @@
       for_display_(for_display),
       off_the_record_(false) {}
 
+MediaRoute::MediaRoute(const MediaRoute& other) = default;
+
 MediaRoute::~MediaRoute() {
 }
 
diff --git a/chrome/browser/media/router/media_route.h b/chrome/browser/media/router/media_route.h
index b9481ba5..4d80900 100644
--- a/chrome/browser/media/router/media_route.h
+++ b/chrome/browser/media/router/media_route.h
@@ -44,6 +44,7 @@
              bool is_local,
              const std::string& custom_controller_path,
              bool for_display);
+  MediaRoute(const MediaRoute& other);
   ~MediaRoute();
 
   // The media route identifier.
diff --git a/chrome/browser/media/router/media_sink.cc b/chrome/browser/media/router/media_sink.cc
index 0b59c5f..3628f2a 100644
--- a/chrome/browser/media/router/media_sink.cc
+++ b/chrome/browser/media/router/media_sink.cc
@@ -11,6 +11,8 @@
                      const MediaSink::IconType icon_type)
     : sink_id_(sink_id), name_(name), icon_type_(icon_type) {}
 
+MediaSink::MediaSink(const MediaSink& other) = default;
+
 MediaSink::~MediaSink() {
 }
 
diff --git a/chrome/browser/media/router/media_sink.h b/chrome/browser/media/router/media_sink.h
index f83a012..f39e3689 100644
--- a/chrome/browser/media/router/media_sink.h
+++ b/chrome/browser/media/router/media_sink.h
@@ -26,6 +26,8 @@
             const std::string& name,
             const IconType icon_type);
 
+  MediaSink(const MediaSink& other);
+
   ~MediaSink();
 
   const MediaSink::Id& id() const { return sink_id_; }
diff --git a/chrome/browser/media/router/presentation_request.cc b/chrome/browser/media/router/presentation_request.cc
index 1c6df557..396fdf0f 100644
--- a/chrome/browser/media/router/presentation_request.cc
+++ b/chrome/browser/media/router/presentation_request.cc
@@ -16,6 +16,9 @@
       presentation_url_(presentation_url),
       frame_url_(frame_url) {}
 
+PresentationRequest::PresentationRequest(const PresentationRequest& other) =
+    default;
+
 PresentationRequest::~PresentationRequest() = default;
 
 bool PresentationRequest::Equals(const PresentationRequest& other) const {
diff --git a/chrome/browser/media/router/presentation_request.h b/chrome/browser/media/router/presentation_request.h
index a37189f..f280e0c6 100644
--- a/chrome/browser/media/router/presentation_request.h
+++ b/chrome/browser/media/router/presentation_request.h
@@ -20,6 +20,7 @@
   PresentationRequest(const RenderFrameHostId& render_frame_host_id,
                       const std::string& presentation_url,
                       const GURL& frame_url);
+  PresentationRequest(const PresentationRequest& other);
   ~PresentationRequest();
 
   bool Equals(const PresentationRequest& other) const;
diff --git a/chrome/browser/media/webrtc_log_uploader.cc b/chrome/browser/media/webrtc_log_uploader.cc
index 9157fef..d1412f3 100644
--- a/chrome/browser/media/webrtc_log_uploader.cc
+++ b/chrome/browser/media/webrtc_log_uploader.cc
@@ -75,6 +75,9 @@
 
 WebRtcLogUploadDoneData::WebRtcLogUploadDoneData() {}
 
+WebRtcLogUploadDoneData::WebRtcLogUploadDoneData(
+    const WebRtcLogUploadDoneData& other) = default;
+
 WebRtcLogUploadDoneData::~WebRtcLogUploadDoneData() {}
 
 WebRtcLogUploader::WebRtcLogUploader()
diff --git a/chrome/browser/media/webrtc_log_uploader.h b/chrome/browser/media/webrtc_log_uploader.h
index fa641c2..adb9ac46 100644
--- a/chrome/browser/media/webrtc_log_uploader.h
+++ b/chrome/browser/media/webrtc_log_uploader.h
@@ -33,6 +33,7 @@
 // also used pre-upload.
 struct WebRtcLogUploadDoneData : public WebRtcLogPaths {
   WebRtcLogUploadDoneData();
+  WebRtcLogUploadDoneData(const WebRtcLogUploadDoneData& other);
   ~WebRtcLogUploadDoneData();
 
   WebRtcLoggingHandlerHost::UploadDoneCallback callback;
diff --git a/chrome/browser/media/webrtc_rtp_dump_writer.cc b/chrome/browser/media/webrtc_rtp_dump_writer.cc
index a362142..33e34df 100644
--- a/chrome/browser/media/webrtc_rtp_dump_writer.cc
+++ b/chrome/browser/media/webrtc_rtp_dump_writer.cc
@@ -348,6 +348,9 @@
       callback(callback) {
 }
 
+WebRtcRtpDumpWriter::EndDumpContext::EndDumpContext(
+    const EndDumpContext& other) = default;
+
 WebRtcRtpDumpWriter::EndDumpContext::~EndDumpContext() {
 }
 
diff --git a/chrome/browser/media/webrtc_rtp_dump_writer.h b/chrome/browser/media/webrtc_rtp_dump_writer.h
index 8124ced9..a53955e 100644
--- a/chrome/browser/media/webrtc_rtp_dump_writer.h
+++ b/chrome/browser/media/webrtc_rtp_dump_writer.h
@@ -80,6 +80,7 @@
   // Used by EndDump to cache the input and intermediate results.
   struct EndDumpContext {
     EndDumpContext(RtpDumpType type, const EndDumpCallback& callback);
+    EndDumpContext(const EndDumpContext& other);
     ~EndDumpContext();
 
     RtpDumpType type;
diff --git a/chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.cc b/chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.cc
index 71245065..6a6d964 100644
--- a/chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.cc
+++ b/chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.cc
@@ -20,4 +20,7 @@
       success_callback(success_callback),
       error_callback(error_callback) {}
 
+MTPDeviceAsyncDelegate::ReadBytesRequest::ReadBytesRequest(
+    const ReadBytesRequest& other) = default;
+
 MTPDeviceAsyncDelegate::ReadBytesRequest::~ReadBytesRequest() {}
diff --git a/chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.h b/chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.h
index 68e8482..746c3ba 100644
--- a/chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.h
+++ b/chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.h
@@ -62,6 +62,7 @@
                      int buf_len,
                      const ReadBytesSuccessCallback& success_callback,
                      const ErrorCallback& error_callback);
+    ReadBytesRequest(const ReadBytesRequest& other);
     ~ReadBytesRequest();
 
     uint32_t file_id;
diff --git a/chrome/browser/media_galleries/gallery_watch_manager.cc b/chrome/browser/media_galleries/gallery_watch_manager.cc
index 52d35e12..b396cf9 100644
--- a/chrome/browser/media_galleries/gallery_watch_manager.cc
+++ b/chrome/browser/media_galleries/gallery_watch_manager.cc
@@ -167,6 +167,9 @@
     : delayed_notification_pending(false) {
 }
 
+GalleryWatchManager::NotificationInfo::NotificationInfo(
+    const NotificationInfo& other) = default;
+
 GalleryWatchManager::NotificationInfo::~NotificationInfo() {
 }
 
diff --git a/chrome/browser/media_galleries/gallery_watch_manager.h b/chrome/browser/media_galleries/gallery_watch_manager.h
index c5edd41b..ec79da2 100644
--- a/chrome/browser/media_galleries/gallery_watch_manager.h
+++ b/chrome/browser/media_galleries/gallery_watch_manager.h
@@ -97,6 +97,7 @@
 
   struct NotificationInfo {
     NotificationInfo();
+    NotificationInfo(const NotificationInfo& other);
     ~NotificationInfo();
 
     std::set<WatchOwner> owners;
diff --git a/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.cc b/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.cc
index 3d5a68fb..b4f1a99 100644
--- a/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.cc
+++ b/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.cc
@@ -367,6 +367,9 @@
       task(task) {
 }
 
+MTPDeviceDelegateImplLinux::PendingTaskInfo::PendingTaskInfo(
+    const PendingTaskInfo& other) = default;
+
 MTPDeviceDelegateImplLinux::PendingTaskInfo::~PendingTaskInfo() {
 }
 
diff --git a/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.h b/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.h
index 4e971f59..2a46804 100644
--- a/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.h
+++ b/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.h
@@ -51,6 +51,7 @@
                     content::BrowserThread::ID thread_id,
                     const tracked_objects::Location& location,
                     const base::Closure& task);
+    PendingTaskInfo(const PendingTaskInfo& other);
     ~PendingTaskInfo();
 
     base::FilePath path;
diff --git a/chrome/browser/media_galleries/linux/snapshot_file_details.cc b/chrome/browser/media_galleries/linux/snapshot_file_details.cc
index 1058fd5..a596389a 100644
--- a/chrome/browser/media_galleries/linux/snapshot_file_details.cc
+++ b/chrome/browser/media_galleries/linux/snapshot_file_details.cc
@@ -23,6 +23,9 @@
       success_callback(success_callback),
       error_callback(error_callback) {}
 
+SnapshotRequestInfo::SnapshotRequestInfo(const SnapshotRequestInfo& other) =
+    default;
+
 SnapshotRequestInfo::~SnapshotRequestInfo() {
 }
 
diff --git a/chrome/browser/media_galleries/linux/snapshot_file_details.h b/chrome/browser/media_galleries/linux/snapshot_file_details.h
index cd07e69..e4a2c157 100644
--- a/chrome/browser/media_galleries/linux/snapshot_file_details.h
+++ b/chrome/browser/media_galleries/linux/snapshot_file_details.h
@@ -23,6 +23,7 @@
       const MTPDeviceAsyncDelegate::CreateSnapshotFileSuccessCallback&
           success_callback,
       const MTPDeviceAsyncDelegate::ErrorCallback& error_callback);
+  SnapshotRequestInfo(const SnapshotRequestInfo& other);
   ~SnapshotRequestInfo();
 
   // MTP device file id.
diff --git a/chrome/browser/media_galleries/media_file_system_registry.cc b/chrome/browser/media_galleries/media_file_system_registry.cc
index 6cc154de..c532bed 100644
--- a/chrome/browser/media_galleries/media_file_system_registry.cc
+++ b/chrome/browser/media_galleries/media_file_system_registry.cc
@@ -275,6 +275,8 @@
 }
 
 MediaFileSystemInfo::MediaFileSystemInfo() {}
+MediaFileSystemInfo::MediaFileSystemInfo(const MediaFileSystemInfo& other) =
+    default;
 MediaFileSystemInfo::~MediaFileSystemInfo() {}
 
 // The main owner of this class is
diff --git a/chrome/browser/media_galleries/media_file_system_registry.h b/chrome/browser/media_galleries/media_file_system_registry.h
index 7add9059..225d24d 100644
--- a/chrome/browser/media_galleries/media_file_system_registry.h
+++ b/chrome/browser/media_galleries/media_file_system_registry.h
@@ -53,6 +53,7 @@
                       bool removable,
                       bool media_device);
   MediaFileSystemInfo();
+  MediaFileSystemInfo(const MediaFileSystemInfo& other);
   ~MediaFileSystemInfo();
 
   base::string16 name;
diff --git a/chrome/browser/media_galleries/media_folder_finder.cc b/chrome/browser/media_galleries/media_folder_finder.cc
index 9193614..6abb669 100644
--- a/chrome/browser/media_galleries/media_folder_finder.cc
+++ b/chrome/browser/media_galleries/media_folder_finder.cc
@@ -171,6 +171,8 @@
 
 MediaFolderFinder::WorkerReply::WorkerReply() {}
 
+MediaFolderFinder::WorkerReply::WorkerReply(const WorkerReply& other) = default;
+
 MediaFolderFinder::WorkerReply::~WorkerReply() {}
 
 // The Worker is created on the UI thread, but does all its work on a blocking
diff --git a/chrome/browser/media_galleries/media_folder_finder.h b/chrome/browser/media_galleries/media_folder_finder.h
index 53e3978..3dffe6f 100644
--- a/chrome/browser/media_galleries/media_folder_finder.h
+++ b/chrome/browser/media_galleries/media_folder_finder.h
@@ -51,6 +51,7 @@
   class Worker;
   struct WorkerReply {
     WorkerReply();
+    WorkerReply(const WorkerReply& other);
     ~WorkerReply();
 
     MediaGalleryScanResult scan_result;
diff --git a/chrome/browser/media_galleries/media_galleries_preferences.cc b/chrome/browser/media_galleries/media_galleries_preferences.cc
index 13679e7..867f2631 100644
--- a/chrome/browser/media_galleries/media_galleries_preferences.cc
+++ b/chrome/browser/media_galleries/media_galleries_preferences.cc
@@ -379,6 +379,9 @@
       prefs_version(0) {
 }
 
+MediaGalleryPrefInfo::MediaGalleryPrefInfo(const MediaGalleryPrefInfo& other) =
+    default;
+
 MediaGalleryPrefInfo::~MediaGalleryPrefInfo() {}
 
 base::FilePath MediaGalleryPrefInfo::AbsolutePath() const {
diff --git a/chrome/browser/media_galleries/media_galleries_preferences.h b/chrome/browser/media_galleries/media_galleries_preferences.h
index 0524e41..12fe9224 100644
--- a/chrome/browser/media_galleries/media_galleries_preferences.h
+++ b/chrome/browser/media_galleries/media_galleries_preferences.h
@@ -66,6 +66,7 @@
   };
 
   MediaGalleryPrefInfo();
+  MediaGalleryPrefInfo(const MediaGalleryPrefInfo& other);
   ~MediaGalleryPrefInfo();
 
   // The absolute path of the gallery.
diff --git a/chrome/browser/media_galleries/media_scan_manager.cc b/chrome/browser/media_galleries/media_scan_manager.cc
index 0201cad8..93fffb45 100644
--- a/chrome/browser/media_galleries/media_scan_manager.cc
+++ b/chrome/browser/media_galleries/media_scan_manager.cc
@@ -463,6 +463,8 @@
 }
 
 MediaScanManager::ScanObservers::ScanObservers() : observer(NULL) {}
+MediaScanManager::ScanObservers::ScanObservers(const ScanObservers& other) =
+    default;
 MediaScanManager::ScanObservers::~ScanObservers() {}
 
 void MediaScanManager::OnExtensionUnloaded(
diff --git a/chrome/browser/media_galleries/media_scan_manager.h b/chrome/browser/media_galleries/media_scan_manager.h
index 51c717a..da0216a 100644
--- a/chrome/browser/media_galleries/media_scan_manager.h
+++ b/chrome/browser/media_galleries/media_scan_manager.h
@@ -69,6 +69,7 @@
  private:
   struct ScanObservers {
     ScanObservers();
+    ScanObservers(const ScanObservers& other);
     ~ScanObservers();
     MediaScanManagerObserver* observer;
     std::set<std::string /*extension id*/> scanning_extensions;
diff --git a/chrome/browser/memory/tab_stats.cc b/chrome/browser/memory/tab_stats.cc
index 2c2346f..df81a4e 100644
--- a/chrome/browser/memory/tab_stats.cc
+++ b/chrome/browser/memory/tab_stats.cc
@@ -25,6 +25,8 @@
       tab_contents_id(0) {
 }
 
+TabStats::TabStats(const TabStats& other) = default;
+
 TabStats::~TabStats() {
 }
 
diff --git a/chrome/browser/memory/tab_stats.h b/chrome/browser/memory/tab_stats.h
index 8c6b48a3..c68f6d06 100644
--- a/chrome/browser/memory/tab_stats.h
+++ b/chrome/browser/memory/tab_stats.h
@@ -22,6 +22,7 @@
 
 struct TabStats {
   TabStats();
+  TabStats(const TabStats& other);
   ~TabStats();
   bool is_app;            // Browser window is an app.
   bool is_internal_page;  // Internal page, such as NTP or Settings.
diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc
index 133a9e4d..26c484e 100644
--- a/chrome/browser/memory_details.cc
+++ b/chrome/browser/memory_details.cc
@@ -96,6 +96,9 @@
       renderer_type(RENDERER_UNKNOWN) {
 }
 
+ProcessMemoryInformation::ProcessMemoryInformation(
+    const ProcessMemoryInformation& other) = default;
+
 ProcessMemoryInformation::~ProcessMemoryInformation() {}
 
 bool ProcessMemoryInformation::operator<(
diff --git a/chrome/browser/memory_details.h b/chrome/browser/memory_details.h
index 21965f4..3412419 100644
--- a/chrome/browser/memory_details.h
+++ b/chrome/browser/memory_details.h
@@ -41,6 +41,7 @@
       RendererProcessType rtype);
 
   ProcessMemoryInformation();
+  ProcessMemoryInformation(const ProcessMemoryInformation& other);
   ~ProcessMemoryInformation();
 
   // Default ordering is by private memory consumption.
diff --git a/chrome/browser/net/url_info.cc b/chrome/browser/net/url_info.cc
index 5057a9f..bc1b04f 100644
--- a/chrome/browser/net/url_info.cc
+++ b/chrome/browser/net/url_info.cc
@@ -80,6 +80,8 @@
       was_linked_(false) {
 }
 
+UrlInfo::UrlInfo(const UrlInfo& other) = default;
+
 UrlInfo::~UrlInfo() {}
 
 bool UrlInfo::NeedsDnsUpdate() {
diff --git a/chrome/browser/net/url_info.h b/chrome/browser/net/url_info.h
index e5e9fb9..1f5a19c 100644
--- a/chrome/browser/net/url_info.h
+++ b/chrome/browser/net/url_info.h
@@ -75,6 +75,8 @@
   // initializing of the Predictor's map (of info for Hostnames).
   UrlInfo();
 
+  UrlInfo(const UrlInfo& other);
+
   ~UrlInfo();
 
   // NeedDnsUpdate decides, based on our internal info,
diff --git a/chrome/browser/performance_monitor/process_metrics_history.cc b/chrome/browser/performance_monitor/process_metrics_history.cc
index 8face97..3cd35ab 100644
--- a/chrome/browser/performance_monitor/process_metrics_history.cc
+++ b/chrome/browser/performance_monitor/process_metrics_history.cc
@@ -36,6 +36,9 @@
     : last_update_sequence_(0), cpu_usage_(0.0), trace_trigger_handle_(-1) {
 }
 
+ProcessMetricsHistory::ProcessMetricsHistory(
+    const ProcessMetricsHistory& other) = default;
+
 ProcessMetricsHistory::~ProcessMetricsHistory() {
 }
 
diff --git a/chrome/browser/performance_monitor/process_metrics_history.h b/chrome/browser/performance_monitor/process_metrics_history.h
index aa2c9d1f..99c25dd 100644
--- a/chrome/browser/performance_monitor/process_metrics_history.h
+++ b/chrome/browser/performance_monitor/process_metrics_history.h
@@ -38,6 +38,7 @@
 class ProcessMetricsHistory {
  public:
   ProcessMetricsHistory();
+  ProcessMetricsHistory(const ProcessMetricsHistory& other);
   ~ProcessMetricsHistory();
 
   // Configure this to monitor a specific process.
diff --git a/chrome/browser/plugins/chrome_plugin_service_filter.cc b/chrome/browser/plugins/chrome_plugin_service_filter.cc
index 38d87ec..bba8b48 100644
--- a/chrome/browser/plugins/chrome_plugin_service_filter.cc
+++ b/chrome/browser/plugins/chrome_plugin_service_filter.cc
@@ -462,6 +462,9 @@
 ChromePluginServiceFilter::ProcessDetails::ProcessDetails() {
 }
 
+ChromePluginServiceFilter::ProcessDetails::ProcessDetails(
+    const ProcessDetails& other) = default;
+
 ChromePluginServiceFilter::ProcessDetails::~ProcessDetails() {
 }
 
diff --git a/chrome/browser/plugins/chrome_plugin_service_filter.h b/chrome/browser/plugins/chrome_plugin_service_filter.h
index 2fa5a492ee..a90c94b 100644
--- a/chrome/browser/plugins/chrome_plugin_service_filter.h
+++ b/chrome/browser/plugins/chrome_plugin_service_filter.h
@@ -112,6 +112,7 @@
 
   struct ProcessDetails {
     ProcessDetails();
+    ProcessDetails(const ProcessDetails& other);
     ~ProcessDetails();
 
     std::vector<OverriddenPlugin> overridden_plugins;
diff --git a/chrome/browser/predictors/autocomplete_action_predictor.cc b/chrome/browser/predictors/autocomplete_action_predictor.cc
index dd799b9f..6e63728 100644
--- a/chrome/browser/predictors/autocomplete_action_predictor.cc
+++ b/chrome/browser/predictors/autocomplete_action_predictor.cc
@@ -592,6 +592,9 @@
 AutocompleteActionPredictor::TransitionalMatch::TransitionalMatch() {
 }
 
+AutocompleteActionPredictor::TransitionalMatch::TransitionalMatch(
+    const TransitionalMatch& other) = default;
+
 AutocompleteActionPredictor::TransitionalMatch::~TransitionalMatch() {
 }
 
diff --git a/chrome/browser/predictors/autocomplete_action_predictor.h b/chrome/browser/predictors/autocomplete_action_predictor.h
index 823fdb6..5362bba 100644
--- a/chrome/browser/predictors/autocomplete_action_predictor.h
+++ b/chrome/browser/predictors/autocomplete_action_predictor.h
@@ -124,6 +124,7 @@
 
   struct TransitionalMatch {
     TransitionalMatch();
+    TransitionalMatch(const TransitionalMatch& other);
     ~TransitionalMatch();
 
     base::string16 user_text;
diff --git a/chrome/browser/predictors/resource_prefetch_common.cc b/chrome/browser/predictors/resource_prefetch_common.cc
index d4e4ce6a..06119a0 100644
--- a/chrome/browser/predictors/resource_prefetch_common.cc
+++ b/chrome/browser/predictors/resource_prefetch_common.cc
@@ -203,6 +203,9 @@
       max_prefetches_inflight_per_host_per_navigation(3) {
 }
 
+ResourcePrefetchPredictorConfig::ResourcePrefetchPredictorConfig(
+    const ResourcePrefetchPredictorConfig& other) = default;
+
 ResourcePrefetchPredictorConfig::~ResourcePrefetchPredictorConfig() {
 }
 
diff --git a/chrome/browser/predictors/resource_prefetch_common.h b/chrome/browser/predictors/resource_prefetch_common.h
index 0521f6c2..aa03ee7 100644
--- a/chrome/browser/predictors/resource_prefetch_common.h
+++ b/chrome/browser/predictors/resource_prefetch_common.h
@@ -63,6 +63,7 @@
 struct ResourcePrefetchPredictorConfig {
   // Initializes the config with default values.
   ResourcePrefetchPredictorConfig();
+  ResourcePrefetchPredictorConfig(const ResourcePrefetchPredictorConfig& other);
   ~ResourcePrefetchPredictorConfig();
 
   // The mode the prefetcher is running in. Forms a bit map.
diff --git a/chrome/browser/prefs/session_startup_pref.cc b/chrome/browser/prefs/session_startup_pref.cc
index 17d0fbda..c3e6b79d 100644
--- a/chrome/browser/prefs/session_startup_pref.cc
+++ b/chrome/browser/prefs/session_startup_pref.cc
@@ -152,4 +152,7 @@
 
 SessionStartupPref::SessionStartupPref(Type type) : type(type) {}
 
+SessionStartupPref::SessionStartupPref(const SessionStartupPref& other) =
+    default;
+
 SessionStartupPref::~SessionStartupPref() {}
diff --git a/chrome/browser/prefs/session_startup_pref.h b/chrome/browser/prefs/session_startup_pref.h
index 1f764bf..b13f76d1 100644
--- a/chrome/browser/prefs/session_startup_pref.h
+++ b/chrome/browser/prefs/session_startup_pref.h
@@ -65,6 +65,8 @@
 
   explicit SessionStartupPref(Type type);
 
+  SessionStartupPref(const SessionStartupPref& other);
+
   ~SessionStartupPref();
 
   // What to do on startup.
diff --git a/chrome/browser/prerender/prerender_link_manager.cc b/chrome/browser/prerender/prerender_link_manager.cc
index 7c9e3d2..94ed907 100644
--- a/chrome/browser/prerender/prerender_link_manager.cc
+++ b/chrome/browser/prerender/prerender_link_manager.cc
@@ -275,6 +275,9 @@
       is_match_complete_replacement(false),
       has_been_abandoned(false) {}
 
+PrerenderLinkManager::LinkPrerender::LinkPrerender(const LinkPrerender& other) =
+    default;
+
 PrerenderLinkManager::LinkPrerender::~LinkPrerender() {
   DCHECK_EQ(static_cast<PrerenderHandle*>(NULL), handle)
       << "The PrerenderHandle should be destroyed before its Prerender.";
diff --git a/chrome/browser/prerender/prerender_link_manager.h b/chrome/browser/prerender/prerender_link_manager.h
index 449c542..b99b656c 100644
--- a/chrome/browser/prerender/prerender_link_manager.h
+++ b/chrome/browser/prerender/prerender_link_manager.h
@@ -85,6 +85,7 @@
                   int render_view_route_id,
                   base::TimeTicks creation_time,
                   PrerenderContents* deferred_launcher);
+    LinkPrerender(const LinkPrerender& other);
     ~LinkPrerender();
 
     // Parameters from PrerenderLinkManager::OnAddPrerender():
diff --git a/chrome/browser/printing/cloud_print/device_description.cc b/chrome/browser/printing/cloud_print/device_description.cc
index 1460e33..2eb96ba 100644
--- a/chrome/browser/printing/cloud_print/device_description.cc
+++ b/chrome/browser/printing/cloud_print/device_description.cc
@@ -52,6 +52,8 @@
   }
 }
 
+DeviceDescription::DeviceDescription(const DeviceDescription& other) = default;
+
 DeviceDescription::~DeviceDescription() {
 }
 
diff --git a/chrome/browser/printing/cloud_print/device_description.h b/chrome/browser/printing/cloud_print/device_description.h
index 87aa7a1..23ca4e9 100644
--- a/chrome/browser/printing/cloud_print/device_description.h
+++ b/chrome/browser/printing/cloud_print/device_description.h
@@ -20,6 +20,7 @@
   DeviceDescription();
   explicit DeviceDescription(
       const local_discovery::ServiceDescription& service_description);
+  DeviceDescription(const DeviceDescription& other);
   ~DeviceDescription();
 
   bool IsValid() const;
diff --git a/chrome/browser/profiles/avatar_menu.cc b/chrome/browser/profiles/avatar_menu.cc
index ca3c1fa..a507dc8f 100644
--- a/chrome/browser/profiles/avatar_menu.cc
+++ b/chrome/browser/profiles/avatar_menu.cc
@@ -87,6 +87,8 @@
       profile_index(profile_index) {
 }
 
+AvatarMenu::Item::Item(const Item& other) = default;
+
 AvatarMenu::Item::~Item() {
 }
 
diff --git a/chrome/browser/profiles/avatar_menu.h b/chrome/browser/profiles/avatar_menu.h
index f4d3bc3..47aea9c 100644
--- a/chrome/browser/profiles/avatar_menu.h
+++ b/chrome/browser/profiles/avatar_menu.h
@@ -48,6 +48,7 @@
   // Represents an item in the menu.
   struct Item {
     Item(size_t menu_index, size_t profile_index, const gfx::Image& icon);
+    Item(const Item& other);
     ~Item();
 
     // The icon to be displayed next to the item.
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor.cc b/chrome/browser/safe_browsing/browser_feature_extractor.cc
index 8a52576..27b880c7 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor.cc
+++ b/chrome/browser/safe_browsing/browser_feature_extractor.cc
@@ -71,6 +71,8 @@
         resource_type(resource_type) {
 }
 
+IPUrlInfo::IPUrlInfo(const IPUrlInfo& other) = default;
+
 IPUrlInfo::~IPUrlInfo() {}
 
 BrowseInfo::BrowseInfo() : http_status_code(0) {}
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor.h b/chrome/browser/safe_browsing/browser_feature_extractor.h
index 85756c3..bd44c43 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor.h
+++ b/chrome/browser/safe_browsing/browser_feature_extractor.h
@@ -53,6 +53,7 @@
             const std::string& method,
             const std::string& referrer,
             const content::ResourceType& resource_type);
+  IPUrlInfo(const IPUrlInfo& other);
   ~IPUrlInfo();
 };
 
diff --git a/chrome/browser/safe_browsing/local_database_manager.cc b/chrome/browser/safe_browsing/local_database_manager.cc
index 11a32ca..c49ed58 100644
--- a/chrome/browser/safe_browsing/local_database_manager.cc
+++ b/chrome/browser/safe_browsing/local_database_manager.cc
@@ -752,6 +752,9 @@
       start(start) {
 }
 
+LocalSafeBrowsingDatabaseManager::QueuedCheck::QueuedCheck(
+    const QueuedCheck& other) = default;
+
 LocalSafeBrowsingDatabaseManager::QueuedCheck::~QueuedCheck() {
 }
 
diff --git a/chrome/browser/safe_browsing/local_database_manager.h b/chrome/browser/safe_browsing/local_database_manager.h
index 4c9427aa..d5c06e5 100644
--- a/chrome/browser/safe_browsing/local_database_manager.h
+++ b/chrome/browser/safe_browsing/local_database_manager.h
@@ -170,6 +170,7 @@
                 const GURL& url,
                 const std::vector<SBThreatType>& expected_threats,
                 const base::TimeTicks& start);
+    QueuedCheck(const QueuedCheck& other);
     ~QueuedCheck();
     ListType check_type;
     Client* client;
diff --git a/chrome/browser/safe_browsing/protocol_manager.cc b/chrome/browser/safe_browsing/protocol_manager.cc
index 117222f..14560fb 100644
--- a/chrome/browser/safe_browsing/protocol_manager.cc
+++ b/chrome/browser/safe_browsing/protocol_manager.cc
@@ -800,6 +800,9 @@
     bool is_download)
     : callback(callback), is_download(is_download) {}
 
+SafeBrowsingProtocolManager::FullHashDetails::FullHashDetails(
+    const FullHashDetails& other) = default;
+
 SafeBrowsingProtocolManager::FullHashDetails::~FullHashDetails() {}
 
 SafeBrowsingProtocolManagerDelegate::~SafeBrowsingProtocolManagerDelegate() {}
diff --git a/chrome/browser/safe_browsing/protocol_manager.h b/chrome/browser/safe_browsing/protocol_manager.h
index 3f21eda..487cdf0 100644
--- a/chrome/browser/safe_browsing/protocol_manager.h
+++ b/chrome/browser/safe_browsing/protocol_manager.h
@@ -283,6 +283,7 @@
   struct FullHashDetails {
     FullHashDetails();
     FullHashDetails(FullHashCallback callback, bool is_download);
+    FullHashDetails(const FullHashDetails& other);
     ~FullHashDetails();
 
     FullHashCallback callback;
diff --git a/chrome/browser/safe_browsing/protocol_manager_helper.cc b/chrome/browser/safe_browsing/protocol_manager_helper.cc
index 8b67f54..0f27187 100644
--- a/chrome/browser/safe_browsing/protocol_manager_helper.cc
+++ b/chrome/browser/safe_browsing/protocol_manager_helper.cc
@@ -21,6 +21,9 @@
 SafeBrowsingProtocolConfig::SafeBrowsingProtocolConfig()
     : disable_auto_update(false) {}
 
+SafeBrowsingProtocolConfig::SafeBrowsingProtocolConfig(
+    const SafeBrowsingProtocolConfig& other) = default;
+
 SafeBrowsingProtocolConfig::~SafeBrowsingProtocolConfig() {}
 
 // static
diff --git a/chrome/browser/safe_browsing/protocol_manager_helper.h b/chrome/browser/safe_browsing/protocol_manager_helper.h
index 3af04bdd..bd46109 100644
--- a/chrome/browser/safe_browsing/protocol_manager_helper.h
+++ b/chrome/browser/safe_browsing/protocol_manager_helper.h
@@ -18,6 +18,7 @@
 
 struct SafeBrowsingProtocolConfig {
   SafeBrowsingProtocolConfig();
+  SafeBrowsingProtocolConfig(const SafeBrowsingProtocolConfig& other);
   ~SafeBrowsingProtocolConfig();
   std::string client_name;
   std::string url_prefix;
diff --git a/chrome/browser/safe_browsing/safe_browsing_util.cc b/chrome/browser/safe_browsing/safe_browsing_util.cc
index 5e0b9e0..2197eac 100644
--- a/chrome/browser/safe_browsing/safe_browsing_util.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_util.cc
@@ -131,6 +131,8 @@
 
 SBChunkDelete::SBChunkDelete() : is_sub_del(false) {}
 
+SBChunkDelete::SBChunkDelete(const SBChunkDelete& other) = default;
+
 SBChunkDelete::~SBChunkDelete() {}
 
 }  // namespace safe_browsing
diff --git a/chrome/browser/safe_browsing/safe_browsing_util.h b/chrome/browser/safe_browsing/safe_browsing_util.h
index c6014db..ae488bc 100644
--- a/chrome/browser/safe_browsing/safe_browsing_util.h
+++ b/chrome/browser/safe_browsing/safe_browsing_util.h
@@ -77,6 +77,7 @@
 // Container for deleting chunks from the database.
 struct SBChunkDelete {
   SBChunkDelete();
+  SBChunkDelete(const SBChunkDelete& other);
   ~SBChunkDelete();
 
   std::string list_name;
diff --git a/chrome/browser/safe_browsing/ui_manager.cc b/chrome/browser/safe_browsing/ui_manager.cc
index a484228..a8eda2d8 100644
--- a/chrome/browser/safe_browsing/ui_manager.cc
+++ b/chrome/browser/safe_browsing/ui_manager.cc
@@ -73,6 +73,9 @@
       render_frame_id(MSG_ROUTING_NONE),
       threat_source(safe_browsing::ThreatSource::UNKNOWN) {}
 
+SafeBrowsingUIManager::UnsafeResource::UnsafeResource(
+    const UnsafeResource& other) = default;
+
 SafeBrowsingUIManager::UnsafeResource::~UnsafeResource() { }
 
 bool SafeBrowsingUIManager::UnsafeResource::IsMainPageLoadBlocked() const {
diff --git a/chrome/browser/safe_browsing/ui_manager.h b/chrome/browser/safe_browsing/ui_manager.h
index 7932508..66a3b37e 100644
--- a/chrome/browser/safe_browsing/ui_manager.h
+++ b/chrome/browser/safe_browsing/ui_manager.h
@@ -50,6 +50,7 @@
   // interacting with the blocking page.
   struct UnsafeResource {
     UnsafeResource();
+    UnsafeResource(const UnsafeResource& other);
     ~UnsafeResource();
 
     // Returns true if this UnsafeResource is a main frame load that was blocked
diff --git a/chrome/browser/search/suggestions/image_fetcher_impl.cc b/chrome/browser/search/suggestions/image_fetcher_impl.cc
index 87a6950..d3176c27 100644
--- a/chrome/browser/search/suggestions/image_fetcher_impl.cc
+++ b/chrome/browser/search/suggestions/image_fetcher_impl.cc
@@ -23,6 +23,9 @@
 ImageFetcherImpl::ImageRequest::ImageRequest(chrome::BitmapFetcher* f)
     : fetcher(f) {}
 
+ImageFetcherImpl::ImageRequest::ImageRequest(const ImageRequest& other) =
+    default;
+
 ImageFetcherImpl::ImageRequest::~ImageRequest() { delete fetcher; }
 
 void ImageFetcherImpl::SetImageFetcherDelegate(ImageFetcherDelegate* delegate) {
diff --git a/chrome/browser/search/suggestions/image_fetcher_impl.h b/chrome/browser/search/suggestions/image_fetcher_impl.h
index 167865a0..f27ebaf1 100644
--- a/chrome/browser/search/suggestions/image_fetcher_impl.h
+++ b/chrome/browser/search/suggestions/image_fetcher_impl.h
@@ -50,6 +50,7 @@
     ImageRequest();
     // Struct takes ownership of |f|.
     explicit ImageRequest(chrome::BitmapFetcher* f);
+    ImageRequest(const ImageRequest& other);
     ~ImageRequest();
 
     void swap(ImageRequest* other) {
diff --git a/chrome/browser/site_details.cc b/chrome/browser/site_details.cc
index 4624ef5c..44ed5e9 100644
--- a/chrome/browser/site_details.cc
+++ b/chrome/browser/site_details.cc
@@ -84,14 +84,22 @@
 
 ScenarioBrowsingInstanceInfo::ScenarioBrowsingInstanceInfo() {}
 
+ScenarioBrowsingInstanceInfo::ScenarioBrowsingInstanceInfo(
+    const ScenarioBrowsingInstanceInfo& other) = default;
+
 ScenarioBrowsingInstanceInfo::~ScenarioBrowsingInstanceInfo() {}
 
 BrowsingInstanceInfo::BrowsingInstanceInfo() {}
 
+BrowsingInstanceInfo::BrowsingInstanceInfo(const BrowsingInstanceInfo& other) =
+    default;
+
 BrowsingInstanceInfo::~BrowsingInstanceInfo() {}
 
 IsolationScenario::IsolationScenario() {}
 
+IsolationScenario::IsolationScenario(const IsolationScenario& other) = default;
+
 IsolationScenario::~IsolationScenario() {}
 
 SiteData::SiteData() {
@@ -99,6 +107,8 @@
     scenarios[i].policy = static_cast<IsolationScenarioType>(i);
 }
 
+SiteData::SiteData(const SiteData& other) = default;
+
 SiteData::~SiteData() {}
 
 SiteDetails::SiteDetails() {}
diff --git a/chrome/browser/site_details.h b/chrome/browser/site_details.h
index 7f16421..f9201a59 100644
--- a/chrome/browser/site_details.h
+++ b/chrome/browser/site_details.h
@@ -17,6 +17,7 @@
 // isolation scenario.
 struct ScenarioBrowsingInstanceInfo {
   ScenarioBrowsingInstanceInfo();
+  ScenarioBrowsingInstanceInfo(const ScenarioBrowsingInstanceInfo& other);
   ~ScenarioBrowsingInstanceInfo();
 
   std::set<GURL> sites;
@@ -27,6 +28,7 @@
 // Collects metrics about an actual browsing instance in the current session.
 struct BrowsingInstanceInfo {
   BrowsingInstanceInfo();
+  BrowsingInstanceInfo(const BrowsingInstanceInfo& other);
   ~BrowsingInstanceInfo();
 
   std::set<content::SiteInstance*> site_instances;
@@ -49,6 +51,7 @@
 // process model. We have one of these per IsolationScenarioType.
 struct IsolationScenario {
   IsolationScenario();
+  IsolationScenario(const IsolationScenario& other);
   ~IsolationScenario();
 
   IsolationScenarioType policy = ISOLATE_NOTHING;
@@ -60,6 +63,7 @@
 // use in estimating the number of processes needed for various process models.
 struct SiteData {
   SiteData();
+  SiteData(const SiteData& other);
   ~SiteData();
 
   // One IsolationScenario object per IsolationScenarioType.
diff --git a/chrome/browser/speech/tts_controller.h b/chrome/browser/speech/tts_controller.h
index 6b005c4..087045d 100644
--- a/chrome/browser/speech/tts_controller.h
+++ b/chrome/browser/speech/tts_controller.h
@@ -62,6 +62,7 @@
 // Information about one voice.
 struct VoiceData {
   VoiceData();
+  VoiceData(const VoiceData& other);
   ~VoiceData();
 
   std::string name;
diff --git a/chrome/browser/speech/tts_controller_impl.cc b/chrome/browser/speech/tts_controller_impl.cc
index ebe36ed63..7b57c351 100644
--- a/chrome/browser/speech/tts_controller_impl.cc
+++ b/chrome/browser/speech/tts_controller_impl.cc
@@ -57,6 +57,8 @@
       remote(false),
       native(false) {}
 
+VoiceData::VoiceData(const VoiceData& other) = default;
+
 VoiceData::~VoiceData() {}
 
 
diff --git a/chrome/browser/spellchecker/misspelling.cc b/chrome/browser/spellchecker/misspelling.cc
index a540cc9..2e205e2 100644
--- a/chrome/browser/spellchecker/misspelling.cc
+++ b/chrome/browser/spellchecker/misspelling.cc
@@ -46,6 +46,8 @@
       hash(hash),
       timestamp(base::Time::Now()) {}
 
+Misspelling::Misspelling(const Misspelling& other) = default;
+
 Misspelling::~Misspelling() {}
 
 scoped_ptr<base::DictionaryValue> SerializeMisspelling(
diff --git a/chrome/browser/spellchecker/misspelling.h b/chrome/browser/spellchecker/misspelling.h
index 43b6474..b3650fe 100644
--- a/chrome/browser/spellchecker/misspelling.h
+++ b/chrome/browser/spellchecker/misspelling.h
@@ -39,6 +39,7 @@
               size_t length,
               const std::vector<base::string16>& suggestions,
               uint32_t hash);
+  Misspelling(const Misspelling& other);
   ~Misspelling();
 
   // A several-word text snippet that immediately surrounds the misspelling.
diff --git a/chrome/browser/supervised_user/child_accounts/family_info_fetcher.cc b/chrome/browser/supervised_user/child_accounts/family_info_fetcher.cc
index d5458069..79adcf03 100644
--- a/chrome/browser/supervised_user/child_accounts/family_info_fetcher.cc
+++ b/chrome/browser/supervised_user/child_accounts/family_info_fetcher.cc
@@ -72,6 +72,9 @@
       profile_image_url(profile_image_url) {
 }
 
+FamilyInfoFetcher::FamilyMember::FamilyMember(const FamilyMember& other) =
+    default;
+
 FamilyInfoFetcher::FamilyMember::~FamilyMember() {
 }
 
diff --git a/chrome/browser/supervised_user/child_accounts/family_info_fetcher.h b/chrome/browser/supervised_user/child_accounts/family_info_fetcher.h
index f9b6a7d..b904a03c 100644
--- a/chrome/browser/supervised_user/child_accounts/family_info_fetcher.h
+++ b/chrome/browser/supervised_user/child_accounts/family_info_fetcher.h
@@ -55,6 +55,7 @@
                  const std::string& email,
                  const std::string& profile_url,
                  const std::string& profile_image_url);
+    FamilyMember(const FamilyMember& other);
     ~FamilyMember();
     std::string obfuscated_gaia_id;
     FamilyMemberRole role;
diff --git a/chrome/browser/supervised_user/supervised_user_site_list.cc b/chrome/browser/supervised_user/supervised_user_site_list.cc
index 3789f9a..f7d1851 100644
--- a/chrome/browser/supervised_user/supervised_user_site_list.cc
+++ b/chrome/browser/supervised_user/supervised_user_site_list.cc
@@ -71,6 +71,9 @@
   std::copy(bytes.begin(), bytes.end(), bytes_.begin());
 }
 
+SupervisedUserSiteList::HostnameHash::HostnameHash(const HostnameHash& other) =
+    default;
+
 bool SupervisedUserSiteList::HostnameHash::operator==(
     const HostnameHash& rhs) const {
   return bytes_ == rhs.bytes_;
diff --git a/chrome/browser/supervised_user/supervised_user_site_list.h b/chrome/browser/supervised_user/supervised_user_site_list.h
index cb4317b9..8d2c6ead 100644
--- a/chrome/browser/supervised_user/supervised_user_site_list.h
+++ b/chrome/browser/supervised_user/supervised_user_site_list.h
@@ -46,6 +46,7 @@
     explicit HostnameHash(const std::string& hostname);
     // |bytes| must have a size of at least |base::kSHA1Length|.
     explicit HostnameHash(const std::vector<uint8_t>& bytes);
+    HostnameHash(const HostnameHash& other);
 
     bool operator==(const HostnameHash& rhs) const;
 
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_task_manager.cc b/chrome/browser/sync_file_system/drive_backend/sync_task_manager.cc
index 785f9a0..bfc46f4 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_task_manager.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_task_manager.cc
@@ -45,6 +45,8 @@
     const base::Closure& task, Priority pri, int seq)
     : task(task), priority(pri), seq(seq) {}
 
+SyncTaskManager::PendingTask::PendingTask(const PendingTask& other) = default;
+
 SyncTaskManager::PendingTask::~PendingTask() {}
 
 bool SyncTaskManager::PendingTaskComparator::operator()(
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_task_manager.h b/chrome/browser/sync_file_system/drive_backend/sync_task_manager.h
index 3388d759..7f226df 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_task_manager.h
+++ b/chrome/browser/sync_file_system/drive_backend/sync_task_manager.h
@@ -136,6 +136,7 @@
 
     PendingTask();
     PendingTask(const base::Closure& task, Priority pri, int seq);
+    PendingTask(const PendingTask& other);
     ~PendingTask();
   };
 
diff --git a/chrome/browser/sync_file_system/drive_backend/tracker_id_set.cc b/chrome/browser/sync_file_system/drive_backend/tracker_id_set.cc
index 0bb272d..53ea1c9 100644
--- a/chrome/browser/sync_file_system/drive_backend/tracker_id_set.cc
+++ b/chrome/browser/sync_file_system/drive_backend/tracker_id_set.cc
@@ -13,6 +13,8 @@
 
 TrackerIDSet::TrackerIDSet() : active_tracker_(0) {}
 
+TrackerIDSet::TrackerIDSet(const TrackerIDSet& other) = default;
+
 TrackerIDSet::~TrackerIDSet() {}
 
 void TrackerIDSet::Insert(const FileTracker& tracker) {
diff --git a/chrome/browser/sync_file_system/drive_backend/tracker_id_set.h b/chrome/browser/sync_file_system/drive_backend/tracker_id_set.h
index 15217d2..5b18b90c 100644
--- a/chrome/browser/sync_file_system/drive_backend/tracker_id_set.h
+++ b/chrome/browser/sync_file_system/drive_backend/tracker_id_set.h
@@ -23,6 +23,7 @@
   typedef RawTrackerIDSet::const_iterator const_iterator;
 
   TrackerIDSet();
+  TrackerIDSet(const TrackerIDSet& other);
   ~TrackerIDSet();
 
   bool has_active() const { return !!active_tracker_; }
diff --git a/chrome/browser/sync_file_system/file_change.cc b/chrome/browser/sync_file_system/file_change.cc
index e63d9a6..4ac5e70 100644
--- a/chrome/browser/sync_file_system/file_change.cc
+++ b/chrome/browser/sync_file_system/file_change.cc
@@ -42,6 +42,7 @@
 }
 
 FileChangeList::FileChangeList() {}
+FileChangeList::FileChangeList(const FileChangeList& other) = default;
 FileChangeList::~FileChangeList() {}
 
 void FileChangeList::Update(const FileChange& new_change) {
diff --git a/chrome/browser/sync_file_system/file_change.h b/chrome/browser/sync_file_system/file_change.h
index 826cf2ef..d0392ad0 100644
--- a/chrome/browser/sync_file_system/file_change.h
+++ b/chrome/browser/sync_file_system/file_change.h
@@ -52,6 +52,7 @@
   typedef std::deque<FileChange> List;
 
   FileChangeList();
+  FileChangeList(const FileChangeList& other);
   ~FileChangeList();
 
   // Updates the list with the |new_change|.
diff --git a/chrome/browser/sync_file_system/subtree_set.cc b/chrome/browser/sync_file_system/subtree_set.cc
index 344356e..6d135e59 100644
--- a/chrome/browser/sync_file_system/subtree_set.cc
+++ b/chrome/browser/sync_file_system/subtree_set.cc
@@ -22,6 +22,7 @@
 }
 
 SubtreeSet::SubtreeSet() {}
+SubtreeSet::SubtreeSet(const SubtreeSet& other) = default;
 SubtreeSet::~SubtreeSet() {}
 
 bool SubtreeSet::IsDisjointWith(const base::FilePath& subtree_root) const {
diff --git a/chrome/browser/sync_file_system/subtree_set.h b/chrome/browser/sync_file_system/subtree_set.h
index 9bd2961..40e232b2 100644
--- a/chrome/browser/sync_file_system/subtree_set.h
+++ b/chrome/browser/sync_file_system/subtree_set.h
@@ -20,6 +20,7 @@
 class SubtreeSet {
  public:
   SubtreeSet();
+  SubtreeSet(const SubtreeSet& other);
   ~SubtreeSet();
 
   // Returns true if the subtree induced by |subtree_root| is disjoint with
diff --git a/chrome/browser/sync_file_system/sync_file_metadata.cc b/chrome/browser/sync_file_system/sync_file_metadata.cc
index c5b267d8..fc50c9ea 100644
--- a/chrome/browser/sync_file_system/sync_file_metadata.cc
+++ b/chrome/browser/sync_file_system/sync_file_metadata.cc
@@ -27,6 +27,7 @@
 }
 
 LocalFileSyncInfo::LocalFileSyncInfo() {}
+LocalFileSyncInfo::LocalFileSyncInfo(const LocalFileSyncInfo& other) = default;
 LocalFileSyncInfo::~LocalFileSyncInfo() {}
 
 }  // namespace sync_file_system
diff --git a/chrome/browser/sync_file_system/sync_file_metadata.h b/chrome/browser/sync_file_system/sync_file_metadata.h
index d382183c..730d0b75 100644
--- a/chrome/browser/sync_file_system/sync_file_metadata.h
+++ b/chrome/browser/sync_file_system/sync_file_metadata.h
@@ -30,6 +30,7 @@
 
 struct LocalFileSyncInfo {
   LocalFileSyncInfo();
+  LocalFileSyncInfo(const LocalFileSyncInfo& other);
   ~LocalFileSyncInfo();
 
   storage::FileSystemURL url;
diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc
index 3cfb9955..dfc02b4 100644
--- a/chrome/browser/task_manager/task_manager.cc
+++ b/chrome/browser/task_manager/task_manager.cc
@@ -212,6 +212,9 @@
       v8_memory_allocated(0),
       v8_memory_used(0) {}
 
+TaskManagerModel::PerResourceValues::PerResourceValues(
+    const PerResourceValues& other) = default;
+
 TaskManagerModel::PerResourceValues::~PerResourceValues() {}
 
 TaskManagerModel::PerProcessValues::PerProcessValues()
@@ -236,6 +239,9 @@
       is_nacl_debug_stub_port_valid(false),
       nacl_debug_stub_port(0) {}
 
+TaskManagerModel::PerProcessValues::PerProcessValues(
+    const PerProcessValues& other) = default;
+
 TaskManagerModel::PerProcessValues::~PerProcessValues() {}
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/browser/task_manager/task_manager.h b/chrome/browser/task_manager/task_manager.h
index 5e4e1cc..6430e45 100644
--- a/chrome/browser/task_manager/task_manager.h
+++ b/chrome/browser/task_manager/task_manager.h
@@ -332,6 +332,7 @@
   // members indicate if a value is valid.
   struct PerResourceValues {
     PerResourceValues();
+    PerResourceValues(const PerResourceValues& other);
     ~PerResourceValues();
 
     bool is_title_valid;
@@ -361,6 +362,7 @@
   // members indicate if a value is valid.
   struct PerProcessValues {
     PerProcessValues();
+    PerProcessValues(const PerProcessValues& other);
     ~PerProcessValues();
 
     bool is_cpu_usage_valid;
diff --git a/chrome/browser/ui/app_list/app_list_prefs.cc b/chrome/browser/ui/app_list/app_list_prefs.cc
index e1eb0ea7..a4dac1a 100644
--- a/chrome/browser/ui/app_list/app_list_prefs.cc
+++ b/chrome/browser/ui/app_list/app_list_prefs.cc
@@ -27,6 +27,8 @@
 AppListPrefs::AppListInfo::AppListInfo() : item_type(ITEM_TYPE_INVALID) {
 }
 
+AppListPrefs::AppListInfo::AppListInfo(const AppListInfo& other) = default;
+
 AppListPrefs::AppListInfo::~AppListInfo() {
 }
 
diff --git a/chrome/browser/ui/app_list/app_list_prefs.h b/chrome/browser/ui/app_list/app_list_prefs.h
index ef6894d2..9f2a5a29 100644
--- a/chrome/browser/ui/app_list/app_list_prefs.h
+++ b/chrome/browser/ui/app_list/app_list_prefs.h
@@ -43,6 +43,7 @@
       ITEM_TYPE_END = FOLDER_ITEM,
     };
     AppListInfo();
+    AppListInfo(const AppListInfo& other);
     ~AppListInfo();
     scoped_ptr<base::DictionaryValue> CreateDictFromAppListInfo() const;
 
diff --git a/chrome/browser/ui/autofill/autofill_dialog_types.cc b/chrome/browser/ui/autofill/autofill_dialog_types.cc
index 51dc012b..084c989 100644
--- a/chrome/browser/ui/autofill/autofill_dialog_types.cc
+++ b/chrome/browser/ui/autofill/autofill_dialog_types.cc
@@ -42,6 +42,9 @@
   }
 }
 
+DialogNotification::DialogNotification(const DialogNotification& other) =
+    default;
+
 DialogNotification::~DialogNotification() {}
 
 SkColor DialogNotification::GetBackgroundColor() const {
@@ -123,6 +126,7 @@
       icon(icon),
       extra_text(extra_text),
       extra_icon(extra_icon) {}
+SuggestionState::SuggestionState(const SuggestionState& other) = default;
 SuggestionState::~SuggestionState() {}
 
 DialogOverlayString::DialogOverlayString() {}
@@ -137,6 +141,7 @@
 
 ValidityMessages::ValidityMessages()
     : default_message_(ValidityMessage(base::string16(), false)) {}
+ValidityMessages::ValidityMessages(const ValidityMessages& other) = default;
 ValidityMessages::~ValidityMessages() {}
 
 void ValidityMessages::Set(
diff --git a/chrome/browser/ui/autofill/autofill_dialog_types.h b/chrome/browser/ui/autofill/autofill_dialog_types.h
index 036c0c6d..7626a57 100644
--- a/chrome/browser/ui/autofill/autofill_dialog_types.h
+++ b/chrome/browser/ui/autofill/autofill_dialog_types.h
@@ -39,6 +39,7 @@
 
   DialogNotification();
   DialogNotification(Type type, const base::string16& display_text);
+  DialogNotification(const DialogNotification& other);
   ~DialogNotification();
 
   // Returns the appropriate background, border, or text color for the view's
@@ -99,6 +100,7 @@
                   const gfx::Image& icon,
                   const base::string16& extra_text,
                   const gfx::Image& extra_icon);
+  SuggestionState(const SuggestionState& other);
   ~SuggestionState();
 
   // Whether a suggestion should be shown.
@@ -167,6 +169,7 @@
 class ValidityMessages {
  public:
   ValidityMessages();
+  ValidityMessages(const ValidityMessages& other);
   ~ValidityMessages();
 
   // Sets the message for |field|, but will not overwrite a previous, invalid
diff --git a/chrome/browser/ui/blocked_content/blocked_window_params.cc b/chrome/browser/ui/blocked_content/blocked_window_params.cc
index 351a3698..819b075 100644
--- a/chrome/browser/ui/blocked_content/blocked_window_params.cc
+++ b/chrome/browser/ui/blocked_content/blocked_window_params.cc
@@ -31,6 +31,9 @@
       opener_render_frame_id_(opener_render_frame_id) {
 }
 
+BlockedWindowParams::BlockedWindowParams(const BlockedWindowParams& other) =
+    default;
+
 chrome::NavigateParams BlockedWindowParams::CreateNavigateParams(
     content::WebContents* web_contents) const {
   GURL popup_url(target_url_);
diff --git a/chrome/browser/ui/blocked_content/blocked_window_params.h b/chrome/browser/ui/blocked_content/blocked_window_params.h
index f759b628..058262d 100644
--- a/chrome/browser/ui/blocked_content/blocked_window_params.h
+++ b/chrome/browser/ui/blocked_content/blocked_window_params.h
@@ -25,6 +25,7 @@
                       bool opener_suppressed,
                       int render_process_id,
                       int opener_render_frame_id);
+  BlockedWindowParams(const BlockedWindowParams& other);
 
   chrome::NavigateParams CreateNavigateParams(
       content::WebContents* web_contents) const;
diff --git a/chrome/browser/ui/bookmarks/bookmark_editor.cc b/chrome/browser/ui/bookmarks/bookmark_editor.cc
index d79fe96..20840d67 100644
--- a/chrome/browser/ui/bookmarks/bookmark_editor.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_editor.cc
@@ -124,6 +124,8 @@
   return details;
 }
 
+BookmarkEditor::EditDetails::EditDetails(const EditDetails& other) = default;
+
 BookmarkEditor::EditDetails::~EditDetails() {}
 
 // static
diff --git a/chrome/browser/ui/bookmarks/bookmark_editor.h b/chrome/browser/ui/bookmarks/bookmark_editor.h
index 6e6366b..ef662ab 100644
--- a/chrome/browser/ui/bookmarks/bookmark_editor.h
+++ b/chrome/browser/ui/bookmarks/bookmark_editor.h
@@ -72,6 +72,7 @@
       NEW_FOLDER
     };
 
+    EditDetails(const EditDetails& other);
     ~EditDetails();
 
     // See description of enum value for details.
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 59da215..ca1fb51c 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -309,6 +309,8 @@
       is_session_restore(false),
       window(NULL) {}
 
+Browser::CreateParams::CreateParams(const CreateParams& other) = default;
+
 // static
 Browser::CreateParams Browser::CreateParams::CreateForApp(
     const std::string& app_name,
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 99fd162..1f11741 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -164,6 +164,7 @@
   struct CreateParams {
     explicit CreateParams(Profile* profile);
     CreateParams(Type type, Profile* profile);
+    CreateParams(const CreateParams& other);
 
     static CreateParams CreateForApp(const std::string& app_name,
                                      bool trusted_source,
diff --git a/chrome/browser/ui/browser_navigator_params.cc b/chrome/browser/ui/browser_navigator_params.cc
index 1319a0f..0e19598 100644
--- a/chrome/browser/ui/browser_navigator_params.cc
+++ b/chrome/browser/ui/browser_navigator_params.cc
@@ -130,6 +130,8 @@
       created_with_opener(false) {
 }
 
+NavigateParams::NavigateParams(const NavigateParams& other) = default;
+
 NavigateParams::~NavigateParams() {}
 
 void FillNavigateParamsFromOpenURLParams(NavigateParams* nav_params,
diff --git a/chrome/browser/ui/browser_navigator_params.h b/chrome/browser/ui/browser_navigator_params.h
index 9e338223..e9630fd 100644
--- a/chrome/browser/ui/browser_navigator_params.h
+++ b/chrome/browser/ui/browser_navigator_params.h
@@ -66,6 +66,7 @@
   NavigateParams(Profile* profile,
                  const GURL& a_url,
                  ui::PageTransition a_transition);
+  NavigateParams(const NavigateParams& other);
   ~NavigateParams();
 
   // The URL/referrer to be loaded. Ignored if |target_contents| is non-NULL.
diff --git a/chrome/browser/ui/content_settings/content_setting_bubble_model.cc b/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
index 4812960..ea733f8 100644
--- a/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
+++ b/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
@@ -1289,10 +1289,16 @@
 
 ContentSettingBubbleModel::DomainList::DomainList() {}
 
+ContentSettingBubbleModel::DomainList::DomainList(const DomainList& other) =
+    default;
+
 ContentSettingBubbleModel::DomainList::~DomainList() {}
 
 ContentSettingBubbleModel::MediaMenu::MediaMenu() : disabled(false) {}
 
+ContentSettingBubbleModel::MediaMenu::MediaMenu(const MediaMenu& other) =
+    default;
+
 ContentSettingBubbleModel::MediaMenu::~MediaMenu() {}
 
 ContentSettingBubbleModel::BubbleContent::BubbleContent()
diff --git a/chrome/browser/ui/content_settings/content_setting_bubble_model.h b/chrome/browser/ui/content_settings/content_setting_bubble_model.h
index 07b1aae..93c1d62 100644
--- a/chrome/browser/ui/content_settings/content_setting_bubble_model.h
+++ b/chrome/browser/ui/content_settings/content_setting_bubble_model.h
@@ -83,6 +83,7 @@
 
   struct DomainList {
     DomainList();
+    DomainList(const DomainList& other);
     ~DomainList();
 
     std::string title;
@@ -91,6 +92,7 @@
 
   struct MediaMenu {
     MediaMenu();
+    MediaMenu(const MediaMenu& other);
     ~MediaMenu();
 
     std::string label;
diff --git a/chrome/browser/ui/extensions/app_launch_params.cc b/chrome/browser/ui/extensions/app_launch_params.cc
index 80dab73..0abc0a4 100644
--- a/chrome/browser/ui/extensions/app_launch_params.cc
+++ b/chrome/browser/ui/extensions/app_launch_params.cc
@@ -77,5 +77,7 @@
   }
 }
 
+AppLaunchParams::AppLaunchParams(const AppLaunchParams& other) = default;
+
 AppLaunchParams::~AppLaunchParams() {
 }
diff --git a/chrome/browser/ui/extensions/app_launch_params.h b/chrome/browser/ui/extensions/app_launch_params.h
index 3b69479..c95cc5a1 100644
--- a/chrome/browser/ui/extensions/app_launch_params.h
+++ b/chrome/browser/ui/extensions/app_launch_params.h
@@ -46,6 +46,8 @@
                   chrome::HostDesktopType desktop_type,
                   extensions::AppLaunchSource source);
 
+  AppLaunchParams(const AppLaunchParams& other);
+
   ~AppLaunchParams();
 
   // The profile to load the application from.
diff --git a/chrome/browser/ui/views/autofill/autofill_dialog_views.cc b/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
index ddf5d9b..f7aaaa8 100644
--- a/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
+++ b/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
@@ -1909,6 +1909,9 @@
       suggested_info(NULL),
       suggested_button(NULL) {}
 
+AutofillDialogViews::DetailsGroup::DetailsGroup(const DetailsGroup& other) =
+    default;
+
 AutofillDialogViews::DetailsGroup::~DetailsGroup() {}
 
 }  // namespace autofill
diff --git a/chrome/browser/ui/views/autofill/autofill_dialog_views.h b/chrome/browser/ui/views/autofill/autofill_dialog_views.h
index b25b2604..b30fa9c0 100644
--- a/chrome/browser/ui/views/autofill/autofill_dialog_views.h
+++ b/chrome/browser/ui/views/autofill/autofill_dialog_views.h
@@ -336,6 +336,7 @@
   // section. None of the member pointers are owned.
   struct DetailsGroup {
     explicit DetailsGroup(DialogSection section);
+    DetailsGroup(const DetailsGroup& other);
     ~DetailsGroup();
 
     // The section this group is associated with.
diff --git a/chrome/browser/ui/views/tabs/tab_renderer_data.cc b/chrome/browser/ui/views/tabs/tab_renderer_data.cc
index 2976c2f..0617ecb 100644
--- a/chrome/browser/ui/views/tabs/tab_renderer_data.cc
+++ b/chrome/browser/ui/views/tabs/tab_renderer_data.cc
@@ -19,6 +19,8 @@
       media_state(TAB_MEDIA_STATE_NONE) {
 }
 
+TabRendererData::TabRendererData(const TabRendererData& other) = default;
+
 TabRendererData::~TabRendererData() {}
 
 bool TabRendererData::IsCrashed() const {
diff --git a/chrome/browser/ui/views/tabs/tab_renderer_data.h b/chrome/browser/ui/views/tabs/tab_renderer_data.h
index e16f61c..04b2665 100644
--- a/chrome/browser/ui/views/tabs/tab_renderer_data.h
+++ b/chrome/browser/ui/views/tabs/tab_renderer_data.h
@@ -23,6 +23,7 @@
   };
 
   TabRendererData();
+  TabRendererData(const TabRendererData& other);
   ~TabRendererData();
 
   // This interprets the crashed status to decide whether or not this
diff --git a/chrome/browser/ui/webui/browsing_history_handler.cc b/chrome/browser/ui/webui/browsing_history_handler.cc
index 520dad74..5046887 100644
--- a/chrome/browser/ui/webui/browsing_history_handler.cc
+++ b/chrome/browser/ui/webui/browsing_history_handler.cc
@@ -180,6 +180,9 @@
     : entry_type(EMPTY_ENTRY), is_search_result(false), blocked_visit(false) {
 }
 
+BrowsingHistoryHandler::HistoryEntry::HistoryEntry(const HistoryEntry& other) =
+    default;
+
 BrowsingHistoryHandler::HistoryEntry::~HistoryEntry() {
 }
 
diff --git a/chrome/browser/ui/webui/browsing_history_handler.h b/chrome/browser/ui/webui/browsing_history_handler.h
index fa64833f5..f94ef2f 100644
--- a/chrome/browser/ui/webui/browsing_history_handler.h
+++ b/chrome/browser/ui/webui/browsing_history_handler.h
@@ -58,6 +58,7 @@
                  bool is_search_result, const base::string16& snippet,
                  bool blocked_visit, const std::string& accept_languages);
     HistoryEntry();
+    HistoryEntry(const HistoryEntry& other);
     virtual ~HistoryEntry();
 
     // Formats this entry's URL and title and adds them to |result|.
diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui/favicon_source.cc
index 649526c..8fb8356e 100644
--- a/chrome/browser/ui/webui/favicon_source.cc
+++ b/chrome/browser/ui/webui/favicon_source.cc
@@ -42,6 +42,8 @@
       device_scale_factor(scale) {
 }
 
+FaviconSource::IconRequest::IconRequest(const IconRequest& other) = default;
+
 FaviconSource::IconRequest::~IconRequest() {
 }
 
diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/favicon_source.h
index 29234ce4..e876bda 100644
--- a/chrome/browser/ui/webui/favicon_source.h
+++ b/chrome/browser/ui/webui/favicon_source.h
@@ -88,6 +88,7 @@
                 const GURL& path,
                 int size,
                 float scale);
+    IconRequest(const IconRequest& other);
     ~IconRequest();
 
     content::URLDataSource::GotDataCallback callback;
diff --git a/chrome/browser/ui/webui/fileicon_source.cc b/chrome/browser/ui/webui/fileicon_source.cc
index c74cf7a..58ec0789 100644
--- a/chrome/browser/ui/webui/fileicon_source.cc
+++ b/chrome/browser/ui/webui/fileicon_source.cc
@@ -83,6 +83,9 @@
 FileIconSource::IconRequestDetails::IconRequestDetails() : scale_factor(1.0f) {
 }
 
+FileIconSource::IconRequestDetails::IconRequestDetails(
+    const IconRequestDetails& other) = default;
+
 FileIconSource::IconRequestDetails::~IconRequestDetails() {
 }
 
diff --git a/chrome/browser/ui/webui/fileicon_source.h b/chrome/browser/ui/webui/fileicon_source.h
index d9d1308..2ba9485 100644
--- a/chrome/browser/ui/webui/fileicon_source.h
+++ b/chrome/browser/ui/webui/fileicon_source.h
@@ -48,6 +48,7 @@
   // Contains the necessary information for completing an icon fetch request.
   struct IconRequestDetails {
     IconRequestDetails();
+    IconRequestDetails(const IconRequestDetails& other);
     ~IconRequestDetails();
 
     // The callback to run with the response.
diff --git a/chrome/browser/ui/webui/media_router/media_sink_with_cast_modes.cc b/chrome/browser/ui/webui/media_router/media_sink_with_cast_modes.cc
index d24e207f0..0c26af3 100644
--- a/chrome/browser/ui/webui/media_router/media_sink_with_cast_modes.cc
+++ b/chrome/browser/ui/webui/media_router/media_sink_with_cast_modes.cc
@@ -10,6 +10,9 @@
     : sink(sink) {
 }
 
+MediaSinkWithCastModes::MediaSinkWithCastModes(
+    const MediaSinkWithCastModes& other) = default;
+
 MediaSinkWithCastModes::~MediaSinkWithCastModes() {
 }
 
diff --git a/chrome/browser/ui/webui/media_router/media_sink_with_cast_modes.h b/chrome/browser/ui/webui/media_router/media_sink_with_cast_modes.h
index 48c651d..4393553ed 100644
--- a/chrome/browser/ui/webui/media_router/media_sink_with_cast_modes.h
+++ b/chrome/browser/ui/webui/media_router/media_sink_with_cast_modes.h
@@ -18,6 +18,7 @@
 // MediaSource.
 struct MediaSinkWithCastModes {
   explicit MediaSinkWithCastModes(const MediaSink& sink);
+  MediaSinkWithCastModes(const MediaSinkWithCastModes& other);
   ~MediaSinkWithCastModes();
 
   MediaSink sink;
diff --git a/chrome/browser/ui/webui/quota_internals/quota_internals_types.cc b/chrome/browser/ui/webui/quota_internals/quota_internals_types.cc
index ce8f752f..8b3cb513d 100644
--- a/chrome/browser/ui/webui/quota_internals/quota_internals_types.cc
+++ b/chrome/browser/ui/webui/quota_internals/quota_internals_types.cc
@@ -79,6 +79,9 @@
       used_count_(-1) {
 }
 
+PerOriginStorageInfo::PerOriginStorageInfo(const PerOriginStorageInfo& other) =
+    default;
+
 PerOriginStorageInfo::~PerOriginStorageInfo() {}
 
 base::Value* PerOriginStorageInfo::NewValue() const {
diff --git a/chrome/browser/ui/webui/quota_internals/quota_internals_types.h b/chrome/browser/ui/webui/quota_internals/quota_internals_types.h
index eeea477..53ea9dd7 100644
--- a/chrome/browser/ui/webui/quota_internals/quota_internals_types.h
+++ b/chrome/browser/ui/webui/quota_internals/quota_internals_types.h
@@ -70,6 +70,7 @@
 class PerOriginStorageInfo {
  public:
   PerOriginStorageInfo(const GURL& origin, storage::StorageType type);
+  PerOriginStorageInfo(const PerOriginStorageInfo& other);
   ~PerOriginStorageInfo();
 
   void set_in_use(bool in_use) {
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
index 37292035..5431a05 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
@@ -742,6 +742,9 @@
       auth_code(auth_code),
       choose_what_to_sync(choose_what_to_sync) {}
 
+InlineLoginHandlerImpl::FinishCompleteLoginParams::FinishCompleteLoginParams(
+    const FinishCompleteLoginParams& other) = default;
+
 InlineLoginHandlerImpl::
     FinishCompleteLoginParams::~FinishCompleteLoginParams() {}
 
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler_impl.h b/chrome/browser/ui/webui/signin/inline_login_handler_impl.h
index 3d0adfe..69b7b930 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.h
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.h
@@ -79,6 +79,7 @@
                               const std::string& session_index,
                               const std::string& auth_code,
                               bool choose_what_to_sync);
+    FinishCompleteLoginParams(const FinishCompleteLoginParams& other);
     ~FinishCompleteLoginParams();
 
     // Pointer to WebUI handler.  May be nullptr.
diff --git a/chrome/common/extensions/api/extension_action/action_info.cc b/chrome/common/extensions/api/extension_action/action_info.cc
index 9185d132..9e8d75a0 100644
--- a/chrome/common/extensions/api/extension_action/action_info.cc
+++ b/chrome/common/extensions/api/extension_action/action_info.cc
@@ -48,6 +48,8 @@
 ActionInfo::ActionInfo() {
 }
 
+ActionInfo::ActionInfo(const ActionInfo& other) = default;
+
 ActionInfo::~ActionInfo() {
 }
 
diff --git a/chrome/common/extensions/api/extension_action/action_info.h b/chrome/common/extensions/api/extension_action/action_info.h
index 09e497c..e014f31 100644
--- a/chrome/common/extensions/api/extension_action/action_info.h
+++ b/chrome/common/extensions/api/extension_action/action_info.h
@@ -22,6 +22,7 @@
 
 struct ActionInfo {
   ActionInfo();
+  ActionInfo(const ActionInfo& other);
   ~ActionInfo();
 
   // The types of extension actions.
diff --git a/chrome/common/extensions/api/input_ime/input_components_handler.cc b/chrome/common/extensions/api/input_ime/input_components_handler.cc
index 2ec0b5f..66b9b1f 100644
--- a/chrome/common/extensions/api/input_ime/input_components_handler.cc
+++ b/chrome/common/extensions/api/input_ime/input_components_handler.cc
@@ -29,6 +29,9 @@
       shortcut_shift(false) {
 }
 
+InputComponentInfo::InputComponentInfo(const InputComponentInfo& other) =
+    default;
+
 InputComponentInfo::~InputComponentInfo() {}
 
 InputComponents::InputComponents() {}
diff --git a/chrome/common/extensions/api/input_ime/input_components_handler.h b/chrome/common/extensions/api/input_ime/input_components_handler.h
index b6dba6b..8fa5df6 100644
--- a/chrome/common/extensions/api/input_ime/input_components_handler.h
+++ b/chrome/common/extensions/api/input_ime/input_components_handler.h
@@ -27,6 +27,7 @@
 struct InputComponentInfo {
   // Define out of line constructor/destructor to please Clang.
   InputComponentInfo();
+  InputComponentInfo(const InputComponentInfo& other);
   ~InputComponentInfo();
 
   std::string name;
diff --git a/chrome/common/extensions/api/notifications/notification_style.cc b/chrome/common/extensions/api/notifications/notification_style.cc
index 811d9a8..0c22881 100644
--- a/chrome/common/extensions/api/notifications/notification_style.cc
+++ b/chrome/common/extensions/api/notifications/notification_style.cc
@@ -8,6 +8,8 @@
 
 NotificationBitmapSizes::NotificationBitmapSizes() {
 }
+NotificationBitmapSizes::NotificationBitmapSizes(
+    const NotificationBitmapSizes& other) = default;
 NotificationBitmapSizes::~NotificationBitmapSizes() {
 }
 
diff --git a/chrome/common/extensions/api/notifications/notification_style.h b/chrome/common/extensions/api/notifications/notification_style.h
index 0cd36f3..b232a08 100644
--- a/chrome/common/extensions/api/notifications/notification_style.h
+++ b/chrome/common/extensions/api/notifications/notification_style.h
@@ -11,6 +11,7 @@
 // by the notification center within a notification.
 struct NotificationBitmapSizes {
   NotificationBitmapSizes();
+  NotificationBitmapSizes(const NotificationBitmapSizes& other);
   ~NotificationBitmapSizes();
 
   gfx::Size image_size;
diff --git a/chrome/common/extensions/api/speech/tts_engine_manifest_handler.cc b/chrome/common/extensions/api/speech/tts_engine_manifest_handler.cc
index 9f0ffa47..2ecb05c 100644
--- a/chrome/common/extensions/api/speech/tts_engine_manifest_handler.cc
+++ b/chrome/common/extensions/api/speech/tts_engine_manifest_handler.cc
@@ -33,6 +33,8 @@
 
 TtsVoice::TtsVoice() : remote(false) {}
 
+TtsVoice::TtsVoice(const TtsVoice& other) = default;
+
 TtsVoice::~TtsVoice() {}
 
 // static
diff --git a/chrome/common/extensions/api/speech/tts_engine_manifest_handler.h b/chrome/common/extensions/api/speech/tts_engine_manifest_handler.h
index 59108ca0..20b1b95 100644
--- a/chrome/common/extensions/api/speech/tts_engine_manifest_handler.h
+++ b/chrome/common/extensions/api/speech/tts_engine_manifest_handler.h
@@ -17,6 +17,7 @@
 
 struct TtsVoice {
   TtsVoice();
+  TtsVoice(const TtsVoice& other);
   ~TtsVoice();
 
   std::string voice_name;
diff --git a/chrome/common/extensions/command.cc b/chrome/common/extensions/command.cc
index 1615773..f2290dc 100644
--- a/chrome/common/extensions/command.cc
+++ b/chrome/common/extensions/command.cc
@@ -294,6 +294,8 @@
                            IsNamedCommand(command_name), &error);
 }
 
+Command::Command(const Command& other) = default;
+
 Command::~Command() {}
 
 // static
diff --git a/chrome/common/extensions/command.h b/chrome/common/extensions/command.h
index 7541cde..601c7ab 100644
--- a/chrome/common/extensions/command.h
+++ b/chrome/common/extensions/command.h
@@ -28,6 +28,7 @@
           const base::string16& description,
           const std::string& accelerator,
           bool global);
+  Command(const Command& other);
   ~Command();
 
   // The platform value for the Command.
diff --git a/chrome/common/extensions/manifest_handlers/linked_app_icons.cc b/chrome/common/extensions/manifest_handlers/linked_app_icons.cc
index 316cf606..8d486c78 100644
--- a/chrome/common/extensions/manifest_handlers/linked_app_icons.cc
+++ b/chrome/common/extensions/manifest_handlers/linked_app_icons.cc
@@ -37,6 +37,8 @@
 LinkedAppIcons::LinkedAppIcons() {
 }
 
+LinkedAppIcons::LinkedAppIcons(const LinkedAppIcons& other) = default;
+
 LinkedAppIcons::~LinkedAppIcons() {
 }
 
diff --git a/chrome/common/extensions/manifest_handlers/linked_app_icons.h b/chrome/common/extensions/manifest_handlers/linked_app_icons.h
index 426a0cb8..d421b2f 100644
--- a/chrome/common/extensions/manifest_handlers/linked_app_icons.h
+++ b/chrome/common/extensions/manifest_handlers/linked_app_icons.h
@@ -28,6 +28,7 @@
   };
 
   LinkedAppIcons();
+  LinkedAppIcons(const LinkedAppIcons& other);
   ~LinkedAppIcons() override;
 
   static const LinkedAppIcons& GetLinkedAppIcons(const Extension* extension);
diff --git a/chrome/common/extensions/permissions/chrome_permission_message_rules.cc b/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
index a6dd56a1..f6a9d014 100644
--- a/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
+++ b/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
@@ -294,6 +294,9 @@
   DCHECK(!required_permissions_.empty());
 }
 
+ChromePermissionMessageRule::ChromePermissionMessageRule(
+    const ChromePermissionMessageRule& other) = default;
+
 ChromePermissionMessageRule::~ChromePermissionMessageRule() {
 }
 
diff --git a/chrome/common/extensions/permissions/chrome_permission_message_rules.h b/chrome/common/extensions/permissions/chrome_permission_message_rules.h
index a2683ac..0256c07 100644
--- a/chrome/common/extensions/permissions/chrome_permission_message_rules.h
+++ b/chrome/common/extensions/permissions/chrome_permission_message_rules.h
@@ -54,6 +54,7 @@
 // provider class and remove ownership from ChromePermissionMessageRule.
 class ChromePermissionMessageRule {
  public:
+  ChromePermissionMessageRule(const ChromePermissionMessageRule& other);
   virtual ~ChromePermissionMessageRule();
 
   // Returns all the rules used to generate permission messages for Chrome apps
diff --git a/chrome/common/importer/imported_bookmark_entry.cc b/chrome/common/importer/imported_bookmark_entry.cc
index faa932c..a82e1cd 100644
--- a/chrome/common/importer/imported_bookmark_entry.cc
+++ b/chrome/common/importer/imported_bookmark_entry.cc
@@ -8,6 +8,9 @@
     : in_toolbar(false),
       is_folder(false) {}
 
+ImportedBookmarkEntry::ImportedBookmarkEntry(
+    const ImportedBookmarkEntry& other) = default;
+
 ImportedBookmarkEntry::~ImportedBookmarkEntry() {}
 
 bool ImportedBookmarkEntry::operator==(
diff --git a/chrome/common/importer/imported_bookmark_entry.h b/chrome/common/importer/imported_bookmark_entry.h
index 8f6f1ca..abb9ea0 100644
--- a/chrome/common/importer/imported_bookmark_entry.h
+++ b/chrome/common/importer/imported_bookmark_entry.h
@@ -13,6 +13,7 @@
 
 struct ImportedBookmarkEntry {
   ImportedBookmarkEntry();
+  ImportedBookmarkEntry(const ImportedBookmarkEntry& other);
   ~ImportedBookmarkEntry();
 
   bool operator==(const ImportedBookmarkEntry& other) const;
diff --git a/chrome/common/importer/importer_data_types.cc b/chrome/common/importer/importer_data_types.cc
index e2a4ab1..7a02114 100644
--- a/chrome/common/importer/importer_data_types.cc
+++ b/chrome/common/importer/importer_data_types.cc
@@ -12,6 +12,8 @@
       services_supported(0) {
 }
 
+SourceProfile::SourceProfile(const SourceProfile& other) = default;
+
 SourceProfile::~SourceProfile() {
 }
 
diff --git a/chrome/common/importer/importer_data_types.h b/chrome/common/importer/importer_data_types.h
index 73926fd1..be8163f0 100644
--- a/chrome/common/importer/importer_data_types.h
+++ b/chrome/common/importer/importer_data_types.h
@@ -37,6 +37,7 @@
 // Information about a profile needed by an importer to do import work.
 struct SourceProfile {
   SourceProfile();
+  SourceProfile(const SourceProfile& other);
   ~SourceProfile();
 
   base::string16 importer_name;
diff --git a/chrome/common/importer/importer_url_row.cc b/chrome/common/importer/importer_url_row.cc
index 429bfc18..26a3414 100644
--- a/chrome/common/importer/importer_url_row.cc
+++ b/chrome/common/importer/importer_url_row.cc
@@ -16,3 +16,6 @@
       typed_count(0),
       hidden(false) {
 }
+
+ImporterURLRow::ImporterURLRow(const ImporterURLRow& other) = default;
+
diff --git a/chrome/common/importer/importer_url_row.h b/chrome/common/importer/importer_url_row.h
index 857644a..f7e0a6d 100644
--- a/chrome/common/importer/importer_url_row.h
+++ b/chrome/common/importer/importer_url_row.h
@@ -16,6 +16,7 @@
  public:
   ImporterURLRow();
   explicit ImporterURLRow(const GURL& url);
+  ImporterURLRow(const ImporterURLRow& other);
 
   GURL url;
   base::string16 title;
diff --git a/chrome/common/instant_types.cc b/chrome/common/instant_types.cc
index 8645f6b..d28091a8 100644
--- a/chrome/common/instant_types.cc
+++ b/chrome/common/instant_types.cc
@@ -90,6 +90,9 @@
 
 InstantMostVisitedItem::InstantMostVisitedItem() {}
 
+InstantMostVisitedItem::InstantMostVisitedItem(
+    const InstantMostVisitedItem& other) = default;
+
 InstantMostVisitedItem::~InstantMostVisitedItem() {}
 
 EmbeddedSearchRequestParams::EmbeddedSearchRequestParams() {
diff --git a/chrome/common/instant_types.h b/chrome/common/instant_types.h
index 0658374..329cf3fe 100644
--- a/chrome/common/instant_types.h
+++ b/chrome/common/instant_types.h
@@ -125,6 +125,7 @@
 
 struct InstantMostVisitedItem {
   InstantMostVisitedItem();
+  InstantMostVisitedItem(const InstantMostVisitedItem& other);
   ~InstantMostVisitedItem();
 
   // The URL of the Most Visited item.
diff --git a/chrome/common/safe_browsing/zip_analyzer_results.cc b/chrome/common/safe_browsing/zip_analyzer_results.cc
index f0da179..ce3f9979 100644
--- a/chrome/common/safe_browsing/zip_analyzer_results.cc
+++ b/chrome/common/safe_browsing/zip_analyzer_results.cc
@@ -13,6 +13,8 @@
 Results::Results() : success(false), has_executable(false), has_archive(false) {
 }
 
+Results::Results(const Results& other) = default;
+
 Results::~Results() {
 }
 
diff --git a/chrome/common/safe_browsing/zip_analyzer_results.h b/chrome/common/safe_browsing/zip_analyzer_results.h
index 9a73960..7a506cf 100644
--- a/chrome/common/safe_browsing/zip_analyzer_results.h
+++ b/chrome/common/safe_browsing/zip_analyzer_results.h
@@ -24,6 +24,7 @@
       archived_binary;
   std::vector<base::FilePath> archived_archive_filenames;
   Results();
+  Results(const Results& other);
   ~Results();
 };
 
diff --git a/chrome/common/tts_utterance_request.cc b/chrome/common/tts_utterance_request.cc
index 23b5dce..67c8d918 100644
--- a/chrome/common/tts_utterance_request.cc
+++ b/chrome/common/tts_utterance_request.cc
@@ -19,5 +19,7 @@
       is_default(false) {
 }
 
+TtsVoice::TtsVoice(const TtsVoice& other) = default;
+
 TtsVoice::~TtsVoice() {
 }
diff --git a/chrome/common/tts_utterance_request.h b/chrome/common/tts_utterance_request.h
index 4e46ed7..e1c20de 100644
--- a/chrome/common/tts_utterance_request.h
+++ b/chrome/common/tts_utterance_request.h
@@ -24,6 +24,7 @@
 
 struct TtsVoice {
   TtsVoice();
+  TtsVoice(const TtsVoice& other);
   ~TtsVoice();
 
   std::string voice_uri;
diff --git a/chrome/common/web_application_info.cc b/chrome/common/web_application_info.cc
index 6cca5db..4a67945 100644
--- a/chrome/common/web_application_info.cc
+++ b/chrome/common/web_application_info.cc
@@ -16,5 +16,8 @@
       open_as_window(false) {
 }
 
+WebApplicationInfo::WebApplicationInfo(const WebApplicationInfo& other) =
+    default;
+
 WebApplicationInfo::~WebApplicationInfo() {
 }
diff --git a/chrome/common/web_application_info.h b/chrome/common/web_application_info.h
index 74a3a019..5fa31ef1 100644
--- a/chrome/common/web_application_info.h
+++ b/chrome/common/web_application_info.h
@@ -33,6 +33,7 @@
   };
 
   WebApplicationInfo();
+  WebApplicationInfo(const WebApplicationInfo& other);
   ~WebApplicationInfo();
 
   // Title of the application.
diff --git a/chrome/renderer/media/cast_rtp_stream.cc b/chrome/renderer/media/cast_rtp_stream.cc
index 9fe4f0a..d102407 100644
--- a/chrome/renderer/media/cast_rtp_stream.cc
+++ b/chrome/renderer/media/cast_rtp_stream.cc
@@ -512,10 +512,15 @@
       max_frame_rate(0.0) {
 }
 
+CastRtpPayloadParams::CastRtpPayloadParams(const CastRtpPayloadParams& other) =
+    default;
+
 CastRtpPayloadParams::~CastRtpPayloadParams() {}
 
 CastRtpParams::CastRtpParams() {}
 
+CastRtpParams::CastRtpParams(const CastRtpParams& other) = default;
+
 CastRtpParams::~CastRtpParams() {}
 
 CastRtpStream::CastRtpStream(const blink::WebMediaStreamTrack& track,
diff --git a/chrome/renderer/media/cast_rtp_stream.h b/chrome/renderer/media/cast_rtp_stream.h
index dd8c0c3..994898dd 100644
--- a/chrome/renderer/media/cast_rtp_stream.h
+++ b/chrome/renderer/media/cast_rtp_stream.h
@@ -86,6 +86,7 @@
   std::vector<CastCodecSpecificParams> codec_specific_params;
 
   CastRtpPayloadParams();
+  CastRtpPayloadParams(const CastRtpPayloadParams& other);
   ~CastRtpPayloadParams();
 };
 
@@ -100,6 +101,7 @@
   std::vector<std::string> rtcp_features;
 
   CastRtpParams();
+  CastRtpParams(const CastRtpParams& other);
   ~CastRtpParams();
 };
 
diff --git a/chrome/renderer/media/cast_transport_sender_ipc.cc b/chrome/renderer/media/cast_transport_sender_ipc.cc
index da614b8..03f3ca8 100644
--- a/chrome/renderer/media/cast_transport_sender_ipc.cc
+++ b/chrome/renderer/media/cast_transport_sender_ipc.cc
@@ -14,6 +14,8 @@
 #include "media/cast/cast_sender.h"
 
 CastTransportSenderIPC::ClientCallbacks::ClientCallbacks() {}
+CastTransportSenderIPC::ClientCallbacks::ClientCallbacks(
+    const ClientCallbacks& other) = default;
 CastTransportSenderIPC::ClientCallbacks::~ClientCallbacks() {}
 
 CastTransportSenderIPC::CastTransportSenderIPC(
diff --git a/chrome/renderer/media/cast_transport_sender_ipc.h b/chrome/renderer/media/cast_transport_sender_ipc.h
index 2903d31..d8bcc11 100644
--- a/chrome/renderer/media/cast_transport_sender_ipc.h
+++ b/chrome/renderer/media/cast_transport_sender_ipc.h
@@ -76,6 +76,7 @@
  private:
   struct ClientCallbacks {
     ClientCallbacks();
+    ClientCallbacks(const ClientCallbacks& other);
     ~ClientCallbacks();
 
     media::cast::RtcpCastMessageCallback cast_message_cb;
diff --git a/chrome/renderer/plugins/power_saver_info.cc b/chrome/renderer/plugins/power_saver_info.cc
index 199b66a..c54ed8ca 100644
--- a/chrome/renderer/plugins/power_saver_info.cc
+++ b/chrome/renderer/plugins/power_saver_info.cc
@@ -73,6 +73,8 @@
 PowerSaverInfo::PowerSaverInfo()
     : power_saver_enabled(false), blocked_for_background_tab(false) {}
 
+PowerSaverInfo::PowerSaverInfo(const PowerSaverInfo& other) = default;
+
 PowerSaverInfo PowerSaverInfo::Get(content::RenderFrame* render_frame,
                                    bool power_saver_setting_on,
                                    const blink::WebPluginParams& params,
diff --git a/chrome/renderer/plugins/power_saver_info.h b/chrome/renderer/plugins/power_saver_info.h
index 7da43e69..ec1c5de 100644
--- a/chrome/renderer/plugins/power_saver_info.h
+++ b/chrome/renderer/plugins/power_saver_info.h
@@ -23,6 +23,7 @@
 // The default constructor has Plugin Power Saver disabled.
 struct PowerSaverInfo {
   PowerSaverInfo();
+  PowerSaverInfo(const PowerSaverInfo& other);
 
   // Determines the PowerSaverInfo using the peripheral content heuristic.
   static PowerSaverInfo Get(content::RenderFrame* render_frame,
diff --git a/chrome/service/cloud_print/printer_job_handler.cc b/chrome/service/cloud_print/printer_job_handler.cc
index a720d5e..8aa85e2 100644
--- a/chrome/service/cloud_print/printer_job_handler.cc
+++ b/chrome/service/cloud_print/printer_job_handler.cc
@@ -61,6 +61,9 @@
     : current_xmpp_timeout(0), pending_xmpp_timeout(0) {
 }
 
+PrinterJobHandler::PrinterInfoFromCloud::PrinterInfoFromCloud(
+    const PrinterInfoFromCloud& other) = default;
+
 PrinterJobHandler::PrinterJobHandler(
     const printing::PrinterBasicInfo& printer_info,
     const PrinterInfoFromCloud& printer_info_cloud,
diff --git a/chrome/service/cloud_print/printer_job_handler.h b/chrome/service/cloud_print/printer_job_handler.h
index 55b8085..1b5f4186 100644
--- a/chrome/service/cloud_print/printer_job_handler.h
+++ b/chrome/service/cloud_print/printer_job_handler.h
@@ -90,6 +90,7 @@
     int pending_xmpp_timeout;
 
     PrinterInfoFromCloud();
+    PrinterInfoFromCloud(const PrinterInfoFromCloud& other);
   };
 
   // Begin public interface
diff --git a/chrome/service/cloud_print/printer_job_queue_handler.cc b/chrome/service/cloud_print/printer_job_queue_handler.cc
index 93bc2169..f25b8a1a 100644
--- a/chrome/service/cloud_print/printer_job_queue_handler.cc
+++ b/chrome/service/cloud_print/printer_job_queue_handler.cc
@@ -25,6 +25,8 @@
 
 JobDetails::JobDetails() {}
 
+JobDetails::JobDetails(const JobDetails& other) = default;
+
 JobDetails::~JobDetails() {}
 
 void JobDetails::Clear() {
diff --git a/chrome/service/cloud_print/printer_job_queue_handler.h b/chrome/service/cloud_print/printer_job_queue_handler.h
index 9856ebf..dfb0d74 100644
--- a/chrome/service/cloud_print/printer_job_queue_handler.h
+++ b/chrome/service/cloud_print/printer_job_queue_handler.h
@@ -26,6 +26,7 @@
 
 struct JobDetails {
   JobDetails();
+  JobDetails(const JobDetails& other);
   ~JobDetails();
   void Clear();
   static bool ordering(const JobDetails& first, const JobDetails& second);
diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc
index 3e0edd1..c96fbf1 100644
--- a/chrome/test/chromedriver/capabilities.cc
+++ b/chrome/test/chromedriver/capabilities.cc
@@ -467,6 +467,8 @@
 
 Switches::Switches() {}
 
+Switches::Switches(const Switches& other) = default;
+
 Switches::~Switches() {}
 
 void Switches::SetSwitch(const std::string& name) {
diff --git a/chrome/test/chromedriver/capabilities.h b/chrome/test/chromedriver/capabilities.h
index 6c24c97..653d561 100644
--- a/chrome/test/chromedriver/capabilities.h
+++ b/chrome/test/chromedriver/capabilities.h
@@ -32,6 +32,7 @@
  public:
   typedef base::FilePath::StringType NativeString;
   Switches();
+  Switches(const Switches& other);
   ~Switches();
 
   void SetSwitch(const std::string& name);
diff --git a/chrome/test/chromedriver/chrome/devtools_http_client.cc b/chrome/test/chromedriver/chrome/devtools_http_client.cc
index 7032cf96..0dace923 100644
--- a/chrome/test/chromedriver/chrome/devtools_http_client.cc
+++ b/chrome/test/chromedriver/chrome/devtools_http_client.cc
@@ -27,6 +27,8 @@
                          Type type)
     : id(id), debugger_url(debugger_url), url(url), type(type) {}
 
+WebViewInfo::WebViewInfo(const WebViewInfo& other) = default;
+
 WebViewInfo::~WebViewInfo() {}
 
 bool WebViewInfo::IsFrontend() const {
diff --git a/chrome/test/chromedriver/chrome/devtools_http_client.h b/chrome/test/chromedriver/chrome/devtools_http_client.h
index 6f7cbdfa..91209ee 100644
--- a/chrome/test/chromedriver/chrome/devtools_http_client.h
+++ b/chrome/test/chromedriver/chrome/devtools_http_client.h
@@ -43,6 +43,7 @@
               const std::string& debugger_url,
               const std::string& url,
               Type type);
+  WebViewInfo(const WebViewInfo& other);
   ~WebViewInfo();
 
   bool IsFrontend() const;
diff --git a/chrome/test/chromedriver/server/http_handler.cc b/chrome/test/chromedriver/server/http_handler.cc
index d8ea8bf..119efa5 100644
--- a/chrome/test/chromedriver/server/http_handler.cc
+++ b/chrome/test/chromedriver/server/http_handler.cc
@@ -61,6 +61,8 @@
                                const Command& command)
     : method(method), path_pattern(path_pattern), command(command) {}
 
+CommandMapping::CommandMapping(const CommandMapping& other) = default;
+
 CommandMapping::~CommandMapping() {}
 
 HttpHandler::HttpHandler(const std::string& url_base)
diff --git a/chrome/test/chromedriver/server/http_handler.h b/chrome/test/chromedriver/server/http_handler.h
index 6123cde9..cfe493d 100644
--- a/chrome/test/chromedriver/server/http_handler.h
+++ b/chrome/test/chromedriver/server/http_handler.h
@@ -50,6 +50,7 @@
   CommandMapping(HttpMethod method,
                  const std::string& path_pattern,
                  const Command& command);
+  CommandMapping(const CommandMapping& other);
   ~CommandMapping();
 
   HttpMethod method;
diff --git a/chrome/test/chromedriver/session_commands.cc b/chrome/test/chromedriver/session_commands.cc
index c47ef72..92e0477 100644
--- a/chrome/test/chromedriver/session_commands.cc
+++ b/chrome/test/chromedriver/session_commands.cc
@@ -67,6 +67,8 @@
       port_server(port_server),
       port_manager(port_manager) {}
 
+InitSessionParams::InitSessionParams(const InitSessionParams& other) = default;
+
 InitSessionParams::~InitSessionParams() {}
 
 namespace {
diff --git a/chrome/test/chromedriver/session_commands.h b/chrome/test/chromedriver/session_commands.h
index 204e3ee..5c944c8 100644
--- a/chrome/test/chromedriver/session_commands.h
+++ b/chrome/test/chromedriver/session_commands.h
@@ -30,6 +30,7 @@
                     DeviceManager* device_manager,
                     PortServer* port_server,
                     PortManager* port_manager);
+  InitSessionParams(const InitSessionParams& other);
   ~InitSessionParams();
 
   scoped_refptr<URLRequestContextGetter> context_getter;
diff --git a/chrome/utility/media_galleries/ipc_data_source.cc b/chrome/utility/media_galleries/ipc_data_source.cc
index fb7ffa5..6d99fe95 100644
--- a/chrome/utility/media_galleries/ipc_data_source.cc
+++ b/chrome/utility/media_galleries/ipc_data_source.cc
@@ -66,6 +66,8 @@
     : destination(NULL) {
 }
 
+IPCDataSource::Request::Request(const Request& other) = default;
+
 IPCDataSource::Request::~Request() {
 }
 
diff --git a/chrome/utility/media_galleries/ipc_data_source.h b/chrome/utility/media_galleries/ipc_data_source.h
index ff00484..a6aac61 100644
--- a/chrome/utility/media_galleries/ipc_data_source.h
+++ b/chrome/utility/media_galleries/ipc_data_source.h
@@ -50,6 +50,7 @@
  private:
   struct Request {
     Request();
+    Request(const Request& other);
     ~Request();
     uint8_t* destination;
     ReadCB callback;