mozilla-config.h.in
author Brian Birtles <birtles@gmail.com>
Tue, 27 Jun 2017 10:55:03 -0700
changeset 367173 9d0c157be7670fa138de10829d30239db7abaabd
parent 363585 1fd26e219e34f73fb72cca5d88e7ea9247b83f3d
child 397413 e9c5541886e8b7cb9960751e25e3b05f0780f6b4
permissions -rw-r--r--
Bug 1365472 - Use animated class names when doing selector matching in Servo; r=heycam Using SVG SMIL it is possible to animate the class attribute of an element using markup such as the following: <style> .red { fill: red; } </style> <svg> <circle cx="50" cy="50" r="30" fill="blue"> <set attributeName="class" to="red" begin="1s"/> </circle> </svg> In Gecko, Element::GetClasses handles this case by looking for an animated class string when the element in question is an SVG element. This patch causes our Servo bindings to use GetClasses when querying attribute values for selector matching. Note that animating the class attribute is *not* expected to affect attribute selectors such as `circle[class="red"]`. It does in Chrome, but that is due to a Blink bug where animating attributes using SMIL affects the result of getAttribute: https://bugs.chromium.org/p/chromium/issues/detail?id=735820 This patch adjusts the behavior for both the GeckoElement case and the ServoElementSnapshot case. MozReview-Commit-ID: DAFWHSH1aYB

/* List of defines generated by configure. Included with preprocessor flag,
 * -include, to avoid long list of -D defines on the compile command-line.
 * Do not edit.
 */

#ifndef MOZILLA_CONFIG_H
#define MOZILLA_CONFIG_H

#if defined(__clang__)
#pragma clang diagnostic push
#if __has_warning("-Wreserved-id-macro")
#pragma clang diagnostic ignored "-Wreserved-id-macro"
#endif
#endif

/* Expands to all the defines from configure. */
#undef ALLDEFINES

/*
 * The c99 defining the limit macros (UINT32_MAX for example), says:
 *
 *   C++ implementations should define these macros only when
 *   __STDC_LIMIT_MACROS is defined before <stdint.h> is included.
 *
 * The same also occurs with __STDC_CONSTANT_MACROS for the constant macros
 * (INT8_C for example) used to specify a literal constant of the proper type,
 * and with __STDC_FORMAT_MACROS for the format macros (PRId32 for example) used
 * with the fprintf function family.
 */
#define __STDC_LIMIT_MACROS
#define __STDC_CONSTANT_MACROS
#if !defined(__STDC_FORMAT_MACROS)
#define __STDC_FORMAT_MACROS
#endif

#if defined(__clang__)
#pragma clang diagnostic pop
#endif

/*
 * Force-include Char16.h in order to define PRUnichar as char16_t everywhere.
 * Note that this should be the first #include to make sure that prtypes.h does
 * not attempt to define PRUnichar.  This includes the following hunspell-specific
 * includes.
 */
#if !defined(__ASSEMBLER__)
#include "mozilla/Char16.h"
#endif

/*
 * Force-include hunspell_alloc_hooks.h and hunspell_fopen_hooks.h for hunspell,
 * so that we don't need to modify them directly.
 *
 * HUNSPELL_STATIC is defined in extensions/spellcheck/hunspell/src/Makefile.in,
 * unless --enable-system-hunspell is defined.
 */
#if defined(HUNSPELL_STATIC)
#include "hunspell_alloc_hooks.h"
#include "hunspell_fopen_hooks.h"
#endif

/*
 * Force-include sdkdecls.h for building the chromium sandbox code.
 *
 * CHROMIUM_SANDBOX_BUILD is defined in security/sandbox/moz.build.
 * Note that this include path relies on the LOCAL_INCLUDES in that file.
 */
#if defined(CHROMIUM_SANDBOX_BUILD) && defined(XP_WIN)
#include "base/win/sdkdecls.h"
#endif

#endif /* MOZILLA_CONFIG_H */