Граф коммитов

242 Коммитов

Автор SHA1 Сообщение Дата
Martin Stransky 1f8f77f796 Bug 1530625 - Enable system titlebar on Gnome/X.org sessions due mutter Bug 1530625 and disable titlebar X shape mask on mutter/X.org, r=lsalzman
- Detect current desktop session and disable shape mask on Mutter/X.org due to Bug 1530252 (mutter bug).
- Use system titlebar on Mutter/X.org as we can't draw the titlebar reliably.
- Remove widget.default-hidden-titlebar from prefs. When it's defined it overrides default titlebar detection heuristics now.
- Don't use shape masks at all on Mutter/x.org. When system titlebar is hidden in this case (by user choice) it has opaque corners unless
  argb visual is selected.
- Use Window manager decorations on Gnome Classic session, that works better than client decorations.

Differential Revision: https://phabricator.services.mozilla.com/D21203

--HG--
extra : moz-landing-system : lando
2019-02-26 17:46:15 +00:00
sotaro 1579a88e49 Bug 1527804 - Trigger composite from frame_callback_handler() r=stransky
Bug 1514156 expects that nsWindow::OnExposeEvent() is called after frame_callback_handler() called. But it did not happen during opening add-ons(gecko profiler). Then we need to trigger rendering directly from frame_callback_handler() call.

Differential Revision: https://phabricator.services.mozilla.com/D20272

--HG--
extra : moz-landing-system : lando
2019-02-25 12:15:50 +00:00
Martin Stransky 8222d966e6 Bug 1529713 - [Titlebar] Use Window manager decorations on GNOME again, r=lsalzman
This patch enables the shape mask in CSD and Window manager decorations mode
when we're runnin on composited screen and mozilla.widget.use-argb-visuals is not set.

Also don't use shape mask with Wayland and GL backend. When shape mask is set,
advertise toplevel window transparency but don't advertise it
as alpha to GtkCompositorWidget.

Differential Revision: https://phabricator.services.mozilla.com/D20726

--HG--
extra : moz-landing-system : lando
2019-02-22 14:01:50 +00:00
sotaro 0e2cb6d4e8 Bug 1514156 - Add RenderCompositorEGL for wayland r=nical
When GDK_BACKEND is wayland, widget is not fully mapped during creating CompositorSession. Needs to create valid EGLSurface after widget is fully mapped.

Differential Revision: https://phabricator.services.mozilla.com/D18940
2019-02-12 16:33:31 +09:00
Emilio Cobos Álvarez ef7d8198eb Bug 1520502 - Set the standard cursor and the custom cursor in the same IPC message. r=jmathies
This cleans up a bit and allows us to be smarter about which cursors
should we allow from content or what not, which will help with bug 1445844 and
co.

Differential Revision: https://phabricator.services.mozilla.com/D16711
2019-01-26 07:49:28 +01:00
Martin Stransky 59a8114e76 Bug 1521012 - [Linux/GNOME] Use X shape mask to draw transparent corners when we draw to titlebar, r=lsalzman
To support rounded corners of Gtk+ titlebar themes (Adwaita, Radiance..) in GNOME we need to use X shape mask
as fully transparent toplevel window causes various issues (like Bug 1516224).

We draw mShell as transparent and mContainer as non-transparent with shape mask applied. The shape mask
is generated only when titlebar rendering is enabled and it's generated from GtkHeaderBar Widget
to match the exact look.

We use existing mTransparencyBitmap for the shape mask where mTransparencyBitmapForTitlebar controls
whether it's a general shape mask or our specialised shape for titlebar only.

This is already enabled for GNOME environment by default. So there's a new preference
widget.default-hidden-titlebar added to easily disable it if any issue appears
during testing.

Differential Revision: https://phabricator.services.mozilla.com/D17283

--HG--
extra : moz-landing-system : lando
2019-01-23 12:36:25 +00:00
Cosmin Sabou 7ccc9d8b0b Merge mozilla-inbound to mozilla-central. a=merge 2019-01-19 11:57:49 +02:00
Tim Nguyen 60a5143df0 Bug 1241885 - Implement support for -moz-window-dragging in GTK and remove toolkit toolbar-drag binding. r=dao,bzbarsky,stransky
The restriction preventing fullscreen windows from being dragged is removed.

Differential Revision: https://phabricator.services.mozilla.com/D15075

--HG--
extra : moz-landing-system : lando
2019-01-18 22:42:24 +00:00
Andreea Pavel 95431afe85 Backed out 1 changesets (bug 1241885) for build bustages on a CLOSED TREE
Backed out changeset 176be7000d33 (bug 1241885)
2019-01-18 23:49:55 +02:00
Tim Nguyen 495df7ddea Bug 1241885 - Implement support for -moz-window-dragging in GTK and remove toolkit toolbar-drag binding. r=dao,bzbarsky,stransky
The restriction preventing fullscreen windows from being dragged is removed.

Differential Revision: https://phabricator.services.mozilla.com/D15075

--HG--
extra : moz-landing-system : lando
2019-01-18 16:51:08 +00:00
Martin Stransky 53be695239 Bug 1490344 - [Linux/Gtk] Enable hidden system titlebar by default on Gnome, r=dao
This patch implements -moz-gtk-csd-hide-titlebar-by-default media query
to check if the system titlebar should be disabled by default on Linux systems
(it's already disabled on Window/Mac).

It also removes explicit definition of browser.tabs.drawInTitlebar preference on Linux.
When browser.tabs.drawInTitlebar is missing the -moz-gtk-csd-hide-titlebar-by-default
is used to obtain the titlebar state. When browser.tabs.drawInTitlebar is set
in about:config or by Customize menu, the user peference is used instead of the default.

It also fixes a -moz-gtk-csd-available media query,
it was always true regardless the actual system setting.

Differential Revision: https://phabricator.services.mozilla.com/D16036

--HG--
extra : moz-landing-system : lando
2019-01-17 12:44:49 +00:00
Andreea Pavel d0b4b569af Backed out changeset aa442da7cfd8 (bug 1490344) for failing bc at browser/components/customizableui/test/browser_970511_undo_restore_default.js on a CLOSED TREE 2019-01-16 13:33:24 +02:00
Martin Stransky 0e01fab619 Bug 1490344 - [Linux/Gtk] Enable hidden system titlebar by default on Gnome, r=dao
This patch implements -moz-gtk-csd-hide-titlebar-by-default media query
to check if the system titlebar should be disabled by default on Linux systems
(it's already disabled on Window/Mac).

It also removes explicit definition of browser.tabs.drawInTitlebar preference on Linux.
When browser.tabs.drawInTitlebar is missing the -moz-gtk-csd-hide-titlebar-by-default
is used to obtain the titlebar state. When browser.tabs.drawInTitlebar is set
in about:config or by Customize menu, the user peference is used instead of the default.

It also fixes a -moz-gtk-csd-available media query,
it was always true regardless the actual system setting.

Differential Revision: https://phabricator.services.mozilla.com/D16036

--HG--
extra : moz-landing-system : lando
2019-01-15 14:47:03 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Masayuki Nakano 0eed04a27d Bug 1516326 - part 1: Move implementation of nsWindow::OnKeyPress() and nsWindow::OnKeyRelease() into KeymapWrapper r=karlt
Move all implementation of nsWindow::OnKeyPress() and nsWindow::OnKeyRelease()
into KeymapWrapper because the implementation is a little bit complicated
but not loggable.  When we get bug reports which depend on environment around
IME/key handling like bug 1498823, it's useful to log those methods behavior
too.

Differential Revision: https://phabricator.services.mozilla.com/D15323

--HG--
extra : moz-landing-system : lando
2019-01-07 23:15:33 +00:00
Martin Stransky 1d8979cc73 Bug 1512416 - [Wayland/OpenGL] Resize wl_elg_window when widget scale changes, r=jhorak"
Differential Revision: https://phabricator.services.mozilla.com/D14404

--HG--
extra : moz-landing-system : lando
2018-12-20 11:54:13 +00:00
Dorel Luca d586d50b96 Backed out changeset be2cd52df099 (bug 1512416) for build bustage 2018-12-19 14:24:31 +02:00
Martin Stransky 973fb364ec Bug 1512416 - [Wayland/OpenGL] Resize wl_elg_window when widget scale changes, r=jhorak"
Differential Revision: https://phabricator.services.mozilla.com/D14404

--HG--
extra : moz-landing-system : lando
2018-12-19 08:46:27 +00:00
shindli 1c998613b1 Backed out changeset 61de4550c887 (bug 1512416) for bustages in builds/worker/workspace/build/src/widget/gtk/mozcontainer.cpp:230:15 2018-12-18 15:53:38 +02:00
Martin Stransky 4f8c2372b0 Bug 1512416 - [Wayland/OpenGL] Resize wl_elg_window when widget scale changes, r=jhorak"
Differential Revision: https://phabricator.services.mozilla.com/D14404

--HG--
extra : moz-landing-system : lando
2018-12-18 08:59:18 +00:00
Martin Stransky fcdee6dedb Bug 1491808 - [Linux/CSD/Titlebar] Force toplevel window repaint when titlebar rendering is enabled and its state changes, r=bzbarsky
Titlebar (StyleAppearance::MozWindowTitlebar) style depends on toplevel window focus
and we need to redraw it when toplevel window focus changes.

Unfortunately according to https://gitlab.gnome.org/GNOME/gtk/issues/1395
the toplevel window focus can't be used here as we can have active but unfocused
toplevel window during drag & drop.

Gtk+ controls window active appearance by window-state-event signal
but gecko uses focus-in/out signals, so we need to repaint the titlebar
when window-state-event comes *after* focus-in/out signals.

We can't call mWidgetListener->WindowActivated() (and WindowDeactivated())
as it was already called from focus-in/out handlers before window-state-event.

Depends on D13051

Differential Revision: https://phabricator.services.mozilla.com/D13052

--HG--
extra : moz-landing-system : lando
2018-12-03 12:48:52 +00:00
Martin Stransky 572a588428 Bug 1491808 - Listen on window-state-event to set titlebar active/inactive state, r=jhorak
This is a workaround for https://gitlab.gnome.org/GNOME/gtk/issues/1395
Gtk+ controls window active appearance by window-state-event signal
but gecko uses focus-in/out signals.

So we need to set the the titlebar state
when window-state-event comes *after* focus-in/out signals.

Differential Revision: https://phabricator.services.mozilla.com/D13051

--HG--
extra : moz-landing-system : lando
2018-12-03 12:48:35 +00:00
Tooru Fujisawa 7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Martin Stransky 5cc8e9643b Bug 1506050 - [Linux/Gtk] Use NS_DOCUMENT_STATE_WINDOW_INACTIVE to set titlebar state, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D12104

--HG--
extra : moz-landing-system : lando
2018-11-20 15:51:18 +00:00
Martin Stransky b18cbdec0a Bug 1505743 - [Wayland] Clear Wayland buffer when GtkWindow is mapped. r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D11999

--HG--
extra : moz-landing-system : lando
2018-11-20 15:39:32 +00:00
Mike Hommey 44eab55be8 Bug 1506027 - Remove remaining (now useless) MOZ_WIDGET_GTK >= 3 tests. r=karlt
Those are leftovers from bug 1278282.

Differential Revision: https://phabricator.services.mozilla.com/D11434

--HG--
extra : moz-landing-system : lando
2018-11-09 08:44:42 +00:00
Martin Stransky 5e24fd07f7 Bug 1497534 - Check Gtk backdrop state flag to make Firefox toplevel window look inactive, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D10558

--HG--
extra : moz-landing-system : lando
2018-11-02 10:23:08 +00:00
Martin Stransky 636020d26c Bug 1501944 - Enable to build wayland target on Gtk 3.10, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D10369

--HG--
extra : moz-landing-system : lando
2018-11-01 11:09:40 +00:00
Jan Horak 229b3f0529 Bug 1493081 - Added nsIWidget::GetDesktopToDeviceScaleByScreen for scale factor lookup by window position; r=mattwoodrow
We've added nsIWidget::GetDesktopToDeviceScaleByScreen which will return scale factor of the newly placed window
according to its position on the display. This change is to move implementation to the nsIWidget derived classes.
We need that for GTK Wayland, because on the Wayland we cannot determine absolute position of the window, we
need to use parent's window scale factor. For other platforms the GetDesktopToDeviceScaleByScreen is implemented
in nsBaseWidget.

Differential Revision: https://phabricator.services.mozilla.com/D7290

--HG--
extra : moz-landing-system : lando
2018-10-23 12:49:21 +00:00
Csoregi Natalia f95bae0402 Backed out changeset 9a3a43e8743d (bug 1493081) for bustages on AccessibleWrap.cpp. CLOSED TREE 2018-10-22 12:00:29 +03:00
Jan Horak 9ac0f986e7 Bug 1493081 - Added nsIWidget::GetDesktopToDeviceScaleByScreen for scale factor lookup by window position; r=mattwoodrow
We've added nsIWidget::GetDesktopToDeviceScaleByScreen which will return scale factor of the newly placed window
according to its position on the display. This change is to move implementation to the nsIWidget derived classes.
We need that for GTK Wayland, because on the Wayland we cannot determine absolute position of the window, we
need to use parent's window scale factor. For other platforms the GetDesktopToDeviceScaleByScreen is implemented
in nsBaseWidget.

Differential Revision: https://phabricator.services.mozilla.com/D7290

--HG--
extra : moz-landing-system : lando
2018-10-12 17:03:54 +00:00
Narcis Beleuzu 6f7c4e28a5 Backed out changeset 3bc82182725e (bug 1493081) for android bustages. CLOSED TREE 2018-10-09 15:18:51 +03:00
Jan Horak 697b7b3f5d Bug 1493081 - Added nsIWidget::GetDesktopToDeviceScaleByScreen for scale factor lookup by window position; r=mattwoodrow
We've added nsIWidget::GetDesktopToDeviceScaleByScreen which will return scale factor of the newly placed window
according to its position on the display. This change is to move implementation to the nsIWidget derived classes.
We need that for GTK Wayland, because on the Wayland we cannot determine absolute position of the window, we
need to use parent's window scale factor. For other platforms the GetDesktopToDeviceScaleByScreen is implemented
in nsBaseWidget.

Differential Revision: https://phabricator.services.mozilla.com/D7290

--HG--
extra : moz-landing-system : lando
2018-10-09 11:00:47 +00:00
Martin Stransky 15f23785df Bug 1489097 - [Linux/Gtk] Enable default ARGB visual for toplevel windows on GNOME, r=jhorak
Some Gtk+ themes use non-rectangular toplevel windows. To fully support
such themes we need to make toplevel window transparent with ARGB visual.

It may cause performanance issue so make it configurable
and enable it by default for GNOME right now as it already uses ARGB visual
for widgets.

Also use mozilla.widget.use-argb-visuals to override this.

Differential Revision: https://phabricator.services.mozilla.com/D5754

--HG--
extra : moz-landing-system : lando
2018-09-17 09:56:05 +00:00
Martin Stransky f46e2e428f Bug 1442755 - Redraw titlebar widgets when application focus changes and draw inactive titlebar with GTK_STATE_FLAG_BACKDROP state, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D5582

--HG--
extra : moz-landing-system : lando
2018-09-12 11:03:56 +00:00
Cosmin Sabou 3a76399ecb Backed out changeset 19e2c611e889 (bug 1442755) for wpt reftest failures. CLOSED TREE 2018-09-11 15:11:02 +03:00
Martin Stransky 3d7f73594c Bug 1442755 - Redraw titlebar widgets when application focus changes and draw inactive titlebar with GTK_STATE_FLAG_BACKDROP state, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D5409

--HG--
extra : moz-landing-system : lando
2018-09-11 11:01:26 +00:00
Hiroyuki Ikezoe 61a6f8e3f2 Bug 1478576 - A mochitest for system font change notification. r=froydnj,jimm,karlt
The test case in this patch fails without the proper fix in the first patch
in this patch series.

In this patch two new nsIDOMWindowUtils APIs are introduced to change the
system font settins in tests.  Currently the APIs work only on GTK+ platform.

Also to work the test case properly we need to open a new XUL window because we
don't propagate font changes into descendant documents yet (bug 1478212).

MozReview-Commit-ID: 4OLxEkEuF8d

--HG--
extra : rebase_source : 683e64f07c4d8820e5499d8c15b90975618559b8
2018-08-07 11:58:36 +09:00
Martin Stransky 2866163527 Bug 1478661 - Replace IsComposited() with explicit alpha visual state, r=jhorak
IsComposited() does not reflect Visual selected by GLContextGLX::FindVisual()
which is used by WebRender which leads to shaped window rendering with WebRender.

IsComposited() is replaced by mHasAlphaVisual variable which is explicitly
set when we have an alpha visual and we don't need to use shape X11 extension.

MozReview-Commit-ID: 1kDLwkUyHte

--HG--
extra : rebase_source : 3a60fe8fd66f9e89bfcc729fe5e1fa9e1ce8920d
2018-07-26 13:23:34 +02:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Kartikaya Gupta b81f4d85c3 Bug 1321069 - Redirect the end event of a long-tap sequence back to the content window. r=karlt
In the case of a long-tap touch sequence, a new popup window (the
contextmenu) is spawned while the sequence is ongoing. The touch-end of
the sequence ends up getting delivered to the popup window, instead of
the original content window, and that causes the touch-handling
machinery state in the content window to get out of sync with reality.
This patch detects this scenario and redirects the touch events on the
popup window back to the original content window.

MozReview-Commit-ID: L2vvKLlogRA

--HG--
extra : rebase_source : fd4c36c93e45d05155d415f6470e12979b9a675b
2018-05-30 09:49:23 -04:00
Martin Stransky 9860efbfc8 Bug 1438131 - Implement Drop on Wayland, r=jhorak
This patch implements Drop operation on Wayland/Gtk+. That's because drop operations are part
of clipboard on Wayland and we use our own paste clipboard handler on Wayland (Bug 1282015).

Wayland drop data are provided by wl_data_device_listener, it provides us drag and drop callbacks
which we route to nsDragService module.

MozReview-Commit-ID: 9uGYPg9YF6P

--HG--
extra : rebase_source : 613c079960d5d8522609374ce7e9ad23d5908f3f
2018-04-05 16:16:43 +02:00
Martin Stransky 725fbb83c3 Bug 1456451 - [CSD] Update toplevel GdkWindow property when it's recreated at nsWindow::SetDrawsInTitlebar(), r=jhorak
Implement SetCompositorHint() which sets _NET_WM_BYPASS_COMPOSITOR GtkWindow property when it's recreated
at nsWindow::SetDrawsInTitlebar().

Window role/class is handled by nsWindow::RefreshWindowClass(), it uses stored window class
passed to nsWindow::SetWindowClass().

MozReview-Commit-ID: 1JJsK1ZQyvu

--HG--
extra : rebase_source : 004fe2e379bf1ca2f157ef8df66c5875ab2c135c
2018-05-10 16:38:17 +02:00
Martin Stransky efb19d9d96 Bug 1441665 - [Gtk] Update window offset explicitly when titlebar is disabled in CSD mode, r=jhorak
When system titlebar rendering is disabled and we're in CSD window mode, the window decorations are
rendered by client (application/Gtk) and we don't get _NET_FRAME_EXTENTS property (decoration size) update
for our toplevel window.

So we need to calculate the decoration/shadow size as Gtk+ does, we emulate get_shadow_width()
which is not exported by Gtk+.

MozReview-Commit-ID: K7o2rUPt6Yc

--HG--
extra : rebase_source : 86a3f12e760194b5828afed784f6aa02c352e017
2018-04-24 10:10:16 +02:00
Martin Stransky 705230d4aa Bug 1441873 - [CSD] Remove nsWindow::mIsCSDAvailable and replace with CSDSupportLevel state, r=jhorak
MozReview-Commit-ID: KOiSzNvZfjg

--HG--
extra : rebase_source : 146d55491e600409b73353bc71580eb1237e72f0
2018-03-22 13:22:38 +01:00
Masayuki Nakano 162ea38a55 Bug 1444572 - IMContextWrapper should dispatch fake eKeyDown event during composition if active IM is uim r=m_kato
uim is an old IM which uses key snooper to listen to key events rather than
via filter key event API which should be called by applications.  It's still
used by Debian 9.x, so, we still need to support this.

Unfortunately, we cannot detect if uim actually uses key snooper because it's
switch by build option of uim.  Currently, Debian builds uim as using key
snooper.  So, we should assume uim uses key snooper always.  On the other
hand, somebody *might* use uim built as not using key snooper, so, let's
decide if uim uses key snooper with new pref,
"intl.ime.hack.uim.using_key_snooper", but its default should be true.

Note that ibus and Fcitx also have the mode to use key snooper (perhaps for
backward compatibility with uim).  However, it's not enabled in default
settings and even if it's enabled, Firefox is in whitelist in the default
settings of them for stop using key snooper.  Therefore, we don't need to
support key snooper mode for them unless we'll get some requests to
support their key snooping mode.

MozReview-Commit-ID: 6fTsfKrHzvo

--HG--
extra : rebase_source : 8ddf4541db635246e6bb0ddc73b012c9be001c6d
2018-03-12 15:41:39 +09:00
Dorel Luca b10a3945a4 Backed out changeset e226de7caa88 (bug 1444572) for conflicts while backing out 1443421 2018-03-14 12:28:59 +02:00
Masayuki Nakano d23a5323b4 Bug 1444572 - IMContextWrapper should dispatch fake eKeyDown event during composition if active IM is uim r=m_kato
uim is an old IM which uses key snooper to listen to key events rather than
via filter key event API which should be called by applications.  It's still
used by Debian 9.x, so, we still need to support this.

Unfortunately, we cannot detect if uim actually uses key snooper because it's
switch by build option of uim.  Currently, Debian builds uim as using key
snooper.  So, we should assume uim uses key snooper always.  On the other
hand, somebody *might* use uim built as not using key snooper, so, let's
decide if uim uses key snooper with new pref,
"intl.ime.hack.uim.using_key_snooper", but its default should be true.

Note that ibus and Fcitx also have the mode to use key snooper (perhaps for
backward compatibility with uim).  However, it's not enabled in default
settings and even if it's enabled, Firefox is in whitelist in the default
settings of them for stop using key snooper.  Therefore, we don't need to
support key snooper mode for them unless we'll get some requests to
support their key snooping mode.

MozReview-Commit-ID: 6fTsfKrHzvo

--HG--
extra : rebase_source : 8ddf4541db635246e6bb0ddc73b012c9be001c6d
2018-03-12 15:41:39 +09:00
Masayuki Nakano 896e893f72 Bug 1343451 - part 3-1: Make KeymapWrapper::InitKeyEvent() mark given key event as "processed by IME" if it has been handled by IME r=m_kato
For conforming UI Events spec, KeymapWrapper::InitKeyEvent() should initialize
mKeyCode and mKeyNameIndex with NS_VK_PROCESSKEY and KEY_NAME_INDEX_Process if
given keyboard event has already been handled by IME.

For making it know if given keyboard event has been handled by IME, this patch
adds additional bool argument to it and its callers.

Note that this patch changes keyCode value and key value of "keydown" event if
it's fired before "compositionstart" since Chromium does so on Linux.

MozReview-Commit-ID: FC3tfyeeopU

--HG--
extra : rebase_source : b7e2a70db1fbb4ca7d20379fd1c14f7dc38e656d
2018-02-22 19:52:53 +09:00