[Pkg-mozext-commits] [adblock-plus] 429/464: Issue 143 - Use chrome.runtime.reload() to reload Adblock Plus in Chrome development environment

David Prévot taffit at moszumanska.debian.org
Tue Jul 22 20:44:41 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository adblock-plus.

commit 6fd7ff98d6cbc7d31b1d50fba2c05532428e6538
Author: Wladimir Palant <trev at adblockplus.org>
Date:   Wed Apr 16 12:03:04 2014 +0200

    Issue 143 - Use chrome.runtime.reload() to reload Adblock Plus in Chrome development environment
    
    --HG--
    rename : chromeDevenvPoller__.js.tmpl => chromeDevenvPoller__.js
    extra : rebase_source : da3517cd899bfa03fb16080fa8984bd66d3cac14
---
 ...venvPoller__.js.tmpl => chromeDevenvPoller__.js | 22 ++++++-------
 packagerChrome.py                                  | 37 ++++------------------
 2 files changed, 15 insertions(+), 44 deletions(-)

diff --git a/chromeDevenvPoller__.js.tmpl b/chromeDevenvPoller__.js
similarity index 68%
rename from chromeDevenvPoller__.js.tmpl
rename to chromeDevenvPoller__.js
index 11c2c71..2c50487 100644
--- a/chromeDevenvPoller__.js.tmpl
+++ b/chromeDevenvPoller__.js
@@ -17,28 +17,24 @@
 
 (function()
 {
-  var basename = {{metadata.get("general", "basename")|json}};
-
+  var version = null;
   function doPoll()
   {
     var request = new XMLHttpRequest();
-    request.open("GET", "http://localhost:43816/");
+    request.open("GET", chrome.extension.getURL("devenvVersion__"));
     request.addEventListener("load", function()
     {
-      if (request.responseText != basename)
-        return;
+      if (version == null)
+        version = request.responseText;
 
-      var views = chrome.extension.getViews();
-      for (var i = 0; i < views.length; i++)
-        if (views[i] != window)
-          views[i].close();
-      window.location.reload();
+      if (request.responseText != version)
+        chrome.runtime.reload();
+      else
+        window.setTimeout(doPoll, 5000);
     }, false);
     request.send(null);
-
-    window.setTimeout(doPoll, 5000);
   }
 
   // Delay first poll to prevent reloading again immediately after a reload
-  window.setTimeout(doPoll, 10000);
+  doPoll();
 })();
diff --git a/packagerChrome.py b/packagerChrome.py
index 923a8ec..5dba1a7 100644
--- a/packagerChrome.py
+++ b/packagerChrome.py
@@ -128,10 +128,6 @@ def createManifest(params, files):
 
   return manifest.encode('utf-8')
 
-def createPoller(params):
-  template = getTemplate('chromeDevenvPoller__.js.tmpl')
-  return template.render(params).encode('utf-8');
-
 def createInfoModule(params):
   template = getTemplate('chromeInfo.js.tmpl')
   return template.render(params).encode('utf-8');
@@ -349,7 +345,7 @@ def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuil
 
   files = Files(getPackageFiles(params), getIgnoredFiles(params),
                 process=lambda path, data: processFile(path, data, params))
-  
+
   if metadata.has_section('mapping'):
     files.readMappedFiles(metadata.items('mapping'))
   files.read(baseDir)
@@ -369,12 +365,15 @@ def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuil
 
   if metadata.has_section('import_locales'):
     importGeckoLocales(params, files)
-  
+
   files['manifest.json'] = createManifest(params, files)
   fixMissingTranslations(files)
 
   if devenv:
-    files['devenvPoller__.js'] = createPoller(params)
+    import buildtools
+    import random
+    files.read(os.path.join(buildtools.__path__[0], 'chromeDevenvPoller__.js'), relpath='devenvPoller__.js')
+    files['devenvVersion__'] = str(random.random())
 
   if (metadata.has_option('general', 'backgroundScripts') and
       'lib/info.js' in re.split(r'\s+', metadata.get('general', 'backgroundScripts')) and
@@ -397,27 +396,3 @@ def createDevEnv(baseDir, type):
   zip = ZipFile(StringIO(fileBuffer.getvalue()), 'r')
   zip.extractall(os.path.join(baseDir, 'devenv'))
   zip.close()
-
-  print 'Development environment created, waiting for connections from active extensions...'
-  metadata = readMetadata(baseDir, type)
-  connections = [0]
-
-  import SocketServer, time, thread
-
-  class ConnectionHandler(SocketServer.BaseRequestHandler):
-    def handle(self):
-      connections[0] += 1
-      self.request.sendall('HTTP/1.0 OK\nConnection: close\n\n%s' % metadata.get('general', 'basename'))
-
-  server = SocketServer.TCPServer(('localhost', 43816), ConnectionHandler)
-
-  def shutdown_server(server):
-    time.sleep(10)
-    server.shutdown()
-  thread.start_new_thread(shutdown_server, (server,))
-  server.serve_forever()
-
-  if connections[0] == 0:
-    print 'Warning: No incoming connections, extension probably not active in the browser yet'
-  else:
-    print 'Handled %i connection(s)' % connections[0]

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus.git



More information about the Pkg-mozext-commits mailing list