Commit Graph

638 Commits

Author SHA1 Message Date
Andreea Pavel
7b1605af56 Backed out 3 changesets (bug 1525959, bug 1526002) for failing android
Backed out changeset de0efca1118e (bug 1526002)
Backed out changeset 503cbc86e442 (bug 1525959)
Backed out changeset 33ea61c54aea (bug 1525959)
2019-02-12 23:53:05 +02:00
James Willcox
c7a8bf9699 Bug 1526002 - Replace 'isFennec' with 'is_fennec' in mochitest.ini r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D19038

--HG--
extra : moz-landing-system : lando
2019-02-10 19:07:57 +00:00
James Willcox
228b5844d5 Bug 1525959 - Skip some mochitests tests under GeckoView r=geckoview-reviewers,esawin
There are few things that are either Fennec-specific or don't work
currently under GeckoView w/ e10s under TestRunnerActivity. Disable
these so we can get some testing going in automation.

Differential Revision: https://phabricator.services.mozilla.com/D19016

--HG--
extra : moz-landing-system : lando
2019-02-12 15:15:28 +00:00
Masayuki Nakano
da6598c374 Bug 1524212 - Make nsContentUtils::DispatchInputEvent() update HTMLInputElement.validationMessage before dispatching "input" event r=smaug
"input" event listener may want to check HTMLInputElement.validationMessage.
However, due to moving "input" event dispatcher from
HTMLInputElement::SetUserInput() to editor, HTMLInputElement::SetValueInternal()
updates it **after** dispatching "input" event.

This patch makes nsContentUtils::DispatchInputEvent() guarantees to update
validationMessage value before dispatching every event.  On the other hand,
SetValueInternal() may be called without "input" event dispatchers.  Therefore,
it needs to keep updating validationMessage value in such cases.

Differential Revision: https://phabricator.services.mozilla.com/D19126

--HG--
extra : moz-landing-system : lando
2019-02-08 22:17:10 +00:00
Ting-Yu Lin
ceee0ec744 Bug 1524893 - Prevent Label and Summary elements from handling click event if clicking on interactive html content. r=smaug
This patch fix label element when
1. clicking on an interactive content in the shadow tree, or
2. clicking on non-interactive content in the shadow tree, but the
   shadow root's parent is interactive.

The fix for summary element is similar to label element.

Differential Revision: https://phabricator.services.mozilla.com/D18791

--HG--
rename : dom/html/test/forms/test_interactive_content_in_label.html => dom/html/test/forms/test_interactive_content_in_summary.html
extra : moz-landing-system : lando
2019-02-07 23:23:45 +00:00
Andrea Marchesini
8baff3d7cc Bug 1522672 - Reset external protocol iframe timer for testing, r=smaug 2019-01-30 12:19:35 +01:00
Cosmin Sabou
599a15d354 Merge mozilla-inbound to mozilla-central. a=merge 2019-01-29 12:01:56 +02:00
Sebastian Hengst
725402f21f Merge mozilla-central to autoland. CLOSED TREE 2019-01-29 02:05:49 +02:00
Timothy Guan-tin Chien
ccf133638c Bug 1507895 - Part II, Remove the datetimebox binding r=smaug
This patch removes the datetimebox binding and always use
UA Widget for the job.

Depends on D17571

Differential Revision: https://phabricator.services.mozilla.com/D17572

--HG--
extra : moz-landing-system : lando
2019-01-28 18:32:39 +00:00
Cosmin Sabou
c84511bdd7 Bug 1520674 - Disable dom/html/test/forms/test_bug1495363.html on linux qr. r=jmaher 2019-01-26 15:16:00 +02:00
Kris Maglione
e930b89c34 Bug 1514594: Part 3 - Change ChromeUtils.import API.
***
Bug 1514594: Part 3a - Change ChromeUtils.import to return an exports object; not pollute global. r=mccr8

This changes the behavior of ChromeUtils.import() to return an exports object,
rather than a module global, in all cases except when `null` is passed as a
second argument, and changes the default behavior not to pollute the global
scope with the module's exports. Thus, the following code written for the old
model:

  ChromeUtils.import("resource://gre/modules/Services.jsm");

is approximately the same as the following, in the new model:

  var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");

Since the two behaviors are mutually incompatible, this patch will land with a
scripted rewrite to update all existing callers to use the new model rather
than the old.
***
Bug 1514594: Part 3b - Mass rewrite all JS code to use the new ChromeUtils.import API. rs=Gijs

This was done using the followng script:

https://bitbucket.org/kmaglione/m-c-rewrites/src/tip/processors/cu-import-exports.jsm
***
Bug 1514594: Part 3c - Update ESLint plugin for ChromeUtils.import API changes. r=Standard8

Differential Revision: https://phabricator.services.mozilla.com/D16747
***
Bug 1514594: Part 3d - Remove/fix hundreds of duplicate imports from sync tests. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D16748
***
Bug 1514594: Part 3e - Remove no-op ChromeUtils.import() calls. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D16749
***
Bug 1514594: Part 3f.1 - Cleanup various test corner cases after mass rewrite. r=Gijs
***
Bug 1514594: Part 3f.2 - Cleanup various non-test corner cases after mass rewrite. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D16750

--HG--
extra : rebase_source : 359574ee3064c90f33bf36c2ebe3159a24cc8895
extra : histedit_source : b93c8f42808b1599f9122d7842d2c0b3e656a594%2C64a3a4e3359dc889e2ab2b49461bab9e27fc10a7
2019-01-17 10:18:31 -08:00
Andrea Marchesini
89a0cf9c7e Bug 1514547 - Timing token to allow external protocol URLs are blocked in iframes without user-interaction, r=smaug 2019-01-24 20:05:03 +01:00
Andrea Marchesini
0ae3238ccd Bug 1522181 - multiple external protocol URL blocker behind pref, r=smaug 2019-01-24 06:31:41 +01:00
Andrea Marchesini
24ceacee0e Bug 1495363 - Abort the previous request, if a form is submitted twice - tests, r=smaug 2019-01-16 22:51:17 +01:00
Matthew Noorenberghe
9fd4c34227 Bug 1477798 - Expose whether a fieldName should be automatically persisted on getAutocompleteInfo(). r=baku
This allows us to centralize the logic about which field names are "sensitive" and shouldn't be saved in things like form history or session history.

Differential Revision: https://phabricator.services.mozilla.com/D16128

--HG--
extra : moz-landing-system : lando
2019-01-10 18:48:39 +00:00
Masayuki Nakano
ed2040ac16 Bug 1447239 - Implement InputEvent.inputType r=smaug
This patch implements InputType.inputType which is declared by Input Events.
The attribute has already been implemented by Chrome and Safari.  Chrome
implements Input Events Level 1, but Safari implements Input Events Level 2.
 Difference between them is only whether it supports "insertFromComposition",
"deleteByComposition" and "deleteCompositionText".  This patch makes the
level switchable with pref and takes Level 1 by default because Level 2 is
still unstable around event order with composition events.

For reducing string copy cost at dispatching "input" event, this patch
makes EditorInternalInputEvent store valid input-type as enum class,
EditorInputType and resolves it to string value when
dom::InputEvent::GetInputType() is called.  Note that the reason why
this patch names the enum class as EditorInputType is, there is InputType
enum class already for avoiding conflict the name, this appends "Editor"
prefix because "input" and "beforeinput" events are fired only when an
editor has focus.

Differential Revision: https://phabricator.services.mozilla.com/D14128

--HG--
extra : moz-landing-system : lando
2019-01-07 10:10:57 +00:00
shindli
a0841a254f Merge inbound to mozilla-central. a=merge 2019-01-05 06:00:21 +02:00
Timothy Guan-tin Chien
28b5c3416c Bug 1514040 - Dispatch events to hidden datetimebox UA Widget r=smaug
The XBL binding implementation relied on nsDateTimeControlFrame to call into
its nsIDateTimeInputArea implementation. This is correct because the XBL binding
is only constructed when the element has a frame. If the value is set while the
element is hidden, the XBL binding will pick up the correct value during construction.

That is not the case for UA Widget. As it is constructed when the DOM is attached,
relying on nsDateTimeControlFrame to send an event when attributes change means
the event won't be sent to the already constructed UA Widget.

This patch fixes that by moving the event dispatching calls originating from
HTMLInputElement out of nsDateTimeControlFrame, so they will behave correctly in
the absence of the frame.

I've also moved the gut of nsDateTimeControlFrame::HasBadInput() to
DateTimeInputTypeBase::HasBadInput(). Content script should be allowed to validate
the input without the frame.

Sadly this means the XBL implementation and the UA Widget implementation
have further diverged. The complexity should go away when we could finally
remove the XBL implementation.

nsDateTimeControlFrame still dispatches a few events to UA Widget, in
AttributeChanged() and SyncDisabledState(), as they are originated from the layout.

The name of the events in AttributeChanged() are incorrect though -- I am correcting
that in this patch too.

Differential Revision: https://phabricator.services.mozilla.com/D15601

--HG--
extra : moz-landing-system : lando
2019-01-04 21:53:51 +00:00
Andrea Marchesini
9d384ff9f9 Bug 1517368 - Expose PopupBlocker status via ChromeUtils - tests, r=smaug 2019-01-04 16:16:59 +01:00
Raul Gurzau
e09012b5fb Bug 1356570 - Disable test_fullscreen-api-race.html on Mac debug. r=jmaher 2018-12-26 07:42:00 +02:00
Raul Gurzau
6b0ba83476 Bug 1258103 - Disabled test_bug369370.html on Linux. r=jmaher 2018-12-23 14:33:00 +02:00
Matthew Noorenberghe
40455b7a34 Bug 1330228 - Use HasBeenTypePassword to skip saving to presentation state. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D15148

--HG--
extra : moz-landing-system : lando
2018-12-21 16:44:37 +00:00
Matthew Noorenberghe
9ce78727ba Bug 1330228 - Test input.hasBeenTypePassword. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D15147

--HG--
rename : dom/html/test/forms/test_mozistextfield.html => dom/html/test/forms/test_input_hasBeenTypePassword.html
extra : moz-landing-system : lando
2018-12-21 16:47:33 +00:00
Cristina Coroiu
3aeca11e88 Bug 1484442 - disable test_input_number_mouse_events.html on mac debug for frequent failures r=jmaher 2018-12-18 13:51:00 +02:00
Jonathan Kingston
943bc1976a Bug 903372 - Removal of xml:base. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D13457
2018-12-13 15:16:52 +00:00
Andrea Marchesini
c7a7810165 Bug 1513890 - Get rid of x-moz-errormessage attribute, r=edgar 2018-12-15 09:54:02 +01:00
Olli Pettay
b977d23eb2 Bug 1089326, make <button> hit testing similar to other elements which may have some content, and for click target find the common (interactive) ancestor, r=masayuki
--HG--
extra : rebase_source : 80caab4e074d552c38b62842fe3102fb6735dfd9
2018-12-11 23:35:40 +02:00
Andrea Marchesini
66b8ff36dc Bug 1459264 - Allow just 1 FilePicker per event - tests, r=smaug 2018-12-12 01:00:09 +01:00
Andreea Pavel
0c29092e41 Backed out 2 changesets (bug 903372) for multiple failures on a CLOSED TREE
Backed out changeset bf919773f9d1 (bug 903372)
Backed out changeset 6562c2392ac9 (bug 903372)
2018-11-30 04:16:21 +02:00
Jonathan Kingston
f5ae854207 Bug 903372 - Removal of xml:base. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D8965
2018-11-29 15:31:46 +00:00
Coroiu Cristina
47323ec73b Merge mozilla-central to autoland a=merge on a CLOSED TREE 2018-11-28 23:56:03 +02:00
Sebastian Hengst
af010f2097 Bug 1509378 - Make test_input_number_mouse_events.html refer evt in checkInputEvent() rather than window.event r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D13226

--HG--
extra : moz-landing-system : lando
2018-11-28 10:39:59 +00:00
Andrea Marchesini
f399725b04 Bug 1503681 - rel=noopener implicit for target=_blank in anchor and area elements when no rel attribute is set - fix tests, r=me 2018-11-28 08:22:06 +01:00
Andrea Marchesini
a1c0511754 Bug 1503681 - rel=noopener implicit for target=_blank in anchor and area elements when no rel attribute is set, r=nika
In case anchor and area elements have target=_blank and no rel=opener/noopener,
this patch makes so that rel=noopener is implied. This feature is behind pref
'dom_targetBlankNoOpener_enabled'.

See: https://github.com/whatwg/html/issues/4078
2018-11-28 08:22:05 +01:00
Brindusan Cristian
025923e8bc Backed out 3 changesets (bug 1503681) for geckoview failures on org.mozilla.geckoview.test.GeckoSessionTestRuleTest.waitForChromeJS. CLOSED TREE
Backed out changeset 211c7dfdc408 (bug 1503681)
Backed out changeset 076cc5bece1d (bug 1503681)
Backed out changeset 7a19fe6be68c (bug 1503681)
2018-11-28 11:10:48 +02:00
Andrea Marchesini
d69ebc1ae7 Bug 1503681 - rel=noopener implicit for target=_blank in anchor and area elements when no rel attribute is set - fix tests, r=me 2018-11-28 08:22:06 +01:00
Andrea Marchesini
bed80e41e2 Bug 1503681 - rel=noopener implicit for target=_blank in anchor and area elements when no rel attribute is set, r=nika
In case anchor and area elements have target=_blank and no rel=opener/noopener,
this patch makes so that rel=noopener is implied. This feature is behind pref
'dom_targetBlankNoOpener_enabled'.

See: https://github.com/whatwg/html/issues/4078
2018-11-28 08:22:05 +01:00
Masayuki Nakano
246db85d46 Bug 1509378 - Make test_input_event.html refer aEvent in checkIfInputIsEvent() rather than window.event r=smaug
This is an idiot mistake.  It refers window.event accidentally and it's still
disabled on Beta and Release channel.  Therefore, we should make it refer
aEvent instead.

On the other hand, it might be better to make our lint check whether test
refers window.event directly or not because it may check odd result
accidentally.

Differential Revision: https://phabricator.services.mozilla.com/D12870

--HG--
extra : moz-landing-system : lando
2018-11-26 15:46:43 +00:00
Coroiu Cristina
ecebb3cfcd Merge mozilla-central to inbound a=merge on a CLOSED TREE 2018-11-21 23:50:57 +02:00
Mark Banner
b1c872942c Bug 1508980 - Add more .eslintrc.js files for dom/ and update .eslintignore. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D12529

--HG--
extra : moz-landing-system : lando
2018-11-21 14:27:27 +00:00
Masayuki Nakano
0acd37ec1d Bug 1504911 - part 4: Make all script for web content dispatch "input" event with proper event interface r=smaug
Currently, some "input" event dispatchers in our script dispatch "input" event
with UIEvent.  This is completely wrong.  For conforming to HTML spec, Event
is proper event.  Additionally, for conforming to Input Events, InputEvent
is proper event only on <textarea> or <input> element which has a single line
editor.

For making us to maintain easier, this patch adds new API, "isInputEventTarget"
to MozEditableElement which returns true when "input" event dispatcher should
use InputEvent for the input element.

Finally, this makes some dispatchers use setUserInput() instead of
setting value and dispatching event by themselves.  This also makes
us to maintain them easier.

Note that this does not touch "input" event dispatchers which dispatch events
only for chrome (such as URL bar, some pages in about: scheme) for making
this change safer as far as possible.

Differential Revision: https://phabricator.services.mozilla.com/D12247

--HG--
extra : moz-landing-system : lando
2018-11-20 14:35:38 +00:00
Masayuki Nakano
b5ea72aa13 Bug 1504911 - part 3: Make TextEditRules::WillSetText() not handle anything when EditAction is eReplaceText r=m_kato
When all editor text is replaced while handling a user operation, editor
needs to dispatch "input" event.  Therefore, in such case, i.e., EditAction
is eReplaceText, TextEditor::SetTextAsSubAction() needs to handle it instead
of TextEditRules::WillSetText().

Differential Revision: https://phabricator.services.mozilla.com/D12246

--HG--
extra : moz-landing-system : lando
2018-11-20 14:34:32 +00:00
Masayuki Nakano
cc3adb8c9e Bug 1504911 - part 2: Make nsTextEditorState::SetValue() dispatch "input" event if it's called for handling part of user input r=smaug
When editor is modified as part of user action, aFlags of
nsTextEditorState::SetValue() includes eSetValue_BySetUserInput.  In this case,
TextEditor (if there is) or the method itself (if there is no editor yet)
should dispatch "input" event by themselves because we will need to initialize
InputEvents more since we're going to implement Input Event specs.

Note that even with this patch, password field stops dispatching "input" event
with call of HTMLInputElement::SetUserInput().  This is caused by a hidden bug
of TextEditRules.   This will be fixed in a following patch.

Differential Revision: https://phabricator.services.mozilla.com/D12245

--HG--
extra : moz-landing-system : lando
2018-11-20 22:06:37 +00:00
Masayuki Nakano
abe138f771 Bug 1504911 - part 1: Make all "input" event dispatcher in C++ use new utility method r=smaug
Currently, a lot of code dispatch "input" event and some of them dispatch
"input" event with wrong interface and/or values.  Therefore this patch
creates nsContentUtils::DispatchInputEvent() to make all of them dispatch
correct event.

Unfortunately, due to bug 1506439, we cannot set pointer to refcountable
classes of MOZ_CAN_RUN_SCRIPT method to nullptr.  Therefore, this patch
creates temporary RefPtr<TextEditor> a lot even though it makes damage to
the performance if it's in a hot path.

This patch makes eEditorInput event dispatched with
InternalEditorInputEvent when "input" event should be dispatched with
dom::InputEvent.  However, this patch uses WidgetEvent whose message is
eUnidentifiedEvent and setting WidgetEvent::mSpecifiedEventType to
nsGkAtoms::oninput when "input" event should be dispatched with
dom::Event because we need to keep that eEditorInput and
InternalEditorInputEvent are mapped each other.

Differential Revision: https://phabricator.services.mozilla.com/D12244

--HG--
extra : moz-landing-system : lando
2018-11-21 03:59:02 +00:00
Masayuki Nakano
388e64d857 Bug 1504911 - part 0: Add "input" event tests into existing tests r=smaug
It's difficult to create new test which checks "input" events caused by
all edit operations especially when text is inserted from our UI.  Therefore,
this adds "input" event type checks into existing tests.

Additionally, this adds new test for MozEditableElement.setUserInput() whose
behavior needs to be fixed in this bug.

Currently, InputEvent interface should be used only on text controls or
contenteditable editor when dispatching "input" event.
https://w3c.github.io/input-events/#events-inputevents

You may feel odd to use different event interface for same "input" events.
However, other browsers also use InputEvent interface only in the cases. So,
we should follow them for now.

Differential Revision: https://phabricator.services.mozilla.com/D12243

--HG--
extra : moz-landing-system : lando
2018-11-20 14:24:06 +00:00
Thomas Nguyen
aa4e9e43de Bug 1460920 - Part 2 : Support referrerpolicy attribute in script HTMLScriptElement r=hsivonen
The patch adds the support of referrerpolicy attribute in script element
and take the attribute into account when loading script.

Differential Revision: https://phabricator.services.mozilla.com/D11637

--HG--
extra : moz-landing-system : lando
2018-11-13 14:33:02 +00:00
arthur.iakab
c0b26c4076 Merge inbound to mozilla-central a=merge 2018-11-15 11:54:15 +02:00
Timothy Guan-tin Chien
2b5881e46b Bug 1503019 - Part I, Remove dom.webcomponents.shadowdom.enabled r=smaug
This patch removes the dom.webcomponents.shadowdom.enabled pref and all its
references, including the following functions:

* nsContentUtils::IsShadowDOMEnabled()
* nsIDocument::IsShadowDOMEnabled()
* nsDocument::IsShadowDOMEnabled(JSContext* aCx, JSObject* aGlobal)
* nsDocument::IsShadowDOMEnabled(const nsINode* aNode)
* nsTextNode::IsShadowDOMEnabled(JSContext* aCx, JSObject* aObject)

This function is renamed and updated to nsDocument::IsCallerChromeOrAddon():

* nsDocument::IsShadowDOMEnabledAndCallerIsChromeOrAddon(JSContext* aCx, JSObject* aObject)

I didn't change the tests that load Shadow DOM tests in an iframe, in the interest of keeping hg annotation history.

Differential Revision: https://phabricator.services.mozilla.com/D11183

--HG--
extra : moz-landing-system : lando
2018-11-15 06:51:07 +00:00
Jonathan Watt
8009877bd7 Bug 1509057. Disable <input type=number> support for grouping separators in user input. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D12554

--HG--
extra : rebase_source : 7ae34793e15f626df16bba225c2077c05135d568
extra : amend_source : 429cf996b8c66a17025a6eeb8b1c2fce6a58a614
2018-11-02 10:10:42 +00:00
Andreea Pavel
d51566f085 Backed out 2 changesets (bug 1503019) for failing crashtests at dom/base/crashtests/1505811.html on a CLOSED TREE
Backed out changeset 06b12fd41ff1 (bug 1503019)
Backed out changeset 7b845eac9dd7 (bug 1503019)
2018-11-15 01:52:30 +02:00