maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Maemo 5 / Fremantle (https://talk.maemo.org/forumdisplay.php?f=40)
-   -   [WIP] Alopex: a mozilla embedlite implementation on fremantle (https://talk.maemo.org/showthread.php?t=89506)

marmistrz 2014-02-13 20:00

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
We have a couple of options:

1. Migrate to Qt5
Pros: maybe better performance of the library, being always up-to-date, no problem "they'll drop our support"
Cons: More RAM usage, possible problems with the port being buggy

2. Stick with Qt4
Pros: no additional work required (apart from the UI creation)
Cons: Being more and more out-of-date, not receiving updates, need to find a stable commit.

3. Go for Gtk
Pros: Gtk support is still there, performance
Cons: Manpower that knows Gtk, how long will they support gtk2, Gtk and Mozembed issues. No examples (correct me if I'm wrong)

4. Switch to WebKit
Pros: We have QtWebkit in Qt4, good documentation
Cons: WebKit is unmaintained AFAIK, WebKit in Qt5 is probably newer.

5. Port Fremantle to Qt5
Pros: compat, possible performance
Cons: Whole lotta work! Really whole lotta... Impossible for two-men team :)

Please add your opinions and suggestions.

Android_808 2014-02-13 23:12

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
With regards to gtk, tmeshkova makes it sound like we only need to reimplement qtmozembed in gtk. Compared to maintaining a qt port for mozilla/xulrunner, this would be much easier.

A quick check of dependencies, we meet most of them. Python requires 2.7.3, we have an -rc version but it might still work.

Estel 2014-02-14 01:05

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
Wasn't that canvas thing a roadblocker for GTK version, that no one had idea how to solve?

Android_808 2014-02-17 19:14

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
GStreamer patch needs some updating at the moment if anyone is looking into options. Recent commit added some if statements for gstreamer 1.0 in first patched file and removed a function from the list in the second. I will push to repo at some stage once I've tested build.

Code:

Index: gecko-dev/content/media/gstreamer/GStreamerFormatHelper.cpp
===================================================================
--- gecko-dev.orig/content/media/gstreamer/GStreamerFormatHelper.cpp        2014-02-17 14:47:44.019372890 +0000
+++ gecko-dev/content/media/gstreamer/GStreamerFormatHelper.cpp        2014-02-17 18:34:57.438879473 +0000
@@ -294,26 +294,10 @@
 GList* GStreamerFormatHelper::GetFactories() {
  NS_ASSERTION(sLoadOK, "GStreamer library not linked");
 
-#if GST_VERSION_MAJOR >= 1
-  uint32_t cookie = gst_registry_get_feature_list_cookie(gst_registry_get());
-#else
-  uint32_t cookie = gst_default_registry_get_feature_list_cookie();
-#endif
-  if (cookie != mCookie) {
-    g_list_free(mFactories);
-#if GST_VERSION_MAJOR >= 1
-    mFactories =
-      gst_registry_feature_filter(gst_registry_get(),
-                                  (GstPluginFeatureFilter)FactoryFilter,
-                                  false, nullptr);
-#else
-    mFactories =
-      gst_default_registry_feature_filter((GstPluginFeatureFilter)FactoryFilter,
-                                          false, nullptr);
-#endif
-    mCookie = cookie;
-  }
-
+  g_list_free(mFactories);
+  mFactories =
+    gst_default_registry_feature_filter((GstPluginFeatureFilter)FactoryFilter,
+                                        false, nullptr);
  return mFactories;
 }
 
Index: gecko-dev/content/media/gstreamer/GStreamerFunctionList.h
===================================================================
--- gecko-dev/content/media/gstreamer/GStreamerFunctionList.h        2014-02-17 14:47:44.019372890 +0000
+++ gecko-dev/content/media/gstreamer/GStreamerFunctionList.h        2014-02-17 18:34:57.438879473 +0000
@@ -50,6 +50,7 @@
 GST_FUNC(LIBGSTREAMER, gst_init_check)
 GST_FUNC(LIBGSTREAMER, gst_iterator_next)
 GST_FUNC(LIBGSTREAMER, gst_message_parse_error)
+GST_FUNC(LIBGSTREAMER, gst_message_get_type)
 GST_FUNC(LIBGSTREAMER, gst_message_type_get_name)
 GST_FUNC(LIBGSTREAMER, gst_mini_object_ref)
 GST_FUNC(LIBGSTREAMER, gst_mini_object_unref)
@@ -63,7 +64,6 @@
 GST_FUNC(LIBGSTREAMER, gst_pipeline_get_type)
 GST_FUNC(LIBGSTREAMER, gst_plugin_feature_get_rank)
 GST_FUNC(LIBGSTREAMER, gst_registry_feature_filter)
-GST_FUNC(LIBGSTREAMER, gst_registry_get_feature_list_cookie)
 GST_FUNC(LIBGSTREAMER, gst_segment_init)
 GST_FUNC(LIBGSTREAMER, gst_segment_to_stream_time)
 GST_FUNC(LIBGSTREAMER, gst_static_caps_get)


marmistrz 2014-02-17 19:32

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
Android_808: You were concerned about loading qt5 libs into RAM. But doesn't each app load the libraries separately? So the RAM difference won't be
Code:

size(Qt5libs)
but
Code:

size(Qt4libs) - size(Qt5libs)
. So we might even paradoxically gain free RAM instead of losing it.

IIRC applauncherd was working it around by sharing libraries among apps

Android_808 2014-02-17 20:00

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
What happens if you multitask, say have OMP and browser opened? You'd then need to have Qt4 for OMP loaded and Qt5 for browser.

My real concern with qt5 was how well supported it is on Maemo. I don't see a great deal of apps using it, if any. If you compare the amount of code ripped out in the recent qt5 commit in embedlite, the new port seems to be much easier to work with for some interactions. However that simplification must at times come at a cost of increasing qt library size.

marmistrz 2014-02-17 20:12

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
Quote:

Originally Posted by Android_808 (Post 1413162)
What happens if you multitask, say have OMP and browser opened? You'd then need to have Qt4 for OMP loaded and Qt5 for browser.

My real concern with qt5 was how well supported it is on Maemo. I don't see a great deal of apps using it, if any. If you compare the amount of code ripped out in the recent qt5 commit in embedlite, the new port seems to be much easier to work with for some interactions. However that simplification must at times come at a cost of increasing qt library size.

But if you have omp and browser you would use 2x Qt4 libs. Correct me if I'm wrong.

Android_808 2014-02-17 23:46

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
as i understand it. 2 apps each have text/data and a link to library. loading app 1 causes the app and library text to be loaded. loading app b causes its text to be loaded and page table entries are mapped to existing copy of library. the librarys read-only data segment is shared until an edit is made in which case that app gets its own copy.

UJKU 2014-02-21 17:44

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
I have cssu thumb and all the files provided are not installed , alopex doesn't run . help ???

marmistrz 2014-02-22 17:33

Re: [WIP] Alopex: a mozilla embedlite implementation on fremantle
 
@Android_808: You were right: http://unix.stackexchange.com/questi...irect=1#116332


All times are GMT. The time now is 12:16.

vBulletin® Version 3.8.8