[Sugar-devel] Web activities on XO-4

James Cameron quozl at laptop.org
Tue Sep 24 19:45:38 EDT 2013


You don't describe the symptom, but my guess is that an event handler
of WebKit stalls expecting a response from the HTTP server, and a
response will not occur because the HTTP server event handler is not
run.  I speculate that the WebKit event handler may be doing a
blocking connect.

Threads is just another form of event loop, in my opinion.  ;-)

So instead, use a subprocess.  See import subprocess.

On Tue, Sep 24, 2013 at 03:45:46PM -0300, Gonzalo Odiard wrote:
> Thanks James.
> 
> In other news, I have tried add a simple web server,
> but apparently I couldn't make run webkit and the webserver together,
> even using threads.
> 
> Gonzalo
> 
> 
> On Thu, Sep 19, 2013 at 7:46 PM, James Cameron <quozl at laptop.org> wrote:
> 
>     I just love sockets.
> 
>     But that seems wrong to me; to open a socket to get a port number and
>     then shut it down.  Presumably later code would open another socket
>     and bind it to the port?
> 
>     If you truly need to do it that way, there's one more thing to add
>     before the call to bind():
> 
>             sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
> 
>     This is so that the same port number can be re-used shortly
>     afterwards.  Otherwise the later code would see an address in use
>     error.
> 
>     On Thu, Sep 19, 2013 at 08:56:31AM -0300, Gonzalo Odiard wrote:
>     > A free port can be get using:
>     >
>     >             # Get a free socket
>     >             sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
>     >             sock.bind(('', 0))
>     >             sock.listen(socket.SOMAXCONN)
>     >             _ipaddr, self.port = sock.getsockname()
>     >             sock.shutdown(socket.SHUT_RDWR)
>     >             logging.error('Using port %d', self.port)
>     >
>     > Should be good use 0.0.0.0 as ip instead of localhost, to avoid [1]
>     > To serve the files python already have HTTPServer.
>     >
>     >  Gonzalo
>     >
>     > [1] http://dev.laptop.org/ticket/12479 
>     >
>     >
>     > On Wed, Sep 18, 2013 at 9:39 PM, Daniel Narvaez <dwnarvaez at gmail.com>
>     wrote:
>     >
>     >     Just a directory. It needs to be one server per activity though, so
>     that
>     >     the different port gives us a different origin.
>     >
>     >
>     >     On 18 September 2013 23:32, Gonzalo Odiard <gonzalo at laptop.org>
>     wrote:
>     >
>     >         Ok. Thanks.
>     >         The web server need have something special or just serve a
>     directory is
>     >         enough? 
>     >
>     >         Gonzalo
>     >
>     >
>     >         On Wed, Sep 18, 2013 at 6:22 PM, Daniel Narvaez <
>     dwnarvaez at gmail.com>
>     >         wrote:
>     >
>     >             Well, there are several html features which depend on each
>     activity
>     >             having their own origin, for example local storage.
>     >
>     >
>     >             On Wednesday, 18 September 2013, Gonzalo Odiard wrote:
>     >
>     >                 No, why is needed use a local web server instead of
>     >                  the use of the proposed solution (use '
>     >                 enable-file-access-from-file-uris' )
>     >
>     >                 Gonzalo
>     >
>     >
>     >                 On Wed, Sep 18, 2013 at 6:06 PM, Daniel Narvaez <
>     >                 dwnarvaez at gmail.com> wrote:
>     >
>     >                     You mean why the http server would be a problem?
>     >
>     >
>     >                     On Wednesday, 18 September 2013, Gonzalo Odiard
>     wrote:
>     >
>     >                         This is for the potential security risk of
>     opening
>     >                         files outside of the activity directory,
>     >                         or because can be a problem with different
>     activities
>     >                         running at the same time
>     >                         or multiple instances of the same activity?
>     >
>     >                         Gonzalo
>     >
>     >
>     >                         On Wed, Sep 18, 2013 at 5:46 PM, Daniel Narvaez <
>     >                         dwnarvaez at gmail.com> wrote:
>     >
>     >                             You could put an http server in the
>     activity...
>     >                             Sucks but I'm not sure there is a better way
>     :/
>     >
>     >
>     >                             On Wednesday, 18 September 2013, Manuel
>     Quiñones
>     >                             wrote:
>     >
>     >                                 I finally got web activities working on
>     XO-4,
>     >                                 in the AU build
>     >                                 published yesterday [1] .  I did it by
>     >                                 modifying webactivities.py to
>     >                                 use WebKitGTK1 instead of v2.  The
>     changes are:
>     >
>     >                                 https://github.com/manuq/
>     sugar-toolkit-gtk3-1/
>     >                                 compare/webacts-webkit1
>     >
>     >                                 I tried it with Gears Activity v3, and is
>     >                                 working.  It stores the data
>     >                                 and the metadata.  So it is communicating
>     with
>     >                                 the shell just fine.
>     >
>     >                                 The touchscreen is not responding very
>     well, at
>     >                                 least in this
>     >                                 activity.  I can tap buttons, but I can
>     barely
>     >                                 drag to move a gear or
>     >                                 to draw one.  The dragging seems to be
>     >                                 cancelled in the middle of the
>     >                                 action.  Mouse input works fine.
>     >
>     >                                 Also as expected, the icons look small in
>     the
>     >                                 XO screen because I need
>     >                                 to adapt the theme.  But that is an easy
>     one,
>     >                                 just changing the
>     >                                 CEL_SIZE variable in the LESS file to
>     create
>     >                                 another CSS for the XO
>     >                                 screen DPI, and adding a CSS media query
>     >                                 selector to the HTML.  I'll
>     >                                 provide a patch to sugar-web-template and
>     will
>     >                                 update my web
>     >                                 activities.
>     >
>     >                                 The inspector is not working, it does not
>     >                                 display.  It shoud display
>     >                                 by Ctrl+Shift+I or by right-click ->
>     "Inspect
>     >                                 element".  There is no
>     >                                 error in the logs and the API is there
>     [2], but
>     >                                 nothing is happening.
>     >                                 Surprisingly, JavaScript console logs go
>     to the
>     >                                 activity log.  We are
>     >                                 missing that in master.
>     >
>     >                                 I managed to keep the activity:// scheme
>     that
>     >                                 we need for the
>     >                                 same-origin policy, but I still had to
>     add the
>     >                                 setting
>     >                                 'enable-file-access-from-file-uris' to
>     >                                 workaround the cross-site
>     >                                 requests.  I can't find a way to register
>     the
>     >                                 URI scheme in WK1, so I
>     >                                 added a big FIXME.
>     >
>     >                                 [1] http://build.laptop.org.au/xo/os/
>     sugar-100/
>     >                                 build-21/
>     >                                 [2] http://webkitgtk.org/reference/
>     webkitgtk/
>     >                                 stable/WebKitWebInspector.html
>     >
>     >
>     >                                 --
>     >                                 .. manuq ..
>     >                                
>     _______________________________________________
>     >                                 Sugar-devel mailing list
>     >                                 Sugar-devel at lists.sugarlabs.org
>     >                                 http://lists.sugarlabs.org/listinfo/
>     sugar-devel
>     >
>     >
>     >
>     >                             --
>     >                             Daniel Narvaez
>     >
>     >
>     >                            
>     _______________________________________________
>     >                             Sugar-devel mailing list
>     >                             Sugar-devel at lists.sugarlabs.org
>     >                             http://lists.sugarlabs.org/listinfo/
>     sugar-devel
>     >
>     >
>     >
>     >
>     >
>     >
>     >                     --
>     >                     Daniel Narvaez
>     >
>     >
>     >
>     >
>     >
>     >
>     >             --
>     >             Daniel Narvaez
>     >
>     >
>     >
>     >
>     >
>     >
>     >
>     >     --
>     >     Daniel Narvaez
>     >
>     >
> 
>     > _______________________________________________
>     > Sugar-devel mailing list
>     > Sugar-devel at lists.sugarlabs.org
>     > http://lists.sugarlabs.org/listinfo/sugar-devel
> 
> 
>     --
>     James Cameron
>     http://quozl.linux.org.au/
> 
> 

-- 
James Cameron
http://quozl.linux.org.au/


More information about the Sugar-devel mailing list