Commit Graph

1413 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
f125fdcce4 Bug 1609446 - Make default window-constraints always show the content. r=mats,mstange
This code is used to determine the sizes of the top-level windows. However the
code doesn't cause quite desirable behavior (see the bug, and comment 15).

This patch does two things:

 * Unifies the html / xul code-paths. This shouldn't change behavior (because
   GetXULMinSize returns the fixed min-* property if present anyways), but
   makes the patch a bit simpler.

 * Makes the min-width of the XUL window be the pref size instead of the
   min-size (for the cases where you have no explicit min-width). This looks a
   bit counter intuitive, but it's the only way to guarantee that the content
   will be shown. This matches the sizing algorithm that dialogs use by default
   (via calling window.sizeToContent()), while allowing to undersize the window
   via a fixed min-width property.

This in turn makes sizeToContent() work "by default" on XUL windows, avoiding
having to make JS listen to everything that possibly could change the layout of
the document (like resolution changes).

Differential Revision: https://phabricator.services.mozilla.com/D70209
2020-04-15 01:44:25 +00:00
Botond Ballo
0c5e94c87e Bug 1629732 - Fix non-unified build errors in layout/base. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D70785
2020-04-14 03:05:26 +00:00
Kristen Wright
3aa2d68e11 Bug 1626388 - Convert two prefs in nsDocumentViewer to static pref r=njn
Converts `dom.disable_beforeunload` and `dom.require_user_interaction_for_beforeunload` to static pref.

Differential Revision: https://phabricator.services.mozilla.com/D69600
2020-04-06 19:57:01 +00:00
Emilio Cobos Álvarez
5fe67eadfa Bug 1620575 - Ensure that sizeToContent ceils when converting to dev pixels. r=dholbert
If we get a sub-pixel content size, rounding down may actually cause the content
to wrap, which is not desirable and would cause the content to be truncated.

Differential Revision: https://phabricator.services.mozilla.com/D69744
2020-04-06 07:38:25 +00:00
Sylvestre Ledru
3ce73036e5 Bug 1519636 - Reformat recent changes to the Google coding style r=jgilbert
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D67574
2020-04-05 13:34:58 +00:00
Emilio Cobos Álvarez
66ff09f01e Bug 1624829 - Use FunctionRef for various Enumerate* callbacks. r=edgar
This avoids a bunch of ugly casts and void pointers, without much overhead
(unlike std::function or such).

Differential Revision: https://phabricator.services.mozilla.com/D68182
2020-03-26 12:44:47 +00:00
Emilio Cobos Álvarez
0180a4c63b Bug 1623837 - Use the last focused selection in nsDocViewerFocusListener. r=masayuki
This fixes the case where you have a focused input (or selection for <input
disabled>) in an <iframe> and move the focus outside of the iframe.

Differential Revision: https://phabricator.services.mozilla.com/D67596
2020-03-23 01:31:14 +00:00
Emilio Cobos Álvarez
b9ac81d824 Bug 253870 - Make disabled form controls selectable. r=masayuki,MarcoZ
This rejiggers a bit the way selection focus is handled so that focusing a
disabled form control with the mouse handles selection properly, and hides the
document selection and so on.

This matches the behavior of other browsers as far as I can tell.

Given now readonly and disabled editors behave the same, we can simplify a bit
the surrounding editor code.

Differential Revision: https://phabricator.services.mozilla.com/D66464
2020-03-19 13:18:16 +00:00
Mihai Alexandru Michis
1e7b7fcd8b Backed out changeset 9eeee9ec66d9 (bug 253870) for causing failures in browser_bug1261299.js
CLOSED TREE
2020-03-16 22:32:41 +02:00
Emilio Cobos Álvarez
b99995f100 Bug 253870 - Make disabled form controls selectable. r=masayuki,MarcoZ
This rejiggers a bit the way selection focus is handled so that focusing a
disabled form control with the mouse handles selection properly, and hides the
document selection and so on.

This matches the behavior of other browsers as far as I can tell.

Given now readonly and disabled editors behave the same, we can simplify a bit
the surrounding editor code.

Differential Revision: https://phabricator.services.mozilla.com/D66464
2020-03-16 17:41:07 +00:00
Makoto Kato
e93441044a Bug 1503656 - Part 7. Notify of safe area insets changed. r=smaug
Since safe area insets uses on content, we need send it from chrome process to
content process.

SafeAreaInsetsChanged will be called per window position/size change (Next
patch is Android implementation for it), we have to calculate safe area insets
on widget/window per change.

Current implementation is that this value is top level document only like Blink
since https://github.com/w3c/csswg-drafts/issues/4670 isn't resolved yet.

Differential Revision: https://phabricator.services.mozilla.com/D55084
2020-03-04 08:16:31 +00:00
Csoregi Natalia
078d08c712 Backed out 6 changesets (bug 1503656) as per request. CLOSED TREE
Backed out changeset 27faa3b167a9 (bug 1503656)
Backed out changeset 7111f9b5ad06 (bug 1503656)
Backed out changeset 43fdc889beac (bug 1503656)
Backed out changeset 332ceea26151 (bug 1503656)
Backed out changeset f31efa4ea2ec (bug 1503656)
Backed out changeset 91b847efe591 (bug 1503656)
2020-03-04 10:07:42 +02:00
Makoto Kato
ae5b78896d Bug 1503656 - Part 7. Notify of safe area insets changed. r=smaug
Since safe area insets uses on content, we need send it from chrome process to
content process.

SafeAreaInsetsChanged will be called per window position/size change (Next
patch is Android implementation for it), we have to calculate safe area insets
on widget/window per change.

Current implementation is that this value is top level document only like Blink
since https://github.com/w3c/csswg-drafts/issues/4670 isn't resolved yet.

Differential Revision: https://phabricator.services.mozilla.com/D55084
2020-03-04 07:28:04 +00:00
Jonathan Watt
bf67b6a70c Bug 1618909. Remove nsIWebBrowserPrint.documentName. r=nordzilla
Differential Revision: https://phabricator.services.mozilla.com/D64774
2020-03-02 20:10:10 +00:00
Simon Giesecke
9bcfd47601 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-13 14:38:48 +00:00
shindli
6bb3487209 Backed out changeset 0c982bc69cb3 (bug 1611415) for causing build bustages in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCOMPtr CLOSED TREE 2020-02-12 20:13:29 +02:00
Simon Giesecke
d45525793f Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-12 17:24:41 +00:00
Tetsuharu OHZEKI
1e5bc41570 Bug 1597475 - Fix uses of nsIDocShellTreeItem in nsDocumentViewer::GetContentSize(). r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D61415
2020-02-02 16:53:54 +00:00
Tetsuharu OHZEKI
88b6b02d0d Bug 1597478 - follow up: add the null check for mPresContext. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D61416
2020-02-02 17:02:38 +00:00
Tetsuharu OHZEKI
0a127b6fb9 Bug 1597478 - Fix uses of nsIDocShellTreeItem in nsDocumentViewer::ShouldAttachToTopLevel(). r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D61413
2020-02-02 16:47:14 +00:00
tichnas
4b1a49091b Bug 1605876 - Removed redundant #if(s). r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D60347
2020-01-19 17:10:23 +00:00
Hiroyuki Ikezoe
48585fe72f Bug 1596317 - Use CallState for SubDocEnumFunc. r=smaug
`true` -> `CallState::Continue`
`false` -> `CallState::Stop`

Differential Revision: https://phabricator.services.mozilla.com/D57437
2019-12-19 07:58:45 +00:00
Bogdan Tara
e59c8c65fb Backed out 7 changesets (bug 1596317) for causing build bustages CLOSED TREE
Backed out changeset 0d3208fcb948 (bug 1596317)
Backed out changeset fe5554dc4115 (bug 1596317)
Backed out changeset 019de59cbc93 (bug 1596317)
Backed out changeset f4851472b087 (bug 1596317)
Backed out changeset a984cf515db8 (bug 1596317)
Backed out changeset d0da5bf9b4d4 (bug 1596317)
Backed out changeset abe5f2030dd9 (bug 1596317)
2019-12-19 06:49:39 +02:00
Hiroyuki Ikezoe
5575d95de1 Bug 1596317 - Use CallState for SubDocEnumFunc. r=smaug
`true` -> `CallState::Continue`
`false` -> `CallState::Stop`

Differential Revision: https://phabricator.services.mozilla.com/D57437
2019-12-19 04:16:10 +00:00
Emilio Cobos Álvarez
01ed71d1a7 Bug 1602003 - Correct writing-mode handling of nsDocumentViewer::GetContentSize. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D57640
2019-12-18 17:16:49 +00:00
Emilio Cobos Álvarez
9034de5dd0 Bug 1603313 - Subdocument enum callbacks should take a reference. r=bzbarsky
As they can never take null.

Differential Revision: https://phabricator.services.mozilla.com/D56843
2019-12-14 05:08:39 +00:00
Emilio Cobos Álvarez
fc769cdafc Bug 1603871 - Simplify some bits in nsDocumentViewer. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D57175
2019-12-14 00:25:22 +00:00
Csoregi Natalia
e55bd2f084 Backed out changeset 080ffc0db292 (bug 1603871) for bustages on nsDocumentViewer.cpp. CLOSED TREE 2019-12-14 01:29:09 +02:00
Emilio Cobos Álvarez
e2473cf6e8 Bug 1603871 - Simplify some bits in nsDocumentViewer. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D57175
2019-12-13 23:05:38 +00:00
Olli Pettay
c96e061efc Bug 1596958 - Synchronize layouthistorystate to parent process, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D53288
2019-12-05 20:30:45 +00:00
Brindusan Cristian
571f63a42b Backed out changeset 69ac0bf82505 (bug 1596958) for assertion failures at nsSHEntry.cpp. CLOSED TREE 2019-12-05 21:01:02 +02:00
Olli Pettay
5387a9b735 Bug 1596958 - Synchronize layouthistorystate to parent process, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D53288
2019-12-05 17:33:48 +00:00
Boris Zbarsky
2df1df0176 Bug 1517588. Use nsIPrincipal::IsSystemPrincipal instead of nsContentUtils::IsSystemPrincipal r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D53067
2019-12-05 04:44:32 +00:00
Emilio Cobos Álvarez
6952f7d153 Bug 1599161 - Rename nsLayoutStylesheetCache to GlobalStyleSheetCache. r=boris
It's a better name, and will avoid confusion when I add other stylesheet caches
outside of the CSS loader.

Depends on D54556

Differential Revision: https://phabricator.services.mozilla.com/D54557
2019-11-25 22:08:43 +00:00
Ehsan Akhgari
c5ab356460 Bug 1592599 - Switch nsIDocShell.getDocShellEnumerator() away from using nsISimpleEnumerator; r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D51100
2019-11-18 20:11:58 +00:00
Ting-Yu Lin
759bf8f4bf Bug 1590185 Part 2 - Support paged mode layout in layout debugger. r=dbaron
This patch adds a menu item in "Toggle" -> "Paged Mode". If the item is
toggled, after finishing loading the document, the document will be
forced into paged mode.

The print settings in `nsLayoutDebuggingTools::SetPagedMode()` are
similar to `setupPrintMode()` in reftest-content.js.

Remove the hack in nsDocumentViewer::InitInternal() because we don't
want to set a new document when mIsPageMode = false.

Differential Revision: https://phabricator.services.mozilla.com/D49993
2019-10-29 19:51:42 +00:00
Brad Werth
abed8b2a58 Bug 1561227 Part 1: Make nsDocumentViewer send a new event before setting full zoom levels on the pres contexts. r=emilio
The PreFullZoomChange event gives listeners an opportunity to capture
state before the viewport full zoom changes. Responsive Design Mode uses
this to save and later restore the resolution of the RDM pane.

Differential Revision: https://phabricator.services.mozilla.com/D48621
2019-10-25 21:05:42 +00:00
Ciure Andrei
33bb767c54 Backed out 8 changesets (bug 1561227) for causing browser_viewport_resizing_scrollbar.js to permafail CLOSED TREE
Backed out changeset aa00b1b62ea7 (bug 1561227)
Backed out changeset b22440a67078 (bug 1561227)
Backed out changeset 4776cec83ae8 (bug 1561227)
Backed out changeset ac88bbefb95f (bug 1561227)
Backed out changeset aef3cfa2f539 (bug 1561227)
Backed out changeset a3759e1a04e2 (bug 1561227)
Backed out changeset cfcf79794049 (bug 1561227)
Backed out changeset 97be65338edf (bug 1561227)
2019-10-26 00:00:48 +03:00
Brad Werth
a6dccdd7ec Bug 1561227 Part 1: Make nsDocumentViewer send a new event before setting full zoom levels on the pres contexts. r=emilio
The PreFullZoomChange event gives listeners an opportunity to capture
state before the viewport full zoom changes. Responsive Design Mode uses
this to save and later restore the resolution of the RDM pane.

Differential Revision: https://phabricator.services.mozilla.com/D48621
2019-10-24 23:42:50 +00:00
Csoregi Natalia
3cb82c8733 Backed out 8 changesets (bug 1561227) for failures on browser_viewport_resizing_scrollbar.js. CLOSED TREE
Backed out changeset 8117cafb3a20 (bug 1561227)
Backed out changeset 635534927ffc (bug 1561227)
Backed out changeset 693b0dd88f2b (bug 1561227)
Backed out changeset 257bc09f49af (bug 1561227)
Backed out changeset 1b63d555c6c1 (bug 1561227)
Backed out changeset 677da957ddcb (bug 1561227)
Backed out changeset f8b8e593316f (bug 1561227)
Backed out changeset 849e1cf51a8f (bug 1561227)
2019-10-25 02:35:11 +03:00
Brad Werth
fb7f827869 Bug 1561227 Part 1: Make nsDocumentViewer send a new event before setting full zoom levels on the pres contexts. r=emilio
The PreFullZoomChange event gives listeners an opportunity to capture
state before the viewport full zoom changes. Responsive Design Mode uses
this to save and later restore the resolution of the RDM pane.

Differential Revision: https://phabricator.services.mozilla.com/D48621
2019-10-24 16:48:14 +00:00
Emilio Cobos Álvarez
6722ffea60 Bug 1585778 - Validate the input of nsDocumentViewer::GetContentSize to not violate the precondition of PresShell::ResizeReflow. r=dholbert
For huge sizes we may end up with an unconstrained isize. Just avoid sizing the
window to that.

Differential Revision: https://phabricator.services.mozilla.com/D49062
2019-10-12 16:11:32 +00:00
Emilio Cobos Álvarez
c1bd815761 Bug 1583534 - Further simplify PresShell::ResizeReflow. r=botond
In particular, not let ResizeReflow take the old and new size. Most of the
callers pass dummy values anyway.

Instead, use the old size of the layout viewport. This ensures we fire resize
events only if the layout viewport actually changes.

This is important because the first resize of the mobile viewport manager
after a navigation has an "old size" of 0x0, even though the layout viewport
is initialized on presshell initialization to the right size.

Thus, we fire resize events unnecessarily in that case, which is the root cause
for bug 1528052.

To do this, we need to shuffle a bit of code in nsDocumentViewer that deals with
delayed resizes, to set the visible area _and_ invalidate layout, rather than
setting the visible area and _then_ relying on doing a resize reflow.

Further cleanup is possible, though not required for my android resizing fix, so
will do separately.

Differential Revision: https://phabricator.services.mozilla.com/D46944
2019-09-25 19:12:44 +00:00
Andrew Creskey
eedede5894 Bug 1575938 Convert dom/JSEnvironment GC timing constants to StaticPref r=edgar
Converted the following to StaticPrefs so that we can easily test variations:

NS_GC_DELAY
NS_SHRINK_GC_BUFFERS_DELAY
NS_FIRST_GC_DELAY
NS_FULL_GC_DELAY
NS_INTERSLICE_GC_DELAY

NS_USER_INTERACTION_INTERVAL

Differential Revision: https://phabricator.services.mozilla.com/D43112
2019-08-26 15:51:01 +00:00
Timothy Nikkel
4c508938dc Bug 1574016. Fix logic error in patch from bug 1547277. r=bradwerth
The fixed still worked because we get another SetBounds call right after with the same bounds. But it does mean we are doing some useless invalidation.

Differential Revision: https://phabricator.services.mozilla.com/D42059
2019-08-15 01:28:11 +00:00
Brendan Dahl
121428ad45 Bug 1551344 - Part 1: Remove XULDocument code. r=smaug,Jamie
All .xul files have been loading as HTMLDocuments for a few weeks now, so
it should be safe to remove the XULDocument implementation.

Differential Revision: https://phabricator.services.mozilla.com/D41238
2019-08-09 19:57:50 +00:00
Nika Layzell
8f12a56d0d Bug 1523638 - Part 9: Use provided 'WindowGlobalChild' actors to create the initial about:blank document, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D37656
2019-08-08 16:07:12 +00:00
Emilio Cobos Álvarez
271567e558 Bug 1570721 - Add a content viewer API to emulate color scheme. r=heycam
MANUAL PUSH: Reordering stacks is a pain (https://bugzilla.mozilla.org/show_bug.cgi?id=1481539)

Differential Revision: https://phabricator.services.mozilla.com/D40250
2019-08-02 15:18:41 +02:00
Emilio Cobos Álvarez
c8478466fd Bug 1570721 - Remove a bit of duplication in nsDocumentViewer.cpp. r=bzbarsky
Not happy with all these void pointer stuff, but I think this is slightly nicer
to read.

Also not happy with what clang-format has done to my code ;)

I've removed the comment about zoom because it's not clear to me it is still
relevant, but I've preserved the order because, should we have similar stuff
going on, it seems slightly better, and I'm moderately sure the rest of the
callers don't really care.

I think closures coerced to function pointers are nicer (I considered putting
this on a template or using std::function, maybe, this was less code specially
given some callers of EnumerateExternalResources may or may not be hot...),
but if you want me to keep stuff out of line, or move the whole thing to
std::function<> or templates let me know.

Differential Revision: https://phabricator.services.mozilla.com/D40249
2019-08-02 15:18:30 +02:00
Emilio Cobos Álvarez
4f4484015b Bug 1570721 - Simplify emulated medium setup in nsPresContext. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D40246
2019-08-02 15:18:19 +02:00