[chrome-gnome-shell] Dropped last hacks since chrome-gnome-shell fully supported by e.o.g. now.



commit 850fecd78c3834b90caa3eb903756d02e462e65b
Author: Yuri Konotopov <ykonotopov gnome org>
Date:   Sat Dec 3 12:22:22 2016 +0300

    Dropped last hacks since chrome-gnome-shell fully supported by e.o.g. now.
    
    See-Also: https://git.gnome.org/browse/extensions-web/commit/?id=e42c34064528a0710be29427ffed9d4661a26973
    See-Also: https://git.gnome.org/browse/extensions-web/commit/?id=143715b427a020ddca18e107bb3acdab8e039c6e
    See-Also: https://git.gnome.org/browse/extensions-web/commit/?id=9d6f222d2638088b7df60a2b6dabae8358633177

 extension/content-script-end.js     |   17 ---
 extension/content-script-start.js   |   27 +---
 extension/include/sweettooth-api.js |  243 ++++++++++++++++-------------------
 extension/manifest.json             |    5 -
 4 files changed, 116 insertions(+), 176 deletions(-)
---
diff --git a/extension/content-script-start.js b/extension/content-script-start.js
index b4887c3..2aefad0 100644
--- a/extension/content-script-start.js
+++ b/extension/content-script-start.js
@@ -16,25 +16,6 @@
 var gs_require_inject = function () {
        GS_CHROME_ID            = "${GS_CHROME_ID}";
        GS_CHROME_VERSION       = "${GS_CHROME_VERSION}";
-
-       gs_chrome_initialized   = false;
-       var functionSet         = false;
-       var originalRequire     = null;
-
-       Object.defineProperty(window, 'require', {
-               get: function () {
-                       if(functionSet && !gs_chrome_initialized)
-                               return function() {};
-
-                       return originalRequire;
-               },
-               set: function (fn) {
-                       if (typeof (fn) === 'function')
-                               functionSet = true;
-
-                       originalRequire = fn;
-               }
-       });
 };
 
 var siteMessages = {};
@@ -72,3 +53,11 @@ chrome.runtime.onMessage.addListener(
                }
        }
 );
+
+s = document.createElement('script');
+
+s.src = chrome.extension.getURL('include/sweettooth-api.js');
+s.onload = function() {
+    this.parentNode.removeChild(this);
+};
+(document.head || document.documentElement).appendChild(s);
diff --git a/extension/include/sweettooth-api.js b/extension/include/sweettooth-api.js
index d66c0c2..405f030 100644
--- a/extension/include/sweettooth-api.js
+++ b/extension/include/sweettooth-api.js
@@ -8,12 +8,14 @@
     (at your option) any later version.
  */
 
-GSC.getMessage = function(key) {
-       if(GSC && GSC.i18n && GSC.i18n[key])
+"use strict";
+
+GSC.getMessage = function (key) {
+       if (GSC && GSC.i18n && GSC.i18n[key])
        {
                var message = GSC.i18n[key];
 
-               for(var i = 1; i < arguments.length; i++)
+               for (var i = 1; i < arguments.length; i++)
                {
                        message = message.replace('$' + i, arguments[i]);
                }
@@ -24,170 +26,141 @@ GSC.getMessage = function(key) {
        return key;
 };
 
-define('gs-chrome', ['jquery'], function($) {
-       "use strict";
-
-       window.SweetTooth = function() {
-               var apiObject                   = {
-                       apiVersion:                     5,
-                       shellVersion:                   '-1',
-                       versionValidationEnabled:       true,
+window.SweetTooth = function () {
+       var apiObject = {
+               apiVersion: 5,
+               shellVersion: '-1',
+               versionValidationEnabled: true,
 
-                       getChromeExtensionId:   function() {
-                               return GS_CHROME_ID;
-                       },
+               getChromeExtensionId: function () {
+                       return GS_CHROME_ID;
+               },
 
-                       getExtensionErrors:     function(uuid) {
-                               return sendResolveExtensionMessage("getExtensionErrors", "extensionErrors", 
{uuid: uuid});
-                       },
+               getExtensionErrors: function (uuid) {
+                       return sendResolveExtensionMessage("getExtensionErrors", "extensionErrors", {uuid: 
uuid});
+               },
 
-                       getExtensionInfo:       function(uuid) {
-                               return sendResolveExtensionMessage("getExtensionInfo", "extensionInfo", 
{uuid: uuid});
-                       },
+               getExtensionInfo: function (uuid) {
+                       return sendResolveExtensionMessage("getExtensionInfo", "extensionInfo", {uuid: uuid});
+               },
 
-                       installExtension:       function(uuid) {
-                               return sendResolveExtensionMessage("installExtension", "status", {uuid: 
uuid});
-                       },
+               installExtension: function (uuid) {
+                       return sendResolveExtensionMessage("installExtension", "status", {uuid: uuid});
+               },
 
-                       launchExtensionPrefs:   function(uuid) {
-                               sendExtensionMessage("launchExtensionPrefs", null, { uuid: uuid });
-                       },
+               launchExtensionPrefs: function (uuid) {
+                       sendExtensionMessage("launchExtensionPrefs", null, {uuid: uuid});
+               },
 
-                       listExtensions:         function() {
-                               return sendResolveExtensionMessage("listExtensions", "extensions");
-                       },
+               listExtensions: function () {
+                       return sendResolveExtensionMessage("listExtensions", "extensions");
+               },
 
-                       setExtensionEnabled:    function(uuid, enable) {
-                               return sendResolveExtensionMessage("enableExtension", "success", {uuid: uuid, 
enable: enable});
-                       },
+               setExtensionEnabled: function (uuid, enable) {
+                       return sendResolveExtensionMessage("enableExtension", "success", {uuid: uuid, enable: 
enable});
+               },
 
-                       uninstallExtension:     function(uuid) {
-                               return sendResolveExtensionMessage("uninstallExtension", "success", {uuid: 
uuid});
-                       },
+               uninstallExtension: function (uuid) {
+                       return sendResolveExtensionMessage("uninstallExtension", "success", {uuid: uuid});
+               },
 
-                       initialize:             function() {
-                               var ready = $.Deferred();
+               initialize: function () {
+                       var connectingInfo = GSC.getMessage('connecting_host_app');
 
-                               if(SweetTooth.shellVersion !== '-1')
-                               {
-                                       ready.resolve();
-                               }
-                               else
-                               {
-                                       require(['jquery', 'messages'], function($, messages) {
-                                               var connectingInfo = GSC.getMessage('connecting_host_app');
-                                               messages.addInfo(connectingInfo);
-
-                                               ready.done(function(response) {
-                                                       apiObject.shellVersion                  = 
response.shellVersion;
-                                                       apiObject.versionValidationEnabled      = 
response.versionValidationEnabled;
-
-                                                       if(!response.connectorVersion || 
response.connectorVersion != GS_CHROME_VERSION)
-                                                       {
-                                                               if(!response.connectorVersion)
-                                                                       response.connectorVersion = 
GSC.getMessage('older_connector');
-                                                               else
-                                                                       response.connectorVersion = 
GSC.getMessage('version', response.connectorVersion);
-
-                                                               
messages.addWarning(GSC.getMessage('warning_versions_mismatch', GSC.getMessage('version', GS_CHROME_VERSION), 
response.connectorVersion));
-                                                       }
-
-                                                       $('#message_container')
-                                                               .find('.message:contains("' + connectingInfo 
+ '")')
-                                                               .remove();
-                                               });
-
-                                               ready.fail(function(message) {
-                                                       messages.addWarning(message ? message : 
GSC.getMessage('no_host_connector'));
-                                               });
-
-                                               sendResolveExtensionMessage("initialize", "properties", null, 
ready);
-                                       });
-                               }
-
-                               return ready;
+                       if (SweetTooth.shellVersion !== '-1')
+                       {
+                               return Promise.resolve(apiObject);
                        }
-               };
 
-               window.addEventListener("message", function(event) {
-                       // We only accept messages from ourselves
-                       if (event.source != window)
-                               return;
+                       var ready = sendResolveExtensionMessage("initialize", "properties", null);
 
-                       if (event.data.type)
-                       {
-                               if(event.data.type == "gs-chrome")
+                       ready.then(function (response) {
+                               apiObject.shellVersion = response.shellVersion;
+                               apiObject.versionValidationEnabled = response.versionValidationEnabled;
+
+                               if (!response.connectorVersion || response.connectorVersion != 
GS_CHROME_VERSION)
                                {
-                                       if(event.data.request.signal == 'ExtensionStatusChanged' && 
apiObject.onchange)
+                                       if (!response.connectorVersion)
                                        {
-                                               apiObject.onchange(
-                                                       event.data.request.parameters[0],
-                                                       event.data.request.parameters[1],
-                                                       event.data.request.parameters[2]
-                                               );
+                                               response.connectorVersion = GSC.getMessage('older_connector');
                                        }
-                                       else if(event.data.request.signal == 'org.gnome.Shell' && 
apiObject.onshellrestart)
+                                       else
                                        {
-                                               apiObject.onshellrestart();
+                                               response.connectorVersion = GSC.getMessage('version', 
response.connectorVersion);
                                        }
+
+                                       require(['messages'], function (messages) {
+                                               
messages.addWarning(GSC.getMessage('warning_versions_mismatch', GSC.getMessage('version', GS_CHROME_VERSION), 
response.connectorVersion));
+                                       });
                                }
-                       }
-               }, false);
+                       }, function (message) {
+                               require(['messages'], function (messages) {
+                                       messages.addWarning(message ? message : 
GSC.getMessage('no_host_connector'));
+                               })
+                       });
+
+                       return ready;
+               }
+       };
 
-               function sendResolveExtensionMessage(method, resolveProperty, parameters, deferred)
+       window.addEventListener("message", function (event) {
+               // We only accept messages from ourselves
+               if (event.source != window)
                {
-                       function resolveOnSuccess(response, deferred, value)
+                       return;
+               }
+
+               if (event.data.type)
+               {
+                       if (event.data.type == "gs-chrome")
                        {
-                               if(response && response.success)
+                               if (event.data.request.signal == 'ExtensionStatusChanged' && 
apiObject.onchange)
                                {
-                                       deferred.resolve(value);
+                                       apiObject.onchange(
+                                               event.data.request.parameters[0],
+                                               event.data.request.parameters[1],
+                                               event.data.request.parameters[2]
+                                       );
                                }
-                               else
+                               else if (event.data.request.signal == 'org.gnome.Shell' && 
apiObject.onshellrestart)
                                {
-                                       var message = response && response.message ? response.message : 
GSC.getMessage('error_extension_response');
-                                       deferred.reject(message);
+                                       apiObject.onshellrestart();
                                }
                        }
+               }
+       }, false);
 
-                       if(!deferred)
-                       {
-                               deferred = $.Deferred();
-                       }
-
-                       sendExtensionMessage(method, function(response) {
-                                       resolveOnSuccess(response, deferred, response[resolveProperty]);
+       function sendResolveExtensionMessage(method, resolveProperty, parameters) {
+               return new Promise(function (resolve, reject) {
+                       sendExtensionMessage(method, function (response) {
+                                       if (response && response.success)
+                                       {
+                                               resolve(response[resolveProperty]);
+                                       }
+                                       else
+                                       {
+                                               var message = response && response.message ? response.message 
: GSC.getMessage('error_extension_response');
+                                               reject(message);
+                                       }
                                },
                                parameters
                        );
+               });
+       }
 
-                       return deferred;
-               }
-
-               function sendExtensionMessage(method, callback, parameters)
+       function sendExtensionMessage(method, callback, parameters) {
+               var request = {execute: method};
+               if (parameters)
                {
-                       var request = { execute: method };
-                       if(parameters)
-                               request = $.extend(parameters, request);
-
-                       chrome.runtime.sendMessage(
-                               apiObject.getChromeExtensionId(),
-                               request,
-                               callback
-                       );
+                       request = Object.assign(parameters, request);
                }
 
-               return apiObject;
-       } ();
-});
-
-gs_chrome_initialized = true;
-
-requirejs.config({
-       waitSeconds: 15 // It's fails sometimes with default 7 secs
-});
-require(['jquery', 'messages', 'gs-chrome'], function($, messages){
-       SweetTooth.initialize().always(function() {
-               // Start extensions.gnome.org main script
-               require(['main'], function(){});
-       });
-});
+               chrome.runtime.sendMessage(
+                       apiObject.getChromeExtensionId(),
+                       request,
+                       callback
+               );
+       }
+
+       return apiObject;
+}();
diff --git a/extension/manifest.json b/extension/manifest.json
index 8d68c4b..beb6125 100644
--- a/extension/manifest.json
+++ b/extension/manifest.json
@@ -30,11 +30,6 @@
            "include/constants.js",
            "content-script-start.js"
       ]
-    },
-    {
-      "matches": ["https://extensions.gnome.org/*";],
-      "run_at": "document_end",
-      "js": ["content-script-end.js"]
     }
   ],
   "externally_connectable": {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]