incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Filip Maj (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-680) onNativeReady fires before the server is taking new connections
Date Thu, 10 May 2012 19:54:52 GMT

    [ https://issues.apache.org/jira/browse/CB-680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13272689#comment-13272689
] 

Filip Maj commented on CB-680:
------------------------------

Using mobile-spec, I did a simple test: loading the index page, loading another page, and
then hitting the back button to re-load the index page. On both pages, I added {{console.log}}s
in the {{window.onload}}, {{window.onunload}}, and {{deviceready}} events (I have seperated
these logs with ---- for clarity). My logcat output is below (interspersed with small notices
on when I loaded the next page / hit the back button):

{noformat}
D/DroidGap(24070): DroidGap.onCreate()
D/DroidGap(24070): DroidGap.loadUrl(file:///android_asset/www/index.html)
D/DroidGap(24070): DroidGap: url=file:///android_asset/www/index.html baseUrl=null
V/PhoneStatusBar(  271): setLightsOn(true)
D/DroidGap(24070): DroidGap.init()
D/CordovaWebView(24070): Origin to allow: http://127.0.0.1*
I/CordovaLog(24070): Found log level DEBUG
I/CordovaLog(24070): Changing log level to DEBUG(3)
I/CordovaLog(24070): Found preference for useBrowserHistory
D/PluginManager(24070): init()
D/SoftKeyboardDetect(24070): Ignore this event
I/WindowManager(  196): createSurface Window{41c8fc10 ca.filmaj.cwv/ca.filmaj.cwv.CordovaWebView
paused=false}: DRAW NOW PENDING
D/chromium(24070): Unknown chromium error: -6
D/chromium(24070): Unknown chromium error: -6
D/SoftKeyboardDetect(24070): Ignore this event
D/OpenGLRenderer(  447): Flushing caches (mode 1)
V/PhoneStatusBar(  271): setLightsOn(true)
----
D/CordovaLog(24070): index load
D/CordovaLog(24070): file:///android_asset/www/main.js: Line 137 : index load
I/Web Console(24070): index load at file:///android_asset/www/main.js:137
D/CordovaLog(24070): index deviceready
D/CordovaLog(24070): file:///android_asset/www/main.js: Line 2 : index deviceready
I/Web Console(24070): index deviceready at file:///android_asset/www/main.js:2
----
D/OpenGLRenderer(  447): Flushing caches (mode 0)
W/InputManagerService(  196): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@41d6b780
(uid=10028 pid=447)
I/ActivityManager(  196): Displayed ca.filmaj.cwv/.CordovaWebView: +649ms
----
LOAD NEXT PAGE
----
D/CordovaLog(24070): JSCallback Error: Request failed.
D/CordovaLog(24070): file:///android_asset/www/cordova-1.7.0.js: Line 3570 : JSCallback Error:
Request failed.
I/Web Console(24070): JSCallback Error: Request failed. at file:///android_asset/www/cordova-1.7.0.js:3570
----
D/CordovaLog(24070): index unload
D/CordovaLog(24070): file:///android_asset/www/main.js: Line 139 : index unload
I/Web Console(24070): index unload at file:///android_asset/www/main.js:139
----
D/CordovaLog(24070): Viewport argument value "1.0;" for key "initial-scale" was truncated
to its numeric prefix.
D/CordovaLog(24070): file:///android_asset/www/autotest/index.html: Line 5 : Viewport argument
value "1.0;" for key "initial-scale" was truncated to its numeric prefix.
V/Web Console(24070): Viewport argument value "1.0;" for key "initial-scale" was truncated
to its numeric prefix. at file:///android_asset/www/autotest/index.html:5
D/chromium(24070): Unknown chromium error: -6
D/chromium(24070): Unknown chromium error: -6
----
D/CordovaLog(24070): autotest load
D/CordovaLog(24070): file:///android_asset/www/autotest/index.html: Line 13 : autotest load
I/Web Console(24070): autotest load at file:///android_asset/www/autotest/index.html:13
D/CordovaLog(24070): autotest deviceready
D/CordovaLog(24070): file:///android_asset/www/autotest/index.html: Line 18 : autotest deviceready
I/Web Console(24070): autotest deviceready at file:///android_asset/www/autotest/index.html:18
----
HIT BACK BUTTON
----
D/CordovaLog(24070): JSCallback Error: Request failed.
D/CordovaLog(24070): file:///android_asset/www/cordova-1.7.0.js: Line 3570 : JSCallback Error:
Request failed.
I/Web Console(24070): JSCallback Error: Request failed. at file:///android_asset/www/cordova-1.7.0.js:3570
----
D/CordovaLog(24070): autotest unload
D/CordovaLog(24070): file:///android_asset/www/autotest/index.html: Line 15 : autotest unload
I/Web Console(24070): autotest unload at file:///android_asset/www/autotest/index.html:15
----
D/chromium(24070): Unknown chromium error: -6
D/chromium(24070): Unknown chromium error: -6
----
D/CordovaLog(24070): index load
D/CordovaLog(24070): file:///android_asset/www/main.js: Line 137 : index load
I/Web Console(24070): index load at file:///android_asset/www/main.js:137
D/CordovaLog(24070): index deviceready
D/CordovaLog(24070): file:///android_asset/www/main.js: Line 2 : index deviceready
I/Web Console(24070): index deviceready at file:///android_asset/www/main.js:2
----
{noformat}

This confirms my intuition that the request failed log message happens during a page UNLOAD.

Now will dive into native code and see why this is happening and what, if anything, we can
do to stop this from happening.
                
> onNativeReady fires before the server is taking new connections
> ---------------------------------------------------------------
>
>                 Key: CB-680
>                 URL: https://issues.apache.org/jira/browse/CB-680
>             Project: Apache Cordova
>          Issue Type: Sub-task
>          Components: Android
>    Affects Versions: 1.7.0
>            Reporter: Joe Bowser
>            Assignee: Filip Maj
>            Priority: Blocker
>             Fix For: 1.8.0
>
>
> This issue is able to be ignored in Android 1.7, but it has come to a head in Android
1.8, since we moved where the Callback Server lives.
> D/CordovaLog( 3395): file:///android_asset/www/cordova-1.7.0.js: Line 3570 : JSCallback
Error: Request failed.
> When this occurs, and you have methods that are called onDeviceReady, while the interfaces
exist, there's no way to get the callback, which means that it hangs forever and always fails
when using the CordovaWebView branch. This indicates that we are calling onNativeReady prematurely
when we go from page to page, and that we have to wait for the server to be ready before calling
this.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message