Commit Graph

730 Commits

Author SHA1 Message Date
Kagami Sascha Rosylight
875e562683 Bug 1659218 - Prevent activating disabled inputs via dispatchEvent r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D87151
2020-10-27 09:17:08 +00:00
Edgar Chen
ed7c6f194b Bug 1667081 - Part 1: Replace usage of nsIFocusManager with nsFocusManager; r=hsivonen
This patch is bascially done by:
perl -p -i -e "s/nsIFocusManager\* /nsFocusManager* /g;" $( find . -name *.cpp )
perl -p -i -e "s/nsCOMPtr<nsIFocusManager>/RefPtr<nsFocusManager>/g;" $( find . -name *.cpp )

Differential Revision: https://phabricator.services.mozilla.com/D91287
2020-09-29 07:21:09 +00:00
Bogdan Tara
65af1066d4 Backed out 9 changesets (bug 1667081) for assertion failure on nsFocusManager CLOSED TREE
Backed out changeset 156ab3eba505 (bug 1667081)
Backed out changeset 2e37f347082c (bug 1667081)
Backed out changeset 8f59cef879ae (bug 1667081)
Backed out changeset 1298ff140218 (bug 1667081)
Backed out changeset 91342c822425 (bug 1667081)
Backed out changeset aafb1878c590 (bug 1667081)
Backed out changeset 2252e975f0d7 (bug 1667081)
Backed out changeset c3bac5f407d2 (bug 1667081)
Backed out changeset b1e6e81396ae (bug 1667081)
2020-09-28 20:02:52 +03:00
Edgar Chen
0d9571517d Bug 1667081 - Part 1: Replace usage of nsIFocusManager with nsFocusManager; r=hsivonen
This patch is bascially done by:
perl -p -i -e "s/nsIFocusManager\* /nsFocusManager* /g;" $( find . -name *.cpp )
perl -p -i -e "s/nsCOMPtr<nsIFocusManager>/RefPtr<nsFocusManager>/g;" $( find . -name *.cpp )

Differential Revision: https://phabricator.services.mozilla.com/D91287
2020-09-28 14:04:12 +00:00
Simon Giesecke
ab6f0a7137 Bug 1650145 - Replace all value uses of Empty[C]String by 0-length _ns literals. r=froydnj,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82325
2020-09-23 15:17:15 +00:00
Emilio Cobos Álvarez
c82f3fdf39 Bug 1664685 - Simplify HTML{Image,Input}Element.{width,height} getters. r=edgar
By moving it to nsImageLoadingContent we don't need to pass a reference
to the current request and can just use the member.

The weird reference-passing was introduced in bug 987140 and broke in
bug 1534608.

Also make it return a CSSIntSize rather than an nsSize, since it's what
it returns, nsSize is supposed to be in app units, not in CSS pixels :-)

Differential Revision: https://phabricator.services.mozilla.com/D90036
2020-09-15 09:04:59 +00:00
Emilio Cobos Álvarez
23faffdff9 Bug 1658302 - Don't reframe for changes to the placeholder attribute value. r=masayuki
We still reframe for additions / removals of the attribute because that
makes us create the placeholder <div>. We could avoid it if we created
it independently of the presence of the attribute but that seems like it
could regress perf for the case where there's no placeholder attribute,
which is probably common enough.

Differential Revision: https://phabricator.services.mozilla.com/D88724
2020-09-01 23:03:36 +00:00
Andreea Pavel
ee46393642 Backed out changeset 0e94014166b3 (bug 1658302) for causing bug 1662483 2020-09-02 00:44:18 +03:00
Emilio Cobos Álvarez
82e2600f9b Bug 1658302 - Don't reframe for changes to the placeholder attribute value. r=masayuki
We still reframe for additions / removals of the attribute because that
makes us create the placeholder <div>. We could avoid it if we created
it independently of the presence of the attribute but that seems like it
could regress perf for the case where there's no placeholder attribute,
which is probably common enough.

Differential Revision: https://phabricator.services.mozilla.com/D88724
2020-08-31 07:46:56 +00:00
Emilio Cobos Álvarez
a201addcb7 Bug 1660214 - Use CreatesDateTimeWidget() in two other places. r=smaug
I had missed these two. The NUMBER condition is dead (we early-return in
IsSingleLineTextControl above).

Differential Revision: https://phabricator.services.mozilla.com/D87721
2020-08-20 12:53:18 +00:00
Emilio Cobos Álvarez
ad1b2053ef Bug 1660048 - Simplify some of the "is date or time" checks into a CreatesDateTimeWidget() member. r=smaug
Depends on D87623

Differential Revision: https://phabricator.services.mozilla.com/D87624
2020-08-19 18:19:08 +00:00
Emilio Cobos Álvarez
ea308c4487 Bug 1660048 - Remove dom.forms.color and dom.forms.datetime. r=smaug,marionette-reviewers,whimboo
They're enabled in all configurations and there's no plan to change
this. With it, dom.experimental_forms is also useless, so we can remove
it too.

Differential Revision: https://phabricator.services.mozilla.com/D87623
2020-08-19 18:24:06 +00:00
Sean Feng
bd1e7152f7 Bug 1657163 - Enable <dialog> in chrome UI for beta/release r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D85933
2020-08-05 14:26:29 +00:00
Simon Giesecke
1fbb2b245e Bug 1654992 - Use std::move instead of SwapElements where possible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D84807
2020-08-04 11:27:07 +00:00
Noemi Erli
c5adcfe981 Backed out 4 changesets (bug 1654992, bug 1654991) for causing timeous in mask-opacity-1e.html
Backed out changeset 11f0f54c6e0a (bug 1654992)
Backed out changeset a353dd5b3f08 (bug 1654991)
Backed out changeset 6a7964ba549f (bug 1654991)
Backed out changeset cf3bfb91d98c (bug 1654991)
2020-08-03 22:09:36 +03:00
Simon Giesecke
9d2e516112 Bug 1654992 - Use std::move instead of SwapElements where possible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D84807
2020-08-03 14:54:18 +00:00
Tim Nguyen
32742ae85a Bug 558594 - Implement layout for <input type='search'>. r=emilio,masayuki
Differential Revision: https://phabricator.services.mozilla.com/D56302
2020-07-27 12:09:40 +00:00
Emilio Cobos Álvarez
af37b13df9 Bug 1652618 - Ensure UA widgets are attached and detached synchronously. r=smaug
This changes the UA widget setup (again). What is going on in this
test-case is that we have a marquee inside a video, two things that have
their own UA widget. Given how the code is currently written, the
runnable to attach and set up the marquee's widget is posted before than
the video one (which is potentially reasonable).

However that means that the marquee one runs before and flushes layout,
and catches the video in an inconsistent state (in the composed doc, but
without a shadow root). That in turn messes up reflow because
nsVideoFrame assumes stuff.

Rather than putting the attach / detach logic in script runners, just
run that bit synchronously, and post only the event async. I audited the
consumers of those events and it seems fine to me, they either already
deal with the possibility of the shadow root being already detached or
they don't care.

For teardown, none of the destructors of the UA widgets rely on the
shadow root being still attached to the element.

Differential Revision: https://phabricator.services.mozilla.com/D84487
2020-07-24 15:43:20 +00:00
Narcis Beleuzu
338c569e68 Backed out changeset 8323b7bb5e1a (bug 1652618) for mochitest failures on test_audiocontrols_dimensions.html . CLOSED TREE 2020-07-23 00:49:31 +03:00
Emilio Cobos Álvarez
f7bd619fb5 Bug 1648064 - Switch DOM images to work like CSS images for the purposes of printing. r=tnikkel,smaug
Make them perform the image load (if needed), instead of copying the
image requests from the original document.

This is needed for CSS for stuff like:

@media print {
  #foo::before {
    content: url(bar.png);
  }
}

And so on. For images, we should do this as well. Nothing prevents you
from doing:

  <picture>
    <source srcset="print.png" media="print">
    <source srcset="screen.png" media="not print">
    <img>
  </picture>

And that should in theory work. It works after this patch, and I added a
test for that.

This patch is a bit bigger than I'd like, but I didn't find a more
reasonable way to split it up.

Making static docs able to do image loads is most of the patch and is
mostly straight-forward. This allows to remove the hacky "change the
loading document" thing that CSS images do, which is just working around
the CSP of the print document.

I need to enable background colors in printpreview_helper so as to be
able to have a reference page for all the different image types.

Differential Revision: https://phabricator.services.mozilla.com/D81779
2020-07-22 20:29:00 +00:00
Emilio Cobos Álvarez
581585395d Bug 1652618 - Ensure UA widgets are attached and detached synchronously. r=smaug
This changes the UA widget setup (again). What is going on in this
test-case is that we have a marquee inside a video, two things that have
their own UA widget. Given how the code is currently written, the
runnable to attach and set up the marquee's widget is posted before than
the video one (which is potentially reasonable).

However that means that the marquee one runs before and flushes layout,
and catches the video in an inconsistent state (in the composed doc, but
without a shadow root). That in turn messes up reflow because
nsVideoFrame assumes stuff.

Rather than putting the attach / detach logic in script runners, just
run that bit synchronously, and post only the event async. I audited the
consumers of those events and it seems fine to me, they either already
deal with the possibility of the shadow root being already detached or
they don't care.

For teardown, none of the destructors of the UA widgets rely on the
shadow root being still attached to the element.

Differential Revision: https://phabricator.services.mozilla.com/D84487
2020-07-22 19:42:37 +00:00
Narcis Beleuzu
61c35a714a Backed out 6 changesets (bug 1648064) for wp failures on test_printpreview.xhtml . CLOSED TREE
Backed out changeset 8ac892c60eda (bug 1648064)
Backed out changeset 189401f7b6e8 (bug 1648064)
Backed out changeset 2598e2706bd0 (bug 1648064)
Backed out changeset 4ec12eb9788c (bug 1648064)
Backed out changeset f735d4f6b21f (bug 1648064)
Backed out changeset 0fed6928b53d (bug 1648064)
2020-07-22 21:28:10 +03:00
Emilio Cobos Álvarez
6c52fe9ff5 Bug 1648064 - Switch DOM images to work like CSS images for the purposes of printing. r=tnikkel,smaug
Make them perform the image load (if needed), instead of copying the
image requests from the original document.

This is needed for CSS for stuff like:

@media print {
  #foo::before {
    content: url(bar.png);
  }
}

And so on. For images, we should do this as well. Nothing prevents you
from doing:

  <picture>
    <source srcset="print.png" media="print">
    <source srcset="screen.png" media="not print">
    <img>
  </picture>

And that should in theory work. It works after this patch, and I added a
test for that.

This patch is a bit bigger than I'd like, but I didn't find a more
reasonable way to split it up.

Making static docs able to do image loads is most of the patch and is
mostly straight-forward. This allows to remove the hacky "change the
loading document" thing that CSS images do, which is just working around
the CSP of the print document.

I need to enable background colors in printpreview_helper so as to be
able to have a reference page for all the different image types.

Differential Revision: https://phabricator.services.mozilla.com/D81779
2020-07-22 14:39:43 +00:00
Edgar Chen
d043120c65 Bug 1608501 - Part 3: Clean up image request in DestroyContent; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D82875
2020-07-21 12:08:14 +00:00
Edgar Chen
1207ff96d0 Bug 1608501 - Part 1: Rename nsImageLoadingContent::DestroyImageLoadingContent to ::Destroy; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D82729
2020-07-21 12:08:14 +00:00
Simon Giesecke
919e67d9ed Bug 1652942 - Remove unnecessary includes from Element.h. r=smaug
Depends on D83114

Differential Revision: https://phabricator.services.mozilla.com/D83632
2020-07-15 14:09:01 +00:00
Emilio Cobos Álvarez
edeba1def3 Bug 1649569 - Don't assert in GetValidationMessage that we got a good number. r=edgar
This can happen because we don't have a nice mechanism to update the
validity bits in all cases where the computed "language" changes.

That's not really a regression, and I'm on PTO, so for now we just deal
with it. The "bad input" message seems appropriate for this case rather
than returning garbage numbers.

Differential Revision: https://phabricator.services.mozilla.com/D82402
2020-07-07 13:32:48 +00:00
Simon Giesecke
f6c10f5ca9 Bug 1648010 - Fix uses of NS_LITERAL_STRING with C string literals. r=geckoview-reviewers,agi,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80861
2020-07-01 08:34:12 +00:00
Simon Giesecke
a69d79b6db Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Kagami Sascha Rosylight
9fc6449e98 Bug 1643464 - Part 2: Rename eLeft/eRightFlag to ePrimary/eSecondaryFlag r=masayuki,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D80332
2020-06-22 22:54:07 +00:00
Kagami Sascha Rosylight
413c249077 Bug 1643464 - Part 1: Rename eLeft/eRight to ePrimary/eSecondary r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D80331
2020-06-19 18:02:41 +00:00
Emilio Cobos Álvarez
f998ecc386 Bug 1640623 - Use enum classes for LookAndFeel int and float IDs. r=jmathies,geckoview-reviewers,esawin
Differential Revision: https://phabricator.services.mozilla.com/D76694
2020-06-11 11:27:43 +00:00
Alexis Beingessner
cfc06af6a1 Bug 1642344 - convert HTMLInputElement VarCache prefs to StaticPrefs. r=geckoview-reviewers,agi.
converts:
* dom.experimental_forms
* dom.forms.datetime.others
* dom.forms.color

Differential Revision: https://phabricator.services.mozilla.com/D77850
2020-06-09 14:45:50 +00:00
Emilio Cobos Álvarez
03cfd95496 Bug 1641245 - Make string comparators not virtual. r=froydnj,necko-reviewers,geckoview-reviewers,jgilbert,agi,valentin
There's no use case for stateful comparators, so they can be just plain
function pointers.

This is used in some hot places like CSS selector matching.

Differential Revision: https://phabricator.services.mozilla.com/D77084
2020-05-27 18:11:12 +00:00
Emilio Cobos Álvarez
b1fc84a629 Bug 1640605 - Remove IsInAnonymousSubtree / IsRootOfAnonymousSubtree. r=edgar
In favor of the NativeAnonymous versions which they forward to.

Done automatically with:

  rg -l 'IsInAnonymousSubtree' | xargs sed -i 's/IsInAnonymousSubtree/IsInNativeAnonymousSubtree/g'

And removing the function definitions afterwards.

Differential Revision: https://phabricator.services.mozilla.com/D76681
2020-05-25 11:43:51 +00:00
Emilio Cobos Álvarez
fa2644fb5c Bug 1637335 - Make MozEditableElement.editor flush frames if needed. r=smaug
URLBarInput relies on it being non-null when created, but that may not
happen if we construct frames lazily without this patch.

Differential Revision: https://phabricator.services.mozilla.com/D74891
2020-05-12 22:32:18 +00:00
sefeng
a6f4e1f142 Bug 1557303 - Implement form[method="dialog"] r=smaug
Spec: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#submit-dialog

Differential Revision: https://phabricator.services.mozilla.com/D73364
2020-05-11 22:56:13 +00:00
sanketh
c8a0829e08 Bug 1635224 - Preserve mLastValueChangeWasInteractive between SaveState and RestoreState r=emilio,masayuki
Modify PresState's string variant to also store whether the last change was
interactive, and preserve that property when saving and restoring state.

Differential Revision: https://phabricator.services.mozilla.com/D73920
2020-05-08 15:15:04 +00:00
Simon Giesecke
c60d689f7c Bug 1626570 - Improve handling of copying arrays in dom/html/. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D73647
2020-05-07 08:09:51 +00:00
Timothy Gu
ea6c1fcd3f Bug 1628500 - Remove aIgnoreTabindex argument from Element::IsInteractiveHTMLContent(). r=edgar
This argument is set to true everywhere, and soon HTML will no longer consider
tabindex for interactive content: https://github.com/whatwg/html/pull/5457.

Differential Revision: https://phabricator.services.mozilla.com/D72568
2020-04-28 11:22:32 +00:00
Eames
4e095a9844 Bug 1622659 - Removed 'else' after 'return' in HTMLInputElement - r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D71177
2020-04-16 13:25:18 +00:00
Makoto Kato
3be9f0b6d9 Bug 1424284 - Part 1. Add inputmode to HTMLElement. r=smaug,jdai
`inputmode` attribute controls software keyboard layout like `<input type>`.
Originally this was by B2G (bug 746142) and for `<input>` element only.

WHATWG spec allows this attribute for HTML element and WebKit and Blink have
already implemented this.

Differential Revision: https://phabricator.services.mozilla.com/D69348
2020-04-07 08:37:25 +00:00
Eric Rahm
54d71f5beb Bug 1626436 - Remove nsAutoPtr usage from dom/html. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D69106
2020-04-03 21:04:59 +00:00
Emilio Cobos Álvarez
c2425f96ba Bug 1622221 - Rework number input localization. r=jwatt
This restores our previous behavior with the new <input type=number>
implementation (see the changes in test_input_number_l10n.html, which undoes the
changes of the regressing bug), and adds a test that shows that we display the
localized value properly.

Differential Revision: https://phabricator.services.mozilla.com/D66822
2020-03-23 09:36:52 +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
Sean Feng
e2b8b11349 Bug 1377999 - Make HTML Element to adapt the DOMArena changes r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D57699
2020-03-17 14:53:08 +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
Emilio Cobos Álvarez
e578b2da67 Bug 1620778 - Fix interaction of up/down keys with autocomplete and <input type=number>. r=masayuki,smaug
Differential Revision: https://phabricator.services.mozilla.com/D66011
2020-03-16 15:50:31 +00:00
Ciure Andrei
48da06cc68 Backed out 2 changesets (bug 1620778) for causing test_autocomplete_mac_caret.xhtml failures
Backed out changeset 66f97d1cf94a (bug 1620778)
Backed out changeset eda75d901f4c (bug 1620778)
2020-03-15 16:04:36 +02:00