gecko-dev/layout/style/DocumentMatchingFunction.h
Emilio Cobos Álvarez 562c44a853 Bug 1551040 - Add dark mode to plaintext.css, and a document rule to target plaintext documents. r=boris
We add two @-moz-document functions: `plain-text-document()`, matching the
obvious, and `unobservable-document()`, which matches a top-level document with
no opener. This is the equivalent check we do for automatic darkening of
`about:blank` here:

    https://searchfox.org/mozilla-central/rev/014fe72eaba26dcf6082fb9bbaf208f97a38594e/layout/base/PresShell.cpp#5282

The former we don't need to use, but it's nice to let user stylesheets target
plaintext documents properly (rather than relying on extensions or what not).

Note that these are not content-observable.

Add two tests: One showing that we produce different rendering when on dark
mode, and one showing that we produce the same one from an iframe, regardless
of dark mode.

Depends on D101517

Differential Revision: https://phabricator.services.mozilla.com/D101518
2021-01-17 14:44:41 +00:00

31 lines
797 B
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_css_DocumentMatchingFunction_h
#define mozilla_css_DocumentMatchingFunction_h
namespace mozilla {
namespace css {
/**
* Enum defining the type of matching function for a @-moz-document rule
* condition.
*/
enum class DocumentMatchingFunction {
URL = 0,
URLPrefix,
Domain,
RegExp,
MediaDocument,
PlainTextDocument,
UnobservableDocument,
};
} // namespace css
} // namespace mozilla
#endif // mozilla_css_DocumentMatchingFunction_h