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

872 Коммитов

Автор SHA1 Сообщение Дата
Mirko Brodesser 36437a9d2d Bug 1613378: part 9) Clarify dependency to `mFrameSelection` in `Selection` when adding/removing ranges. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D62198

--HG--
extra : moz-landing-system : lando
2020-02-12 12:27:32 +00:00
Eitan Isaacson fa1647cd96 Bug 1590216 - Reset selection manager to focused element if its frame is recreated. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D61371

--HG--
extra : moz-landing-system : lando
2020-02-05 00:31:57 +00:00
Masayuki Nakano 450b71f763 Bug 1612085 - part 1: Hide constructor of `nsRange` r=smaug
`nsRange` instances are allocated a lot in the heap especially by editor and
spellchecker.  The allocation cost is too bad for benchmarks.  Therefore,
we should reuse released instances as far as possible.  For managing it in
static factory methods of `nsRange`, we need to hide `nsRange` constructor.

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

--HG--
extra : moz-landing-system : lando
2020-01-30 13:23:35 +00:00
James Teh 28c14667c7 Bug 1610596: Ignore ARIA roles other than application or dialog on body elements. r=MarcoZ
This means that for any other ARIA role, we will expose the DOCUMENT role on the DocAccessible.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 04:34:22 +00:00
James Teh c659d71564 Bug 1606743: Defer calling BrowserBridgeChild::SendSetEmbedderAccessible if a DocAccessibleChild hasn't sent its constructor to the parent process yet. r=eeejay
On Windows, if the top level document hasn't received its parent COM proxy yet, sending constructors for child documents will be deferred.
If an OuterDocAccessible for an OOP iframe is created inside a child document before its constructor is sent, we must also defer the call to BrowserBridgeChild::SendSetEmbedderAccessible.
previously, we tried to send the embedder before the document constructor was sent, causing a crash.

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

--HG--
extra : moz-landing-system : lando
2020-01-17 05:46:25 +00:00
Colomban Wendling 6ec7f65366 Bug 1597742 a11y: Make ScrollSubstringToPoint always scroll, not only when invisible r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D60164

--HG--
extra : moz-landing-system : lando
2020-01-17 02:10:31 +00:00
James Teh 1968353c48 Bug 1609589: Fire a value change event when the text of a spin button changes. r=MarcoZ
After bug 981248, <input type="number"> no longer has an anonymous text input.
Instead, the <input type="number"> itself manages the text.
Previously, the a11y code which fired value change events for text changes only did this for combo boxes and role ENTRY.
This meant a value change event was no longer fired for <input type="number">.
This condition has now been extended to include role SPINBUTTON.
This fixes reporting of <input type="number"> changes for JAWS.

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

--HG--
extra : moz-landing-system : lando
2020-01-16 04:57:24 +00:00
Emilio Cobos Álvarez 547c9db8cd Bug 1606130 - Make display: -moz-box more similar to other display types for block layout. r=jfkthame,surkov
It is unexpected (see bug) that a -moz-box is affected by baseline alignment.
Make -moz-box be block-outside, and -moz-inline-box be inline-outside, instead
of the bespoke thing we have now.

This is more similar to everything else, and fixes the bug.

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

--HG--
extra : moz-landing-system : lando
2020-01-07 21:00:42 +00:00
Bogdan Tara 6571a2a6fb Backed out changeset 23d862866f3a (bug 1606130) for android crashtest complaining about 1547420-1.html 2020-01-07 22:53:10 +02:00
Emilio Cobos Álvarez ff938720a8 Bug 1606130 - Make display: -moz-box more similar to other display types for block layout. r=jfkthame,surkov
It is unexpected (see bug) that a -moz-box is affected by baseline alignment.
Make -moz-box be block-outside, and -moz-inline-box be inline-outside, instead
of the bespoke thing we have now.

This is more similar to everything else, and fixes the bug.

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

--HG--
extra : moz-landing-system : lando
2020-01-07 18:02:05 +00:00
Mirko Brodesser e31ae0461a Bug 1600267: part 5) Call `ComparePoints` instead of `ComparePoints_Deprecated` in HyperTextAccessible. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D55299

--HG--
extra : moz-landing-system : lando
2019-12-19 13:27:42 +00:00
Mirko Brodesser b8bb35cc69 Bug 1600267: part 1) Rename `nsContentUtils::ComparePoints` to `ComparePoints_Deprecated`. r=smaug
In a follow-up commit a new `ComparePoints` method with cleaner
arguments and return value will be added.

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

--HG--
extra : moz-landing-system : lando
2019-12-19 13:27:08 +00:00
Kirk Steuber b8ab278230 Bug 1585482 - Remove C++ special-casing of top-level <dialog> elements r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D53721

--HG--
extra : moz-landing-system : lando
2019-12-10 18:10:45 +00:00
Gabriele Svelto 69790bc62e Bug 1600545 - Remove useless inclusions of header files generated from IDL files in accessible/, browser/, caps/, chrome/, devtools/, docshell/, editor/, extensions/, gfx/, hal/, image/, intl/, ipc/, js/, layout/, and media/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

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

--HG--
extra : moz-landing-system : lando
2019-12-06 09:16:44 +00:00
Emilio Cobos Álvarez 3c12d374bc Bug 1600362 - Cleanup IntersectionObserver. r=smaug
Initially this was going to be a simple cleanup: Remove some useless namespaces
here and there and so on, remove `using` statements from the header and so on.

But unfortunately, DOMIntersectionObserver.h (which is included in Element.h,
unnecessarily) ended up exposing `Element` unnamespaced to a lot of code, so I
had to fix that.

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

--HG--
extra : moz-landing-system : lando
2019-11-29 20:39:36 +00:00
James Teh 8d5f485ca6 Bug 1572677: Correct a11y exposure for HTML elements with associated XUL labels. r=MarcoZ
A XUL <label control="id"> can refer to an HTML element.
Keyboard and mouse support for this already works, but previously, this wasn't being exposed via accessibility APIs.

1. Split the code to get the name from an associated XUL label out of Accessible::XULElmName into a new function Accessible::NameFromAssociatedXULLabel.
2. Use NameFromAssociatedXULLabel for HTMl elements.
3. Update AccessKey and RelationByType to support HTML elements with associated XUL labels.
4. Rename accessible/tests/mochitest/actions/test_keys_menu.xhtml to test_keys.xhtml so it can cover accessKey outside of menus.
5. Add tests.

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

--HG--
rename : accessible/tests/mochitest/actions/test_keys_menu.xhtml => accessible/tests/mochitest/actions/test_keys.xhtml
extra : moz-landing-system : lando
2019-11-28 06:36:04 +00:00
Sylvestre Ledru 8d2f0d1b1f Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-11-26 14:35:02 +00:00
Masayuki Nakano 20699e2189 Bug 1597679 - part 2: Make `nsITextControlElement` inherit `nsGenericHTMLFormElementWithState` r=smaug
Sub classes of `nsITextControlElement` are only `HTMLInputElement` and
`HTMLTextAreaElement`. And both base class is
`nsGenericHTMLFormElementWithState`.  Therefore, we can make
`nsITextControlElement` inherit `nsGenericHTMLFormElementWithState` and
make `HTMLInputElement` and `HTMLTextAreaElement` inherit
`nsITextControlElement`.  Then, we can get rid of a lot of QI between
`nsINode`/`nsIContent`/`Element` and `nsITextControlElement` (and note that
some of them in a hot path).

Additionally, this patch renames `nsITextControlElement` to
`mozilla::TextControlElement`.

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

--HG--
rename : dom/html/nsITextControlElement.h => dom/html/TextControlElement.h
extra : moz-landing-system : lando
2019-11-25 06:35:15 +00:00
Coroiu Cristina 84bf2b6d25 Backed out 3 changesets (bug 1597679) for Android debug build bustage at build/src/dom/base/nsContentAreaDragDrop.cpp
Backed out changeset 6a73b58e0db4 (bug 1597679)
Backed out changeset 90a172eff2de (bug 1597679)
Backed out changeset d4a156cf28ff (bug 1597679)

--HG--
rename : dom/html/TextControlElement.h => dom/html/nsITextControlElement.h
2019-11-24 09:02:53 +02:00
Masayuki Nakano eea1784f2d Bug 1597679 - part 2: Make `nsITextControlElement` inherit `nsGenericHTMLFormElementWithState` r=smaug
Sub classes of `nsITextControlElement` are only `HTMLInputElement` and
`HTMLTextAreaElement`. And both base class is
`nsGenericHTMLFormElementWithState`.  Therefore, we can make
`nsITextControlElement` inherit `nsGenericHTMLFormElementWithState` and
make `HTMLInputElement` and `HTMLTextAreaElement` inherit
`nsITextControlElement`.  Then, we can get rid of a lot of QI between
`nsINode`/`nsIContent`/`Element` and `nsITextControlElement` (and note that
some of them in a hot path).

Additionally, this patch renames `nsITextControlElement` to
`mozilla::TextControlElement`.

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

--HG--
rename : dom/html/nsITextControlElement.h => dom/html/TextControlElement.h
extra : moz-landing-system : lando
2019-11-24 05:38:02 +00:00
James Teh 135e99b607 Bug 1597043: RootAccessible::ProcessDOMEvent: Return early if AsXULMultiSelectControl() on a XUL tree element fails. r=MarcoZ
This really shouldn't be possible.
All XUL trees should have nsIDOMXULMultiSelectControlElement, and the tree is focused at this point, so it shouldn't be dying.
Nevertheless, this sometimes happens in the wild and was causing crashes.

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

--HG--
extra : moz-landing-system : lando
2019-11-18 05:42:28 +00:00
James Teh 2a10f4812f Bug 1593396: If the content of an embed or object element changes to be web content, recreate as an OuterDocAccessible. r=MarcoZ
If an embed or object doesn't specify a URL (or specifies a URL which isn't web content), it won't be created as an OuterDocAccessible.
For example, an embed with no src will be created as a generic HyperTextAccessible.
If the URL later changes to refer to web content, we must recreate as an OuterDocAccessible.
Previously, we didn't recreate, which was causing an assertion and may have caused other strange issues as well.

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

--HG--
extra : moz-landing-system : lando
2019-11-08 05:49:46 +00:00
Brendan Dahl eafc9e3293 Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug
nsXULWindow is no longer XUL specific and is somewhat confusing name.

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

--HG--
rename : xpfe/appshell/nsXULWindow.cpp => xpfe/appshell/AppWindow.cpp
rename : xpfe/appshell/nsXULWindow.h => xpfe/appshell/AppWindow.h
rename : xpfe/appshell/nsIXULWindow.idl => xpfe/appshell/nsIAppWindow.idl
extra : moz-landing-system : lando
2019-11-05 17:56:28 +00:00
Mihai Alexandru Michis b819bd25aa Backed out 2 changesets (bug 1470510) for causing bustages in widget/cocoa/nsChildView.mm CLOSED TREE
Backed out changeset a343f30c34a3 (bug 1470510)
Backed out changeset 4da64790094d (bug 1470510)

--HG--
rename : xpfe/appshell/nsIAppWindow.idl => xpfe/appshell/nsIXULWindow.idl
rename : xpfe/appshell/AppWindow.cpp => xpfe/appshell/nsXULWindow.cpp
rename : xpfe/appshell/AppWindow.h => xpfe/appshell/nsXULWindow.h
2019-11-05 09:24:26 +02:00
Brendan Dahl 0c0da7791e Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug
nsXULWindow is no longer XUL specific and is somewhat confusing name.

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

--HG--
rename : xpfe/appshell/nsXULWindow.cpp => xpfe/appshell/AppWindow.cpp
rename : xpfe/appshell/nsXULWindow.h => xpfe/appshell/AppWindow.h
rename : xpfe/appshell/nsIXULWindow.idl => xpfe/appshell/nsIAppWindow.idl
extra : moz-landing-system : lando
2019-11-04 23:37:31 +00:00
Dorel Luca 0207ce5451 Backed out 2 changesets (bug 1470510) for build bustage on /build/src/widget/cocoa/nsChildView.mm. CLOSED TREE
Backed out changeset 5967bf633574 (bug 1470510)
Backed out changeset 067a556bb614 (bug 1470510)

--HG--
rename : xpfe/appshell/nsIAppWindow.idl => xpfe/appshell/nsIXULWindow.idl
rename : xpfe/appshell/AppWindow.cpp => xpfe/appshell/nsXULWindow.cpp
rename : xpfe/appshell/AppWindow.h => xpfe/appshell/nsXULWindow.h
extra : amend_source : 752d828c6a0726c3f2df57a25741e38b36b75d6b
2019-11-04 19:18:56 +02:00
Brendan Dahl 247b257cfa Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug
nsXULWindow is no longer XUL specific and is somewhat confusing name.

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

--HG--
rename : xpfe/appshell/nsXULWindow.cpp => xpfe/appshell/AppWindow.cpp
rename : xpfe/appshell/nsXULWindow.h => xpfe/appshell/AppWindow.h
rename : xpfe/appshell/nsIXULWindow.idl => xpfe/appshell/nsIAppWindow.idl
extra : moz-landing-system : lando
2019-11-04 16:52:35 +00:00
Edgar Chen acd2114113 Bug 1580491 - Use Element::HasNonEmptyAttr in various places; r=bzbarsky
This was done by reviewing the results of
https://searchfox.org/mozilla-central/search?q=%2F*GetAttr%5C(.%2B(%26%26%7C%5C%7C%5C%7C)&case=true&regexp=true
one by one and replacing them with Element::HasNonEmptyAttr if possible.

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

--HG--
extra : moz-landing-system : lando
2019-11-01 15:24:25 +00:00
James Teh 7d0494adc2 Bug 1585851: When processing a11y insertions, don't try to move an accessible if its new previous sibling hasn't been moved into its new container yet. r=MarcoZ
Sometimes, depending on how children were changed, children might be in the insertion list out of order; e.g. [child2, child1].
It's also possible that an earlier child (child1 in the above example) is being moved out of another container.
When processing the earlier insertion (child2), we'll determine we need to move it within its parent and will fetch its new previous sibling so we can move it into the right place.
However, in this case, the new previous sibling (child1) will be in the wrong container.
We can't move in that case; the new previous sibling's index in parent will obviously be wrong, since it's relative to the wrong container.
Therefore, we just skip the move.
Since the previous sibling (child1) is later in the insertion list, the ordering will be corrected when we process that insertion.

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

--HG--
extra : moz-landing-system : lando
2019-10-30 06:32:50 +00:00
Kirk Steuber 047d40ee73 Bug 1584283 - Stop using xul:wizard as a root element and migrate consumers to xul:window[role=dialog] with the wizard as the only child r=surkov. On a CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D48922

--HG--
extra : source : 01007f3333ea182c83bced4ff750c96b22925e80
extra : amend_source : 3b06af7be6009d6bd94798e14f30a2550f1c4c4f
extra : histedit_source : be50ba403a84dda5af1c902438c918c17a971578
2019-10-17 21:25:53 +00:00
Dorel Luca 659e2d2335 Backed out changeset 01007f3333ea (bug 1584283) for Browser-chrome failures in widget/tests/browser/browser_test_procinfo.js 2019-10-23 03:23:24 +03:00
Kirk Steuber e937081418 Bug 1584283 - Stop using xul:wizard as a root element and migrate consumers to xul:window[role=dialog] with the wizard as the only child r=surkov
Differential Revision: https://phabricator.services.mozilla.com/D48922

--HG--
extra : moz-landing-system : lando
2019-10-17 21:25:53 +00:00
Emilio Cobos Álvarez 5ffa02e5a8 Bug 998590 - Factor out heading accessibility level into HTMLHeadingElement. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D49407

--HG--
extra : moz-landing-system : lando
2019-10-16 12:32:10 +00:00
Morgan Reschenberg 83d56de89c Bug 1579750: Consider aria role before landmark role for xlm-roles attribute. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D49178

--HG--
extra : moz-landing-system : lando
2019-10-14 21:54:35 +00:00
Alexander Surkov 5459de4426 Bug 1587512 - remove XBL dialog support bits; remove XBL support from TreeWalker; update XBL related comments and remove XBL mutation test r=MarcoZ,Jamie
Depends on D48964

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

--HG--
extra : moz-landing-system : lando
2019-10-14 05:36:10 +00:00
Alexander Surkov 350c642a46 Bug 1587512 - remove nsIXBLAccessible interface r=MarcoZ,Jamie
Differential Revision: https://phabricator.services.mozilla.com/D48964

--HG--
extra : moz-landing-system : lando
2019-10-14 05:40:05 +00:00
Alexander Surkov 9dc56a5bf5 Bug 1587104 - do not pick up accessible name from containing XUL toolbaritem r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D48581

--HG--
extra : moz-landing-system : lando
2019-10-09 00:09:47 +00:00
Sylvestre Ledru f12b9fa5c3 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-10-06 18:29:55 +00:00
Eitan Isaacson cc288d94bb Bug 1582619 - Return DocAccessible if doc root element is passed to GetAccessibleOrDescendant. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D47365

--HG--
extra : moz-landing-system : lando
2019-10-03 00:31:13 +00:00
Eitan Isaacson 18deeb8110 Bug 1582561 - Don't access lazily created descendants in GetAccessibleOrDescendant. r=Jamie
Lazily creating children might cause us to make layout calls at unsafe times.

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

--HG--
extra : moz-landing-system : lando
2019-10-03 00:30:06 +00:00
Morgan Reschenberg a20612a878 Bug 1584465: Null check parent accessible before attribute check to cover root case. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D47488

--HG--
extra : moz-landing-system : lando
2019-09-30 16:23:30 +00:00
Eitan Isaacson b591abf5e0 Bug 1581589 - Return null in GetAccessibleOrContainer for text leafs of unrendered maps. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D47185

--HG--
extra : moz-landing-system : lando
2019-09-26 01:51:45 +00:00
Morgan Reschenberg 33381f2280 Bug 1177014: Modify TransformOffset to correctly report bullet offsets, despite incorrect return from PeekOffset. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D46490

--HG--
extra : moz-landing-system : lando
2019-09-25 02:10:08 +00:00
Edgar Chen 5bc0854d2b Bug 1578355 - Part 1: Move user-activation code from EventStateManager to UserActivation; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D45168

--HG--
extra : moz-landing-system : lando
2019-09-20 20:51:25 +00:00
Daniel Varga bc19cdb06d Backed out 3 changesets (bug 1578355) for build bustage at build/src/dom/base/nsSyncLoadService.h:48:21. On a CLOSED TREE
Backed out changeset d50ad759f129 (bug 1578355)
Backed out changeset 339ab54ca471 (bug 1578355)
Backed out changeset 284299dac42c (bug 1578355)
2019-09-20 14:05:12 +03:00
Edgar Chen 5b6fe53148 Bug 1578355 - Part 1: Move user-activation code from EventStateManager to UserActivation; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D45168

--HG--
extra : moz-landing-system : lando
2019-09-20 10:31:55 +00:00
Eitan Isaacson db60a948f1 Bug 1580292 - Check for pruned descendants of reframed body. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D45423

--HG--
extra : moz-landing-system : lando
2019-09-11 18:32:07 +00:00
Eitan Isaacson 4b3b42e7be Bug 1578416 - Don't allow children of list item to move before bullet. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D45578

--HG--
extra : moz-landing-system : lando
2019-09-12 01:00:15 +00:00
Eitan Isaacson 0293722fcc Bug 1565728 - Introduce PDocAccessiblePlatformExt. r=Jamie
This is an extension protocol that can be used for platform specific
API (ie. AccessibleWrap methods).

I'm not thrilled with the seperate constructor for the sub-protocol.
This means that the parent won't have the actor upon DocAccessibleParent
construction, and some timing bugs can arise because of the extra round
trip. It would be cool if both actors could be co-created, but that
would require ManagedEndpoint, and for PBrowser to manage them both. I
don't want to expose this to PBrowser.

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

--HG--
extra : moz-landing-system : lando
2019-09-13 16:55:01 +00:00
Masayuki Nakano f521a40385 Bug 1574852 - part 104: Move `TextEditRules::WillInsertText()` to `TextEditor` and make `HTMLEditor::WillInsertText()` override it r=m_kato
And also this patch moves `TextEditRules::HandleNewLines()` and
`TextEditRules::DontEchoPassword()` to `TextEditor`.

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

--HG--
extra : moz-landing-system : lando
2019-09-13 02:40:09 +00:00
Dorel Luca c7aad775a7 Backed out 2 changesets (bug 1565728) for License failure. CLOSED TREE
Backed out changeset 6c30dad5259b (bug 1565728)
Backed out changeset 4369b7203266 (bug 1565728)
2019-09-13 03:16:23 +03:00
Eitan Isaacson 35496390cd Bug 1565728 - Introduce PDocAccessiblePlatformExt. r=Jamie
This is an extension protocol that can be used for platform specific
API (ie. AccessibleWrap methods).

I'm not thrilled with the seperate constructor for the sub-protocol.
This means that the parent won't have the actor upon DocAccessibleParent
construction, and some timing bugs can arise because of the extra round
trip. It would be cool if both actors could be co-created, but that
would require ManagedEndpoint, and for PBrowser to manage them both. I
don't want to expose this to PBrowser.

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

--HG--
extra : moz-landing-system : lando
2019-09-12 23:01:59 +00:00
Dorel Luca 7f5e96335e Backed out 2 changesets (bug 1565728) for License failure. CLOSED TREE
Backed out changeset 0d08e4b02c17 (bug 1565728)
Backed out changeset 4fe176e80602 (bug 1565728)
2019-09-12 23:48:50 +03:00
Eitan Isaacson 82aa8a18ca Bug 1565728 - Introduce PDocAccessiblePlatformExt. r=Jamie
This is an extension protocol that can be used for platform specific
API (ie. AccessibleWrap methods).

I'm not thrilled with the seperate constructor for the sub-protocol.
This means that the parent won't have the actor upon DocAccessibleParent
construction, and some timing bugs can arise because of the extra round
trip. It would be cool if both actors could be co-created, but that
would require ManagedEndpoint, and for PBrowser to manage them both. I
don't want to expose this to PBrowser.

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

--HG--
extra : moz-landing-system : lando
2019-09-12 20:10:51 +00:00
Hiroyuki Ikezoe 6f114d0542 Bug 1541705 - Try to see whether the target frame is scrolled out of view in out-of-process iframe if we couldn't walk up the frame tree. r=surkov
Differential Revision: https://phabricator.services.mozilla.com/D44423

--HG--
extra : moz-landing-system : lando
2019-09-12 08:12:49 +00:00
Morgan Reschenberg 107633cba4 Bug 1277201: Fire a STATE_CHANGE event when a details element is opened or closed. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D44872

--HG--
extra : moz-landing-system : lando
2019-09-10 16:16:53 +00:00
Eitan Isaacson 0bf1f3d15c Bug 1578282 - Use flattened tree parent when getting inserted node container. r=Jamie
This assures that a node that has already been inserted in a shadow root
subtree does not get erroneously reinserted into the top container.

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

--HG--
extra : moz-landing-system : lando
2019-09-06 00:24:21 +00:00
James Teh 43953a25a3 Bug 1578311: Don't prune a trailing HTML br child from the accessibility tree. r=eeejay
Pruning these meant that `<span><br></span>` wasn't represented in the tree or rendered text at all.
This meant that lines were merged together in NVDA browse mode; e.g. in CI build logs on Gitlab.

The reason we started pruning these is that they were causing invalid line offsets to be returned for affected lines (bug 899433).
This patch also fixes this problem in HyperTextAccessible::FindOffset.

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

--HG--
extra : moz-landing-system : lando
2019-09-05 23:41:36 +00:00
Gerald Squelart 95f77c2409 Bug 1576819 - Use PROFILER_ADD_MARKER{,_WITH_PAYLOAD} everywhere - r=gregtatum
All calls to `profiler_add_marker()` (outside of the profilers code) are
now replaced by either:
- `PROFILER_ADD_MARKER(name, categoryPair)`
- `PROFILER_ADD_MARKER_WITH_PAYLOAD(name, categoryPair, TypeOfMarkerPayload,
                                    (payload, ..., arguments))`

This makes all calls consistent, and they won't need to prefix the category pair
with `JS::ProfilingCategoryPair::`.

Also it will make it easier to add (and later remove) internal-profiling
instrumentation (bug 1576550), and to replace heap-allocated payloads with
stack-allocated ones (bug 1576555).

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

--HG--
extra : moz-landing-system : lando
2019-09-04 07:56:51 +00:00
Eitan Isaacson c7e39034b6 Bug 1576690 - Prune de-slotted accessibles, or relocate them to new slot. r=Jamie,emilio
This patch does several things:
 1. If there is a change to a host or a slot, check the slottable
    elements to see if they are rendered in the tree. Remove them if not.
 2. Check slot elements' fallback content if it is rendered and remove if
    not.
 3. Allow accessibles to be reinserted into a different parent or index.

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

--HG--
extra : moz-landing-system : lando
2019-08-29 16:14:48 +00:00
Maliha Islam f35ba542fb Bug 1357071 - Implement support for implicit values for aria-value* attributes for scrollbar and slider roles, r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D43293

--HG--
extra : moz-landing-system : lando
2019-08-29 06:39:28 +00:00
Maliha Islam 829cc15e27 Bug 1522383 - Assign gridcell role to cells inside a table with grid role, r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D43858

--HG--
extra : moz-landing-system : lando
2019-08-29 10:09:48 +00:00
Dorel Luca efca664ecd Backed out changeset 7f1703036acf (bug 1357071) for Browser-chrome failures on accessible/tests/browser/e10s/browser_caching_value.js 2019-08-29 05:49:07 +03:00
Maliha Islam ea886244a0 Bug 1357071 - Implement support for implicit values for aria-value* attributes for scrollbar and slider roles, r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D43293

--HG--
extra : moz-landing-system : lando
2019-08-29 00:18:08 +00:00
Eitan Isaacson df40116d6f Bug 1572829 - Remove explicit children too when node has a shadow root. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D43488

--HG--
extra : moz-landing-system : lando
2019-08-28 23:02:19 +00:00
kriswright be316b6bf9 Bug 1573992 - Convert 3 ui.key.* prefs to static prefs. r=njn
Converts ui.key.generalAccessKey, ui.key.chromeAccess, and ui.key.contentAccess to static prefs. Updates usages.

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

--HG--
extra : moz-landing-system : lando
2019-08-26 20:25:42 +00:00
Gautham Velchuru 0b2b2ab7b2 Bug 1357100 - change implicit val for aria-level on a heading to 2 r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D35616

--HG--
extra : moz-landing-system : lando
2019-08-23 01:28:13 +00:00
Mike Hommey 66d7fe943e Bug 1575420 - Replace MOZ_WIDGET_TOOLKIT value of "gtk3" with "gtk". r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D42765

--HG--
extra : moz-landing-system : lando
2019-08-21 12:25:42 +00:00
Noemi Erli 6b80a780ed Backed out changeset 067d47e20a94 (bug 1572811) for causing failures in CharacterData.cpp CLOSED TREE 2019-08-15 20:30:45 +03:00
Eitan Isaacson 212dd05514 Bug 1572811 - Explicitly check for removed anonymous children in reframe. r=Jamie
The DOM mutation observer method is called during frame destruction
which is not a good state to be in when constructing and dispatching events.

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

--HG--
extra : moz-landing-system : lando
2019-08-15 16:06:33 +00:00
Alexander Surkov cfb8c8aef7 Bug 1573337 - remove XBL anon content filtering support from accessible tree traversal r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D42022

--HG--
extra : moz-landing-system : lando
2019-08-15 00:58:28 +00:00
Brendan Dahl b474db77c6 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

--HG--
extra : moz-landing-system : lando
2019-08-09 19:57:50 +00:00
James Teh 76dff37c45 Bug 1572317: When removing an Accessible because it lost its frame, remove Accessibles for DOM descendants as well. r=eeejay
Removing an Accessible removes descendants in the a11y tree.
However, there may be DOM descendants which have been relocated elsewhere in the a11y tree.
Their DOM nodes are now hidden as well, so we need to remove those Accessibles too.
In addition to Accessibles remaining in the tree when they shouldn't, failing to remove relocated Accessibles caused problems later on when a relocated Accessible was shown with new descendants.

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

--HG--
extra : moz-landing-system : lando
2019-08-09 01:21:54 +00:00
Eitan Isaacson 09554268a2 Bug 1571616 - Prune or reinsert accessibles in non-accessible container. r=Jamie
We need to visit the descendants of a container that has no accessible,
but has accessible children.

Also added a test for delayed removal where we can put all these nasty
cases.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 16:47:14 +00:00
Kannan Vijayan e53a880b1c Bug 1569262 - Rename nsIDocShellTreeItem::GetRootTreeItem to GetInProcessRootTreeItem for Fission marking. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D41064

--HG--
extra : moz-landing-system : lando
2019-08-07 19:24:00 +00:00
Eitan Isaacson 67c11960cc Bug 686400 - Delay accessible removal on frame reconstruction. r=Jamie,emilio
We naively remove and then recreate accessibles when their content's
frame is reconstructed. By delaying the removal until we are certain the
content does not have a new layout frame, we can cut down on redundant
recreations.

When reconstructed content is re-inserted we can check it and its
subtree for missing frames and prune those accessibles from the tree.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 22:13:28 +00:00
Kris Maglione 22592538f5 Bug 1561015: Part 1 - Use BrowsingContext in window provider APIs. r=bzbarsky,mossop
This is the first step in making it possible to return remote WindowProxy
objects from window.open() and related APIs.

This patch also incidentally fixes a bug where getContentWindowOrOpenURI
returned the top-level browser window rather than the new content window when
passed OPEN_NEWWINDOW for the `aWhere` parameter. This was not the expected
behavior, and was a potentially major footgun for any new users who expected
to always get the content window for the URL they were loading, rather than
sometimes getting a chrome browser window instead.

For now, that case just returns null, which is only a minor footgun, rather
than the major one we had before.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 20:48:33 +00:00
Masayuki Nakano 765e91b497 Bug 1569902 - part 1: Stop using attribute to consider whether a `<br>` element is an editor bogus node or not r=m_kato,smaug
Editor creates a `<br>` element when it's root element is empty.
Then, it's stored by `TextEditRules::mBogusNode` and used for checking
whether the editor is empty quickly.  However, this `<br>` element has
`mozeditorbogusnode` attribute whose value is `true`.  However, adding or
removing the attribute is not cheap and web apps can refer such illegal
attribute.

Therefore, this patch makes `HTMLBRElement` take a specific flag whether
it's a bogus node or not.  However, this means that this hacky thing will be
exposed outside editor module.  For making what is the bogus node clearer,
this patch calls the such `<br>` elements as "padding `<br>` element for
empty editor".  So, this patch also includes a lot of renaming methods and
variables, and modifying related comments.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 05:44:40 +00:00
James Teh e7f4ed385b Bug 1570848: When an OuterDocAccessible is constructed, send it as the parent COM proxy for its remote document (if any). r=MarcoZ
Normally, the OuterDocAccessible is created first and the DocAccessibleParent for a remote document is created after that.
So, we get the OuterDocAccessible and call DocAccessibleParent::SendParentCOMProxy when the DocAccessibleParent is constructed (BrowserParent::RecvPDocAccessibleConstructor).
However, sometimes, the OuterDocAccessible is created *after* the DocAccessibleParent.
This sometimes happens for extension popups, for example.
In that case, we previously never sent the parent COM proxy.
Aside from leaving the remote document with a null parent, this also meant we never sent any events for the document, since events are buffered for remote documents until the parent COM proxy is received.
This effectively left the remote document (e.g. extension popup) inaccessible.

Now, we also call SendParentCOMProxy in the OuterDocAccessible constructor.
Note that this doesn't result in duplicates because if the OuterDocAccessible was created first, there won't be a DocAccessibleParent for the remote document yet, so this code won't run.

That said, if the OuterDocAccessible is recreated (e.g. due to frame reconstruction), we may call SendParentCOMProxy again.
This should be okay, but it required an assertion in DocAccessibleChild::RecvParentCOMProxy to be tweaked.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 04:24:54 +00:00
Eitan Isaacson 6d094c687d Bug 686400 - Filter content insertions in DocAccessible. r=Jamie
It seems a bit more sensible to me that if any filtering needs to happen
from content insertions, it should happen in the doc and not the
notification controller.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 16:19:15 +00:00
Eitan Isaacson aeb736599d Bug 686400 - Add function to nsCoreUtils for display: contents. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D40131

--HG--
extra : moz-landing-system : lando
2019-08-01 16:19:06 +00:00
Kannan Vijayan 3fb6190ec6 Bug 1559414 - Rename unaudited pre-fission methods with SameProcess for future audit burndown. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D39378

--HG--
extra : moz-landing-system : lando
2019-07-26 16:48:31 +00:00
Marco Zehe b999f08200 Bug 1568360 - Don't calculate the accessible names for table or grid rows unless they have an explicit ARIA role, r=Jamie
Previously, we would always calculate the name for tr elements from their descendants unconditionally. Assistive technologies aren't using this information, moreover, it causes problems if the name gets too long, for example in layout tables.

We now only calculate the name if the tr element has an explicit ARIA role.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 09:14:55 +00:00
James Teh dc0f1ef531 Bug 1566324 part 2: Respect shadow DOM for aria-activedescendant. r=eeejay
Previously, the target element for aria-activedescendant was retrieved by calling GetElementById on the owner document.
This meant that aria-activedescendant inside shadow DOM looked for ids in the owner document instead of the shadow DOM.
To fix this, use IDRefsIterator::GetElem instead.

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

--HG--
extra : moz-landing-system : lando
2019-07-25 20:44:18 +00:00
James Teh 1ace808723 Bug 1568163: Don't return proxy wrappers from OuterDocAccessible::ChildAtPoint with eDeepestChild to prevent crashes when hit testing via XPCOM. r=yzen
On Windows, OuterDocAccessible::GetChildAt can return a proxy wrapper for a remote document.
These aren't real Accessibles and shouldn't be returned except to the Windows a11y code (which doesn't use eDeepestChild).
Calling ChildAtPoint on these will crash!
Therefore, just return null in this case.

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

--HG--
extra : moz-landing-system : lando
2019-07-24 13:32:22 +00:00
Noemi Erli 2f99f5d875 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-07-16 00:48:17 +03:00
Mirko Brodesser 2f40f072ab Bug 1565584: move `nsIContentUtils::ContentIsDescendantOf` to `nsINode::IsInclusiveDescendantOf`. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D37880
2019-07-15 10:02:21 +02:00
Boris Zbarsky 374137e8d8 Bug 1565767 part 5. Remove some unnecesary refcounting at nsIContent::GetBaseURI callsites. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D37973

--HG--
extra : moz-landing-system : lando
2019-07-15 18:29:05 +00:00
Mirko Brodesser 6b67de025f Bug 1562876: rename `Selection::RemoveRange` to `Selection::RemoveRangeAndUnselectFramesAndNotifyListeners`. r=smaug
The name of the corresponding webidl interface of course remains unchanged.

Differential Revision: https://phabricator.services.mozilla.com/D36607
2019-07-03 13:26:14 +02:00
Mirko Brodesser 63b4627d28 Bug 1562876: rename `Selection::AddRange` to `Selection::AddRangeAndSelectFramesAndNotifyListeners`. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D36602
2019-07-03 13:26:13 +02:00
Cameron McCormack 0a6fb940c5 Bug 1553705 - Use a cheaper to compute state key for parser inserted form controls. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D32259

--HG--
extra : moz-landing-system : lando
2019-07-01 10:06:16 +00:00
Narcis Beleuzu cc10ed7ce5 Backed out 2 changesets (bug 1553705) for causing Bug1562142 . CLOSED TREE
Backed out changeset fbb26a04ec1f (bug 1553705)
Backed out changeset dd6e7c0970d5 (bug 1553705)
2019-06-29 02:39:01 +03:00
Cameron McCormack 4d1517b69f Bug 1553705 - Use a cheaper to compute state key for parser inserted form controls. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D32259

--HG--
extra : moz-landing-system : lando
2019-06-26 21:44:11 +00:00
James Teh 788fa105b8 Bug 1558390: For OOP iframes, also send the embedder accessible when the BrowserBridgeChild is created. r=yzen,nika
Previously, BrowserBridgeChild::SendSetEmbedderAccessible was only called when an OuterDocAccessible was constructed.
However, it's also possible that the BrowserBridgeChild is created *after* the OuterDocAccessible.
Therefore, we must also do this when a BrowserBridgeChild is created if the OuterDocAccessible already exists.

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

--HG--
extra : moz-landing-system : lando
2019-06-13 02:19:42 +00:00
Andreea Pavel ab94a895b6 Backed out changeset b5df002db72c (bug 1558390) for build bustages on a CLOSED TREE 2019-06-13 03:33:45 +03:00
James Teh 98c9b833d0 Bug 1558390: For OOP iframes, also send the embedder accessible when the BrowserBridgeChild is created. r=yzen,nika
Previously, BrowserBridgeChild::SendSetEmbedderAccessible was only called when an OuterDocAccessible was constructed.
However, it's also possible that the BrowserBridgeChild is created *after* the OuterDocAccessible.
Therefore, we must also do this when a BrowserBridgeChild is created if the OuterDocAccessible already exists.

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

--HG--
extra : moz-landing-system : lando
2019-06-12 14:57:40 +00:00
Brendan Dahl da359a0016 Bug 1558686 - Enable XUL default button behavior for any doc that allows XUL. r=Jamie
Fixes test 'accessible/tests/mochitest/relations/test_general.xul' when
loaded as XHTML.

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

--HG--
extra : moz-landing-system : lando
2019-06-12 03:16:33 +00:00
James Teh c0a638e74c Bug 1543313 part 3: For out-of-process iframes on Windows, send the embedder accessible COM proxy to be used as the parent of the embedded document. r=eeejay,yzen
Aside from the parent being needed by the client, this is also important because events from the embedded document are deferred until the parent COM proxy is received.

As part of this, we no longer try to send the parent COM proxy during construction of an OuterDocAccessible in the parent process.
This was previously a no-op anyway, as DocAccessibleParent::SendParentCOMProxy called DocAccessible::GetAccessible for the frame element, which would have returned null because the accessible isn't bound to the document until *after* it is constructed.
Changing this to directly pass the OuterDocAccessible was causing assertions in content processes, since it sometimes meant the parent COM proxy was sent twice, which is precisely what the assertion is protecting against.
Instead, the parent proxy is sent in Browserparent::RecvPDocAccessibleConstructor as it always was.

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

--HG--
extra : moz-landing-system : lando
2019-06-03 14:29:37 +00:00
Noemi Erli d831a07840 Backed out 4 changesets (bug 1553706, bug 1543313) for failures in DocAccessibleChild.cpp
Backed out changeset 1a8bea02205d (bug 1553706)
Backed out changeset 15f3e6bb3ba9 (bug 1543313)
Backed out changeset 30b106088985 (bug 1543313)
Backed out changeset 85d11dab6b63 (bug 1543313)
2019-05-31 06:24:44 +03:00
James Teh 381c2b2f93 Bug 1543313 part 3: For out-of-process iframes on Windows, send the embedder accessible COM proxy to be used as the parent of the embedded document. r=eeejay
Aside from the parent being needed by the client, this is also important because events from the embedded document are deferred until the parent COM proxy is received.

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

--HG--
extra : moz-landing-system : lando
2019-05-24 06:14:24 +00:00
James Teh bffe0db8cf Bug 1543307: For out-of-process iframes on Windows, return the embedded document as a child of the OuterDocAccessible. r=eeejay
Windows accessibility clients talk directly to the content process via COM.
In order to expose an OOP iframe document accessible as a child of the embedder iframe accessible via COM, the embedder process needs a COM proxy for the iframe document accessible.
This is exposed on the embedder's BrowserBridgeChild, so we can use this when a client asks for the child of the OuterDocAccessible.

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

--HG--
extra : moz-landing-system : lando
2019-05-23 19:54:37 +00:00
Edgar Chen 4b1ff2f791 Bug 1543439 - Part 1: Move special handling for MouseDown/Up event out of AutoHandlingUserInputStatePusher; r=masayuki
PresShell::EventHandler::HandleEventWithCurrentEventInfo is the only possible
place will do such handling; other places pass either a nullptr or a
non-MouseDown/Up event.

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

--HG--
extra : moz-landing-system : lando
2019-05-29 07:48:16 +00:00
James Teh 25b9e2f1f5 Bug 1543282 part 3: For iframes rendered in other processes, tell the parent the embedder iframe accessible. r=eeejay
We do this when the OuterDocAccessible is constructed.
This will be used later in the parent process to link the trees together when the iframe's embedded document accessible is added.

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

--HG--
extra : moz-landing-system : lando
2019-05-29 04:42:55 +00:00
Eitan Isaacson 291dfad17d Bug 1548362 - Include visual viewport offsets in bounds and hittest calculations. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D30385

--HG--
extra : moz-landing-system : lando
2019-05-15 00:06:30 +00:00
Daniel Varga 4cbc287f63 Merge mozilla-inbound to mozilla-central. a=merge 2019-05-23 18:54:21 +03:00
Eitan Isaacson f9b6430779 Bug 1551825 - Release mAnchorJumpElm and mInvalidationList in DocAccessible::Shutdown. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D32197

--HG--
extra : moz-landing-system : lando
2019-05-22 22:03:44 +00:00
Eitan Isaacson 661bd00c42 Bug 1506514 - Don't create accessibles for unselected deck panel descendants. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D31656

--HG--
extra : moz-landing-system : lando
2019-05-20 15:54:56 +00:00
James Teh 67fb859dcb Bug 1190882: If the focused accessible is removed from the tree, fire a11y focus on the document. r=eeejay
If the DOM focus is removed before something else is focused, the document gets DOM focus, but no blur event is fired (bug 559561).
This means that no a11y focus event is fired, so clients aren't notified.
This is particularly problematic for screen readers when dismissing some ARIA dialogs, as the screen reader doesn't know that focus has returned to the top level document.

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

--HG--
extra : moz-landing-system : lando
2019-05-15 00:31:16 +00:00
Hiroyuki Ikezoe ddb35d3718 Bug 1541253 - Check PresShell::IsUnderHiddenEmbedderElement where we need to check CSS visibility state across the document boundary. r=tnikkel
Depends on D26252

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

--HG--
extra : moz-landing-system : lando
2019-05-10 11:22:28 +00:00
Masayuki Nakano 0925cb9a70 Bug 1549155 - Mark EditorBase::DeleteNodeWithTransaction() as MOZ_CAN_RUN_SCRIPT r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D30038

--HG--
extra : moz-landing-system : lando
2019-05-07 22:27:29 +00:00
Ryan Hunt 4683a8b07a Bug 1525720, part 13 - Stop inheriting nsIRemoteTab interface in BrowserParent. r=nika
This commit removes nsIRemoteTab as a parent class from BrowserParent,
so that BrowserHost is the only concrete implementation of nsIRemoteTab.

Some static_cast's are updated to cast to BrowserHost, and other places
have to be updated to pass a BrowserHost instead of a BrowserParent.

WindowGlobalParent had a getter to return it's managing BrowserParent
as a nsIRemoteTab. I couldn't find a use of this in-tree, so I've just
opt-ed to remove it. If there's a use-case, we can add something back
in.

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

--HG--
extra : source : 810b7371987139844429d0206f9da6a7701a1efc
2019-05-08 14:34:47 -05:00
Gurzau Raul 57f573a6ff Backed out 18 changesets (bug 1525720) for mass failures on Windows platform e.g ProcessPriorityManager.cpp on a CLOSED TREE.
Backed out changeset 1f2e86c2d691 (bug 1525720)
Backed out changeset 9b79caa460a0 (bug 1525720)
Backed out changeset e65cb2d4c5a5 (bug 1525720)
Backed out changeset 99f971a02d87 (bug 1525720)
Backed out changeset d25963c72ff7 (bug 1525720)
Backed out changeset 810b73719871 (bug 1525720)
Backed out changeset ee10a8254481 (bug 1525720)
Backed out changeset 1bcf9f586c55 (bug 1525720)
Backed out changeset d3b2ac8d5ca4 (bug 1525720)
Backed out changeset 697774dd8984 (bug 1525720)
Backed out changeset eadeacbe4483 (bug 1525720)
Backed out changeset 32eeee79d628 (bug 1525720)
Backed out changeset 07678a2fa9e7 (bug 1525720)
Backed out changeset 757b4f595cc4 (bug 1525720)
Backed out changeset b255e0a84e12 (bug 1525720)
Backed out changeset 9a255864f75d (bug 1525720)
Backed out changeset 5f1c1b609ec1 (bug 1525720)
Backed out changeset 00d83f1d02e0 (bug 1525720)
2019-05-23 01:57:16 +03:00
Ryan Hunt 93d6ab4ec4 Bug 1525720, part 13 - Stop inheriting nsIRemoteTab interface in BrowserParent. r=nika
This commit removes nsIRemoteTab as a parent class from BrowserParent,
so that BrowserHost is the only concrete implementation of nsIRemoteTab.

Some static_cast's are updated to cast to BrowserHost, and other places
have to be updated to pass a BrowserHost instead of a BrowserParent.

WindowGlobalParent had a getter to return it's managing BrowserParent
as a nsIRemoteTab. I couldn't find a use of this in-tree, so I've just
opt-ed to remove it. If there's a use-case, we can add something back
in.

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

--HG--
extra : rebase_source : 63070e3c2b90c9134f9106028e124935c8dad009
extra : histedit_source : 807f2ff684d86008077be07b0894f39a925fe778
2019-05-08 14:34:47 -05:00
Masayuki Nakano bad5d5bfe9 Bug 1547416 - Move nsIPresShell::ScrollAxis to PresShellForwards.h r=smaug
`nsIPresShell::ScrollAxis` can be used anywhere and it's used by some
utils actually. So, it should be in `mozilla` namespace and perhaps,
 `PresShellForwards.h` is a good place to move it rather than creating
new header file.

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

--HG--
extra : moz-landing-system : lando
2019-04-30 00:07:49 +00:00
Sylvestre Ledru 96da5036ad Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-28 09:30:05 +00:00
Emilio Cobos Álvarez e67a519741 Bug 1546697 - followup: Fix a typo introduced in the last commit. r=a11y-orange 2019-04-26 02:29:04 +02:00
Emilio Cobos Álvarez 11ea945833 Bug 1546697 - Use a consistent style for enum classes in layout. r=dholbert
Per the discussion in:

  https://groups.google.com/d/msg/mozilla.dev.platform/P79pwa9z5m8/iPYPAWPHCAAJ

They should be CamelCase, and that's what most of them already do. This converts
the rest, which are a few.

For the ones that already used `e` or `k` prefixes, I've mostly done:

 for file in $(rg Type::e layout | cut -d : -f 1 | sort | uniq); do sed -i 's#Type::e#Type::#g' $file; done

For the ones that used uppercase, I've removed the prefix if it was already in
the type name, and turn them into CamelCase.

Depends on D28680

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

--HG--
extra : moz-landing-system : lando
2019-04-25 23:03:04 +00:00
Masayuki Nakano 3622509485 Bug 1545342 - part 2: Make some public enum of nsIPresShell move to mozilla namespace and defined as enum class in PresShellForwards.h r=smaug
This patch moves some `enum` in `nsIPresShell` which are in public scope into
`mozilla` namespace and change them as `enum class`es.

Unfortunately, only "where to scroll" enum is just defines constants of
percentages of scroll destination.  Therefore, this patch makes only them
as `static const`.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 05:04:15 +00:00
Ryan Hunt d6509bb237 Bug 1534395 - Rename TabChild to BrowserChild. r=nika
This commit renames TabChild to BrowserChild.

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

--HG--
rename : dom/base/InProcessTabChildMessageManager.cpp => dom/base/InProcessBrowserChildMessageManager.cpp
rename : dom/base/InProcessTabChildMessageManager.h => dom/base/InProcessBrowserChildMessageManager.h
rename : dom/ipc/TabChild.cpp => dom/ipc/BrowserChild.cpp
rename : dom/ipc/TabChild.h => dom/ipc/BrowserChild.h
extra : rebase_source : e7fcfb845a971a2760e73d517e24da18ce2551b5
extra : histedit_source : d1991334ccb107fe56e478865f22fd97b041a317
2019-04-09 17:39:01 -05:00
Ryan Hunt 0eeced87be Bug 1534395 - Rename TabParent to BrowserParent. r=nika
This commit renames TabParent to BrowserParent.

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

--HG--
rename : dom/ipc/TabParent.cpp => dom/ipc/BrowserParent.cpp
rename : dom/ipc/TabParent.h => dom/ipc/BrowserParent.h
extra : rebase_source : d2706b9f42177d8de16068b7b1d088a44b8720a4
extra : histedit_source : a617ddac45c58050ef799116a67d2d983f2a8f6d%2C1d1dabd8761a32d548a6fbf1027be960698f6a5e
2019-04-09 16:38:15 -05:00
Ryan Hunt 3675f2449b Bug 1534395 - Rename nsITabParent to nsIRemoteTab. r=nika,mconley
nsITabParent is exposed to frontend code and is generally used as a representation of a remote tab. We could just rename the interface to nsIBrowserParent and worry about it later, but I think it's better to rename the interface to nsIRemoteTab so that we can later work on splitting the interface away from the PBrowser protocol.

Note: Some frontend code refers to a TabParentId. This commit renames this to RemoteTabId. We need to figure out the purpose of TabId with fission.

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

--HG--
rename : dom/interfaces/base/nsITabParent.idl => dom/interfaces/base/nsIRemoteTab.idl
extra : rebase_source : 9d8a1790a7bb10195ad063644d1a93d63b2afb72
2019-04-09 15:59:37 -05:00
Magnus Melin 3f542151f4 Bug 1530207 - fix crash [@ InvalidArrayIndex_CRASH | mozilla::a11y::Accessible::InsertChildAt] . r=surkov
For XULTreeAccessible, the ChildCount() is not only the mChildren, so check mChildren directly to make sure we stay within bounds

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

--HG--
extra : moz-landing-system : lando
2019-04-18 09:39:59 +00:00
Emilio Cobos Álvarez baf580cdfa Bug 1545107 - Remove nsIDocumentObserver::DocumentStatesChanged. r=smaug
It's a bit useless, only has one implementation. Call into the shell directly
instead.

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

--HG--
extra : moz-landing-system : lando
2019-04-17 19:29:59 +00:00
James Teh 5abb32cecd Bug 1543561: Expose the focusable state on a node focused by aria-activedescendant, even if that node isn't a descendant. r=eeejay
Sometimes, we use aria-activedescendant targeting something which isn't actually a descendant.
This is technically a spec violation, but it's a useful hack which makes certain things much easier.
For example, we use this for "fake focus" for multi select browser tabs and Quantumbar autocomplete suggestions.

This already worked previously; the accessible received a focus event and the focused state.
However, it did *not* receive the focusable state.
This is because the code which applies the focusable state for potential active descendants only works for descendants.

It really doesn't make sense for something to be focused when it isn't focusable.
In fact, this is an a11y test failure when it occurs.
So, if the active item has the focused state, ensure we expose the focusable state too.

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

--HG--
extra : moz-landing-system : lando
2019-04-17 23:13:10 +00:00
Masayuki Nakano d8d0bcab65 Bug 1543013 - part 2: Make accessible use mozilla::PresShell directly rather than via nsIPresShell r=Jamie
This patch makes accessible module use `mozilla::PresShell` directly rather
than via `nsIPresShell`.  Additionally, renames `DocAccessible::PresShell()`
to `DocAccessible::PresShellPtr()` for avoiding conflict with using
`PresShell` in it and its sub classes.

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

--HG--
extra : moz-landing-system : lando
2019-04-13 12:13:15 +00:00
Masayuki Nakano 09fd54444c Bug 1543013 - part 1: Mark some methods of nsCoreUtils as MOZ_CAN_RUN_SCRIPT r=Jamie
This patch marks some methods of nsCoreUtils which are found at writing the
following patches, as `MOZ_CAN_RUN_SCRIPT`.

Due to bug 1543294, some of them are marked as `MOZ_CAN_RUN_SCRIPT_BOUNDARY`
because `MOZ_CAN_RUN_SCRIPT` requires to change base class, but that's
other licenses header or used in our code too many places.

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

--HG--
extra : moz-landing-system : lando
2019-04-13 12:13:13 +00:00
Masayuki Nakano 0986fb819b Bug 1542506 - Make nsDocShell use mozilla::PresShell* directly rather than nsIPresShell* r=bzbarsky
This patch makes `nsDocShell::GetPresShell()` and
`nsDocShell::GetEldestPresShell()` return `mozilla::PresShell*` and
some non-public methods use `mozilla::PresShell*` directly.

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

--HG--
extra : moz-landing-system : lando
2019-04-13 01:03:13 +00:00
Brian Grinstead dd5a4c95c6 Bug 1495861 - Convert <radio> to a Custom Element r=surkov
Differential Revision: https://phabricator.services.mozilla.com/D8121

--HG--
extra : moz-landing-system : lando
2019-04-05 21:16:24 +00:00
Masayuki Nakano 5e41233499 Bug 1540990 - Get rid of unnecessary nsIPresShell.h inclusions r=emilio
A lot of files include `nsIPresShell.h` even though currently they don't
need it.  This patch removes the unnecessary inclusions.

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

--HG--
extra : moz-landing-system : lando
2019-04-04 00:19:48 +00:00
Razvan Maries 1cd564b971 Backed out changeset 3b94c20ba873 (bug 1540990) for build bustages. CLOSED TREE 2019-04-04 02:44:00 +03:00
Masayuki Nakano b2bba953cc Bug 1540990 - Get rid of unnecessary nsIPresShell.h inclusions r=emilio
A lot of files include `nsIPresShell.h` even though currently they don't
need it.  This patch removes the unnecessary inclusions.

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

--HG--
extra : moz-landing-system : lando
2019-04-03 23:29:38 +00:00
Masayuki Nakano 8329e8382e Bug 1540962 - Make nsICommandManager builtinclass and make users use nsCommandManager directly r=bzbarsky
`nsICommandManager` isn't implemented by JS even in comm-central nor
BlueGriffon.  Therefore, we can make it a builtinclass.

Additionally, this patch makes all users in C++ use `nsCommandManager` which is
the only implementation of `nsICommandManager`.  This avoids QI from
`nsICommandManager` to `nsPICommandUpdater`.

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

--HG--
extra : moz-landing-system : lando
2019-04-03 12:51:38 +00:00
Masayuki Nakano 9165a150a1 Bug 1540930 - Make nsPresContext use mozilla::PresShell directly rather than via nsIPresShell r=emilio
`nsPresContext` should use `mozilla::PresShell` directly instead of
`nsIPresShell`.  This patch makes it.

Unfortunately, `nsPresContext` and `nsIFrame` have `PresShell()`.  Therefore,
we cannot use `PresShell*` in its methods so that this patch uses `mozilla::`
namespace prefix.

It might be better to rename them as `PresShellPtr()` in another bug.

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

--HG--
extra : moz-landing-system : lando
2019-04-03 12:40:26 +00:00
Masayuki Nakano de2d589e58 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

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

--HG--
extra : moz-landing-system : lando
2019-03-29 15:12:47 +00:00
Dorel Luca 5a0fa68b78 Backed out 3 changesets (bug 1540015) for build bustage. CLOSED TREE
Backed out changeset 7b71c9da0214 (bug 1540015)
Backed out changeset 5723ddbc5c44 (bug 1540015)
Backed out changeset 9561d2c36fa5 (bug 1540015)
2019-03-29 16:14:26 +02:00
Masayuki Nakano 9273f25ce2 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

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

--HG--
extra : moz-landing-system : lando
2019-03-29 13:09:26 +00:00
James Teh ef2bda893e Bug 1473234: make a11y listen to DOM events from iframes and shadow DOM. r=eeejay
1. Register with the root document window's parent target, since this receives events for iframes and shadow DOM. (The root document itself doesn't.)
2. Hold onto the target node when scheduling processing of the DOM event, as GetOriginalTarget returns null when we process shadow DOM events async.

Depends on D21349

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

--HG--
extra : moz-landing-system : lando
2019-03-25 05:04:36 +00:00
James Teh 1911fb04f0 Bug 1530931: Correctly handle retrieving a container accessible for a shadow root. r=eeejay
This can happen, for example, when GetAccessibleOrContainer is called within SelectionManager::ProcessSelectionChanged due to focusing a direct child of a shadow root.
In this case, the common ancestor is the shadow root itself.
Previously, we returned null in this case because GetFlattenedTreeParent doesn't work on the shadow root itself.
Now, we check if the given node is the shadow root, and if so, we use the shadow host instead.
This prevents the "We must reach document accessible implementing text interface!" assertion in SelectionManager::ProcessSelectionChanged when a direct child of a shadow root gets focus.

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

--HG--
extra : moz-landing-system : lando
2019-03-25 05:04:29 +00:00
Narcis Beleuzu 8f2eeb4b40 Backed out 2 changesets (bug 1530931, bug 1473234) for crashtest failures on RootAccessible::RemoveEventListeners . CLOSED TREE
Backed out changeset 54057e1121b5 (bug 1473234)
Backed out changeset faa43bdd3347 (bug 1530931)
2019-03-21 05:53:57 +02:00
James Teh 44f8fe46e4 Bug 1473234: make a11y listen to DOM events from iframes and shadow DOM. r=eeejay
1. Register with the root document window's parent target, since this receives events for iframes and shadow DOM. (The root document itself doesn't.)
2. Hold onto the target node when scheduling processing of the DOM event, as GetOriginalTarget returns null when we process shadow DOM events async.

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

--HG--
extra : moz-landing-system : lando
2019-03-01 02:48:47 +00:00
James Teh d4b9670c0d Bug 1530931: Correctly handle retrieving a container accessible for a shadow root. r=eeejay
This can happen, for example, when GetAccessibleOrContainer is called within SelectionManager::ProcessSelectionChanged due to focusing a direct child of a shadow root.
In this case, the common ancestor is the shadow root itself.
Previously, we returned null in this case because GetFlattenedTreeParent doesn't work on the shadow root itself.
Now, we check if the given node is the shadow root, and if so, we use the shadow host instead.

This prevents the "We must reach document accessible implementing text interface!" assertion in SelectionManager::ProcessSelectionChanged when a direct child of a shadow root gets focus.

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

--HG--
extra : moz-landing-system : lando
2019-03-20 15:19:44 +00:00
Boris Zbarsky 9a4ba73134 Bug 1534370 part 3. Mark InsertFromTransferable as MOZ_CAN_RUN_SCRIPT. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D23042

--HG--
extra : moz-landing-system : lando
2019-03-12 01:55:03 +00:00
Eitan Isaacson 9559a7c4a2 Bug 1531346 - Check for cyclical relationship with aria-activedescendant. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D22633

--HG--
extra : moz-landing-system : lando
2019-03-08 07:55:13 +00:00
Eitan Isaacson 130d8fe6b2 Bug 1512567 - Check that we didn't already create an IPCDoc for the DocAccessible. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D20594

--HG--
extra : moz-landing-system : lando
2019-02-26 17:05:47 +00:00
Samuel Thibault fb05007f2c Bug 919508 - layout: Do not trim spaces when inspected from accessibility layer r=jfkthame
--HG--
extra : histedit_source : 3fbe469291ddca0344d6fd88dcadb6282f1ca846
2019-02-22 22:12:48 +01:00
Masatoshi Kimura e25fbce870 Bug 1528651 - Re-enable warnings-as-errors on Windows in some directories. r=dmajor
--HG--
extra : source : ba86ea25070b37f4725834e1c2d9ec4c0783e119
2019-02-17 15:03:02 +09:00
Markus Stange 0b151b8c2b Bug 1500692 - Centralize profiling category definition and add infrastructure for subcategories. r=njn
The actual subcategories will be added in later patches, so that there are no
unused categories.

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

--HG--
extra : moz-landing-system : lando
2019-02-16 17:37:43 +00:00
Eitan Isaacson 773b9d611a Bug 1525980 - Make announcement events work over IPC. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D19061

--HG--
extra : moz-landing-system : lando
2019-02-14 17:42:47 +00:00
Eitan Isaacson baa769abf9 Bug 1525980 - Introduce nsIAccessibleAnnouncementEvent. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D19060

--HG--
extra : moz-landing-system : lando
2019-02-14 17:42:45 +00:00
Eitan Isaacson bb5af5a481 Bug 1527254 - Don't rely on tabpanels xul element in Android for offcreen state. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D19710

--HG--
extra : moz-landing-system : lando
2019-02-14 08:01:36 +00:00
Marco Zehe c0bdc14cea Bug 1525849 - Guard against 0 columns or out of bounds indexes for ARIA grid accessibles, r=Jamie
When returning the column or row index of a given cell, guard against the column count being 0 or the given index being out of bounds of the current grid or table. The MSAA code already did this previously, but now the upper bounds check has been moved to the base classes and an additional guard for the column count been put in place so a division by 0 crash canot happen.

A return value for RowIndexAt and ColIndexAt of -1 indicates an error condition. ATK will automatically deal with this, and the IA2 code has been adjusted to check for this and return an invalid argument error in such cases, too.

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

--HG--
extra : moz-landing-system : lando
2019-02-07 21:06:42 +00:00
Marco Zehe 91fe1bab37 Bug 1524919 - When getting the cell-index object attribute, make sure to only return positive values, r=Jamie
When getting the cell-index object attribute, now take into account that the row index might be invalid, and bail if that's the case. This should prevent negative index values which were one of the causes of Occasional crashes on Linux with weirdly formed tables like in Gmail.

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

--HG--
extra : moz-landing-system : lando
2019-02-07 01:12:22 +00:00
garvitdelhi 6bd950c37a Bug 1519185: Remove AttributeWillChange aNewValue parameter r=emilio,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D17073
2019-01-29 17:59:38 +01:00
Cosmin Sabou 6b126c3ff0 Backed out 2 changesets (bug 1519185) build bustages on nsMenuGroupOwnerX.mm. CLOSED TREE
Backed out changeset e1de5282e21a (bug 1519185)
Backed out changeset 00d8afb01890 (bug 1519185)

--HG--
extra : rebase_source : d92a7d4606992503f24c66093d35676e12a84ff0
2019-01-29 18:22:46 +02:00
garvitdelhi 3b6550b93f Bug 1519185: Remove AttributeWillChange aNewValue parameter r=emilio,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D17073

--HG--
extra : moz-landing-system : lando
2019-01-29 15:27:02 +00:00
Cosmin Sabou 7ccc9d8b0b Merge mozilla-inbound to mozilla-central. a=merge 2019-01-19 11:57:49 +02:00
Greg Tatum 7042c8f1c3 Bug 1520526 - Add categories to all profiler markers; r=mstange
This commit adds categories to all markers. This way the profiler's
marker categories and frame label categories agree. There are a few
duplicate category properties on some of the marker payloads, but
this could be cleaned up in a follow-up if needed.

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

--HG--
extra : moz-landing-system : lando
2019-01-18 15:40:15 +00:00
Marco Zehe b4ebbe90ae Bug 1515186 - Always calculate group position for all children of an accessible after a tree mutation, r=Jamie
Previously, if we had children a, b, c, and d, then removed b, the group position for c and d would potentially be marked as dirty, but a would not. This caused the check for the availability of previous group info to return outdated information.

This patch now always forces the update of all children's group position when a children move has occurred, since it potentially affects all the children, not just the ones after it. In addition, accGroupInfo::Update() now checks if the previous and next siblings that are being used as shortcuts have dirty group info, and are being used only if they do not.

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

--HG--
extra : moz-landing-system : lando
2019-01-10 05:59:01 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
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