--- firefox-52.1.2esr/dom/plugins/base/npapi.h.npapi-missing-include 2017-04-10 22:13:23.000000000 -0400 +++ firefox-52.1.2esr/dom/plugins/base/npapi.h 2017-05-28 21:37:43.743410282 -0400 @@ -46,7 +46,22 @@ #if defined(MOZ_X11) #include <X11/Xlib.h> #include <X11/Xutil.h> -#include "X11UndefineNone.h" +// The header <X11/X.h> defines "None" as a macro that expands to "0L". +// This is terrible because many enumerations have an enumerator named "None". +// To work around this, we undefine the macro "None", and define a replacement +// macro named "X11None". +// Include this header after including X11 headers, where necessary. +#ifdef None +# undef None +# define X11None 0L +// <X11/X.h> also defines "RevertToNone" as a macro that expands to "(int)None". +// Since we are undefining "None", that stops working. To keep it working, +// we undefine "RevertToNone" and redefine it in terms of "X11None". +# ifdef RevertToNone +# undef RevertToNone +# define RevertToNone (int)X11None +# endif +#endif #endif #endif