Граф коммитов

563 Коммитов

Автор SHA1 Сообщение Дата
Emilio Cobos Álvarez d2ed260822 Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
James Teh 850ee9ea2b Bug 1515294: Only use SendSyncTextChangeEvent for live regions. r=MarcoZ
In order to support IA2 live regions with e10s (bug 1322532), text change events sent from the child process to the parent process use sync IPC.
That comes at a slight performance cost: the content process is blocked until the parent returns from sending and handling the event.
However, there is no reason to do this if the event is not for an accessible inside a live region; current clients don't need the sync behaviour outside of live regions.

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

--HG--
extra : source : 415f827cb9ce211c48b0c6625e917582bc81fd3a
2018-12-21 09:16:38 +00:00
arthur.iakab 70a4778dd8 Backed out changeset 415f827cb9ce (bug 1515294) on suspicion of causing content process hangs a=backout CLOSED TREE 2018-12-23 00:04:39 +02:00
James Teh f9cba89c57 Bug 1515294: Only use SendSyncTextChangeEvent for live regions. r=MarcoZ
In order to support IA2 live regions with e10s (bug 1322532), text change events sent from the child process to the parent process use sync IPC.
That comes at a slight performance cost: the content process is blocked until the parent returns from sending and handling the event.
However, there is no reason to do this if the event is not for an accessible inside a live region; current clients don't need the sync behaviour outside of live regions.

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

--HG--
extra : moz-landing-system : lando
2018-12-21 09:16:38 +00:00
Neil Deakin 9397165b4e Bug 1492326, use Element helper methods in accessibility instead of QueryInterface to get interface implementations that might be implemented by custom elements, r=surkov 2018-12-04 11:32:15 -05:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Eitan Isaacson 00ea13b8d5 Bug 1502061 - Check if origTargetNode still exists in ProcessDOMEvent. r=Jamie 2018-11-29 09:35:00 +02:00
Razvan Maries 99a5f987b3 Merge mozilla-inbound to mozilla-central a=merge 2018-11-27 19:32:31 +02:00
Ehsan Akhgari 6099c9f67b Bug 1508472 - Part 1: First batch of comment fix-ups in preparation for the tree reformat r=sylvestre
This is a best effort attempt at ensuring that the adverse impact of
reformatting the entire tree over the comments would be minimal.  I've used a
combination of strategies including disabling of formatting, some manual
formatting and some changes to formatting to work around some clang-format
limitations.

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

--HG--
extra : moz-landing-system : lando
2018-11-27 10:08:58 +00:00
Emilio Cobos Álvarez 9ed36d7ba6 Bug 1506547 - Align user-select behavior more with other UAs. r=mats
There's a few subtle behavior changes here, which I'll try to break down in the
commit message.

The biggest one is the EditableDescendantCount stuff going away. This
was added in bug 1181130, to prevent clicking on the non-editable div from
selecting the editable div inside. This is problematic for multiple reasons:

 * First, I don't think non-editable regions of an editable element should
   be user-select: all.

 * Second, it just doesn't work in Shadow DOM (the editable descendant count is
   not kept up-to-date when not in the uncomposed doc), so nested
   contenteditables behave differently inside vs. outside a Shadow Tree.

 * Third, I think it's user hostile to just entirely disable selection if you
   have a contenteditable descendant as a child of a user-select: all thing.

   WebKit behaves like this patch in the following test-case (though not Blink):

     https://crisal.io/tmp/user-select-all-contenteditable-descendant.html

   Edge doesn't seem to support user-select: all at all (no pun intended).

   But we don't allow to select anything at all which looks wrong.

 * Fourth, it's not tested at all (which explains how we broke it in Shadow DOM
   and not even notice...).

In any case I've verified that this doesn't regress the editor from that bug. If
this regresses anything we can fix it as outlined in the first bullet point
above, which should also make us more compatible with other UAs in that
test-case.

The other change is `all` not overriding everything else. So, something like:

  <div style="-webkit-user-select: all">All <div style="-webkit-user-select: none">None</div></div>

Totally ignores the -webkit-user-select: none declaration in Firefox before this
change. This doesn't match any other UA nor the spec, and this patch aligns us
with WebKit / Blink.

This in turn makes us not need -moz-text anymore, whose only purpose was to
avoid this.

This also fixes a variety of bugs uncovered by the previous changes, like the
SetIgnoreUserModify(false) call in editor being completely useless, since
presShell->SetCaretEnabled ended in nsCaret::SetVisible, which overrode it.

This in turn uncovered even more bugs, from bugs in the caret painting code,
like not checking -moz-user-modify on the right frame if you're the last frame
of a line, to even funnier bits where before this patch you show the caret but
can't write at all...

In any case, the new setup I came up with is that when you're editing (the
selection is focused on an editable node) moving the caret forces it to end up
in an editable node, thus jumping over non-editable ones.

This has the nice effect of not completely disabling selection of
-moz-user-select: all elements that have editable descendants (which was a very
ad-hoc hack for bug 1181130, and somewhat broken per the above), and also
not needing the -moz-user-select: all for non-editable bits in contenteditable.css
at all.

This also fixes issues with br-skipping like not being able to insert content in
the following test-case:

  <div contenteditable="true"><span contenteditable="false">xyz </span><br>editable</div>

If you start moving to the left from the second line, for example.

I think this yields way better behavior in all the relevant test-cases from bug
1181130 / bug 1109968 / bug 1132768, shouldn't cause any regression, and the
complexity is significantly reduced in some places.

There's still some other broken bits that this patch doesn't fix, but I'll file
follow-ups for those.

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

--HG--
extra : moz-landing-system : lando
2018-11-26 09:21:37 +00:00
Brindusan Cristian 31f0c21cca Backed out changeset 1575904619b5 (bug 1506547) for mochitest failures on test_reftests_with_caret.html. 2018-11-26 03:03:14 +02:00
Emilio Cobos Álvarez b74c31e4d9 Bug 1506547 - Align user-select behavior more with other UAs. r=mats
There's a few subtle behavior changes here, which I'll try to break down in the
commit message.

The biggest one is the EditableDescendantCount stuff going away. This
was added in bug 1181130, to prevent clicking on the non-editable div from
selecting the editable div inside. This is problematic for multiple reasons:

 * First, I don't think non-editable regions of an editable element should
   be user-select: all.

 * Second, it just doesn't work in Shadow DOM (the editable descendant count is
   not kept up-to-date when not in the uncomposed doc), so nested
   contenteditables behave differently inside vs. outside a Shadow Tree.

 * Third, I think it's user hostile to just entirely disable selection if you
   have a contenteditable descendant as a child of a user-select: all thing.

   WebKit behaves like this patch in the following test-case (though not Blink):

     https://crisal.io/tmp/user-select-all-contenteditable-descendant.html

   Edge doesn't seem to support user-select: all at all (no pun intended).

   But we don't allow to select anything at all which looks wrong.

 * Fourth, it's not tested at all (which explains how we broke it in Shadow DOM
   and not even notice...).

In any case I've verified that this doesn't regress the editor from that bug. If
this regresses anything we can fix it as outlined in the first bullet point
above, which should also make us more compatible with other UAs in that
test-case.

The other change is `all` not overriding everything else. So, something like:

  <div style="-webkit-user-select: all">All <div style="-webkit-user-select: none">None</div></div>

Totally ignores the -webkit-user-select: none declaration in Firefox before this
change. This doesn't match any other UA nor the spec, and this patch aligns us
with WebKit / Blink.

This in turn makes us not need -moz-text anymore, whose only purpose was to
avoid this.

This also fixes a variety of bugs uncovered by the previous changes, like the
SetIgnoreUserModify(false) call in editor being completely useless, since
presShell->SetCaretEnabled ended in nsCaret::SetVisible, which overrode it.

This in turn uncovered even more bugs, from bugs in the caret painting code,
like not checking -moz-user-modify on the right frame if you're the last frame
of a line, to even funnier bits where before this patch you show the caret but
can't write at all...

In any case, the new setup I came up with is that when you're editing (the
selection is focused on an editable node) moving the caret forces it to end up
in an editable node, thus jumping over non-editable ones.

This has the nice effect of not completely disabling selection of
-moz-user-select: all elements that have editable descendants (which was a very
ad-hoc hack for bug 1181130, and somewhat broken per the above), and also
not needing the -moz-user-select: all for non-editable bits in contenteditable.css
at all.

This also fixes issues with br-skipping like not being able to insert content in
the following test-case:

  <div contenteditable="true"><span contenteditable="false">xyz </span><br>editable</div>

If you start moving to the left from the second line, for example.

I think this yields way better behavior in all the relevant test-cases from bug
1181130 / bug 1109968 / bug 1132768, shouldn't cause any regression, and the
complexity is significantly reduced in some places.

There's still some other broken bits that this patch doesn't fix, but I'll file
follow-ups for those.

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

--HG--
extra : moz-landing-system : lando
2018-11-25 20:01:07 +00:00
Gerald Squelart 1bd6a1fd4e Bug 1435091 - p4. Use profiler_thread_is_being_profiled() instead of profiler_is_active() around profiler_add_marker()s - r=mstange
(Unless there were other profiler actions, as I'm not sure yet whether it would
be safe to skip them when the profiler is paused; another bug should
investigate that.)

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

--HG--
extra : moz-landing-system : lando
2018-11-19 06:29:15 +00:00
Paolo Amadini b2a83ffc85 Bug 1499947 - Part 1 - Remove XULProgressMeterAccessible and its base template class. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D12144

--HG--
extra : rebase_source : 81275b233770a7e9716a2b811a08060fc5006e1b
2018-11-20 14:10:38 +00:00
Jonathan Watt 181d407b43 Bug 1510167. Mark some nsGkAtom* arguments as const in DOM code. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D13049

--HG--
extra : rebase_source : 66db700ce58e88ab95c24e9dbc70ba4815e94df1
2018-11-13 12:48:21 +00:00
Marco Zehe b96e455eb6 Bug 1503964 - Prevent crashes when dealing with crazy table row and column role constructs, r=Jamie
Made IsTableCell() only check the generic type, not the ARIA map entry that gets checked in HasGenericType. This prevents the crash and also fixes IsTableCell() and AsTableCell() not being in sync.

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

--HG--
extra : moz-landing-system : lando
2018-11-08 10:54:09 +00:00
Marco Zehe a7b776042d Bug 1501273 - Expose an html:form element as a landmark role if it has an accessible name, r=Jamie
If html:form has a name given via ARIA, expose it as a landmark to platform APIS that require it. At the time of this submission, this is the case for ATK.

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

--HG--
extra : moz-landing-system : lando
2018-11-02 01:06:56 +00:00
Alexander Surkov 08eb9dff6a Bug 1487311 - accessibility doesn't assosiate ids in shadow DOM, r=jamie, sr=smaug 2018-10-30 08:17:04 +08:00
Alexander Surkov 4536232292 Bug 1052866 - Expose IAccessibleText on tables, rows, etc., r=tbsaunde. Bustage fix by MarcoZ. 2018-10-26 11:07:27 +02:00
Brindusan Cristian a663055a3b Backed out changeset a69a426bdb14 (bug 1052866) for mochitest failures on test_selection.html. CLOSED TREE 2018-10-26 11:51:22 +03:00
Alexander Surkov cda4486cbb Bug 1052866 - Expose IAccessibleText on tables, rows, etc., r=tbsaunde
--HG--
extra : rebase_source : 993e03d0f304a02654e11d1c3d7c9abfd85da273
2018-10-26 09:54:20 +02:00
Margareta Eliza Balazs 72b1e834f3 Backed out changeset 02d8210b8904 (bug 1501353) on request from MarcoZ a=backout
--HG--
extra : source : 0fe678bdcf595a848a25f423825ac6387bd19f1b
2018-10-24 11:36:25 +03:00
Marco Zehe c5581dfc0f Bug 1210630 - Section elements with accessible names should be mapped the same as ARIA role region, r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D9480

--HG--
extra : moz-landing-system : lando
2018-10-24 05:34:22 +00:00
Marco Zehe 5104d78a7d Bug 1501353 - Change the exposed accessible role for a named region from region to landmark, r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D9554

--HG--
extra : moz-landing-system : lando
2018-10-24 00:34:21 +00:00
Daniel Varga 9a610a8759 Merge mozilla-central to mozilla-inbound. a=merge
--HG--
rename : mobile/android/extensions/webcompat/webextension/background.js => mobile/android/extensions/webcompat/injections.js
rename : mobile/android/extensions/webcompat/webextension/injections/js/bug0000000-dummy-js-injection.js => mobile/android/extensions/webcompat/injections/js/bug0000000-dummy-js-injection.js
rename : mobile/android/extensions/webcompat/webextension/injections/js/bug1452707-window.controllers-shim-ib.absa.co.za.js => mobile/android/extensions/webcompat/injections/js/bug1452707-window.controllers-shim-ib.absa.co.za.js
rename : mobile/android/extensions/webcompat/webextension/injections/js/bug1457335-histography.io-ua-change.js => mobile/android/extensions/webcompat/injections/js/bug1457335-histography.io-ua-change.js
rename : mobile/android/extensions/webcompat/webextension/injections/js/bug1472075-bankofamerica.com-ua-change.js => mobile/android/extensions/webcompat/injections/js/bug1472075-bankofamerica.com-ua-change.js
rename : mobile/android/extensions/webcompat/webextension/injections/js/bug1472081-election.gov.np-window.sidebar-shim.js => mobile/android/extensions/webcompat/injections/js/bug1472081-election.gov.np-window.sidebar-shim.js
rename : mobile/android/extensions/webcompat/webextension/injections/js/bug1482066-portalminasnet.com-window.sidebar-shim.js => mobile/android/extensions/webcompat/injections/js/bug1482066-portalminasnet.com-window.sidebar-shim.js
2018-10-20 13:32:54 +03:00
Emilio Cobos Álvarez 5ebe7949ae Bug 1487312 - Fix content insertion accessibility notifications in Shadow DOM. r=Jamie,surkov
The issue was specific to content insertion directly under a shadow root, the
rest should work (see bug 1427825 for the fix for other similar occurrences).

The removal of the aContainer argument follows the same pattern as bug 1442207.

Differential Revision: https://phabricator.services.mozilla.com/D6431
2018-10-20 01:19:08 +02:00
Marco Zehe c90a496216 Bug 1492393 - Make our table index methods aware of cells spanning multiple columns, r=surkov
Sometimes, when cells have display:block, and a different cell in the same row has a column span, our index methods did not take these into account. Also, when regular tables encounter such a cell, index calculation failed.

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

--HG--
extra : moz-landing-system : lando
2018-10-19 08:18:04 +00:00
Eitan Isaacson 3bb071595c Bug 1479037 - Introduce native event support 4/4. r=jchen,yzen?jamie
Depends on D6683

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

--HG--
extra : moz-landing-system : lando
2018-10-11 16:22:11 +00:00
Daniel Varga 4f26bbce63 Merge autoland to mozilla-central. a=merge 2018-10-10 19:07:16 +03:00
Dorel Luca 92a3152cee Backed out 4 changesets (bug 1479037) on dev's request for causing android crashes. a=backout
Backed out changeset 85f8ca59f747 (bug 1479037)
Backed out changeset 630601f0663e (bug 1479037)
Backed out changeset c926c6470235 (bug 1479037)
Backed out changeset f8a20bd86895 (bug 1479037)
2018-10-10 18:52:59 +03:00
Masayuki Nakano 9b40433ef6 Bug 1461708 - part 7: Make EventStateManager::HandleMiddleClickPaste() dispatch ePaste event by itself r=smaug
This is preparation of the last patch.  Even if no editor is clicked with
middle button, we need to do:
- collapse Selection at the clicked point.
- dispatch "paste" event.

Therefore, HandleMiddleClickPaste() should dispatch ePaste event by itself
and each editor methods should have a bool argument which the caller wants
ePaste event automatically.

Note that Chromium dispatches "paste" event and pastes clipboard content
into clicked editor even if preceding "auxclick" event is consumed.
However, our traditional behavior is not dispatching "paste" event nor
pasting clipboard content.  Unless Chromium developer keeps their odd
behavior, we should keep our traditional behavior since our behavior is
conforming to DOM event model.

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

--HG--
extra : moz-landing-system : lando
2018-10-10 12:05:39 +00:00
Eitan Isaacson 8102b1e502 Bug 1479037 - Introduce native event support 4/4. r=jchen,yzen?jamie
Depends on D6683

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

--HG--
extra : moz-landing-system : lando
2018-10-09 17:21:01 +00:00
Nicholas Nethercote fb0c912a86 Bug 1451169 - Use `nsStaticAtom* const` instead of `nsStaticAtom**` in DocAccessible.cpp. r=davidb
--HG--
extra : rebase_source : fb518d946f193c5237fb3fb7e28a8b1f7e3559e3
2018-04-03 22:15:30 +10:00
Nicholas Nethercote 7de7b7aae3 Bug 1451169 - Change nsRoleMapEntry::roleAtom from `nsStaticAtom**` to `nsStaticAtom* const`. r=davidb
--HG--
extra : rebase_source : 3a7101328e9ffcb6adeef42c98afa26d0531ca1c
2018-04-03 10:55:33 +10:00
Marco Zehe aa436fb77a Bug 1486668 - <td> with display: block doesn't get table cell semantics, r=surkov
Differential Revision: https://phabricator.services.mozilla.com/D6158

--HG--
extra : moz-landing-system : lando
2018-09-26 08:47:35 +00:00
Eitan Isaacson dc59a7f112 Bug 1489324 - Add 'child-item-count' and 'hierarchical' attributes to collection containers. r=Jamie 2018-09-21 13:02:20 -07:00
Alexander Surkov af50d56f28 Bug 1491742 - UBSan: load of value which is not a valid value for type 'bool' in ImageAccessible.cpp, r=jamie 2018-09-21 13:52:50 +08:00
Eitan Isaacson c712a2aaaa Bug 1490840 - Only delete text in ReplaceText if the string is empty. r=Jamie 2018-09-18 16:16:00 -04:00
Narcis Beleuzu 94e37e71ff Merge inbound to mozilla-central. a=merge 2018-09-19 13:00:20 +03:00
James Teh 1999ca1f89 Bug 1485097: When handling aria-owns relocation and an owned child doesn't yet have an accessible, skip it if the owned child is actually an ancestor of its owner. r=surkov
This can easily be reproduced if the ancestor being owned has role="presentation", but there are other cases as well.
If we don't prevent this, we end up with a loop.

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

--HG--
extra : moz-landing-system : lando
2018-09-19 02:15:55 +00:00
Alexander Surkov ed5f3a33f3 Bug 1491210 - stop using nsIDOMXULLabeledControlElement, r=jamie 2018-09-19 09:06:31 +08:00
Eitan Isaacson 8a0557e2dd Bug 1479033 - Introduce Android accessibility directory. r=Jamie 2018-09-18 10:43:18 -07:00
Ehsan Akhgari 5d9d4af0cd Bug 1491574 - Part 2: Remove the XPCOM registration for nsPersistentProperties; r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D5950
2018-09-18 00:58:52 -04:00
Coroiu Cristina 40028657f0 Backed out 3 changesets (bug 1491574) for build bustage at builds/worker/workspace/build/src/netwerk/base/nsNetUtil.cpp on a CLOSED TREE
Backed out changeset 5390b485f7e4 (bug 1491574)
Backed out changeset 3d11b69de826 (bug 1491574)
Backed out changeset e7e8f3f70f8b (bug 1491574)
2018-09-18 07:10:20 +03:00
Ehsan Akhgari 9b9060a876 Bug 1491574 - Part 2: Remove the XPCOM registration for nsPersistentProperties; r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D5950
2018-09-17 22:05:34 -04:00
Sylvestre Ledru aa37bde79b Bug 1489454 - Remove all trailing whitespaces (again) r=Ehsan
This also includes moving some files to the regular format.

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

--HG--
extra : moz-landing-system : lando
2018-09-07 14:47:51 +00:00
James Teh 5fad83caf4 Bug 1488109: If the focused element has aria-activedescendant and the target id is moved to another node, move accessible focus to the new target. r=surkov
Differential Revision: https://phabricator.services.mozilla.com/D4832

--HG--
extra : moz-landing-system : lando
2018-09-05 04:43:18 +00:00
James Teh fca9213cd0 Bug 1322621: If aria-activedescendant is removed or changed to an invalid id while an element is focused, move accessible focus to the element itself. r=surkov
Differential Revision: https://phabricator.services.mozilla.com/D4732

--HG--
extra : moz-landing-system : lando
2018-08-31 07:00:59 +00:00
Alexander Surkov ef0cc6d04c Bug 1487313 - stop using nsIDOMXULLabelElement and nsIDOMXULDescriptionElement in a11y, r=jamie 2018-08-31 09:17:38 +08:00
Alexander Surkov e36505da67 Bug 1486671 - stop using nsIDOMXULCheckboxElement, r=jamie 2018-08-29 15:42:31 +08:00