For the record I'm opposed to what you are proposoing. I don't like that
you lose the symmetry between innerHTML and outerHTML.


On Wed, Apr 10, 2013 at 4:34 PM, Scott Miles <sjmi...@google.com> wrote:

> I made an attempt to describe how these things can be non-lossy here:
> https://gist.github.com/sjmiles/5358120
>
>
> On Wed, Apr 10, 2013 at 12:19 PM, Scott Miles <sjmi...@google.com> wrote:
>
>> input/video would have intrinsic Shadow DOM, so it would not ever be part
>> of outerHTML.
>>
>> I don't have a precise way to differentiate intrinsic Shadow DOM from
>> non-intrinsic Shadow DOM, but my rule of thumb is this: 'node.outerHTML'
>> should produce markup that parses back into 'node' (assuming all
>> dependencies exist).
>>
>>
>> On Wed, Apr 10, 2013 at 12:15 PM, Erik Arvidsson <a...@chromium.org>wrote:
>>
>>> Once again, how would this work for input/video?
>>>
>>> Are you suggesting that `createShadowRoot` behaves different than when
>>> you create the shadow root using markup?
>>>
>>>
>>> On Wed, Apr 10, 2013 at 3:11 PM, Scott Miles <sjmi...@google.com> wrote:
>>>
>>>> I think we all agree that node.innerHTML should not reveal node's
>>>> ShadowDOM, ever.
>>>>
>>>> What I am arguing is that, if we have <shadow-root> element that you
>>>> can use to install shadow DOM into an arbitrary node, like this:
>>>>
>>>> <div>
>>>>   <shadow-root>
>>>>     Decoration --> <content></content> <-- Decoration
>>>>   <shadow-root>
>>>>   Light DOM
>>>> </div>
>>>>
>>>>
>>>> Then, as we agree, innerHTML is
>>>>
>>>> LightDOM
>>>>
>>>>
>>>> but outerHTML would be
>>>>
>>>> <div>
>>>>   <shadow-root>
>>>>     Decoration --> <content></content> <-- Decoration
>>>>   <shadow-root>
>>>>   Light DOM
>>>> </div>
>>>>
>>>>
>>>> I'm suggesting this outerHTML only for 'non-intrinsic' shadow DOM, by
>>>> which I mean Shadow DOM that would never exist on a node unless you hadn't
>>>> specifically put it there (as opposed to Shadow DOM intrinsic to a
>>>> particular element type).
>>>>
>>>> With this inner/outer rule, all serialization cases I can think of work
>>>> in a sane fashion, no lossiness.
>>>>
>>>> Scott
>>>>
>>>>
>>>>
>>>> On Wed, Apr 10, 2013 at 12:05 PM, Erik Arvidsson <a...@chromium.org>wrote:
>>>>
>>>>> Maybe I'm missing something but we clearly don't want to include
>>>>> <shadowroot> in the general innerHTML getter case. If I implement
>>>>> input[type=range] using custom elements + shadow DOM I don't want 
>>>>> innerHTML
>>>>> to show the internal guts.
>>>>>
>>>>>
>>>>> On Wed, Apr 10, 2013 at 2:30 PM, Scott Miles <sjmi...@google.com>wrote:
>>>>>
>>>>>> I don't see any reason why my document markup for some div should not
>>>>>> be serializable back to how I wrote it via innerHTML. That seems just 
>>>>>> plain
>>>>>> bad.
>>>>>>
>>>>>> I hope you can take a look at what I'm saying about outerHTML. I
>>>>>> believe at least the concept there solves all cases.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Apr 10, 2013 at 11:27 AM, Brian Kardell 
>>>>>> <bkard...@gmail.com>wrote:
>>>>>>
>>>>>>>
>>>>>>> On Apr 10, 2013 1:24 PM, "Scott Miles" <sjmi...@google.com> wrote:
>>>>>>> >
>>>>>>> > So, what you quoted are thoughts I already deprecated mysefl in
>>>>>>> this thread. :)
>>>>>>> >
>>>>>>> > If you read a bit further, see that  I realized that <shadow-root>
>>>>>>> is really part of the 'outer html' of the node and not the inner html.
>>>>>>> >
>>>>>>> Yeah sorry, connectivity issue prevented me from seeing those until
>>>>>>> after i sent i guess.
>>>>>>>
>>>>>>> > >> I think that is actually a feature, not a detriment and easily
>>>>>>> explainable.
>>>>>>> >
>>>>>>> > What is actually a feature? You mean that the shadow root is
>>>>>>> invisible to innerHTML?
>>>>>>> >
>>>>>>>
>>>>>>>
>>>>>>> Yes.
>>>>>>>
>>>>>>> > Yes, that's true. But without some special handling of Shadow DOM
>>>>>>> you get into trouble when you start using innerHTML to serialize DOM 
>>>>>>> into
>>>>>>> HTML and transfer content from A to B. Or even from A back to itself.
>>>>>>> >
>>>>>>>
>>>>>>> I think Dimiti's implication iii is actually intuitive - that is
>>>>>>> what I am saying... I do think that round-tripping via innerHTML would 
>>>>>>> be
>>>>>>> lossy of declarative markup used to create the instances inside the
>>>>>>> shadow... to get that it feels like you'd need something else which I 
>>>>>>> think
>>>>>>> he also provided/mentioned.
>>>>>>>
>>>>>>> Maybe I'm alone on this, but it's just sort of how I expected it to
>>>>>>> work all along... Already, roundtripping can differ from the original
>>>>>>> source, If you aren't careful this can bite you in the hind-quarters 
>>>>>>> but it
>>>>>>> is actually sensible.  Maybe I need to think about this a little deeper,
>>>>>>> but I see nothing at this stage to make me think that the proposal and
>>>>>>> implications are problematic.
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> erik
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> erik
>>>
>>>
>>>
>>
>


-- 
erik

Reply via email to