(port)
| 3831 | /* ###### Request Handler ####### */ |
| 3832 | |
| 3833 | var connectHandler = function(port) { |
| 3834 | if (!ginit) { |
| 3835 | window.setTimeout(function() { connectHandler(port); }, 10); |
| 3836 | return; |
| 3837 | } |
| 3838 | var connectMsgHandler = function(request) { |
| 3839 | var disconnectHandler = null; |
| 3840 | var sender = port.sender; |
| 3841 | var sendResponse = function(o) { |
| 3842 | try { |
| 3843 | port.postMessage(o); |
| 3844 | } catch (e) { |
| 3845 | console.log('bg: Error sending port (' + port.name + ') message: ' + JSON.stringify(o)); |
| 3846 | } |
| 3847 | }; |
| 3848 | |
| 3849 | if (request.method == "xhr") { |
| 3850 | var done = function() { |
| 3851 | port.disconnect(); |
| 3852 | } |
| 3853 | var cbe = function(req) { sendResponse({error: true, data: req});}; |
| 3854 | var cbs = function(req) { sendResponse({success: true, data: req});}; |
| 3855 | var cbc = function(req) { sendResponse({change: true, data: req});}; |
| 3856 | xmlhttpRequest(request.details, cbs, cbc, cbe, done); |
| 3857 | } else if (request.method == "addStorageListener") { |
| 3858 | if (typeof sender.tab != 'undefined') { |
| 3859 | if (V || SV) console.log("storage add listener " + request.name + " " + request.id); |
| 3860 | TM_storageListener.push({ tabid: sender.tab.id, id: request.id, name: request.name, time: (new Date()).getTime(), response: sendResponse}); |
| 3861 | disconnectHandler = function() { |
| 3862 | // there is no need to try to send some data when we're already disconnected |
| 3863 | removeStorageListeners(request.name, request.id, false); |
| 3864 | }; |
| 3865 | } else { |
| 3866 | console.log(I18N.getMessage("Unable_to_load_storage_due_to_empty_tabID_")); |
| 3867 | sendResponse({ error: true }); |
| 3868 | } |
| 3869 | } else if (request.method == "removeStorageListener") { |
| 3870 | if (typeof sender.tab != 'undefined') { |
| 3871 | if (V) console.log("storage remove listener " + request.name + " " + request.id); |
| 3872 | /* do not store the whole storage as it already should be modifed with every GM_setValue |
| 3873 | if (request.name) { |
| 3874 | var s = loadScriptStorage(request.name); |
| 3875 | if (request.storage.ts != undefined && |
| 3876 | request.storage.ts > s.ts) { |
| 3877 | if (V || SV) console.log("storage store " + request.name); |
| 3878 | storeScriptStorage(request.name, request.storage); |
| 3879 | } |
| 3880 | } */ |
| 3881 | removeStorageListeners(request.name, request.id); |
| 3882 | sendResponse({ error: false }); |
| 3883 | } else { |
| 3884 | console.log("Unable to remove storage listener due to empty tabID!"); |
| 3885 | sendResponse({ error: true }); |
| 3886 | } |
| 3887 | } else if (request.method == "saveStorageKey") { |
| 3888 | if (typeof sender.tab != 'undefined') { |
| 3889 | if (request.name) { |
| 3890 | var s = loadScriptStorage(request.name); |
nothing calls this directly
no outgoing calls
no test coverage detected
searching dependent graphs…