Closed Bug 1754905 Opened 3 years ago Closed 1 year ago

Reimagine XPCOM testing for Pivot

Categories

(Core :: Disability Access APIs, task)

task

Tracking

()

RESOLVED FIXED
116 Branch
Tracking Status
firefox116 --- fixed

People

(Reporter: Jamie, Assigned: eeejay)

References

(Blocks 1 open bug)

Details

(Whiteboard: [ctw-postship])

Attachments

(1 file)

Pivot now supports RemoteAccessible. However, the XPCOM implementation and the tests only support LocalAccessible. The XPCOM implementation also doesn't match how Pivot is used by platform code; e.g. it maintains state, there is a virtual cursor on the DocAccessible, etc.

We need to reimagine the XPCOM interface and the tests accordingly. We should also remove mVirtualCursor from DocAccessible.

We probably also want to remove AccVCChangeEvent.

This wasn't needed to get Android working. We should still do it so things are cleaner, though.

Whiteboard: [ctw-m1]
Depends on: 1834874
Whiteboard: [ctw-postship]
Depends on: 1839515

This patch does several things:

  1. Remove virtual cursor doc accessible member.
  2. Remove state-keeping nsAccessiblePivot implementation and replace it
    with something that is much more similar to the native Pivot
    interface.
  3. Move nsIAccessiblePivot implementation to xpcom and rename it
    xpcAccessiblePivot.
  4. Delete mochitests and introduce browser tests.
  5. Make new xpcom implementation work on remote accessibles as well.
Assignee: nobody → eitan
Status: NEW → ASSIGNED
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8be4693aecbb Match Pivot API in nsIAccessiblePivot. r=Jamie

Backed out for causing Bp-nu bustages in xpcAccessiblePivot.h.

  • Backout link
  • Push with failures
  • Failure Log
  • Failure line: /builds/worker/checkouts/gecko/accessible/xpcom/xpcAccessiblePivot.h:35:3: error: unknown type name 'Accessible'; did you mean 'mozilla::a11y::Accessible'?

There are also some gv-junit failures, as it can be seen here.

Flags: needinfo?(eitan)
Flags: needinfo?(eitan)
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4d92a76cedd0 Match Pivot API in nsIAccessiblePivot. r=Jamie
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f3095da827d9 Match Pivot API in nsIAccessiblePivot. r=Jamie

Backed out for causing build bustages on DocAccessibleWrap.

[task 2023-06-27T23:38:38.941Z] 23:38:38     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/accessible/mac'
[task 2023-06-27T23:38:38.941Z] 23:38:38     INFO -  accessible/mac/DocAccessibleWrap.o
[task 2023-06-27T23:38:38.944Z] 23:38:38     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ -isysroot /builds/worker/fetches/MacOSX13.3.sdk -mmacosx-version-min=10.12 -stdlib=libc++ --target=x86_64-apple-darwin -o DocAccessibleWrap.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -fvisibility=hidden -fvisibility-inlines-hidden -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/accessible/mac -I/builds/worker/workspace/obj-build/accessible/mac -I/builds/worker/checkouts/gecko/accessible/base -I/builds/worker/checkouts/gecko/accessible/generic -I/builds/worker/checkouts/gecko/accessible/html -I/builds/worker/checkouts/gecko/accessible/ipc -I/builds/worker/checkouts/gecko/accessible/xul -I/builds/worker/checkouts/gecko/layout/generic -I/builds/worker/checkouts/gecko/layout/xul -I/builds/worker/checkouts/gecko/widget -I/builds/worker/checkouts/gecko/widget/cocoa -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -fno-exceptions -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pipe -gdwarf-4 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O3 -fno-omit-frame-pointer -funwind-tables -Werror -Wall -Wbitfield-enum-conversion -Wdeprecated-this-capture -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtautological-constant-in-range-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wc++2a-compat -Wenum-compare-conditional -Wenum-float-conversion -Wno-error=deprecated -Wno-error=deprecated-anon-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-pragma -Wno-error=deprecated-this-capture -Wcomma -Wimplicit-fallthrough -Wduplicate-method-arg -Wduplicate-method-match -Wmissing-method-return-type -Wobjc-signed-char-bool -Wsemicolon-before-method-body -Wsuper-class-method-mismatch -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wformat -Wformat-security -Wno-psabi -Wthread-safety -Werror=unguarded-availability-new -Wno-error=builtin-macro-redefined -Wno-unknown-warning-option -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/DocAccessibleWrap.o.pp   -x objective-c++ -fobjc-exceptions   /builds/worker/checkouts/gecko/accessible/mac/DocAccessibleWrap.mm
[task 2023-06-27T23:38:38.946Z] 23:38:38    ERROR -  /builds/worker/checkouts/gecko/accessible/mac/DocAccessibleWrap.mm:64:22: error: member access into incomplete type 'const nsRoleMapEntry'
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -            if (roleMap->liveAttRule == ePoliteLiveAttr ||
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -                       ^
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/a11y/Accessible.h:18:8: note: forward declaration of 'nsRoleMapEntry'
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -  struct nsRoleMapEntry;
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -         ^
[task 2023-06-27T23:38:38.946Z] 23:38:38    ERROR -  /builds/worker/checkouts/gecko/accessible/mac/DocAccessibleWrap.mm:65:22: error: member access into incomplete type 'const nsRoleMapEntry'
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -                roleMap->liveAttRule == eAssertiveLiveAttr) {
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -                       ^
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/a11y/Accessible.h:18:8: note: forward declaration of 'nsRoleMapEntry'
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -  struct nsRoleMapEntry;
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -         ^
[task 2023-06-27T23:38:38.946Z] 23:38:38    ERROR -  /builds/worker/checkouts/gecko/accessible/mac/DocAccessibleWrap.mm:64:39: error: use of undeclared identifier 'ePoliteLiveAttr'
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -            if (roleMap->liveAttRule == ePoliteLiveAttr ||
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -                                        ^
[task 2023-06-27T23:38:38.946Z] 23:38:38    ERROR -  /builds/worker/checkouts/gecko/accessible/mac/DocAccessibleWrap.mm:65:39: error: use of undeclared identifier 'eAssertiveLiveAttr'
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -                roleMap->liveAttRule == eAssertiveLiveAttr) {
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -                                        ^
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -  4 errors generated.
[task 2023-06-27T23:38:38.946Z] 23:38:38    ERROR -  gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:675: DocAccessibleWrap.o] Error 1
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/accessible/mac'
[task 2023-06-27T23:38:38.946Z] 23:38:38     INFO -  gmake[4]: Target 'target-objects' not remade because of errors.
[task 2023-06-27T23:38:38.946Z] 23:38:38    ERROR -  gmake[3]: *** [/builds/worker/checkouts/gecko/config/recurse.mk:72: accessible/mac/target-objects] Error 2
[task 2023-06-27T23:38:38.953Z] 23:38:38     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/battery'

The non-unified build tasks are kicking my butt. Last time I land this, promise.

Flags: needinfo?(eitan)
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3d4299408fc4 Match Pivot API in nsIAccessiblePivot. r=Jamie
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 116 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: