Automatically generated path that adds flag `REQUIRES_UNIFIED_BUILD = True` to `moz.build`
when the module governed by the build config file is not buildable outside on the unified environment.
This needs to be done in order to have a hybrid build system that adds the possibility of combing
unified build components with ones that are built outside of the unified eco system.
Differential Revision: https://phabricator.services.mozilla.com/D122345
It is only used by the GTK backend, supports Wayland as well and
is highly unlikely to be reused by another backend.
This is also better in line with how this is handled for other
platforms.
While on it, do some small cleanups.
Depends on D114423
Differential Revision: https://phabricator.services.mozilla.com/D114424
It's only used by the GTK backend and all other users are located
there as well. Further more, it's unlikely that the will ever be
another X11 backend or that these classes will get reused elsewhere.
So in order to keep changes to `WindowSurface` out of the common
widget space, move it into `gtk`.
While on it, also clean up the affected moz.build files a bit
by making orders more consistent. No functional changes intended.
Differential Revision: https://phabricator.services.mozilla.com/D114422
NativeMenuMac implements a new mozilla::widget::NativeMenu interface.
This interface is intended to be used by cross-platform C++ code.
nsStandaloneNativeMenu is now only used to implement the IDL interface (which
is used from JavaScript code), and C++ code can use NativeMenu with its more
ergonomic C++ interface.
Differential Revision: https://phabricator.services.mozilla.com/D109173
And re-enable the RemoteLookAndFeel by default with Gtk.
When the RemoteLookAndFeel is enabled and the non-native theme is not
enabled, we still need to configure the Gtk theme in content processes,
since we're still using Gtk to paint widget backgrounds etc. Without
this, we can end up using LookAndFeel colors from a light theme but
painting widget backgrounds from a dark theme.
Other platforms don't configure themes for content processes
differently, so on those platforms LookAndFeelTheme is an empty struct
and we skip the ConfigureTheme call.
Differential Revision: https://phabricator.services.mozilla.com/D100223
This adds a new LookAndFeel implementation, RemoteLookAndFeel, which can
be used in content processes and is supplied with all of its values by the
parent process.
Co-authored-by: Cameron McCormack <cam@mcc.id.au>
Differential Revision: https://phabricator.services.mozilla.com/D97977
Aside from automating boilerplate, this will allow reusing some of these
structs for full LookAndFeel remoting in bug 1470983.
Differential Revision: https://phabricator.services.mozilla.com/D94531
The IPDL compiler searches for files in an include path made up of every
directory with any `IPDL_SOURCES` in it, which means that distinct files
shouldn't have the same name or, failing that, need to be set up so they
won't accidentally conflict. See bug 1657712 for details.
In `widget/`, the PCompositorWidget and PlatformWidgetTypes files are
overridden on some OSes; this patch moves the general-case versions into
their own directory, so that it's possible to use the widget/ toplevel
directory for non-platform-specific IPDL without causing a filename
conflict.
Differential Revision: https://phabricator.services.mozilla.com/D94530
This should make the optimization landed earlier in this bug apply for
some of the NotifyThemeChanged() calls in nsWindow.cpp which are causing
all the extra invalidations.
If we know that system colors/fonts didn't change, we can avoid doing a
bunch of reflow work and the patch from earlier in the bug can avoid
re-rasterizing images too.
Differential Revision: https://phabricator.services.mozilla.com/D94425
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.
To produce this patch I did all of the following:
1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.
2. Run ./mach lint --linter black --fix
3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.
4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.
5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).
# ignore-this-changeset
Differential Revision: https://phabricator.services.mozilla.com/D94045
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.
To produce this patch I did all of the following:
1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.
2. Run ./mach lint --linter black --fix
3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.
4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.
5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).
# ignore-this-changeset
Differential Revision: https://phabricator.services.mozilla.com/D94045
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.
To produce this patch I did all of the following:
1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.
2. Run ./mach lint --linter black --fix
3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.
4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).
# ignore-this-changeset
Differential Revision: https://phabricator.services.mozilla.com/D94045
In this patch, I've tried to abstract out all of the platform-specific parts
of what was the nsIconLoaderService into something generic enough to be used
across multiple platforms. I also renamed it and namespaced it to
mozilla::widget::IconLoader.
Depends on D89788
Differential Revision: https://phabricator.services.mozilla.com/D89972
This basic implementation uses the application icon for the icon that goes
into the system tray for now. A later patch in this series will change that
icon to one defined within the associated <xul:menu> element's styles.
Differential Revision: https://phabricator.services.mozilla.com/D89787
In this patch, I've tried to abstract out all of the platform-specific parts
of what was the nsIconLoaderService into something generic enough to be used
across multiple platforms. I also renamed it and namespaced it to
mozilla::widget::IconLoader.
Depends on D89788
Differential Revision: https://phabricator.services.mozilla.com/D89972
This basic implementation uses the application icon for the icon that goes
into the system tray for now. A later patch in this series will change that
icon to one defined within the associated <xul:menu> element's styles.
Differential Revision: https://phabricator.services.mozilla.com/D89787
In this patch, I've tried to abstract out all of the platform-specific parts
of what was the nsIconLoaderService into something generic enough to be used
across multiple platforms. I also renamed it and namespaced it to
mozilla::widget::IconLoader.
Depends on D89788
Differential Revision: https://phabricator.services.mozilla.com/D89972
This basic implementation uses the application icon for the icon that goes
into the system tray for now. A later patch in this series will change that
icon to one defined within the associated <xul:menu> element's styles.
Differential Revision: https://phabricator.services.mozilla.com/D89787
Now that we share the list code between GTK and Mac, there's no reason
for this. This also avoids work when getting the default printer name.
Differential Revision: https://phabricator.services.mozilla.com/D86345
Now that we share the list code between GTK and Mac, there's no reason
for this. This also avoids work when getting the default printer name.
Differential Revision: https://phabricator.services.mozilla.com/D86345
This is no worse than what we were doing.
In the future, instead of just querying the margin we may want to query
extra information that requires a DC in windows too or what not, for
example.
Differential Revision: https://phabricator.services.mozilla.com/D85919
This builds on top of bug 1656146 to compute the page information on a
background task, and return it via a promise.
Co-Authored-By: Erik Nordin <enordin@mozilla.com>
Differential Revision: https://phabricator.services.mozilla.com/D85865