incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jesse MacFadyen <purplecabb...@gmail.com>
Subject Re: [Android] CordovaWebView: Moving the CallbackServer and PluginManager out of DroidGap
Date Sun, 01 Apr 2012 20:49:08 GMT
I agree that emulators are not a good enough reason to implement a workaround.
Is it possible to detect these conditions and simply tell the user it
won't work?

Cheers,
  Jesse

Sent from my iPhone5

On 2012-04-01, at 12:21 PM, Matthew Schulkind <mschulkind@gmail.com> wrote:

> I'm new to android, so maybe I'm not looking in the right place, but the
> only x86 image I see is for Android 2.3.3 (API 10).
>
> Is there any gain with addJavascriptImplementation other than cleaning
> things up? It'd be a shame to make things more difficult for a large number
> of people for no material gain.
>
> On Sun, Apr 1, 2012 at 2:52 PM, Joe Bowser <bowserj@gmail.com> wrote:
>
>> If it only is broken on the emulator, I would argue that's not a good
>> enough reason to stay away from using it.  I would recommend that people
>> get a device.  It's not like the devices are prohibitively expensive.
>> (Under $150 on DealExtreme was the cheapest I saw a 2.3 device, probably
>> cheaper on Craigslist)
>>
>> Also, doesn't 4.0.3 work on kvm?  I remember hearing that it does.
>> On Apr 1, 2012 11:41 AM, "Matthew Schulkind" <mschulkind@gmail.com> wrote:
>>
>>> Looks like addJavascriptInterface is still broken on 2.3.x emulator (not
>>> sure about other versions). 2.3 seems to be the only version with an x86
>>> image for using with kvm, so I expect lots of people (including me) are
>>> using it for development. Probably best to stay away from
>>> addJavascriptInterface for now.
>>>
>>> These are the first lines I get every time I try to call a method on an
>>> addJavascriptInterface object:
>>> W/dalvikvm( 2967): JNI WARNING: jarray 0xb75d9720 points to non-array
>>> object (Ljava/lang/String;)
>>> I/dalvikvm( 2967): "WebViewCoreThread" prio=5 tid=8 NATIVE
>>> I/dalvikvm( 2967):   | group="main" sCount=0 dsCount=0 obj=0xb75b0d90
>>> self=0x93f8410
>>> I/dalvikvm( 2967):   | sysTid=2975 nice=0 sched=0/0 cgrp=[fopen-error:2]
>>> handle=155168040
>>> I/dalvikvm( 2967):   at
>>> android.webkit.BrowserFrame.stringByEvaluatingJavaScriptFromString(Native
>>> Method)
>>> I/dalvikvm( 2967):   at
>>> android.webkit.BrowserFrame.stringByEvaluatingJavaScriptFromString(Native
>>> Method)
>>>
>>> On Sat, Mar 31, 2012 at 1:20 AM, Matthew Schulkind <mschulkind@gmail.com
>>>> wrote:
>>>
>>>> What do you mean by disrupt exactly?
>>>>
>>>> I've seen one potential solution where you basically make the
>> javascript
>>>> call with loadUrl and then wait for a addJavascriptInterface method to
>> be
>>>> called from the result. This waiting can happen on a non-ui thread. The
>>>> biggest problem is how long do you wait for the result to come back in
>>> case
>>>> it's never coming.
>>>>
>>>>
>>>> On Fri, Mar 30, 2012 at 4:58 PM, Joe Bowser <bowserj@gmail.com> wrote:
>>>>
>>>>> The problem is that there is no mechanism for this on Android that
>>> doesn't
>>>>> disrupt the UI thread.
>>>>>
>>>>> On Fri, Mar 30, 2012 at 1:50 PM, Matthew Schulkind <
>>> mschulkind@gmail.com
>>>>>> wrote:
>>>>>
>>>>>> Works here!
>>>>>>
>>>>>> If exec is getting futzed with, it'd be great if at the same time,
>>>>> support
>>>>>> was added for synchronous return values when calling Java ->
>>> JavaScript.
>>>>>> I'm working on the android port of true native, and I'm either going
>>> to
>>>>>> need this support in cordova directly or in my own code.
>>>>>>
>>>>>> On Fri, Mar 30, 2012 at 12:39 PM, Joe Bowser <bowserj@gmail.com>
>>> wrote:
>>>>>>
>>>>>>> Congrats! Your phone didn't come out of a vending machine!
>>>>>>>
>>>>>>> On Fri, Mar 30, 2012 at 8:22 AM, Simon MacDonald
>>>>>>> <simon.macdonald@gmail.com>wrote:
>>>>>>>
>>>>>>>> Installed and it looks like everything worked.
>>>>>>>>
>>>>>>>> Simon Mac Donald
>>>>>>>> http://hi.im/simonmacdonald
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Mar 30, 2012 at 11:02 AM, Joe Bowser <bowserj@gmail.com
>>>
>>>>>> wrote:
>>>>>>>>> We don't have enough crap Android devices running 2.3.
 This
>> is
>>> to
>>>>>> also
>>>>>>>>> help us buy devices for the device wall.  The application
can
>> be
>>>>>> found
>>>>>>>> here:
>>>>>>>>>
>>>>>>>>>
>>>>> https://play.google.com/store/apps/details?id=com.infil00p.phoneTest
>>>>>>>>>
>>>>>>>>> On Fri, Mar 30, 2012 at 7:11 AM, Simon MacDonald
>>>>>>>>> <simon.macdonald@gmail.com>wrote:
>>>>>>>>>
>>>>>>>>>> Great idea Joe. I've got a Samsung Galaxy S running
2.3.5 so
>>>>> lemme
>>>>>>>>>> know when it is up.
>>>>>>>>>>
>>>>>>>>>> But wait, isn't this a job for the PhoneGap Device
Wall!
>>>>>>>>>>
>>>>>>>>>> http://phonegap.com/2012/03/29/phonegaps-new-device-wall/
>>>>>>>>>>
>>>>>>>>>> Simon Mac Donald
>>>>>>>>>> http://hi.im/simonmacdonald
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, Mar 29, 2012 at 8:18 PM, Joe Bowser <
>> bowserj@gmail.com
>>>>
>>>>>>> wrote:
>>>>>>>>>>> OK, I published a test app on Google Play.  I'll
post the
>>> link
>>>>>> once
>>>>>>> it
>>>>>>>>>>> actually shows up.  I want people to download
and run it on
>>>>> their
>>>>>>>> Android
>>>>>>>>>>> 2.3 devices to see if we can find any that crash!
 If so,
>>>>> it'll be
>>>>>>>>>> recorded
>>>>>>>>>>> in the Error Report.  That way we can finally
know is this
>>> is a
>>>>>> real
>>>>>>>> bug
>>>>>>>>>> or
>>>>>>>>>>> something that only exists in the Emulator.
>>>>>>>>>>>
>>>>>>>>>>> I'll throw up the code on a repo somewhere as
well.  I made
>>>>> sure
>>>>>> to
>>>>>>>> use
>>>>>>>>>>> zero permissions so that it's clear what the
app is. (I bet
>>> it
>>>>>> gets
>>>>>>>>>> really
>>>>>>>>>>> crap ratings!).
>>>>>>>>>>>
>>>>>>>>>>> Joe
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Mar 29, 2012 at 4:46 PM, Brian LeRoux
<b@brian.io>
>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> +1 science
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Mar 29, 2012 at 4:33 PM, Joe Bowser
<
>>>>> bowserj@gmail.com>
>>>>>>>> wrote:
>>>>>>>>>>>>> On Thu, Mar 29, 2012 at 2:01 PM, Bryce
Curtis <
>>>>>>>> curtis.bryce@gmail.com
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Yes, I meant providing your own classes
that inherit
>> from
>>>>> our
>>>>>>>>>>>>>> CordovaChrome/WebView classes.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> From what I've observed recently,
>> addJavascriptInterface
>>> is
>>>>>>> still
>>>>>>>>>>>> broken in
>>>>>>>>>>>>>> the emulator and on some (maybe small
subset) of real
>>>>> phones.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> I just tested it on the emulator.  However,
I don't
>> think
>>>>> this
>>>>>> is
>>>>>>>> an
>>>>>>>>>>>> issue
>>>>>>>>>>>>> on real phones.  When they wrote the
switch, it was
>> meant
>>> to
>>>>>>> allow
>>>>>>>>>>>> Android
>>>>>>>>>>>>> 2.3 to run on crap like the Quench. 
So far, I have
>> never
>>>>> seen
>>>>>> a
>>>>>>>> phone
>>>>>>>>>>>> that
>>>>>>>>>>>>> has less than 256 MB of RAM produced,
not even the HTC
>>>>> Wildfire
>>>>>>>> (and
>>>>>>>>>> that
>>>>>>>>>>>>> phone sucked!).  I honestly don't think
that there's a
>>>>> single
>>>>>>>> Android
>>>>>>>>>> 2.3
>>>>>>>>>>>>> phone that has this bug.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I think I'm going to release an application
to prove
>> this
>>>>>> point.
>>>>>>>> FOR
>>>>>>>>>>>>> SCIENCE!
>>>>>>>>>>>>>
>>>>>>>>>>>>> Joe
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Mar 29, 2012 at 1:53 PM,
Joe Bowser <
>>>>>> bowserj@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Wed, Mar 28, 2012 at 9:09
PM, Bryce Curtis <
>>>>>>>>>> curtis.bryce@gmail.com
>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I really haven't had time
to look at this in
>> detail,
>>>>> but
>>>>>>> agree
>>>>>>>>>> that
>>>>>>>>>>>>>>>> anything related to the webview
should be in
>>>>>> CordovaWebView.
>>>>>>>> As
>>>>>>>>>> Fil
>>>>>>>>>>>>>>>> mentioned, that includes
the history, plugin
>> manager,
>>>>>>>>>> whitelisting,
>>>>>>>>>>>> &
>>>>>>>>>>>>>>>> authentication + callback
server.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I assume that overriding
chrome/view clients so the
>>>>> user
>>>>>> can
>>>>>>>>>> specify
>>>>>>>>>>>>>>> their
>>>>>>>>>>>>>>>> own will still work.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> What do you mean overriding Chrome/View
clients?  You
>>> can
>>>>>> use
>>>>>>>> your
>>>>>>>>>> own
>>>>>>>>>>>>>>> classes if they inherit from
the CordovaChrome class
>> or
>>>>>>>>>> CordovaWebView
>>>>>>>>>>>>>>> class, but if you just cram a
vanilla WebViewClient
>> or
>>>>>>>>>>>> WebChromeClient,
>>>>>>>>>>>>>>> Cordova won't work at all.  This
has nothing to do
>> with
>>>>>>>>>>>> CordovaWebView,
>>>>>>>>>>>>>> but
>>>>>>>>>>>>>>> instead is a consequence of the
prompt hack that acts
>>> as
>>>>> our
>>>>>>>>>> current
>>>>>>>>>>>>>>> bridge.  If we want to make it
so that we're not
>>>>> dependent
>>>>>> on
>>>>>>>> the
>>>>>>>>>>>>>>> ChromeClient, we should probably
bring back
>>>>>>>> addJavascriptInterface
>>>>>>>>>> and
>>>>>>>>>>>>>> put
>>>>>>>>>>>>>>> it in the view itself.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> BTW: Does the emulator still
break when we do this on
>>>>>> Android
>>>>>>>> 2.3?
>>>>>>>>>> I
>>>>>>>>>>>>>> think
>>>>>>>>>>>>>>> I'll have to look into that.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Joe
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Wed, Mar 28, 2012 at 6:17
PM, Filip Maj <
>>>>> fil@adobe.com
>>>>>>>
>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Sorry for late reply
Joe!
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Looks great! As for outstanding
issues as per
>> your
>>>>> wiki
>>>>>>>> article
>>>>>>>>>>>> [1],
>>>>>>>>>>>>>> I
>>>>>>>>>>>>>>>>> would say move everything
WebView related, as
>> well
>>> as
>>>>>>>>>>>>>> Cordova-specific
>>>>>>>>>>>>>>>>> such as the plugin manager,
into
>>>>> CordovaWebView.java. My
>>>>>>>>>> thinking
>>>>>>>>>>>>>> here
>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>> that, none of scaffolding
necessary to enable
>>> device
>>>>>> APIs
>>>>>>> in
>>>>>>>>>> the
>>>>>>>>>>>> web
>>>>>>>>>>>>>>> view
>>>>>>>>>>>>>>>>> should be a burden on
the user - the
>> CordovaWebView
>>>>>> class
>>>>>>>>>> should
>>>>>>>>>>>>>> handle
>>>>>>>>>>>>>>>>> all of that.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> It separates the cordova-y
bits as something the
>>>>> WEbView
>>>>>>>> needs
>>>>>>>>>> to
>>>>>>>>>>>>>>> manage
>>>>>>>>>>>>>>>>> on its own, as well,
and cleans up the final
>>>>>>>> Activity-extending
>>>>>>>>>>>> class
>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>> be simpler. Our end users
should not have to
>> worry
>>>>> about
>>>>>>>> that
>>>>>>>>>>>> stuff,
>>>>>>>>>>>>>>> nor
>>>>>>>>>>>>>>>>> do they need to see it
in their own activities,
>> or
>>>>> the
>>>>>>>>>> generated
>>>>>>>>>>>>>>>>> activities the baseline
tooling within
>>>>> cordova-android
>>>>>>>>>> provides.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> IMO: history, plugin
manager, whitelisting,
>>>>>>> authentication,
>>>>>>>>>> should
>>>>>>>>>>>>>> all
>>>>>>>>>>>>>>> be
>>>>>>>>>>>>>>>>> handled by CordovaWebView.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> [1]
>> http://wiki.apache.org/cordova/CordovaWebView
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On 3/28/12 4:06 PM, "Joe
Bowser" <
>>> bowserj@gmail.com>
>>>>>>> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> BUMP! Are we all
on board with doing this?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Joe
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Tue, Mar 27, 2012
at 1:15 PM, Joe Bowser <
>>>>>>>>>> bowserj@gmail.com>
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Hey
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I've been working
on the CordovaWebView
>> branch,
>>>>> and I
>>>>>>>> think
>>>>>>>>>> we
>>>>>>>>>>>>>> need
>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>> discuss where
to put the CallbackServer and
>>>>>>>> PluginManager in
>>>>>>>>>>>> the
>>>>>>>>>>>>>> new
>>>>>>>>>>>>>>>>>>> implementation.
 I'm OK with it being in the
>>> view,
>>>>>> but
>>>>>>> I
>>>>>>>> did
>>>>>>>>>>>> have
>>>>>>>>>>>>>> it
>>>>>>>>>>>>>>>> in
>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>> Client before,
and I'm wondering what people's
>>>>>> thoughts
>>>>>>>> are
>>>>>>>>>> on
>>>>>>>>>>>>>> that.
>>>>>>>>>>>>>>>>>>> Also,
>>>>>>>>>>>>>>>>>>> since these are
core pieces of Cordova on
>>> Android,
>>>>>> this
>>>>>>>> may
>>>>>>>>>>>> break
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>> branch, which
is fine, but it'd be good if
>> more
>>>>>> people
>>>>>>>>>> looked
>>>>>>>>>>>> at
>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>>>>> branch, and discussed
how this should work.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>> https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git;a
>>>>>>>>>>>>>>>>>>> =shortlog;h=refs/heads/CordovaWebView
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> http://wiki.apache.org/cordova/CordovaWebView
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Joe
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>

Mime
View raw message