From e163a626e82e0dc22d56d85077c6bc3f8b833191 Mon Sep 17 00:00:00 2001 From: Adrien Cadet Date: Mon, 14 Mar 2016 10:21:27 -0700 Subject: [PATCH 1/3] Removes background execution --- caravel/internal/proxies/WKScriptMessageHandlerProxy.swift | 2 +- swiftlint.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/caravel/internal/proxies/WKScriptMessageHandlerProxy.swift b/caravel/internal/proxies/WKScriptMessageHandlerProxy.swift index 5b9329c..7849199 100644 --- a/caravel/internal/proxies/WKScriptMessageHandlerProxy.swift +++ b/caravel/internal/proxies/WKScriptMessageHandlerProxy.swift @@ -71,7 +71,7 @@ internal class WKScriptMessageHandlerProxy: NSObject, WKScriptMessageHandler { let eventData = body["eventData"] iterateOverDelegates { e in - background { e.onMessage(busName, eventName: eventName, eventData: eventData) } + e.onMessage(busName, eventName: eventName, eventData: eventData) } } } \ No newline at end of file diff --git a/swiftlint.yml b/swiftlint.yml index 4c1fa12..594b848 100644 --- a/swiftlint.yml +++ b/swiftlint.yml @@ -16,7 +16,7 @@ disabled_rules: # rule identifiers to exclude from running - trailing_whitespace # - type_body_length # - type_name - # - variable_name + - variable_name - variable_name_min_length # - variable_name_max_length included: # paths to include during linting. `--path` is ignored if present. takes precendence over `excluded`. From 96c78ad961f09fd903222b79006037d07777d950 Mon Sep 17 00:00:00 2001 From: Adrien Cadet Date: Mon, 14 Mar 2016 10:21:54 -0700 Subject: [PATCH 2/3] Factorizes setimeout --- caravel/js/caravel.coffee | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/caravel/js/caravel.coffee b/caravel/js/caravel.coffee index 9ea2432..d8e9e17 100644 --- a/caravel/js/caravel.coffee +++ b/caravel/js/caravel.coffee @@ -13,16 +13,18 @@ class Caravel # Internal method for posting _post: (eventName, data) -> + action = null + if @isUsingWKWebView body = busName: @name eventName: eventName eventData: data - setTimeout (() => window.webkit.messageHandlers.caravel.postMessage(body)), 0 + action = () => window.webkit.messageHandlers.caravel.postMessage(body) else # shouldLoadRequest is only triggered when a new content is required # Ajax requests are useless - setTimeout (() => + action = () => iframe = document.createElement 'iframe' src = "caravel://host.com?busName=#{encodeURIComponent(@name)}&eventName=#{encodeURIComponent(eventName)}" if data? @@ -33,7 +35,8 @@ class Caravel iframe.setAttribute 'src', src document.documentElement.appendChild iframe iframe.parentNode.removeChild iframe - ), 0 + + setTimeout(action, 0) getName: () -> @name From 8dae66b868f23f92f7e9692b81f055e736064162 Mon Sep 17 00:00:00 2001 From: Adrien Cadet Date: Mon, 14 Mar 2016 10:24:25 -0700 Subject: [PATCH 3/3] Upgrades to sea-shell-newt --- Caravel.podspec | 2 +- caravel/js/Gruntfile.js | 2 +- caravel/js/caravel.min.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Caravel.podspec b/Caravel.podspec index 8730b9c..582d6b0 100644 --- a/Caravel.podspec +++ b/Caravel.podspec @@ -15,7 +15,7 @@ Pod::Spec.new do |s| # summary should be tweet-length, and the description more in depth. # - version = "1.1.0" + version = "1.1.1" s.name = "Caravel" s.version = version diff --git a/caravel/js/Gruntfile.js b/caravel/js/Gruntfile.js index 64f4f08..75a2e63 100644 --- a/caravel/js/Gruntfile.js +++ b/caravel/js/Gruntfile.js @@ -1,7 +1,7 @@ module.exports = function (grunt) { 'use strict'; - var version = '1.1.0'; + var version = 'sea-shell-newt-v1.1.1'; // Project configuration grunt.initConfig({ diff --git a/caravel/js/caravel.min.js b/caravel/js/caravel.min.js index ee05947..b51bb33 100644 --- a/caravel/js/caravel.min.js +++ b/caravel/js/caravel.min.js @@ -1,2 +1,2 @@ -/** Caravel 1.1.0 - https://github.com/coshx/caravel */ -var Caravel;Caravel=function(){function Caravel(name){this.name=name,this.subscribers=[],this.isUsingWKWebView=null!=window.webkit&&null!=window.webkit.messageHandlers&&null!=window.webkit.messageHandlers.caravel}return Caravel["default"]=null,Caravel.buses=[],Caravel.prototype._post=function(eventName,data){var body;return this.isUsingWKWebView?(body={busName:this.name,eventName:eventName,eventData:data},setTimeout(function(_this){return function(){return window.webkit.messageHandlers.caravel.postMessage(body)}}(this),0)):setTimeout(function(_this){return function(){var iframe,src;return iframe=document.createElement("iframe"),src="caravel://host.com?busName="+encodeURIComponent(_this.name)+"&eventName="+encodeURIComponent(eventName),null!=data&&(src+=data instanceof Array||data instanceof Object?"&eventData="+encodeURIComponent(JSON.stringify(data)):"&eventData="+encodeURIComponent(data)),iframe.setAttribute("src",src),document.documentElement.appendChild(iframe),iframe.parentNode.removeChild(iframe)}}(this),0)},Caravel.prototype.getName=function(){return this.name},Caravel.prototype.post=function(name,data){return this._post(name,data)},Caravel.prototype.register=function(name,callback){return this.subscribers.push({name:name,callback:callback})},Caravel.prototype.raise=function(name,data){var e,i,len,parsedData,ref,results;for(parsedData=null,parsedData=data instanceof Array||data instanceof Object||"string"==typeof data||data instanceof String?data:JSON.parse(data),ref=this.subscribers,results=[],i=0,len=ref.length;len>i;i++)e=ref[i],e.name===name?results.push(e.callback(name,parsedData)):results.push(void 0);return results},Caravel.getDefault=function(){return null==Caravel["default"]&&(Caravel["default"]=new Caravel("default"),Caravel["default"].post("CaravelInit")),Caravel["default"]},Caravel.get=function(name){var b,i,len,ref;for(ref=Caravel.buses,i=0,len=ref.length;len>i;i++)if(b=ref[i],b.getName()===name)return b;return b=new Caravel(name),Caravel.buses.push(b),b.post("CaravelInit"),b},Caravel}(); \ No newline at end of file +/** Caravel sea-shell-newt-v1.1.1 - https://github.com/coshx/caravel */ +var Caravel;Caravel=function(){function Caravel(name){this.name=name,this.subscribers=[],this.isUsingWKWebView=null!=window.webkit&&null!=window.webkit.messageHandlers&&null!=window.webkit.messageHandlers.caravel}return Caravel["default"]=null,Caravel.buses=[],Caravel.prototype._post=function(eventName,data){var action,body;return action=null,this.isUsingWKWebView?(body={busName:this.name,eventName:eventName,eventData:data},action=function(_this){return function(){return window.webkit.messageHandlers.caravel.postMessage(body)}}(this)):action=function(_this){return function(){var iframe,src;return iframe=document.createElement("iframe"),src="caravel://host.com?busName="+encodeURIComponent(_this.name)+"&eventName="+encodeURIComponent(eventName),null!=data&&(src+=data instanceof Array||data instanceof Object?"&eventData="+encodeURIComponent(JSON.stringify(data)):"&eventData="+encodeURIComponent(data)),iframe.setAttribute("src",src),document.documentElement.appendChild(iframe),iframe.parentNode.removeChild(iframe)}}(this),setTimeout(action,0)},Caravel.prototype.getName=function(){return this.name},Caravel.prototype.post=function(name,data){return this._post(name,data)},Caravel.prototype.register=function(name,callback){return this.subscribers.push({name:name,callback:callback})},Caravel.prototype.raise=function(name,data){var e,i,len,parsedData,ref,results;for(parsedData=null,parsedData=data instanceof Array||data instanceof Object||"string"==typeof data||data instanceof String?data:JSON.parse(data),ref=this.subscribers,results=[],i=0,len=ref.length;len>i;i++)e=ref[i],e.name===name?results.push(e.callback(name,parsedData)):results.push(void 0);return results},Caravel.getDefault=function(){return null==Caravel["default"]&&(Caravel["default"]=new Caravel("default"),Caravel["default"].post("CaravelInit")),Caravel["default"]},Caravel.get=function(name){var b,i,len,ref;for(ref=Caravel.buses,i=0,len=ref.length;len>i;i++)if(b=ref[i],b.getName()===name)return b;return b=new Caravel(name),Caravel.buses.push(b),b.post("CaravelInit"),b},Caravel}(); \ No newline at end of file