Upon import of uuid, that module uses ctypes.util to find libuuid/libc,
which involves forking a shell process which then forks and runs ldconfig.
ldconfig performs a whole bunch of disk accesses. This is a slowdown.
uuid.getnode() is also documented to be slow. Lets avoid using it in
the activity launch path; we don't need such a high degree of
randomness.
This makes activities launch 1-2 seconds faster on XO-1.
The new bundle helpers were being auto-loaded with sugar3.bundle due
to their placement in __init__.py. This was causing Gi to be imported,
breaking GTK2 activity launches.
Move the helpers to a dedicated module.
The bundle API is a bit confusing and inconsistent. Fix up the
ActivityBundle and ContentBundle classes to be more consistent and to
work with the ongoing improvements being made in bundleregistry.
The last change brak compatibility with the use in activities
without set the filter_type parameter, because None is not
a allowed value in the dbus call.
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
It needs to be called as early as possible before unit tests
has a chance to import gtk.
Hopefully will fix random test failures we are seeing in buildbot.
Constants are defined to select the different filter_type
values. A comment was added to document the use.
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
This ensures the test itself is not recognized as a client
by the registry. I'm not sure how that happens since we are
not loading gtk, but it does. Not being a real gtk client with
a mainloop we wasn't answering dbus calls and causing the registry
to hang and fail.
Development continued there for a while. Now I will remove it
and used the toolkit implementation instead.
Changes:
* Retry faster
* Handle GLib errors
* Don't always dump the tree
* Support master atspi api
This extension is used by Sugar to set the HIDDEN attribute for
.Sugar-Metadata. By creating an extension, we avoid the need to add an
additional dependency (fatattr) to Sugar. The code is modeled after
fatattr, using an IOCTL call get and set FAT file attributes.
There is a corresponding patch for model.py in sugar/src/jarabe/journal
It's a first step to make html activities much lighter. It also
just makes a lot more sense to have them interact directly with
the system rather than proxying through the python activity.
We make use of this API in the shell and in the toolkit itself
and never removed those deprecated calls. Let's leave it like
this for now and remove the comment.
Otherwise anything might access the bus.
Note: This will not work if the user moves to another html page. They
will not have a port/key passed in the query string of the URL, so
they won't be able to connect.