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 > > > > >