Subject: 26.2; mhtml-mode (in HTML+CSS and HTML+JS) doesn't respect Whitespace Mode face settings

From: Andrew T <[email-masked]>
Date: Mon, 20 May 2019 17:30:59 -0700

I use (Global) Whitespace Mode with trailing spaces highlighted
(foreground is bold yellow) but *normal* spaces are supposed to be
invisible (foreground color is the same as the default background).

However, MHTML Mode, within CSS or JavaScript blocks, doesn't respect
these settings. The dots representing all spaces display in the default
foreground color, or in the color of the nearest highlighted text
token.

Exact steps to duplicate:

Open an HTML file containing CSS and/or JavaScript blocks, with Emacs
reset to defaults.

  ↪ emacs -Q ./foo.html

Enable MHTML and Whitespace modes.

  M-x mhtml-mode RET
  M-x whitespace-mode RET

Set normal spaces to be invisible (foreground color same as
background).

  M-x customize-face RET
  whitespace-space RET

-- then uncheck background color, set foreground color to same as
default background (white).

Back to the HTML document now...

  M-x previous-buffer

Don't do special highlighting for space indentation.

  M-x whitespace-toggle-options RET C-i

Don't to special highlight for long lines.

  M-x whitespace-toggle-options RET l

Dots representing nontrailing spaces should no longer be visible, but
in <style> and <script> blocks, they still are.

Screenshot here: https://imgur.com/a/51pMkbN

Automatically generated debug information:

In GNU Emacs 26.2 (build 1, x86_64-redhat-linux-gnu, GTK+ Version
3.24.8)
 of 2019-04-30 built on buildvm-06.phx2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.12004000
System Description:	Fedora release 30 (Thirty)

Recent messages:
Resetting customization items...done
Creating customization setup...done
You can run the command ‘customize-face’ with M-x cu-f RET
Creating customization setup...done
Making completion list... [2 times]
Quit
You can run the command ‘previous-buffer’ with <XF86Back>
 
You can run the command ‘whitespace-toggle-options’ with M-x wh-t RET
  [2 times]
whitespace-interactive-char: Quit
Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-
png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no --with-xwidgets --with-modules
 build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security
 -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions
 -fstack-protector-strong -grecord-gcc-switches
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS GLIB NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS LCMS2

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: HTML+

Minor modes in effect:
  whitespace-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-
config
gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils disp-table whitespace crm
help-fns radix-tree help-mode cus-edit cus-start cus-load wid-edit
mhtml-mode css-mode smie color js advice json map imenu thingatpt
cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs sgml-mode seq byte-opt gv bytecomp
byte-compile cconv dom cl-loaddefs cl-lib elec-pair time-date mule-util
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset
image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-
mode
lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-
readable
backquote threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting xwidget-internal move-toolbar
gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 156271 14035)
 (symbols 48 25619 1)
 (miscs 40 158 279)
 (strings 32 44788 1464)
 (string-bytes 1 1283979)
 (vectors 16 19871)
 (vector-slots 8 565353 11422)
 (floats 8 217 271)
 (intervals 56 4296 0)
 (buffers 992 15))