New issue
Advanced search Search tips

Issue 806641 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task

Blocking:
issue 648828
issue 806639



Sign in to add a comment

Too many createElement*()

Project Member Reported by tkent@chromium.org, Jan 29 2018

Issue description

Chrome Version: ToT
OS: All but iOS

There are too many functions to create an element, and their purposes are unclear.
Especially, we don't have a function corresponding to "create an element" [1] in the DOM specification. So we need to implement these steps repeatedly.

[1] https://dom.spec.whatwg.org/#concept-create-element

 

Comment 1 by tkent@chromium.org, Jan 29 2018

Owner: tkent@chromium.org
Status: Started (was: Available)
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/79671540866fa322eedad8fc925b15190df1c5f1

commit 79671540866fa322eedad8fc925b15190df1c5f1
Author: Kent Tamura <tkent@chromium.org>
Date: Mon Jan 29 09:25:38 2018

Add Document::CreateRawElement(), and use it in some functions.

The purpose of this function is to reduce the number of callsites for
FooElementFactory::createFooElement(), which don't support prefixes
correctly and contain unnecessary custom element processing.

The implementation of CreateRawElement() is equivalent to
Document::createElement(qname, flags) without custom-element processing.

* Document::createElement(local_name, options, exception_state):
  Replace createElement(local_name, exception_state) with
  CreateRawElement(). createElement(local_name, exception_state)
  contains V0 custom-element processing, but it isn't necessary here
  because it's already done before calling createElement().

* Document::createElementNS(ns, qname, exception_state):
  Replace createElement(qname, flag) call with V0 custom-element
  processing and CreateRawElement().
  createElement(qname, flag) does V0 custom-element processing in this
  path. This CL adds the custom-element processing here, and use
  CreateRawElement().

* Document::createElementNS(ns, qname, options, exception_state):
  Replace createElement(qname, flag) call with CreateRawElement().
  createElement(qname, flag) contains V0 custom-element processing,
  but it isn't necessary here because it's already done before
  calling createElement().

Bug:  806641 
Change-Id: Ib3d0f3e8cc05b17c69945594b307d76988a840ea
Reviewed-on: https://chromium-review.googlesource.com/890958
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532366}
[modify] https://crrev.com/79671540866fa322eedad8fc925b15190df1c5f1/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/79671540866fa322eedad8fc925b15190df1c5f1/third_party/WebKit/Source/core/dom/Document.h

Project Member

Comment 3 by bugdroid1@chromium.org, Jan 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bbbd45f027fe2a472ae95303bee339e9477fa16d

commit bbbd45f027fe2a472ae95303bee339e9477fa16d
Author: Kent Tamura <tkent@chromium.org>
Date: Tue Jan 30 07:32:10 2018

Use Document::CreateRawElement instead of createElement.

If the first argument of createElement() is a pre-defined QualifiedName,
CreateRawElement() is less expensive.

This CL should not have user-visible behavior changes.

Bug:  806641 
Change-Id: I80c96306031e83e1124882fcde456d54f762529f
Reviewed-on: https://chromium-review.googlesource.com/892601
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532803}
[modify] https://crrev.com/bbbd45f027fe2a472ae95303bee339e9477fa16d/third_party/WebKit/Source/core/dom/Document.h
[modify] https://crrev.com/bbbd45f027fe2a472ae95303bee339e9477fa16d/third_party/WebKit/Source/core/dom/events/EventPathTest.cpp
[modify] https://crrev.com/bbbd45f027fe2a472ae95303bee339e9477fa16d/third_party/WebKit/Source/core/editing/testing/EditingTestBase.cpp
[modify] https://crrev.com/bbbd45f027fe2a472ae95303bee339e9477fa16d/third_party/WebKit/Source/core/html/forms/HTMLSelectElement.cpp
[modify] https://crrev.com/bbbd45f027fe2a472ae95303bee339e9477fa16d/third_party/WebKit/Source/core/xml/parser/XMLErrors.cpp

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5c576d1e3a035b0ecb05c384b7e21800cfe0ee9f

commit 5c576d1e3a035b0ecb05c384b7e21800cfe0ee9f
Author: Kent Tamura <tkent@chromium.org>
Date: Wed Jan 31 08:44:49 2018

Reduce usage of HTMLElementFactory::createHTMLElement

The function contains autonomous custom element processing.  It's
unexpected in many cases.

If it's called with known HTML tags, custom element processing is
unnecessary and it should be replaced with
Document::CreateRawElement().

If it's called with arbitrary tag names, custom element processing
is necessary and it should be replaced with Document::createElement().

This CL is a preparation to remove HTMLElementFactory::createElement().

Bug:  806641 
Change-Id: I00dae6c2cdac18eccd1580a72d94862b5cb2d657
Reviewed-on: https://chromium-review.googlesource.com/895203
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533235}
[modify] https://crrev.com/5c576d1e3a035b0ecb05c384b7e21800cfe0ee9f/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.cpp
[modify] https://crrev.com/5c576d1e3a035b0ecb05c384b7e21800cfe0ee9f/third_party/WebKit/Source/core/html/track/vtt/VTTElement.cpp

Project Member

Comment 5 by bugdroid1@chromium.org, Feb 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b8a7fc604162683306efeebf4d5b6f989566002e

commit b8a7fc604162683306efeebf4d5b6f989566002e
Author: Kent Tamura <tkent@chromium.org>
Date: Thu Feb 01 05:04:48 2018

Share common code of Document::createElement() and createElementNS().

This CL has no behavior changes.

Bug:  806641 
Change-Id: Ia3a49d4f1e87ee9a1d027fa700d0c62567b35bf0
Reviewed-on: https://chromium-review.googlesource.com/897062
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533568}
[modify] https://crrev.com/b8a7fc604162683306efeebf4d5b6f989566002e/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/b8a7fc604162683306efeebf4d5b6f989566002e/third_party/WebKit/Source/core/dom/Document.h

Project Member

Comment 6 by bugdroid1@chromium.org, Feb 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/15db18b9fcf075f0d9798e335a058038ea3a0a03

commit 15db18b9fcf075f0d9798e335a058038ea3a0a03
Author: Kent Tamura <tkent@chromium.org>
Date: Thu Feb 01 06:00:36 2018

Remove {HTML,SVG}ElementFactory::create{HTML,SVG}Element().

Fold them into their callsites.

- Having complex logic in generated code is not nice.
- Want to centralize custom-element-related code to Document.cpp or
  core/html/custom/.

This CL has no behavior changes.

Bug:  806641 
Change-Id: Ie0e616715307d773c0733c5cef483454c5f86148
Reviewed-on: https://chromium-review.googlesource.com/897084
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533582}
[modify] https://crrev.com/15db18b9fcf075f0d9798e335a058038ea3a0a03/third_party/WebKit/Source/build/scripts/templates/element_factory.cc.tmpl
[modify] https://crrev.com/15db18b9fcf075f0d9798e335a058038ea3a0a03/third_party/WebKit/Source/build/scripts/templates/element_factory.h.tmpl
[modify] https://crrev.com/15db18b9fcf075f0d9798e335a058038ea3a0a03/third_party/WebKit/Source/core/dom/Document.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Feb 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f7379b6fa682ab90e32f08c69ba91fe2a35714cd

commit f7379b6fa682ab90e32f08c69ba91fe2a35714cd
Author: Kent Tamura <tkent@chromium.org>
Date: Fri Feb 02 10:12:56 2018

Simplify Document::createElementNS().

Simplify Document::createElementNS() code by using
Document::createElement(qname, flags).  There were no
createElement(qname, kCreatedByCreateElement). Removing |flags !=
kCreatedByCreateElement| in it is safe.

This CL has no behavior changes.

Bug:  806641 
Change-Id: I79112ccedb35ad3804e84fc62def3b0c395b1a7b
Reviewed-on: https://chromium-review.googlesource.com/896910
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534013}
[modify] https://crrev.com/f7379b6fa682ab90e32f08c69ba91fe2a35714cd/third_party/WebKit/Source/core/dom/Document.cpp

Project Member

Comment 8 by bugdroid1@chromium.org, Feb 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e7bb1213a63bc1607c7df2a7975a7713ac9e3839

commit e7bb1213a63bc1607c7df2a7975a7713ac9e3839
Author: Kent Tamura <tkent@chromium.org>
Date: Mon Feb 05 06:10:54 2018

Rewrite CreateElementFlags as a class

instead of an enum. The class would be helpful to avoid coding erros
like:

 if (flags == kCreatedByParser) // Ignore other bits

 if (flags & kSynchronousCustomElements) // & with 0


This is a preparation to add another field to CreateElementFlags.

Bug:  806641 
Change-Id: Id24b5d8db959c46ea3034f56729091aa29930a44
Reviewed-on: https://chromium-review.googlesource.com/900963
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534338}
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/build/scripts/templates/element_factory.cc.tmpl
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/build/scripts/templates/element_factory.h.tmpl
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/dom/CreateElementFlags.h
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/dom/Document.h
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/dom/events/EventPathTest.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/editing/commands/IndentOutdentCommand.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/editing/testing/EditingTestBase.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/html/custom/CustomElement.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/html/custom/CustomElement.h
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/html/custom/CustomElementDefinition.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/html/custom/CustomElementDefinition.h
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/html/track/vtt/VTTElement.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp
[modify] https://crrev.com/e7bb1213a63bc1607c7df2a7975a7713ac9e3839/third_party/WebKit/Source/core/xml/parser/XMLErrors.cpp

Project Member

Comment 9 by bugdroid1@chromium.org, Feb 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc5be6395403c627ff11871f99674316afbffb20

commit dc5be6395403c627ff11871f99674316afbffb20
Author: Kent Tamura <tkent@chromium.org>
Date: Mon Feb 05 10:18:33 2018

custom-elements: Merge CustomElement::CreateCustomElmentSync and CreateCustomElementAsync.

CreateElementFlags has IsAsyncCustomElements(). This CL simplifies the
code.
This CL has no behavior changes.

Bug:  806641 
Change-Id: I4a98de72542b9070ca39338776a0592997497f74
Reviewed-on: https://chromium-review.googlesource.com/901064
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534359}
[modify] https://crrev.com/dc5be6395403c627ff11871f99674316afbffb20/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/dc5be6395403c627ff11871f99674316afbffb20/third_party/WebKit/Source/core/html/custom/CustomElement.cpp
[modify] https://crrev.com/dc5be6395403c627ff11871f99674316afbffb20/third_party/WebKit/Source/core/html/custom/CustomElement.h

Project Member

Comment 10 by bugdroid1@chromium.org, Feb 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2815640adf4141da72a9d304476093b3601d50eb

commit 2815640adf4141da72a9d304476093b3601d50eb
Author: Kent Tamura <tkent@chromium.org>
Date: Tue Feb 06 05:47:19 2018

Rename CustomElement::CreateCustomElementSync to CreateCustomElement, and add async support to it.

This CL simplifies the code, and has no behavior changes.

Bug:  806641 
Change-Id: I46c7f8469f0ba231ea1179ac19de2afb0fbaa991
Reviewed-on: https://chromium-review.googlesource.com/903202
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534640}
[modify] https://crrev.com/2815640adf4141da72a9d304476093b3601d50eb/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/2815640adf4141da72a9d304476093b3601d50eb/third_party/WebKit/Source/core/html/custom/CustomElement.cpp
[modify] https://crrev.com/2815640adf4141da72a9d304476093b3601d50eb/third_party/WebKit/Source/core/html/custom/CustomElement.h

Project Member

Comment 11 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3b31c927f0fd57a5cb3c22b11233c02dc68ef36e

commit 3b31c927f0fd57a5cb3c22b11233c02dc68ef36e
Author: Kent Tamura <tkent@chromium.org>
Date: Wed Feb 07 03:41:39 2018

custom-elements: Simplify CutomElement::CreateCustomElement functions

- CreateCustomElement with three arguments calls CreateCustomElement
  with four arguments internally.

- Code cosmetic change in CreateCustomElement with four arguments.

This CL has no behavior changes.

Bug:  806641 
Change-Id: I7ae0fa4452b665533c8e250ae0ce2cbf74bc244c
Reviewed-on: https://chromium-review.googlesource.com/905902
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534903}
[modify] https://crrev.com/3b31c927f0fd57a5cb3c22b11233c02dc68ef36e/third_party/WebKit/Source/core/html/custom/CustomElement.cpp

Project Member

Comment 12 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0c1d871f8c5ce28eb34f10a2bc71901772ee440f

commit 0c1d871f8c5ce28eb34f10a2bc71901772ee440f
Author: Kent Tamura <tkent@chromium.org>
Date: Wed Feb 07 06:49:29 2018

custom-elements: Fold CustomElement::CreateCustomElement() and CustomElementDefinition::CreateElementAsync().

The merged function is CustomElementDefinition::CreateElement(). This CL
makes our code very close to the algorithm description in DOM standard.

Also, rename CustomElementDefinition::CreateElementSync() to
CreateAutonomousCustomElementSync().

This CL has no behavior changes.

Bug:  806641 
Change-Id: I5edb770246f476b9632b7226c3d9b2f6989fa21c
Reviewed-on: https://chromium-review.googlesource.com/906045
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534938}
[modify] https://crrev.com/0c1d871f8c5ce28eb34f10a2bc71901772ee440f/third_party/WebKit/Source/bindings/core/v8/ScriptCustomElementDefinition.cpp
[modify] https://crrev.com/0c1d871f8c5ce28eb34f10a2bc71901772ee440f/third_party/WebKit/Source/bindings/core/v8/ScriptCustomElementDefinition.h
[modify] https://crrev.com/0c1d871f8c5ce28eb34f10a2bc71901772ee440f/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/0c1d871f8c5ce28eb34f10a2bc71901772ee440f/third_party/WebKit/Source/core/html/custom/CustomElement.cpp
[modify] https://crrev.com/0c1d871f8c5ce28eb34f10a2bc71901772ee440f/third_party/WebKit/Source/core/html/custom/CustomElement.h
[modify] https://crrev.com/0c1d871f8c5ce28eb34f10a2bc71901772ee440f/third_party/WebKit/Source/core/html/custom/CustomElementDefinition.cpp
[modify] https://crrev.com/0c1d871f8c5ce28eb34f10a2bc71901772ee440f/third_party/WebKit/Source/core/html/custom/CustomElementDefinition.h
[modify] https://crrev.com/0c1d871f8c5ce28eb34f10a2bc71901772ee440f/third_party/WebKit/Source/core/html/custom/CustomElementTestHelpers.h
[modify] https://crrev.com/0c1d871f8c5ce28eb34f10a2bc71901772ee440f/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.cpp

Project Member

Comment 13 by bugdroid1@chromium.org, Feb 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e3a1844f00baa577b1235998b23c50ad40dc7af5

commit e3a1844f00baa577b1235998b23c50ad40dc7af5
Author: Kent Tamura <tkent@chromium.org>
Date: Thu Feb 08 04:52:30 2018

Change argument order of Document::CreateElement(three-arguments).

This CL changes
  CreateElement(qname, is, flags)
to
  CreateElement(qname, flags, is)

for consistency with other Create*Element() functions.

This CL has no behavior changes.

Bug:  806641 
Change-Id: Id78d42873995a08a6531efb3dea9b730819777e3
Reviewed-on: https://chromium-review.googlesource.com/908030
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535302}
[modify] https://crrev.com/e3a1844f00baa577b1235998b23c50ad40dc7af5/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/e3a1844f00baa577b1235998b23c50ad40dc7af5/third_party/WebKit/Source/core/dom/Document.h
[modify] https://crrev.com/e3a1844f00baa577b1235998b23c50ad40dc7af5/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.cpp
[modify] https://crrev.com/e3a1844f00baa577b1235998b23c50ad40dc7af5/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp

Project Member

Comment 14 by bugdroid1@chromium.org, Feb 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/480024e4eaf537ff5929489fca5743c018438a1a

commit 480024e4eaf537ff5929489fca5743c018438a1a
Author: Kent Tamura <tkent@chromium.org>
Date: Thu Feb 08 22:55:30 2018

Replace Document::createElement() for built-in elements with Document::CreateRawElement().

CreateRawElement() is faster than craeteElement().

Bug:  806641 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I9dbc8d69065f7298394e018ee8a6eea55443ca9d
Reviewed-on: https://chromium-review.googlesource.com/907713
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535558}
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/css/SelectorQueryTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/dom/Document.h
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/dom/DocumentTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/dom/MutationObserverTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/dom/RangeTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/dom/ShadowDOMV0Test.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/dom/TreeScopeAdopterTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/dom/TreeScopeTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/CaretDisplayItemClientTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/EditingUtilitiesTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/SelectionControllerTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/VisiblePositionTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/VisibleUnitsTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/commands/InsertTextCommandTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/commands/ReplaceSelectionCommandTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/commands/TypingCommandTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/ime/InputMethodControllerTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/iterators/TextIteratorTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/editing/testing/SelectionSampleTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/exported/WebViewTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/html/forms/HTMLFormControlElementTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/html/forms/OptionListTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/html/media/HTMLVideoElementPersistentTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/html/media/MediaCustomControlsFullscreenDetectorTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/input/EventHandlerTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/layout/LayoutTableSectionTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/page/scrolling/RootScrollerTest.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/core/paint/PaintPropertyTreeUpdateTests.cpp
[modify] https://crrev.com/480024e4eaf537ff5929489fca5743c018438a1a/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp

Project Member

Comment 15 by bugdroid1@chromium.org, Feb 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3a061ed130fd1c58540ea73e1954d6de41958328

commit 3a061ed130fd1c58540ea73e1954d6de41958328
Author: Kent Tamura <tkent@chromium.org>
Date: Thu Feb 08 23:09:37 2018

Rename C++ implementation of web-exposed createElement to CreateElementForBinding.

because we have multiple "create element" functions, and it's rarely
necessary in Blink C++ code.

Bug:  806641 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ia5020230c2be8c0fc505f8bfdfc0f898a1e2e11c
Reviewed-on: https://chromium-review.googlesource.com/908172
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535562}
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/animation/AnimationTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/animation/CompositorAnimationsTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/animation/EffectInputTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/animation/EffectStackTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/animation/KeyframeEffectTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/dom/Document.h
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/dom/Document.idl
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/dom/RangeTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/editing/commands/TypingCommandTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/html/custom/CustomElementTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/html/custom/CustomElementUpgradeSorterTest.cpp
[modify] https://crrev.com/3a061ed130fd1c58540ea73e1954d6de41958328/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp

Project Member

Comment 16 by bugdroid1@chromium.org, Feb 9 2018

Project Member

Comment 17 by bugdroid1@chromium.org, Feb 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/81132889b4b82bcd07e4486509993e4e16956af1

commit 81132889b4b82bcd07e4486509993e4e16956af1
Author: Kent Tamura <tkent@chromium.org>
Date: Fri Feb 09 08:46:52 2018

custom-elements: Consolidate code for "create an element" step 7 into one.

This CL consolidates the following three code fragments implementing
"create an element" step 7 into CustomElement::
CreateUncustomizedOrUndefinedElement().

 * Document::CreateElement(qname, flags, is)
 * HTMLConstructionSite::CreateElement()
 * CustomElement::CreateUndefinedElement()
  A simpler CreateUndefinedElement() was enough for CustomElement::
  CreateCustomElement() because CreateCustomElement() assumes |tag_name|
  contains a valid custom element name and the XHTML namespace. Now
  It calls more complex CreateUncustomizedOrUndefinedElement(). Behavior
  isn't changed, but performance is slightly worse.

This CL has no behavior changes.

Bug:  806641 
Change-Id: I398aa7d2657d0e1410af3635bb991f58a7c9339a
Reviewed-on: https://chromium-review.googlesource.com/910754
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535668}
[modify] https://crrev.com/81132889b4b82bcd07e4486509993e4e16956af1/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/81132889b4b82bcd07e4486509993e4e16956af1/third_party/WebKit/Source/core/html/custom/CustomElement.cpp
[modify] https://crrev.com/81132889b4b82bcd07e4486509993e4e16956af1/third_party/WebKit/Source/core/html/custom/CustomElement.h
[modify] https://crrev.com/81132889b4b82bcd07e4486509993e4e16956af1/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.cpp

Project Member

Comment 18 by bugdroid1@chromium.org, Feb 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/318b76247ccda684eed8937f498bf67bb1414bd9

commit 318b76247ccda684eed8937f498bf67bb1414bd9
Author: Kent Tamura <tkent@chromium.org>
Date: Tue Feb 13 09:55:29 2018

custom-elements: Make CustomElement::CreateUncustomizedOrUndefinedElement a template

to optimize CustomElement::CreateCustomElement() code path, which
doesn't need |is| check and IsValidName() check.

Bug:  806641 
Change-Id: I5f77d98c789e4773b8d1895463fe749f70970a13
Reviewed-on: https://chromium-review.googlesource.com/915885
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536319}
[modify] https://crrev.com/318b76247ccda684eed8937f498bf67bb1414bd9/third_party/WebKit/Source/core/html/custom/CustomElement.cpp
[modify] https://crrev.com/318b76247ccda684eed8937f498bf67bb1414bd9/third_party/WebKit/Source/core/html/custom/CustomElement.h

Project Member

Comment 19 by bugdroid1@chromium.org, Feb 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ee8796371d0a06e1bd85ded45c84657a6a35f8a

commit 8ee8796371d0a06e1bd85ded45c84657a6a35f8a
Author: Kent Tamura <tkent@chromium.org>
Date: Wed Feb 14 07:49:58 2018

Simplify Document::CreateElement.

Simplify Document::CreateElement by CreateRawElement().

In theory, this CL might have performance change due to code
ordering change; i.e. Built-in elements creation gets slower
slightly, and autonomous custom elements creation gets faster
slightly.  However, this CL doesn't affect Speedometer, which
uses this code path, with my local testing.

Bug:  806641 
Change-Id: I623c66cb78b665741a3b93eff1056a671836cb0d
Reviewed-on: https://chromium-review.googlesource.com/918221
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536670}
[modify] https://crrev.com/8ee8796371d0a06e1bd85ded45c84657a6a35f8a/third_party/WebKit/Source/core/dom/Document.cpp

Project Member

Comment 20 by bugdroid1@chromium.org, Feb 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/66b51835449687394d44ff665d75a1215e519124

commit 66b51835449687394d44ff665d75a1215e519124
Author: Kent Tamura <tkent@chromium.org>
Date: Thu Feb 15 02:50:40 2018

Remove Document::CreateElement(q_name, flags)

There were only three callsites.

- Two were for editing commands. They should not be performance-
  sensitive. So we may use the generic CreateElement(q_name, flags,
  is_value).

- One was for Document::createElementNS(). It's performance-sensitive,
  and this CL folds the content of CreateElement(q_name, flags) into it.

Bug:  806641 
Change-Id: I3863687c4fdb5a126d60fae74f8690cb0ba8f918
Reviewed-on: https://chromium-review.googlesource.com/917846
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536933}
[modify] https://crrev.com/66b51835449687394d44ff665d75a1215e519124/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/66b51835449687394d44ff665d75a1215e519124/third_party/WebKit/Source/core/dom/Document.h
[modify] https://crrev.com/66b51835449687394d44ff665d75a1215e519124/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.cpp
[modify] https://crrev.com/66b51835449687394d44ff665d75a1215e519124/third_party/WebKit/Source/core/editing/commands/IndentOutdentCommand.cpp

Comment 21 by tkent@chromium.org, Feb 15 2018

Status: Fixed (was: Started)
I think the current shape is good.

Sign in to add a comment