Commit Graph

23061 Commits

Author SHA1 Message Date
cku
d70af3d034 Bug 1399787 - Part 9. Sandbox the PDFium process. r=bobowen,jwatt
MozReview-Commit-ID: 6ED7EPZvOMR

--HG--
extra : rebase_source : 60e6d103573436d923f8b2b00c70cb2a4a7986df
extra : intermediate-source : d90c5064d88a6468c1209f4a78ec7631592eec98
extra : source : 91b761e38efd28a69647c38531f5418fffee8f50
2017-10-18 20:52:45 +08:00
cku
ac4237baad Bug 1399787 - Part 8. Open PDFium protocol channel. r=jwatt
MozReview-Commit-ID: F9W9ykEtVmK

--HG--
extra : rebase_source : 0e70f37b508cbe61f31ba04e662a8833fd4fec18
extra : intermediate-source : f9ef88f9ddc9ddb114633075472f5a20985d8c39
extra : source : 63e98299090e4fb98c2fb50aa9eaac35f35ca232
2017-10-17 12:48:30 +08:00
cku
b203ed0d71 Bug 1399787 - Part 7. Have PrintTargetEMF launch the PDFium process. r=jwatt
MozReview-Commit-ID: CVfB81ifV2p

--HG--
extra : rebase_source : fab6e106934a657f05538891ebf0c1d3043a2b33
2017-11-29 17:15:31 +08:00
cku
100d27aa36 Bug 1399787 - Part 8. Open PDFium protocol channel. r=jwatt
MozReview-Commit-ID: F9W9ykEtVmK

--HG--
extra : rebase_source : aad0b03045f15905aea8d2317eae5020171f403b
extra : intermediate-source : f9ef88f9ddc9ddb114633075472f5a20985d8c39
extra : source : 63e98299090e4fb98c2fb50aa9eaac35f35ca232
2017-10-17 12:48:30 +08:00
cku
6fc6c63d6d Bug 1399787 - Part 7. Have PrintTargetEMF launch the PDFium process. r=jwatt
MozReview-Commit-ID: CVfB81ifV2p

--HG--
extra : rebase_source : 64aae1ffdd9a6dc109192a28e0350b72aa0e54b2
2017-11-29 17:15:31 +08:00
cku
81ea1e297c Bug 1399787 - Part 5. Implement the PDFium process. r=jwatt
MozReview-Commit-ID: 502jB9DAeIC

--HG--
extra : rebase_source : 1e72415c5e2b02c3a53d4734182319af2aa5718a
extra : intermediate-source : 695dfd5232f9e3ca08205fbc99cc5cbbe8737b12
extra : source : 2903a56630965e02602ff4aa3e38c51207b6fa15
2017-10-16 16:22:07 +08:00
cku
bff3b1ab99 Bug 1399787 - Part 4. Take out the code we landed in bug 1370488. r=jwatt
To move EMF conversion job to a dedicated process, I will implement a new
PrintTarget subclass, named PrintTargetEMF, to coordinate tasks among the
content process, chrome process and PDFium process. All the code that we
change in nsDeviceContextSpecWin is no longer needed.

MozReview-Commit-ID: GgKZoB92WYE

--HG--
extra : rebase_source : 4b1999bd83306dce162f76bd5e46015113a52e2b
2017-11-05 00:53:05 +08:00
cku
f237af17a1 Bug 1399787 - Part 5. Implement the PDFium process. r=jwatt
MozReview-Commit-ID: 502jB9DAeIC

--HG--
extra : rebase_source : f5521bd85370a6726380c36ea90d4c5a4edf403f
extra : intermediate-source : 695dfd5232f9e3ca08205fbc99cc5cbbe8737b12
extra : source : 2903a56630965e02602ff4aa3e38c51207b6fa15
2017-10-16 16:22:07 +08:00
cku
764be8763e Bug 1399787 - Part 4. Take out the code we landed in bug 1370488. r=jwatt
To move EMF conversion job to a dedicated process, I will implement a new
PrintTarget subclass, named PrintTargetEMF, to coordinate tasks among the
content process, chrome process and PDFium process. All the code that we
change in nsDeviceContextSpecWin is no longer needed.

MozReview-Commit-ID: GgKZoB92WYE

--HG--
extra : rebase_source : 16c3a3e730bd2395f98b558962ec8d0a5723198b
2017-11-05 00:53:05 +08:00
cku
30d58f2b98 Bug 1399787 - Part 3. Create a top level protocol for the PDFium process. r=jwatt
Define ipdl and actor classes. Implementation of actors is added in subsequent
patches.

Control flow:
1. A user starts a printing job.
2. We create a PrintTarget to print web content page by page.
3. When printing pages:
   a. PrintTarget, who lives in the chrome process, create a new FileDescriptor
      and pass that FD to the content process.
   b. The content process renders page contents into the given FD.
   c. PrintTarget render that FD, which contains only one page, into a PDF
      file.
   d. PrintTaget asks PDFium process to convert that PDF file into EMF contents
      by *ConvertToEMF*
   e. The PDFium process converts the given PDF into EMF contents and send back
       EMF contents by *ConvertToEMFDone*
   f. PrintTaget playbacks that EMF onto a printer DC. One page is printed!
   f. If all pages are printed, then finalize print job; Otherwise, loop back
      to #a.

The control flow that we landed in bug 1370488 does not work like the flow
I described above.
In [1], we paint all pages into one single PDF file. After all pages are
rendered into this PDF file, we finalize the current print job, which means the
printing progress dialog is close. *Then* we start to convert that PDF into
EMF and print each EMF page onto printer DC. We can not cancel this conversion
task since the printing dialog is close, there is no UI allow us to do that.
One more serious problem is: since the printing progress dialog is close,
people think that printing is done, but actually it's not.

Except move EMF conversion to a dedicated process, named PDFium process, I will
also fix the behavior we landed in bug 1370488.

[1]
https://hg.mozilla.org/mozilla-central/rev/b611ec2a42bf

MozReview-Commit-ID: JAnmNc3gAVK

--HG--
extra : rebase_source : c64c4d39ccca16271959ade57edc2a8a087141b8
extra : intermediate-source : 6d6cff8961fa14160b624b2879d231b32c61a8f5
extra : source : b172d78e8c1d801e1e28afd8fedb9fcfff77d113
2017-10-13 16:58:07 +08:00
cku
0e54a2a91c Bug 1399787 - Part 2.c. Rename DrawPageToFile to SavePageToFile. r=jwatt
This is to make the naming more consistent with SavePageToBuffer.

MozReview-Commit-ID: 5miYvv9yFFR

--HG--
extra : rebase_source : d0a433e55a1a919a4207aee5f2fee9e75bd0a36e
2017-11-02 20:19:30 +08:00
cku
96911bd5d2 Bug 1399787 - Part 2.b. Add functions to read/write EMF content from/to a buffer. r=jwatt
With the help of these new function, we can serialize/deserialize EMF content
in/out a share memory object.

MozReview-Commit-ID: Dm45xEXmMqS

--HG--
extra : rebase_source : a84834075aa58099104ba9cdaa375da4b973c23b
extra : source : 61f81b148f8b1d1569d7cf279575b38f4570171f
2017-11-01 20:27:17 +08:00
cku
fea20dd4a5 Bug 1399787 - Part 2.a. Add functions to load the content of a PDF from a FileDescriptor. r=jwatt
All the functions added in Part 2 are utilities for sharing EMF/PDF contents
between processes.

MozReview-Commit-ID: 3qKosXH56kY

--HG--
extra : rebase_source : 677bf9f30399f28e1e094843448c133b0c2391a7
extra : source : b61b651ed6f668e32176353d346b25d23e2cd932
2017-11-01 21:33:28 +08:00
cku
367da24e2c Bug 1399787 - Part 3. Create a top level protocol for the PDFium process. r=jwatt
Define ipdl and actor classes. Implementation of actors is added in subsequent
patches.

Control flow:
1. A user starts a printing job.
2. We create a PrintTarget to print web content page by page.
3. When printing pages:
   a. PrintTarget, who lives in the chrome process, create a new FileDescriptor
      and pass that FD to the content process.
   b. The content process renders page contents into the given FD.
   c. PrintTarget render that FD, which contains only one page, into a PDF
      file.
   d. PrintTaget asks PDFium process to convert that PDF file into EMF contents
      by *ConvertToEMF*
   e. The PDFium process converts the given PDF into EMF contents and send back
       EMF contents by *ConvertToEMFDone*
   f. PrintTaget playbacks that EMF onto a printer DC. One page is printed!
   f. If all pages are printed, then finalize print job; Otherwise, loop back
      to #a.

The control flow that we landed in bug 1370488 does not work like the flow
I described above.
In [1], we paint all pages into one single PDF file. After all pages are
rendered into this PDF file, we finalize the current print job, which means the
printing progress dialog is close. *Then* we start to convert that PDF into
EMF and print each EMF page onto printer DC. We can not cancel this conversion
task since the printing dialog is close, there is no UI allow us to do that.
One more serious problem is: since the printing progress dialog is close,
people think that printing is done, but actually it's not.

Except move EMF conversion to a dedicated process, named PDFium process, I will
also fix the behavior we landed in bug 1370488.

[1]
https://hg.mozilla.org/mozilla-central/rev/b611ec2a42bf

MozReview-Commit-ID: JAnmNc3gAVK

--HG--
extra : rebase_source : 92276c366e3e8faa9be7a43fa64c2c5c56a7014b
extra : intermediate-source : 6d6cff8961fa14160b624b2879d231b32c61a8f5
extra : source : b172d78e8c1d801e1e28afd8fedb9fcfff77d113
2017-10-13 16:58:07 +08:00
cku
471a6c5693 Bug 1399787 - Part 2.c. Rename DrawPageToFile to SavePageToFile. r=jwatt
This is to make the naming more consistent with SavePageToBuffer.

MozReview-Commit-ID: 5miYvv9yFFR

--HG--
extra : rebase_source : 5fa0594338ccae196866a1eb2e811e30b41c9290
2017-11-02 20:19:30 +08:00
cku
b846eba123 Bug 1399787 - Part 2.b. Add functions to read/write EMF content from/to a buffer. r=jwatt
With the help of these new function, we can serialize/deserialize EMF content
in/out a share memory object.

MozReview-Commit-ID: Dm45xEXmMqS

--HG--
extra : rebase_source : 02b571735de70b499aea30bfdb3c0a35fece3332
extra : source : 61f81b148f8b1d1569d7cf279575b38f4570171f
2017-11-01 20:27:17 +08:00
cku
7637aa84f2 Bug 1399787 - Part 2.a. Add functions to load the content of a PDF from a FileDescriptor. r=jwatt
All the functions added in Part 2 are utilities for sharing EMF/PDF contents
between processes.

MozReview-Commit-ID: 3qKosXH56kY

--HG--
extra : rebase_source : f28b808f7007633fbeea3dbea78c19541bc73667
extra : source : b61b651ed6f668e32176353d346b25d23e2cd932
2017-11-01 21:33:28 +08:00
cku
eefa6c8ea6 Bug 1399787 - Part 1. Fix namespacing and include issues hidden by unified compilation. r=jwatt
We will create several new files in the following patches for IPC and a new
subprocess. Several already existed files will be shifted into new build units,
we will meet several compile errors because of it.

This patch fixes those compile error in advance.

MozReview-Commit-ID: 5hd0sNYfBu0

--HG--
extra : rebase_source : d4cca529623586188ffebffd858f53188d12bb50
2017-10-06 22:01:22 +08:00
cku
be80632ef9 Bug 1399787 - Part 1. Fix namespacing and include issues hidden by unified compilation. r=jwatt
We will create several new files in the following patches for IPC and a new
subprocess. Several already existed files will be shifted into new build units,
we will meet several compile errors because of it.

This patch fixes those compile error in advance.

MozReview-Commit-ID: 5hd0sNYfBu0

--HG--
extra : rebase_source : 0d85c823e4ead4f09175f2cc83df811b2b4081ec
2017-10-06 22:01:22 +08:00
shindli
76ee711dab Merge mozilla-central to autoland. r=merge a=merge CLOSED TREE 2017-12-08 00:24:48 +02:00
Bob Owen
c25dc801cd Bug 1423644: Don't create the nsAppShell hidden message window, when not using native event processing. r=jimm 2017-12-07 10:25:09 +00:00
Aaron Klotz
c7226f11c6 Bug 1419886: Part 1 - Add hooks for UIA detection to nsAppShell; r=jimm
MozReview-Commit-ID: 5p4kZDHcQGn
2017-12-04 17:53:13 -07: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
Bogdan Tara
e882c9b394 Backed out 22 changesets (bug 1399787) for failing on mozmake.EXE r=backout a=backout on a CLOSED TREE
Backed out changeset 0afbd07d8219 (bug 1399787)
Backed out changeset 80c062fd58fb (bug 1399787)
Backed out changeset b1457eabd34e (bug 1399787)
Backed out changeset d875e45f591e (bug 1399787)
Backed out changeset 8f600ac930ec (bug 1399787)
Backed out changeset c478fb75f5cb (bug 1399787)
Backed out changeset c995f4e18724 (bug 1399787)
Backed out changeset 0b75ef19e695 (bug 1399787)
Backed out changeset 2382a348a6c1 (bug 1399787)
Backed out changeset 93f9a5e253d8 (bug 1399787)
Backed out changeset 5c50bbde0950 (bug 1399787)
Backed out changeset 67e530c129c7 (bug 1399787)
Backed out changeset 682c60e52749 (bug 1399787)
Backed out changeset ff1436ae1ef7 (bug 1399787)
Backed out changeset cb3ae1dc20b2 (bug 1399787)
Backed out changeset bc52b1781641 (bug 1399787)
Backed out changeset d165846cb5e1 (bug 1399787)
Backed out changeset 185368267354 (bug 1399787)
Backed out changeset c385d0f60f8a (bug 1399787)
Backed out changeset 364b5b44932b (bug 1399787)
Backed out changeset 98758e79710d (bug 1399787)
Backed out changeset d56497aa5390 (bug 1399787)
2017-12-07 19:16:08 +02:00
cku
6560863eb2 Bug 1399787 - Part 17. Clean up some comments and formatting in PDFViaEMFPrintHelper code. r=jwatt
MozReview-Commit-ID: HTFv50CFqI9

--HG--
extra : rebase_source : 3563687135b99edd21067d3d7317be14ebb753d8
extra : source : 7200f406bd2eea6d81b926b92ddefa92ced96d18
2017-11-29 15:45:34 +08:00
Dorel Luca
ed8dc2034d Merge inbound to mozilla-central r=merge a=merge 2017-12-07 00:01:19 +02: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
Emilio Cobos Álvarez
c5eb38b456 Bug 1423167: Fix osx-only bustage. r=me
MozReview-Commit-ID: IUCWvrunuht
2017-12-06 16:42:13 +01:00
Emilio Cobos Álvarez
74b31155f7 Bug 1423167: Move most attribute-related methods from nsIContent to Element. r=bz
MozReview-Commit-ID: 6WXqNiODttD
2017-12-06 16:05:59 +01:00
Jim Chen
2119c96737 Bug 1423010 - 3. Clean up o.m.g.gfx package; r=rbarker
Remove unused classes and make classes that are not used outside of the
package package-private.

MozReview-Commit-ID: 9FxcL5QsM1Q

--HG--
extra : rebase_source : d9ed39d06a0e2aadec131d06c92cb11ef342a320
2017-12-05 11:40:10 -05:00
shindli
2e08acdf88 Merge inbound to mozilla-central r=merge a=merge 2017-12-05 11:58:51 +02:00
Masayuki Nakano
af6a1c5d37 Bug 1403759 - part 2: Handle edit/selection commands like insertNewline: in TextInputHandler::HandleCommand() r=m_kato
Let's make TextInputHandler::HandleCommand() handle other
commands which are caused by Backspace, Delete, Tab, ArrowUp,
ArrowDown, ArrowRight, ArrowLeft, PageUp, PageDown, Home, End
and Escape keys with various modifiers.

This patch makes Korean users can do most key operation in
editor even with composing Hangul character.

Note that this patch has a hack for cancelOperation: command.
The command is typically fired for Escape key press.  However,
it's also fired for Command + Period.  Unfortunately, this
behavior is really odd if subclass of NSResponder implements
|void cancelOperation:(id)sender|.  If it's implemented,
Cocoa doesn't call its |void keyDown:(NSEvent)theEvent|.
Instead, it calls only |void doCommandBySelector:(SEL)aSelector|
and |void cancelOperation:(id)sender| when Command + Period is
pressed.  Therefore, we cannot dispatch keydown nor keypress
event for this key combination if we implement it.  Therefore,
this patch doesn't implement the method but handle it in
doCommandBySelector even though the super class of ChildView
cannot handle the command with this path.

MozReview-Commit-ID: 4hS23SiwNJv

--HG--
extra : rebase_source : 38ac1ea494b5f786ecd5c9327efbacd460b59faf
2017-12-02 14:53:10 +09:00
Masayuki Nakano
d7ecd695d3 Bug 1403759 - part 1: Make TextInputHandler::InsertNewline() treat other commands r=m_kato
Currently, we handle insertNewline: of NSResponder with
TextInputHandler::InsertNewline().  However, its
implementation is useful for handling some other
commands.  So, let's rename it to HandleCommand() and
make it take Command as its argument for handling
specific behavior of each command.

MozReview-Commit-ID: GgzQdTlVtYl

--HG--
extra : rebase_source : e1d1c8617897d29eb10ba62708e3549a77c6ee59
2017-12-02 10:46:31 +09:00
Bogdan Tara
28f65f2044 Merge mozilla-central to inbound. r=merge a=merge on a CLOSED TREE 2017-12-04 22:47:53 +02:00
Stephen A Pohl
c4a7977565 Bug 1405577: Restore the ability to open new windows in new spaces when a window is already in fullscreen mode on macOS. r=mstange 2017-12-04 15:06:35 -05:00
Stephen A Pohl
b1bd9b5870 Backout 84bcb5742e0c (bug 1405577) to replace with a slimmer patch. r=me 2017-12-04 15:06:26 -05:00
Jim Chen
e696707755 Bug 1416330 - 6. Update bindings; r=jchen
MozReview-Commit-ID: FjpC2Tlu2OF

--HG--
extra : rebase_source : 91d793ef49a663c299416a465d2e30d65ae71306
2017-12-04 11:50:21 -05:00
Jim Chen
203776418e Bug 1416330 - 3. Update Fennec code to not use LayerView; r=rbarker
Use GeckoSession/LayerSession or GeckoView in Fennec code instead of
using LayerView.

MozReview-Commit-ID: Iod7XsqKy1e

--HG--
extra : rebase_source : 5917540422698f5526ca373f17c4358a712cdcef
2017-12-04 11:50:20 -05:00
Julian Hector
465eaf30eb Bug 1401111 - Use ContiguousEnumSerializer for EventMessage ParamTraits; r=botond 2017-12-01 13:00:56 -05:00
Sebastian Hengst
5e55af8f82 merge mozilla-central to autoland. r=merge a=merge 2017-12-01 01:30:16 +02:00
Sebastian Hengst
7cbd9c3050 merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-12-01 01:25:54 +02:00
Brindusan Cristian
6a74eec204 Merge inbound to mozilla-central r=merge a=merge 2017-12-01 00:22:25 +02:00
Dylan Roeh
3589e9efe6 Bug 1412678 - Ensure the window most recently interacted with is the active window. r=snorp 2017-11-30 09:00:05 -06:00
Andrea Marchesini
b4057b86a1 Bug 1421655 - Renaming imgITools::decodeImageBuffer to imgITools::decodeImageFromBuffer, r=aosmond 2017-11-30 14:48:47 +01:00
Stephen A Pohl
aac02bb998 Bug 1405577: Restore the ability to open new windows in new spaces when a window is already in fullscreen mode on macOS. r=mstange 2017-11-29 23:14:11 -05:00
Dorel Luca
79499f4044 Merge mozilla-central to autoland r=merge on a CLOSED TREE 2017-11-29 12:31:25 +02:00
Dorel Luca
be78e6ea9b Merge inbound to mozilla-central r=merge a=merge 2017-11-29 12:26:15 +02:00
Markus Stange
20a0c0f910 Bug 1421071 - Don't use fallback for invisible overlay scrollbar tracks on Mac with WebRender. r=jrmuizel
MozReview-Commit-ID: 5PJVqgGi8uD

--HG--
extra : rebase_source : bc238065ee46d009120dde7ee8de56f640facb24
2017-11-27 17:35:36 -05: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
Mark Banner
099e4fa549 Bug 1421458 - Add more initial configuration setup and prepare .eslintignore for enabling ESLint on more xpcshell-test directories. r=mossop
MozReview-Commit-ID: 4nbTuNNnAdZ

--HG--
extra : rebase_source : 7131f0ddad79d28615a5799c657972bd84a69180
2017-11-28 22:57:08 +00:00
Alex Gaynor
8cb6e552a8 Bug 1414834 - re-land print IPC changes from bug 1319423; r=bobowen
With this patch print IPC no longer requires the child process to create files.
Instead files are opened by the parent and a file descriptor is sent to the
child. This will allow us to sandbox child processes more aggressively.

MozReview-Commit-ID: GQWTYLV01kj

--HG--
extra : rebase_source : 9b91e9b01708d73915a49684c2cec96457650e45
2017-11-03 14:37:15 -04: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
cku
5cb9f6ee6a Bug 1399787 - Part 16. Hide function table in PDFiumEngineShim.cpp. r=jwatt
This is to make the header file more concise.

MozReview-Commit-ID: 7RFkppBdvbU

--HG--
extra : rebase_source : 29776b51e0ca9d0671bda208b84977b44d97bb22
extra : intermediate-source : 317d238af4025e64b8af61488fada9ec3d0b05c7
extra : source : 59d7baf15160231a53c459a3912e2c1430a1fa0e
2017-11-01 21:51:20 +08:00
cku
4b646fbaf3 Bug 1399787 - Part 15. Detect and handle breakage of the IPC channel. r=jwatt
MozReview-Commit-ID: 6VfIbstJ6WN

--HG--
extra : rebase_source : eb18bc02261f27043e04ad3e02ad7eab7fc8b59b
extra : source : 761e68aef93e9f6b2d914c81c638db588dec6fe5
2017-11-06 22:12:31 +08: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
Kartikaya Gupta
9154159eef Bug 1419834 - Add hit-testing results for MozMouseHittest events to APZTestData. r=botond,mrbkap
This allows us to fire MozMouseHittest events from tests and then read
the hittest result from the compositor APZTestData. The MozMouseHittest
event was chosen in particular because the existing uses of it are
similar in nature - it is a dummy event that is used to determine what
elements a particular coordinate targets. It is also an event that is
never generated by the OS and so using this event gives us more control
over what ends up in the APZTestData.

MozReview-Commit-ID: KHjIX7EpK2A

--HG--
extra : rebase_source : f7d7d729c1935eefd49ed06d8644ff9ef537f2e1
2017-11-29 23:16:26 -05:00
Margareta Eliza Balazs
cb71a3c4fe Merge mozilla-central to mozilla-autoland. r=merge a=merge CLOSED TREE 2017-11-30 12:55:54 +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
Martin Stransky
74d977ad2a Bug 1420124 - X Remote client: Encode DBus interface strings by base64 to avoid failure/crashes, r=jhorak
DBus strings can contain only [a-z][A-Z][0-9]_ chars. Encode profile name (used as part of interface name) by base64 and adjust it to avoid crashes (Bug 1418985).

MozReview-Commit-ID: J2SQHYRcWDW

--HG--
extra : rebase_source : 6ef46a1b390796021030fe0dc2e0294262eaea0c
2017-11-23 12:28:07 +01:00
Milan Sreckovic
be9daa43bf Bug 1418980: Add full blocklisting support for GPU_PROCESS and DX_INTEROP2. r=dvander
MozReview-Commit-ID: 4gKi54Is8KO

--HG--
extra : rebase_source : ca99fdfa779b107d8fb41f8274aed6615ee69a02
2017-11-21 13:13:10 -05:00
cku
b76d64f617 Bug 1399787 - Part 13. Handle AbortDocument. r=jwatt
While aborting conversion, we need to make sure there is no coversion task
executing in the PDFium process before destroying it.

MozReview-Commit-ID: 3Iqhe8KmYv2

--HG--
extra : rebase_source : b82fe3b7231d9c4a171d6a19cd22c0c7ff47b4bf
extra : source : 753ed705666fd4c55da456fb80604e4552d6bd52
2017-11-05 15:34:54 +08:00
cku
18a35d000e Bug 1399787 - Part 11.d. Using PrintTargetEMF on windows if skia-pdf is enable. r=jwatt
MozReview-Commit-ID: Hx94fqGJFz6

--HG--
extra : rebase_source : ba3ad9dc34a356918d099c8fb5c925cf637bd95a
extra : source : 564351eb834faef9c2363edd690d80e7b24a2c41
2017-11-14 13:57:11 +08:00
cku
0088c161b3 Bug 1399787 - Part 10. Make PrintTargetEMF use the PDFium process to convert to EMF. r=jwatt
We integrate PrintTargetEMF with the PDFium process to convert PDF into EMF in
this patch.

MozReview-Commit-ID: 5F0setrL94n

--HG--
extra : rebase_source : 576e077f804785da20923620d9c4e3041936e835
extra : source : 28f1671230fa70125e6971c9a287cb0658b89496
2017-11-05 03:06:04 +08:00
cku
fe99eaf1f9 Bug 1399787 - Part 9. Sandbox the PDFium process. r=bobowen,jwatt
MozReview-Commit-ID: 6ED7EPZvOMR

--HG--
extra : rebase_source : 5dbc1330a355e01a3a40e8145b35556cd27f0394
extra : intermediate-source : d90c5064d88a6468c1209f4a78ec7631592eec98
extra : source : 91b761e38efd28a69647c38531f5418fffee8f50
2017-10-18 20:52:45 +08:00
cku
a46e2d8e44 Bug 1399787 - Part 8. Open PDFium protocol channel. r=jwatt
MozReview-Commit-ID: F9W9ykEtVmK

--HG--
extra : rebase_source : 41936e4b7ffdb5ec00a005d4aeaa2754fe2f6daa
extra : intermediate-source : f9ef88f9ddc9ddb114633075472f5a20985d8c39
extra : source : 63e98299090e4fb98c2fb50aa9eaac35f35ca232
2017-10-17 12:48:30 +08:00
cku
2615f0ab34 Bug 1399787 - Part 7. Have PrintTargetEMF launch the PDFium process. r=jwatt
MozReview-Commit-ID: CVfB81ifV2p

--HG--
extra : rebase_source : 88725db5962ce59282fc3df298f3224446c9e086
2017-11-29 17:15:31 +08:00
cku
65b891af3e Bug 1399787 - Part 5. Implement the PDFium process. r=jwatt
MozReview-Commit-ID: 502jB9DAeIC

--HG--
extra : rebase_source : 276ed502c49cd913114e9a58d43e8ae9d61f9898
extra : intermediate-source : 695dfd5232f9e3ca08205fbc99cc5cbbe8737b12
extra : source : 2903a56630965e02602ff4aa3e38c51207b6fa15
2017-10-16 16:22:07 +08:00
cku
f605599984 Bug 1399787 - Part 4. Take out the code we landed in bug 1370488. r=jwatt
To move EMF conversion job to a dedicated process, I will implement a new
PrintTarget subclass, named PrintTargetEMF, to coordinate tasks among the
content process, chrome process and PDFium process. All the code that we
change in nsDeviceContextSpecWin is no longer needed.

MozReview-Commit-ID: GgKZoB92WYE

--HG--
extra : rebase_source : 1687d72a8fe88223f17c954c23022236dfe029a0
2017-11-05 00:53:05 +08:00
cku
31ba0da513 Bug 1399787 - Part 3. Create a top level protocol for the PDFium process. r=jwatt
Define ipdl and actor classes. Implementation of actors is added in subsequent
patches.

Control flow:
1. A user starts a printing job.
2. We create a PrintTarget to print web content page by page.
3. When printing pages:
   a. PrintTarget, who lives in the chrome process, create a new FileDescriptor
      and pass that FD to the content process.
   b. The content process renders page contents into the given FD.
   c. PrintTarget render that FD, which contains only one page, into a PDF
      file.
   d. PrintTaget asks PDFium process to convert that PDF file into EMF contents
      by *ConvertToEMF*
   e. The PDFium process converts the given PDF into EMF contents and send back
       EMF contents by *ConvertToEMFDone*
   f. PrintTaget playbacks that EMF onto a printer DC. One page is printed!
   f. If all pages are printed, then finalize print job; Otherwise, loop back
      to #a.

The control flow that we landed in bug 1370488 does not work like the flow
I described above.
In [1], we paint all pages into one single PDF file. After all pages are
rendered into this PDF file, we finalize the current print job, which means the
printing progress dialog is close. *Then* we start to convert that PDF into
EMF and print each EMF page onto printer DC. We can not cancel this conversion
task since the printing dialog is close, there is no UI allow us to do that.
One more serious problem is: since the printing progress dialog is close,
people think that printing is done, but actually it's not.

Except move EMF conversion to a dedicated process, named PDFium process, I will
also fix the behavior we landed in bug 1370488.

[1]
https://hg.mozilla.org/mozilla-central/rev/b611ec2a42bf

MozReview-Commit-ID: JAnmNc3gAVK

--HG--
extra : rebase_source : b6459a187de8e066e7574d2b8757d09fbcfcddba
extra : intermediate-source : 6d6cff8961fa14160b624b2879d231b32c61a8f5
extra : source : b172d78e8c1d801e1e28afd8fedb9fcfff77d113
2017-10-13 16:58:07 +08:00
cku
be1ec835a8 Bug 1399787 - Part 2.c. Rename DrawPageToFile to SavePageToFile. r=jwatt
This is to make the naming more consistent with SavePageToBuffer.

MozReview-Commit-ID: 5miYvv9yFFR

--HG--
extra : rebase_source : 07d1f72b33f962622a843355da6d3067a286483a
2017-11-02 20:19:30 +08:00
cku
2f777dcbae Bug 1399787 - Part 2.b. Add functions to read/write EMF content from/to a buffer. r=jwatt
With the help of these new function, we can serialize/deserialize EMF content
in/out a share memory object.

MozReview-Commit-ID: Dm45xEXmMqS

--HG--
extra : rebase_source : 8203924d873509ccb2d869bf1b427afb6afb718e
extra : source : 61f81b148f8b1d1569d7cf279575b38f4570171f
2017-11-01 20:27:17 +08:00
cku
a07e7d69cf Bug 1399787 - Part 2.a. Add functions to load the content of a PDF from a FileDescriptor. r=jwatt
All the functions added in Part 2 are utilities for sharing EMF/PDF contents
between processes.

MozReview-Commit-ID: 3qKosXH56kY

--HG--
extra : rebase_source : 0531cfa563094c1a3a6dac4895ed1b8edfd285e0
extra : source : b61b651ed6f668e32176353d346b25d23e2cd932
2017-11-01 21:33:28 +08: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
cku
86f919fdad Bug 1399787 - Part 1. Fix namespacing and include issues hidden by unified compilation. r=jwatt
We will create several new files in the following patches for IPC and a new
subprocess. Several already existed files will be shifted into new build units,
we will meet several compile errors because of it.

This patch fixes those compile error in advance.

MozReview-Commit-ID: 5hd0sNYfBu0

--HG--
extra : rebase_source : b6b8b069f8f2167ef87266ba9c95e8fe53cca6f6
2017-10-06 22:01:22 +08: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
Bogdan Tara
71dd57ba46 Merge mozilla central to autoland. r=merge a=merge on a CLOSED TREE 2017-12-07 15:54:19 +02:00
Masayuki Nakano
600d0e1cd9 Bug 1423456 - ContentCacheInParent::OnEventNeedingAckHandled() shouldn't decrement mPendingCompositionCount when it receives eCompositionCommit(AsIs) from the remote process but the composition has already been committed by a request to commit composition r=m_kato
After fixing bug 1420849, remote process started to ignore composition events
after it synthesizes eCompositionCommit event after requesting to commit
composition.  However, remote process still keeps returning composition events
when it receives from the main process.  So, if the main process has already
sent eCompositionCommit(AsIs) event when it's requested to commit composition
from the remote process, ContentCacheInParent::OnEventNeedingAckHandled()
receives both eCompositionCommitRequestHandled and eCompositionCommit(AsIs)
events for *a* composition.  Therefore, mPendingCompositionCount may be
decremented twice for a composition.  This causes hitting MOZ_DIAGNOSTIC_ASSERT.

So, ContentCacheInParent need to manage if sent composition events are ignored
or not.  Then, ContentCacheInParent::OnEventNeedingAckHandled() stops
decrementing mPendingCompositionCount when it receives eCompositionCommit(AsIs)
events which are ignored by the remote process.

This patch manages it with |mIsChildIgnoringCompositionEvents| and changes
|bool mIsPendingLastCommitEvent| to |uint8_t mPendingCommitCount| for
making ContentCache be able to manage multiple pending commit events if
its remote process is too busy.

MozReview-Commit-ID: CYQDeZXl7TJ

--HG--
extra : rebase_source : 6de1e2f1302d556d45d19c73b4d1ea3f86b65373
2017-12-06 15:07:41 +09:00
Masayuki Nakano
8418b1b497 Bug 1420849 - Make PuppetWidget discard composition events after requesting commit composition and synthesizing eCommitComposition event until new eCompositionStart event comes r=m_kato
When ContentCacheInParent::RequestIMEToCommitComposition() returns true,
the remote process will synthesize eCompositionCommit event.  This causes
destroying TextComposition event in the remote process (by
IMEStateManager::DispatchCompositionEvent()).  Then,
IMEStateManager::DispatchCompositionEvent() will recreate new TextComposition
instance when it receives new composition event.  Then, it may request
to commit composition to the main process via PuppetWidget accidentally.

So, after PuppetWidget::RequestIMEToCommitComposition() synthesizes
eCompositionCommit, PuppetWidget should discard following composition events
until it receives eCompositionStart since they are unnecessary for the content
and they are for the old composition, i.e., outdated events.

MozReview-Commit-ID: BNRcoYxABpd

--HG--
extra : rebase_source : caea469afeed8cc373aeca33199ac0d570052569
2017-11-27 20:34:01 +09: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
Narcis Beleuzu
c396d718bd Merge mozilla-central to autoland. r=merge a=merge on a CLOSED TREE 2017-12-01 00:46:03 +02:00
Jim Chen
675847149d Bug 1416316 - 4. Update comments and bindings; r=jchen
MozReview-Commit-ID: 9CBe7Iej1D8

--HG--
extra : rebase_source : 0db28213833915747d9b34fe58458348a33458ad
2017-11-30 13:25:51 -05:00
Jim Chen
84ca8a1479 Bug 1416316 - 3. Update NPZC usages; r=rbarker
Remove NPZC references from LayerView, and add an NPZC getter in
LayerSession. Use the new APIs in GeckoView to forward events to NPZC.

MozReview-Commit-ID: 1UcJkpW0XuM

--HG--
extra : rebase_source : 6f50d1ca9398a2549678cc4e0fbb2578d284f63a
2017-11-30 13:25:50 -05:00
Jim Chen
bd61ff7f2f Bug 1416316 - 2. Clean up NativePanZoomController; r=rbarker
Clean up the NativePanZoomController object including,

1) Remove references to LayerView because NPZC will be created and used
by LayerSession.

2) Rename `mDestroyed` to `mAttached` because NPZC now needs to support
cases where it's used before being attached, in addition to after being
destroyed.

3) Move origin of synthesized event coordinates from the screen to the
surface in native code, so we don't need to do the same thing in Java.

4) Invoke all callbacks from native code on the UI thread.

MozReview-Commit-ID: Fu4XIY59yKw

--HG--
extra : rebase_source : cb4d432cb940cfa92f3c0a931f1f2d2991932462
2017-11-30 13:25:50 -05:00
Jim Chen
c8f7a24671 Bug 1416316 - 1. Move overscroll to LayerSession; r=rbarker
There is some overscroll handling code in NativePanZoomController that
should be moved, along with other overscroll code in LayerView, to
LayerSession. LayerSession now provides a getter for
OverscrollEdgeEffect, which is cleaned up to have a public API with
documentation.

MozReview-Commit-ID: LkKHFS8OkR7

--HG--
extra : rebase_source : dc6b680b1cc7d7e2dd221091a63a208971d63c80
2017-11-30 13:25:50 -05: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
Noemi Erli
c528f7e479 Merge mozilla-central to mozilla-autoland. r=merge a=merge CLOSED TREE 2017-12-02 23:47:37 +02:00
Emilio Cobos Álvarez
13a91fa9f6 Bug 1417200: Make -moz-border-colors chrome only. r=xidorn
On a CLOSED TREE, since the servo patch managed to get in.

This also makes the border longhand no longer reset them.

MozReview-Commit-ID: KNais1e5FnE
2017-12-01 23:25:01 +01:00
arthur.iakab
042d2e8d74 Merge mozilla-central to inbound r=merge a=merge on a CLOSED TREE 2017-12-22 00:28:49 +02:00
Dylan Roeh
925c23f412 Bug 1425898 - Call refreshLocales on the Gecko thread rather than the UI thread. r=jchen 2017-12-21 15:08:09 -06: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
Masayuki Nakano
b1a20692e4 Bug 1418747 - ContentCacheInParent needs to initialize mPendingCommitLength with 0 when it's created r=m_kato
ContentCacheInParent::mPendingCommitLength is never initialized until it
receives eCompositionCommit(AsIs) event from widget or receives the latest
content from the remote process when there is a composition.

The bug is, immediately after dispatching eCompositionStart and first
eCompositionChange event, MS Pinyin tries to query the character at caret,
but ContentCacheInParent::HandleQueryContentEvent() tries to resolve
related position of an eQueryTextRect event with the uninitialized
mPendingCommitLength.  Therefore, the query almost always fails and MS Pinyin
gives up to show its candidate window.

This patch just initializes the member with 0.

MozReview-Commit-ID: JyYNqi8hoTa

--HG--
extra : rebase_source : bdc504f83abdbb21e11ea69290908ed501e9a65f
2017-11-27 18:51:01 +09:00
Andrea Marchesini
2ef23c7ade Bug 1420223 - createImageBitmap must work with nsIAsyncInputStream - part 4 - ImageBitmap must use imgITools::decodeImageBuffer, r=aosmond 2017-11-27 17:05:57 +01:00
Botond Ballo
1b91441c7c Bug 951793 - Obey overscroll-behavior for swipe navigation. r=mstange
MozReview-Commit-ID: i2BuiAfG71
2017-11-25 01:29:15 +01:00
Sebastian Hengst
6d4637aebb Backed out 15 changesets (bug 951793) because it landed before the necessary servo changes. r=backout requested by emilio on a CLOSED TREE
Backed out changeset ca8c86e229df (bug 951793)
Backed out changeset 6eef6403fa71 (bug 951793)
Backed out changeset a5e529f52fb1 (bug 951793)
Backed out changeset 054e837609d0 (bug 951793)
Backed out changeset 713a3c9617ce (bug 951793)
Backed out changeset 884913aa1668 (bug 951793)
Backed out changeset c3340b84e534 (bug 951793)
Backed out changeset 50fe3c6ac486 (bug 951793)
Backed out changeset be4e22e5c257 (bug 951793)
Backed out changeset 7055bd5dfc4e (bug 951793)
Backed out changeset fa6da1e723cf (bug 951793)
Backed out changeset 386f77004d89 (bug 951793)
Backed out changeset fa82cdc01408 (bug 951793)
Backed out changeset 867d8ea5355c (bug 951793)
Backed out changeset e61ac8e48971 (bug 951793)
2017-11-25 01:01:41 +02:00
Botond Ballo
3ddd46e5f1 Bug 951793 - Obey overscroll-behavior for swipe navigation. r=mstange
MozReview-Commit-ID: i2BuiAfG71

--HG--
extra : rebase_source : 9fd9b60db5c6e5f01033f6dca934024ce488cedb
2017-10-23 18:27:24 -04:00
arthur.iakab
dfc104159a Merge inbound to central r=merge a=merge 2017-11-24 12:00:30 +02:00
Markus Stange
aea1e0fbbf Bug 1417709 - Add system colors called "-moz-mac-vibrant-titlebar-light/dark" for use with -moz-font-smoothing-background-color. r=emilio
MozReview-Commit-ID: 9FbRlPvrLMX

--HG--
extra : rebase_source : 84330fd5824468e4617649828d7902fc8f001f48
2017-11-16 11:50:09 -05:00
Markus Stange
cfe43479ab Bug 1417709 - Implement -moz-appearance: -moz-mac-vibrant-titlebar-light/dark on macOS. r=jrmuizel
MozReview-Commit-ID: ElMpYslSXOg

--HG--
extra : rebase_source : c9baf205bdfc17cd4c783aef62184635901deba0
2017-11-16 11:36:52 -05:00
Markus Stange
9a0061990e Bug 1417709 - Change GatherThemeGeometryRegion to GatherVibrantRegion. r=jrmuizel
MozReview-Commit-ID: 3Oytxnut623

--HG--
extra : rebase_source : 16c89319749efa1f16a4909f6f9dacb59f76e3d1
2017-11-16 11:34:09 -05:00
Margareta Eliza Balazs
2cb7aeff33 Backed out 5 changesets (bug 1417709) for failing X in devtools/shared/tests/unit/test_css-properties-db.js r=backout on a CLOSED TREE
Backed out changeset 5670c9582add (bug 1417709)
Backed out changeset 50f0febe43a0 (bug 1417709)
Backed out changeset 29e6c0d82193 (bug 1417709)
Backed out changeset e3a6c5b74595 (bug 1417709)
Backed out changeset a0fe569c86c0 (bug 1417709)
2017-11-23 01:17:07 +02:00
shindli
a0b20fcb81 Merge mozilla-central to mozilla-autoland. r=merge a=merge CLOSED TREE 2017-11-22 23:42:02 +02:00
shindli
82254ca1cf Merge inbound to mozilla-central r=merge a=merge 2017-11-22 23:29:44 +02:00
James Willcox
e626ddf5dc Bug 1409113 - Relax the user input requirement in order to show VKB on Android r=jchen
MozReview-Commit-ID: 4lvuGFyWj76
2017-11-22 10:09:07 -06:00
James Willcox
e1181af857 Bug 1409113 - Add nsIPresShell::HasHandledUserInput() status to InputContext r=masayuki
MozReview-Commit-ID: 60x35NKEzhA
2017-11-22 10:09:06 -06:00
James Willcox
bacda12532 Bug 1409113 - Add nsIPresShell::HasHandledUserInput() r=masayuki
MozReview-Commit-ID: 3Yr5UmFJx5h
2017-11-22 10:09:04 -06:00
Masayuki Nakano
02815812a9 Bug 1405832 - part 4: ContentCacheInParent::OnEventNeedingAckHandled() shouldn't crash in release build r=m_kato
For protecting main process, we should stop crashing main process in release
build even when we detect our bug.  However, we should keep crashing with
MOZ_DIAGNOSTIC_ASSER which is enabled only on Night and Developer Edition.

MozReview-Commit-ID: 5BQ46IFzXXj

--HG--
extra : rebase_source : 1a894bb23b6b9f386b19eba95d14cd8db80fb2c6
2017-11-20 23:30:18 +09:00
Masayuki Nakano
07dc211d1a Bug 1405832 - part 3: ContentCacheInParent::RequestIMEToCommitComposition() should call nsIWidget::NotifyIME() via TextComposition::RequestToCommit() r=m_kato
Now, TextComposition::RequestToCommit() manages if it has already requested
IME to commit or cancel composition and this is important for redundant
requests.  Therefore, ContentCacheInParent::RequestIMEToCommitComposition()
shouldn't call nsIWidget::NotifyIME() directly.

MozReview-Commit-ID: 69VpgyK9Jk5

--HG--
extra : rebase_source : 5b86c11669c7a69ceb0a2af155765834621ee968
2017-11-20 23:08:37 +09:00
Masayuki Nakano
c4f2acf2f3 Bug 1405832 - part 2: TextComposition::RequestToCommit() should request IME to commit or cancel composition only when it hasn't been request it yet and hasn't received commit event yet r=m_kato
According to the log in crash reports, eCompositionCommitRequestHandled is
sent to ContentCacheInParent twice or more for a composition.  This causes
breaking mPendingCompositionCount and mPendingEventsNeedingAck management.

Currently, nsIWidget::NotifyIME() should be called only by
TextComposition::RequestToCommit().  Therefore, the method should manage if
it should request it actually.  If the composition has already received
eCompositionCommit(AsIs) event, it shouldn't request it because parent process
may have already stated new composition and it shouldn't be broken by request
for old composition.

MozReview-Commit-ID: 2ekSa6EIeRP

--HG--
extra : rebase_source : d23aa29ce7871e83b99cec8c15aff0c580e08fb4
2017-11-20 22:59:04 +09:00
Masayuki Nakano
b07eba4f1e Bug 1405832 - part 1: ContentCacheInParent::RequestIMEToCommitComposition() should increment mPendingEventsNeedingAck itself if it treat the request handled synchronously without actually requesting IME to commit composition r=m_kato
This is a simple bug of ContentCacheInParent.  When
ContentCacheInParent::RequestIMEToCommitComposition() returns true,
PuppetWidget::RequestIMEToCommitComposition() will send
eCompositionCommitRequestHandled pseudo event message back to the main process.
This causes counting down mPendingEventsNeedingAck in
ContentCacheInParent::OnEventNeedingAckHandled().  Therefore, in the normal
path, ContentCacheInParent::OnCompositionEvent() increments it for receiving
the pseudo event message.

However, if the tab parent has already lost focus,
RequestIMEToCommitComposition() returns true without requesting native IME to
commit composition.  So, ContentCacheInParent::OnCompositionEvent() cannot
increment mPendingEventsNeedingAck for coming
eCompositionCommitRequestHandled.  Therefore, RequestIMEToCommitComposition()
needs to increment mPendingEventsNeedingAck by itself when it won't request
IME to commit composition but it returns true.

MozReview-Commit-ID: 4Alwfy8avB

--HG--
extra : rebase_source : 2588221568440beecc2b992910fa53729b8abe1c
2017-11-20 22:20:02 +09:00
Gabriele Svelto
cbb30621ec Bug 1402519 - Remove MOZ_CRASHREPORTER directives from widget; r=froydnj
--HG--
extra : rebase_source : 4472a8d6ce5edf1b5a4665d522a1816020308a43
2017-11-23 10:59:04 +01: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
Ciure Andrei
c7cf019289 Merge mozilla-central to mozilla-inbound. r=merge a=merge CLOSED TREE 2017-11-22 12:20:25 +02:00
James Willcox
436c2828a9 Bug 1416015 - Ensure SurfaceTexture desctruction happens correctly r=jnicol
MozReview-Commit-ID: I4X1jQQC7ry
2017-11-21 12:43:31 -06:00
Markus Stange
47f0dbb9c5 Bug 1417709 - Add system colors called "-moz-mac-vibrant-titlebar-light/dark" for use with -moz-font-smoothing-background-color. r=emilio
MozReview-Commit-ID: 9FbRlPvrLMX

--HG--
extra : rebase_source : 95ed15a409d00df268478b786a50b925303512c0
2017-11-16 11:50:09 -05:00
Markus Stange
cf505c6dbe Bug 1417709 - Implement -moz-appearance: -moz-mac-vibrant-titlebar-light/dark on macOS. r=jrmuizel
MozReview-Commit-ID: ElMpYslSXOg

--HG--
extra : rebase_source : cae49ca995c8bf8a8b3dc64c07ede390510b033f
2017-11-16 11:36:52 -05:00
Markus Stange
4bfc2bbaca Bug 1417709 - Change GatherThemeGeometryRegion to GatherVibrantRegion. r=jrmuizel
MozReview-Commit-ID: 3Oytxnut623

--HG--
extra : rebase_source : f1010c9e0c3ba1572b163cbee00c3179b51bee13
2017-11-16 11:34:09 -05:00
Kartikaya Gupta
22471e0b18 Bug 1419868 - Fix some inconsistent naming r=mystor
The property in question is the offset from the content process to the
chrome process, but it gets called various things for historical
reasons. Let's be consistent and just call it the chrome offset
everywhere.

Also, in some places this was needlessly getting turned into a
nsIntPoint via ToUnknownPoint(), only to be turned back into a
LayoutDeviceIntPoint at all the use sites. So this patch also updates
some function signatures to avoid the needless conversion.

No functional changes.

MozReview-Commit-ID: AuhEUfa64Uj

--HG--
extra : rebase_source : 20e1895fefd944f98307a8437f977252ee2c3185
2017-11-22 14:21:37 -05:00
Jim Chen
82c5935b9b Bug 1416319 - 8. Switch to using LayerSession coordinates APIs; r=rbarker
Use the LayerSession coordinates APIs instead of manually calculating
coordinates using viewport metrics and toolbar height, which is prone to
error.

MozReview-Commit-ID: 4ebI3BHEOXR

--HG--
extra : rebase_source : 264f03f3032f101687c2a39d1cf052ac1805f12b
2017-11-22 14:12:23 -05:00
Jim Chen
5686bed431 Bug 1416319 - 4. Store DynamicToolbarAnimator in LayerSession; r=rbarker
Add getter/setter for DynamicToolbarAnimator in LayerSession in lieu of
LayerView. It is then LayerSession's responsibility to keep track of how
changes in the toolbar affects other things like the window and viewport
bounds.

MozReview-Commit-ID: HmRqxZ7EUCZ

--HG--
extra : rebase_source : 80648a17ed10672400daa4bcce0de49f4ee76557
2017-11-22 14:12:22 -05:00
Jim Chen
b21cdffaf4 Bug 1416319 - 1. Move content-document-is-displayed flag to native code; r=rbarker
One fix I forgot to make in bug 1416310 is to change the code to reset
the flag in LayerView. I think it's better if we just moved the whole
thing to native code, since we don't really use the flag in Java.

MozReview-Commit-ID: 9cbcYb89LhC

--HG--
extra : rebase_source : a209669d6657a60c198f59f4a0e4d959478485c3
2017-11-22 14:12:22 -05: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
Tiberius Oros
797c93d81f Merge inbound to mozilla-central r=merge a=merge 2017-11-21 11:55:23 +02:00
Jim Chen
676e0a6e5c Bug 1416310 - 5. Remove GeckoLayerClient.java and update generated bindings; r=jchen
Remove GeckoLayerClient.java since it's no longer used, and update
auto-generated JNI bindings. r=me for trivial patch.

MozReview-Commit-ID: CiNPLLkh3VJ

--HG--
extra : rebase_source : 0cddae4f8914dd6f6a0631a7e69701828476f2b8
2017-11-20 17:17:02 -05:00
Jim Chen
a845c063bf Bug 1416310 - 4. Don't use GeckoLayerClient in native code; r=rbarker
Use LayerSession::Compositor or NativePanZoomController to call back
into Java from nsWindow.

MozReview-Commit-ID: 9JUKAE5XQK1

--HG--
extra : rebase_source : 9d6861b9d641e6abb6b6f94f5f9c4b3661ff071c
2017-11-20 17:17:02 -05:00
Jim Chen
bbe7b4e34c Bug 1416310 - 1. Remove getMatrixForLayerRectToViewRect; r=rbarker
Patch gets rid of `LayerView.getMatrixForLayerRectToViewRect`, and just
uses `LayerView.getZoomFactor` directly when calculating the matrix in
GeckoInputConnection. This also lets us avoid the `isCompositorReady`
call on a non-UI thread. To get the correct offset, we need the screen
bounds from Gecko, so it's passed to Java as the first element in the
rect array. Using bounds from Gecko lets us avoid having to deal with
things like the dynamic toolbar animator ourselves.

MozReview-Commit-ID: 6I61SZGyQyO

--HG--
extra : rebase_source : d576fb7ef9a42de10b14db662e5c4833f16f6312
2017-11-20 17:17:00 -05:00
Nika Layzell
a7666fd8fe Bug 1418048 - Add a callback-based Send API to async returning IPDL methods, r=billm
Currently if you write an async IPDL method which has a return value, we expose
a SendXXX method which returns a MozPromise. This MozPromise can then be
->Then-ed to run code when it is resolved or rejected.

Unfortunately, using this API loses ordering guarantees which IPDL provides.
MozPromise::Then takes an event target, which the resolve runnable is dispatched
to. This means that the resolve callback's code doesn't have any ordering
guarantees relative to the processing of other IPC messages coming over the same
protocol.

This adds a new overload to SendXXX with two additional arguments, a lambda
callback which is called if the call succeeds, and a lambda callback which is
called if the call fails. These will be called in order with other IPC messages
sent over the same protocol.

MozReview-Commit-ID: FZHJJaSDoZy
2017-11-20 17:55:32 -05:00
Markus Stange
a0e9560488 Bug 1370040 - Use the public API -[NSVisualEffectView setMaskImage:] instead of the private API -[NSWindow _cornerMask]. r=spohl
The idea is the following:
Behind-window vibrancy is mostly rendered by the window server. For a given
vibrant region of a window, the window server renders a vibrancy "backdrop",
which is a blurred version of everything that's behind that region, modified
with a color tint and blended in some way. Then it puts our actual window
contents on top of that background.
The backdrop's shape is usually a rectangle. If we don't want it to be a
rectangle, we need to tell the window server about the shape that we want it to
be. We can't just "draw" a different shape in our own rendering, because our
own rendering is merely placed on top of the backdrop - but here we want to
modify the shape of the backdrop itself.

NSVisualEffectView lets us set a mask image on the view. If this view is the
content view of a window, then the view will automatically communicate the mask
image to the window server.

Traditionally, our popup windows have had a ChildView as their content view. If
we now want an NSVisualEffectView to be the content view of the window, then we
need to nest the ChildView inside that NSVisualEffectView.
But this NSVisualEffectView is only needed when the window is vibrant and the
vibrancy backdrop needs to have a certain shape. This is the case for our menus
which need to have rounded corners. If the window transitions to being
non-vibrant, or not needing a special shape, then we can go back to the way our
window's NSView hierarchy has worked traditionally. So we need to reparent
NSViews during those transitions.

MozReview-Commit-ID: Bo2VzjhhR0A

--HG--
extra : rebase_source : 9eb463cc68c16c3b9281b57455330969c5e2642c
2017-11-19 18:38:35 -05:00
Andreea Pavel
9474960c52 Backed out 1 changesets (bug 1370040) for build bustage at /cocoa/VibrancyManager.mm:207 r=backout on a CLOSED TREE
Backed out changeset 84c737eb3c6e (bug 1370040)
2017-11-20 01:36:36 +02:00
Markus Stange
75bf1f6ae8 Bug 1370040 - Use the public API -[NSVisualEffectView setMaskImage:] instead of the private API -[NSWindow _cornerMask]. r=spohl
The idea is the following:
Behind-window vibrancy is mostly rendered by the window server. For a given
vibrant region of a window, the window server renders a vibrancy "backdrop",
which is a blurred version of everything that's behind that region, modified
with a color tint and blended in some way. Then it puts our actual window
contents on top of that background.
The backdrop's shape is usually a rectangle. If we don't want it to be a
rectangle, we need to tell the window server about the shape that we want it to
be. We can't just "draw" a different shape in our own rendering, because our
own rendering is merely placed on top of the backdrop - but here we want to
modify the shape of the backdrop itself.

NSVisualEffectView lets us set a mask image on the view. If this view is the
content view of a window, then the view will automatically communicate the mask
image to the window server.

Traditionally, our popup windows have had a ChildView as their content view. If
we now want an NSVisualEffectView to be the content view of the window, then we
need to nest the ChildView inside that NSVisualEffectView.
But this NSVisualEffectView is only needed when the window is vibrant and the
vibrancy backdrop needs to have a certain shape. This is the case for our menus
which need to have rounded corners. If the window transitions to being
non-vibrant, or not needing a special shape, then we can go back to the way our
window's NSView hierarchy has worked traditionally. So we need to reparent
NSViews during those transitions.

MozReview-Commit-ID: Bo2VzjhhR0A

--HG--
extra : rebase_source : 0434a17e2cddc94715db6a5fd17bc27e2cddd05c
2017-11-19 17:01:02 -05:00
Robin Grenet
34508b32f6 Bug 1360278 - Add preference to trigger context menu on mouse up for GTK+ and macOS, r=mstange,smaug
MozReview-Commit-ID: Bg60bD8jIg6

--HG--
extra : rebase_source : cc8bd5796096f49ad4fdab81885a426afd6117e4
2017-11-16 13:35:58 +01:00
lochang
9214b56b5a Bug 1406268 - Use rect width/height instead of minimum width/height and clamp the rect on Linux. r=mats
MozReview-Commit-ID: B7KjnO9uaef

--HG--
extra : rebase_source : c4647b31b650dddd90df528ff1ac48f72d92fed5
2017-11-17 14:20:42 +08:00
Jean-Yves Avenard
66fa0333bd Bug 1417442 - P2. fix nsIGfxInfo in GPU process. r=dvander
MozReview-Commit-ID: FiU8Ygfh86s

--HG--
extra : rebase_source : 969ff0bc095e30820106ca08ecf5e06e2ebf223e
2017-11-15 23:33:37 +01:00
Jean-Yves Avenard
73c4627a67 Bug 1417442 - P1. Don't attempt to initialize MediaPrefs in the GPU process. r=dvander
MozReview-Commit-ID: 66766Tx8vgM

--HG--
extra : rebase_source : 43e37d4fc43d51f5e9f185a30965800d2f4f7830
2017-11-16 17:21:09 +01:00
Martin Stransky
8eafc3d45b Bug 1414212 - Enable titlebar rendering on Gtk+ >= 3.10, r=jhorak
MozReview-Commit-ID: JFmpa8JyHEl

--HG--
extra : rebase_source : 311e1ac327b78e2fe5251a465e120e8aee4df152
2017-11-16 15:18:17 +01:00
Ciure Andrei
fdbe147ffb Merge mozilla-central to autoland. r=merge a=merge CLOSED TREE 2017-11-17 12:09:31 +02:00
Ciure Andrei
92d28bd8f2 Merge inbound to mozilla-central r=merge a=merge 2017-11-17 11:59:03 +02:00
Makoto Kato
8fbfdec507 Bug 1417356 - xpcshell doesn't have Java thread. r=jchen
This is a regression by bug 1403690.  After landing this, some xpcshell tests
cause crash with stylo.

mozilla::java::GeckoAppShell::GetShowPasswordSetting doesn't work on xpcshell
test.  If JNI isn't available such as xpcshell, we shouldn't use this method.

MozReview-Commit-ID: AUrT93SkQ2H

--HG--
extra : rebase_source : 2147a42633ea98e3a4d891af832f28c105d5dcf8
2017-11-16 12:25:26 +09:00
Joel Maher
eb7c7c286f Bug 1417653 - clean up a few moz.build files that have typos. r=gbrown 2017-11-16 08:56:51 -05:00
Brendan Dahl
ce5b5fa465 Bug 1409580 - Raise headless sheet widgets when shown. r=jrmuizel
Fixes:
 - test_modal_prompts.html
 - test_prompt.html

MozReview-Commit-ID: IHkrqAaMe7L

--HG--
extra : rebase_source : 9a7e377f621fdad5a30a178e5f82d7f8d8b24105
2017-10-19 17:09:28 -07:00
Brendan Dahl
5530b8b09e Bug 1409580 - Use different scroll delta modes on different platforms in headless. r=jrmuizel
Fixes test_group_wheelevents.html

MozReview-Commit-ID: Ctq0WngKG15

--HG--
extra : rebase_source : 4322e00378827c34d83c2b732da7564ed0b3e00e
2017-10-19 15:57:39 -07:00
Brendan Dahl
a58c9d187c Bug 1409580 - Use top level widget for headless screen offset. r=jrmuizel
Fixes test_group_mouseevents.html

MozReview-Commit-ID: dHItN6BssI

--HG--
extra : rebase_source : 2cb934efd8f94ec1cb817851e79442264a739a98
2017-10-19 15:55:35 -07:00
Boris Zbarsky
198e006805 Bug 1415741. Switch to a different env var, not MOZ_DEBUG, for disabling mouse event taps on Mac. r=mstange
MozReview-Commit-ID: BgFpmE2Juom
2017-11-15 12:23:58 -05:00
Noemi Erli
f24a75f9b7 Merge mozilla-central to mozilla-inbound. r=merge a=merge CLOSED TREE 2017-11-15 12:15:40 +02:00