Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(219)

Unified Diff: webkit/glue/webkit_glue.cc

Issue 8296011: Make setting the user agent work with the zygote on linux. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« webkit/glue/webkit_glue.h ('K') | « webkit/glue/webkit_glue.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/webkit_glue.cc
diff --git a/webkit/glue/webkit_glue.cc b/webkit/glue/webkit_glue.cc
index 1d8930577160eccdc754a36141b5232720b21494..25c991322dbc3ccc3cadc6464fda55cd30c1a342 100644
--- a/webkit/glue/webkit_glue.cc
+++ b/webkit/glue/webkit_glue.cc
@@ -344,6 +344,7 @@ class UserAgentState {
~UserAgentState();
void Set(const std::string& user_agent, bool overriding);
+ void Reset(const std::string& user_agent, bool overriding);
const std::string& Get(const GURL& url) const;
private:
@@ -375,9 +376,16 @@ void UserAgentState::Set(const std::string& user_agent, bool overriding) {
// given g_user_agent is a global.
return;
}
- DCHECK(!user_agent.empty());
DCHECK(!user_agent_requested_) << "Setting the user agent after someone has "
"already requested it can result in unexpected behavior.";
+ lock_.Release();
+ UserAgentState::Reset(user_agent, overriding);
+ lock_.Acquire();
+}
+
+void UserAgentState::Reset(const std::string& user_agent, bool overriding) {
+ base::AutoLock auto_lock(lock_);
+ DCHECK(!user_agent.empty());
user_agent_is_overridden_ = overriding;
user_agent_ = user_agent;
}
@@ -417,6 +425,10 @@ void SetUserAgent(const std::string& user_agent, bool overriding) {
g_user_agent.Get().Set(user_agent, overriding);
}
+void ResetUserAgent(const std::string& user_agent, bool overriding) {
+ g_user_agent.Get().Reset(user_agent, overriding);
+}
+
const std::string& GetUserAgent(const GURL& url) {
return g_user_agent.Get().Get(url);
}
« webkit/glue/webkit_glue.h ('K') | « webkit/glue/webkit_glue.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698