LP1198983: Remove deprecated useragent.override variable
authorRemington Steed <rjs7@calvin.edu>
Wed, 5 Mar 2014 22:57:24 +0000 (17:57 -0500)
committerDan Wells <dbw2@calvin.edu>
Fri, 14 Mar 2014 20:06:10 +0000 (16:06 -0400)
To quote Dan Wells in bug comment #6:

Back in the 2.2 days, Evergreen had code which set the
'general.useragent.override' to something like 'Mozilla/5.0 (Windows; U;
Windows NT 6.1; en-US; rv:1.9.2.25) Gecko/20111212 oils_xulrunner
/xul/rel_2_2_0/server/'. For anyone who once had a 2.2 client installed
and upgraded from it, this setting persists (this is the situation for
most stations in our library).

Since this string does not match the new test for 'open_ils_staff_client'
in the useragent, these clients are not properly streaming requests. This
problem was most easily noticed in Vandelay progress bars (they always
jumped from 0% to 100%).

This commit adds the code provided by Bill Erickson in the LP bug
comments. To test it, you can add the 'general.useragent.override'
setting to your staff client with any value (using the 'about:config'
interface), then run this code and check that your setting is gone.

Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js

index 04af3b8..0295318 100644 (file)
@@ -1112,6 +1112,20 @@ OpenILS.data.prototype = {
 
         }
 
+        this.chain.push(
+            function () {
+                try {
+                    var prefs = Components.classes['@mozilla.org/preferences-service;1']
+                        .getService(Components.interfaces['nsIPrefBranch']);
+                    prefs.clearUserPref('general.useragent.override');
+                    obj.data_progress('Cleared deprecated "general.useragent.override" value. ');
+                } catch(E) {
+                    obj.error.sdump('D_ERROR','Error clearing "general.useragent.override" for '
+                        + location.href + '\n' + E + '\n');
+                }
+            }
+        );
+
         this.exec.chain( this.chain );
 
     }