- Jun 01, 2023
-
-
Emilio Cobos Álvarez authored
Since the headless work (bug 1129492 and co) we realistically have no way of rendering native scrollbars in any meaningful way. Remove dead code that used to support using a different GTK theme on content. Differential Revision: https://phabricator.services.mozilla.com/D179616
-
- May 14, 2023
-
-
Edgar Chen authored
Bug 1712122 - Part 3: Cancel pending write request when a new write request is made; r=nika,geckoview-reviewers,m_kato The Async Clipboard API now allows using arbitrary promises for passing write data, potentially enabling websites to delay writing data to an arbitrary future, which may surprise the user. This patch introduces a solution: a new write request will automatically cancel any previous pending request. To implement that, this patch introduces a new method to nsIClipboard, new XPCOM interfaces, and new IPC to efficiently track individual write requests. Additionally, a new helper base class, ClipboardSetDataHelper, is introduced in widget to facilitate platform code sharing. Differential Revision: https://phabricator.services.mozilla.com/D174090
-
- Apr 01, 2023
-
-
serge-sans-paille authored
Bug 1825324 - Make widget/* buildable outside of a unified build environment r=andi,geckoview-reviewers,m_kato Differential Revision: https://phabricator.services.mozilla.com/D173969
-
- Mar 31, 2023
-
-
Cristian Tuns authored
Backed out 12 changesets (bug 1825325, bug 1825336, bug 1825333, bug 1825332, bug 1825324, bug 1824557, bug 1825328, bug 1825335, bug 1825330, bug 1825329, bug 1825327, bug 1825331) for causing build bustages in nsClipboard.cpp CLOSED TREE Backed out changeset 9de3ed24d3a0 (bug 1825336) Backed out changeset aef787728f19 (bug 1825335) Backed out changeset a04c341244c1 (bug 1825333) Backed out changeset e3ad15f762ba (bug 1825332) Backed out changeset eed23da92a27 (bug 1825331) Backed out changeset 8213bb54376e (bug 1825330) Backed out changeset 747ec5ac4994 (bug 1825329) Backed out changeset e91ff431f92d (bug 1825328) Backed out changeset 59c18d13768b (bug 1825327) Backed out changeset 538096d99e49 (bug 1825325) Backed out changeset c76eb9d9b095 (bug 1825324) Backed out changeset 8b81410eb686 (bug 1824557)
-
serge-sans-paille authored
Bug 1825324 - Make widget/* buildable outside of a unified build environment r=andi,geckoview-reviewers,m_kato Depends on D173637 Differential Revision: https://phabricator.services.mozilla.com/D173969
-
- Jan 23, 2023
-
-
Emilio Cobos Álvarez authored
Move it to the mozilla::widget namespace. Use enum classes for transparency, popup type, popup level, etc. Mostly automated with sed, but there were a few manual changes required as well in windows code because they relied on Atomic<TransparencyMode> working (which now doesn't because TransparencyMode is 1 byte instead of 4 bytes). Differential Revision: https://phabricator.services.mozilla.com/D167537
-
- Dec 15, 2022
-
-
matc authored
Implementations of nsIEmbeddingSiteWindow and nsIBaseWindow largely overlap, and where they don't, the nsIEmbeddingSiteWindow implementation of the otherwise shared interface is primarily stubbed out with the exception of Get/SetDimensions(). This patch moves a reimplementation of Get/SetDimensions() from nsIEmbeddingSiteWindow to nsIBaseWindow. The other methods of nsIEmbeddingSiteWindow remain covered by nsIBaseWindow. Get/SetDimensions() can be implemented as part of nsIWebBrowserChrome where nsIBaseWindow is not necessary. This removes the need for nsIEmbeddingSiteWindow. Blur() has also been moved to nsIWebBrowserChrome, as only nsContentTreeOwner has an actual implementation which we in theory also want to call from BrowserChild/Parent, but the spec suggests to "selectively or uniformly ignore calls". GetVisibility() had an implementation in BrowserChild that pretended to always be visible. Instead of providing an interface for that, nsDocShell now handles the not implemented case for tree owners. nsIEmbeddingSiteWindow::GetSiteWindow() used to call through to nsIBaseWindow::GetParentNativeWindow(). The Get/SetDimensions() implementation has been replaced with a strongly typed setter, which is now also used directly from nsGlobalWindowOuter to avoid problems that come with autodetecting unchanged dimensions, when the current dimensions are outdated (e.g. immediately reverting a change can be ignored). Differential Revision: https://phabricator.services.mozilla.com/D160260
-
- Dec 02, 2022
-
-
Sandor Molnar authored
Backed out changeset ae94135e68ef (bug 1786048) Backed out changeset f505df8a481a (bug 1786048) Backed out changeset 999a18d6f33e (bug 1786048) Backed out changeset e71e8644b8a9 (bug 1786048)
-
matc authored
Implementations of nsIEmbeddingSiteWindow and nsIBaseWindow largely overlap, and where they don't, the nsIEmbeddingSiteWindow implementation of the otherwise shared interface is primarily stubbed out with the exception of Get/SetDimensions(). This patch moves a reimplementation of Get/SetDimensions() from nsIEmbeddingSiteWindow to nsIBaseWindow. The other methods of nsIEmbeddingSiteWindow remain covered by nsIBaseWindow. Get/SetDimensions() can be implemented as part of nsIWebBrowserChrome where nsIBaseWindow is not necessary. This removes the need for nsIEmbeddingSiteWindow. Blur() has also been moved to nsIWebBrowserChrome, as only nsContentTreeOwner has an actual implementation which we in theory also want to call from BrowserChild/Parent, but the spec suggests to "selectively or uniformly ignore calls". GetVisibility() had an implementation in BrowserChild that pretended to always be visible. Instead of providing an interface for that, nsDocShell now handles the not implemented case for tree owners. nsIEmbeddingSiteWindow::GetSiteWindow() used to call through to nsIBaseWindow::GetParentNativeWindow(). The Get/SetDimensions() implementation has been replaced with a strongly typed setter, which is now also used directly from nsGlobalWindowOuter to avoid problems that come with autodetecting unchanged dimensions, when the current dimensions are outdated (e.g. immediately reverting a change can be ignored). Differential Revision: https://phabricator.services.mozilla.com/D160260
-
- Dec 01, 2022
-
-
Marian-Vasile Laza authored
Backed out 4 changesets (bug 1786048) for causing bc failures on browser_modal_resize.js. CLOSED TREE Backed out changeset 318a2d2e6e39 (bug 1786048) Backed out changeset 17a9990d6d19 (bug 1786048) Backed out changeset 205f129c648a (bug 1786048) Backed out changeset 0750c885a688 (bug 1786048)
-
- Nov 30, 2022
-
-
matc authored
Implementations of nsIEmbeddingSiteWindow and nsIBaseWindow largely overlap, and where they don't, the nsIEmbeddingSiteWindow implementation of the otherwise shared interface is primarily stubbed out with the exception of Get/SetDimensions(). This patch moves a reimplementation of Get/SetDimensions() from nsIEmbeddingSiteWindow to nsIBaseWindow. The other methods of nsIEmbeddingSiteWindow remain covered by nsIBaseWindow. Get/SetDimensions() can be implemented as part of nsIWebBrowserChrome where nsIBaseWindow is not necessary. This removes the need for nsIEmbeddingSiteWindow. Blur() has also been moved to nsIWebBrowserChrome, as only nsContentTreeOwner has an actual implementation which we in theory also want to call from BrowserChild/Parent, but the spec suggests to "selectively or uniformly ignore calls". GetVisibility() had an implementation in BrowserChild that pretended to always be visible. Instead of providing an interface for that, nsDocShell now handles the not implemented case for tree owners. nsIEmbeddingSiteWindow::GetSiteWindow() used to call through to nsIBaseWindow::GetParentNativeWindow(). The Get/SetDimensions() implementation has been replaced with a strongly typed setter, which is now also used directly from nsGlobalWindowOuter to avoid problems that come with autodetecting unchanged dimensions, when the current dimensions are outdated (e.g. immediately reverting a change can be ignored). Differential Revision: https://phabricator.services.mozilla.com/D160260
-
- Nov 23, 2022
-
-
Emilio Cobos Álvarez authored
This fixes the snap layouts feature on Windows 11. Instead of using a content attribute (which is somewhat expensive to look up) use the default appearance and do this where we deal with other appearance hacks (before building themed backgrounds). Consolidate this inside a DealWithWindowsAppearanceHacks function along with the glass stuff. Differential Revision: https://phabricator.services.mozilla.com/D162757
-
- Aug 26, 2022
-
-
Nika Layzell authored
The IPCDataTransfer type is used to transfer Clipboard/Drag & Drop payloads over IPC to allow them to be written to or read from the relevant system interfaces. Previously, the system which was used was somewhat complex, and tried to use Shmem in some cases to store buffers out of line. Now that BigBuffer is available, it can be simplified substantially. In addition, this change removed the memory buffer overload of GetSurfaceData, as the only consumer was using it to immediately send the payload over IPC as a nsCString. It was changed to instead use `BigBuffer` as that is more efficient in a large buffer situation, and reduces the number of required copies. Differential Revision: https://phabricator.services.mozilla.com/D151852
-
- Aug 22, 2022
-
-
Marian-Vasile Laza authored
Backed out 4 changesets (bug 1781129) for causing mochitest failures on test_bug490879.html. CLOSED TREE Backed out changeset 37da1d18cde9 (bug 1781129) Backed out changeset 1ae213bfa43e (bug 1781129) Backed out changeset dcebc98ea1f1 (bug 1781129) Backed out changeset 0df2f2832755 (bug 1781129)
-
Nika Layzell authored
The IPCDataTransfer type is used to transfer Clipboard/Drag & Drop payloads over IPC to allow them to be written to or read from the relevant system interfaces. Previously, the system which was used was somewhat complex, and tried to use Shmem in some cases to store buffers out of line. Now that BigBuffer is available, it can be simplified substantially. In addition, this change removed the memory buffer overload of GetSurfaceData, as the only consumer was using it to immediately send the payload over IPC as a nsCString. It was changed to instead use `BigBuffer` as that is more efficient in a large buffer situation, and reduces the number of required copies. Differential Revision: https://phabricator.services.mozilla.com/D151852
-
- Aug 02, 2022
-
-
Marian-Vasile Laza authored
Backed out changeset 8557305bcd46 (bug 1781129) Backed out changeset df6f98df9559 (bug 1781129) Backed out changeset 905393f66985 (bug 1781129) Backed out changeset 0d0f19a4db70 (bug 1781129)
-
Nika Layzell authored
The IPCDataTransfer type is used to transfer Clipboard/Drag & Drop payloads over IPC to allow them to be written to or read from the relevant system interfaces. Previously, the system which was used was somewhat complex, and tried to use Shmem in some cases to store buffers out of line. Now that BigBuffer is available, it can be simplified substantially. In addition, this change removed the memory buffer overload of GetSurfaceData, as the only consumer was using it to immediately send the payload over IPC as a nsCString. It was changed to instead use `BigBuffer` as that is more efficient in a large buffer situation, and reduces the number of required copies. Differential Revision: https://phabricator.services.mozilla.com/D151852
-
Marian-Vasile Laza authored
Backed out changeset 4a92d58726aa (bug 1781129) Backed out changeset bce3f99441c0 (bug 1781129) Backed out changeset fc135243503e (bug 1781129) Backed out changeset 726458f976ff (bug 1781129)
-
Nika Layzell authored
The IPCDataTransfer type is used to transfer Clipboard/Drag & Drop payloads over IPC to allow them to be written to or read from the relevant system interfaces. Previously, the system which was used was somewhat complex, and tried to use Shmem in some cases to store buffers out of line. Now that BigBuffer is available, it can be simplified substantially. In addition, this change removed the memory buffer overload of GetSurfaceData, as the only consumer was using it to immediately send the payload over IPC as a nsCString. It was changed to instead use `BigBuffer` as that is more efficient in a large buffer situation, and reduces the number of required copies. Differential Revision: https://phabricator.services.mozilla.com/D151852
-
- Jun 30, 2022
-
-
Kris Maglione authored
Several widget contracts use different implementations in the parent and content processes. Since the static registration system builds its hashtable at compile time rather than runtime, it doesn't support different contract IDs per process. It could make the decision at lookup time, but given how rarely it's needed, I don't think it would be worth the complexity. This patch updates the widget components that need different implementations in the parent and content process to register separate contracts for each implementation, and a third stub contract which forwards to the appropriate implementation depending on which process it's used in. The implementation entries restrict their usage to the process they are meant to be used in. Differential Revision: https://phabricator.services.mozilla.com/D149436
-
- Jun 24, 2022
-
-
Noemi Erli authored
Backed out 11 changesets (bug 1773770) because shouldn't have been landed during a soft freeze CLOSED TREE Backed out changeset ede55d570d1e (bug 1773770) Backed out changeset d5374ef362c2 (bug 1773770) Backed out changeset 26e47956508b (bug 1773770) Backed out changeset c78f0c4c8f3f (bug 1773770) Backed out changeset 9089a97bcb26 (bug 1773770) Backed out changeset 17894f5b3b41 (bug 1773770) Backed out changeset 986a64a9e6b4 (bug 1773770) Backed out changeset 7a63d8676bf0 (bug 1773770) Backed out changeset 38e7b99ffbed (bug 1773770) Backed out changeset e9ad07c96ab2 (bug 1773770) Backed out changeset 2a8f65417b66 (bug 1773770)
-
Kris Maglione authored
Several widget contracts use different implementations in the parent and content processes. Since the static registration system builds its hashtable at compile time rather than runtime, it doesn't support different contract IDs per process. It could make the decision at lookup time, but given how rarely it's needed, I don't think it would be worth the complexity. This patch updates the widget components that need different implementations in the parent and content process to register separate contracts for each implementation, and a third stub contract which forwards to the appropriate implementation depending on which process it's used in. The implementation entries restrict their usage to the process they are meant to be used in. Differential Revision: https://phabricator.services.mozilla.com/D149436
-
criss authored
Backed out 11 changesets (bug 1773770) for causing mochitest failures on test_bug466599.xhtml. CLOSED TREE Backed out changeset d35762c3242d (bug 1773770) Backed out changeset 0501c85d3f58 (bug 1773770) Backed out changeset cdd28e0e3434 (bug 1773770) Backed out changeset a48829529dd0 (bug 1773770) Backed out changeset c3fcdd7e88e5 (bug 1773770) Backed out changeset 8f334c5dc0cd (bug 1773770) Backed out changeset 337e76b67647 (bug 1773770) Backed out changeset 71f539b482ba (bug 1773770) Backed out changeset b996cbbbc2f5 (bug 1773770) Backed out changeset a6ddc3cdc9ba (bug 1773770) Backed out changeset c8d7da3cf2ac (bug 1773770)
-
Kris Maglione authored
Several widget contracts use different implementations in the parent and content processes. Since the static registration system builds its hashtable at compile time rather than runtime, it doesn't support different contract IDs per process. It could make the decision at lookup time, but given how rarely it's needed, I don't think it would be worth the complexity. This patch updates the widget components that need different implementations in the parent and content process to register separate contracts for each implementation, and a third stub contract which forwards to the appropriate implementation depending on which process it's used in. The implementation entries restrict their usage to the process they are meant to be used in. Differential Revision: https://phabricator.services.mozilla.com/D149436
-
Marian-Vasile Laza authored
Backed out 11 changesets (bug 1773770) for causing bc failures on browser_xpcom_graph_wait.js. CLOSED TREE Backed out changeset 72ace9ee39ae (bug 1773770) Backed out changeset e8a3a040b4c4 (bug 1773770) Backed out changeset 4ff5f4f0f5d1 (bug 1773770) Backed out changeset f96e9664168d (bug 1773770) Backed out changeset b6a696897ca8 (bug 1773770) Backed out changeset 1b8ad6be2dce (bug 1773770) Backed out changeset 7e3a1a32a88d (bug 1773770) Backed out changeset 6dbe5fa1ad4f (bug 1773770) Backed out changeset 86e09dcdadde (bug 1773770) Backed out changeset 1ee8d852d9d5 (bug 1773770) Backed out changeset c99e93023059 (bug 1773770)
-
- Jun 23, 2022
-
-
Kris Maglione authored
Several widget contracts use different implementations in the parent and content processes. Since the static registration system builds its hashtable at compile time rather than runtime, it doesn't support different contract IDs per process. It could make the decision at lookup time, but given how rarely it's needed, I don't think it would be worth the complexity. This patch updates the widget components that need different implementations in the parent and content process to register separate contracts for each implementation, and a third stub contract which forwards to the appropriate implementation depending on which process it's used in. The implementation entries restrict their usage to the process they are meant to be used in. Differential Revision: https://phabricator.services.mozilla.com/D149436
-
Marian-Vasile Laza authored
Backed out changeset 3538e99dd668 (bug 1773770) Backed out changeset 0862b3275742 (bug 1773770) Backed out changeset 45dbd95d94bb (bug 1773770) Backed out changeset 1d079a6ae89c (bug 1773770) Backed out changeset ac4c4a143ff7 (bug 1773770) Backed out changeset 0e3233868101 (bug 1773770) Backed out changeset ac727812fd06 (bug 1773770) Backed out changeset fe46df06e31a (bug 1773770) Backed out changeset 51b89b344d7f (bug 1773770) Backed out changeset 62e49ca3f288 (bug 1773770) Backed out changeset 6df39588ec9a (bug 1773770)
-
Kris Maglione authored
Several widget contracts use different implementations in the parent and content processes. Since the static registration system builds its hashtable at compile time rather than runtime, it doesn't support different contract IDs per process. It could make the decision at lookup time, but given how rarely it's needed, I don't think it would be worth the complexity. This patch updates the widget components that need different implementations in the parent and content process to register separate contracts for each implementation, and a third stub contract which forwards to the appropriate implementation depending on which process it's used in. The implementation entries restrict their usage to the process they are meant to be used in. Differential Revision: https://phabricator.services.mozilla.com/D149436
-
- Jun 14, 2022
-
-
Emilio Cobos Álvarez authored
In bug 1773342 I made OS text scale factor behave like a full zoom factor which applies to all pages (including the browser chrome). That's generally straight forward but it makes some callsites that use unzoomed CSS coordinates misbehave (or behave correctly accidentally actually in some other cases). The main fix here is making nsIBaseWindow::UnscaledDevicePixelsPerCSSPixel() and nsIScreen::GetDefaultCSSScaleFactor() account for OS zoom as necessary. However, I also went through the relevant code and cleaned it up to use typed units and operations when possible. The setup means: * nsIWidget::GetDefaultScale() doesn't account for OS full zoom. * nsIBaseWindow and nsIScreen does. These are the places where this should matter and stuff can get confused, but this works surprisingly well for all callers (except one nsDeviceContext one which we use only for PuppetWidget and we can remove by falling back to 1.0 like all other widgets until the update comes). Differential Revision: https://phabricator.services.mozilla.com/D149033
-
Norisz Fay authored
-
Emilio Cobos Álvarez authored
In bug 1773342 I made OS text scale factor behave like a full zoom factor which applies to all pages (including the browser chrome). That's generally straight forward but it makes some callsites that use unzoomed CSS coordinates misbehave (or behave correctly accidentally actually in some other cases). The main fix here is making nsIBaseWindow::UnscaledDevicePixelsPerCSSPixel() and nsIScreen::GetDefaultCSSScaleFactor() account for OS zoom as necessary. However, I also went through the relevant code and cleaned it up to use typed units and operations when possible. The setup means: * nsIWidget::GetDefaultScale() doesn't account for OS full zoom. * nsIBaseWindow and nsIScreen does. These are the places where this should matter and stuff can get confused, but this works surprisingly well for all callers (except one nsDeviceContext one which we use only for PuppetWidget and we can remove by falling back to 1.0 like all other widgets until the update comes). Differential Revision: https://phabricator.services.mozilla.com/D149033
-
- Jun 13, 2022
-
-
Emilio Cobos Álvarez authored
It's dead code, widget/uikit uses it but that's dead code (it's the iOS port which if we ever resurrect we need to rewrite to use widget::Screen). Differential Revision: https://phabricator.services.mozilla.com/D149045
-
- May 20, 2022
-
-
Jonathan Watt authored
Bug 1770211 p4 - Move platform specific nsIDeviceContextSpec::GetPrintingScale/GetPrintingTranslate implementations up. r=bobowen Depends on D146859 Differential Revision: https://phabricator.services.mozilla.com/D146860
-
- May 17, 2022
-
-
Butkovits Atila authored
-
Edgar Chen authored
Differential Revision: https://phabricator.services.mozilla.com/D146074
-
Emilio Cobos Álvarez authored
It seems the order of XPIDL_SOURCES vs. XPIDL_MODULE is important. Differential Revision: https://phabricator.services.mozilla.com/D146579
-
Emilio Cobos Álvarez authored
It seems the order of XPIDL_SOURCES vs. XPIDL_MODULE is important. Differential Revision: https://phabricator.services.mozilla.com/D146579
-
- May 16, 2022
-
-
Jonathan Watt authored
Bug 1432651 p2 - Remove nsIPrintSession and all the code that uses it. r=emilio,geckoview-reviewers,m_kato Lately nsIPrintSession was only used to pass around RemotePrintJobChild objects. Now that we pass those objects explicitly where needed (part 1), this class serves no purpose. Another reason to want to get rid of this class is that having it as a member of nsIPrintSettings made no sense and was confusing. Differential Revision: https://phabricator.services.mozilla.com/D146381
-
- May 13, 2022
-
-
Jonathan Watt authored
nsIPrintingPromptService comes from an era when the platform print code would open the print settings dialog, which defaulted to the OS native dialogs. Its purpose was to allow that dialog to be overridden by embedders to provide their own interface for the user to select print settings. Nowadays the platform print code does not open the dialogs. Instead apps like Firefox are responsible for getting the print settings to pass to the platform code, and the platform code provides a way to open the OS native print dialog if they want to use that (nsIPrintDialogService). So nsIPrintingPromptService no longer has any purpose, and just adds indirection and needless complexity. Differential Revision: https://phabricator.services.mozilla.com/D146232
-
- Apr 20, 2022
-
-
ganguin authored
Force usage of EGL when building for wayland only. Enable build component that get disabled by undefined MOZ_X11 but are required for MOZ_WAYLAND. Depends on D139530 Differential Revision: https://phabricator.services.mozilla.com/D139531
-