net: 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]

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

Cr-Commit-Position: refs/heads/master@{#377976}
diff --git a/net/base/ip_address.cc b/net/base/ip_address.cc
index f9565e5ad..170be40 100644
--- a/net/base/ip_address.cc
+++ b/net/base/ip_address.cc
@@ -17,6 +17,8 @@
 
 IPAddress::IPAddress(const IPAddressNumber& address) : ip_address_(address) {}
 
+IPAddress::IPAddress(const IPAddress& other) = default;
+
 IPAddress::IPAddress(const uint8_t* address, size_t address_len)
     : ip_address_(address, address + address_len) {}
 
diff --git a/net/base/ip_address.h b/net/base/ip_address.h
index f46eadb..f1f7480 100644
--- a/net/base/ip_address.h
+++ b/net/base/ip_address.h
@@ -29,6 +29,8 @@
   // Creates an IP address from a deprecated IPAddressNumber.
   explicit IPAddress(const IPAddressNumber& address);
 
+  IPAddress(const IPAddress& other);
+
   // Copies the input address to |ip_address_|. The input is expected to be in
   // network byte order.
   template <size_t N>
diff --git a/net/base/load_timing_info.cc b/net/base/load_timing_info.cc
index ce4df2d..309e7b3 100644
--- a/net/base/load_timing_info.cc
+++ b/net/base/load_timing_info.cc
@@ -16,6 +16,8 @@
                                    socket_log_id(NetLog::Source::kInvalidId) {
 }
 
+LoadTimingInfo::LoadTimingInfo(const LoadTimingInfo& other) = default;
+
 LoadTimingInfo::~LoadTimingInfo() {}
 
 }  // namespace net
diff --git a/net/base/load_timing_info.h b/net/base/load_timing_info.h
index 22a59082..8ee5a22 100644
--- a/net/base/load_timing_info.h
+++ b/net/base/load_timing_info.h
@@ -93,6 +93,7 @@
   };
 
   LoadTimingInfo();
+  LoadTimingInfo(const LoadTimingInfo& other);
   ~LoadTimingInfo();
 
   // True if the socket was reused.  When true, DNS, connect, and SSL times
diff --git a/net/base/network_interfaces.cc b/net/base/network_interfaces.cc
index 6792fca..96a9ef4d 100644
--- a/net/base/network_interfaces.cc
+++ b/net/base/network_interfaces.cc
@@ -37,6 +37,8 @@
       ip_address_attributes(ip_address_attributes) {
 }
 
+NetworkInterface::NetworkInterface(const NetworkInterface& other) = default;
+
 NetworkInterface::~NetworkInterface() {
 }
 
diff --git a/net/base/network_interfaces.h b/net/base/network_interfaces.h
index 09a085f..a4246e2 100644
--- a/net/base/network_interfaces.h
+++ b/net/base/network_interfaces.h
@@ -47,6 +47,7 @@
                    const IPAddressNumber& address,
                    uint32_t prefix_length,
                    int ip_address_attributes);
+  NetworkInterface(const NetworkInterface& other);
   ~NetworkInterface();
 
   std::string name;
diff --git a/net/base/prioritized_dispatcher.cc b/net/base/prioritized_dispatcher.cc
index b72f7a50..a6125a0 100644
--- a/net/base/prioritized_dispatcher.cc
+++ b/net/base/prioritized_dispatcher.cc
@@ -12,6 +12,8 @@
                                       size_t total_jobs)
     : total_jobs(total_jobs), reserved_slots(num_priorities) {}
 
+PrioritizedDispatcher::Limits::Limits(const Limits& other) = default;
+
 PrioritizedDispatcher::Limits::~Limits() {}
 
 PrioritizedDispatcher::PrioritizedDispatcher(const Limits& limits)
diff --git a/net/base/prioritized_dispatcher.h b/net/base/prioritized_dispatcher.h
index 8da8a1a..a0716cc 100644
--- a/net/base/prioritized_dispatcher.h
+++ b/net/base/prioritized_dispatcher.h
@@ -40,6 +40,7 @@
   // for priority 3 or above.
   struct NET_EXPORT_PRIVATE Limits {
     Limits(Priority num_priorities, size_t total_jobs);
+    Limits(const Limits& other);
     ~Limits();
 
     // Total allowed running jobs.
diff --git a/net/cert/cert_verify_result.cc b/net/cert/cert_verify_result.cc
index 2a41893..7a1082e 100644
--- a/net/cert/cert_verify_result.cc
+++ b/net/cert/cert_verify_result.cc
@@ -12,6 +12,8 @@
   Reset();
 }
 
+CertVerifyResult::CertVerifyResult(const CertVerifyResult& other) = default;
+
 CertVerifyResult::~CertVerifyResult() {
 }
 
diff --git a/net/cert/cert_verify_result.h b/net/cert/cert_verify_result.h
index 1f81da2..1cfb8fa5 100644
--- a/net/cert/cert_verify_result.h
+++ b/net/cert/cert_verify_result.h
@@ -20,6 +20,7 @@
 class NET_EXPORT CertVerifyResult {
  public:
   CertVerifyResult();
+  CertVerifyResult(const CertVerifyResult& other);
   ~CertVerifyResult();
 
   void Reset();
diff --git a/net/cert/ct_verify_result.cc b/net/cert/ct_verify_result.cc
index b323040a..de5bea0d 100644
--- a/net/cert/ct_verify_result.cc
+++ b/net/cert/ct_verify_result.cc
@@ -16,6 +16,8 @@
           ct::CertPolicyCompliance::CERT_POLICY_COMPLIES_VIA_SCTS),
       ev_policy_compliance(ct::EVPolicyCompliance::EV_POLICY_DOES_NOT_APPLY) {}
 
+CTVerifyResult::CTVerifyResult(const CTVerifyResult& other) = default;
+
 CTVerifyResult::~CTVerifyResult() {}
 
 }  // namespace ct
diff --git a/net/cert/ct_verify_result.h b/net/cert/ct_verify_result.h
index f2cdd13..ca16358 100644
--- a/net/cert/ct_verify_result.h
+++ b/net/cert/ct_verify_result.h
@@ -24,6 +24,7 @@
 // connection.
 struct NET_EXPORT CTVerifyResult {
   CTVerifyResult();
+  CTVerifyResult(const CTVerifyResult& other);
   ~CTVerifyResult();
 
   // SCTs from known logs where the signature verified correctly.
diff --git a/net/cert/multi_threaded_cert_verifier.cc b/net/cert/multi_threaded_cert_verifier.cc
index 23f1d87..714b291 100644
--- a/net/cert/multi_threaded_cert_verifier.cc
+++ b/net/cert/multi_threaded_cert_verifier.cc
@@ -497,6 +497,9 @@
     hash_values.push_back(additional_trust_anchors[i]->fingerprint());
 }
 
+MultiThreadedCertVerifier::RequestParams::RequestParams(
+    const RequestParams& other) = default;
+
 MultiThreadedCertVerifier::RequestParams::~RequestParams() {}
 
 bool MultiThreadedCertVerifier::RequestParams::operator<(
diff --git a/net/cert/multi_threaded_cert_verifier.h b/net/cert/multi_threaded_cert_verifier.h
index 30234ff9..83d00dd 100644
--- a/net/cert/multi_threaded_cert_verifier.h
+++ b/net/cert/multi_threaded_cert_verifier.h
@@ -92,6 +92,7 @@
                   const std::string& ocsp_response_arg,
                   int flags_arg,
                   const CertificateList& additional_trust_anchors);
+    RequestParams(const RequestParams& other);
     ~RequestParams();
 
     bool operator<(const RequestParams& other) const;
diff --git a/net/cert/nss_cert_database.cc b/net/cert/nss_cert_database.cc
index 53ea7c7..e85ce3ba 100644
--- a/net/cert/nss_cert_database.cc
+++ b/net/cert/nss_cert_database.cc
@@ -78,6 +78,9 @@
     int err)
     : certificate(cert), net_error(err) {}
 
+NSSCertDatabase::ImportCertFailure::ImportCertFailure(
+    const ImportCertFailure& other) = default;
+
 NSSCertDatabase::ImportCertFailure::~ImportCertFailure() {}
 
 NSSCertDatabase::NSSCertDatabase(crypto::ScopedPK11Slot public_slot,
diff --git a/net/cert/nss_cert_database.h b/net/cert/nss_cert_database.h
index ff96af0..de783eb4 100644
--- a/net/cert/nss_cert_database.h
+++ b/net/cert/nss_cert_database.h
@@ -65,6 +65,7 @@
   struct NET_EXPORT ImportCertFailure {
    public:
     ImportCertFailure(const scoped_refptr<X509Certificate>& cert, int err);
+    ImportCertFailure(const ImportCertFailure& other);
     ~ImportCertFailure();
 
     scoped_refptr<X509Certificate> certificate;
diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc
index cdd011f..fff3fa44 100644
--- a/net/cookies/canonical_cookie.cc
+++ b/net/cookies/canonical_cookie.cc
@@ -176,6 +176,8 @@
   domain_ = cookie_domain;
 }
 
+CanonicalCookie::CanonicalCookie(const CanonicalCookie& other) = default;
+
 CanonicalCookie::~CanonicalCookie() {
 }
 
diff --git a/net/cookies/canonical_cookie.h b/net/cookies/canonical_cookie.h
index fbca57fa..6f43d9e 100644
--- a/net/cookies/canonical_cookie.h
+++ b/net/cookies/canonical_cookie.h
@@ -46,6 +46,8 @@
   // in which pre-validation of the ParsedCookie has not been done.
   CanonicalCookie(const GURL& url, const ParsedCookie& pc);
 
+  CanonicalCookie(const CanonicalCookie& other);
+
   ~CanonicalCookie();
 
   // Supports the default copy constructor.
diff --git a/net/disk_cache/blockfile/index_table_v3.cc b/net/disk_cache/blockfile/index_table_v3.cc
index 9c24e80..9dca3de 100644
--- a/net/disk_cache/blockfile/index_table_v3.cc
+++ b/net/disk_cache/blockfile/index_table_v3.cc
@@ -403,6 +403,8 @@
 EntrySet::EntrySet() : evicted_count(0), current(0) {
 }
 
+EntrySet::EntrySet(const EntrySet& other) = default;
+
 EntrySet::~EntrySet() {
 }
 
diff --git a/net/disk_cache/blockfile/index_table_v3.h b/net/disk_cache/blockfile/index_table_v3.h
index 78122c8..001b438 100644
--- a/net/disk_cache/blockfile/index_table_v3.h
+++ b/net/disk_cache/blockfile/index_table_v3.h
@@ -110,6 +110,7 @@
 // Keeps a collection of EntryCells in order to be processed.
 struct NET_EXPORT_PRIVATE EntrySet {
   EntrySet();
+  EntrySet(const EntrySet& other);
   ~EntrySet();
 
   int evicted_count;  // The numebr of evicted entries in this set.
diff --git a/net/dns/dns_config_service.cc b/net/dns/dns_config_service.cc
index 83c8944e..e58fdfad 100644
--- a/net/dns/dns_config_service.cc
+++ b/net/dns/dns_config_service.cc
@@ -107,6 +107,8 @@
       edns0(false),
       use_local_ipv6(false) {}
 
+DnsConfig::DnsConfig(const DnsConfig& other) = default;
+
 DnsConfig::~DnsConfig() {}
 
 bool DnsConfig::Equals(const DnsConfig& d) const {
diff --git a/net/dns/dns_config_service.h b/net/dns/dns_config_service.h
index fbbdb41..1053e86 100644
--- a/net/dns/dns_config_service.h
+++ b/net/dns/dns_config_service.h
@@ -66,6 +66,7 @@
 // DnsConfig stores configuration of the system resolver.
 struct NET_EXPORT_PRIVATE DnsConfig {
   DnsConfig();
+  DnsConfig(const DnsConfig& other);
   virtual ~DnsConfig();
 
   bool Equals(const DnsConfig& d) const;
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
index 93750ffc..af91b09 100644
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -1854,6 +1854,9 @@
     max_retry_attempts = kDefaultMaxRetryAttempts;
 }
 
+HostResolverImpl::ProcTaskParams::ProcTaskParams(const ProcTaskParams& other) =
+    default;
+
 HostResolverImpl::ProcTaskParams::~ProcTaskParams() {}
 
 HostResolverImpl::HostResolverImpl(const Options& options, NetLog* net_log)
diff --git a/net/dns/host_resolver_impl.h b/net/dns/host_resolver_impl.h
index 245bde2..aa76363 100644
--- a/net/dns/host_resolver_impl.h
+++ b/net/dns/host_resolver_impl.h
@@ -82,6 +82,8 @@
     // Sets up defaults.
     ProcTaskParams(HostResolverProc* resolver_proc, size_t max_retry_attempts);
 
+    ProcTaskParams(const ProcTaskParams& other);
+
     ~ProcTaskParams();
 
     // The procedure to use for resolving host names. This will be NULL, except
diff --git a/net/ftp/ftp_ctrl_response_buffer.cc b/net/ftp/ftp_ctrl_response_buffer.cc
index 064068e..8dd631b 100644
--- a/net/ftp/ftp_ctrl_response_buffer.cc
+++ b/net/ftp/ftp_ctrl_response_buffer.cc
@@ -20,6 +20,8 @@
 
 FtpCtrlResponse::FtpCtrlResponse() : status_code(kInvalidStatusCode) {}
 
+FtpCtrlResponse::FtpCtrlResponse(const FtpCtrlResponse& other) = default;
+
 FtpCtrlResponse::~FtpCtrlResponse() {}
 
 FtpCtrlResponseBuffer::FtpCtrlResponseBuffer(const BoundNetLog& net_log)
@@ -112,6 +114,9 @@
       status_code(FtpCtrlResponse::kInvalidStatusCode) {
 }
 
+FtpCtrlResponseBuffer::ParsedLine::ParsedLine(const ParsedLine& other) =
+    default;
+
 // static
 FtpCtrlResponseBuffer::ParsedLine FtpCtrlResponseBuffer::ParseLine(
     const std::string& line) {
diff --git a/net/ftp/ftp_ctrl_response_buffer.h b/net/ftp/ftp_ctrl_response_buffer.h
index ae90fea5..b53b7a91 100644
--- a/net/ftp/ftp_ctrl_response_buffer.h
+++ b/net/ftp/ftp_ctrl_response_buffer.h
@@ -19,6 +19,7 @@
   static const int kInvalidStatusCode;
 
   FtpCtrlResponse();
+  FtpCtrlResponse(const FtpCtrlResponse& other);
   ~FtpCtrlResponse();
 
   int status_code;                 // Three-digit status code.
@@ -44,6 +45,7 @@
  private:
   struct ParsedLine {
     ParsedLine();
+    ParsedLine(const ParsedLine& other);
 
     // Indicates that this line begins with a valid 3-digit status code.
     bool has_status_code;
diff --git a/net/http/http_auth_cache.cc b/net/http/http_auth_cache.cc
index d76d3ed40..7a3a4e0 100644
--- a/net/http/http_auth_cache.cc
+++ b/net/http/http_auth_cache.cc
@@ -180,6 +180,8 @@
   return entry;
 }
 
+HttpAuthCache::Entry::Entry(const Entry& other) = default;
+
 HttpAuthCache::Entry::~Entry() {
 }
 
diff --git a/net/http/http_auth_cache.h b/net/http/http_auth_cache.h
index 53b998f..9190e42 100644
--- a/net/http/http_auth_cache.h
+++ b/net/http/http_auth_cache.h
@@ -31,6 +31,7 @@
  public:
   class NET_EXPORT_PRIVATE Entry {
    public:
+    Entry(const Entry& other);
     ~Entry();
 
     const GURL& origin() const {
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
index 7337d4f8..509a0a74 100644
--- a/net/http/http_network_session.cc
+++ b/net/http/http_network_session.cc
@@ -136,6 +136,8 @@
   quic_supported_versions.push_back(QUIC_VERSION_27);
 }
 
+HttpNetworkSession::Params::Params(const Params& other) = default;
+
 HttpNetworkSession::Params::~Params() {}
 
 // TODO(mbelshe): Move the socket factories into HttpStreamFactory.
diff --git a/net/http/http_network_session.h b/net/http/http_network_session.h
index 5e4ac4e..30cec77 100644
--- a/net/http/http_network_session.h
+++ b/net/http/http_network_session.h
@@ -64,6 +64,7 @@
  public:
   struct NET_EXPORT Params {
     Params();
+    Params(const Params& other);
     ~Params();
 
     ClientSocketFactory* client_socket_factory;
diff --git a/net/http/http_request_headers.cc b/net/http/http_request_headers.cc
index 4e2ae0e..71710cd 100644
--- a/net/http/http_request_headers.cc
+++ b/net/http/http_request_headers.cc
@@ -70,6 +70,8 @@
 }
 
 HttpRequestHeaders::HttpRequestHeaders() {}
+HttpRequestHeaders::HttpRequestHeaders(const HttpRequestHeaders& other) =
+    default;
 HttpRequestHeaders::~HttpRequestHeaders() {}
 
 bool HttpRequestHeaders::GetHeader(const base::StringPiece& key,
diff --git a/net/http/http_request_headers.h b/net/http/http_request_headers.h
index db70004..c500d8c3 100644
--- a/net/http/http_request_headers.h
+++ b/net/http/http_request_headers.h
@@ -81,6 +81,7 @@
   static const char kUserAgent[];
 
   HttpRequestHeaders();
+  HttpRequestHeaders(const HttpRequestHeaders& other);
   ~HttpRequestHeaders();
 
   bool IsEmpty() const { return headers_.empty(); }
diff --git a/net/http/http_request_info.cc b/net/http/http_request_info.cc
index 794aa1c..d51d3d0 100644
--- a/net/http/http_request_info.cc
+++ b/net/http/http_request_info.cc
@@ -13,6 +13,8 @@
       privacy_mode(PRIVACY_MODE_DISABLED) {
 }
 
+HttpRequestInfo::HttpRequestInfo(const HttpRequestInfo& other) = default;
+
 HttpRequestInfo::~HttpRequestInfo() {}
 
 }  // namespace net
diff --git a/net/http/http_request_info.h b/net/http/http_request_info.h
index 0c4c09d..2079f19 100644
--- a/net/http/http_request_info.h
+++ b/net/http/http_request_info.h
@@ -28,6 +28,7 @@
   };
 
   HttpRequestInfo();
+  HttpRequestInfo(const HttpRequestInfo& other);
   ~HttpRequestInfo();
 
   // The requested URL.
diff --git a/net/http/http_util.cc b/net/http/http_util.cc
index 6192c89..940ee80 100644
--- a/net/http/http_util.cc
+++ b/net/http/http_util.cc
@@ -867,6 +867,8 @@
   values_.set_quote_chars("\'\"");
 }
 
+HttpUtil::ValuesIterator::ValuesIterator(const ValuesIterator& other) = default;
+
 HttpUtil::ValuesIterator::~ValuesIterator() {
 }
 
@@ -903,6 +905,9 @@
     char delimiter)
     : NameValuePairsIterator(begin, end, delimiter, VALUES_NOT_OPTIONAL) {}
 
+HttpUtil::NameValuePairsIterator::NameValuePairsIterator(
+    const NameValuePairsIterator& other) = default;
+
 HttpUtil::NameValuePairsIterator::~NameValuePairsIterator() {}
 
 // We expect properties to be formatted as one of:
diff --git a/net/http/http_util.h b/net/http/http_util.h
index 13209b8..7e713103 100644
--- a/net/http/http_util.h
+++ b/net/http/http_util.h
@@ -291,6 +291,7 @@
     ValuesIterator(std::string::const_iterator values_begin,
                    std::string::const_iterator values_end,
                    char delimiter);
+    ValuesIterator(const ValuesIterator& other);
     ~ValuesIterator();
 
     // Advances the iterator to the next value, if any.  Returns true if there
@@ -338,6 +339,8 @@
                            std::string::const_iterator end,
                            char delimiter);
 
+    NameValuePairsIterator(const NameValuePairsIterator& other);
+
     ~NameValuePairsIterator();
 
     // Advances the iterator to the next pair, if any.  Returns true if there
diff --git a/net/http/mock_gssapi_library_posix.cc b/net/http/mock_gssapi_library_posix.cc
index b4d6514..ce21159 100644
--- a/net/http/mock_gssapi_library_posix.cc
+++ b/net/http/mock_gssapi_library_posix.cc
@@ -226,6 +226,9 @@
   }
 }
 
+MockGSSAPILibrary::SecurityContextQuery::SecurityContextQuery(
+    const SecurityContextQuery& other) = default;
+
 MockGSSAPILibrary::SecurityContextQuery::~SecurityContextQuery() {}
 
 MockGSSAPILibrary::MockGSSAPILibrary() {
diff --git a/net/http/mock_gssapi_library_posix.h b/net/http/mock_gssapi_library_posix.h
index 3d5f248..07f2542 100644
--- a/net/http/mock_gssapi_library_posix.h
+++ b/net/http/mock_gssapi_library_posix.h
@@ -52,6 +52,7 @@
                          const test::GssContextMockImpl& context_info,
                          const char* expected_input_token,
                          const char* output_token);
+    SecurityContextQuery(const SecurityContextQuery& other);
     ~SecurityContextQuery();
 
     std::string expected_package;
diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc
index 4475b0d..dc6fd93 100644
--- a/net/http/transport_security_state.cc
+++ b/net/http/transport_security_state.cc
@@ -1256,6 +1256,8 @@
 TransportSecurityState::PKPState::PKPState() : include_subdomains(false) {
 }
 
+TransportSecurityState::PKPState::PKPState(const PKPState& other) = default;
+
 TransportSecurityState::PKPState::~PKPState() {
 }
 
diff --git a/net/http/transport_security_state.h b/net/http/transport_security_state.h
index a4c52e7..bb79c8e 100644
--- a/net/http/transport_security_state.h
+++ b/net/http/transport_security_state.h
@@ -110,6 +110,7 @@
   class NET_EXPORT PKPState {
    public:
     PKPState();
+    PKPState(const PKPState& other);
     ~PKPState();
 
     // The absolute time (UTC) when the |spki_hashes| (and other state) were
diff --git a/net/proxy/proxy_config.cc b/net/proxy/proxy_config.cc
index 78d6ef3..ff05b63 100644
--- a/net/proxy/proxy_config.cc
+++ b/net/proxy/proxy_config.cc
@@ -42,6 +42,8 @@
       type(TYPE_NO_RULES) {
 }
 
+ProxyConfig::ProxyRules::ProxyRules(const ProxyRules& other) = default;
+
 ProxyConfig::ProxyRules::~ProxyRules() {
 }
 
diff --git a/net/proxy/proxy_config.h b/net/proxy/proxy_config.h
index 2e91923..68deafdf 100644
--- a/net/proxy/proxy_config.h
+++ b/net/proxy/proxy_config.h
@@ -49,6 +49,7 @@
     // Note that the default of TYPE_NO_RULES results in direct connections
     // being made when using this ProxyConfig.
     ProxyRules();
+    ProxyRules(const ProxyRules& other);
     ~ProxyRules();
 
     bool empty() const {
diff --git a/net/proxy/proxy_info.cc b/net/proxy/proxy_info.cc
index b659d67..7500079 100644
--- a/net/proxy/proxy_info.cc
+++ b/net/proxy/proxy_info.cc
@@ -15,6 +15,8 @@
       did_use_pac_script_(false) {
 }
 
+ProxyInfo::ProxyInfo(const ProxyInfo& other) = default;
+
 ProxyInfo::~ProxyInfo() {
 }
 
diff --git a/net/proxy/proxy_info.h b/net/proxy/proxy_info.h
index 1dc7388..3d06a75 100644
--- a/net/proxy/proxy_info.h
+++ b/net/proxy/proxy_info.h
@@ -22,6 +22,7 @@
 class NET_EXPORT ProxyInfo {
  public:
   ProxyInfo();
+  ProxyInfo(const ProxyInfo& other);
   ~ProxyInfo();
   // Default copy-constructor and assignment operator are OK!
 
diff --git a/net/proxy/proxy_list.cc b/net/proxy/proxy_list.cc
index a7b7aef..5f627e0c 100644
--- a/net/proxy/proxy_list.cc
+++ b/net/proxy/proxy_list.cc
@@ -19,6 +19,8 @@
 ProxyList::ProxyList() {
 }
 
+ProxyList::ProxyList(const ProxyList& other) = default;
+
 ProxyList::~ProxyList() {
 }
 
diff --git a/net/proxy/proxy_list.h b/net/proxy/proxy_list.h
index 82c637d..d128e18 100644
--- a/net/proxy/proxy_list.h
+++ b/net/proxy/proxy_list.h
@@ -29,6 +29,7 @@
 class NET_EXPORT_PRIVATE ProxyList {
  public:
   ProxyList();
+  ProxyList(const ProxyList& other);
   ~ProxyList();
 
   // Initializes the proxy list to a string containing one or more proxy servers
diff --git a/net/quic/iovector.cc b/net/quic/iovector.cc
index a6d2c61..effa52d 100644
--- a/net/quic/iovector.cc
+++ b/net/quic/iovector.cc
@@ -8,6 +8,8 @@
 
 IOVector::IOVector() {}
 
+IOVector::IOVector(const IOVector& other) = default;
+
 IOVector::~IOVector() {}
 
 }  // namespace net
diff --git a/net/quic/iovector.h b/net/quic/iovector.h
index 0ea57bb0..cf77a9a 100644
--- a/net/quic/iovector.h
+++ b/net/quic/iovector.h
@@ -62,6 +62,7 @@
   // Provide a default constructor so it'll never be inhibited by adding other
   // constructors.
   IOVector();
+  IOVector(const IOVector& other);
   ~IOVector();
 
   // Provides a way to convert system call-like iovec representation to
diff --git a/net/quic/quic_config.cc b/net/quic/quic_config.cc
index 076974e..c968be9e 100644
--- a/net/quic/quic_config.cc
+++ b/net/quic/quic_config.cc
@@ -264,6 +264,9 @@
       has_send_values_(false),
       has_receive_values_(false) {}
 
+QuicFixedTagVector::QuicFixedTagVector(const QuicFixedTagVector& other) =
+    default;
+
 QuicFixedTagVector::~QuicFixedTagVector() {}
 
 bool QuicFixedTagVector::HasSendValues() const {
@@ -349,6 +352,8 @@
   SetDefaults();
 }
 
+QuicConfig::QuicConfig(const QuicConfig& other) = default;
+
 QuicConfig::~QuicConfig() {}
 
 bool QuicConfig::SetInitialReceivedConnectionOptions(
diff --git a/net/quic/quic_config.h b/net/quic/quic_config.h
index 1fbb4b7..bd6e5d8a 100644
--- a/net/quic/quic_config.h
+++ b/net/quic/quic_config.h
@@ -183,6 +183,7 @@
 class NET_EXPORT_PRIVATE QuicFixedTagVector : public QuicConfigValue {
  public:
   QuicFixedTagVector(QuicTag name, QuicConfigPresence presence);
+  QuicFixedTagVector(const QuicFixedTagVector& other);
   ~QuicFixedTagVector() override;
 
   bool HasSendValues() const;
@@ -219,6 +220,7 @@
 class NET_EXPORT_PRIVATE QuicConfig {
  public:
   QuicConfig();
+  QuicConfig(const QuicConfig& other);
   ~QuicConfig();
 
   void SetConnectionOptionsToSend(const QuicTagVector& connection_options);
diff --git a/net/quic/quic_connection_stats.cc b/net/quic/quic_connection_stats.cc
index 2c98fcca..f314452 100644
--- a/net/quic/quic_connection_stats.cc
+++ b/net/quic/quic_connection_stats.cc
@@ -41,6 +41,9 @@
       tcp_loss_events(0),
       connection_creation_time(QuicTime::Zero()) {}
 
+QuicConnectionStats::QuicConnectionStats(const QuicConnectionStats& other) =
+    default;
+
 QuicConnectionStats::~QuicConnectionStats() {}
 
 }  // namespace net
diff --git a/net/quic/quic_connection_stats.h b/net/quic/quic_connection_stats.h
index 655ab32..2787612 100644
--- a/net/quic/quic_connection_stats.h
+++ b/net/quic/quic_connection_stats.h
@@ -19,6 +19,7 @@
 // Structure to hold stats for a QuicConnection.
 struct NET_EXPORT_PRIVATE QuicConnectionStats {
   QuicConnectionStats();
+  QuicConnectionStats(const QuicConnectionStats& other);
   ~QuicConnectionStats();
 
   NET_EXPORT_PRIVATE friend std::ostream& operator<<(
diff --git a/net/quic/quic_framer.cc b/net/quic/quic_framer.cc
index c7ae630..7d75b8f 100644
--- a/net/quic/quic_framer.cc
+++ b/net/quic/quic_framer.cc
@@ -313,6 +313,8 @@
 
 QuicFramer::AckFrameInfo::AckFrameInfo() : max_delta(0) {}
 
+QuicFramer::AckFrameInfo::AckFrameInfo(const AckFrameInfo& other) = default;
+
 QuicFramer::AckFrameInfo::~AckFrameInfo() {}
 
 // static
diff --git a/net/quic/quic_framer.h b/net/quic/quic_framer.h
index aba0f97..456f2b09 100644
--- a/net/quic/quic_framer.h
+++ b/net/quic/quic_framer.h
@@ -376,6 +376,7 @@
 
   struct AckFrameInfo {
     AckFrameInfo();
+    AckFrameInfo(const AckFrameInfo& other);
     ~AckFrameInfo();
 
     // The maximum delta between ranges.
diff --git a/net/quic/quic_protocol.cc b/net/quic/quic_protocol.cc
index 192008e..cb43400 100644
--- a/net/quic/quic_protocol.cc
+++ b/net/quic/quic_protocol.cc
@@ -96,6 +96,8 @@
       is_in_fec_group(NOT_IN_FEC_GROUP),
       fec_group(0) {}
 
+QuicPacketHeader::QuicPacketHeader(const QuicPacketHeader& other) = default;
+
 QuicPublicResetPacket::QuicPublicResetPacket()
     : nonce_proof(0), rejected_packet_number(0) {}
 
@@ -301,6 +303,8 @@
       ack_delay_time(QuicTime::Delta::Infinite()),
       latest_revived_packet(0) {}
 
+QuicAckFrame::QuicAckFrame(const QuicAckFrame& other) = default;
+
 QuicAckFrame::~QuicAckFrame() {}
 
 QuicRstStreamErrorCode AdjustErrorForVersion(QuicRstStreamErrorCode error_code,
@@ -729,6 +733,9 @@
   DCHECK(listener != nullptr);
 }
 
+AckListenerWrapper::AckListenerWrapper(const AckListenerWrapper& other) =
+    default;
+
 AckListenerWrapper::~AckListenerWrapper() {}
 
 SerializedPacket::SerializedPacket(QuicPathId path_id,
@@ -754,6 +761,8 @@
       original_packet_number(0),
       transmission_type(NOT_RETRANSMISSION) {}
 
+SerializedPacket::SerializedPacket(const SerializedPacket& other) = default;
+
 SerializedPacket::~SerializedPacket() {}
 
 QuicEncryptedPacket* QuicEncryptedPacket::Clone() const {
@@ -802,6 +811,8 @@
       needs_padding(needs_padding),
       retransmission(0) {}
 
+TransmissionInfo::TransmissionInfo(const TransmissionInfo& other) = default;
+
 TransmissionInfo::~TransmissionInfo() {}
 
 }  // namespace net
diff --git a/net/quic/quic_protocol.h b/net/quic/quic_protocol.h
index a9af2c1..6c5de3f 100644
--- a/net/quic/quic_protocol.h
+++ b/net/quic/quic_protocol.h
@@ -707,6 +707,7 @@
 struct NET_EXPORT_PRIVATE QuicPacketHeader {
   QuicPacketHeader();
   explicit QuicPacketHeader(const QuicPacketPublicHeader& header);
+  QuicPacketHeader(const QuicPacketHeader& other);
 
   NET_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os,
                                                      const QuicPacketHeader& s);
@@ -956,6 +957,7 @@
 
 struct NET_EXPORT_PRIVATE QuicAckFrame {
   QuicAckFrame();
+  QuicAckFrame(const QuicAckFrame& other);
   ~QuicAckFrame();
 
   NET_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os,
@@ -1288,6 +1290,7 @@
 struct NET_EXPORT_PRIVATE AckListenerWrapper {
   AckListenerWrapper(QuicAckListenerInterface* listener,
                      QuicPacketLength data_length);
+  AckListenerWrapper(const AckListenerWrapper& other);
   ~AckListenerWrapper();
 
   scoped_refptr<QuicAckListenerInterface> ack_listener;
@@ -1303,6 +1306,7 @@
                    QuicPacketEntropyHash entropy_hash,
                    bool has_ack,
                    bool has_stop_waiting);
+  SerializedPacket(const SerializedPacket& other);
   ~SerializedPacket();
 
   // Not owned.
@@ -1341,6 +1345,8 @@
                    bool has_crypto_handshake,
                    bool needs_padding);
 
+  TransmissionInfo(const TransmissionInfo& other);
+
   ~TransmissionInfo();
 
   QuicFrames retransmittable_frames;
diff --git a/net/server/http_server_request_info.cc b/net/server/http_server_request_info.cc
index 07c15a54..765ddc0 100644
--- a/net/server/http_server_request_info.cc
+++ b/net/server/http_server_request_info.cc
@@ -11,6 +11,9 @@
 
 HttpServerRequestInfo::HttpServerRequestInfo() {}
 
+HttpServerRequestInfo::HttpServerRequestInfo(
+    const HttpServerRequestInfo& other) = default;
+
 HttpServerRequestInfo::~HttpServerRequestInfo() {}
 
 std::string HttpServerRequestInfo::GetHeaderValue(
diff --git a/net/server/http_server_request_info.h b/net/server/http_server_request_info.h
index 1b02655b..014142c 100644
--- a/net/server/http_server_request_info.h
+++ b/net/server/http_server_request_info.h
@@ -19,6 +19,7 @@
 class HttpServerRequestInfo {
  public:
   HttpServerRequestInfo();
+  HttpServerRequestInfo(const HttpServerRequestInfo& other);
   ~HttpServerRequestInfo();
 
   // Returns header value for given header name. |header_name| should be
diff --git a/net/server/http_server_response_info.cc b/net/server/http_server_response_info.cc
index 2d0a32e..7c195812 100644
--- a/net/server/http_server_response_info.cc
+++ b/net/server/http_server_response_info.cc
@@ -15,6 +15,9 @@
 HttpServerResponseInfo::HttpServerResponseInfo(HttpStatusCode status_code)
     : status_code_(status_code) {}
 
+HttpServerResponseInfo::HttpServerResponseInfo(
+    const HttpServerResponseInfo& other) = default;
+
 HttpServerResponseInfo::~HttpServerResponseInfo() {}
 
 // static
diff --git a/net/server/http_server_response_info.h b/net/server/http_server_response_info.h
index fd8dfbc..c2451e8 100644
--- a/net/server/http_server_response_info.h
+++ b/net/server/http_server_response_info.h
@@ -20,6 +20,7 @@
   // Creates a 200 OK HttpServerResponseInfo.
   HttpServerResponseInfo();
   explicit HttpServerResponseInfo(HttpStatusCode status_code);
+  HttpServerResponseInfo(const HttpServerResponseInfo& other);
   ~HttpServerResponseInfo();
 
   static HttpServerResponseInfo CreateFor404();
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
index 30aa3dc..e925943 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -220,6 +220,9 @@
       result(result_in) {
 }
 
+ClientSocketPoolBaseHelper::CallbackResultPair::CallbackResultPair(
+    const CallbackResultPair& other) = default;
+
 ClientSocketPoolBaseHelper::CallbackResultPair::~CallbackResultPair() {}
 
 bool ClientSocketPoolBaseHelper::IsStalled() const {
diff --git a/net/socket/client_socket_pool_base.h b/net/socket/client_socket_pool_base.h
index d288684..1e57adb 100644
--- a/net/socket/client_socket_pool_base.h
+++ b/net/socket/client_socket_pool_base.h
@@ -514,6 +514,7 @@
   struct CallbackResultPair {
     CallbackResultPair();
     CallbackResultPair(const CompletionCallback& callback_in, int result_in);
+    CallbackResultPair(const CallbackResultPair& other);
     ~CallbackResultPair();
 
     CompletionCallback callback;
diff --git a/net/socket/websocket_transport_client_socket_pool.cc b/net/socket/websocket_transport_client_socket_pool.cc
index 983afaf..e4f0883 100644
--- a/net/socket/websocket_transport_client_socket_pool.cc
+++ b/net/socket/websocket_transport_client_socket_pool.cc
@@ -634,6 +634,9 @@
       callback(callback),
       net_log(net_log) {}
 
+WebSocketTransportClientSocketPool::StalledRequest::StalledRequest(
+    const StalledRequest& other) = default;
+
 WebSocketTransportClientSocketPool::StalledRequest::~StalledRequest() {}
 
 }  // namespace net
diff --git a/net/socket/websocket_transport_client_socket_pool.h b/net/socket/websocket_transport_client_socket_pool.h
index 6374374..23b7774 100644
--- a/net/socket/websocket_transport_client_socket_pool.h
+++ b/net/socket/websocket_transport_client_socket_pool.h
@@ -185,6 +185,7 @@
                    ClientSocketHandle* handle,
                    const CompletionCallback& callback,
                    const BoundNetLog& net_log);
+    StalledRequest(const StalledRequest& other);
     ~StalledRequest();
     const scoped_refptr<TransportSocketParams> params;
     const RequestPriority priority;
diff --git a/net/spdy/spdy_alt_svc_wire_format.cc b/net/spdy/spdy_alt_svc_wire_format.cc
index a50590e..2ec6777 100644
--- a/net/spdy/spdy_alt_svc_wire_format.cc
+++ b/net/spdy/spdy_alt_svc_wire_format.cc
@@ -55,6 +55,9 @@
 
 SpdyAltSvcWireFormat::AlternativeService::~AlternativeService() {}
 
+SpdyAltSvcWireFormat::AlternativeService::AlternativeService(
+    const AlternativeService& other) = default;
+
 // static
 bool SpdyAltSvcWireFormat::ParseHeaderFieldValue(
     StringPiece value,
diff --git a/net/spdy/spdy_alt_svc_wire_format.h b/net/spdy/spdy_alt_svc_wire_format.h
index 28b4572..de404352 100644
--- a/net/spdy/spdy_alt_svc_wire_format.h
+++ b/net/spdy/spdy_alt_svc_wire_format.h
@@ -47,6 +47,7 @@
                        uint32_t max_age,
                        double probability,
                        VersionVector version);
+    AlternativeService(const AlternativeService& other);
     ~AlternativeService();
 
     bool operator==(const AlternativeService& other) const {
diff --git a/net/spdy/spdy_header_block.cc b/net/spdy/spdy_header_block.cc
index 49243a7..b24085f 100644
--- a/net/spdy/spdy_header_block.cc
+++ b/net/spdy/spdy_header_block.cc
@@ -114,6 +114,9 @@
       lookup_result_(lookup_result),
       key_(key) {}
 
+SpdyHeaderBlock::StringPieceProxy::StringPieceProxy(
+    const StringPieceProxy& other) = default;
+
 SpdyHeaderBlock::StringPieceProxy::~StringPieceProxy() {}
 
 SpdyHeaderBlock::StringPieceProxy& SpdyHeaderBlock::StringPieceProxy::operator=(
diff --git a/net/spdy/spdy_header_block.h b/net/spdy/spdy_header_block.h
index 1ee9708..58d6cf4c 100644
--- a/net/spdy/spdy_header_block.h
+++ b/net/spdy/spdy_header_block.h
@@ -89,6 +89,7 @@
   class NET_EXPORT StringPieceProxy {
    public:
     ~StringPieceProxy();
+    StringPieceProxy(const StringPieceProxy& other);
 
     // Assignment modifies the underlying SpdyHeaderBlock.
     StringPieceProxy& operator=(const base::StringPiece other);
diff --git a/net/spdy/spdy_session_key.cc b/net/spdy/spdy_session_key.cc
index 59f36df7..8b2fcbc 100644
--- a/net/spdy/spdy_session_key.cc
+++ b/net/spdy/spdy_session_key.cc
@@ -32,6 +32,8 @@
       << ", privacy=" << privacy_mode;
 }
 
+SpdySessionKey::SpdySessionKey(const SpdySessionKey& other) = default;
+
 SpdySessionKey::~SpdySessionKey() {}
 
 bool SpdySessionKey::operator<(const SpdySessionKey& other) const {
diff --git a/net/spdy/spdy_session_key.h b/net/spdy/spdy_session_key.h
index 59c832b..a393ce0 100644
--- a/net/spdy/spdy_session_key.h
+++ b/net/spdy/spdy_session_key.h
@@ -22,6 +22,8 @@
   SpdySessionKey(const HostPortProxyPair& host_port_proxy_pair,
                  PrivacyMode privacy_mode);
 
+  SpdySessionKey(const SpdySessionKey& other);
+
   ~SpdySessionKey();
 
   // Comparator function so this can be placed in a std::map.
diff --git a/net/spdy/spdy_write_queue.cc b/net/spdy/spdy_write_queue.cc
index ab25eaef8..a8e65532 100644
--- a/net/spdy/spdy_write_queue.cc
+++ b/net/spdy/spdy_write_queue.cc
@@ -26,6 +26,8 @@
       stream(stream),
       has_stream(stream.get() != NULL) {}
 
+SpdyWriteQueue::PendingWrite::PendingWrite(const PendingWrite& other) = default;
+
 SpdyWriteQueue::PendingWrite::~PendingWrite() {}
 
 SpdyWriteQueue::SpdyWriteQueue() : removing_writes_(false) {}
diff --git a/net/spdy/spdy_write_queue.h b/net/spdy/spdy_write_queue.h
index c19b3f2..8383e7a 100644
--- a/net/spdy/spdy_write_queue.h
+++ b/net/spdy/spdy_write_queue.h
@@ -75,6 +75,7 @@
     PendingWrite(SpdyFrameType frame_type,
                  SpdyBufferProducer* frame_producer,
                  const base::WeakPtr<SpdyStream>& stream);
+    PendingWrite(const PendingWrite& other);
     ~PendingWrite();
   };
 
diff --git a/net/ssl/signed_certificate_timestamp_and_status.cc b/net/ssl/signed_certificate_timestamp_and_status.cc
index 245fcf2a..55deaa3 100644
--- a/net/ssl/signed_certificate_timestamp_and_status.cc
+++ b/net/ssl/signed_certificate_timestamp_and_status.cc
@@ -13,6 +13,9 @@
     const ct::SCTVerifyStatus status)
     : sct(sct), status(status) {}
 
+SignedCertificateTimestampAndStatus::SignedCertificateTimestampAndStatus(
+    const SignedCertificateTimestampAndStatus& other) = default;
+
 SignedCertificateTimestampAndStatus::~SignedCertificateTimestampAndStatus() {}
 
 }  // namespace net
diff --git a/net/ssl/signed_certificate_timestamp_and_status.h b/net/ssl/signed_certificate_timestamp_and_status.h
index c23753e..650e5b1 100644
--- a/net/ssl/signed_certificate_timestamp_and_status.h
+++ b/net/ssl/signed_certificate_timestamp_and_status.h
@@ -19,6 +19,9 @@
       const scoped_refptr<ct::SignedCertificateTimestamp>& sct,
       ct::SCTVerifyStatus status);
 
+  SignedCertificateTimestampAndStatus(
+      const SignedCertificateTimestampAndStatus& other);
+
   ~SignedCertificateTimestampAndStatus();
 
   scoped_refptr<ct::SignedCertificateTimestamp> sct;
diff --git a/net/ssl/ssl_config.cc b/net/ssl/ssl_config.cc
index be87ed0..4a71b5948 100644
--- a/net/ssl/ssl_config.cc
+++ b/net/ssl/ssl_config.cc
@@ -36,6 +36,8 @@
       cert_io_enabled(true),
       renego_allowed_default(false) {}
 
+SSLConfig::SSLConfig(const SSLConfig& other) = default;
+
 SSLConfig::~SSLConfig() {}
 
 bool SSLConfig::IsAllowedBadCert(X509Certificate* cert,
diff --git a/net/ssl/ssl_config.h b/net/ssl/ssl_config.h
index 5460f66..0a5a83d 100644
--- a/net/ssl/ssl_config.h
+++ b/net/ssl/ssl_config.h
@@ -47,6 +47,7 @@
 struct NET_EXPORT SSLConfig {
   // Default to revocation checking.
   SSLConfig();
+  SSLConfig(const SSLConfig& other);
   ~SSLConfig();
 
   // Returns true if |cert| is one of the certs in |allowed_bad_certs|.
diff --git a/net/ssl/ssl_server_config.cc b/net/ssl/ssl_server_config.cc
index f423933..f5041b67 100644
--- a/net/ssl/ssl_server_config.cc
+++ b/net/ssl/ssl_server_config.cc
@@ -16,6 +16,8 @@
       client_cert_type(NO_CLIENT_CERT),
       client_cert_verifier(nullptr) {}
 
+SSLServerConfig::SSLServerConfig(const SSLServerConfig& other) = default;
+
 SSLServerConfig::~SSLServerConfig() {}
 
 }  // namespace net
diff --git a/net/ssl/ssl_server_config.h b/net/ssl/ssl_server_config.h
index 95bea0b..7a1861b 100644
--- a/net/ssl/ssl_server_config.h
+++ b/net/ssl/ssl_server_config.h
@@ -26,6 +26,7 @@
 
   // Defaults
   SSLServerConfig();
+  SSLServerConfig(const SSLServerConfig& other);
   ~SSLServerConfig();
 
   // The minimum and maximum protocol versions that are enabled.
diff --git a/net/test/embedded_test_server/http_request.cc b/net/test/embedded_test_server/http_request.cc
index b5b2e4f..7d54326 100644
--- a/net/test/embedded_test_server/http_request.cc
+++ b/net/test/embedded_test_server/http_request.cc
@@ -34,6 +34,8 @@
                              has_content(false) {
 }
 
+HttpRequest::HttpRequest(const HttpRequest& other) = default;
+
 HttpRequest::~HttpRequest() {
 }
 
diff --git a/net/test/embedded_test_server/http_request.h b/net/test/embedded_test_server/http_request.h
index d99c050..2a560b6 100644
--- a/net/test/embedded_test_server/http_request.h
+++ b/net/test/embedded_test_server/http_request.h
@@ -48,6 +48,7 @@
       std::map<std::string, std::string, CaseInsensitiveStringComparator>;
 
   HttpRequest();
+  HttpRequest(const HttpRequest& other);
   ~HttpRequest();
 
   // Returns a GURL as a convenience to extract the path and query strings.
diff --git a/net/test/spawned_test_server/base_test_server.cc b/net/test/spawned_test_server/base_test_server.cc
index e69233e..ecf5af5 100644
--- a/net/test/spawned_test_server/base_test_server.cc
+++ b/net/test/spawned_test_server/base_test_server.cc
@@ -159,6 +159,8 @@
       disable_channel_id(false),
       disable_extended_master_secret(false) {}
 
+BaseTestServer::SSLOptions::SSLOptions(const SSLOptions& other) = default;
+
 BaseTestServer::SSLOptions::~SSLOptions() {}
 
 base::FilePath BaseTestServer::SSLOptions::GetCertificateFile() const {
diff --git a/net/test/spawned_test_server/base_test_server.h b/net/test/spawned_test_server/base_test_server.h
index 7df2416..60d37e1 100644
--- a/net/test/spawned_test_server/base_test_server.h
+++ b/net/test/spawned_test_server/base_test_server.h
@@ -140,6 +140,7 @@
 
     // Initialize a new SSLOptions that will use the specified certificate.
     explicit SSLOptions(ServerCertificate cert);
+    SSLOptions(const SSLOptions& other);
     ~SSLOptions();
 
     // Returns the relative filename of the file that contains the
diff --git a/net/tools/flip_server/output_ordering.cc b/net/tools/flip_server/output_ordering.cc
index f378a87..24e92c0 100644
--- a/net/tools/flip_server/output_ordering.cc
+++ b/net/tools/flip_server/output_ordering.cc
@@ -14,6 +14,9 @@
 OutputOrdering::PriorityMapPointer::PriorityMapPointer()
     : ring(NULL), alarm_enabled(false) {}
 
+OutputOrdering::PriorityMapPointer::PriorityMapPointer(
+    const PriorityMapPointer& other) = default;
+
 OutputOrdering::PriorityMapPointer::~PriorityMapPointer() {}
 
 // static
diff --git a/net/tools/flip_server/output_ordering.h b/net/tools/flip_server/output_ordering.h
index 3641460..ecd32a2b 100644
--- a/net/tools/flip_server/output_ordering.h
+++ b/net/tools/flip_server/output_ordering.h
@@ -27,6 +27,7 @@
 
   struct PriorityMapPointer {
     PriorityMapPointer();
+    PriorityMapPointer(const PriorityMapPointer& other);
     ~PriorityMapPointer();
     PriorityRing* ring;
     PriorityRing::iterator it;
diff --git a/net/tools/quic/quic_in_memory_cache.cc b/net/tools/quic/quic_in_memory_cache.cc
index 2dee018..1f31b9cf 100644
--- a/net/tools/quic/quic_in_memory_cache.cc
+++ b/net/tools/quic/quic_in_memory_cache.cc
@@ -32,6 +32,9 @@
       priority(priority),
       body(body) {}
 
+QuicInMemoryCache::ServerPushInfo::ServerPushInfo(const ServerPushInfo& other) =
+    default;
+
 QuicInMemoryCache::Response::Response() : response_type_(REGULAR_RESPONSE) {}
 
 QuicInMemoryCache::Response::~Response() {}
diff --git a/net/tools/quic/quic_in_memory_cache.h b/net/tools/quic/quic_in_memory_cache.h
index d23d1e3..0cedc1e 100644
--- a/net/tools/quic/quic_in_memory_cache.h
+++ b/net/tools/quic/quic_in_memory_cache.h
@@ -48,6 +48,7 @@
                    const net::SpdyHeaderBlock& headers,
                    net::SpdyPriority priority,
                    string body);
+    ServerPushInfo(const ServerPushInfo& other);
     GURL request_url;
     net::SpdyHeaderBlock headers;
     net::SpdyPriority priority;
diff --git a/net/tools/quic/quic_time_wait_list_manager.cc b/net/tools/quic/quic_time_wait_list_manager.cc
index a583ff6d..3b50f2d 100644
--- a/net/tools/quic/quic_time_wait_list_manager.cc
+++ b/net/tools/quic/quic_time_wait_list_manager.cc
@@ -325,6 +325,9 @@
       time_added(time_added_),
       connection_rejected_statelessly(connection_rejected_statelessly) {}
 
+QuicTimeWaitListManager::ConnectionIdData::ConnectionIdData(
+    const ConnectionIdData& other) = default;
+
 QuicTimeWaitListManager::ConnectionIdData::~ConnectionIdData() {}
 
 }  // namespace net
diff --git a/net/tools/quic/quic_time_wait_list_manager.h b/net/tools/quic/quic_time_wait_list_manager.h
index a5b1212e..51df345d 100644
--- a/net/tools/quic/quic_time_wait_list_manager.h
+++ b/net/tools/quic/quic_time_wait_list_manager.h
@@ -149,6 +149,8 @@
                      QuicTime time_added_,
                      bool connection_rejected_statelessly);
 
+    ConnectionIdData(const ConnectionIdData& other);
+
     ~ConnectionIdData();
 
     int num_packets;
diff --git a/net/url_request/redirect_info.cc b/net/url_request/redirect_info.cc
index 16b517a..f7f9538 100644
--- a/net/url_request/redirect_info.cc
+++ b/net/url_request/redirect_info.cc
@@ -8,6 +8,8 @@
 
 RedirectInfo::RedirectInfo() : status_code(-1) {}
 
+RedirectInfo::RedirectInfo(const RedirectInfo& other) = default;
+
 RedirectInfo::~RedirectInfo() {}
 
 }  // namespace net
diff --git a/net/url_request/redirect_info.h b/net/url_request/redirect_info.h
index b1ae6369..93e7156 100644
--- a/net/url_request/redirect_info.h
+++ b/net/url_request/redirect_info.h
@@ -17,6 +17,7 @@
 // content/common/resource_messages.h.
 struct NET_EXPORT RedirectInfo {
   RedirectInfo();
+  RedirectInfo(const RedirectInfo& other);
   ~RedirectInfo();
 
   // The status code for the redirect response. This is almost redundant with
diff --git a/net/websockets/websocket_channel.cc b/net/websockets/websocket_channel.cc
index 3018088d..7d166ee 100644
--- a/net/websockets/websocket_channel.cc
+++ b/net/websockets/websocket_channel.cc
@@ -286,6 +286,9 @@
       offset_(offset),
       size_(size) {}
 
+WebSocketChannel::PendingReceivedFrame::PendingReceivedFrame(
+    const PendingReceivedFrame& other) = default;
+
 WebSocketChannel::PendingReceivedFrame::~PendingReceivedFrame() {}
 
 void WebSocketChannel::PendingReceivedFrame::ResetOpcode() {
diff --git a/net/websockets/websocket_channel.h b/net/websockets/websocket_channel.h
index 7f341950..97db65f 100644
--- a/net/websockets/websocket_channel.h
+++ b/net/websockets/websocket_channel.h
@@ -149,6 +149,7 @@
                          const scoped_refptr<IOBuffer>& data,
                          uint64_t offset,
                          uint64_t size);
+    PendingReceivedFrame(const PendingReceivedFrame& other);
     ~PendingReceivedFrame();
 
     bool final() const { return final_; }
diff --git a/net/websockets/websocket_extension.cc b/net/websockets/websocket_extension.cc
index c5e8e17..a0d55607 100644
--- a/net/websockets/websocket_extension.cc
+++ b/net/websockets/websocket_extension.cc
@@ -32,6 +32,9 @@
 WebSocketExtension::WebSocketExtension(const std::string& name)
     : name_(name) {}
 
+WebSocketExtension::WebSocketExtension(const WebSocketExtension& other) =
+    default;
+
 WebSocketExtension::~WebSocketExtension() {}
 
 bool WebSocketExtension::Equals(const WebSocketExtension& other) const {
diff --git a/net/websockets/websocket_extension.h b/net/websockets/websocket_extension.h
index 20f2922..4c42a76 100644
--- a/net/websockets/websocket_extension.h
+++ b/net/websockets/websocket_extension.h
@@ -38,6 +38,7 @@
 
   WebSocketExtension();
   explicit WebSocketExtension(const std::string& name);
+  WebSocketExtension(const WebSocketExtension& other);
   ~WebSocketExtension();
 
   void Add(const Parameter& parameter) { parameters_.push_back(parameter); }