mozilla-bmo1005640.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Sat, 11 Nov 2017 13:13:22 +0100
branchfirefox52
changeset 1009 7e424bc150d1
permissions -rw-r--r--
52.4.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1009
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# HG changeset patch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
# User Zibi Braniecki <gandalf@mozilla.com>
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
# Date 1492502585 25200
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
# Node ID 4e489e84adfd63b84c8ee55a8ea4cc05984cfdd8
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
# Parent  b04931b8cbcb2620b4760ccafd66a9b1190acca4
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
Bug 1005640 - Flush StringBundle cache when app-locales change. r=valentin
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
StringBundle caches bundles, so when language chain changes we should
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
flush the cache to enable new strings to be loaded.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
This also affects localized prefs like intl.accept_languages.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
Then in HttpHandler we have to mark the value as dirty so that next
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
time it's called it actually recalculates using flushed string bundle
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
with the new locale.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
MozReview-Commit-ID: DKWEDUli4yH
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
diff --git a/intl/strres/nsStringBundle.cpp b/intl/strres/nsStringBundle.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
--- a/intl/strres/nsStringBundle.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
+++ b/intl/strres/nsStringBundle.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
@@ -524,16 +524,17 @@ nsresult
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
 nsStringBundleService::Init()
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
   nsCOMPtr<nsIObserverService> os = mozilla::services::GetObserverService();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
   if (os) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
     os->AddObserver(this, "memory-pressure", true);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
     os->AddObserver(this, "profile-do-change", true);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
     os->AddObserver(this, "chrome-flush-caches", true);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
     os->AddObserver(this, "xpcom-category-entry-added", true);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
+    os->AddObserver(this, "intl:app-locales-changed", true);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
   // instantiate the override service, if there is any.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
   // at some point we probably want to make this a category, and
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
   // support multiple overrides
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
   mOverrideStrings = do_GetService(NS_STRINGBUNDLETEXTOVERRIDE_CONTRACTID);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
   return NS_OK;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
@@ -541,17 +542,18 @@ nsStringBundleService::Init()
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
 NS_IMETHODIMP
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
 nsStringBundleService::Observe(nsISupports* aSubject,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
                                const char* aTopic,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
                                const char16_t* aSomeData)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
   if (strcmp("memory-pressure", aTopic) == 0 ||
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
       strcmp("profile-do-change", aTopic) == 0 ||
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
-      strcmp("chrome-flush-caches", aTopic) == 0)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
+      strcmp("chrome-flush-caches", aTopic) == 0 ||
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
+      strcmp("intl:app-locales-changed", aTopic) == 0)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
   {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
     flushBundleCache();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
   else if (strcmp("xpcom-category-entry-added", aTopic) == 0 &&
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
            NS_LITERAL_STRING("xpcom-autoregistration").Equals(aSomeData))
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
   {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    58
     mOverrideStrings = do_GetService(NS_STRINGBUNDLETEXTOVERRIDE_CONTRACTID);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    59
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    60
diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    61
--- a/netwerk/protocol/http/nsHttpHandler.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
+++ b/netwerk/protocol/http/nsHttpHandler.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    63
@@ -197,16 +197,17 @@ nsHttpHandler::nsHttpHandler()
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    64
     , mEnforceAssocReq(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    65
     , mLastUniqueID(NowInSeconds())
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    66
     , mSessionStartTime(0)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    67
     , mLegacyAppName("Mozilla")
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    68
     , mLegacyAppVersion("5.0")
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    69
     , mProduct("Gecko")
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    70
     , mCompatFirefoxEnabled(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    71
     , mUserAgentIsDirty(true)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    72
+    , mAcceptLanguagesIsDirty(true)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    73
     , mPromptTempRedirect(true)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    74
     , mEnablePersistentHttpsCaching(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    75
     , mDoNotTrackEnabled(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    76
     , mSafeHintEnabled(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    77
     , mParentalControlEnabled(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    78
     , mHandlerActive(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    79
     , mTelemetryEnabled(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    80
     , mAllowExperiments(true)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    81
@@ -460,18 +461,23 @@ nsHttpHandler::AddStandardRequestHeaders
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    82
     // service worker expects to see it.  The other "default" headers are
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    83
     // hidden from service worker interception.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    84
     rv = request->SetHeader(nsHttp::Accept, mAccept,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    85
                             false, nsHttpHeaderArray::eVarietyRequestOverride);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    86
     if (NS_FAILED(rv)) return rv;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    87
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    88
     // Add the "Accept-Language" header.  This header is also exposed to the
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    89
     // service worker.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    90
+    if (mAcceptLanguagesIsDirty) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    91
+        rv = SetAcceptLanguages();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    92
+        MOZ_ASSERT(NS_SUCCEEDED(rv));
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    93
+    }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    94
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    95
+    // Add the "Accept-Language" header
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    96
     if (!mAcceptLanguages.IsEmpty()) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    97
-        // Add the "Accept-Language" header
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    98
         rv = request->SetHeader(nsHttp::Accept_Language, mAcceptLanguages,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    99
                                 false,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   100
                                 nsHttpHeaderArray::eVarietyRequestOverride);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   101
         if (NS_FAILED(rv)) return rv;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   102
     }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   103
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   104
     // Add the "Accept-Encoding" header
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   105
     if (isSecure) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   106
@@ -1472,26 +1478,20 @@ nsHttpHandler::PrefsChanged(nsIPrefBranc
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   107
             mMaxHttpResponseHeaderSize = val;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   108
         }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   109
     }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   110
     //
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   111
     // INTL options
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   112
     //
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   113
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   114
     if (PREF_CHANGED(INTL_ACCEPT_LANGUAGES)) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   115
-        nsCOMPtr<nsIPrefLocalizedString> pls;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   116
-        prefs->GetComplexValue(INTL_ACCEPT_LANGUAGES,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   117
-                                NS_GET_IID(nsIPrefLocalizedString),
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   118
-                                getter_AddRefs(pls));
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   119
-        if (pls) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   120
-            nsXPIDLString uval;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   121
-            pls->ToString(getter_Copies(uval));
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   122
-            if (uval)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   123
-                SetAcceptLanguages(NS_ConvertUTF16toUTF8(uval).get());
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   124
-        }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   125
+        // We don't want to set the new accept languages here since
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   126
+        // this pref is a complex type and it may be racy with flushing
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   127
+        // string resources.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   128
+        mAcceptLanguagesIsDirty = true;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   129
     }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   130
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   131
     //
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   132
     // Tracking options
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   133
     //
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   134
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   135
     if (PREF_CHANGED(DONOTTRACK_HEADER_ENABLED)) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   136
         cVar = false;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   137
@@ -1858,22 +1858,28 @@ PrepareAcceptLanguages(const char *i_Acc
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   138
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   139
     o_AcceptLanguages.Assign((const char *) q_Accept);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   140
     delete [] q_Accept;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   141
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   142
     return NS_OK;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   143
 }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   144
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   145
 nsresult
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   146
-nsHttpHandler::SetAcceptLanguages(const char *aAcceptLanguages)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   147
+nsHttpHandler::SetAcceptLanguages()
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   148
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   149
+    mAcceptLanguagesIsDirty = false;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   150
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   151
+    const nsAdoptingCString& acceptLanguages =
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   152
+        Preferences::GetLocalizedCString(INTL_ACCEPT_LANGUAGES);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   153
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   154
     nsAutoCString buf;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   155
-    nsresult rv = PrepareAcceptLanguages(aAcceptLanguages, buf);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   156
-    if (NS_SUCCEEDED(rv))
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   157
+    nsresult rv = PrepareAcceptLanguages(acceptLanguages.get(), buf);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   158
+    if (NS_SUCCEEDED(rv)) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   159
         mAcceptLanguages.Assign(buf);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   160
+    }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   161
     return rv;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   162
 }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   163
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   164
 nsresult
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   165
 nsHttpHandler::SetAccept(const char *aAccept)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   166
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   167
     mAccept = aAccept;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   168
     return NS_OK;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   169
diff --git a/netwerk/protocol/http/nsHttpHandler.h b/netwerk/protocol/http/nsHttpHandler.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   170
--- a/netwerk/protocol/http/nsHttpHandler.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   171
+++ b/netwerk/protocol/http/nsHttpHandler.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   172
@@ -385,17 +385,17 @@ private:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   173
     //
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   174
     // Useragent/prefs helper methods
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   175
     //
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   176
     void     BuildUserAgent();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   177
     void     InitUserAgentComponents();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   178
     void     PrefsChanged(nsIPrefBranch *prefs, const char *pref);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   179
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   180
     nsresult SetAccept(const char *);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   181
-    nsresult SetAcceptLanguages(const char *);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   182
+    nsresult SetAcceptLanguages();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   183
     nsresult SetAcceptEncodings(const char *, bool mIsSecure);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   184
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   185
     nsresult InitConnectionMgr();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   186
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   187
     void     NotifyObservers(nsIHttpChannel *chan, const char *event);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   188
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   189
     static void TimerCallback(nsITimer * aTimer, void * aClosure);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   190
 private:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   191
@@ -488,16 +488,17 @@ private:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   192
     nsCString      mCompatFirefox;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   193
     bool           mCompatFirefoxEnabled;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   194
     nsXPIDLCString mCompatDevice;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   195
     nsCString      mDeviceModelId;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   196
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   197
     nsCString      mUserAgent;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   198
     nsXPIDLCString mUserAgentOverride;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   199
     bool           mUserAgentIsDirty; // true if mUserAgent should be rebuilt
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   200
+    bool           mAcceptLanguagesIsDirty;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   201
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   202
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   203
     bool           mPromptTempRedirect;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   204
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   205
     // Persistent HTTPS caching flag
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   206
     bool           mEnablePersistentHttpsCaching;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   207
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   208
     // For broadcasting tracking preference