diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-07 16:12:06 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-07 16:12:06 +0000 |
commit | 3030374e345652de06eecbf954d8b0e212c16f56 (patch) | |
tree | 42e28456b62d0abc668d8e8bff52f9a431942a31 | |
parent | 7e29ff1b73c7be6c2716b87374f1c2aae4ab2bf5 (diff) | |
download | chromium_src-3030374e345652de06eecbf954d8b0e212c16f56.zip chromium_src-3030374e345652de06eecbf954d8b0e212c16f56.tar.gz chromium_src-3030374e345652de06eecbf954d8b0e212c16f56.tar.bz2 |
Remove redundant mapping of net errors to strings.
The new list does not have the leading "net::ERR_", to slightly reduce
the size of net when compiled. This reduces the size of libcronet.so
by about 8k, with symbols stripped.
Also add a function to get network error strings without the leading,
"net::" as a number of consumers were removing it with duplicated code.
This CL slight breaks NetLog loading functionality - loading old logs
in new versions will result in error codes missing the leading "ERR_",
and the other direction results in error codes having an extra leading
"ERR_".
BUG=399025
Review URL: https://codereview.chromium.org/432553003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288065 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/errorpage_browsertest.cc | 8 | ||||
-rw-r--r-- | chrome/browser/guest_view/web_view/web_view_guest.cc | 13 | ||||
-rw-r--r-- | chrome/browser/resources/net_internals/main.js | 5 | ||||
-rw-r--r-- | chrome/browser/resources/net_internals/source_entry.js | 2 | ||||
-rw-r--r-- | chrome/common/localized_error.cc | 6 | ||||
-rw-r--r-- | chrome/test/data/webui/net_internals/dns_view.js | 12 | ||||
-rw-r--r-- | chrome/test/data/webui/net_internals/test_view.js | 4 | ||||
-rw-r--r-- | chromeos/network/onc/onc_certificate_importer_impl.cc | 6 | ||||
-rw-r--r-- | components/cronet/android/org_chromium_net_UrlRequest.cc | 3 | ||||
-rw-r--r-- | content/child/socket_stream_dispatcher.cc | 5 | ||||
-rw-r--r-- | device/bluetooth/bluetooth_socket_win.cc | 2 | ||||
-rw-r--r-- | net/base/net_errors.cc | 25 | ||||
-rw-r--r-- | net/base/net_errors.h | 15 | ||||
-rw-r--r-- | net/base/net_log_logger.cc | 3 | ||||
-rw-r--r-- | net/quic/crypto/proof_verifier_chromium.cc | 7 | ||||
-rw-r--r-- | net/tools/gdig/gdig.cc | 3 |
16 files changed, 61 insertions, 58 deletions
diff --git a/chrome/browser/errorpage_browsertest.cc b/chrome/browser/errorpage_browsertest.cc index 820f51c..d61ae8a 100644 --- a/chrome/browser/errorpage_browsertest.cc +++ b/chrome/browser/errorpage_browsertest.cc @@ -87,13 +87,7 @@ void ToggleHelpBox(Browser* browser) { // |error_code| on the current page. bool WARN_UNUSED_RESULT IsDisplayingNetError(Browser* browser, net::Error error_code) { - // Get the error as a string, and remove the leading "net::", which is not - // included on error pages. - std::string error_string(net::ErrorToString(error_code)); - DCHECK(StartsWithASCII(error_string, "net::", true)); - error_string.erase(0, 5); - - return IsDisplayingText(browser, error_string); + return IsDisplayingText(browser, net::ErrorToShortString(error_code)); } // Checks that the local error page is being displayed, without remotely diff --git a/chrome/browser/guest_view/web_view/web_view_guest.cc b/chrome/browser/guest_view/web_view/web_view_guest.cc index 8ee9dcc..68136ba 100644 --- a/chrome/browser/guest_view/web_view/web_view_guest.cc +++ b/chrome/browser/guest_view/web_view/web_view_guest.cc @@ -762,11 +762,8 @@ void WebViewGuest::DidFailProvisionalLoad( const GURL& validated_url, int error_code, const base::string16& error_description) { - // Translate the |error_code| into an error string. - std::string error_type(net::ErrorToString(error_code)); - DCHECK(StartsWithASCII(error_type, "net::", true)); - error_type.erase(0, 5); - LoadAbort(!render_frame_host->GetParent(), validated_url, error_type); + LoadAbort(!render_frame_host->GetParent(), validated_url, + net::ErrorToShortString(error_code)); } void WebViewGuest::DidStartProvisionalLoadForFrame( @@ -969,10 +966,8 @@ void WebViewGuest::NavigateGuest(const std::string& src) { !url.SchemeIs(url::kAboutScheme)) || url.SchemeIs(url::kJavaScriptScheme); if (scheme_is_blocked || !url.is_valid()) { - std::string error_type(net::ErrorToString(net::ERR_ABORTED)); - DCHECK(StartsWithASCII(error_type, "net::", true)); - error_type.erase(0, 5); - LoadAbort(true /* is_top_level */, url, error_type); + LoadAbort(true /* is_top_level */, url, + net::ErrorToShortString(net::ERR_ABORTED)); return; } diff --git a/chrome/browser/resources/net_internals/main.js b/chrome/browser/resources/net_internals/main.js index 6a649a2..05e9e7b 100644 --- a/chrome/browser/resources/net_internals/main.js +++ b/chrome/browser/resources/net_internals/main.js @@ -348,10 +348,7 @@ function areValidConstants(receivedConstants) { * @return {string} The name of the given error. */ function netErrorToString(netError) { - var str = getKeyWithValue(NetError, netError); - if (str == '?') - return str; - return 'ERR_' + str; + return getKeyWithValue(NetError, netError); } /** diff --git a/chrome/browser/resources/net_internals/source_entry.js b/chrome/browser/resources/net_internals/source_entry.js index 0898d797..b204151 100644 --- a/chrome/browser/resources/net_internals/source_entry.js +++ b/chrome/browser/resources/net_internals/source_entry.js @@ -45,7 +45,7 @@ var SourceEntry = (function() { if (netErrorCode) { // Ignore error code caused by not finding an entry in the cache. if (logEntry.type != EventType.HTTP_CACHE_OPEN_ENTRY || - netErrorCode != NetError.FAILED) { + netErrorCode != NetError.ERR_FAILED) { this.isError_ = true; } } diff --git a/chrome/common/localized_error.cc b/chrome/common/localized_error.cc index 63bf219..134a160 100644 --- a/chrome/common/localized_error.cc +++ b/chrome/common/localized_error.cc @@ -579,11 +579,7 @@ void LocalizedError::GetStrings(int error_code, base::string16 error_string; if (error_domain == net::kErrorDomain) { // Non-internationalized error string, for debugging Chrome itself. - std::string ascii_error_string = net::ErrorToString(error_code); - // Remove the leading "net::" from the returned string. - DCHECK(StartsWithASCII(ascii_error_string, "net::", true)); - ascii_error_string.erase(0, 5); - error_string = base::ASCIIToUTF16(ascii_error_string); + error_string = base::ASCIIToUTF16(net::ErrorToShortString(error_code)); } else if (error_domain == chrome_common_net::kDnsProbeErrorDomain) { std::string ascii_error_string = chrome_common_net::DnsProbeStatusToString(error_code); diff --git a/chrome/test/data/webui/net_internals/dns_view.js b/chrome/test/data/webui/net_internals/dns_view.js index 63c338d..63de6e7 100644 --- a/chrome/test/data/webui/net_internals/dns_view.js +++ b/chrome/test/data/webui/net_internals/dns_view.js @@ -215,7 +215,7 @@ TEST_F('NetInternalsTest', 'netInternalsDnsViewSuccess', function() { NetInternalsTest.switchToView('dns'); var taskQueue = new NetInternalsTest.TaskQueue(true); taskQueue.addTask(new AddCacheEntryTask( - 'somewhere.com', '1.2.3.4', 0, false)); + 'somewhere.com', '1.2.3.4', 0, false)); taskQueue.addTask(new ClearCacheTask()); taskQueue.addTask(new WaitForEntryDestructionTask('somewhere.com')); taskQueue.run(true); @@ -228,7 +228,7 @@ TEST_F('NetInternalsTest', 'netInternalsDnsViewFail', function() { NetInternalsTest.switchToView('dns'); var taskQueue = new NetInternalsTest.TaskQueue(true); taskQueue.addTask(new AddCacheEntryTask( - 'nowhere.com', '', NetError.NAME_NOT_RESOLVED, false)); + 'nowhere.com', '', NetError.ERR_NAME_NOT_RESOLVED, false)); taskQueue.addTask(new ClearCacheTask()); taskQueue.addTask(new WaitForEntryDestructionTask('nowhere.com')); taskQueue.run(true); @@ -241,7 +241,7 @@ TEST_F('NetInternalsTest', 'netInternalsDnsViewExpired', function() { NetInternalsTest.switchToView('dns'); var taskQueue = new NetInternalsTest.TaskQueue(true); taskQueue.addTask(new AddCacheEntryTask( - 'somewhere.com', '1.2.3.4', 0, true)); + 'somewhere.com', '1.2.3.4', 0, true)); taskQueue.addTask(new ClearCacheTask()); taskQueue.addTask(new WaitForEntryDestructionTask('somewhere.com')); taskQueue.run(true); @@ -255,9 +255,9 @@ TEST_F('NetInternalsTest', 'netInternalsDnsViewAddTwoTwice', function() { var taskQueue = new NetInternalsTest.TaskQueue(true); for (var i = 0; i < 2; ++i) { taskQueue.addTask(new AddCacheEntryTask( - 'somewhere.com', '1.2.3.4', 0, false)); + 'somewhere.com', '1.2.3.4', 0, false)); taskQueue.addTask(new AddCacheEntryTask( - 'nowhere.com', '', NetError.NAME_NOT_RESOLVED, true)); + 'nowhere.com', '', NetError.ERR_NAME_NOT_RESOLVED, true)); taskQueue.addTask(new ClearCacheTask()); taskQueue.addTask(new WaitForEntryDestructionTask('somewhere.com')); taskQueue.addTask(new WaitForEntryDestructionTask('nowhere.com')); @@ -275,7 +275,7 @@ TEST_F('NetInternalsTest', 'netInternalsDnsViewIncognitoClears', function() { var taskQueue = new NetInternalsTest.TaskQueue(true); taskQueue.addTask(new NetInternalsTest.CreateIncognitoBrowserTask()); taskQueue.addTask(new AddCacheEntryTask( - 'somewhere.com', '1.2.3.4', 0, true)); + 'somewhere.com', '1.2.3.4', 0, true)); taskQueue.addTask(NetInternalsTest.getCloseIncognitoBrowserTask()); taskQueue.addTask(new WaitForEntryDestructionTask('somewhere.com')); taskQueue.run(true); diff --git a/chrome/test/data/webui/net_internals/test_view.js b/chrome/test/data/webui/net_internals/test_view.js index 8eeada6..85d91e6 100644 --- a/chrome/test/data/webui/net_internals/test_view.js +++ b/chrome/test/data/webui/net_internals/test_view.js @@ -173,9 +173,9 @@ TEST_F('NetInternalsTest', 'netInternalsTestViewPassTwice', function() { */ TEST_F('NetInternalsTest', 'netInternalsTestViewFailTwice', function() { var taskQueue = new NetInternalsTest.TaskQueue(true); - taskQueue.addTask(new RunTestSuiteTask(NetError.UNSAFE_PORT, + taskQueue.addTask(new RunTestSuiteTask(NetError.ERR_UNSAFE_PORT, 'http://127.0.0.1:7/')); - taskQueue.addTask(new RunTestSuiteTask(NetError.UNSAFE_PORT, + taskQueue.addTask(new RunTestSuiteTask(NetError.ERR_UNSAFE_PORT, 'http://127.0.0.1:7/')); taskQueue.run(); }); diff --git a/chromeos/network/onc/onc_certificate_importer_impl.cc b/chromeos/network/onc/onc_certificate_importer_impl.cc index 13e4880..7bb1833 100644 --- a/chromeos/network/onc/onc_certificate_importer_impl.cc +++ b/chromeos/network/onc/onc_certificate_importer_impl.cc @@ -278,9 +278,10 @@ bool CertificateImporterImpl::ParseServerOrCaCertificate( success = target_nssdb_->ImportCACerts(cert_list, trust, &failures); if (!failures.empty()) { + std::string error_string = net::ErrorToString(failures[0].net_error); ONC_LOG_ERROR( base::StringPrintf("Error ( %s ) importing %s certificate", - net::ErrorToString(failures[0].net_error), + error_string.c_str(), cert_type.c_str())); return false; } @@ -329,9 +330,10 @@ bool CertificateImporterImpl::ParseClientCertificate( int import_result = target_nssdb_->ImportFromPKCS12( module.get(), decoded_pkcs12, base::string16(), false, &imported_certs); if (import_result != net::OK) { + std::string error_string = net::ErrorToString(import_result); ONC_LOG_ERROR( base::StringPrintf("Unable to import client certificate (error %s)", - net::ErrorToString(import_result))); + error_string.c_str())); return false; } diff --git a/components/cronet/android/org_chromium_net_UrlRequest.cc b/components/cronet/android/org_chromium_net_UrlRequest.cc index 8ec8b7a..836f016 100644 --- a/components/cronet/android/org_chromium_net_UrlRequest.cc +++ b/components/cronet/android/org_chromium_net_UrlRequest.cc @@ -252,10 +252,11 @@ static jstring GetErrorString(JNIEnv* env, URLRequestPeer* request = reinterpret_cast<URLRequestPeer*>(urlRequestPeer); int error_code = request->error_code(); char buffer[200]; + std::string error_string = net::ErrorToString(error_code); snprintf(buffer, sizeof(buffer), "System error: %s(%d)", - net::ErrorToString(error_code), + error_string.c_str(), error_code); return ConvertUTF8ToJavaString(env, buffer).Release(); } diff --git a/content/child/socket_stream_dispatcher.cc b/content/child/socket_stream_dispatcher.cc index 017a116..3a520d2 100644 --- a/content/child/socket_stream_dispatcher.cc +++ b/content/child/socket_stream_dispatcher.cc @@ -4,6 +4,7 @@ #include "content/child/socket_stream_dispatcher.h" +#include <string> #include <vector> #include "base/bind.h" @@ -46,7 +47,7 @@ class IPCWebSocketStreamHandleBridge : public WebSocketStreamHandleBridge { void OnSentData(int amount_sent); void OnReceivedData(const std::vector<char>& data); void OnClosed(); - void OnFailed(int error_code, const char* error_msg); + void OnFailed(int error_code, const std::string& error_msg); private: virtual ~IPCWebSocketStreamHandleBridge(); @@ -163,7 +164,7 @@ void IPCWebSocketStreamHandleBridge::OnClosed() { } void IPCWebSocketStreamHandleBridge::OnFailed(int error_code, - const char* error_msg) { + const std::string& error_msg) { DVLOG(1) << "Bridge #" << socket_id_ << " OnFailed (error_code=" << error_code << ")"; if (delegate_) diff --git a/device/bluetooth/bluetooth_socket_win.cc b/device/bluetooth/bluetooth_socket_win.cc index 15a5198..402337e 100644 --- a/device/bluetooth/bluetooth_socket_win.cc +++ b/device/bluetooth/bluetooth_socket_win.cc @@ -221,7 +221,7 @@ void BluetoothSocketWin::DoConnect( scoped_socket->AdoptConnectedSocket(socket_fd, net::IPEndPoint()); if (net_result != net::OK) { error_callback.Run("Error connecting to socket: " + - std::string(net::ErrorToString(net_result))); + net::ErrorToString(net_result)); closesocket(socket_fd); return; } diff --git a/net/base/net_errors.cc b/net/base/net_errors.cc index a9d1443..7c219af 100644 --- a/net/base/net_errors.cc +++ b/net/base/net_errors.cc @@ -24,19 +24,36 @@ namespace net { const char kErrorDomain[] = "net"; -const char* ErrorToString(int error) { +std::string ErrorToString(int error) { + return "net::" + ErrorToShortString(error); +} + +std::string ErrorToShortString(int error) { if (error == 0) - return "net::OK"; + return "OK"; + const char* error_string; switch (error) { #define NET_ERROR(label, value) \ case ERR_ ## label: \ - return "net::" STRINGIZE_NO_EXPANSION(ERR_ ## label); + error_string = # label; \ + break; #include "net/base/net_error_list.h" #undef NET_ERROR default: - return "net::<unknown>"; + NOTREACHED(); + error_string = "<unknown>"; } + return std::string("ERR_") + error_string; +} + +bool IsCertificateError(int error) { + // Certificate errors are negative integers from net::ERR_CERT_BEGIN + // (inclusive) to net::ERR_CERT_END (exclusive) in *decreasing* order. + // ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN is currently an exception to this + // rule. + return (error <= ERR_CERT_BEGIN && error > ERR_CERT_END) || + (error == ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN); } std::vector<int> GetAllErrorCodesForUma() { diff --git a/net/base/net_errors.h b/net/base/net_errors.h index 2c51361..4dc6042 100644 --- a/net/base/net_errors.h +++ b/net/base/net_errors.h @@ -5,6 +5,7 @@ #ifndef NET_BASE_NET_ERRORS_H__ #define NET_BASE_NET_ERRORS_H__ +#include <string> #include <vector> #include "base/basictypes.h" @@ -30,17 +31,13 @@ enum Error { }; // Returns a textual representation of the error code for logging purposes. -NET_EXPORT const char* ErrorToString(int error); +NET_EXPORT std::string ErrorToString(int error); + +// Same as above, but leaves off the leading "net::". +NET_EXPORT std::string ErrorToShortString(int error); // Returns true if |error| is a certificate error code. -inline bool IsCertificateError(int error) { - // Certificate errors are negative integers from net::ERR_CERT_BEGIN - // (inclusive) to net::ERR_CERT_END (exclusive) in *decreasing* order. - // ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN is currently an exception to this - // rule. - return (error <= ERR_CERT_BEGIN && error > ERR_CERT_END) || - (error == ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN); -} +NET_EXPORT bool IsCertificateError(int error); // Map system error code to Error. NET_EXPORT Error MapSystemError(int os_error); diff --git a/net/base/net_log_logger.cc b/net/base/net_log_logger.cc index aa5ec40..f6ac5dd7 100644 --- a/net/base/net_log_logger.cc +++ b/net/base/net_log_logger.cc @@ -13,6 +13,7 @@ #include "base/values.h" #include "net/base/address_family.h" #include "net/base/load_states.h" +#include "net/base/net_errors.h" #include "net/quic/quic_protocol.h" #include "net/quic/quic_utils.h" @@ -120,7 +121,7 @@ base::DictionaryValue* NetLogLogger::GetConstants() { base::DictionaryValue* dict = new base::DictionaryValue(); #define NET_ERROR(label, value) \ - dict->SetInteger(# label, static_cast<int>(value)); + dict->SetInteger(ErrorToShortString(value), static_cast<int>(value)); #include "net/base/net_error_list.h" #undef NET_ERROR diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_verifier_chromium.cc index 5f70199..90e03fe 100644 --- a/net/quic/crypto/proof_verifier_chromium.cc +++ b/net/quic/crypto/proof_verifier_chromium.cc @@ -290,8 +290,9 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { #endif if (result != OK) { + std::string error_string = ErrorToString(result); error_details_ = StringPrintf("Failed to verify certificate chain: %s", - ErrorToString(result)); + error_string.c_str()); DLOG(WARNING) << error_details_; } @@ -301,8 +302,8 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { } bool ProofVerifierChromium::Job::VerifySignature(const string& signed_data, - const string& signature, - const string& cert) { + const string& signature, + const string& cert) { StringPiece spki; if (!asn1::ExtractSPKIFromDERCert(cert, &spki)) { DLOG(WARNING) << "ExtractSPKIFromDERCert failed"; diff --git a/net/tools/gdig/gdig.cc b/net/tools/gdig/gdig.cc index fbee886..de62de1 100644 --- a/net/tools/gdig/gdig.cc +++ b/net/tools/gdig/gdig.cc @@ -487,7 +487,8 @@ void GDig::OnResolveComplete(unsigned entry_index, static_cast<int>(resolve_time.InMilliseconds()), replay_log_[entry_index].domain_name.c_str(), val); if (val != OK) { - printf("%s", ErrorToString(val)); + std::string error_string = ErrorToString(val); + printf("%s", error_string.c_str()); } else { for (size_t i = 0; i < address_list->size(); ++i) { if (i != 0) |