I have implemented and tested the DATA_URL fix across all of the Camera plugin supported platforms:
1. Android (Java) 2. iOS (Objective C) 3. OS X (Objective C) 4. Browser (JavaScript) 5. Windows Platform (JavaScript) Since this is a cross-cutting concern across all of platforms for an old issue, I need your green light first before creating a PR. Attached below my diff that contains the cross-platform fix: https://github.com/apache/cordova-plugin-camera/compare/master...hazems:hazems/CB-GH-420?expand=1 Thanks On Fri, Mar 1, 2019 at 9:34 PM Hazem Saleh <haz...@apache.org> wrote: > I agree with Jesse. > > IMHO regarding the positive impact of this change is that it simply fixes > a bug that exists for a long time ago, and will make the code that consumes > this API more cleaner, the user will not have hard code a DATA url prefix > every-time before the returned base64 string. > > On Fri, Mar 1, 2019 at 4:36 AM Jesse <purplecabb...@gmail.com> wrote: > >> The downside would be that it would add yet another quirky implementation, >> while this about not dragging along the existing quirky non-standard >> implementation. >> Existing users who don't want to change their code don't need to change >> anything. >> >> I expect usage of this api is quite low already ( anecdotally ) >> >> Here's a couple other reasons the base64 encoded methods are problematic: >> - missing exif data >> - possibly incorrect image/jpeg vs image/png, luckily user agents appear >> to >> just use it >> >> >> @purplecabbage >> risingj.com >> >> >> On Fri, Mar 1, 2019 at 12:50 AM Oliver Salzburg < >> oliver.salzb...@gmail.com> >> wrote: >> >> > What is the downside of just introducing new options and not creating a >> > breaking change? >> > And what is the positive impact of this change that it necessitates that >> > every consumer of the existing API change their code? >> > >> > IMHO that has not been made clear enough. >> > >> > On 01/03/2019 02:17, Hazem Saleh wrote: >> > >>> My only reservation is that it is a questionable api imho, >> converting >> > > binary to text just to pass it through the bridge is computationally >> > > expensive and ram intensive and better cameras continue to make it >> worse. >> > > >> > > Regarding this, I think we can generally recommend in the >> documentation >> > to >> > > use the base64 API option in case of small images (and it is up to the >> > app >> > > developers to decide based on the problem that they are trying to >> solve). >> > > >> > > What do you think? >> > > >> > > On Wed, Feb 27, 2019 at 5:17 AM Jesse <purplecabb...@gmail.com> >> wrote: >> > > >> > >> I think I am okay with the breaking change, as long as we update >> major >> > >> My only reservation is that it is a questionable api imho, converting >> > >> binary to text just to pass it through the bridge is computationally >> > >> expensive and ram intensive and better cameras continue to make it >> > worse. >> > >> >> > >>> On Feb 27, 2019, at 1:37 AM, julio cesar sanchez < >> > jcesarmob...@gmail.com> >> > >> wrote: >> > >>> I’m +1 to changing it and doing a major release. >> > >>> >> > >>> It was called data url but it’s not a data url, that’s a bug that >> has >> > >>> become “feature”. >> > >>> I think we should have the new type but that returns current string >> and >> > >>> make data url return the real data url and document it on the >> breaking >> > >>> changes. >> > >>> >> > >>> >> > >>> El miércoles, 27 de febrero de 2019, Oliver Salzburg < >> > >>> oliver.salzb...@gmail.com> escribió: >> > >>> >> > >>>> I don't think the behavior should be changed. If anything, just >> > >> introduce >> > >>>> another type that has the prefix. And maybe add an alias for the >> > >> existing >> > >>>> type to make the differences clearer. >> > >>>> >> > >>>>> On 27/02/2019 03:51, Hazem Saleh wrote: >> > >>>>> >> > >>>>> Hello Team, >> > >>>>> >> > >>>>> When calling navigator.camera.getPicture with destinationType set >> to >> > >>>>> Camera.DestinationType.DATA_URL, the success function is called >> with >> > >> the >> > >>>>> base64 encoded data while it should has suitable data URL format >> on >> > the >> > >>>>> following form: >> > >>>>> >> > >>>>> data:[<mediatype>][;base64],<data> >> > >>>>> >> > >>>>> >> > >>>>> It is an old issue in the library and it was previously reported >> > under: >> > >>>>> https://issues.apache.org/jira/browse/CB-9819 >> > >>>>> >> > >>>>> And recently, it was also reported by one of the library users: >> > >>>>> https://github.com/apache/cordova-plugin-camera/issues/420 >> > >>>>> >> > >>>>> I have a solution for this problem in Android[1], and I can >> create a >> > >>>>> similar one for iOS and windows platform but my question is, Do we >> > >> really >> > >>>>> want to support this since it is a breaking change as in all older >> > >>>>> versions >> > >>>>> of Cordova, a base64 encoded data was always sent, and definitely >> all >> > >>>>> documentation is needed to be updated. >> > >>>>> >> > >>>>> [OT] I'm sending this email since Julio asked me to post this >> > proposal >> > >>>>> here >> > >>>>> in a GitHub issue discussion. >> > >>>>> >> > >>>>> Thanks >> > >>>>> >> > >>>>> [1] >> > >>>>> https://github.com/hazems/cordova-plugin-camera/commit/e6609 >> > >>>>> c0b6a590a30ef7802826888693142576bee >> > >>>>> >> > >>>>> >> > >>>> >> --------------------------------------------------------------------- >> > >>>> 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 >> > >> > >> > > > -- > Hazem Saleh > Twitter: http://www.twitter.com/hazems > -- Hazem Saleh Twitter: http://www.twitter.com/hazems