edbrowse-dev - development list for edbrowse
 help / color / mirror / Atom feed
From: Adam Thompson <arthompson1990@gmail.com>
To: Karl Dahlke <eklhad@comcast.net>
Cc: Edbrowse-dev@lists.the-brannons.com
Subject: Re: [Edbrowse-dev] :before :after
Date: Wed, 21 Feb 2018 23:07:51 +0000	[thread overview]
Message-ID: <20180221230751.5orqxzkaixf5y5th@toaster> (raw)
In-Reply-To: <20180120065652.eklhad@comcast.net>

On Tue, Feb 20, 2018 at 06:56:52AM -0500, Karl Dahlke wrote:
> css can inject text into your document. I had no idea!
> It's not just colors and fonts and decorations, it can inject words.
> https://www.w3.org/TR/CSS21/generate.html

Wow, yeah... I never even imagined it'd do something like that.

> The first thing you'll notice is that :before is on the wrong side of the descriptor. It is a bad design that is cast in stone.
> :before is a selector but it is always true, it doesn't select anything.
> It is an action, and should be on the right.
> So we have to move it, functionally, if not physically, to the right.
> If present, *none* of the directives apply to the current node, except for content.
> Content:blah puts blah before, or after, everything under the current node.
> 
> p.note:before { content: "Note: " }
> 
> I need to create a text node, or a span, probably a text node, with contents blah,
> and then use either insertBefore or appendChild to paste it in.
> From there it will be rendered and you'll see it as usual.
> Not too hard, but there is fallout.

Should it actually appear in the DOM as a node or is it just for display i.e. should js see this node, or does it matter if it can?
Also, what happens if someone shoves html in there (if that's even possible).  Should it be rendered and parsed into the DOM?

> Here's the really bad news.
> I don't do any of this stuff, because I didn't think I had to.
> And that shaves almost 2 minutes off the browse time for stackoverflow, with its 5,000 selectors.
> I apply selectors to each node on demand, if and when you access the style element, and I thought that was really clever, and I guess it is,
> because I don't spend 2 minutes on stuff that doesn't matter, yet I still do what needs to be done on demand, but,
> I'm not injecting snippets of text before or after elements,
> and that changes the way the document might read.

Yeah, it's annoying we lose this.  I've not looked through the CSS parsing logic but is it possible to only apply *these* selectors and quickly skim over the rest and do the on-demand stuff for them?

> All this may have to wait until after 3.7.2, because right now I'm not even sure how to procede.
> BTW, I still hope we can cut 3.7.2 on Sunday, assuming we quit finding bugs, or at least problematic bugs.

Sounds like a plan.

Cheers,
Adam.

  reply	other threads:[~2018-02-21 23:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-20 11:56 Karl Dahlke
2018-02-21 23:07 ` Adam Thompson [this message]
2018-02-22  0:00   ` Karl Dahlke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180221230751.5orqxzkaixf5y5th@toaster \
    --to=arthompson1990@gmail.com \
    --cc=Edbrowse-dev@lists.the-brannons.com \
    --cc=eklhad@comcast.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).