[open-ils-commits] r17122 - in trunk/Open-ILS/xul/staff_client: chrome/content/util server/patron (phasefx)

svn at svn.open-ils.org svn at svn.open-ils.org
Fri Aug 6 15:45:54 EDT 2010


Author: phasefx
Date: 2010-08-06 15:45:49 -0400 (Fri, 06 Aug 2010)
New Revision: 17122

Modified:
   trunk/Open-ILS/xul/staff_client/chrome/content/util/browser.js
   trunk/Open-ILS/xul/staff_client/server/patron/display.js
Log:
menu.js and patron/display.js were passing xulG functions to browser.js differently.  This makes browser.js a little smarter (so that it doesn't trampled xulG-destined members sent via passthru_content_params) and sidesteps some security blockers with inspecting xulG.  xulG is a namespace/object for shoving foreign data and/or functions into a given window

Modified: trunk/Open-ILS/xul/staff_client/chrome/content/util/browser.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/util/browser.js	2010-08-06 19:37:08 UTC (rev 17121)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/util/browser.js	2010-08-06 19:45:49 UTC (rev 17122)
@@ -159,15 +159,15 @@
             cw.IAMXUL = true;
             cw.XUL_BUILD_ID = '/xul/server/'.split(/\//)[2];
             cw.xulG = obj.passthru_content_params || {};
-            cw.xulG.set_tab = window.xulG.set_tab;
-            cw.xulG.new_tab = window.xulG.new_tab;
-            cw.xulG.new_patron_tab = window.xulG.new_patron_tab;
-            cw.xulG.set_patron_tab = window.xulG.set_patron_tab;
-            cw.xulG.volume_item_creator = window.xulG.volume_item_creator;
-            cw.xulG.get_new_session = window.xulG.get_new_session;
-            cw.xulG.holdings_maintenance_tab = window.xulG.holdings_maintenance_tab;
-            cw.xulG.url_prefix = window.xulG.url_prefix;
-            cw.xulG.urls = window.urls;
+            if (!cw.xulG.set_tab) { cw.xulG.set_tab = function(a,b,c) { return window.xulG.set_tab(a,b,c); }; }
+            if (!cw.xulG.new_tab) { cw.xulG.new_tab = function(a,b,c) { return window.xulG.new_tab(a,b,c); }; }
+            if (!cw.xulG.new_patron_tab) { cw.xulG.new_patron_tab = function(a,b) { return window.xulG.new_patron_tab(a,b); }; }
+            if (!cw.xulG.set_patron_tab) { cw.xulG.set_patron_tab = function(a,b) { return window.xulG.set_patron_tab(a,b); }; }
+            if (!cw.xulG.volume_item_creator) { cw.xulG.volume_item_creator = function(a) { return window.xulG.volume_item_creator(a); }; }
+            if (!cw.xulG.get_new_session) { cw.xulG.get_new_session = function(a) { return window.xulG.get_new_session(a); }; }
+            if (!cw.xulG.holdings_maintenance_tab) { cw.xulG.holdings_maintenance_tab = function(a,b,c) { return window.xulG.holdings_maintenance_tab(a,b,c); }; }
+            if (!cw.xulG.url_prefix) { cw.xulG.url_prefix = function(url) { return window.xulG.url_prefix(url); }; }
+            if (!cw.xulG.urls) { cw.xulG.urls = window.urls; }
             try { s += ('******** cw = ' + cw + ' cw.xulG = ' + (cw.xulG) + '\n'); } catch(E) { s+=E + '\n'; }
             obj.error.sdump('D_BROWSER',s);
         } catch(E) {

Modified: trunk/Open-ILS/xul/staff_client/server/patron/display.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/patron/display.js	2010-08-06 19:37:08 UTC (rev 17121)
+++ trunk/Open-ILS/xul/staff_client/server/patron/display.js	2010-08-06 19:45:49 UTC (rev 17122)
@@ -202,9 +202,10 @@
                                         obj.summary_window.g.summary.controller.render('patron_bill');
                                         obj.bill_window.g.bills.refresh(true);
                                     },
-                                    'url_prefix' : xulG.url_prefix,
-                                    'new_tab' : xulG.new_tab,
-                                    'new_patron_tab' : xulG.new_patron_tab
+                                    'url_prefix' : function(url) { return xulG.url_prefix(url); },
+                                    'get_new_session' : function(a) { return xulG.get_new_session(a); },
+                                    'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                                    'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); }
                                 }
                             );
                             netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
@@ -241,9 +242,10 @@
                                             'passthru_content_params' : {
                                                 'spawn_search' : spawn_search,
                                                 'spawn_editor' : spawn_editor,
-                                                'url_prefix' : xulG.url_prefix,
-                                                'new_tab' : xulG.new_tab,
-                                                'new_patron_tab' : xulG.new_patron_tab,
+                                                'url_prefix' : function(url) { return xulG.url_prefix(url); },
+                                                'get_new_session' : function(a) { return xulG.get_new_session(a); },
+                                                'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                                                'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); },
                                                 'params' : p,
                                                 'on_save' : function(p_obj) {
                                                     JSAN.use('patron.util');
@@ -283,9 +285,10 @@
                                         },
                                         'spawn_search' : spawn_search,
                                         'spawn_editor' : spawn_editor,
-                                        'url_prefix' : xulG.url_prefix,
-                                        'new_tab' : xulG.new_tab,
-                                        'new_patron_tab' : xulG.new_patron_tab
+                                        'url_prefix' : function(url) { return xulG.url_prefix(url); },
+                                        'get_new_session' : function(a) { return xulG.get_new_session(a); },
+                                        'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                                        'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); }
                                     }
                                 }
                             );
@@ -307,9 +310,10 @@
                                 {},
                                 {
                                     'patron_id' : obj.patron.id(),
-                                    'url_prefix' : xulG.url_prefix,
-                                    'new_tab' : xulG.new_tab,
-                                    'new_patron_tab' : xulG.new_patron_tab
+                                    'url_prefix' : function(url) { return xulG.url_prefix(url); },
+                                    'get_new_session' : function(a) { return xulG.get_new_session(a); },
+                                    'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                                    'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); }
                                 }
                             );
                         }
@@ -334,9 +338,10 @@
                                 {},
                                 {
                                     'patron_id' : obj.patron.id(),
-                                    'url_prefix' : xulG.url_prefix,
-                                    'new_tab' : xulG.new_tab,
-                                    'new_patron_tab' : xulG.new_patron_tab
+                                    'url_prefix' : function(url) { return xulG.url_prefix(url); },
+                                    'get_new_session' : function(a) { return xulG.get_new_session(a); },
+                                    'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                                    'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); }
                                 }
                             );
                         }
@@ -349,9 +354,10 @@
                                 {},
                                 {
                                     'patron_id' : obj.patron.id(),
-                                    'url_prefix' : xulG.url_prefix,
-                                    'new_tab' : xulG.new_tab,
-                                    'new_patron_tab' : xulG.new_patron_tab
+                                    'url_prefix' : function(url) { return xulG.url_prefix(url); },
+                                    'get_new_session' : function(a) { return xulG.get_new_session(a); },
+                                    'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                                    'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); }
                                 }
                             );
                         }
@@ -463,9 +469,10 @@
                                                 alert(E);
                                             }
                                         },
-                                        'url_prefix' : xulG.url_prefix,
-                                        'new_tab' : xulG.new_tab,
-                                        'new_patron_tab' : xulG.new_patron_tab
+                                        'url_prefix' : function(url) { return xulG.url_prefix(url); },
+                                        'get_new_session' : function(a) { return xulG.get_new_session(a); },
+                                        'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                                        'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); }
                                     }
                                 );
                             } catch(E) {
@@ -485,8 +492,9 @@
                                 {
                                     'display_window' : window,
                                     'patron_id' : obj.patron.id(),
-                                    'url_prefix' : xulG.url_prefix,
-                                    'new_tab' : xulG.new_tab,
+                                    'url_prefix' : function(url) { return xulG.url_prefix(url); },
+                                    'get_new_session' : function(a) { return xulG.get_new_session(a); },
+                                    'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
                                     'on_money_change' : function(b) {
                                         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
                                         obj.summary_window.refresh();
@@ -615,9 +623,9 @@
                     'on_finished' : obj.gen_patron_summary_finish_func(),
                     'stop_sign_page' : obj.gen_patron_stop_sign_page_func(),
                     'spawn_group_interface' : function() { obj.spawn_group_interface(); },
-                    'new_patron_tab' : xulG.new_patron_tab,
-                    'new_tab' : xulG.new_tab,
-                    'set_tab' : xulG.set_tab,
+                    'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); },
+                    'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                    'set_tab' : function(a,b,c) { return xulG.set_tab(a,b,c); },
                     'on_error' : function(E) {
                         try {
                             var error;
@@ -716,9 +724,9 @@
                                             {
                                                 //'id' : list[0],
                                                 'spawn_group_interface' : function() { obj.spawn_group_interface(); },
-                                                'new_patron_tab' : xulG.new_patron_tab,
-                                                'new_tab' : xulG.new_tab,
-                                                'set_tab' : xulG.set_tab,
+                                                'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); },
+                                                'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                                                'set_tab' : function(a,b,c) { return xulG.set_tab(a,b,c); },
                                                 'on_finished' : function(patron) {
                                                     obj.patron = patron;
                                                     obj.controller.render();
@@ -796,7 +804,7 @@
                 urls.XUL_CHECKOUT,
                 {},
                 { 
-                    'set_tab' : xulG.set_tab,
+                    'set_tab' : function(a,b,c) { return xulG.set_tab(a,b,c); },
                     'patron_id' : obj.patron.id(),
                     'patron' : obj.patron,
                     'check_stop_checkouts' : function() { return obj.check_stop_checkouts(); },
@@ -961,9 +969,10 @@
                 {},
                 {
                     'patron_id' : obj.patron.id(),
-                    'url_prefix' : xulG.url_prefix,
-                    'new_tab' : xulG.new_tab,
-                    'new_patron_tab' : xulG.new_patron_tab
+                    'url_prefix' : function(url) { return xulG.url_prefix(url); },
+                    'get_new_session' : function(a) { return xulG.get_new_session(a); },
+                    'new_tab' : function(a,b,c) { return xulG.new_tab(a,b,c); },
+                    'new_patron_tab' : function(a,b) { return xulG.new_patron_tab(a,b); }
                 }
             );
         } catch(E) {



More information about the open-ils-commits mailing list