components: 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], [email protected]
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#377717}
diff --git a/components/autofill/content/renderer/password_generation_agent.cc b/components/autofill/content/renderer/password_generation_agent.cc
index c161dbc..1cbd613 100644
--- a/components/autofill/content/renderer/password_generation_agent.cc
+++ b/components/autofill/content/renderer/password_generation_agent.cc
@@ -113,6 +113,9 @@
     : form(password_form),
       password_elements(passwords) {}
 
+PasswordGenerationAgent::AccountCreationFormData::AccountCreationFormData(
+    const AccountCreationFormData& other) = default;
+
 PasswordGenerationAgent::AccountCreationFormData::~AccountCreationFormData() {}
 
 PasswordGenerationAgent::PasswordGenerationAgent(
diff --git a/components/autofill/content/renderer/password_generation_agent.h b/components/autofill/content/renderer/password_generation_agent.h
index e2a239f..8fc6346 100644
--- a/components/autofill/content/renderer/password_generation_agent.h
+++ b/components/autofill/content/renderer/password_generation_agent.h
@@ -70,6 +70,7 @@
     AccountCreationFormData(
         linked_ptr<PasswordForm> form,
         std::vector<blink::WebInputElement> password_elements);
+    AccountCreationFormData(const AccountCreationFormData& other);
     ~AccountCreationFormData();
   };
 
diff --git a/components/autofill/core/browser/card_unmask_delegate.cc b/components/autofill/core/browser/card_unmask_delegate.cc
index cb785d4..f22bbb1 100644
--- a/components/autofill/core/browser/card_unmask_delegate.cc
+++ b/components/autofill/core/browser/card_unmask_delegate.cc
@@ -9,6 +9,9 @@
 CardUnmaskDelegate::UnmaskResponse::UnmaskResponse()
     : should_store_pan(false) {}
 
+CardUnmaskDelegate::UnmaskResponse::UnmaskResponse(
+    const UnmaskResponse& other) = default;
+
 CardUnmaskDelegate::UnmaskResponse::~UnmaskResponse() {}
 
 }  // namespace autofill
diff --git a/components/autofill/core/browser/card_unmask_delegate.h b/components/autofill/core/browser/card_unmask_delegate.h
index 26103e0..232a348 100644
--- a/components/autofill/core/browser/card_unmask_delegate.h
+++ b/components/autofill/core/browser/card_unmask_delegate.h
@@ -15,6 +15,7 @@
  public:
   struct UnmaskResponse {
     UnmaskResponse();
+    UnmaskResponse(const UnmaskResponse& other);
     ~UnmaskResponse();
 
     // User input data.
diff --git a/components/autofill/core/browser/legal_message_line.cc b/components/autofill/core/browser/legal_message_line.cc
index 1a06b5e..71bf0aa 100644
--- a/components/autofill/core/browser/legal_message_line.cc
+++ b/components/autofill/core/browser/legal_message_line.cc
@@ -73,6 +73,8 @@
 
 LegalMessageLine::LegalMessageLine() {}
 
+LegalMessageLine::LegalMessageLine(const LegalMessageLine& other) = default;
+
 LegalMessageLine::~LegalMessageLine() {}
 
 // static
diff --git a/components/autofill/core/browser/legal_message_line.h b/components/autofill/core/browser/legal_message_line.h
index 9931486..550831e 100644
--- a/components/autofill/core/browser/legal_message_line.h
+++ b/components/autofill/core/browser/legal_message_line.h
@@ -36,6 +36,7 @@
   };
 
   LegalMessageLine();
+  LegalMessageLine(const LegalMessageLine& other);
   virtual ~LegalMessageLine();  // Overridden in TestLegalMessageLine.
 
   // Parses |legal_message|. Returns false on failure.
diff --git a/components/autofill/core/browser/payments/payments_client.cc b/components/autofill/core/browser/payments/payments_client.cc
index c938fb1..24c92075 100644
--- a/components/autofill/core/browser/payments/payments_client.cc
+++ b/components/autofill/core/browser/payments/payments_client.cc
@@ -350,6 +350,8 @@
 PaymentsClient::UnmaskRequestDetails::~UnmaskRequestDetails() {}
 
 PaymentsClient::UploadRequestDetails::UploadRequestDetails() {}
+PaymentsClient::UploadRequestDetails::UploadRequestDetails(
+    const UploadRequestDetails& other) = default;
 PaymentsClient::UploadRequestDetails::~UploadRequestDetails() {}
 
 PaymentsClient::PaymentsClient(net::URLRequestContextGetter* context_getter,
diff --git a/components/autofill/core/browser/payments/payments_client.h b/components/autofill/core/browser/payments/payments_client.h
index b83c8af..0284f8fa 100644
--- a/components/autofill/core/browser/payments/payments_client.h
+++ b/components/autofill/core/browser/payments/payments_client.h
@@ -73,6 +73,7 @@
   // request.
   struct UploadRequestDetails {
     UploadRequestDetails();
+    UploadRequestDetails(const UploadRequestDetails& other);
     ~UploadRequestDetails();
 
     CreditCard card;
diff --git a/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc b/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc
index ef74148..459d9813 100644
--- a/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc
+++ b/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc
@@ -647,6 +647,9 @@
 
 AutofillProfileSyncableService::DataBundle::DataBundle() {}
 
+AutofillProfileSyncableService::DataBundle::DataBundle(
+    const DataBundle& other) = default;
+
 AutofillProfileSyncableService::DataBundle::~DataBundle() {}
 
 }  // namespace autofill
diff --git a/components/autofill/core/browser/webdata/autofill_profile_syncable_service.h b/components/autofill/core/browser/webdata/autofill_profile_syncable_service.h
index 757ff7f..f67f6613 100644
--- a/components/autofill/core/browser/webdata/autofill_profile_syncable_service.h
+++ b/components/autofill/core/browser/webdata/autofill_profile_syncable_service.h
@@ -192,6 +192,7 @@
 // This object is used in unit tests as well, so it defined here.
 struct AutofillProfileSyncableService::DataBundle {
   DataBundle();
+  DataBundle(const DataBundle& other);
   ~DataBundle();
 
   std::vector<std::string> profiles_to_delete;
diff --git a/components/autofill/core/common/form_field_data.cc b/components/autofill/core/common/form_field_data.cc
index 9d3bc93..bd29ad6 100644
--- a/components/autofill/core/common/form_field_data.cc
+++ b/components/autofill/core/common/form_field_data.cc
@@ -90,6 +90,8 @@
       text_direction(base::i18n::UNKNOWN_DIRECTION) {
 }
 
+FormFieldData::FormFieldData(const FormFieldData& other) = default;
+
 FormFieldData::~FormFieldData() {
 }
 
diff --git a/components/autofill/core/common/form_field_data.h b/components/autofill/core/common/form_field_data.h
index 0fa3a25a5..dac7244 100644
--- a/components/autofill/core/common/form_field_data.h
+++ b/components/autofill/core/common/form_field_data.h
@@ -30,6 +30,7 @@
   };
 
   FormFieldData();
+  FormFieldData(const FormFieldData& other);
   ~FormFieldData();
 
   // Returns true if two form fields are the same, not counting the value.
diff --git a/components/autofill/core/common/password_form.cc b/components/autofill/core/common/password_form.cc
index 5f8cbbf..4103b68 100644
--- a/components/autofill/core/common/password_form.cc
+++ b/components/autofill/core/common/password_form.cc
@@ -86,6 +86,8 @@
       is_public_suffix_match(false),
       is_affiliation_based_match(false) {}
 
+PasswordForm::PasswordForm(const PasswordForm& other) = default;
+
 PasswordForm::~PasswordForm() {
 }
 
diff --git a/components/autofill/core/common/password_form.h b/components/autofill/core/common/password_form.h
index 5f34a67..b86ec810 100644
--- a/components/autofill/core/common/password_form.h
+++ b/components/autofill/core/common/password_form.h
@@ -280,6 +280,7 @@
   bool operator!=(const PasswordForm& form) const;
 
   PasswordForm();
+  PasswordForm(const PasswordForm& other);
   ~PasswordForm();
 };
 
diff --git a/components/autofill/core/common/password_form_fill_data.cc b/components/autofill/core/common/password_form_fill_data.cc
index fd04bf7..3ffa181 100644
--- a/components/autofill/core/common/password_form_fill_data.cc
+++ b/components/autofill/core/common/password_form_fill_data.cc
@@ -26,6 +26,9 @@
       is_possible_change_password_form(false) {
 }
 
+PasswordFormFillData::PasswordFormFillData(const PasswordFormFillData& other) =
+    default;
+
 PasswordFormFillData::~PasswordFormFillData() {
 }
 
diff --git a/components/autofill/core/common/password_form_fill_data.h b/components/autofill/core/common/password_form_fill_data.h
index 19a9a7ca..dbe90a1 100644
--- a/components/autofill/core/common/password_form_fill_data.h
+++ b/components/autofill/core/common/password_form_fill_data.h
@@ -77,6 +77,7 @@
   bool is_possible_change_password_form;
 
   PasswordFormFillData();
+  PasswordFormFillData(const PasswordFormFillData& other);
   ~PasswordFormFillData();
 };
 
diff --git a/components/bookmarks/browser/bookmark_match.cc b/components/bookmarks/browser/bookmark_match.cc
index a97b449..f813cbb 100644
--- a/components/bookmarks/browser/bookmark_match.cc
+++ b/components/bookmarks/browser/bookmark_match.cc
@@ -11,6 +11,8 @@
 
 BookmarkMatch::BookmarkMatch() : node(NULL) {}
 
+BookmarkMatch::BookmarkMatch(const BookmarkMatch& other) = default;
+
 BookmarkMatch::~BookmarkMatch() {}
 
 // static
diff --git a/components/bookmarks/browser/bookmark_match.h b/components/bookmarks/browser/bookmark_match.h
index fdba5ed..ce65893 100644
--- a/components/bookmarks/browser/bookmark_match.h
+++ b/components/bookmarks/browser/bookmark_match.h
@@ -22,6 +22,7 @@
   typedef std::vector<MatchPosition> MatchPositions;
 
   BookmarkMatch();
+  BookmarkMatch(const BookmarkMatch& other);
   ~BookmarkMatch();
 
   // Extracts and returns the offsets from |match_positions|.
diff --git a/components/bookmarks/browser/bookmark_node_data.cc b/components/bookmarks/browser/bookmark_node_data.cc
index 83d160f..e634fd3c 100644
--- a/components/bookmarks/browser/bookmark_node_data.cc
+++ b/components/bookmarks/browser/bookmark_node_data.cc
@@ -34,6 +34,8 @@
     children.push_back(Element(node->GetChild(i)));
 }
 
+BookmarkNodeData::Element::Element(const Element& other) = default;
+
 BookmarkNodeData::Element::~Element() {
 }
 
@@ -101,6 +103,8 @@
 BookmarkNodeData::BookmarkNodeData() {
 }
 
+BookmarkNodeData::BookmarkNodeData(const BookmarkNodeData& other) = default;
+
 BookmarkNodeData::BookmarkNodeData(const BookmarkNode* node) {
   elements.push_back(Element(node));
 }
diff --git a/components/bookmarks/browser/bookmark_node_data.h b/components/bookmarks/browser/bookmark_node_data.h
index 34e94054..cbad37cd 100644
--- a/components/bookmarks/browser/bookmark_node_data.h
+++ b/components/bookmarks/browser/bookmark_node_data.h
@@ -59,6 +59,7 @@
   struct Element {
     Element();
     explicit Element(const BookmarkNode* node);
+    Element(const Element& other);
     ~Element();
 
     // If true, this element represents a URL.
@@ -99,6 +100,7 @@
   static const char kClipboardFormatString[];
 
   BookmarkNodeData();
+  BookmarkNodeData(const BookmarkNodeData& other);
 
   // Created a BookmarkNodeData populated from the arguments.
   explicit BookmarkNodeData(const BookmarkNode* node);
diff --git a/components/cloud_devices/common/printer_description.cc b/components/cloud_devices/common/printer_description.cc
index 2602af8..a5e03a0 100644
--- a/components/cloud_devices/common/printer_description.cc
+++ b/components/cloud_devices/common/printer_description.cc
@@ -471,6 +471,8 @@
       custom_display_name(custom_display_name),
       vendor_id(vendor_id) {}
 
+Media::Media(const Media& other) = default;
+
 bool Media::MatchBySize() {
   const MediaDefinition* media = FindMediaBySize(width_um, height_um);
   if (!media)
diff --git a/components/cloud_devices/common/printer_description.h b/components/cloud_devices/common/printer_description.h
index c1a7a16..73d94cf 100644
--- a/components/cloud_devices/common/printer_description.h
+++ b/components/cloud_devices/common/printer_description.h
@@ -298,6 +298,8 @@
         int32_t width_um,
         int32_t height_um);
 
+  Media(const Media& other);
+
   bool MatchBySize();
 
   bool IsValid() const;
diff --git a/components/content_settings/core/browser/content_settings_rule.cc b/components/content_settings/core/browser/content_settings_rule.cc
index 470c563b..2576a39 100644
--- a/components/content_settings/core/browser/content_settings_rule.cc
+++ b/components/content_settings/core/browser/content_settings_rule.cc
@@ -19,6 +19,8 @@
   DCHECK(value);
 }
 
+Rule::Rule(const Rule& other) = default;
+
 Rule::~Rule() {}
 
 RuleIterator::~RuleIterator() {}
diff --git a/components/content_settings/core/browser/content_settings_rule.h b/components/content_settings/core/browser/content_settings_rule.h
index 9c4d2d54..eff148b 100644
--- a/components/content_settings/core/browser/content_settings_rule.h
+++ b/components/content_settings/core/browser/content_settings_rule.h
@@ -24,6 +24,7 @@
   Rule(const ContentSettingsPattern& primary_pattern,
        const ContentSettingsPattern& secondary_pattern,
        base::Value* value);
+  Rule(const Rule& other);
   ~Rule();
 
   ContentSettingsPattern primary_pattern;
diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
index 250599d..e37461d 100644
--- a/components/content_settings/core/common/content_settings.cc
+++ b/components/content_settings/core/common/content_settings.cc
@@ -88,6 +88,9 @@
     : setting(CONTENT_SETTING_DEFAULT), incognito(false) {
 }
 
+ContentSettingPatternSource::ContentSettingPatternSource(
+    const ContentSettingPatternSource& other) = default;
+
 RendererContentSettingRules::RendererContentSettingRules() {}
 
 RendererContentSettingRules::~RendererContentSettingRules() {}
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
index 6352b08c..24506fa 100644
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
@@ -43,6 +43,7 @@
                               ContentSetting setting,
                               const std::string& source,
                               bool incognito);
+  ContentSettingPatternSource(const ContentSettingPatternSource& other);
   ContentSettingPatternSource();
   ContentSettingsPattern primary_pattern;
   ContentSettingsPattern secondary_pattern;
diff --git a/components/content_settings/core/common/content_settings_pattern.cc b/components/content_settings/core/common/content_settings_pattern.cc
index 80ce4d0..0e91d66d 100644
--- a/components/content_settings/core/common/content_settings_pattern.cc
+++ b/components/content_settings/core/common/content_settings_pattern.cc
@@ -333,6 +333,9 @@
           is_port_wildcard(false),
           is_path_wildcard(false) {}
 
+ContentSettingsPattern::PatternParts::PatternParts(const PatternParts& other) =
+    default;
+
 ContentSettingsPattern::PatternParts::~PatternParts() {}
 
 // ////////////////////////////////////////////////////////////////////////////
diff --git a/components/content_settings/core/common/content_settings_pattern.h b/components/content_settings/core/common/content_settings_pattern.h
index 735012c..f85c648b 100644
--- a/components/content_settings/core/common/content_settings_pattern.h
+++ b/components/content_settings/core/common/content_settings_pattern.h
@@ -55,6 +55,7 @@
 
   struct PatternParts {
     PatternParts();
+    PatternParts(const PatternParts& other);
     ~PatternParts();
 
     // Lowercase string of the URL scheme to match. This string is empty if the
diff --git a/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_ui_manager.cc b/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_ui_manager.cc
index 48097ef9e..1a96b1a 100644
--- a/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_ui_manager.cc
+++ b/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_ui_manager.cc
@@ -28,6 +28,9 @@
       render_view_id(-1) {
 }
 
+DataReductionProxyDebugUIManager::BypassResource::BypassResource(
+    const BypassResource& other) = default;
+
 DataReductionProxyDebugUIManager::BypassResource::~BypassResource() {
 }
 
diff --git a/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_ui_manager.h b/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_ui_manager.h
index fcd5ca44e8..f67169f3 100644
--- a/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_ui_manager.h
+++ b/components/data_reduction_proxy/content/browser/data_reduction_proxy_debug_ui_manager.h
@@ -32,6 +32,7 @@
   // interacting with the blocking page.
   struct BypassResource {
     BypassResource();
+    BypassResource(const BypassResource& other);
     ~BypassResource();
 
     GURL url;
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
index 48aae0f..05ee6890 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
@@ -307,6 +307,9 @@
     : is_fallback(false), is_ssl(false) {
 }
 
+DataReductionProxyTypeInfo::DataReductionProxyTypeInfo(
+    const DataReductionProxyTypeInfo& other) = default;
+
 DataReductionProxyTypeInfo::~DataReductionProxyTypeInfo(){
 }
 
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h
index 05102d6..08d2f044 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h
@@ -156,6 +156,7 @@
 // proxy for ssl; these are not mutually exclusive.
 struct DataReductionProxyTypeInfo {
   DataReductionProxyTypeInfo();
+  DataReductionProxyTypeInfo(const DataReductionProxyTypeInfo& other);
   ~DataReductionProxyTypeInfo();
   std::vector<net::ProxyServer> proxy_servers;
   bool is_fallback;
diff --git a/components/data_usage/core/data_use.cc b/components/data_usage/core/data_use.cc
index f073dba..04cb823 100644
--- a/components/data_usage/core/data_use.cc
+++ b/components/data_usage/core/data_use.cc
@@ -38,6 +38,8 @@
       tx_bytes(tx_bytes),
       rx_bytes(rx_bytes) {}
 
+DataUse::DataUse(const DataUse& other) = default;
+
 DataUse::~DataUse() {}
 
 bool DataUse::operator==(const DataUse& other) const {
diff --git a/components/data_usage/core/data_use.h b/components/data_usage/core/data_use.h
index e04d04cd..b56346ad 100644
--- a/components/data_usage/core/data_use.h
+++ b/components/data_usage/core/data_use.h
@@ -25,6 +25,8 @@
           int64_t tx_bytes,
           int64_t rx_bytes);
 
+  DataUse(const DataUse& other);
+
   ~DataUse();
 
   bool operator==(const DataUse& other) const;
diff --git a/components/device_event_log/device_event_log_impl.cc b/components/device_event_log/device_event_log_impl.cc
index 37b89b2..7dad5b3 100644
--- a/components/device_event_log/device_event_log_impl.cc
+++ b/components/device_event_log/device_event_log_impl.cc
@@ -399,4 +399,6 @@
   }
 }
 
+DeviceEventLogImpl::LogEntry::LogEntry(const LogEntry& other) = default;
+
 }  // namespace device_event_log
diff --git a/components/device_event_log/device_event_log_impl.h b/components/device_event_log/device_event_log_impl.h
index f221638..218a2e7ff 100644
--- a/components/device_event_log/device_event_log_impl.h
+++ b/components/device_event_log/device_event_log_impl.h
@@ -28,6 +28,7 @@
              LogType log_type,
              LogLevel log_level,
              const std::string& event);
+    LogEntry(const LogEntry& other);
 
     std::string file;
     int file_line;
diff --git a/components/dom_distiller/core/article_distillation_update.cc b/components/dom_distiller/core/article_distillation_update.cc
index 1ed54b5..c15ebb1 100644
--- a/components/dom_distiller/core/article_distillation_update.cc
+++ b/components/dom_distiller/core/article_distillation_update.cc
@@ -16,6 +16,9 @@
       has_prev_page_(has_prev_page),
       pages_(pages) {}
 
+ArticleDistillationUpdate::ArticleDistillationUpdate(
+    const ArticleDistillationUpdate& other) = default;
+
 ArticleDistillationUpdate::~ArticleDistillationUpdate() {}
 
 const DistilledPageProto& ArticleDistillationUpdate::GetDistilledPage(
diff --git a/components/dom_distiller/core/article_distillation_update.h b/components/dom_distiller/core/article_distillation_update.h
index d01c3b9..0e4fcd0 100644
--- a/components/dom_distiller/core/article_distillation_update.h
+++ b/components/dom_distiller/core/article_distillation_update.h
@@ -23,6 +23,7 @@
       const std::vector<scoped_refptr<RefCountedPageProto> >& pages,
       bool has_next_page,
       bool has_prev_page);
+  ArticleDistillationUpdate(const ArticleDistillationUpdate& other);
   ~ArticleDistillationUpdate();
 
   // Returns the  distilled page at |index|.
diff --git a/components/domain_reliability/beacon.cc b/components/domain_reliability/beacon.cc
index fb176cb..7d3c1bb 100644
--- a/components/domain_reliability/beacon.cc
+++ b/components/domain_reliability/beacon.cc
@@ -16,6 +16,8 @@
 using base::DictionaryValue;
 
 DomainReliabilityBeacon::DomainReliabilityBeacon() {}
+DomainReliabilityBeacon::DomainReliabilityBeacon(
+    const DomainReliabilityBeacon& other) = default;
 DomainReliabilityBeacon::~DomainReliabilityBeacon() {}
 
 scoped_ptr<Value> DomainReliabilityBeacon::ToValue(
diff --git a/components/domain_reliability/beacon.h b/components/domain_reliability/beacon.h
index 920b320..43b1e4fe 100644
--- a/components/domain_reliability/beacon.h
+++ b/components/domain_reliability/beacon.h
@@ -23,6 +23,7 @@
 struct DOMAIN_RELIABILITY_EXPORT DomainReliabilityBeacon {
  public:
   DomainReliabilityBeacon();
+  DomainReliabilityBeacon(const DomainReliabilityBeacon& other);
   ~DomainReliabilityBeacon();
 
   // Converts the Beacon to JSON format for uploading. Calculates the age
diff --git a/components/domain_reliability/monitor.cc b/components/domain_reliability/monitor.cc
index 593cade6..12dfdab 100644
--- a/components/domain_reliability/monitor.cc
+++ b/components/domain_reliability/monitor.cc
@@ -276,6 +276,9 @@
     remote_endpoint = net::IPEndPoint();
 }
 
+DomainReliabilityMonitor::RequestInfo::RequestInfo(const RequestInfo& other) =
+    default;
+
 DomainReliabilityMonitor::RequestInfo::~RequestInfo() {}
 
 // static
diff --git a/components/domain_reliability/monitor.h b/components/domain_reliability/monitor.h
index 578976ac..fd1f32f 100644
--- a/components/domain_reliability/monitor.h
+++ b/components/domain_reliability/monitor.h
@@ -141,6 +141,7 @@
   struct DOMAIN_RELIABILITY_EXPORT RequestInfo {
     RequestInfo();
     explicit RequestInfo(const net::URLRequest& request);
+    RequestInfo(const RequestInfo& other);
     ~RequestInfo();
 
     static bool ShouldReportRequest(const RequestInfo& request);
diff --git a/components/drive/drive_app_registry.cc b/components/drive/drive_app_registry.cc
index cc28b830..89a4299 100644
--- a/components/drive/drive_app_registry.cc
+++ b/components/drive/drive_app_registry.cc
@@ -71,6 +71,8 @@
       is_removable(is_removable) {
 }
 
+DriveAppInfo::DriveAppInfo(const DriveAppInfo& other) = default;
+
 DriveAppInfo::~DriveAppInfo() {
 }
 
diff --git a/components/drive/drive_app_registry.h b/components/drive/drive_app_registry.h
index d0db658..f4553e0 100644
--- a/components/drive/drive_app_registry.h
+++ b/components/drive/drive_app_registry.h
@@ -42,6 +42,7 @@
                const std::string& app_name,
                const GURL& create_url,
                bool is_removable);
+  DriveAppInfo(const DriveAppInfo& other);
   ~DriveAppInfo();
 
   // Drive app id.
diff --git a/components/drive/file_change.cc b/components/drive/file_change.cc
index 0bdd7bc..33a2ac3 100644
--- a/components/drive/file_change.cc
+++ b/components/drive/file_change.cc
@@ -43,6 +43,7 @@
 
 FileChange::ChangeList::ChangeList() {
 }
+FileChange::ChangeList::ChangeList(const ChangeList& other) = default;
 FileChange::ChangeList::~ChangeList() {
 }
 
diff --git a/components/drive/file_change.h b/components/drive/file_change.h
index 9d885b8..40d750c 100644
--- a/components/drive/file_change.h
+++ b/components/drive/file_change.h
@@ -59,6 +59,7 @@
     typedef std::deque<Change> List;
 
     ChangeList();
+    ChangeList(const ChangeList& other);
     ~ChangeList();
 
     // Updates the list with the |new_change|.
diff --git a/components/drive/file_system_interface.cc b/components/drive/file_system_interface.cc
index 931b6807..e7d86fe6 100644
--- a/components/drive/file_system_interface.cc
+++ b/components/drive/file_system_interface.cc
@@ -17,4 +17,7 @@
       md5(md5) {
 }
 
+MetadataSearchResult::MetadataSearchResult(const MetadataSearchResult& other) =
+    default;
+
 }  // namespace drive
diff --git a/components/drive/file_system_interface.h b/components/drive/file_system_interface.h
index 2fb43b9a..c23bbee 100644
--- a/components/drive/file_system_interface.h
+++ b/components/drive/file_system_interface.h
@@ -44,6 +44,7 @@
                        bool is_directory,
                        const std::string& highlighted_base_name,
                        const std::string& md5);
+  MetadataSearchResult(const MetadataSearchResult& other);
 
   // The two members are used to create FileEntry object.
   base::FilePath path;
diff --git a/components/drive/service/drive_service_interface.cc b/components/drive/service/drive_service_interface.cc
index bd828a67..199a2cc 100644
--- a/components/drive/service/drive_service_interface.cc
+++ b/components/drive/service/drive_service_interface.cc
@@ -10,18 +10,27 @@
     : visibility(google_apis::drive::FILE_VISIBILITY_DEFAULT) {
 }
 
+AddNewDirectoryOptions::AddNewDirectoryOptions(
+    const AddNewDirectoryOptions& other) = default;
+
 AddNewDirectoryOptions::~AddNewDirectoryOptions() {
 }
 
 UploadNewFileOptions::UploadNewFileOptions() {
 }
 
+UploadNewFileOptions::UploadNewFileOptions(const UploadNewFileOptions& other) =
+    default;
+
 UploadNewFileOptions::~UploadNewFileOptions() {
 }
 
 UploadExistingFileOptions::UploadExistingFileOptions() {
 }
 
+UploadExistingFileOptions::UploadExistingFileOptions(
+    const UploadExistingFileOptions& other) = default;
+
 UploadExistingFileOptions::~UploadExistingFileOptions() {
 }
 
diff --git a/components/drive/service/drive_service_interface.h b/components/drive/service/drive_service_interface.h
index 51265c6..bfc4439e 100644
--- a/components/drive/service/drive_service_interface.h
+++ b/components/drive/service/drive_service_interface.h
@@ -37,6 +37,7 @@
 // Optional parameters for AddNewDirectory().
 struct AddNewDirectoryOptions {
   AddNewDirectoryOptions();
+  AddNewDirectoryOptions(const AddNewDirectoryOptions& other);
   ~AddNewDirectoryOptions();
 
   // visibility of the new directory.
@@ -58,6 +59,7 @@
 // MultipartUploadNewFile().
 struct UploadNewFileOptions {
   UploadNewFileOptions();
+  UploadNewFileOptions(const UploadNewFileOptions& other);
   ~UploadNewFileOptions();
 
   // modified_date of the file.
@@ -76,6 +78,7 @@
 // MultipartUploadExistingFile().
 struct UploadExistingFileOptions {
   UploadExistingFileOptions();
+  UploadExistingFileOptions(const UploadExistingFileOptions& other);
   ~UploadExistingFileOptions();
 
   // Expected ETag of the file. UPLOAD_ERROR_CONFLICT error is generated when
diff --git a/components/drive/sync_client.cc b/components/drive/sync_client.cc
index 3b71af3..e76d826e1 100644
--- a/components/drive/sync_client.cc
+++ b/components/drive/sync_client.cc
@@ -135,6 +135,7 @@
 
 SyncClient::SyncTask::SyncTask()
     : state(SUSPENDED), context(BACKGROUND), should_run_again(false) {}
+SyncClient::SyncTask::SyncTask(const SyncTask& other) = default;
 SyncClient::SyncTask::~SyncTask() {}
 
 SyncClient::SyncClient(base::SequencedTaskRunner* blocking_task_runner,
diff --git a/components/drive/sync_client.h b/components/drive/sync_client.h
index 67af6f1..c86eb1b6 100644
--- a/components/drive/sync_client.h
+++ b/components/drive/sync_client.h
@@ -107,6 +107,7 @@
 
   struct SyncTask {
     SyncTask();
+    SyncTask(const SyncTask& other);
     ~SyncTask();
     SyncState state;
     ClientContext context;
diff --git a/components/error_page/renderer/net_error_helper_core.cc b/components/error_page/renderer/net_error_helper_core.cc
index 847ff0d2..934f569 100644
--- a/components/error_page/renderer/net_error_helper_core.cc
+++ b/components/error_page/renderer/net_error_helper_core.cc
@@ -474,6 +474,9 @@
 NetErrorHelperCore::NavigationCorrectionParams::NavigationCorrectionParams() {
 }
 
+NetErrorHelperCore::NavigationCorrectionParams::NavigationCorrectionParams(
+    const NavigationCorrectionParams& other) = default;
+
 NetErrorHelperCore::NavigationCorrectionParams::~NavigationCorrectionParams() {
 }
 
diff --git a/components/error_page/renderer/net_error_helper_core.h b/components/error_page/renderer/net_error_helper_core.h
index db46e1e1..c4031b3b 100644
--- a/components/error_page/renderer/net_error_helper_core.h
+++ b/components/error_page/renderer/net_error_helper_core.h
@@ -130,6 +130,7 @@
 
   struct NavigationCorrectionParams {
     NavigationCorrectionParams();
+    NavigationCorrectionParams(const NavigationCorrectionParams& other);
     ~NavigationCorrectionParams();
 
     // URL used both for getting the suggestions and tracking clicks.
diff --git a/components/favicon/core/favicon_url.cc b/components/favicon/core/favicon_url.cc
index 6957af6..68bead8 100644
--- a/components/favicon/core/favicon_url.cc
+++ b/components/favicon/core/favicon_url.cc
@@ -15,6 +15,8 @@
     : icon_url(url), icon_type(type), icon_sizes(sizes) {
 }
 
+FaviconURL::FaviconURL(const FaviconURL& other) = default;
+
 FaviconURL::~FaviconURL() {
 }
 
diff --git a/components/favicon/core/favicon_url.h b/components/favicon/core/favicon_url.h
index 991be64..04f000a 100644
--- a/components/favicon/core/favicon_url.h
+++ b/components/favicon/core/favicon_url.h
@@ -19,6 +19,7 @@
   FaviconURL(const GURL& url,
              favicon_base::IconType type,
              const std::vector<gfx::Size>& sizes);
+  FaviconURL(const FaviconURL& other);
   ~FaviconURL();
 
   // The url of the icon.
diff --git a/components/favicon_base/favicon_types.cc b/components/favicon_base/favicon_types.cc
index 2ed5eb0..8699c43 100644
--- a/components/favicon_base/favicon_types.cc
+++ b/components/favicon_base/favicon_types.cc
@@ -22,6 +22,9 @@
     : expired(false), icon_type(INVALID_ICON) {
 }
 
+FaviconRawBitmapResult::FaviconRawBitmapResult(
+    const FaviconRawBitmapResult& other) = default;
+
 FaviconRawBitmapResult::~FaviconRawBitmapResult() {}
 
 // --------------------------------------------------------
diff --git a/components/favicon_base/favicon_types.h b/components/favicon_base/favicon_types.h
index 8859f64..068fd17 100644
--- a/components/favicon_base/favicon_types.h
+++ b/components/favicon_base/favicon_types.h
@@ -52,6 +52,7 @@
 // the desired scale factors.
 struct FaviconRawBitmapResult {
   FaviconRawBitmapResult();
+  FaviconRawBitmapResult(const FaviconRawBitmapResult& other);
   ~FaviconRawBitmapResult();
 
   // Returns true if |bitmap_data| contains a valid bitmap.
diff --git a/components/favicon_base/favicon_usage_data.cc b/components/favicon_base/favicon_usage_data.cc
index 7873a92..4e0c1aa 100644
--- a/components/favicon_base/favicon_usage_data.cc
+++ b/components/favicon_base/favicon_usage_data.cc
@@ -9,6 +9,8 @@
 FaviconUsageData::FaviconUsageData() {
 }
 
+FaviconUsageData::FaviconUsageData(const FaviconUsageData& other) = default;
+
 FaviconUsageData::~FaviconUsageData() {
 }
 
diff --git a/components/favicon_base/favicon_usage_data.h b/components/favicon_base/favicon_usage_data.h
index c616728c..b0eb499 100644
--- a/components/favicon_base/favicon_usage_data.h
+++ b/components/favicon_base/favicon_usage_data.h
@@ -15,6 +15,7 @@
 // Used to correlate favicons to imported bookmarks.
 struct FaviconUsageData {
   FaviconUsageData();
+  FaviconUsageData(const FaviconUsageData& other);
   ~FaviconUsageData();
 
   // The URL of the favicon.
diff --git a/components/gcm_driver/common/gcm_messages.cc b/components/gcm_driver/common/gcm_messages.cc
index 1c092a34..35156ac 100644
--- a/components/gcm_driver/common/gcm_messages.cc
+++ b/components/gcm_driver/common/gcm_messages.cc
@@ -12,12 +12,16 @@
 OutgoingMessage::OutgoingMessage() : time_to_live(kMaximumTTL) {
 }
 
+OutgoingMessage::OutgoingMessage(const OutgoingMessage& other) = default;
+
 OutgoingMessage::~OutgoingMessage() {
 }
 
 IncomingMessage::IncomingMessage() : decrypted(false) {
 }
 
+IncomingMessage::IncomingMessage(const IncomingMessage& other) = default;
+
 IncomingMessage::~IncomingMessage() {
 }
 
diff --git a/components/gcm_driver/common/gcm_messages.h b/components/gcm_driver/common/gcm_messages.h
index a6a071c..24be478e 100644
--- a/components/gcm_driver/common/gcm_messages.h
+++ b/components/gcm_driver/common/gcm_messages.h
@@ -18,6 +18,7 @@
 // Message to be delivered to the other party.
 struct GCM_DRIVER_EXPORT OutgoingMessage {
   OutgoingMessage();
+  OutgoingMessage(const OutgoingMessage& other);
   ~OutgoingMessage();
 
   // Message ID.
@@ -32,6 +33,7 @@
 // Message being received from the other party.
 struct GCM_DRIVER_EXPORT IncomingMessage {
   IncomingMessage();
+  IncomingMessage(const IncomingMessage& other);
   ~IncomingMessage();
 
   MessageData data;
diff --git a/components/gcm_driver/gcm_activity.cc b/components/gcm_driver/gcm_activity.cc
index 192696d..bee57d4 100644
--- a/components/gcm_driver/gcm_activity.cc
+++ b/components/gcm_driver/gcm_activity.cc
@@ -53,6 +53,9 @@
 RecordedActivities::RecordedActivities() {
 }
 
+RecordedActivities::RecordedActivities(const RecordedActivities& other) =
+    default;
+
 RecordedActivities::~RecordedActivities() {
 }
 
diff --git a/components/gcm_driver/gcm_activity.h b/components/gcm_driver/gcm_activity.h
index fb1c229..80c9d03 100644
--- a/components/gcm_driver/gcm_activity.h
+++ b/components/gcm_driver/gcm_activity.h
@@ -74,6 +74,7 @@
 
 struct RecordedActivities {
   RecordedActivities();
+  RecordedActivities(const RecordedActivities& other);
   virtual ~RecordedActivities();
 
   std::vector<CheckinActivity> checkin_activities;
diff --git a/components/gcm_driver/gcm_client.cc b/components/gcm_driver/gcm_client.cc
index 33271bac..1208a91 100644
--- a/components/gcm_driver/gcm_client.cc
+++ b/components/gcm_driver/gcm_client.cc
@@ -16,6 +16,9 @@
 
 GCMClient::SendErrorDetails::SendErrorDetails() : result(UNKNOWN_ERROR) {}
 
+GCMClient::SendErrorDetails::SendErrorDetails(const SendErrorDetails& other) =
+    default;
+
 GCMClient::SendErrorDetails::~SendErrorDetails() {}
 
 GCMClient::GCMStatistics::GCMStatistics()
@@ -27,6 +30,8 @@
       resend_queue_size(0) {
 }
 
+GCMClient::GCMStatistics::GCMStatistics(const GCMStatistics& other) = default;
+
 GCMClient::GCMStatistics::~GCMStatistics() {
 }
 
diff --git a/components/gcm_driver/gcm_client.h b/components/gcm_driver/gcm_client.h
index 4b21684..c7f0aa95 100644
--- a/components/gcm_driver/gcm_client.h
+++ b/components/gcm_driver/gcm_client.h
@@ -103,6 +103,7 @@
   // Detailed information of the Send Error event.
   struct SendErrorDetails {
     SendErrorDetails();
+    SendErrorDetails(const SendErrorDetails& other);
     ~SendErrorDetails();
 
     std::string message_id;
@@ -114,6 +115,7 @@
   struct GCMStatistics {
    public:
     GCMStatistics();
+    GCMStatistics(const GCMStatistics& other);
     ~GCMStatistics();
 
     bool is_recording;
diff --git a/components/guest_view/browser/guest_view_manager.cc b/components/guest_view/browser/guest_view_manager.cc
index 0a8afb06..7359392 100644
--- a/components/guest_view/browser/guest_view_manager.cc
+++ b/components/guest_view/browser/guest_view_manager.cc
@@ -493,6 +493,9 @@
     const GuestViewCleanUpFunction& cleanup_function)
     : create_function(create_function), cleanup_function(cleanup_function) {}
 
+GuestViewManager::GuestViewData::GuestViewData(const GuestViewData& other) =
+    default;
+
 GuestViewManager::GuestViewData::~GuestViewData() {}
 
 }  // namespace guest_view
diff --git a/components/guest_view/browser/guest_view_manager.h b/components/guest_view/browser/guest_view_manager.h
index 63815f9d..aa9627a 100644
--- a/components/guest_view/browser/guest_view_manager.h
+++ b/components/guest_view/browser/guest_view_manager.h
@@ -232,6 +232,7 @@
   struct GuestViewData {
     GuestViewData(const GuestViewCreateFunction& create_function,
                   const GuestViewCleanUpFunction& cleanup_function);
+    GuestViewData(const GuestViewData& other);
     ~GuestViewData();
     const GuestViewCreateFunction create_function;
     const GuestViewCleanUpFunction cleanup_function;
diff --git a/components/history/core/browser/download_row.cc b/components/history/core/browser/download_row.cc
index 4e77fb66..1c97d60 100644
--- a/components/history/core/browser/download_row.cc
+++ b/components/history/core/browser/download_row.cc
@@ -58,6 +58,8 @@
       by_ext_id(ext_id),
       by_ext_name(ext_name) {}
 
+DownloadRow::DownloadRow(const DownloadRow& other) = default;
+
 DownloadRow::~DownloadRow() {
 }
 
diff --git a/components/history/core/browser/download_row.h b/components/history/core/browser/download_row.h
index 8f14bd1..9830451 100644
--- a/components/history/core/browser/download_row.h
+++ b/components/history/core/browser/download_row.h
@@ -41,6 +41,7 @@
               bool download_opened,
               const std::string& ext_id,
               const std::string& ext_name);
+  DownloadRow(const DownloadRow& other);
   ~DownloadRow();
 
   // The current path to the download (potentially different from final if
diff --git a/components/history/core/browser/history_types.cc b/components/history/core/browser/history_types.cc
index 732c8c2..090fded 100644
--- a/components/history/core/browser/history_types.cc
+++ b/components/history/core/browser/history_types.cc
@@ -203,6 +203,8 @@
       last_forced_time(last_forced_time) {
 }
 
+MostVisitedURL::MostVisitedURL(const MostVisitedURL& other) = default;
+
 MostVisitedURL::~MostVisitedURL() {}
 
 // FilteredURL -----------------------------------------------------------------
@@ -229,12 +231,16 @@
 
 Images::Images() {}
 
+Images::Images(const Images& other) = default;
+
 Images::~Images() {}
 
 // TopSitesDelta --------------------------------------------------------------
 
 TopSitesDelta::TopSitesDelta() {}
 
+TopSitesDelta::TopSitesDelta(const TopSitesDelta& other) = default;
+
 TopSitesDelta::~TopSitesDelta() {}
 
 // HistoryAddPageArgs ---------------------------------------------------------
@@ -271,6 +277,9 @@
       did_replace_entry(did_replace_entry) {
 }
 
+HistoryAddPageArgs::HistoryAddPageArgs(const HistoryAddPageArgs& other) =
+    default;
+
 HistoryAddPageArgs::~HistoryAddPageArgs() {}
 
 // ThumbnailMigration ---------------------------------------------------------
@@ -308,6 +317,8 @@
       icon_id(0) {
 }
 
+FaviconBitmap::FaviconBitmap(const FaviconBitmap& other) = default;
+
 FaviconBitmap::~FaviconBitmap() {
 }
 
@@ -316,6 +327,8 @@
 ExpireHistoryArgs::ExpireHistoryArgs() {
 }
 
+ExpireHistoryArgs::ExpireHistoryArgs(const ExpireHistoryArgs& other) = default;
+
 ExpireHistoryArgs::~ExpireHistoryArgs() {
 }
 
diff --git a/components/history/core/browser/history_types.h b/components/history/core/browser/history_types.h
index 94866c8..51e948c1 100644
--- a/components/history/core/browser/history_types.h
+++ b/components/history/core/browser/history_types.h
@@ -315,6 +315,7 @@
   MostVisitedURL(const GURL& url,
                  const base::string16& title,
                  const base::Time& last_forced_time);
+  MostVisitedURL(const MostVisitedURL& other);
   ~MostVisitedURL();
 
   GURL url;
@@ -378,6 +379,7 @@
                      ui::PageTransition transition,
                      VisitSource source,
                      bool did_replace_entry);
+  HistoryAddPageArgs(const HistoryAddPageArgs& other);
   ~HistoryAddPageArgs();
 
   GURL url;
@@ -399,6 +401,7 @@
 // Used by TopSites to store the thumbnails.
 struct Images {
   Images();
+  Images(const Images& other);
   ~Images();
 
   scoped_refptr<base::RefCountedMemory> thumbnail;
@@ -417,6 +420,7 @@
 
 struct TopSitesDelta {
   TopSitesDelta();
+  TopSitesDelta(const TopSitesDelta& other);
   ~TopSitesDelta();
 
   MostVisitedURLList deleted;
@@ -507,6 +511,7 @@
 // Defines a favicon bitmap stored in the history backend.
 struct FaviconBitmap {
   FaviconBitmap();
+  FaviconBitmap(const FaviconBitmap& other);
   ~FaviconBitmap();
 
   // The unique id of the bitmap.
@@ -530,6 +535,7 @@
 
 struct ExpireHistoryArgs {
   ExpireHistoryArgs();
+  ExpireHistoryArgs(const ExpireHistoryArgs& other);
   ~ExpireHistoryArgs();
 
   // Sets |begin_time| and |end_time| to the beginning and end of the day (in
diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
index 71c3725..096672d 100644
--- a/components/history/core/browser/url_row.cc
+++ b/components/history/core/browser/url_row.cc
@@ -24,6 +24,8 @@
   id_ = id;
 }
 
+URLRow::URLRow(const URLRow& other) = default;
+
 URLRow::~URLRow() {
 }
 
@@ -79,6 +81,8 @@
       blocked_visit_(false) {
 }
 
+URLResult::URLResult(const URLResult& other) = default;
+
 URLResult::~URLResult() {
 }
 
diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
index baa0ce1..c333c31 100644
--- a/components/history/core/browser/url_row.h
+++ b/components/history/core/browser/url_row.h
@@ -38,6 +38,8 @@
   // an IPC message.  This constructor should probably not be used otherwise.
   URLRow(const GURL& url, URLID id);
 
+  URLRow(const URLRow& other);
+
   virtual ~URLRow();
   URLRow& operator=(const URLRow& other);
 
@@ -168,6 +170,7 @@
   URLResult(const GURL& url,
             const query_parser::Snippet::MatchPositions& title_matches);
   explicit URLResult(const URLRow& url_row);
+  URLResult(const URLResult& other);
   ~URLResult() override;
 
   base::Time visit_time() const { return visit_time_; }
diff --git a/components/invalidation/public/invalidation.cc b/components/invalidation/public/invalidation.cc
index 9e518e6..c172ca4a 100644
--- a/components/invalidation/public/invalidation.cc
+++ b/components/invalidation/public/invalidation.cc
@@ -86,6 +86,8 @@
       AckHandle::CreateUnique()));
 }
 
+Invalidation::Invalidation(const Invalidation& other) = default;
+
 Invalidation::~Invalidation() {
 }
 
diff --git a/components/invalidation/public/invalidation.h b/components/invalidation/public/invalidation.h
index bca3a12..cdb5a29 100644
--- a/components/invalidation/public/invalidation.h
+++ b/components/invalidation/public/invalidation.h
@@ -36,6 +36,7 @@
   static scoped_ptr<Invalidation> InitFromValue(
       const base::DictionaryValue& value);
 
+  Invalidation(const Invalidation& other);
   ~Invalidation();
 
   // Compares two invalidations.  The comparison ignores ack-tracking state.
diff --git a/components/invalidation/public/object_id_invalidation_map.cc b/components/invalidation/public/object_id_invalidation_map.cc
index 336964f2e..5397f287 100644
--- a/components/invalidation/public/object_id_invalidation_map.cc
+++ b/components/invalidation/public/object_id_invalidation_map.cc
@@ -22,6 +22,9 @@
 
 ObjectIdInvalidationMap::ObjectIdInvalidationMap() {}
 
+ObjectIdInvalidationMap::ObjectIdInvalidationMap(
+    const ObjectIdInvalidationMap& other) = default;
+
 ObjectIdInvalidationMap::~ObjectIdInvalidationMap() {}
 
 ObjectIdSet ObjectIdInvalidationMap::GetObjectIds() const {
diff --git a/components/invalidation/public/object_id_invalidation_map.h b/components/invalidation/public/object_id_invalidation_map.h
index c2f86de..c1f4cd1 100644
--- a/components/invalidation/public/object_id_invalidation_map.h
+++ b/components/invalidation/public/object_id_invalidation_map.h
@@ -24,6 +24,7 @@
    static ObjectIdInvalidationMap InvalidateAll(const ObjectIdSet& ids);
 
    ObjectIdInvalidationMap();
+   ObjectIdInvalidationMap(const ObjectIdInvalidationMap& other);
    ~ObjectIdInvalidationMap();
 
    // Returns set of ObjectIds for which at least one invalidation is present.
diff --git a/components/invalidation/public/single_object_invalidation_set.cc b/components/invalidation/public/single_object_invalidation_set.cc
index 6fa26c8..c1393b1 100644
--- a/components/invalidation/public/single_object_invalidation_set.cc
+++ b/components/invalidation/public/single_object_invalidation_set.cc
@@ -11,6 +11,9 @@
 
 SingleObjectInvalidationSet::SingleObjectInvalidationSet() {}
 
+SingleObjectInvalidationSet::SingleObjectInvalidationSet(
+    const SingleObjectInvalidationSet& other) = default;
+
 SingleObjectInvalidationSet::~SingleObjectInvalidationSet() {}
 
 void SingleObjectInvalidationSet::Insert(const Invalidation& invalidation) {
diff --git a/components/invalidation/public/single_object_invalidation_set.h b/components/invalidation/public/single_object_invalidation_set.h
index f011e0ad..ae9c9a0 100644
--- a/components/invalidation/public/single_object_invalidation_set.h
+++ b/components/invalidation/public/single_object_invalidation_set.h
@@ -32,6 +32,7 @@
   typedef InvalidationsSet::const_reverse_iterator const_reverse_iterator;
 
   SingleObjectInvalidationSet();
+  SingleObjectInvalidationSet(const SingleObjectInvalidationSet& other);
   ~SingleObjectInvalidationSet();
 
   void Insert(const Invalidation& invalidation);
diff --git a/components/nacl/browser/pnacl_host.cc b/components/nacl/browser/pnacl_host.cc
index f5f18f3..ceaaa89 100644
--- a/components/nacl/browser/pnacl_host.cc
+++ b/components/nacl/browser/pnacl_host.cc
@@ -99,6 +99,9 @@
       cache_info(nacl::PnaclCacheInfo()) {
 }
 
+PnaclHost::PendingTranslation::PendingTranslation(
+    const PendingTranslation& other) = default;
+
 PnaclHost::PendingTranslation::~PendingTranslation() {
   if (nexe_fd)
     delete nexe_fd;
diff --git a/components/nacl/browser/pnacl_host.h b/components/nacl/browser/pnacl_host.h
index bacd71e..c3da05c 100644
--- a/components/nacl/browser/pnacl_host.h
+++ b/components/nacl/browser/pnacl_host.h
@@ -116,6 +116,7 @@
   class PendingTranslation {
    public:
     PendingTranslation();
+    PendingTranslation(const PendingTranslation& other);
     ~PendingTranslation();
     base::ProcessHandle process_handle;
     int render_view_id;
diff --git a/components/nacl/common/nacl_types.cc b/components/nacl/common/nacl_types.cc
index 996d2523..dbb421b 100644
--- a/components/nacl/common/nacl_types.cc
+++ b/components/nacl/common/nacl_types.cc
@@ -23,6 +23,8 @@
       crash_info_shmem_handle(base::SharedMemory::NULLHandle()) {
 }
 
+NaClStartParams::NaClStartParams(const NaClStartParams& other) = default;
+
 NaClStartParams::~NaClStartParams() {
 }
 
@@ -83,6 +85,8 @@
       uses_nonsfi_mode(uses_nonsfi_mode),
       process_type(process_type) {}
 
+NaClLaunchParams::NaClLaunchParams(const NaClLaunchParams& other) = default;
+
 NaClLaunchParams::~NaClLaunchParams() {
 }
 
diff --git a/components/nacl/common/nacl_types.h b/components/nacl/common/nacl_types.h
index b904879..1d942cd 100644
--- a/components/nacl/common/nacl_types.h
+++ b/components/nacl/common/nacl_types.h
@@ -67,6 +67,7 @@
 // Parameters sent to the NaCl process when we start it.
 struct NaClStartParams {
   NaClStartParams();
+  NaClStartParams(const NaClStartParams& other);
   ~NaClStartParams();
 
   IPC::PlatformFileForTransit nexe_file;
@@ -128,6 +129,7 @@
                    uint32_t permission_bits,
                    bool uses_nonsfi_mode,
                    NaClAppProcessType process_type);
+  NaClLaunchParams(const NaClLaunchParams& other);
   ~NaClLaunchParams();
 
   std::string manifest_url;
diff --git a/components/nacl/common/pnacl_types.cc b/components/nacl/common/pnacl_types.cc
index 49c4659..82ef2ee 100644
--- a/components/nacl/common/pnacl_types.cc
+++ b/components/nacl/common/pnacl_types.cc
@@ -9,6 +9,7 @@
 PnaclCacheInfo::PnaclCacheInfo()
     : abi_version(0), opt_level(0), has_no_store_header(0), use_subzero(false) {
 }
+PnaclCacheInfo::PnaclCacheInfo(const PnaclCacheInfo& other) = default;
 PnaclCacheInfo::~PnaclCacheInfo() {}
 
 }  // namespace nacl
diff --git a/components/nacl/common/pnacl_types.h b/components/nacl/common/pnacl_types.h
index fdebd58..eb7e174 100644
--- a/components/nacl/common/pnacl_types.h
+++ b/components/nacl/common/pnacl_types.h
@@ -20,6 +20,7 @@
 // nacl_host_messages.h.
 struct PnaclCacheInfo {
   PnaclCacheInfo();
+  PnaclCacheInfo(const PnaclCacheInfo& other);
   ~PnaclCacheInfo();
   GURL pexe_url;
   int abi_version;
diff --git a/components/offline_pages/offline_page_item.cc b/components/offline_pages/offline_page_item.cc
index 2259c1fa4..8ee8bc5 100644
--- a/components/offline_pages/offline_page_item.cc
+++ b/components/offline_pages/offline_page_item.cc
@@ -46,6 +46,8 @@
       access_count(0),
       flags(NO_FLAG) {}
 
+OfflinePageItem::OfflinePageItem(const OfflinePageItem& other) = default;
+
 OfflinePageItem::~OfflinePageItem() {
 }
 
diff --git a/components/offline_pages/offline_page_item.h b/components/offline_pages/offline_page_item.h
index a7bf8c8..311573b 100644
--- a/components/offline_pages/offline_page_item.h
+++ b/components/offline_pages/offline_page_item.h
@@ -35,6 +35,7 @@
                   const base::FilePath& file_path,
                   int64_t file_size,
                   const base::Time& creation_time);
+  OfflinePageItem(const OfflinePageItem& other);
   ~OfflinePageItem();
 
   // Gets a URL of the file under |file_path|.
diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc
index de7e2954..f8673d72 100644
--- a/components/omnibox/browser/autocomplete_input.cc
+++ b/components/omnibox/browser/autocomplete_input.cc
@@ -135,6 +135,8 @@
   }
 }
 
+AutocompleteInput::AutocompleteInput(const AutocompleteInput& other) = default;
+
 AutocompleteInput::~AutocompleteInput() {
 }
 
diff --git a/components/omnibox/browser/autocomplete_input.h b/components/omnibox/browser/autocomplete_input.h
index 38a431c..1c047065 100644
--- a/components/omnibox/browser/autocomplete_input.h
+++ b/components/omnibox/browser/autocomplete_input.h
@@ -80,6 +80,7 @@
                     bool want_asynchronous_matches,
                     bool from_omnibox_focus,
                     const AutocompleteSchemeClassifier& scheme_classifier);
+  AutocompleteInput(const AutocompleteInput& other);
   ~AutocompleteInput();
 
   // If type is |FORCED_QUERY| and |text| starts with '?', it is removed.
diff --git a/components/omnibox/browser/in_memory_url_index_types.cc b/components/omnibox/browser/in_memory_url_index_types.cc
index 710513c..92ef97a4 100644
--- a/components/omnibox/browser/in_memory_url_index_types.cc
+++ b/components/omnibox/browser/in_memory_url_index_types.cc
@@ -155,11 +155,14 @@
 // HistoryInfoMapValue ---------------------------------------------------------
 
 HistoryInfoMapValue::HistoryInfoMapValue() {}
+HistoryInfoMapValue::HistoryInfoMapValue(const HistoryInfoMapValue& other) =
+    default;
 HistoryInfoMapValue::~HistoryInfoMapValue() {}
 
 // RowWordStarts ---------------------------------------------------------------
 
 RowWordStarts::RowWordStarts() {}
+RowWordStarts::RowWordStarts(const RowWordStarts& other) = default;
 RowWordStarts::~RowWordStarts() {}
 
 void RowWordStarts::Clear() {
diff --git a/components/omnibox/browser/in_memory_url_index_types.h b/components/omnibox/browser/in_memory_url_index_types.h
index 218760a..7525aae 100644
--- a/components/omnibox/browser/in_memory_url_index_types.h
+++ b/components/omnibox/browser/in_memory_url_index_types.h
@@ -150,6 +150,7 @@
 typedef std::vector<history::VisitInfo> VisitInfoVector;
 struct HistoryInfoMapValue {
   HistoryInfoMapValue();
+  HistoryInfoMapValue(const HistoryInfoMapValue& other);
   ~HistoryInfoMapValue();
 
   // This field is always populated.
@@ -168,6 +169,7 @@
 // A map from history_id to URL and page title word start metrics.
 struct RowWordStarts {
   RowWordStarts();
+  RowWordStarts(const RowWordStarts& other);
   ~RowWordStarts();
 
   // Clears both url_word_starts_ and title_word_starts_.
diff --git a/components/omnibox/browser/omnibox_edit_model.cc b/components/omnibox/browser/omnibox_edit_model.cc
index 03311cb..8730272 100644
--- a/components/omnibox/browser/omnibox_edit_model.cc
+++ b/components/omnibox/browser/omnibox_edit_model.cc
@@ -164,6 +164,8 @@
       autocomplete_input(autocomplete_input) {
 }
 
+OmniboxEditModel::State::State(const State& other) = default;
+
 OmniboxEditModel::State::~State() {
 }
 
diff --git a/components/omnibox/browser/omnibox_edit_model.h b/components/omnibox/browser/omnibox_edit_model.h
index 13f3035..4c567c2 100644
--- a/components/omnibox/browser/omnibox_edit_model.h
+++ b/components/omnibox/browser/omnibox_edit_model.h
@@ -63,6 +63,7 @@
           OmniboxFocusState focus_state,
           FocusSource focus_source,
           const AutocompleteInput& autocomplete_input);
+    State(const State& other);
     ~State();
 
     bool user_input_in_progress;
diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc
index 2f9db076..f7cc50b2 100644
--- a/components/omnibox/browser/omnibox_field_trial.cc
+++ b/components/omnibox/browser/omnibox_field_trial.cc
@@ -93,6 +93,9 @@
       use_decay_factor_(false) {
 }
 
+HUPScoringParams::ScoreBuckets::ScoreBuckets(const ScoreBuckets& other) =
+    default;
+
 HUPScoringParams::ScoreBuckets::~ScoreBuckets() {
 }
 
diff --git a/components/omnibox/browser/omnibox_field_trial.h b/components/omnibox/browser/omnibox_field_trial.h
index 51be5dc..8622b75 100644
--- a/components/omnibox/browser/omnibox_field_trial.h
+++ b/components/omnibox/browser/omnibox_field_trial.h
@@ -33,6 +33,7 @@
     typedef std::pair<double, int> CountMaxRelevance;
 
     ScoreBuckets();
+    ScoreBuckets(const ScoreBuckets& other);
     ~ScoreBuckets();
 
     // Computes a half-life time decay given the |elapsed_time|.
diff --git a/components/omnibox/browser/scored_history_match.cc b/components/omnibox/browser/scored_history_match.cc
index cca9028..fd3c17b 100644
--- a/components/omnibox/browser/scored_history_match.cc
+++ b/components/omnibox/browser/scored_history_match.cc
@@ -343,6 +343,9 @@
   url_matches = ReplaceOffsetsInTermMatches(url_matches, offsets);
 }
 
+ScoredHistoryMatch::ScoredHistoryMatch(const ScoredHistoryMatch& other) =
+    default;
+
 ScoredHistoryMatch::~ScoredHistoryMatch() {
 }
 
diff --git a/components/omnibox/browser/scored_history_match.h b/components/omnibox/browser/scored_history_match.h
index 0b2e1a0..c00aa603 100644
--- a/components/omnibox/browser/scored_history_match.h
+++ b/components/omnibox/browser/scored_history_match.h
@@ -31,6 +31,7 @@
 
   // Required for STL, we don't use this directly.
   ScoredHistoryMatch();
+  ScoredHistoryMatch(const ScoredHistoryMatch& other);
 
   // Initializes the ScoredHistoryMatch with a raw score calculated for the
   // history item given in |row| with recent visits as indicated in |visits|. It
diff --git a/components/omnibox/browser/search_suggestion_parser.cc b/components/omnibox/browser/search_suggestion_parser.cc
index d1cbc04..5bb0c01 100644
--- a/components/omnibox/browser/search_suggestion_parser.cc
+++ b/components/omnibox/browser/search_suggestion_parser.cc
@@ -62,6 +62,8 @@
       received_after_last_keystroke_(true),
       deletion_url_(deletion_url) {}
 
+SearchSuggestionParser::Result::Result(const Result& other) = default;
+
 SearchSuggestionParser::Result::~Result() {}
 
 // SearchSuggestionParser::SuggestResult ---------------------------------------
diff --git a/components/omnibox/browser/search_suggestion_parser.h b/components/omnibox/browser/search_suggestion_parser.h
index 448a1c4..83e07ab 100644
--- a/components/omnibox/browser/search_suggestion_parser.h
+++ b/components/omnibox/browser/search_suggestion_parser.h
@@ -44,6 +44,7 @@
            bool relevance_from_server,
            AutocompleteMatchType::Type type,
            const std::string& deletion_url);
+    Result(const Result& other);
     virtual ~Result();
 
     bool from_keyword_provider() const { return from_keyword_provider_; }
diff --git a/components/omnibox/browser/shortcuts_database.cc b/components/omnibox/browser/shortcuts_database.cc
index 6981c73..7ba8ea8 100644
--- a/components/omnibox/browser/shortcuts_database.cc
+++ b/components/omnibox/browser/shortcuts_database.cc
@@ -80,6 +80,9 @@
       keyword(keyword) {
 }
 
+ShortcutsDatabase::Shortcut::MatchCore::MatchCore(const MatchCore& other) =
+    default;
+
 ShortcutsDatabase::Shortcut::MatchCore::~MatchCore() {
 }
 
@@ -105,6 +108,8 @@
       number_of_hits(0) {
 }
 
+ShortcutsDatabase::Shortcut::Shortcut(const Shortcut& other) = default;
+
 ShortcutsDatabase::Shortcut::~Shortcut() {
 }
 
diff --git a/components/omnibox/browser/shortcuts_database.h b/components/omnibox/browser/shortcuts_database.h
index 10d6a4c..7647a72 100644
--- a/components/omnibox/browser/shortcuts_database.h
+++ b/components/omnibox/browser/shortcuts_database.h
@@ -51,6 +51,7 @@
                 int transition,
                 int type,
                 const base::string16& keyword);
+      MatchCore(const MatchCore& other);
       ~MatchCore();
 
       base::string16 fill_into_edit;
@@ -74,6 +75,7 @@
              int number_of_hits);
     // Required for STL, we don't use this directly.
     Shortcut();
+    Shortcut(const Shortcut& other);
     ~Shortcut();
 
     std::string id;  // Unique guid for the shortcut.
diff --git a/components/omnibox/browser/url_index_private_data.cc b/components/omnibox/browser/url_index_private_data.cc
index 0409ea6..3845922 100644
--- a/components/omnibox/browser/url_index_private_data.cc
+++ b/components/omnibox/browser/url_index_private_data.cc
@@ -1270,6 +1270,9 @@
 URLIndexPrivateData::SearchTermCacheItem::SearchTermCacheItem() : used_(true) {
 }
 
+URLIndexPrivateData::SearchTermCacheItem::SearchTermCacheItem(
+    const SearchTermCacheItem& other) = default;
+
 URLIndexPrivateData::SearchTermCacheItem::~SearchTermCacheItem() {
 }
 
@@ -1309,6 +1312,9 @@
   }
 }
 
+URLIndexPrivateData::AddHistoryMatch::AddHistoryMatch(
+    const AddHistoryMatch& other) = default;
+
 URLIndexPrivateData::AddHistoryMatch::~AddHistoryMatch() {
 }
 
diff --git a/components/omnibox/browser/url_index_private_data.h b/components/omnibox/browser/url_index_private_data.h
index 9253ee1..a7348cc 100644
--- a/components/omnibox/browser/url_index_private_data.h
+++ b/components/omnibox/browser/url_index_private_data.h
@@ -186,6 +186,7 @@
                         const HistoryIDSet& history_id_set);
     // Creates a cache item for a term which has no results.
     SearchTermCacheItem();
+    SearchTermCacheItem(const SearchTermCacheItem& other);
 
     ~SearchTermCacheItem();
 
@@ -206,6 +207,7 @@
                     const base::string16& lower_string,
                     const String16Vector& lower_terms,
                     const base::Time now);
+    AddHistoryMatch(const AddHistoryMatch& other);
     ~AddHistoryMatch();
 
     void operator()(const HistoryID history_id);
diff --git a/components/password_manager/core/browser/affiliation_utils.cc b/components/password_manager/core/browser/affiliation_utils.cc
index 5fa3ff7..853edc5 100644
--- a/components/password_manager/core/browser/affiliation_utils.cc
+++ b/components/password_manager/core/browser/affiliation_utils.cc
@@ -269,6 +269,9 @@
 AffiliatedFacetsWithUpdateTime::AffiliatedFacetsWithUpdateTime() {
 }
 
+AffiliatedFacetsWithUpdateTime::AffiliatedFacetsWithUpdateTime(
+    const AffiliatedFacetsWithUpdateTime& other) = default;
+
 AffiliatedFacetsWithUpdateTime::~AffiliatedFacetsWithUpdateTime() {
 }
 
diff --git a/components/password_manager/core/browser/affiliation_utils.h b/components/password_manager/core/browser/affiliation_utils.h
index d4a177a..ae2d986 100644
--- a/components/password_manager/core/browser/affiliation_utils.h
+++ b/components/password_manager/core/browser/affiliation_utils.h
@@ -163,6 +163,7 @@
 // authoritative source.
 struct AffiliatedFacetsWithUpdateTime {
   AffiliatedFacetsWithUpdateTime();
+  AffiliatedFacetsWithUpdateTime(const AffiliatedFacetsWithUpdateTime& other);
   ~AffiliatedFacetsWithUpdateTime();
 
   AffiliatedFacets facets;
diff --git a/components/password_manager/core/common/credential_manager_types.cc b/components/password_manager/core/common/credential_manager_types.cc
index a9bac49..1637fa7 100644
--- a/components/password_manager/core/common/credential_manager_types.cc
+++ b/components/password_manager/core/common/credential_manager_types.cc
@@ -34,6 +34,8 @@
   }
 }
 
+CredentialInfo::CredentialInfo(const CredentialInfo& other) = default;
+
 CredentialInfo::~CredentialInfo() {
 }
 
diff --git a/components/password_manager/core/common/credential_manager_types.h b/components/password_manager/core/common/credential_manager_types.h
index 7f7b170..85e9cb7b 100644
--- a/components/password_manager/core/common/credential_manager_types.h
+++ b/components/password_manager/core/common/credential_manager_types.h
@@ -33,6 +33,7 @@
 struct CredentialInfo {
   CredentialInfo();
   CredentialInfo(const autofill::PasswordForm& form, CredentialType form_type);
+  CredentialInfo(const CredentialInfo& other);
   ~CredentialInfo();
 
   bool operator==(const CredentialInfo& rhs) const;
diff --git a/components/printing/common/print_messages.cc b/components/printing/common/print_messages.cc
index 2f36b94..e1a107a 100644
--- a/components/printing/common/print_messages.cc
+++ b/components/printing/common/print_messages.cc
@@ -56,6 +56,9 @@
     should_print_backgrounds(false) {
 }
 
+PrintMsg_Print_Params::PrintMsg_Print_Params(
+    const PrintMsg_Print_Params& other) = default;
+
 PrintMsg_Print_Params::~PrintMsg_Print_Params() {}
 
 void PrintMsg_Print_Params::Reset() {
@@ -84,6 +87,9 @@
   : pages() {
 }
 
+PrintMsg_PrintPages_Params::PrintMsg_PrintPages_Params(
+    const PrintMsg_PrintPages_Params& other) = default;
+
 PrintMsg_PrintPages_Params::~PrintMsg_PrintPages_Params() {}
 
 void PrintMsg_PrintPages_Params::Reset() {
diff --git a/components/printing/common/print_messages.h b/components/printing/common/print_messages.h
index 2cbffeb..771a4c53 100644
--- a/components/printing/common/print_messages.h
+++ b/components/printing/common/print_messages.h
@@ -31,6 +31,7 @@
 
 struct PrintMsg_Print_Params {
   PrintMsg_Print_Params();
+  PrintMsg_Print_Params(const PrintMsg_Print_Params& other);
   ~PrintMsg_Print_Params();
 
   // Resets the members of the struct to 0.
@@ -59,6 +60,7 @@
 
 struct PrintMsg_PrintPages_Params {
   PrintMsg_PrintPages_Params();
+  PrintMsg_PrintPages_Params(const PrintMsg_PrintPages_Params& other);
   ~PrintMsg_PrintPages_Params();
 
   // Resets the members of the struct to 0.
diff --git a/components/proximity_auth/ble/bluetooth_low_energy_connection.cc b/components/proximity_auth/ble/bluetooth_low_energy_connection.cc
index 13992be8..77a65b66 100644
--- a/components/proximity_auth/ble/bluetooth_low_energy_connection.cc
+++ b/components/proximity_auth/ble/bluetooth_low_energy_connection.cc
@@ -318,6 +318,9 @@
       is_last_write_for_wire_message(flag),
       number_of_failed_attempts(0) {}
 
+BluetoothLowEnergyConnection::WriteRequest::WriteRequest(
+    const WriteRequest& other) = default;
+
 BluetoothLowEnergyConnection::WriteRequest::~WriteRequest() {}
 
 void BluetoothLowEnergyConnection::CompleteConnection() {
diff --git a/components/proximity_auth/ble/bluetooth_low_energy_connection.h b/components/proximity_auth/ble/bluetooth_low_energy_connection.h
index 2f62fee..a80fe1d9 100644
--- a/components/proximity_auth/ble/bluetooth_low_energy_connection.h
+++ b/components/proximity_auth/ble/bluetooth_low_energy_connection.h
@@ -138,6 +138,7 @@
   // SendStatusSignal + the serialized WireMessage.
   struct WriteRequest {
     WriteRequest(const std::vector<uint8_t>& val, bool flag);
+    WriteRequest(const WriteRequest& other);
     ~WriteRequest();
 
     std::vector<uint8_t> value;
diff --git a/components/proximity_auth/cryptauth/secure_message_delegate.cc b/components/proximity_auth/cryptauth/secure_message_delegate.cc
index 43f18c0..7fec5ec 100644
--- a/components/proximity_auth/cryptauth/secure_message_delegate.cc
+++ b/components/proximity_auth/cryptauth/secure_message_delegate.cc
@@ -15,6 +15,9 @@
 SecureMessageDelegate::CreateOptions::CreateOptions() {
 }
 
+SecureMessageDelegate::CreateOptions::CreateOptions(
+    const CreateOptions& other) = default;
+
 SecureMessageDelegate::CreateOptions::~CreateOptions() {
 }
 
diff --git a/components/proximity_auth/cryptauth/secure_message_delegate.h b/components/proximity_auth/cryptauth/secure_message_delegate.h
index 932ebc0a..ef5a277 100644
--- a/components/proximity_auth/cryptauth/secure_message_delegate.h
+++ b/components/proximity_auth/cryptauth/secure_message_delegate.h
@@ -20,6 +20,7 @@
   // Fields specifying how to create a SecureMessage.
   struct CreateOptions {
     CreateOptions();
+    CreateOptions(const CreateOptions& other);
     ~CreateOptions();
 
     // The scheme used to encrypt the message.
diff --git a/components/proximity_auth/remote_device.cc b/components/proximity_auth/remote_device.cc
index cabe714..cecf023 100644
--- a/components/proximity_auth/remote_device.cc
+++ b/components/proximity_auth/remote_device.cc
@@ -23,6 +23,8 @@
       persistent_symmetric_key(persistent_symmetric_key),
       sign_in_challenge(sign_in_challenge) {}
 
+RemoteDevice::RemoteDevice(const RemoteDevice& other) = default;
+
 RemoteDevice::~RemoteDevice() {}
 
 }  // namespace
diff --git a/components/proximity_auth/remote_device.h b/components/proximity_auth/remote_device.h
index 4e2e2c91..e10db03a 100644
--- a/components/proximity_auth/remote_device.h
+++ b/components/proximity_auth/remote_device.h
@@ -30,6 +30,7 @@
                const std::string& bluetooth_address,
                const std::string& persistent_symmetric_key,
                std::string sign_in_challenge);
+  RemoteDevice(const RemoteDevice& other);
   ~RemoteDevice();
 };
 
diff --git a/components/query_parser/snippet.cc b/components/query_parser/snippet.cc
index b4840c6..f704409c 100644
--- a/components/query_parser/snippet.cc
+++ b/components/query_parser/snippet.cc
@@ -208,6 +208,8 @@
 Snippet::Snippet() {
 }
 
+Snippet::Snippet(const Snippet& other) = default;
+
 Snippet::~Snippet() {
 }
 
diff --git a/components/query_parser/snippet.h b/components/query_parser/snippet.h
index b217901f..ed6a887 100644
--- a/components/query_parser/snippet.h
+++ b/components/query_parser/snippet.h
@@ -47,6 +47,7 @@
       Snippet::MatchPositions* match_positions);
 
   Snippet();
+  Snippet(const Snippet& other);
   ~Snippet();
 
   // Given |matches|, the match positions within |document|, compute the snippet
diff --git a/components/safe_browsing_db/hit_report.cc b/components/safe_browsing_db/hit_report.cc
index e8ae64e..cd14044e 100644
--- a/components/safe_browsing_db/hit_report.cc
+++ b/components/safe_browsing_db/hit_report.cc
@@ -8,6 +8,8 @@
 
 HitReport::HitReport() {}
 
+HitReport::HitReport(const HitReport& other) = default;
+
 HitReport::~HitReport() {}
 
 }  // namespace safe_browsing
diff --git a/components/safe_browsing_db/hit_report.h b/components/safe_browsing_db/hit_report.h
index 618db53..881a01f 100644
--- a/components/safe_browsing_db/hit_report.h
+++ b/components/safe_browsing_db/hit_report.h
@@ -27,6 +27,7 @@
 // sent as a POST instead of a GET.
 struct HitReport {
   HitReport();
+  HitReport(const HitReport& other);
   ~HitReport();
 
   GURL malicious_url;
diff --git a/components/safe_browsing_db/util.cc b/components/safe_browsing_db/util.cc
index 82ae16bd..18dd9f8 100644
--- a/components/safe_browsing_db/util.cc
+++ b/components/safe_browsing_db/util.cc
@@ -37,6 +37,9 @@
     const base::Time& in_expire_after)
     : expire_after(in_expire_after) {}
 
+SBCachedFullHashResult::SBCachedFullHashResult(
+    const SBCachedFullHashResult& other) = default;
+
 SBCachedFullHashResult::~SBCachedFullHashResult() {}
 
 // Listnames that browser can process.
diff --git a/components/safe_browsing_db/util.h b/components/safe_browsing_db/util.h
index 50134a0..8f82c60 100644
--- a/components/safe_browsing_db/util.h
+++ b/components/safe_browsing_db/util.h
@@ -78,6 +78,7 @@
 struct SBCachedFullHashResult {
   SBCachedFullHashResult();
   explicit SBCachedFullHashResult(const base::Time& in_expire_after);
+  SBCachedFullHashResult(const SBCachedFullHashResult& other);
   ~SBCachedFullHashResult();
 
   base::Time expire_after;
diff --git a/components/search_engines/keyword_web_data_service.cc b/components/search_engines/keyword_web_data_service.cc
index 1d6f00f5..d1e78962f 100644
--- a/components/search_engines/keyword_web_data_service.cc
+++ b/components/search_engines/keyword_web_data_service.cc
@@ -19,6 +19,8 @@
     builtin_keyword_version(0) {
 }
 
+WDKeywordsResult::WDKeywordsResult(const WDKeywordsResult& other) = default;
+
 WDKeywordsResult::~WDKeywordsResult() {}
 
 KeywordWebDataService::BatchModeScoper::BatchModeScoper(
diff --git a/components/search_engines/keyword_web_data_service.h b/components/search_engines/keyword_web_data_service.h
index ea4baa17..2c163b8e 100644
--- a/components/search_engines/keyword_web_data_service.h
+++ b/components/search_engines/keyword_web_data_service.h
@@ -25,6 +25,7 @@
 
 struct WDKeywordsResult {
   WDKeywordsResult();
+  WDKeywordsResult(const WDKeywordsResult& other);
   ~WDKeywordsResult();
 
   KeywordTable::Keywords keywords;
diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
index 52fcebc5..c9b2922c 100644
--- a/components/search_engines/template_url.cc
+++ b/components/search_engines/template_url.cc
@@ -153,6 +153,9 @@
       from_app_list(false),
       contextual_search_params(ContextualSearchParams()) {}
 
+TemplateURLRef::SearchTermsArgs::SearchTermsArgs(const SearchTermsArgs& other) =
+    default;
+
 TemplateURLRef::SearchTermsArgs::~SearchTermsArgs() {
 }
 
@@ -198,6 +201,9 @@
       resolve(resolve) {
 }
 
+TemplateURLRef::SearchTermsArgs::ContextualSearchParams::ContextualSearchParams(
+    const ContextualSearchParams& other) = default;
+
 TemplateURLRef::SearchTermsArgs::ContextualSearchParams::
     ~ContextualSearchParams() {
 }
diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h
index 42958ab..89d313a 100644
--- a/components/search_engines/template_url.h
+++ b/components/search_engines/template_url.h
@@ -73,6 +73,7 @@
   // is required and is passed in the constructor.
   struct SearchTermsArgs {
     explicit SearchTermsArgs(const base::string16& search_terms);
+    SearchTermsArgs(const SearchTermsArgs& other);
     ~SearchTermsArgs();
 
     struct ContextualSearchParams {
@@ -95,6 +96,7 @@
                              const std::string& base_page_url,
                              const std::string& encoding,
                              const bool resolve);
+      ContextualSearchParams(const ContextualSearchParams& other);
       ~ContextualSearchParams();
 
       // The version of contextual search.
diff --git a/components/search_engines/template_url_data.cc b/components/search_engines/template_url_data.cc
index 8013697..f415c77 100644
--- a/components/search_engines/template_url_data.cc
+++ b/components/search_engines/template_url_data.cc
@@ -24,6 +24,8 @@
       url_("x") {
 }
 
+TemplateURLData::TemplateURLData(const TemplateURLData& other) = default;
+
 TemplateURLData::~TemplateURLData() {
 }
 
diff --git a/components/search_engines/template_url_data.h b/components/search_engines/template_url_data.h
index 15fbad02..11943b0 100644
--- a/components/search_engines/template_url_data.h
+++ b/components/search_engines/template_url_data.h
@@ -18,6 +18,7 @@
 // whatever fields are desired, then create an immutable TemplateURL from it.
 struct TemplateURLData {
   TemplateURLData();
+  TemplateURLData(const TemplateURLData& other);
   ~TemplateURLData();
 
   // A short description of the template. This is the name we show to the user
diff --git a/components/search_engines/util.cc b/components/search_engines/util.cc
index e3c22c16..029c37f 100644
--- a/components/search_engines/util.cc
+++ b/components/search_engines/util.cc
@@ -182,6 +182,9 @@
 
 ActionsFromPrepopulateData::ActionsFromPrepopulateData() {}
 
+ActionsFromPrepopulateData::ActionsFromPrepopulateData(
+    const ActionsFromPrepopulateData& other) = default;
+
 ActionsFromPrepopulateData::~ActionsFromPrepopulateData() {}
 
 // This is invoked when the version of the prepopulate data changes.
diff --git a/components/search_engines/util.h b/components/search_engines/util.h
index baf822c..1b7d3eec 100644
--- a/components/search_engines/util.h
+++ b/components/search_engines/util.h
@@ -62,6 +62,7 @@
 
 struct ActionsFromPrepopulateData {
   ActionsFromPrepopulateData();
+  ActionsFromPrepopulateData(const ActionsFromPrepopulateData& other);
   ~ActionsFromPrepopulateData();
 
   TemplateURLService::TemplateURLVector removed_engines;
diff --git a/components/search_provider_logos/logo_common.cc b/components/search_provider_logos/logo_common.cc
index f88cfdba..178f22b 100644
--- a/components/search_provider_logos/logo_common.cc
+++ b/components/search_provider_logos/logo_common.cc
@@ -11,9 +11,11 @@
 const int64_t kMaxTimeToLiveMS = INT64_C(30 * 24 * 60 * 60 * 1000);  // 30 days
 
 LogoMetadata::LogoMetadata() : can_show_after_expiration(false) {}
+LogoMetadata::LogoMetadata(const LogoMetadata& other) = default;
 LogoMetadata::~LogoMetadata() {}
 
 EncodedLogo::EncodedLogo() {}
+EncodedLogo::EncodedLogo(const EncodedLogo& other) = default;
 EncodedLogo::~EncodedLogo() {}
 
 Logo::Logo() {}
diff --git a/components/search_provider_logos/logo_common.h b/components/search_provider_logos/logo_common.h
index 36577e7..ce94005f 100644
--- a/components/search_provider_logos/logo_common.h
+++ b/components/search_provider_logos/logo_common.h
@@ -21,6 +21,7 @@
 
 struct LogoMetadata {
   LogoMetadata();
+  LogoMetadata(const LogoMetadata& other);
   ~LogoMetadata();
 
   // For use by the client ----------------------------------------------------
@@ -53,6 +54,7 @@
 
 struct EncodedLogo {
   EncodedLogo();
+  EncodedLogo(const EncodedLogo& other);
   ~EncodedLogo();
 
   // The jpeg- or png-encoded image.
diff --git a/components/security_interstitials/core/metrics_helper.cc b/components/security_interstitials/core/metrics_helper.cc
index 7b2e3cd19..eea0ce2 100644
--- a/components/security_interstitials/core/metrics_helper.cc
+++ b/components/security_interstitials/core/metrics_helper.cc
@@ -108,6 +108,9 @@
 MetricsHelper::ReportDetails::ReportDetails()
     : rappor_report_type(rappor::NUM_RAPPOR_TYPES) {}
 
+MetricsHelper::ReportDetails::ReportDetails(const ReportDetails& other) =
+    default;
+
 MetricsHelper::MetricsHelper(const GURL& request_url,
                              const ReportDetails settings,
                              history::HistoryService* history_service,
diff --git a/components/security_interstitials/core/metrics_helper.h b/components/security_interstitials/core/metrics_helper.h
index 17b493d..aab9d10 100644
--- a/components/security_interstitials/core/metrics_helper.h
+++ b/components/security_interstitials/core/metrics_helper.h
@@ -67,6 +67,7 @@
   // The rappor preferences can be left blank if rappor_service is not set.
   struct ReportDetails {
     ReportDetails();
+    ReportDetails(const ReportDetails& other);
     std::string metric_prefix;
     std::string extra_suffix;
     std::string rappor_prefix;
diff --git a/components/sessions/core/serialized_navigation_entry.cc b/components/sessions/core/serialized_navigation_entry.cc
index 8dfd8a28..20466dc 100644
--- a/components/sessions/core/serialized_navigation_entry.cc
+++ b/components/sessions/core/serialized_navigation_entry.cc
@@ -30,6 +30,9 @@
       SerializedNavigationDriver::Get()->GetDefaultReferrerPolicy();
 }
 
+SerializedNavigationEntry::SerializedNavigationEntry(
+    const SerializedNavigationEntry& other) = default;
+
 SerializedNavigationEntry::~SerializedNavigationEntry() {}
 
 SerializedNavigationEntry SerializedNavigationEntry::FromSyncData(
diff --git a/components/sessions/core/serialized_navigation_entry.h b/components/sessions/core/serialized_navigation_entry.h
index 7831ef4..d3e2231 100644
--- a/components/sessions/core/serialized_navigation_entry.h
+++ b/components/sessions/core/serialized_navigation_entry.h
@@ -50,6 +50,7 @@
 
   // Creates an invalid (index < 0) SerializedNavigationEntry.
   SerializedNavigationEntry();
+  SerializedNavigationEntry(const SerializedNavigationEntry& other);
   ~SerializedNavigationEntry();
 
   // Construct a SerializedNavigationEntry for a particular index from a sync
diff --git a/components/signin/core/browser/account_info.cc b/components/signin/core/browser/account_info.cc
index 712e2a3..50c89ba 100644
--- a/components/signin/core/browser/account_info.cc
+++ b/components/signin/core/browser/account_info.cc
@@ -31,6 +31,7 @@
       locale(),
       picture_url(),
       is_child_account(false) {}
+AccountInfo::AccountInfo(const AccountInfo& other) = default;
 AccountInfo::~AccountInfo() {}
 
 bool AccountInfo::IsValid() const {
diff --git a/components/signin/core/browser/account_info.h b/components/signin/core/browser/account_info.h
index 79fb6fd..2ac96d8 100644
--- a/components/signin/core/browser/account_info.h
+++ b/components/signin/core/browser/account_info.h
@@ -10,6 +10,7 @@
 // Information about a specific account.
 struct AccountInfo {
   AccountInfo();
+  AccountInfo(const AccountInfo& other);
   ~AccountInfo();
 
   std::string account_id;  // The account ID used by OAuth2TokenService.
diff --git a/components/signin/core/browser/fake_profile_oauth2_token_service.cc b/components/signin/core/browser/fake_profile_oauth2_token_service.cc
index 5d699f89..6ad2458 100644
--- a/components/signin/core/browser/fake_profile_oauth2_token_service.cc
+++ b/components/signin/core/browser/fake_profile_oauth2_token_service.cc
@@ -12,6 +12,9 @@
 
 FakeProfileOAuth2TokenService::PendingRequest::PendingRequest() {}
 
+FakeProfileOAuth2TokenService::PendingRequest::PendingRequest(
+    const PendingRequest& other) = default;
+
 FakeProfileOAuth2TokenService::PendingRequest::~PendingRequest() {}
 
 FakeProfileOAuth2TokenService::FakeProfileOAuth2TokenService()
diff --git a/components/signin/core/browser/fake_profile_oauth2_token_service.h b/components/signin/core/browser/fake_profile_oauth2_token_service.h
index 5eda9c1..043fc9a 100644
--- a/components/signin/core/browser/fake_profile_oauth2_token_service.h
+++ b/components/signin/core/browser/fake_profile_oauth2_token_service.h
@@ -37,6 +37,7 @@
  public:
   struct PendingRequest {
     PendingRequest();
+    PendingRequest(const PendingRequest& other);
     ~PendingRequest();
 
     std::string account_id;
diff --git a/components/signin/core/browser/signin_header_helper.cc b/components/signin/core/browser/signin_header_helper.cc
index 26c7c15..319b6f8 100644
--- a/components/signin/core/browser/signin_header_helper.cc
+++ b/components/signin/core/browser/signin_header_helper.cc
@@ -143,6 +143,9 @@
 #endif  // !defined(OS_IOS)
 }
 
+ManageAccountsParams::ManageAccountsParams(const ManageAccountsParams& other) =
+    default;
+
 bool SettingsAllowSigninCookies(
     const content_settings::CookieSettings* cookie_settings) {
   GURL gaia_url = GaiaUrls::GetInstance()->gaia_url();
diff --git a/components/signin/core/browser/signin_header_helper.h b/components/signin/core/browser/signin_header_helper.h
index f5bd464a..8d5d37c 100644
--- a/components/signin/core/browser/signin_header_helper.h
+++ b/components/signin/core/browser/signin_header_helper.h
@@ -66,6 +66,7 @@
 #endif  // !defined(OS_IOS)
 
   ManageAccountsParams();
+  ManageAccountsParams(const ManageAccountsParams& other);
 };
 
 // Returns true if signin cookies are allowed.
diff --git a/components/storage_monitor/storage_info.cc b/components/storage_monitor/storage_info.cc
index 98bc7ce..a033940 100644
--- a/components/storage_monitor/storage_info.cc
+++ b/components/storage_monitor/storage_info.cc
@@ -55,6 +55,8 @@
 StorageInfo::StorageInfo() : total_size_in_bytes_(0) {
 }
 
+StorageInfo::StorageInfo(const StorageInfo& other) = default;
+
 StorageInfo::StorageInfo(const std::string& device_id_in,
                          const base::FilePath::StringType& device_location,
                          const base::string16& label,
diff --git a/components/storage_monitor/storage_info.h b/components/storage_monitor/storage_info.h
index d10e445..fc7d5202 100644
--- a/components/storage_monitor/storage_info.h
+++ b/components/storage_monitor/storage_info.h
@@ -41,6 +41,7 @@
               const base::string16& vendor,
               const base::string16& model,
               uint64_t size_in_bytes);
+  StorageInfo(const StorageInfo& other);
   ~StorageInfo();
 
   // Returns a device id given properties of the device. A prefix dependent on
diff --git a/components/suggestions/image_manager.cc b/components/suggestions/image_manager.cc
index 08cf3d7..28798190 100644
--- a/components/suggestions/image_manager.cc
+++ b/components/suggestions/image_manager.cc
@@ -54,6 +54,9 @@
 
 ImageManager::ImageCacheRequest::ImageCacheRequest() {}
 
+ImageManager::ImageCacheRequest::ImageCacheRequest(
+    const ImageCacheRequest& other) = default;
+
 ImageManager::ImageCacheRequest::~ImageCacheRequest() {}
 
 void ImageManager::Initialize(const SuggestionsProfile& suggestions) {
diff --git a/components/suggestions/image_manager.h b/components/suggestions/image_manager.h
index 24663498..b3fd15e 100644
--- a/components/suggestions/image_manager.h
+++ b/components/suggestions/image_manager.h
@@ -81,6 +81,7 @@
   // pending callbacks).
   struct ImageCacheRequest {
     ImageCacheRequest();
+    ImageCacheRequest(const ImageCacheRequest& other);
     ~ImageCacheRequest();
 
     GURL url;
diff --git a/components/sync_driver/data_type_manager.cc b/components/sync_driver/data_type_manager.cc
index 99dc70a..1288b23 100644
--- a/components/sync_driver/data_type_manager.cc
+++ b/components/sync_driver/data_type_manager.cc
@@ -16,6 +16,9 @@
     : status(status), requested_types(requested_types) {
 }
 
+DataTypeManager::ConfigureResult::ConfigureResult(
+    const ConfigureResult& other) = default;
+
 DataTypeManager::ConfigureResult::~ConfigureResult() {
 }
 
diff --git a/components/sync_driver/data_type_manager.h b/components/sync_driver/data_type_manager.h
index 784217b1..c7469845 100644
--- a/components/sync_driver/data_type_manager.h
+++ b/components/sync_driver/data_type_manager.h
@@ -45,6 +45,7 @@
     ConfigureResult();
     ConfigureResult(ConfigureStatus status,
                     syncer::ModelTypeSet requested_types);
+    ConfigureResult(const ConfigureResult& other);
     ~ConfigureResult();
 
     ConfigureStatus status;
diff --git a/components/sync_driver/data_type_manager_impl.cc b/components/sync_driver/data_type_manager_impl.cc
index b739611..e0cb7187 100644
--- a/components/sync_driver/data_type_manager_impl.cc
+++ b/components/sync_driver/data_type_manager_impl.cc
@@ -42,6 +42,8 @@
 }  // namespace
 
 DataTypeManagerImpl::AssociationTypesInfo::AssociationTypesInfo() {}
+DataTypeManagerImpl::AssociationTypesInfo::AssociationTypesInfo(
+    const AssociationTypesInfo& other) = default;
 DataTypeManagerImpl::AssociationTypesInfo::~AssociationTypesInfo() {}
 
 DataTypeManagerImpl::DataTypeManagerImpl(
diff --git a/components/sync_driver/data_type_manager_impl.h b/components/sync_driver/data_type_manager_impl.h
index 3c198c31..99514e01 100644
--- a/components/sync_driver/data_type_manager_impl.h
+++ b/components/sync_driver/data_type_manager_impl.h
@@ -186,6 +186,7 @@
   // Types waiting for association and related time tracking info.
   struct AssociationTypesInfo {
     AssociationTypesInfo();
+    AssociationTypesInfo(const AssociationTypesInfo& other);
     ~AssociationTypesInfo();
 
     // Types to associate.
diff --git a/components/sync_driver/data_type_status_table.cc b/components/sync_driver/data_type_status_table.cc
index fc940ce..666b7b4 100644
--- a/components/sync_driver/data_type_status_table.cc
+++ b/components/sync_driver/data_type_status_table.cc
@@ -25,6 +25,9 @@
 DataTypeStatusTable::DataTypeStatusTable() {
 }
 
+DataTypeStatusTable::DataTypeStatusTable(const DataTypeStatusTable& other) =
+    default;
+
 DataTypeStatusTable::~DataTypeStatusTable() {
 }
 
diff --git a/components/sync_driver/data_type_status_table.h b/components/sync_driver/data_type_status_table.h
index 536c1eb2..4cb1005 100644
--- a/components/sync_driver/data_type_status_table.h
+++ b/components/sync_driver/data_type_status_table.h
@@ -18,6 +18,7 @@
   typedef std::map<syncer::ModelType, syncer::SyncError> TypeErrorMap;
 
   DataTypeStatusTable();
+  DataTypeStatusTable(const DataTypeStatusTable& other);
   ~DataTypeStatusTable();
 
   // Copy and assign welcome.
diff --git a/components/sync_driver/glue/sync_backend_host_core.cc b/components/sync_driver/glue/sync_backend_host_core.cc
index 082e4cc..c2d59d9 100644
--- a/components/sync_driver/glue/sync_backend_host_core.cc
+++ b/components/sync_driver/glue/sync_backend_host_core.cc
@@ -116,6 +116,9 @@
 
 DoConfigureSyncerTypes::DoConfigureSyncerTypes() {}
 
+DoConfigureSyncerTypes::DoConfigureSyncerTypes(
+    const DoConfigureSyncerTypes& other) = default;
+
 DoConfigureSyncerTypes::~DoConfigureSyncerTypes() {}
 
 SyncBackendHostCore::SyncBackendHostCore(
diff --git a/components/sync_driver/glue/sync_backend_host_core.h b/components/sync_driver/glue/sync_backend_host_core.h
index 4bce014..8a6f7972 100644
--- a/components/sync_driver/glue/sync_backend_host_core.h
+++ b/components/sync_driver/glue/sync_backend_host_core.h
@@ -80,6 +80,7 @@
 // SyncBackendHost::Core::DoConfigureSyncer.
 struct DoConfigureSyncerTypes {
   DoConfigureSyncerTypes();
+  DoConfigureSyncerTypes(const DoConfigureSyncerTypes& other);
   ~DoConfigureSyncerTypes();
   syncer::ModelTypeSet to_download;
   syncer::ModelTypeSet to_purge;
diff --git a/components/translate/core/common/language_detection_details.cc b/components/translate/core/common/language_detection_details.cc
index 128b3451..5fd1b7b 100644
--- a/components/translate/core/common/language_detection_details.cc
+++ b/components/translate/core/common/language_detection_details.cc
@@ -10,6 +10,9 @@
     : is_cld_reliable(false), has_notranslate(false) {
 }
 
+LanguageDetectionDetails::LanguageDetectionDetails(
+    const LanguageDetectionDetails& other) = default;
+
 LanguageDetectionDetails::~LanguageDetectionDetails() {}
 
 }  // namespace translate
diff --git a/components/translate/core/common/language_detection_details.h b/components/translate/core/common/language_detection_details.h
index 55e672d5..d740570 100644
--- a/components/translate/core/common/language_detection_details.h
+++ b/components/translate/core/common/language_detection_details.h
@@ -15,6 +15,7 @@
 
 struct LanguageDetectionDetails {
   LanguageDetectionDetails();
+  LanguageDetectionDetails(const LanguageDetectionDetails& other);
   ~LanguageDetectionDetails();
 
   // The time when this was created.
diff --git a/components/update_client/crx_update_item.h b/components/update_client/crx_update_item.h
index c27ab41..b7c1ba1f 100644
--- a/components/update_client/crx_update_item.h
+++ b/components/update_client/crx_update_item.h
@@ -117,6 +117,7 @@
   std::vector<CrxDownloader::DownloadMetrics> download_metrics;
 
   CrxUpdateItem();
+  CrxUpdateItem(const CrxUpdateItem& other);
   ~CrxUpdateItem();
 
   // Function object used to find a specific component.
diff --git a/components/update_client/update_client.cc b/components/update_client/update_client.cc
index ece7cedc..86b3dfc 100644
--- a/components/update_client/update_client.cc
+++ b/components/update_client/update_client.cc
@@ -47,12 +47,16 @@
       diff_extra_code1(0) {
 }
 
+CrxUpdateItem::CrxUpdateItem(const CrxUpdateItem& other) = default;
+
 CrxUpdateItem::~CrxUpdateItem() {
 }
 
 CrxComponent::CrxComponent() : allow_background_download(true) {
 }
 
+CrxComponent::CrxComponent(const CrxComponent& other) = default;
+
 CrxComponent::~CrxComponent() {
 }
 
diff --git a/components/update_client/update_client.h b/components/update_client/update_client.h
index 7e6329f..12d19c9 100644
--- a/components/update_client/update_client.h
+++ b/components/update_client/update_client.h
@@ -182,6 +182,7 @@
 // TODO(sorin): this structure will be refactored soon.
 struct CrxComponent {
   CrxComponent();
+  CrxComponent(const CrxComponent& other);
   ~CrxComponent();
 
   // SHA256 hash of the CRX's public key.
diff --git a/components/update_client/update_response.cc b/components/update_client/update_response.cc
index cbdaee8..bdf77f8 100644
--- a/components/update_client/update_response.cc
+++ b/components/update_client/update_response.cc
@@ -28,22 +28,26 @@
 
 UpdateResponse::Results::Results() : daystart_elapsed_seconds(kNoDaystart) {
 }
+UpdateResponse::Results::Results(const Results& other) = default;
 UpdateResponse::Results::~Results() {
 }
 
 UpdateResponse::Result::Result() {
 }
-
+UpdateResponse::Result::Result(const Result& other) = default;
 UpdateResponse::Result::~Result() {
 }
 
 UpdateResponse::Result::Manifest::Manifest() {
 }
+UpdateResponse::Result::Manifest::Manifest(const Manifest& other) = default;
 UpdateResponse::Result::Manifest::~Manifest() {
 }
 
 UpdateResponse::Result::Manifest::Package::Package() : size(0), sizediff(0) {
 }
+UpdateResponse::Result::Manifest::Package::Package(const Package& other) =
+    default;
 UpdateResponse::Result::Manifest::Package::~Package() {
 }
 
diff --git a/components/update_client/update_response.h b/components/update_client/update_response.h
index 8341d28..6d93d26 100644
--- a/components/update_client/update_response.h
+++ b/components/update_client/update_response.h
@@ -62,6 +62,7 @@
     struct Manifest {
       struct Package {
         Package();
+        Package(const Package& other);
         ~Package();
 
         std::string fingerprint;
@@ -78,6 +79,7 @@
       };
 
       Manifest();
+      Manifest(const Manifest& other);
       ~Manifest();
 
       std::string version;
@@ -86,6 +88,7 @@
     };
 
     Result();
+    Result(const Result& other);
     ~Result();
 
     std::string extension_id;
@@ -101,6 +104,7 @@
   static const int kNoDaystart = -1;
   struct Results {
     Results();
+    Results(const Results& other);
     ~Results();
 
     // This will be >= 0, or kNoDaystart if the <daystart> tag was not present.
diff --git a/components/url_matcher/url_matcher.cc b/components/url_matcher/url_matcher.cc
index 5281c9f..f126322 100644
--- a/components/url_matcher/url_matcher.cc
+++ b/components/url_matcher/url_matcher.cc
@@ -619,6 +619,9 @@
   value_length_ = value_.length();
 }
 
+URLQueryElementMatcherCondition::URLQueryElementMatcherCondition(
+    const URLQueryElementMatcherCondition& other) = default;
+
 URLQueryElementMatcherCondition::~URLQueryElementMatcherCondition() {}
 
 bool URLQueryElementMatcherCondition::operator<(
diff --git a/components/url_matcher/url_matcher.h b/components/url_matcher/url_matcher.h
index 552f1f3a..2e9afe1 100644
--- a/components/url_matcher/url_matcher.h
+++ b/components/url_matcher/url_matcher.h
@@ -253,6 +253,7 @@
                                   QueryElementType query_element_type,
                                   Type match_type,
                                   URLMatcherConditionFactory* factory);
+  URLQueryElementMatcherCondition(const URLQueryElementMatcherCondition& other);
   ~URLQueryElementMatcherCondition();
 
   bool operator<(const URLQueryElementMatcherCondition& rhs) const;