"mozilla/a11y/IPCTypes.h(10): fatal error C1083: Cannot open include file: 'mozilla/a11y/Role.h': No such file or directory" with --disable-accessibility

RESOLVED FIXED in Firefox 61

Status

()

defect
RESOLVED FIXED
Last year
Last year

People

(Reporter: RyanVM, Assigned: Alex_Gaynor)

Tracking

unspecified
mozilla61
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox61 fixed)

Details

Attachments

(1 attachment)

No description provided.
Flags: needinfo?(agaynor)
Can you include the full error log? (Hoping to see where IPCTypes.h is being included from)
Flags: needinfo?(agaynor) → needinfo?(ryanvm)
Ok, here's the hard chain:

 2:32.23 In file included from /Users/agaynor/projects/mozilla-central/obj-x86_64-apple-darwin17.5.0/ipc/ipdl/UnifiedProtocols11.cpp:38:
 2:32.23 In file included from /Users/agaynor/projects/mozilla-central/obj-x86_64-apple-darwin17.5.0/ipc/ipdl/PDocAccessible.cpp:12:
 2:32.23 /Users/agaynor/projects/mozilla-central/obj-x86_64-apple-darwin17.5.0/ipc/ipdl/_ipdlheaders/mozilla/a11y/PDocAccessible.h:20:10: fatal error: 'mozilla/a11y/Role.h' file not found
 2:32.23 #include "mozilla/a11y/Role.h"
 2:32.23          ^~~~~~~~~~~~~~~~~~~~~
 2:32.23 1 error generated.

PDocAccessible uses a11y::Role, but Role is defined in accessible/base/Role.h, which isn't built in disable-accessibility builds.

aklotz, I don't know how this code is put together very well. Bug 1453979 was simply trying to use the defined enum in the protocols where it's used, but I hadn't realized how disable-accessibility builds interacted with it. Do you have any suggestion for how to resolve?
Flags: needinfo?(ryanvm) → needinfo?(aklotz)
I'd suggest declaring a11y::Role as a dummy type when ACCESSIBILITY is not defined.

Take a look at accessible/ipc/IPCTypes.h for an example.
Flags: needinfo?(aklotz)
Comment on attachment 8968598 [details]
Bug 1454628 - fixed compilation with --disable-accessibility builds;

https://reviewboard.mozilla.org/r/237288/#review243094

::: accessible/ipc/IPCTypes.h:21
(Diff revision 1)
>  struct ParamTraits<mozilla::a11y::role>
>    : public ContiguousEnumSerializerInclusive<mozilla::a11y::role,
>                                               mozilla::a11y::role::NOTHING,
>                                               mozilla::a11y::role::LAST_ROLE>
>  {
>  };

Nit: Please add a blank line between the end of the template specialization and the end of the namespace.

::: accessible/ipc/IPCTypes.h:22
(Diff revision 1)
>    : public ContiguousEnumSerializerInclusive<mozilla::a11y::role,
>                                               mozilla::a11y::role::NOTHING,
>                                               mozilla::a11y::role::LAST_ROLE>
>  {
>  };
>  };

Nit: You don't need a semicolon when closing the namespace.

::: accessible/ipc/IPCTypes.h:27
(Diff revision 1)
>  };
> +#else
> +namespace mozilla {
> +namespace a11y {
> +typedef uint32_t role;
> +}

Can you please add comments indicating which namespace each closing brace corresponds to?

e.g.

} // namespace a11y
Attachment #8968598 - Flags: review?(aklotz) → review+
Keywords: checkin-needed
Assignee: nobody → agaynor
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/37f7d1dde982
fixed compilation with --disable-accessibility builds; r=aklotz
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/37f7d1dde982
Status: NEW → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
You need to log in before you can comment on or make changes to this bug.