| Index: webkit/glue/webkit_glue.cc
|
| diff --git a/webkit/glue/webkit_glue.cc b/webkit/glue/webkit_glue.cc
|
| index 350ba29fababcfc2596f0977f4b6d69cfbd2e40d..45944fc58b10844cf203fcbca8474948c1dbb743 100644
|
| --- a/webkit/glue/webkit_glue.cc
|
| +++ b/webkit/glue/webkit_glue.cc
|
| @@ -11,9 +11,9 @@
|
| #include <sys/utsname.h>
|
| #endif
|
|
|
| +#include "base/lazy_instance.h"
|
| #include "base/logging.h"
|
| #include "base/scoped_ptr.h"
|
| -#include "base/singleton.h"
|
| #include "base/string_piece.h"
|
| #include "base/string_util.h"
|
| #include "base/stringprintf.h"
|
| @@ -356,10 +356,11 @@ struct UserAgentState {
|
| bool user_agent_is_overridden;
|
| };
|
|
|
| -Singleton<UserAgentState> g_user_agent;
|
| +static base::LazyInstance<UserAgentState> g_user_agent(
|
| + base::LINKER_INITIALIZED);
|
|
|
| void SetUserAgentToDefault() {
|
| - BuildUserAgent(false, &g_user_agent->user_agent);
|
| + BuildUserAgent(false, &g_user_agent.Get().user_agent);
|
| }
|
|
|
| } // namespace
|
| @@ -367,31 +368,31 @@ void SetUserAgentToDefault() {
|
| void SetUserAgent(const std::string& new_user_agent) {
|
| // If you combine this with the previous line, the function only works the
|
| // first time.
|
| - DCHECK(!g_user_agent->user_agent_requested) <<
|
| + DCHECK(!g_user_agent.Get().user_agent_requested) <<
|
| "Setting the user agent after someone has "
|
| "already requested it can result in unexpected behavior.";
|
| - g_user_agent->user_agent_is_overridden = true;
|
| - g_user_agent->user_agent = new_user_agent;
|
| + g_user_agent.Get().user_agent_is_overridden = true;
|
| + g_user_agent.Get().user_agent = new_user_agent;
|
| }
|
|
|
| const std::string& GetUserAgent(const GURL& url) {
|
| - if (g_user_agent->user_agent.empty())
|
| + if (g_user_agent.Get().user_agent.empty())
|
| SetUserAgentToDefault();
|
| - g_user_agent->user_agent_requested = true;
|
| - if (!g_user_agent->user_agent_is_overridden) {
|
| + g_user_agent.Get().user_agent_requested = true;
|
| + if (!g_user_agent.Get().user_agent_is_overridden) {
|
| // Workarounds for sites that use misguided UA sniffing.
|
| #if defined(OS_POSIX) && !defined(OS_MACOSX)
|
| if (MatchPattern(url.host(), "*.mail.yahoo.com")) {
|
| // mail.yahoo.com is ok with Windows Chrome but not Linux Chrome.
|
| // http://bugs.chromium.org/11136
|
| // TODO(evanm): remove this if Yahoo fixes their sniffing.
|
| - if (g_user_agent->mimic_windows_user_agent.empty())
|
| - BuildUserAgent(true, &g_user_agent->mimic_windows_user_agent);
|
| - return g_user_agent->mimic_windows_user_agent;
|
| + if (g_user_agent.Get().mimic_windows_user_agent.empty())
|
| + BuildUserAgent(true, &g_user_agent.Get().mimic_windows_user_agent);
|
| + return g_user_agent.Get().mimic_windows_user_agent;
|
| }
|
| #endif
|
| }
|
| - return g_user_agent->user_agent;
|
| + return g_user_agent.Get().user_agent;
|
| }
|
|
|
| void SetForcefullyTerminatePluginProcess(bool value) {
|
|
|