Commit Graph

1325 Commits

Author SHA1 Message Date
Tooru Fujisawa
48bb8e02c7 Bug 1424107 - Pass the triggering principal URI across processes in drag-and-drop. r=smaug 2018-02-09 10:43:53 +09:00
Jan Steffens
949517d131 Bug 1435965 - Stub gtk_widget_set_valign in mozgtk2; r=karlt
MozReview-Commit-ID: 4DenCpHmLlK

--HG--
extra : rebase_source : 3e95671acf5b61c98e07fa4a798423bfd9ac18f1
2018-02-06 10:07:07 +01:00
Gurzau Raul
476c3b3a55 Merge inbound to mozilla-central. a=merge 2018-02-06 23:53:56 +02:00
Arthur Edelstein
f54d08d271 Bug 1433357 - Part 2: Suppress upload-file-dialog proxy bypass in Linux r=karlt
--HG--
extra : rebase_source : ee2386e3540f44566ac1f5c21199a817cc55a892
2018-02-02 14:44:00 +02:00
decltype
a67756af6a Bug 1134077 - X11: Set EWMH property to keep top-level nsWindows composited. r=karlt
Some compositors such as GNOME mutter use heuristics to unredirect fullscreen
windows in an effort to reduce output latency. This works fine for applications
that take the proper steps to ensure all framebuffer updates happen in the
vblank interval. Since this is not currently the case for Firefox, bypassing
the compositor will lead to frame tearing.

Set _NET_WM_BYPASS_COMPOSITOR to 2 to opt out of fullscreen unredirection.

MozReview-Commit-ID: 1xW2VAnbiJw

--HG--
extra : rebase_source : 77c4ae490413057d8d9dadf9b155c86ddbbcb4b5
2018-02-02 18:39:37 +01:00
Martin Stransky
fe3d3e4f1e Bug 1435244 - don't call wl_display_roundtrip_queue() with null wl_queue but rather use wl_display_roundtrip(), r=jhorak
MozReview-Commit-ID: BQzAuCFJgBS

--HG--
extra : rebase_source : 1cbcb7e71e56025b35659a7ec3ebe967739bbeec
2018-02-02 14:42:32 +01:00
Martin Stransky
299c2a6d50 Bug 1433863 - Use client titlebar decorations on GNOME Flashback (former fallback) DE, r=jhorak
Also comment existing entries at nsWindow::GetCSDSupportLevel().

MozReview-Commit-ID: 1YzZhv7WrQj

--HG--
extra : rebase_source : c1dd1a3452e13e2479afee3c34d396757dae4cfd
2018-01-29 15:31:59 +01:00
Martin Stransky
98ca29f1fb Bug 1434202 - [Wayland] Set popups as app paintable on Wayland as we paint them ourself there, r=jhorak
MozReview-Commit-ID: 9kpovSmmZss

--HG--
extra : rebase_source : 0a4393b890bf2a499e3a69eba507d0714d13cdd0
2018-01-30 10:36:24 +01:00
Martin Stransky
afa356a144 Bug 1408335 - Render titlebar icons as themed ones, r=jhorak
Render titlebar button icons as a part of -moz-window-button-* appearence. It allows us to
theme the icons accordingly. We add a GtkImage widget to header bar buttons as Gtk+ does and
store icon pixel data there and render it at moz_gtk_header_bar_button_paint() as a part
of the buttons. It means that the toolbar buttons are not containers and
moz_gtk_get_widget_border() returns zero border for them.

Also implement GetToolbarButtonMetrics() per button.

MozReview-Commit-ID: gkAu3VmE3q

--HG--
extra : rebase_source : d1df34537901342969d1e33524b414a2786df541
2018-01-25 11:13:12 +01:00
Martin Stransky
db7fdb4a6d Bug 1433869 - Disable CSD titlebar mode on untested/unknown systems for Release/Beta, r=jhorak
MozReview-Commit-ID: JRF0BAbtkRN

--HG--
extra : rebase_source : 42f68009ca1dafcd71ca9dacb33eeec98e598178
2018-01-29 11:35:31 +01:00
Martin Stransky
e954424179 Bug 1432385 - Use window manager borders on LXQt, r=jhorak
MozReview-Commit-ID: JkyBMBovCIG

--HG--
extra : rebase_source : b993e7d679b8fecbfa1fdf09f4edbb8804a5a7d1
2018-01-25 15:52:06 +01:00
Martin Stransky
6000bcea15 Bug 1431049 - don't crash when keyboard is not present, based on patch by Takuro Ashie. r=jhorak
MozReview-Commit-ID: 4o7P8Dzui22

--HG--
extra : rebase_source : 41406951fe82f357c5a743958b4942e45f1c355a
2018-01-19 10:08:48 +01:00
Martin Stransky
0594ae2db5 Bug 1427999 - Use GetToolbarButtonMetrics() to get correct titlebar button size at nsNativeThemeGTK::GetMinimumWidgetSize, r=jhorak
MozReview-Commit-ID: HfPUk30LaJn

--HG--
extra : rebase_source : ef406e78e686a6ae190a0fbdb9aa945e40503ac6
2018-01-22 12:09:09 +01:00
Martin Stransky
e77fe4bfe2 Bug 1427999 - Implement GetToolbarButtonMetrics() to get titlebar button size and border, r=jhorak
Titlebar button on Gtk+ >= 3.20 can have defined its size as min-width and min-height
and can leave CSS styles border/padding empty. To render the button icon at center we need to
calculate button widget border from gap between icon and button.

This is done by GetToolbarButtonMetrics() which also stores final values to
ToolbarButtonGTKMetrics cache.

MozReview-Commit-ID: 5sMJATWHUNX

--HG--
extra : rebase_source : b0bda7c78106088a819b98c197cbb0cd099e47df
2018-01-22 12:14:13 +01:00
Noemi Erli
a111747a97 Backed out 2 changesets (bug 1431337) for M15 failures in parser/htmlparser/tests/mochitest/test_img_picture_preload.html on a CLOSED TREE
Backed out changeset c70e75e993fc (bug 1431337)
Backed out changeset 016f4ce0803b (bug 1431337)
2018-01-24 18:09:50 +02:00
Jan Horak
e5a072e76a Bug 1431337 Scale widget size to the current monitor, not the first one; r=stransky
We need to use scaling factor of the monitor on which application is actually positioned.
Previously we used ScreenHelperGTK::GetGTKMonitorScaleFactor() which use the first monitor.
This does not work on hidpi+normal dpi monitors setup.

MozReview-Commit-ID: 1dVYOe48tPJ

--HG--
extra : rebase_source : af804d3104da91be459b219b261949d84b4f7c26
2018-01-18 11:52:59 +01:00
Jan Horak
14cc9080e2 Bug 1431337 - Scale font for the actual monitor, not the first one; r=stransky
The GetSystemFontInfo() cannot return scaled value of the font by default monitor
scale factor. We need to scale it in nsLookAndFeel::GetFontImpl
by aDevPixPerCSSPixel like implementation for Windows does.

MozReview-Commit-ID: 5okD8vUu9UK

--HG--
extra : rebase_source : 39f3dec4acd434501860a8b716a42c45aadf3b61
2018-01-18 11:10:18 +01:00
Martin Stransky
0cd098101c Bug 1432414 - Use gtk_get_current_event_time() instead of gdk_x11_display_get_user_time() on Wayland, r=jhorak
Emulate what gtk+/gtkwindow.c gtk_window_present_with_time() does - use gdk_x11_display_get_user_time() on X11
and gtk_get_current_event_time() on Wayland to get event timestamp.

MozReview-Commit-ID: GEU6ZrQxq6v

--HG--
extra : rebase_source : db2f3ac03ae4ec9f9c1655cf682bff60a96dd3da
2018-01-23 11:01:11 +01:00
Martin Stransky
051d31ae00 Bug 1431052 - Don't crash when mContainer is missing (GdkWindow is hidden for instance), r=jhorak
Original patch author is Takuro Ashie.

MozReview-Commit-ID: 9nJmELBxSTA

--HG--
extra : rebase_source : 023b909a2888effaf2c40fa578f2c68ab6f1e0f1
2018-01-18 15:01:30 +01:00
Lee Salzman
a9ae481da3 Bug 1418361 - push GTK window background color rect for WR. r=nical
MozReview-Commit-ID: DUiFHtFGwQF
2018-01-22 08:01:09 -05:00
Hiroyuki Ikezoe
052a0b70ad Bug 1431295 - Include "X11UndefineNone.h" after including gdx.h in nsWindow.h. r=botond
MozReview-Commit-ID: 9SumgYc5pNE

--HG--
extra : rebase_source : 1fa191d22d7c2b5d696aeaff0e6a44dabd59e585
2018-01-18 14:12:51 +09:00
Jan Horak
e55996cc86 Bug 1411579 - add system handler when Firefox runs in flatpak; r=stransky
Firefox in Flatpak sandboxed environment does not get the list
of installed applications on the system because application should
know about the environment as little as possible. Introducing
nsFlatpakHandlerApp which forwards requests for opening downloaded files
to the system by utilizing gtk_show_uri fuction.

This changeset also removes nsIGIOMimeApp::Launch method from the interface
because it can be fully replaced with LaunchWithUri from nsIHandlerApp
interface.

The TMPDIR where files are downloaded when user choose to open them
needs to be accessible from sandbox and host. The default settings
TMPDIR=/tmp is accessible only to the sandbox.

To workaround for is to set TMPDIR environment variable to
$XDG_CACHE_HOME/tmp before executing Firefox.

MozReview-Commit-ID: CSBv0QcETpd

--HG--
extra : rebase_source : 8155c33fa9c402d2668bdfb07094ba6758fe6203
2018-01-12 16:32:53 +01:00
Martin Stransky
86a6393324 Bug 1420818 - For rendering to titlebar make CSD window decorations mode default, enable WM decorations on Elementary OS, r=jhorak
MozReview-Commit-ID: FhF53Z34JS6

--HG--
extra : rebase_source : c3c4dd0700d36b6f58b287195dcb9e1543ce4c3e
2018-01-12 08:41:00 +01:00
Martin Stransky
eadbb73d1e Bug 1430725 - Undefine X11 None at ScreenHelperGTK.h as it conflicts our JS code, r=jhorak
MozReview-Commit-ID: AZr8GuPb8wx

--HG--
extra : rebase_source : 93d85a871f450e425e8dfe352c140195e3eec5c1
2018-01-16 10:09:36 +01:00
Martin Stransky
2f4754864f Bug 1430725 - Include nsClipboardWayland.cpp to wayland build, r=jhorak
MozReview-Commit-ID: 6P6AHs1bWhs

--HG--
extra : rebase_source : 158100293fe265bc961cfb88e62f4d8ac7a8ec1d
2018-01-16 10:08:25 +01:00
Martin Stransky
fc7143cd51 Bug 1430725 - dlsym gdk_wayland_display_get_wl_display() function, r=jhorak
MozReview-Commit-ID: 7TBNP1Q1YyO

--HG--
extra : rebase_source : 6ae7f8dc9359bc57a2173999ffd33e1091b3e818
2018-01-16 10:07:45 +01:00
Martin Stransky
400e666940 Bug 1430725 - Use mozilla::widget namespace explicitly for ScreenHelperGTK::GetGTKMonitorScaleFactor() call, r=jhorak
MozReview-Commit-ID: 9rqYsZTdwRC

--HG--
extra : rebase_source : 14001be1eeec358c9082f2747bea49ed4b52988e
2018-01-16 10:07:03 +01:00
Martin Stransky
ecb1224028 Bug 1430728 - [Wayland] - position wl_subsurface when attached GtkWidget allocation changes, r=jhorak
MozReview-Commit-ID: 1q3XIouxavQ

--HG--
extra : rebase_source : 59fcb138c55fe1250b26c4e1ec120a14c8c4c4ad
2018-01-16 10:26:58 +01:00
Martin Stransky
2b78638c46 Bug 1417933 - enable CSD titlebar rendering mode on Unity desktop, r=jhorak
MozReview-Commit-ID: AWKJWnsrb7i

--HG--
extra : rebase_source : 5408017b0852cdabc42103c9352d6333df60799b
2018-01-09 11:31:40 +01:00
Martin Stransky
31b29e4907 Bug 1417933 - enable CSD titlebar rendering mode as Bug 1424974 regression is fixed, r=jhorak
MozReview-Commit-ID: 7SCjbJr9Arl

--HG--
extra : rebase_source : 0d6f4d24e182eaecd7f6290d800a8e43e0241dc0
2018-01-09 11:27:34 +01:00
Martin Stransky
e3eeda85f0 Bug 1430018 - dlsym gdk_wayland_* routines as those are available at Gtk+ > 3.8, r=jhorak
MozReview-Commit-ID: EUgmc9QNeoI

--HG--
extra : rebase_source : 9be69563a2b6c25eb5e593bee7bdd48e92af0c8c
2018-01-12 13:22:48 +01:00
Martin Stransky
2f65f5a5ab Bug 1430018 - Add namespace mozilla::widget to nsNativeThemeGTK.cpp as it's needed by ScreenHelperGTK, r=jhorak
MozReview-Commit-ID: HG7Zt0LaOU8

--HG--
extra : rebase_source : cf4bf90241461a9cee3352abda93aec9efe3b6ca
2018-01-12 12:40:14 +01:00
Martin Stransky
194159f24b Bug 1430018 - Don't call gdk_flush() from expose event on Wayland as it crashes Gtk+ (Gnome BZ #773307), r=jhorak
MozReview-Commit-ID: EmwcG3VzHYn

--HG--
extra : rebase_source : 145821841dfc40002b1a951f2a2f453714cee9de
2018-01-12 11:07:23 +01:00
Martin Stransky
ff73291729 Bug 1430018 - Don't use gdk_x11_screen_supports_net_wm_hint(_NET_WM_STATE_FULLSCREEN) on Wayland, r=jhorak
MozReview-Commit-ID: 9ZmQhkftunW

--HG--
extra : rebase_source : 12a367ec4663009ab581fa8e55ab24d448eb1b0c
2018-01-12 10:47:36 +01:00
Martin Stransky
a0494bb534 Bug 1430018 - Unify GtkCompositorWidgetInitData() call for X11 and Wayland, r=jhorak
MozReview-Commit-ID: 1sv3X59dMvZ

--HG--
extra : rebase_source : 7dc00f826e05f82fae5bb42752f83a3f28c351bb
2018-01-12 10:43:31 +01:00
Martin Stransky
0581a38578 Bug 1430018 - Add runnable function name to NewRunnableFunction() calls, r=jhorak
MozReview-Commit-ID: CmN0U8WH8De

--HG--
extra : rebase_source : 464c0293c85fd32a1df9ea8d84c0cae540d6a492
2018-01-12 10:33:28 +01:00
Martin Stransky
54fb55b16f Bug 1430018 - Don't use nsWindow::IsX11Display() as it's not implemented, r=jhorak
MozReview-Commit-ID: cR6q3fBhTo

--HG--
extra : rebase_source : ab137c3fe504555155f998b7d7e4332f9f802fae
2018-01-12 10:30:38 +01:00
Martin Stransky
a65c7eb6a0 Bug 1409707 - [Wayland] - provide library shell, r=jhorak
We don't add build-time dependency on Wayland libraries; that allows Wayland enabled Firefox
builds to run on systems without Wayland support.

We also can't dlsym() Wayland symbols directly from libwayland-client.so library as we miss
global data entries referenced by code at wayland-client.h then.

As a partial solution (for glibc systems only) we create dummy libwayland-client.so library
implementation and place it *after* Gtk+ 3.0 libraries at linking time.

It fixes build-time dependencies (we link against our libwayland-client.so library).
Run-time dependency is resolved by ld.so - when Gtk+ 3.0 libraries are linked with
system libwayland-client.so library, wayland symbols are pulled from there instead
from our dummy libwayland-client.so library.

When Gtk+ 3.0 is not linked with system libwayland-client.so it means we're running
on system without Wayland support. Our dummy libwayland-client.so implementation
is used (symbols are pulled run-time from there) and Firefox Wayland support is
disabled then.

MozReview-Commit-ID: IyaePwp4MxV

--HG--
extra : rebase_source : 852955d001657176e0bf69c099580be862d0b448
2017-10-18 14:34:27 +02:00
Chris Peterson
37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Jonathan Watt
f38fde0cc7 Bug 144114 part 3 - Clean up the headers of the nsPrintSettingsService subclasses. r=bobowen
* * *
[mq]: dtor

MozReview-Commit-ID: 8ghrXxeKiHF
2017-12-19 11:05:37 +00:00
Jonathan Watt
f9157dfa53 Bug 144114 part 2 - Rename nsPrintOptions and its subclasses to nsPrintSettingsService*. r=bobowen
MozReview-Commit-ID: HQSmyrMBdS8
2017-12-19 10:42:15 +00:00
Jonathan Watt
94df748ddb Bug 144114 part 1 - Rename the files for nsPrintOptions and its subclasses. r=bobowen
MozReview-Commit-ID: EcotGH6pXCR

--HG--
rename : widget/android/nsPrintOptionsAndroid.cpp => widget/android/nsPrintSettingsServiceAndroid.cpp
rename : widget/android/nsPrintOptionsAndroid.h => widget/android/nsPrintSettingsServiceAndroid.h
rename : widget/cocoa/nsPrintOptionsX.h => widget/cocoa/nsPrintSettingsServiceX.h
rename : widget/cocoa/nsPrintOptionsX.mm => widget/cocoa/nsPrintSettingsServiceX.mm
rename : widget/gtk/nsPrintOptionsGTK.cpp => widget/gtk/nsPrintSettingsServiceGTK.cpp
rename : widget/gtk/nsPrintOptionsGTK.h => widget/gtk/nsPrintSettingsServiceGTK.h
rename : widget/nsPrintOptionsImpl.cpp => widget/nsPrintSettingsService.cpp
rename : widget/nsPrintOptionsImpl.h => widget/nsPrintSettingsService.h
rename : widget/windows/nsPrintOptionsWin.cpp => widget/windows/nsPrintSettingsServiceWin.cpp
rename : widget/windows/nsPrintOptionsWin.h => widget/windows/nsPrintSettingsServiceWin.h
2017-12-19 10:06:39 +00:00
Paolo Amadini
b7e6979a9f Bug 1284391 - Remove ui.allow_platform_file_picker pref on GTK widget. r=karlt
MozReview-Commit-ID: Gdiww1Gbwpk

--HG--
extra : rebase_source : a215c514f75971dc660b0d1f689ec4e8cde826a4
2018-01-11 13:10:28 +00:00
Sylvestre Ledru
424664ff30 Bug 1278282 - Remove the 'MOZ_WIDGET_GTK == 2' defines r=karlt,lsalzman
MozReview-Commit-ID: 3v8D600g8St

--HG--
extra : rebase_source : 34ea6f9868c1b322076c24daa75dc33e27b6704e
2018-01-10 08:52:04 +01:00
Sylvestre Ledru
2c6660f219 Bug 1278282 - Ride along Remove some trailing whitespaces r=lsalzman
MozReview-Commit-ID: 8W6VKIW8PQV

--HG--
extra : rebase_source : 23b5c300dd4bebe2b8808bdb03373073aab80b9f
2017-12-19 11:38:59 +01:00
Sylvestre Ledru
eabcdd21b2 Bug 1278282 - Replace #if (MOZ_WIDGET_GTK == 3) by #ifdef MOZ_WIDGET_GTK r=lsalzman
MozReview-Commit-ID: Bo0m7n078oh

--HG--
extra : rebase_source : 1874ac3e0abca65b821b5d04a6610a5cbb63fe24
2018-01-09 11:51:07 +01:00
Martin Stransky
f6c750837a Bug 1417890 - Install nsClipboard hook at nsWindow init, r=jhorak
MozReview-Commit-ID: GA3USkXtEhe

--HG--
extra : rebase_source : 4dca587977c9d09ee50735931e789620e0099e81
2017-12-18 13:39:00 +01:00
Martin Stransky
38f5ee6fb8 Bug 1417890 - Use nsRetrievalContextWayland for Wayland displays, r=jhorak
MozReview-Commit-ID: 1Z7uUhHPnaq

--HG--
extra : rebase_source : 2a64c910643f4e5f57f1b872a2918e8ebf906cfa
2017-12-18 13:37:46 +01:00
Martin Stransky
36864b87c5 Bug 1417890 - Implement nsRetrievalContextWayland, r=jhorak
MozReview-Commit-ID: 3wrOXg9KRtC

--HG--
extra : rebase_source : ddaa10cdd6ef3242e4c19aa7b1b5c59fde2d4e83
2017-12-18 13:36:12 +01:00
Martin Stransky
f355ee7a5c Bug 1417890 - rename nsRetrievalContext::WaitForClipboardContext() to nsRetrievalContext::GetClipboardData() and implement nsRetrievalContext::ReleaseClipboardData(), r=jhorak
Make the clipboard data getter function more explicitly named and also create a counterpart to release clipboard data.

MozReview-Commit-ID: 3pWsQgCFDuG

--HG--
extra : rebase_source : c4eae554f5a24d998801550ac91b0859ac8e116e
2017-12-18 13:34:38 +01:00
Jonathan Watt
53631ea19f Bug 1425190 - Stop checking for GTK >= 2.24 in the printing code. r=karlt
MozReview-Commit-ID: CEvccM9YzgC
2017-12-08 09:44:17 +00:00
Jonathan Watt
b0ddef10f5 Bug 1425188 - Remove the ability to save as Postscript from the print dialog on Linux. r=karlt
Saving to PDF will now be the only option.

MozReview-Commit-ID: 9WIDws6lByG
2017-12-07 14:52:25 +00:00
Jan Steffens
00146cbcf0 Bug 1427520 - Stub gtk_widget_get_preferred_width/height in mozgtk2; r=karlt
MozReview-Commit-ID: HUMEwgcwioX

--HG--
extra : rebase_source : 8647f8bd01ba774b3c57cab93af1733a069067b2
2018-01-01 06:34:23 +01:00
Emilio Cobos Álvarez
c8eb630ebe Bug 1423990: Move the last few attribute-related methods outside of nsIContent. r=bz
MozReview-Commit-ID: 8JZuS6O8f8W
2017-12-25 17:50:10 +01:00
Emilio Cobos Álvarez
ffdf5d2cb5 Backout changeset e43f568b3e9a (bug 1423990) because some OSX-only code still doesn't build. r=me 2017-12-25 12:55:45 +01:00
Emilio Cobos Álvarez
c0959b2955 Bug 1423990: Move the last few attribute-related methods outside of nsIContent. r=bz
MozReview-Commit-ID: 8JZuS6O8f8W

--HG--
extra : rebase_source : 09b82acb4f3d69e8a4345457ab217443bc28d6e2
2017-12-07 19:13:50 +01:00
Martin Stransky
82e67b3967 Bug 1425841 - Set up nsWindow configuration for Wayland rendering, r=jhorak
nsWindow needs configuration change when rendering on Wayland:

- Always draw to mContainer on Wayland as we can't create custom subsurface for
  mShell GdkWindow and listen events on mContainer then.
- GTK_WINDOW_TOPLEVEL can't be positioned on Wayland so create popup windows
  as GTK_WINDOW_POPUP to control window position on Wayland.
- Create ePopupTypeMenu GdkWindow as GDK_WINDOW_TYPE_HINT_UTILITY instead of
  GDK_WINDOW_TYPE_HINT_POPUP_MENU to create it as subsurface (Bug 1423598).
- Don't do pointer grab on Wayland (see Bug 1377084 for reference).

MozReview-Commit-ID: 6InzhTONtrD

--HG--
extra : rebase_source : 356112c2e8f80569ca4b2e41fa0747d71da21d89
2017-12-18 16:41:28 +01:00
Martin Stransky
7b19c8a8bf Bug 1425841 - Don't install popup_take_focus_filter on Wayland as it's X11 only, r=jhorak
MozReview-Commit-ID: DSzcmjwwrgw

--HG--
extra : rebase_source : de8c24c27db75512adedde8be5ad3bc48be1cc6d
2017-12-18 16:08:28 +01:00
Martin Stransky
42c9e879ff Bug 1425841 - Handle NS_NATIVE_DISPLAY/NS_NATIVE_SHAREABLE_WINDOW request on Wayland, r=jhorak
MozReview-Commit-ID: JijzpSuqVj3

--HG--
extra : rebase_source : a30714f775fbe11d06cbb5f8eb890dc36a7127aa
2017-12-18 16:06:47 +01:00
Martin Stransky
c1435cf451 Bug 1425841 - Implement GetWaylandDisplay() and GetWaylandSurface() needed by WindowSurfaceWayland, r=jhorak
MozReview-Commit-ID: Hlo1ceAIrL2

--HG--
extra : rebase_source : 3c3a5f4dc1dd8360a19c8160a85da5a5f6de3cac
2017-12-18 15:53:50 +01:00
Martin Stransky
5536f6f4ab Bug 1425841 - don't call gdk_x11_window_get_xid() at LOG() on Wayland, r=jhorak
MozReview-Commit-ID: BzIzqE2I3Si

--HG--
extra : rebase_source : c50ea8434ba9755a84ca449e72b9286929129f4a
2017-12-18 15:50:57 +01:00
Martin Stransky
da41393bd7 Bug 1425842 - Rename X11CompositorWidget to GtkCompositorWidget and implement WindowSurfaceWayland support, r=jhorak
- Rename X11CompositorWidget to GtkCompositorWidget to handle both X11 and Wayland backends.
- Rename X11CompositorWidgetInitData to GtkCompositorWidgetInitData
- Implement Wayland support at WindowSurfaceProvider, WindowSurfaceProvider::CreateWindowSurface()
  is able to create WindowSurfaceWayland.
- Initialize Wayland surface provider at nsWindow::Create()

MozReview-Commit-ID: 1WvR9nWHa3L

--HG--
rename : widget/gtk/X11CompositorWidget.cpp => widget/gtk/GtkCompositorWidget.cpp
rename : widget/gtk/X11CompositorWidget.h => widget/gtk/GtkCompositorWidget.h
rename : widget/gtk/InProcessX11CompositorWidget.cpp => widget/gtk/InProcessGtkCompositorWidget.cpp
rename : widget/gtk/InProcessX11CompositorWidget.h => widget/gtk/InProcessGtkCompositorWidget.h
extra : rebase_source : d54186515b066b957d8ad05bb5540db55f2e9415
2017-12-18 20:20:02 +01:00
Martin Stransky
72aad592e6 Bug 1426351 - WindowSurfaceWayland - delete WaylandDisplay owned by compositor thread at compositor thread, r=jhorak
MozReview-Commit-ID: 6jtdXuiTj1F

--HG--
extra : rebase_source : cc072ac276956e2f8299dcfef3934dc16dbfbeda
2017-12-20 14:18:18 +01:00
Martin Stransky
d64000898e Bug 1426377 - Assert when aImageDataSize is bigger than allocated pool size, r=jhorak
MozReview-Commit-ID: DSMb5W2bGd0

--HG--
extra : rebase_source : fa61d69b9ba0c8b353e4bc339460c163e194f9bc
2017-12-20 15:47:08 +01:00
Martin Stransky
3510d3872f Bug 1426384 - Don't use CSD_SUPPORT_FULL on Wayland unless it's overriden by MOZ_GTK_TITLEBAR_DECORATION, r=jhorak
Wayland compositors do not support GDK_DECOR_BORDER so use CSD decorations exclusively.

MozReview-Commit-ID: 8gzDcw2AumI

--HG--
extra : rebase_source : 4d319155d220420a768de619e7043dd56f6ee667
2017-12-20 16:32:51 +01:00
Martin Stransky
3f9d6ff25b Bug 1426384 - call gdk_window_set_decorations() on mShell GdkWindow only, r=jhorak
To have any effect we need to call gdk_window_set_decorations() on top-level GdkWindow only.
When rendering to mContainer the mGdkWindow belongs to mContainer so we need to get the window
from mShell explicitly.

MozReview-Commit-ID: KLKlVJbgg3

--HG--
extra : rebase_source : c17310949e067dca540bf269f12db135e6582ebc
2017-12-20 16:31:13 +01:00
Martin Stransky
b07ea64a0d Bug 1424974 - Honor mShell as top-level window, r=jhorak
When drawing to mContainer we still need to honor mShell as top-level window.
It means we have to listen property-notify-event there (as it's window specific),
get _NET_FRAME_EXTENTS here and use at nsWindow::SetWindowClass().

MozReview-Commit-ID: HYbNS0Lfyjy

--HG--
extra : rebase_source : f03cb4657a36238fd93b47b94ace48a325648296
2017-12-20 11:10:36 +01:00
Martin Stransky
ed49bfcfee Bug 1425820 - build fix of SetImageDataFromBackBuffer definition/call, r=jhorak
MozReview-Commit-ID: 7NJMCdhd400

--HG--
extra : rebase_source : bd72e00090af03c285cdd16b0a05106c3fd7e6c6
2017-12-18 11:53:30 +01:00
Martin Stransky
d3bcca0b14 Bug 1422966 - Implement SurfaceWayland for Wayland, r=jhorak
WindowSurfaceWayland is Wayland implementation of WindowSurface class.
One WindowSurfaceWayland object manages drawing of one nsWindow so
those are tied 1:1. It implements base Lock() and Commit() interfaces
from WindowSurface. At Wayland side it represents one wl_surface object.

To perform visualiation of nsWindow, WindowSurfaceWayland contains
one wl_surface and two wl_buffer (by WindowBackBuffer) objects
(as we use double buffering). When nsWindow drawing is finished to
wl_buffer, the wl_buffer is attached to wl_surface and it's sent to
Wayland compositor.

MozReview-Commit-ID: 9NoamtF87e6

--HG--
extra : rebase_source : e942b28f1eaa4b1c24c6c4df6894db8d3d789e7e
2017-12-04 22:29:08 +01:00
Martin Stransky
8ca9561e71 Bug 1422966 - implemented WindowBackBuffer to encapsulate wl_buffer, r=jhorak
wl_buffer is a main Wayland object with graphics data. wl_buffer basically represent one complete window screen.
When double buffering is involved every window (GdkWindow in our case) utilises two wl_buffers which are cycled.
One is filed with data by application and one is rendered by compositor.

WindowBackBuffer class manages one wl_buffer. It owns wl_buffer object, owns WaylandShmPool (which provides shared memory)
and ties them together.

MozReview-Commit-ID: v8Hlezo7oD

--HG--
extra : rebase_source : 40bffbbae2ee0c8f67d442ee2c5a62be43fafb44
2017-12-04 22:25:26 +01:00
Martin Stransky
b12d4609e7 Bug 1422966 - implement WaylandShmPool to manage shared memory for wl_buffer, r=jhorak
We allocate shared memory (shm) by mmap(..., MAP_SHARED,...) as an interface between wayland based application
and wayland compositor. We draw our graphics data to the shm and handle to wayland compositor by wl_buffer/wl_surface.

WaylandShmPool acts as a manager of the allocated memory. Allocates it, holds reference to it and releases it.

MozReview-Commit-ID: CY6oEIl4Vxa

--HG--
extra : rebase_source : c43da8728e11e133cb021b1832382c1a39695a1a
2017-12-04 22:22:04 +01:00
Martin Stransky
8431e12fba Bug 1422966 - Update mDisplay attribute initialization at nsWaylandDisplay::nsWaylandDisplay(), r=jhorak
MozReview-Commit-ID: GQrCtvKDjfF

--HG--
extra : rebase_source : 99ba7a2b843dc3600e046ddbb34c1d6446abcb57
2017-12-04 22:31:23 +01:00
Martin Stransky
ee30a32467 Bug 1422966 - Comment Wayland rendering scheme, r=jhorak
MozReview-Commit-ID: 7ZV97xcRskV

--HG--
extra : rebase_source : c559433f18e60e782966660336576e7974da73a6
2017-12-05 10:12:37 +01:00
Martin Stransky
2a63de4110 Bug 1424661 - refactor ncClipboard::GetData(), allocate all memory by moz_xmalloc() and release by free(), r=jhorak
Refactor ncClipboard::GetData() for better readability, add nsClipboard::SetTransferableData()
to send clipboard data to nsITransferable.

According to Gtk people [1] we can't mix free()/g_free() and malloc()/g_malloc() calls.
Existing nsClipboard code mixes that on some places which can lead to issued on glib built
with specific flags (ENABLE_MEM_PROFILE or ENABLE_MEM_CHECK).

[1] https://mail.gnome.org/archives/gtk-list/2000-July/msg00002.html

MozReview-Commit-ID: GvkUGSttVGO

--HG--
extra : rebase_source : 99801e1dc97e24a8d68fe7f3585562bb541c6628
2017-12-11 11:59:57 +01:00
Martin Stransky
8e9792e4d7 Bug 1424926 - does not apply CSS padding to header bar buttons, r=dao
MozReview-Commit-ID: Hq86waEx1sg

--HG--
extra : rebase_source : 13b5c32d153603edd66082a9c298485cf119ddc9
2017-12-13 11:02:51 +01:00
Martin Stransky
3c3f7c4ce9 Bug 1423810 - Temporary disable CSD decoration as it breaks popup windows, r=jhorak
MozReview-Commit-ID: DCdbxvnfV9B

--HG--
extra : rebase_source : acd8f632d9a9e3a21f777d1520037497dff3bc54
2017-12-11 22:26:55 +01:00
Martin Stransky
5824a507e6 Bug 1423869 - don't draw to mContainer when decorations are rendered by window manager, r=jhorak
Bug 1421974 introduced new mechanism to hide system titlebar by enabling client-side decorations for main Firefox window. It also causes a regression when the CSD window setup is enabled when system titlebar is hidden by window manager.

This patch fixes that and enables the CSD window setup only for case when it's actualy used.

MozReview-Commit-ID: AqfHR2bGr3K

--HG--
extra : rebase_source : 625366530922872af82e182db10f5069ebfa7dc4
2017-12-11 11:07:48 +01:00
Martin Stransky
e17f64f2b6 Bug 1423869 - force CSD_SUPPORT_NONE when XDG_CURRENT_DESKTOP is not set, r=jhorak
MozReview-Commit-ID: A4dz6ywrCsf

--HG--
extra : rebase_source : 3f3d99e9741e33e7fdd6bb69c2bc82f9b469c897
2017-12-11 11:05:27 +01:00
Martin Stransky
b3c7669367 Bug 1417874 - Split clipboard implementation to shared (nsClipboard) and backend specific (nsClipboardX11) parts, r=jhorak
MozReview-Commit-ID: 5IebGayJl1

--HG--
extra : rebase_source : 7009a0f5a668895930280fc4426baa22abdc499c
2017-11-16 14:00:00 +01:00
Bogdan Tara
e15c276db2 Backed out 1 changesets (bug 1423869)for causing frequent Linux chrome failure in toolkit/content/tests/chrome/test_chromemargin.xul r=backout on a CLOSED TREE
Backed out changeset 4960f30d91b2 (bug 1423869)
2017-12-07 19:58:24 +02:00
Bogdan Tara
9cee3dc42a Backed out 1 changesets (bug 1417874) for causing frequent Linux chrome failure in toolkit/content/tests/chrome/test_chromemargin.xul r=backout on a CLOSED TREE
Backed out changeset b35e86822732 (bug 1417874)
2017-12-07 19:55:49 +02:00
Martin Stransky
1c02893dc9 Bug 1423869 - don't draw to mContainer when decorations are rendered by window manager, r=jhorak
Bug 1421974 introduced new mechanism to hide system titlebar by enabling client-side decorations for main Firefox window. It also causes a regression when the CSD window setup is enabled when system titlebar is hidden by window manager.

This patch fixes that and enables the CSD window setup only for case when it's actualy used.

MozReview-Commit-ID: 6OzoPyxlhCp

--HG--
extra : rebase_source : 9bcfc96cd27cb088f8d9671780304c2ac3772fdf
2017-12-07 15:20:48 +01:00
Martin Stransky
53c4e3f117 Bug 1417874 - Split clipboard implementation to shared (nsClipboard) and backend specific (nsClipboardX11) parts, r=jhorak
MozReview-Commit-ID: 5IebGayJl1

--HG--
extra : rebase_source : 7009a0f5a668895930280fc4426baa22abdc499c
2017-11-16 14:00:00 +01:00
Martin Stransky
c960be3742 Bug 1421974 - use gtk_window_set_titlebar() to hide titlebar on WM where GDK_DECOR_BORDER does not work, r=jhorak
This patch is based on Karl Tomlinson's (:karlt) demo from Bug 1419456. We use gtk_window_set_titlebar()
to set invisible widget. The widget takes place of GtkHeaderBar which leads Gtk+ to render CSD shadows
and handle window resizing, it does not render any titlebar.

gtk_window_set_titlebar() works on unrealized windows only and mShell is already realized at time
of nsWindow::SetDrawsInTitlebar() call so we need to update recent GtkWidget setup.

In that case we create GdkWindow for mContainer (instead of mShell), create a temporary GtkWindow,
reparent mContainer (which owns mGdkWindow) to it, unrealize mShell and set up the titlebar
for mShell toplevel window.

As a workaround for Gtk+ Bug 791081 we also allocate some valid size for mShell before it's newly realized
with the updated titlebar.

MozReview-Commit-ID: A3KwRoOzoko

--HG--
extra : rebase_source : ded644762d3be9e79e3d407f57b2f9098021fb96
2017-12-01 15:22:48 +01:00
Martin Stransky
034109dd85 Bug 1421974 - refactor nsWindow::HideWindowChrome() to nsWindow::SetWindowDecoration() and share it with nsWindow::SetDrawsInTitlebar, r=jhorak
MozReview-Commit-ID: 3xEdMXq9JvJ

--HG--
extra : rebase_source : 20a981ec562388337f826cbfcc5cdd5a4c6c37a8
2017-12-01 15:09:11 +01:00
Martin Stransky
51d1404cde Bug 1420820 - Added MOZ_GTK_TITLEBAR_DECORATION to override window manager detection and set window decoration type, r=jhorak
Enables override window manager default with those values:

MOZ_GTK_TITLEBAR_DECORATION=none - Firefox does not mess with decoration
MOZ_GTK_TITLEBAR_DECORATION=client - Firefox tries to disable titlebar rendering and draws shadows by client side decorations.
MOZ_GTK_TITLEBAR_DECORATION=system - Firefox tries to disable titlebar rendering and leave system (window manager) to draw window decorations.

MozReview-Commit-ID: G60QS3g1TD0

--HG--
extra : rebase_source : fd7b5d2b0282fbd54046947d210b1288a0610a23
2017-12-04 15:19:00 +01:00
Martin Stransky
91251dce14 Bug 1281425 - Implement wayland loop to process wl_display events for threads and bind wl_registry for wl_shm, r=jhorak
MozReview-Commit-ID: 1pS1wfOiOo4

--HG--
extra : rebase_source : cde165f1b79625eb807035ac01d50c53cff90bfc
2017-11-02 17:08:33 +01:00
Martin Stransky
a6e8113393 Bug 1281425 - Added nsWaylandDisplay class to support access to Wayland display, r=jhorak
MozReview-Commit-ID: 6IU5hS15MmM

--HG--
extra : rebase_source : a4f8b13d2a95dbdeff315e1aea087712daece4fd
2017-10-26 20:19:36 +02:00
Martin Stransky
28829e9356 Bug 1419460 - search XDG_CURRENT_DESKTOP for desktop environment type substring, r=jhorak
We need apply various titlebar/border configuration which is based on active
window manager and desktop type. The XDG_CURRENT_DESKTOP shell variable contains active
desktop environment which we use at GetCSDSupportLevel().

Unfortunately Ubuntu adds "ubuntu:" prefix at XDG_CURRENT_DESKTOP so we can't do
plain string compare but rather search for DE substring at GetCSDSupportLevel().

MozReview-Commit-ID: GmAZ30p47eI

--HG--
extra : rebase_source : eeef51e7326bb8be6418554b07ce5791e988f02f
2017-11-23 14:01:35 +01:00
Dorel Luca
79499f4044 Merge mozilla-central to autoland r=merge on a CLOSED TREE 2017-11-29 12:31:25 +02:00
Martin Stransky
f9a10ab56d Bug 1420110 - remove browser.tabs.drawInTitlebar check from nsLookAndFeel, r=jhorak
The browser.tabs.drawInTitlebar check at nsLookAndFeel is redundant, breaks Thunderbird and dynamic titlebar rendering change. Let's use browser.tabs.drawInTitlebar at browser level and when enabled configure titlebar visibility by moz_gtk* media atoms.

MozReview-Commit-ID: IhCYmXgVME7

--HG--
extra : rebase_source : 6f152e5c3d7d5abbb134c9f5adcb76fd6ed335cb
2017-11-23 21:00:12 +01:00
Bob Owen
0160e22eae Bug 1420171 Part 2: Remove some unused members from nsDeviceContextSpecG. r=karlt 2017-11-28 08:58:58 +00:00
Bob Owen
546d657b09 Bug 1420171 Part 1: Only default the print-to file name on Linux if not already set. r=karlt
This allows the web extension saveAsPDF function to work properly.
2017-11-28 08:58:43 +00:00
lochang
e889dbe685 Bug 1417751 - Implement a new value inner-spin-button to -moz-appearance on all platforms except Android. r=mats
MozReview-Commit-ID: 7jpLCOWZA2x

--HG--
extra : rebase_source : d2a4d160d26e6f6996ed1cb3a673576236b8ef23
2017-11-29 10:43:13 +08:00
Cosmin Sabou
7d7b59dd0b Backed out changeset 423f4e43a975 (bug 1417751) for xpcshell failures at devtools/shared/tests/unit/test_css-properties-db.js r=backout on a CLOSED TREE 2017-11-28 13:50:59 +02:00
lochang
416f319bb8 Bug 1417751 - Implement a new value inner-spin-button to -moz-appearance on all platforms except Android. r=mats
MozReview-Commit-ID: 3I1LBLbCfmF

--HG--
extra : rebase_source : f9a356d592eac90d91a59de0c7ab0ded6ab80ab2
2017-11-28 10:39:50 +08:00
Martin Stransky
7916b9afd7 Bug 1419456 - Disable full CSD support for XFCE as it does not support GDK_DECOR_BORDER, r=jhorak
MozReview-Commit-ID: BFOgxJ3abrT

--HG--
extra : rebase_source : f17d0a8d1e64b09aa02f7c0b314980db0eacee84
2017-11-21 20:03:21 +01:00
Martin Stransky
26d40cc144 Bug 1418829 - Add MATE entry to GetCSDSupportLevel(), use GDK_DECOR_BORDER with CSD_SUPPORT_FULL only, r=jhorak
Adding MATE as FLAT as it does not support the shadow borders around the window.

GDK_DECOR_BORDER decoration mode means that the window manager renders borders around the window.
We want the border rendering for CSD_SUPPORT_FULL only which means the border looks like shadows. We don't wand WM to render solid/bold borders around main toplevel window.

MozReview-Commit-ID: BdwHi0LJRGC

--HG--
extra : rebase_source : 7b7d6733e62ae3188fe6cdeecca17de05b3d6873
2017-11-20 14:30:57 +01:00
Martin Stransky
7c5df586c4 Bug 1418829 - nsLookAndFeel enables rendering to the titlebar for supported window managers only, r=jhorak
MozReview-Commit-ID: JvqQuZenkWy

--HG--
extra : rebase_source : 11047d6bb3b85cd73aae7a8da9ac8124b2b9a5e7
2017-11-20 14:29:49 +01:00
Martin Stransky
5b47065c12 Bug 1418829 - Export GetCSDSupportLevel() as public from nsWindow, r=jhorak
We need that for nsLookAndFeel module.

MozReview-Commit-ID: 61YKeAUoKEu

--HG--
extra : rebase_source : 3587d39005fe8e6a63b527f55f377182bf1c69bd
2017-11-20 14:28:29 +01:00