diff options
Diffstat (limited to 'net/base')
-rw-r--r-- | net/base/net_module.cc | 4 | ||||
-rw-r--r-- | net/base/net_module.h | 5 | ||||
-rw-r--r-- | net/base/net_util.cc | 5 | ||||
-rw-r--r-- | net/base/registry_controlled_domain.cc | 2 |
4 files changed, 9 insertions, 7 deletions
diff --git a/net/base/net_module.cc b/net/base/net_module.cc index d54a0a4..7c3f9c1 100644 --- a/net/base/net_module.cc +++ b/net/base/net_module.cc @@ -14,10 +14,10 @@ void NetModule::SetResourceProvider(ResourceProvider func) { } // static -std::string NetModule::GetResource(int key) { +StringPiece NetModule::GetResource(int key) { // avoid thread safety issues by copying provider address to a local var ResourceProvider func = resource_provider; - return func ? func(key) : std::string(); + return func ? func(key) : StringPiece(); } } // namespace net diff --git a/net/base/net_module.h b/net/base/net_module.h index ef309ff..e527b9f 100644 --- a/net/base/net_module.h +++ b/net/base/net_module.h @@ -8,6 +8,7 @@ #include <string> #include "base/basictypes.h" +#include "base/string_piece.h" namespace net { @@ -20,7 +21,7 @@ namespace net { // class NetModule { public: - typedef std::string (*ResourceProvider)(int key); + typedef StringPiece (*ResourceProvider)(int key); // Set the function to call when the net module needs resources static void SetResourceProvider(ResourceProvider func); @@ -28,7 +29,7 @@ class NetModule { // Call the resource provider (if one exists) to get the specified resource. // Returns an empty string if the resource does not exist or if there is no // resource provider. - static std::string GetResource(int key); + static StringPiece GetResource(int key); private: DISALLOW_IMPLICIT_CONSTRUCTORS(NetModule); diff --git a/net/base/net_util.cc b/net/base/net_util.cc index 05419fb..1617d85 100644 --- a/net/base/net_util.cc +++ b/net/base/net_util.cc @@ -800,11 +800,12 @@ std::string CanonicalizeHost(const std::wstring& host, bool* is_ip_address) { #ifdef OS_WIN std::string GetDirectoryListingHeader(const std::string& title) { - std::string result = NetModule::GetResource(IDR_DIR_HEADER_HTML); - if (result.empty()) { + static const StringPiece header(NetModule::GetResource(IDR_DIR_HEADER_HTML)); + if (header.empty()) { NOTREACHED() << "expected resource not found"; } + std::string result(header.data(), header.size()); result.append("<script>start("); string_escape::JavascriptDoubleQuote(title, true, &result); result.append(");</script>\n"); diff --git a/net/base/registry_controlled_domain.cc b/net/base/registry_controlled_domain.cc index 3f4f024..f98a3f3 100644 --- a/net/base/registry_controlled_domain.cc +++ b/net/base/registry_controlled_domain.cc @@ -296,7 +296,7 @@ void RegistryControlledDomainService::UseDomainData(const std::string& data) { } void RegistryControlledDomainService::Init() { - domain_data_ = NetModule::GetResource(IDR_EFFECTIVE_TLD_NAMES); + domain_data_ = NetModule::GetResource(IDR_EFFECTIVE_TLD_NAMES).as_string(); if (domain_data_.empty()) { // The resource file isn't present for some unit tests, for example. Fall // back to a tiny, basic list of rules in that case. |