Oops, I was wrong. My test works on the first page loaded, but any page after that it does not. Your faith was well placed. I won't bother trying Android, as no-iOS is a blocker.
> On Dec 12, 2014, at 11:55 AM, Andrew Grieve <agri...@chromium.org> wrote: > >> On Fri, Dec 12, 2014 at 2:28 PM, Jesse <purplecabb...@gmail.com> wrote: >> >>> On Fri, Dec 12, 2014 at 11:10 AM, Shazron <shaz...@gmail.com> wrote: >>> >>> Yup, WKWebView has an option to add a script at >>> WKUserScriptInjectionTimeAtDocumentStart. >>> >>> On Fri, Dec 12, 2014 at 7:21 AM, Andrew Grieve <agri...@chromium.org> >>> wrote: >>>> I believe there's not API to insert this early for Android / iOS other >>> than >>>> in the new WKWebView. >> >> On iOS you can inject js code in webViewDidStartLoad, which is evaluated >> and available before any other js loads/runs. Science before belief. >> I will run a similar test on Android. > This is sadly not the case. You're still in the context of the previous > page when this is fired. > > > >> >> >> >>>> >>>> On Thu, Dec 11, 2014 at 3:23 PM, Jesse <purplecabb...@gmail.com> >> wrote: >>>> >>>>> The native side knows the browser capabilities long before it's >>>>> loaded, or even created, compile time even. They will never change >>>>> after the app is built. >>>>> On WP8 the scripts are injected right before DOMContentLoaded fires, >>>>> and before any js code in the page is run. I realize other platforms >>>>> may not be able to catch the browser load events early enough to be >>>>> effective though. Anyone know the native side event flow for >>>>> iOS+Android? >>>>> >>>>>>> On Dec 11, 2014, at 10:54 AM, Andrew Grieve <agri...@chromium.org> >>>>>> wrote: >>>>>> >>>>>> Let's start a new thread for browserify. >>>>>> >>>>>> Jesse - def. like the idea of injecting polyfills when they are not >>> there >>>>>> but are required. In practice though, I think it ends up pretty much >>> the >>>>>> same anyways: >>>>>> - On start-up you need to feature-detect Promise via JS >>>>>> - If it's not there, you need to inject it. >>>>>> >>>>>> Whether the injection occurs via the native side shoving it in, or >> by >>>>>> cordova.js require()'ing a module is a matter of whether we check in >>>>>> es6-promise.js into each platform separately, or into cordova-js. >>>>>> >>>>>> >>>>>>> On Wed, Dec 10, 2014 at 8:35 PM, Brian LeRoux <b...@brian.io> wrote: >>>>>>> >>>>>>> we should move browserify to main and drop that insane concat code >>>>>>> >>>>>>> its not heavyweight at all. it creates a hash in iife with deps >>> mapped >>>>>>> in…as to why dep mgmt is better than concatenating…I don't think we >>>>> need to >>>>>>> waste our time talking about that! >>>>>>> >>>>>>> On Wed, Dec 10, 2014 at 5:00 PM, Andrew Grieve < >> agri...@chromium.org >>>> >>>>>>> wrote: >>>>>>> >>>>>>>> There's something implemented behind a --browserify flag, but not >>> sure >>>>>>> what >>>>>>>> it does. >>>>>>>> >>>>>>>> Totally in favour of having CLI / plugman concatenate plugin JS >> with >>>>>>>> cordova.js, but not convinced that browserify is the right tool >> for >>>>> this, >>>>>>>> as it seems quite heavy-weight for just concatenating things. If >>>>> someone >>>>>>> is >>>>>>>> going to resume work on it, would love to hear a summary of what >>>>> problems >>>>>>>> it's solving (if more than concatenation), and why something more >>>>>>>> light-weight wouldn't be better. >>>>>>>> >>>>>>>>> On Wed, Dec 10, 2014 at 4:22 PM, Michal Mocny < >> mmo...@chromium.org >>>> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> We haven't worked on it, also curious. Anis, perhaps? >>>>>>>>> >>>>>>>>>> On Wed, Dec 10, 2014 at 4:08 PM, Brian LeRoux <b...@brian.io> >> wrote: >>>>>>>>>> >>>>>>>>>> def think we should support those specs in our great and fabled >>> api >>>>>>>>>> audit…had not considered the load order issue >>>>>>>>>> >>>>>>>>>> not insurmountable and probably should be a feature/fix for the >>>>>>> plugin >>>>>>>>>> loader load order …but also sort of scary… reminds me of script >>> tags >>>>>>>> hell >>>>>>>>>> >>>>>>>>>> on that note: we need to make browserify thing first class. >> whats >>> the >>>>>>>>> hold >>>>>>>>>> up on that front? >>>>>>>>>> >>>>>>>>>> On Wed, Dec 10, 2014 at 12:47 PM, Michal Mocny < >>> mmo...@chromium.org> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Do we prefer to invent new cordova-specific apis, or prefer to >>>>>>> match >>>>>>>>>>> standard browser apis? When there is no browser spec to match >>> then >>>>>>>>>> design >>>>>>>>>>> comes down to aesthetics and personal preference (as you say). >>> But >>>>>>>>> often >>>>>>>>>>> there is an existing browser spec, and then it comes down to >>> match >>>>>>> or >>>>>>>>>>> fork. I'm in the camp of preferring to match, and was under >> the >>>>>>>>>> assumption >>>>>>>>>>> others here were too. >>>>>>>>>>> >>>>>>>>>>> Given the upcoming specs mentioned earlier (sockets, file, >>>>>>>> filesystem, >>>>>>>>>>> permissions, service worker, fetch), seems that fighting the >>>>>>> adoption >>>>>>>>> of >>>>>>>>>>> promises in core apis implies opposing the adoption of modern >> web >>>>>>>>> specs. >>>>>>>>>>> e.g. I'm assuming Andrew was referring to >>>>>>>>>>> http://www.w3.org/TR/battery-status/, since matching that spec >>>>>>>> *would* >>>>>>>>>>> require promises. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Now, as I understand, you are not saying you are opposed to >>>>>>> adoption >>>>>>>> of >>>>>>>>>>> promises in Cordova, but that you are simply against the >>> inclusion >>>>>>>> of a >>>>>>>>>>> polyfill directly inside cordova-js. I think that a >>>>>>>> promises-polyfill >>>>>>>>>>> plugin alternative has some technical downsides [1], but they >>> seem >>>>>>>> not >>>>>>>>> so >>>>>>>>>>> insurmountable that we shouldn't just get passed this debate >> and >>> do >>>>>>>>> that. >>>>>>>>>>> >>>>>>>>>>> In my opinion, we should prefer to create a common plugin (at >>> least >>>>>>>>> until >>>>>>>>>>> browserify), since I really hope we don't tell devs to just >>> include >>>>>>>>> their >>>>>>>>>>> own polyfill with each plugin. >>>>>>>>>>> >>>>>>>>>>> [1]: >>>>>>>>>>> - Can't rely on a polyfill plugin for cordova-js itself. There >>>>>>> are a >>>>>>>>> few >>>>>>>>>>> places where that may have been useful. >>>>>>>>>>> - We don't currently load plugins in an order that respects >>> plugin >>>>>>>>>>> dependencies, so every plugin relying on promises-polyfill will >>>>>>> have >>>>>>>> to >>>>>>>>>>> require() it at runtime before using and forgetting to do so >>>>>>>>>>> may-or-may-not lead to an error. Maybe we just fix this in our >>>>>>>> plugin >>>>>>>>>>> loader. >>>>>>>>>>> - It seems odd that window.Promise will exist depending on >> which >>>>>>>>> plugins >>>>>>>>>>> you have installed. While this technically isn't different >> than >>>>>>> with >>>>>>>>> any >>>>>>>>>>> plugin modifying global symbols, it seems odd-er when applied >> to >>> a >>>>>>>>>>> dependant platform feature. >>>>>>>>>>> >>>>>>>>>>> -Michal >>>>>>>>>>> >>>>>>>>>>> On Wed, Dec 10, 2014 at 1:56 PM, Jesse < >> purplecabb...@gmail.com> >>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Why does battery-status 'require' promises? >>>>>>>>>>>> >>>>>>>>>>>> I agree that promises are here to stay, but I am unclear why >> it >>>>>>>> would >>>>>>>>>> be >>>>>>>>>>> a >>>>>>>>>>>> good idea to go and change/rewrite/break our apis to use them? >>>>>>>>>>>> >>>>>>>>>>>> Most of the windows plugins use promises all over the place, >> the >>>>>>>>> entire >>>>>>>>>>>> async windows js api is promise based, but this has zero >> impact >>>>>>> on >>>>>>>>> what >>>>>>>>>>> our >>>>>>>>>>>> core-api looks like to a user. The same should apply to any >>>>>>> plugin >>>>>>>>> that >>>>>>>>>>>> wants to depend on promises, just depend on a promise plugin, >>>>>>> which >>>>>>>>> may >>>>>>>>>>> or >>>>>>>>>>>> may not add polyfil code to the dom. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> @purplecabbage >>>>>>>>>>>> risingj.com >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Dec 10, 2014 at 9:41 AM, Brian LeRoux <b...@brian.io> >>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> - no technical benefit (but aesthetics, sure) >>>>>>>>>>>>> - adds weight (payload and runtime) >>>>>>>>>>>>> - might interfere with userland polly >>>>>>>>>>>>> >>>>>>>>>>>>> -1 >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Dec 10, 2014 at 7:48 AM, Andrew Grieve < >>>>>>>>> agri...@chromium.org >>>>>>>>>>> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> One specific spot in core I'd like to use it is to address >>>>>>> this >>>>>>>>>> TODO >>>>>>>>>>> in >>>>>>>>>>>>>> Android's exec bridge: >> https://github.com/apache/cordova-js/blob/master/src/android/exec.js#L263 >>>>>>>>>>>>>> >>>>>>>>>>>>>> The actual need is for a setImmediate polyfill, but Promise >>>>>>>> does >>>>>>>>>> the >>>>>>>>>>>> same >>>>>>>>>>>>>> thing (with an extra object creation). >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, Dec 10, 2014 at 10:35 AM, Ian Clelland < >>>>>>>>>>> iclell...@chromium.org >>>>>>>>>>>>> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Wed Dec 10 2014 at 10:17:38 AM Andrew Grieve < >>>>>>>>>>>> agri...@chromium.org> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> userland means that plugins won't be able to use them >>>>>>>> unless >>>>>>>>>>> every >>>>>>>>>>>>>> plugin >>>>>>>>>>>>>>>> also includes a copy of the polyfill within it. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Looking at our core APIs, seems maybe it's just >>>>>>>>> battery-status >>>>>>>>>>> that >>>>>>>>>>>>>> will >>>>>>>>>>>>>>>> require it. Should we have battery-status include the >>>>>>>>> polyfill >>>>>>>>>>>> within >>>>>>>>>>>>>>> it? I >>>>>>>>>>>>>>>> hope not. I'd hate to get to where several plugins in my >>>>>>>> app >>>>>>>>>> all >>>>>>>>>>>>> bundle >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>> same polyfill. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I believe that Mozilla's new File API, which I think we're >>>>>>>>>> planning >>>>>>>>>>>> to >>>>>>>>>>>>>>> implement, and which should be as core as File is now, is >>>>>>>> also >>>>>>>>>>>> heavily >>>>>>>>>>>>>>> promises-based. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> If we move to having the entire cordova.js built using >>>>>>>>>> browserify >>>>>>>>>>>>> where >>>>>>>>>>>>>>>> every plugin gets to contribute to the JS that goes into >>>>>>>> it - >>>>>>>>>>> yes I >>>>>>>>>>>>> can >>>>>>>>>>>>>>> see >>>>>>>>>>>>>>>> this solving this use-case as well. But that also seems >>>>>>> to >>>>>>>> me >>>>>>>>>>> like >>>>>>>>>>>> a >>>>>>>>>>>>>> much >>>>>>>>>>>>>>>> larger and much more controversial change. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Whether you are for or against promises - they are >>>>>>> already >>>>>>>>>> here. >>>>>>>>>>>> They >>>>>>>>>>>>>>>> exists natively on most latest mobile webviews, and every >>>>>>>>>> vendor >>>>>>>>>>>> has >>>>>>>>>>>>>>>> committed to adding them. And they are being used in >>>>>>> *most* >>>>>>>>> new >>>>>>>>>>>> specs >>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>> I've seen (sockets, filesystem, permissions, service >>>>>>>> worker, >>>>>>>>>>> fetch) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Are there any concrete downsides to putting Promises >>>>>>>> polyfill >>>>>>>>>>> right >>>>>>>>>>>>> in >>>>>>>>>>>>>>>> cordova-js? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> As long as the promise doesn't clobber the native >>>>>>>>> implementation, >>>>>>>>>>> if >>>>>>>>>>>> it >>>>>>>>>>>>>>> exists, and we can remove it completely from platforms when >>>>>>>>> they >>>>>>>>>>>> don't >>>>>>>>>>>>>> need >>>>>>>>>>>>>>> it anymore, it seems to me like a small price for having >>>>>>> this >>>>>>>>>>>> available >>>>>>>>>>>>>> to >>>>>>>>>>>>>>> all platforms. (Other opinions vary, I'm sure, though) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Fri, Dec 5, 2014 at 4:39 PM, Joe Bowser < >>>>>>>>> bows...@gmail.com> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> +1 to userland. I see other approaches causing more >>>>>>>>> problems. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> BTW: The only time I use promises is when the platform >>>>>>>>>>> explicitly >>>>>>>>>>>>>>>> requires >>>>>>>>>>>>>>>>> it, and right now that's just MozillaView. While I >>>>>>> think >>>>>>>>> it >>>>>>>>>>>> looks >>>>>>>>>>>>>>>> awesome, >>>>>>>>>>>>>>>>> I view Promises as a luxury right now and not a >>>>>>> standard >>>>>>>>>>> feature >>>>>>>>>>>> as >>>>>>>>>>>>>> of >>>>>>>>>>>>>>>> yet. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I also really wish specs wouldn't rely on code that >>>>>>> only >>>>>>>>>> exists >>>>>>>>>>>> on >>>>>>>>>>>>>> the >>>>>>>>>>>>>>>> very >>>>>>>>>>>>>>>>> latest browsers. It just makes life harder on people >>>>>>> who >>>>>>>>> have >>>>>>>>>>> to >>>>>>>>>>>>>>>> implement >>>>>>>>>>>>>>>>> stuff. >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org >>>>> For additional commands, e-mail: dev-h...@cordova.apache.org >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org >>> For additional commands, e-mail: dev-h...@cordova.apache.org >> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org For additional commands, e-mail: dev-h...@cordova.apache.org