Results 1 to 19 of 19
Like Tree1Likes
  • 1 Post By eblade
  1.    #1  
    So I followed the directions from Garfonso how to debug apps on LuneOS and was trying to figure out why Apollo which is Enyo 1 hangs on the splash screen.
    I watched the debug output and it seems it hangs with these errors:
    file:///usr/palm/frameworks/enyo/1.0/framework/build/enyo-build.jsjsjs:$73$: $CONSOLEAPI$ $LOG$: $PANDORA$&$gt$; $DB$ $Error$
    file:///usr/palm/frameworks/enyo/1.0/framework/build/enyo-build.jsjsjs:$73$: $CONSOLEAPI$ $LOG$: $PANDORA$&$gt$; $Transaction$ $Error$: $SecurityError$: $DOM$ $Exception$ $18$

    Seems like this is security restriction for local recources in this case HTML5 active record.
    At first I was misled by the Mojo name thinking it uses mojo framework but it seems it's just java script library in the application itself.
    I guess this is some restriction on the WebKit used in LuneOS.
  2. #2  
    I actually have a little bit of history with this error, as I dealt a little bit with compatibility issues with Apollo and LG webOS. You'll probably have to do a little debugging exactly where that is, but there's basically two things that I know of that can cause that:

    Database Quota
    Invalid Cookie usage.

    Considering that immediately above that is a DB error, it looks like the Lune WebAppManager is not setting database quotas (or you've exceeded it somehow).

    To get Apollo working, I think that that'll need to get fixed, as well as getting some changes done to the webkit to deal with cookies received from remote, despite the fact that the page is a file:// url.
    Author:
    Remove Messaging Beeps patch for webOS 3.0.5, Left/Right bezel gestures in LunaCE,
    Whazaa! Messenger and node-wa, SynerGV 1 and 2 - Google Voice integration, XO - Subsonic Commander media streamer, AB:S Launcher
    (1:39:33 PM) halfhalo: Android multitasking is like sticking your fingers into a blender
    GO OPEN WEBOS!
    People asked me for a donate link for my non-catalog work, so here you are:
    Preemptive likes this.
  3.    #3  
    It's on the load of the app in the splash screen or more precisely in the persistence.jsjsjs $when$ $the$ $Mojo$.$Depot$ $gets$ $initalized$

    this.depot = new Mojo.Depot(options, this.restore.bind(this), this.onError);

    in the onError function.
    As far as I can say it just stores the history for each station and since I haven't signed in it should be a small db. That's why I think it's more of security issue with WebKit. Hope some of the devs will chime in.
  4. #4  
    From: Mojo.Depot

    A Mojo wrapper to the HTML5 Database API. Includes basic functions to create and open databases and get and store simple objects.

    ... so, that should work if someone sets up the quota properly.
    (properly being a number > 0 and also > than the amount needed to store the things it wants to store)

    I also suspect that the actual code is probably somewhere in Enyo 1.0, there's a smallish number of functions in Enyo 1 that were implemented in the Mojo namespace to remain compatible with old Mojo code, or something.

    I haven't examined the webkit that Lune is running, but I suspect that it's probably missing any special things that are likely to be needed to be 100% compatible with the old webOS's FrankenKit, such as the Database and all other storage APIs being explicitly local to each application.

    On the other hand, it would be nice if Apollo didn't utterly fail if the database operations fail :-)
    Author:
    Remove Messaging Beeps patch for webOS 3.0.5, Left/Right bezel gestures in LunaCE,
    Whazaa! Messenger and node-wa, SynerGV 1 and 2 - Google Voice integration, XO - Subsonic Commander media streamer, AB:S Launcher
    (1:39:33 PM) halfhalo: Android multitasking is like sticking your fingers into a blender
    GO OPEN WEBOS!
    People asked me for a donate link for my non-catalog work, so here you are:
  5.    #5  
    Well, the thing is that Mojo.depot at least in the case of Apollo is just separate is file and btw it has pretty good comments that explained it pretty good. I guess the problem is it's from 2009 and since then HTML5 might have changed or just security about it. Limiting the size of the created db is good practise. I'll was thinking about setting the optional estimated size param and see if that will fly. Just was out of the house all day. And yes the next error is in the Enyo code in the debugger.
    Apollo is fork of the original Pandora Mojo app and I assume this where Mojo.Depot comes too. Didn't care to check the original.
  6. #6  
    Where are these debugging instructions you speak of? I did a search here and looked around the wiki site, but didn't find anything detailed. I found some adb commands for retrieving files, but the adb driver installer didn't install any kind of executable command I could find. I think this could be better documented.

    Edit: I found this... is this it? Well, it works anyway. http://adbshell.com/download/downloa...r-windows.html
    Last edited by Grabber5.0; 09/06/2014 at 11:37 PM.
  7. #7  
    I promise, really, that WebKit is throwing that error because the database quota hasn't been configured, so it is refusing to allow database usage at all.

    Perhaps the Mojo.Depot was grabbed from webOS Mojo, it definitely was included in older webOS. The docs I linked to are probably similar to the developer.palm.com docs, but I can't get into that site right now due to local network issues. In any case, it's a wrapper to the HTML database API, probably the older deprecated one, rather than a newer one.. but it should still work.

    Somewhere in the Qt WebKit code, there's a method that needs to be implemented to determine database quota.
    Author:
    Remove Messaging Beeps patch for webOS 3.0.5, Left/Right bezel gestures in LunaCE,
    Whazaa! Messenger and node-wa, SynerGV 1 and 2 - Google Voice integration, XO - Subsonic Commander media streamer, AB:S Launcher
    (1:39:33 PM) halfhalo: Android multitasking is like sticking your fingers into a blender
    GO OPEN WEBOS!
    People asked me for a donate link for my non-catalog work, so here you are:
  8. #8  
    We haven't extensively tested legacy apps on LuneOS to be honest. I did test a handful myself and those seemed OK. Please feel free to report a bug at Ports - Issues - webOS Ports with logfiles so the team can look into it. I'm quite sure we can find a solution for it. We're very happy to receive users feedback, because our team of developers cannot test everything that's out there to make sure it's working
    HP Veer (daily driver), HP Pre 3, HP Touchpad Proper 4G/LTE (Sierra MC7710), HP Touchpad 32GB WiFi, Palm Pre 2
  9.    #9  
    Hey, Herrie not sure if you've seen my post on the other thread here: LuneOS Debugging/Troubleshooting problems & reporting bugs

    I'm having troubles submitting an issue on the http://issues.webos-ports.org...getting 403 not authorized to view this page from ChilliProject site.
    I assume this is the correct url to do so: http://issues.webos-ports.org/projects/ports/issues/new
  10. #10  
    Hey, Herrie not sure if you've seen my post on the other thread here: LuneOS Debugging/Troubleshooting problems & reporting bugs

    I'm having troubles submitting an issue on the http://issues.webos-ports.org...getting 403 not authorized to view this page from ChilliProject site.
    I assume this is the correct url to do so: http://issues.webos-ports.org/projects/ports/issues/new
    I need to check with the admin, didn't get a hold of him yet. What's your username?


    -- Sent from my TouchPad using Communities
    HP Veer (daily driver), HP Pre 3, HP Touchpad Proper 4G/LTE (Sierra MC7710), HP Touchpad 32GB WiFi, Palm Pre 2
  11. #12  
    Can you try again?
    HP Veer (daily driver), HP Pre 3, HP Touchpad Proper 4G/LTE (Sierra MC7710), HP Touchpad 32GB WiFi, Palm Pre 2
  12.    #13  
    That worked. Thanks, Herrie.
  13.    #14  
    Well, I've done a little bit more digging and might have narrowed down where the error is coming from.
    The depot.jsjsjs $that$ $Apollo$ $is$ $using$:
    this.db = openDatabase(this.name, this.version, this.displayName, this.estimatedSize);
    that leads at least as far as I can tell to a native code according to web debugger when debugging the app in browser and manually issuing the line of code that is reported(can't make the debugger to break before the page is loaded - debugger; doesn't cut it).
    I searched the source of Apollo for such method with no luck so I set out to do search for that string on the whole image both for LuneOS and webOS 3.0.4
    Code:
    webOS
    
    \nova-cust-image-topaz.rootfs.tar\usr\bin\mojodb-luna 111,63212/21/2011 14:24-a--
    
    \nova-cust-image-topaz.rootfs.tar\usr\lib\libQtDeclarative.so.4.8. 04,160,54312/21/2011 14:30-a--
    
    \nova-cust-image-topaz.rootfs.tar\usr\lib\libsqlite3.so.0.8.6 603,37712/21/2011 14:14-a--
    
    \nova-cust-image-topaz.rootfs.tar\usr\lib\libWebKitLuna.so 12,833,05712/21/2011 14:33-a--
    
    \nova-cust-image-topaz.rootfs.tar\usr\palm\frameworks\mojo\buil tins\palmInitFramework2205.jsjsjs $699$,$70612$/$21$/$2011$ $14$:$14$-$a$--
    
    \$nova$-$cust$-$image$-$topaz$.$rootfs$.$tar$\$usr$\$palm$\$frameworks$\$mojo$\$buil$ $tins$\$palmInitFramework506$.$js$ $811$,$81212$/$21$/$2011$ $14$:$14$-$a$--
    
    $LuneOS$
    
    \$webos$-$ports$-$dev$-$image$-$tenderloin$-$20140810090404$-$024$-$3$ $0$\$usr$\$sbin$\$mojodb$-$luna177$,$62808$/$10$/$2014$ $07$:$07$-$a$--
    
    \$webos$-$ports$-$dev$-$image$-$tenderloin$-$20140810090404$-$024$-$3$ $0$\$usr$\$sbin$\$mojodb_migrate177$,$29608$/$10$/$2014$ $07$:$07$-$a$--
    
    \$webos$-$ports$-$dev$-$image$-$tenderloin$-$20140810090404$-$024$-$3$ $0$\$usr$\$lib$\$qt5$\$qml$\$QtQuick$\$LocalStorage$\$plugins$.$qmltypes58702$/$01$/$2014$ $15$:$38$-$a$--
    
    \$webos$-$ports$-$dev$-$image$-$tenderloin$-$20140810090404$-$024$-$3$ $0$\$usr$\$lib$\$qt5$\$qml$\$QtQuick$\$LocalStorage$\$libqmllocalstorageplugin$.$so45$,$25608$/$10$/$2014$ $06$:$57$-$a$--
    
    \$webos$-$ports$-$dev$-$image$-$tenderloin$-$20140810090404$-$024$-$3$ $0$\$usr$\$lib$\$libQt5WebKit$.$so$.$5$.$2$.$126$,$410$,$18808$/$10$/$2014$ $07$:$51$-$a$--
    I suspect /usr/sbin/mojodb-luna but it could be any of these of course or anything else since I don't have a clue how the OS works.
    And to eblade I did set up the estimateSize which is optional param but it didn't make any difference.
  14. #15  
    There needs to be some code or build parameters added to the WebKit itself to either set a quota, or allow the user to set a quota. (technically, last I knew, QtWebKit would call a special function to ask the user if they want to allow the quota to expand for that application, and if that function is missing, then it just fails it)
    Author:
    Remove Messaging Beeps patch for webOS 3.0.5, Left/Right bezel gestures in LunaCE,
    Whazaa! Messenger and node-wa, SynerGV 1 and 2 - Google Voice integration, XO - Subsonic Commander media streamer, AB:S Launcher
    (1:39:33 PM) halfhalo: Android multitasking is like sticking your fingers into a blender
    GO OPEN WEBOS!
    People asked me for a donate link for my non-catalog work, so here you are:
  15.    #16  
    Yeah, I figured there's nothing that can be done on the app code and submitted bug with webos ports #615, but it haven't been assigned to anybody as of yet. So I guess we'll have to wait and see...

    Thanks for keeping me sane, eblade
    I guess what you're referring to is this:
    WebKitGTK+ Reference Manual: WebKitWebView
  16.    #17  
    Well, at least I have a sample code that can reproduce the issue .
    Not sure if I created the ticket in the correct category in the webOS Ports issue tracking
    but here it is:

    Code:
    var db = window.openDatabase(
    'MyDB', // dbName
    '1.0', // version
    'test database', // description
    2 * 1024 * 1024, // estimatedSize in bytes
    function(db) {} // optional creationCallback
    );
    and here is the result:

    Code:
    Error: SecurityError: DOM Exception 18
    code: 18
    constructor: DOMExceptionConstructor
    line: 1
    message: "SecurityError: DOM Exception 18" 
    name: "SecurityError" 
    stack: "openDatabase@[native code]?eval code?eval@[native code]?_evaluateOn?_evaluateAndWrap?evaluate" 
    proto: DOMExceptionPrototype
  17. #18  
    That's exactly it, but someone needs to implement the Qt version of that, not the Gtk version :-)
    Or setup a default quota.
    Author:
    Remove Messaging Beeps patch for webOS 3.0.5, Left/Right bezel gestures in LunaCE,
    Whazaa! Messenger and node-wa, SynerGV 1 and 2 - Google Voice integration, XO - Subsonic Commander media streamer, AB:S Launcher
    (1:39:33 PM) halfhalo: Android multitasking is like sticking your fingers into a blender
    GO OPEN WEBOS!
    People asked me for a donate link for my non-catalog work, so here you are:
  18.    #19  
    void QWebPage::databaseQuotaExceeded(QWebFrame * frame, QString databaseName) [signal]
    This signal is emitted whenever the web site shown in frame is asking to store data to the database databaseName and the quota allocated to that web site is exceeded.
    This function was introduced in Qt 4.5.

    https://qt-project.org/doc/qt-5/qweb...eQuotaExceeded

    html5test.com on the browser in LuneOS at least says that it doesn't support any of the Database storage including IndexDB which seems to be next best thing to websql db.
    websql db has a check next to it.

    Not sure if this is correct way to figure out if the os will give the same permissions to an app as to the browser itself anyway.

Similar Threads

  1. Latest Catalog Update Fixes Legacy PDK Apps
    By rlopin in forum HP TouchPad
    Replies: 0
    Last Post: 08/27/2011, 08:35 AM
  2. Legacy Apps Question
    By rburtz in forum HP TouchPad
    Replies: 6
    Last Post: 06/22/2011, 12:05 PM
  3. Replies: 10
    Last Post: 06/19/2011, 07:38 PM
  4. Are There Apps for These 2 Issues?
    By shinerb in forum webOS Discussion Lounge
    Replies: 4
    Last Post: 09/02/2010, 08:09 PM
  5. Classic Apps Issues
    By ask4dug in forum webOS Apps & Games
    Replies: 1
    Last Post: 08/04/2009, 06:40 AM

Posting Permissions