Announcement

Collapse
No announcement yet.

GNOME Developer On GTK4: State-of-the-Art of Toolkit Support

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • anda_skoa
    replied
    Originally posted by Delgarde View Post
    They do, and have for a very long time.... that feature was added to Firefox 3.6 back in 2010 or so.
    Ah, yes, I thought they did, but the other comment made it looks like they didn't.

    Originally posted by Delgarde View Post
    But that doesn't change the fact that at least one part of Firefox is required to link to GTK+2, and therefore cannot be linked to GTK+3.
    Sure, but that's not the browser, just the plugin host which likely doesn't need much changes at this point.

    So I wouldn't consider "need GTK2 for plugins" to be a reason to hold back a GTK3 port of the browser.

    Originally posted by Delgarde View Post
    A significant part of their move to GTK+3 was to re-arrange library code to allow them to simultaneously build against both GTK+ versions... 3 for the browser itself, 2 for the plugin container.
    Sounds like a lot of effort to allow simultanious building against two version of a library if you only need one at a given time.
    Would be much easier to just build the browser against the target version and the plugin host against the self inflicted compatibility version.

    Cheers,
    _

    Leave a comment:


  • Delgarde
    replied
    Originally posted by anda_skoa View Post
    They could do the same thing any non-GTK based browser does: run the plugins out-of-process.
    Would also be safer and not compromise the stability of the browser if a plugins crashes.
    They do, and have for a very long time.... that feature was added to Firefox 3.6 back in 2010 or so.

    But that doesn't change the fact that at least one part of Firefox is required to link to GTK+2, and therefore cannot be linked to GTK+3. A significant part of their move to GTK+3 was to re-arrange library code to allow them to simultaneously build against both GTK+ versions... 3 for the browser itself, 2 for the plugin container.

    Leave a comment:


  • leipero
    replied
    Originally posted by Vistaus View Post

    Eh, I thought Xhrome moved to Aura?
    Typo, wanted to say Chrome , i think it's still GTK 2, at least it was ~4 months ago when I modified some themes, and Chrome reacted to GTK 2 .

    Leave a comment:


  • TheBlackCat
    replied
    Originally posted by Delgarde View Post
    Apparently you ignored the entire second paragraph of my message? The bit that noted that porting from GTK+2 to 3 was trivial... as long as the GTK+2 code was well maintained, avoiding the use of deprecated APIs, etc?

    And GIMP is a chronically under-resourced project that's had nothing to do with the development of the toolkit since the days of GTK+1. So while I'm not familiar with their codebase, I suspect it's heavily reliant on APIs that were deprecated long ago, but which they've not had the time to do anything about. At which point porting *is* difficult, because you've saved up all your technical debt until it becomes an obstacle to getting anything done, and it all has to be addressed at once.
    So only projects that use deprecated APIs have difficulty porting, which means the fact that a project has difficulty porting is enough to show that it is using deprecated APIs. Circular logic at its best. You don't actually need to know anything about the project's code base, the mere fact that it contradicts your claim is enough to ignore it entirely.

    It couldn't possibly be that your experience with your single project is not representative of all projects of all kinds.

    Leave a comment:


  • Vistaus
    replied
    Originally posted by leipero View Post

    Well, Xhrome still uses GTK 2 .
    Eh, I thought Xhrome moved to Aura?

    Leave a comment:


  • anda_skoa
    replied
    Originally posted by Delgarde View Post
    Actually, it's more complicated than that. One, they're partly stuck with GTK+2 because that's essentially part of the plugin ABI... they can't change that, because plugins like Flash will fail if Firefox isn't providing the GTK+2 interfaces (and plugins can't update to GTK+3 because doing so would conflict with the GTK+2 interfaces provided by Firefox... chicken and egg.)
    They could do the same thing any non-GTK based browser does: run the plugins out-of-process.
    Would also be safer and not compromise the stability of the browser if a plugins crashes.

    Cheers,
    _

    Leave a comment:


  • ssokolow
    replied
    Originally posted by Delgarde View Post
    For the rest of the application, it's odd. Firefox doesn't use GTK+ directly for the UI - they use their own XUL framework. But as I understand it, GTK+ is somehow used internally... I don't know details, but I think it has something to do with platform-native look-and-feel...
    It's basically the same thing QGtkStyle does. They sometimes request icons from the system theme (though that's being phased out for consistency), they query the widget theme for color scheme information, and they delegate to the theme to draw things like buttons and form fields.

    Leave a comment:


  • dkasak
    replied
    Originally posted by Delgarde View Post

    Actually, it's more complicated than that. One, they're partly stuck with GTK+2 because that's essentially part of the plugin ABI... they can't change that, because plugins like Flash will fail if Firefox isn't providing the GTK+2 interfaces (and plugins can't update to GTK+3 because doing so would conflict with the GTK+2 interfaces provided by Firefox... chicken and egg.) Though that problem presumably solves itself once they drop support for NPAPI plugins.

    For the rest of the application, it's odd. Firefox doesn't use GTK+ directly for the UI - they use their own XUL framework. But as I understand it, GTK+ is somehow used internally... I don't know details, but I think it has something to do with platform-native look-and-feel...
    Right. I forgot about Flash. Nasty

    Leave a comment:


  • Delgarde
    replied
    Originally posted by dkasak View Post
    Regarding firefox, I believe they're stuck on 2.x because they need to support distros that haven't moved to gtk 3.x yet. Firefox would hardly use any gtk at all frankly - it only uses gtk+ on Linux, and it doesn't take a lot of thought to realise that this would be for the non-html elements only ( ie navigation buttons ).
    Actually, it's more complicated than that. One, they're partly stuck with GTK+2 because that's essentially part of the plugin ABI... they can't change that, because plugins like Flash will fail if Firefox isn't providing the GTK+2 interfaces (and plugins can't update to GTK+3 because doing so would conflict with the GTK+2 interfaces provided by Firefox... chicken and egg.) Though that problem presumably solves itself once they drop support for NPAPI plugins.

    For the rest of the application, it's odd. Firefox doesn't use GTK+ directly for the UI - they use their own XUL framework. But as I understand it, GTK+ is somehow used internally... I don't know details, but I think it has something to do with platform-native look-and-feel...

    Leave a comment:


  • dkasak
    replied
    The 2-to-3 port for my applications was pretty simple, and I have a bunch of custom widgets, cell renderers, etc. I expect the same when moving to 4. Regarding firefox, I believe they're stuck on 2.x because they need to support distros that haven't moved to gtk 3.x yet. Firefox would hardly use any gtk at all frankly - it only uses gtk+ on Linux, and it doesn't take a lot of thought to realise that this would be for the non-html elements only ( ie navigation buttons ).

    Leave a comment:

Working...
X