When minimizing a fullscreen window, frame state is kept with
mFullscreenMode = true but mSizeMode = nsSizeMode_Minimized.
Calling EnsureSizeMode(nsSizeMode_Fullscreen) in this state would call
EnsureFullscreenMode(true), but that'd bail out without actually
setting the fullscreen sizemode, causing confusion.
Before the regressing patch that was papered over because
nsSizeMode_Fullscreen was passed explicitly to OnSizeModeChange(), but
the underlying state was already wrong before my patch.
Add some comments and documentation to the fullscreen-relevant members,
since initially I was rather confused about this code.
Differential Revision: https://phabricator.services.mozilla.com/D161982
This patch does **not** make `ContentEventHandler` return consistent rect
for invisible text node, however, it should be okay for now because users
cannot put caret into invisible text node and cannot type text into it.
For avoiding the warning spam of `ContentCacheInChild` in automated tests,
`ContentEventHandler::OnQueryTextRectArray` shouldn't give it up correcting
character rects in invisible text nodes. And as mentioned above, using
similar rects to visible character around there is okay. Therefore, this
patch makes `OnQueryTextRectArray` fills invisible text rects with caret
rect before following visible character if they are followed by visible
characters. Otherwise, i.e., if invisible text rects are the last things
in the range, make it use caret rect after the last visible character.
Note that if the range is completely in invisible nodes, the value will be
computed in the fallback part of the method. It still has issues, but it
does not happen so many times in the automated tests. Therefore, this patch
does not treat the case.
Differential Revision: https://phabricator.services.mozilla.com/D160593
_NETSCAPE_URL hints target application it should store URL link instead of copy the pointed data.
Don't use that for internal URL (mailbox:/// and similar).
Differential Revision: https://phabricator.services.mozilla.com/D161442
There is no Core: Widget - Android now, so we should update bug component of
widget/android. Also, I add GVE for GVE path.
Differential Revision: https://phabricator.services.mozilla.com/D161413
- Use 5 min timeout value to mTempFileTimerID so D&D files from /tmp are removed after a longer period.
- Remove all temporary files from nsDragService destructor.
- Add more logs.
Differential Revision: https://phabricator.services.mozilla.com/D161409
[Int]CoordTyped no longer inherits Units because otherwise
instances of [Int]IntPointTyped may get one Base subobject because
it inherits Units, and others because of BasePoint's Coord members,
which end up increasing the [Int]CoordTyped's objects size (since
according to the ISO C++ standard, different Base subobject are
required to have different addresses).
Differential Revision: https://phabricator.services.mozilla.com/D160713
We can't report monitor/screen shift to layout on Wayland. It causes wrong popup placement as all window/popup coordinates are used relatively to parent on Wayland.
Also we can't get/set position of toplevel windows on Wayland.
Differential Revision: https://phabricator.services.mozilla.com/D160784
On Android when SWGL is enabled, occasionally when switching tabs it
refuses to render the new tab. The user will instead be left with the
contents of the previous tab, or if they have just switched to firefox
they will be left with a black screen.
This occurs when SyncResumeResizeCompositor is called from java code
prior to the gecko compositor having been created. This results in us
delaying the call to UiCompositorController::ResumeAndResize().
Instead, once the compositor eventually gets created we call
UiCompositorController::Resume() (without the resize).
This means that the compositor widget is left with a zero size, and
RenderCompositorLayersSWGL bails early on compositing as a result.
To fix this, we cache the X, Y, width, and height arguments passed to
SyncResumeResizeCompositor. Then to resume the compositor when it
eventually gets created, we call ResumeAndResize() with the cached
values, rather than just calling Resume.
Differential Revision: https://phabricator.services.mozilla.com/D161046
At the moment, launching with `-private-window` (which we now do more easily with `private_browsing.exe` and the associated shortcut) when private browsing is disabled will open a private-looking window that is not private...which is very misleading.
This includes:
* Shortcut creation (which will end up with private shortcuts that open non-private windows)
* Setting AUMID and window/taskbar icons
The latter is handled with a guard in the two places we do it (nsWindow.cpp & BrowserContentHandler.jsm). Ideally, no caller would ever request a private window when private browsing is disabled...but I don't think that's a realistic possibility.
I also noticed we're doing some unnecessary work in the jump list builder when private browsing is disabled, so I fixed that.
I don't think this is reasonably testable in automation (ultimately, AUMID and icons are attributes of the Windows API objects, and we don't have the scaffolding to retrieve those in tests) -- but I'd be happy to be wrong about this.
Differential Revision: https://phabricator.services.mozilla.com/D160568
Otherwise Chromium gets confused when pasting (Signal is an Electron
application).
I need to dig a bit more, but this doesn't prevent the fix for
bug 1774285 from working, and fixes the issue here.
It's probably a Chromium bug that this doesn't work tho since,
as mentioned in comment 0, it works on other Windows applications.
Differential Revision: https://phabricator.services.mozilla.com/D160808