Row size/position is wrongly calculated when table having overlapping rowspan cell and colspan cell
https://bugs.webkit.org/show_bug.cgi?id=16811

Patch by Pravin D <pravind.2k4@gmail.com> on 2012-07-12
Reviewed by Julien Chaffraix.

Source/WebCore:

The height of a row is calculated by taking the max height of the cells contained in it. When a row contains
a rowSpan cell and if this row is not the last row of the cell, then its height is max height of other non
rowSpan cells. If the row is the last row of the rowSpan cell, then using the contraint laid by CSS2.1 spec
"For a rowSpan cell, the sum of the row heights involved must be great enough to encompass the cell spanning the rows",
the last remaining height of the rowSpan(cell height minus heights of other involved rows) is taken into consideration
while calculating the height of this row.
Currently when calculating the height of the row we are only using the height of the primary cell at position (row, col).
However when a row has colSpan cell and rowSpan, they might overlap. In such a sitution as only the primary cells height
is considered, the height of the row will be calculated worngly if the other overlapping cell has greater height.
Thus all the overlapping cell at position (row, col) must be considered while calculating the height of a row.

Test: fast/table/last-cell-of-rowspan-overlapping-colspan-cell.html

* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
Fixed function to use all the overlapping cells at position(row, col) to calculate the height/position of rows.

LayoutTests:

* fast/table/last-cell-of-rowspan-overlapping-colspan-cell-expected.html: Added.
* fast/table/last-cell-of-rowspan-overlapping-colspan-cell.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122516 268f45cc-cd09-0410-ab3c-d52691b4dbfc
webkitpy: clean up logging handlers, lint common.message_pool
https://bugs.webkit.org/show_bug.cgi?id=91152

Reviewed by Ojan Vafai.

The unix implementation of multiprocessing clones any logging
handlers from the parent process into the child; we currently
don't want this behavior in our code, so I was hand-removing the
installed handlers in the child process I knew about. After thinking
about it further, I think it was simpler and safe enough to just
remove all handlers in the child, since the message pool
propagates any message from the child back into the parent.

We can always change this in the future if it turns out to be an issue.

I'm also fixing a couple of other lint warnings while I'm at it.

* Scripts/webkitpy/common/message_pool.py:
(_MessagePool.__exit__):
(_MessagePool._handle_worker_exception):
(_Worker._set_up_logging):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122517 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge HTMLCollectionWithArrayStorage into HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=91144

Reviewed by Anders Carlsson.

Merged HTMLCollectionWithArrayStorage::item into HTMLCollection::item and got rid of
HTMLCollectionWithArrayStorage. Also de-virtualized HTMLCollection::item and HTMLCollection::length
and merged itemInArrayAfter and itemAfter.

In addition, improved the algorithm in HTMLCollection::length to take advantage of item cache.
Instead of always computing the length from the beginning, we start the search from the cached item
so that if we're near end of the collection, we avoid significant portion of the node traversal.

Furthermore, made HTMLCollection always call setItemCache with a non-null item and HTMLCollection::item
set the length cache when it reaches the end of the collection to avoid redundant length calculations.

* dom/DynamicNodeList.h:
(WebCore::DynamicNodeListCacheBase::setItemCache): Add a FIXME.
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::itemAfter): Regular HTMLCollection doesn't have uses elements array so
assert that offsetInArray is always 0.
(WebCore): Removed calcLength.
(WebCore::HTMLCollection::length): Rewritten. The algorithm is as follows:
When there is no item cache, we look for the first item by calling item(0). If item(0) returns null,
then it must have set the length cache so bail out. If the previous step didn't bail out, then
the item cache is valid and not null (see above), so count the number of remaining items in collection
starting at the cached item's offset + 1.
(WebCore::HTMLCollection::item): Avoid calling setItemCache with null. When the first item is null,
set the length cache instead.
(WebCore::HTMLCollection::itemAfterCachedItem): Extracted from HTMLCollectionWithArrayStorage::item.
(WebCore::HTMLCollection::namedItem): Pass in arrayOffset to itemAfter. Note this variable is never
used since only HTMLFormCollection and HTMLPropertiesCollection use array offsets but they override
this function.
(WebCore::HTMLCollection::updateNameCache): Ditto.
* html/HTMLCollection.h:
(HTMLCollection):
(WebCore):
* html/HTMLFormCollection.cpp: Removed calcLength(). Even though this function didn't iterate over
the collection directly, HTMLFormElement::length and HTMLFieldSetElement::length did so we're not
regressing any performance here.
(WebCore::HTMLFormCollection::HTMLFormCollection):
(WebCore::HTMLFormCollection::itemAfter):
* html/HTMLFormCollection.h:
(HTMLFormCollection):
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::itemAfter):
* html/HTMLNameCollection.h:
(HTMLNameCollection):
* html/HTMLPropertiesCollection.cpp: Removed calcLength().
(WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
(WebCore::HTMLPropertiesCollection::itemAfter):
(WebCore):
* html/HTMLPropertiesCollection.h:
(HTMLPropertiesCollection):
* html/HTMLTableRowsCollection.cpp:
(WebCore::HTMLTableRowsCollection::itemAfter):
* html/HTMLTableRowsCollection.h:
(HTMLTableRowsCollection):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Adding myself to commiters.py.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122519 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make the "Inspect Element" context menu item appear in nightly builds again.

https://webkit.org/b/89323

Reviewed by Anders Carlsson.

* Shared/API/c/WKContextMenuItem.cpp:
(compatibleContextMenuItemTag): Added. Checks for the specific version of Safari 6 that needs the
tag fixed up to match values it expects.
(WKContextMenuItemGetTag): On Mac platforms call compatibleContextMenuItemTag to fix up the tag
before returning it.
* Shared/API/c/WKContextMenuItemTypes.h: Fix the order of the WKContextMenuItemTag enum
to be binary compatible with older versions of WebKit2.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Unreviewed gardening. SKIP inspector/elements/edit-dom-actions.html on Win Debug
https://bugs.webkit.org/show_bug.cgi?id=60109

Since we can't use SLOW and TIMEOUT together, let's skip this test until it is fixed.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122521 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Change my irc nickname to kseo.

* Scripts/webkitpy/common/config/committers.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122522 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] WebSettings should be sorted
https://bugs.webkit.org/show_bug.cgi?id=91157

Reviewed by Eric Seidel.

This might be my OCD, but IMHO this file would be cleaner if we listed
the settings in alphabetic order.

* public/WebSettings.h:
* src/WebSettingsImpl.h:
(WebSettingsImpl):
(WebKit::WebSettingsImpl::forceSoftwareCompositing):
(WebKit::WebSettingsImpl::viewportEnabled):
(WebKit::WebSettingsImpl::maxUntiledLayerSize):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122523 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unneeded tree walking when adding or removing children due to RenderCounter / RenderQuote logic
https://bugs.webkit.org/show_bug.cgi?id=89900

Patch by Elliott Sprehn <esprehn@gmail.com> on 2012-07-12
Reviewed by Eric Seidel and Abhishek Arya.

Previously we would walk the all children a renderer whenever adding
or removing a child renderer from its RenderObjectChildList to look for
RenderQuote and RenderCounter instances to update. This patch introduces
a counter in RenderView for the number of RenderQuote and RenderCounter
instances in that document so we can avoid these traversals.

No tests needed since this is just a short circuiting of logic and the existing
tests should cover it.

* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::RenderCounter): Increment instance counter.
(WebCore::RenderCounter::willBeDestroyed): Decrement instance counter.
(WebCore):
(WebCore::RenderCounter::rendererRemovedFromTree): Short circuit when counter is zero.
(WebCore::RenderCounter::rendererSubtreeAttached): Short circuit when counter is zero.
* rendering/RenderCounter.h:
(RenderCounter):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode): Short circuit calling into Counter and Quote code when the document is being destroyed.
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::RenderQuote):
(WebCore::RenderQuote::willBeDestroyed):
(WebCore):
(WebCore::RenderQuote::rendererSubtreeAttached): Increment instance counter.
(WebCore::RenderQuote::rendererRemovedFromTree): Decrement instance counter.
* rendering/RenderQuote.h:
(RenderQuote):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
* rendering/RenderView.h: Methods for managing the RenderQuote and RenderCounter counts.
(RenderView):
(WebCore::RenderView::addRenderQuote):
(WebCore::RenderView::removeRenderQuote):
(WebCore::RenderView::hasRenderQuotes):
(WebCore::RenderView::addRenderCounter):
(WebCore::RenderView::removeRenderCounter):
(WebCore::RenderView::hasRenderCounters):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122524 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Remove the RenderPass pointer from RenderPassDrawQuad
https://bugs.webkit.org/show_bug.cgi?id=91023

Reviewed by Adrienne Walker.

Source/WebCore:

Removes the RenderPass pointer and keeps only an integer id in the
quad to refer back to the RenderPass the quad reads from.

Covered by existing tests.

* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
(WebCore::findRenderPassById):
(WebCore):
(WebCore::removeRenderPassesRecursive):
(WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::shouldRemoveRenderPass):
(WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass):
(WebCore::CCLayerTreeHostImpl::removeRenderPasses):
(WebCore::CCLayerTreeHostImpl::prepareToDraw):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
(FrameData):
(CullRenderPassesWithCachedTextures):
(CullRenderPassesWithNoQuads):
(CCLayerTreeHostImpl):
* platform/graphics/chromium/cc/CCRenderPass.cpp:
(WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
* platform/graphics/chromium/cc/CCRenderPass.h:
(WebCore):
* platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
(WebCore::CCRenderPassDrawQuad::create):
(WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
* platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
(CCRenderPassDrawQuad):
* platform/graphics/chromium/cc/CCRenderSurface.cpp:
(WebCore::CCRenderSurface::appendQuads):
* platform/graphics/chromium/cc/CCRenderSurface.h:
(CCRenderSurface):

Source/WebKit/chromium:

* tests/CCLayerTreeHostImplTest.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122525 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Add Dongsung Huang to the list of contributors. He
has submitted over 30 patches on texture mapper, canvas and image decoders.

* Scripts/webkitpy/common/config/committers.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122526 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed.  Nit: git config files use tabs, not spaces.

* EWSTools/cold-boot.sh:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122527 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Navigation Timing] Import the W3C Navigation Timing test suite
https://bugs.webkit.org/show_bug.cgi?id=84887

Patch by James Simonsen <simonjam@chromium.org> on 2012-07-12
Reviewed by Tony Gentilcore.

Tools:

* Scripts/import-w3c-performance-wg-tests: Added.

LayoutTests:

* http/tests/resources/testharness.css: Added.
* http/tests/resources/testharness.js: Copied from LayoutTests/resources/testharness.js.
* http/tests/resources/testharnessreport.js: Copied from LayoutTests/resources/testharnessreport.js.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_document_open-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_document_open.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_document_readiness_exist-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_document_readiness_exist.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigate_within_document-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigate_within_document.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_attributes_exist-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_attributes_exist.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_redirectCount_none-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_redirectCount_none.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_backforward-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_backforward.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_enums-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_enums.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_reload-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_reload.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_no_previous_document-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_no_previous_document.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_performance_attributes_exist-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_performance_attributes_exist.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_performance_attributes_exist_in_object-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_performance_attributes_exist_in_object.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_readwrite-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_readwrite.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_attributes_exist-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_attributes_exist.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_attributes_order-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_attributes_order.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_client_redirect-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_client_redirect.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_reload-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_reload.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_server_redirect-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_server_redirect.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_xserver_redirect-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_xserver_redirect.html: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_unique_performance_objects-expected.txt: Added.
* http/tests/w3c/webperf/approved/navigation-timing/html5/test_unique_performance_objects.html: Added.
* http/tests/w3c/webperf/resources/blank_page_green.htm: Added.
* http/tests/w3c/webperf/resources/blank_page_green_with_onunload.htm: Added.
* http/tests/w3c/webperf/resources/blank_page_meta_redirect.htm: Added.
* http/tests/w3c/webperf/resources/blank_page_unload.htm: Added.
* http/tests/w3c/webperf/resources/blank_page_yellow.htm: Added.
* http/tests/w3c/webperf/resources/blank_page_yellow_with_onunload.htm: Added.
* http/tests/w3c/webperf/resources/pagevistestharness.js: Added.
* http/tests/w3c/webperf/resources/redirect.php: Added.
* http/tests/w3c/webperf/resources/webperftestharness.js: Added.
* platform/mac/Skipped: Skip new webperf tests.
* platform/win/Skipped: Ditto.
* platform/wincairo/Skipped: Ditto.
* resources/testharness.css: Added.
* resources/testharnessreport.js: Support async tests.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122528 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Root invalidations for RTL pages need to be in the right space
https://bugs.webkit.org/show_bug.cgi?id=91155

Reviewed by Kenneth Russell.

Source/WebKit/chromium:

The root layer has a translation on it when placed in the tree, so any
invalidations on this layer likewise need to be adjusted.

This adjustment is due to the fact that compositor layers all have the
origin in the upper left corner of the layer, but this is not always
the origin for graphics layers. Rather than making compositor layers
have to deal with a potential offset, we change the transform when
inserting the layer into the tree. Invalidations need to be similarly
transformed from document space into compositor layer space.

The need for this offset is due to the definition of the initial
containing block. RTL pages (pages with dir=RTL on the body) start
scrolled all the way to the right, and the origin is in the upper left
hand corner of this initial viewport. Thus on RTL pages with
horizontal overflow, the left of the document is in negative CSS
space.

* src/NonCompositedContentHost.cpp:
(WebKit::NonCompositedContentHost::invalidateRect):

LayoutTests:

Add a test that demonstrates this problem. Before the code fix, the
test shows just a red square because the invalidation for the style
change repaints the wrong rect.

* compositing/rtl/rtl-overflow-invalidation-expected.png: Added.
* compositing/rtl/rtl-overflow-invalidation-expected.txt: Added.
* compositing/rtl/rtl-overflow-invalidation.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122529 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Needs callback before AuthorShadowRoot is added.
https://bugs.webkit.org/show_bug.cgi?id=91167

Reviewed by Hajime Morita.

This is a preliminary patch for adding multiple Shadow DOM support for media elements and form elements.
They assume that UserAgentShadowRoot is the oldest, however currently a page author may try to add
AuthorShadowRoot before adding UserAgentShadowRoot.

This patch adds a callback before AuthorShadowRoot is being added, and allow us to add UserAgentShadowRoot
for those elements. See also Bug 77936, Bug 77937, Bug 90532.

* dom/Element.h:
(WebCore::Element::willAddAuthorShadowRoot):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot):
* dom/ElementShadow.h:
(ElementShadow):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::create):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122530 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move m_type and m_hasNameCache from HTMLCollectionCacheBase to DynamicNodeListCacheBase for better bit packing
https://bugs.webkit.org/show_bug.cgi?id=91164

Reviewed by Anders Carlsson.

Moved m_type and m_hasNameCache from HTMLCollection and renamed them to m_collectionType and m_isNameCacheValid.

Also renamed shouldIncludeChildren to shouldOnlyIncludeDirectChildren and negated the return value since
all HTMLCollection include children in the collection and the function was meant to tell us whether the collection
should include descendents that are not direct children of base().

In addition, renamed nextNodeOrSibling to nextNode since "or sibling" doesn't seem to add any semantic clarity.

* dom/DynamicNodeList.h:
(WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
(DynamicNodeListCacheBase):
(WebCore::DynamicNodeListCacheBase::type):
(WebCore::DynamicNodeListCacheBase::hasNameCache):
(WebCore::DynamicNodeListCacheBase::setHasNameCache):
(WebCore::DynamicNodeListCacheBase::clearCache):
* html/HTMLCollection.cpp:
(WebCore::shouldOnlyIncludeDirectChildren):
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::isAcceptableElement):
(WebCore::nextNode):
(WebCore::HTMLCollection::itemAfter):
* html/HTMLCollection.h:
(WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
(HTMLCollectionCacheBase):
(WebCore::HTMLCollectionCacheBase::clearCache):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122531 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Geolocation override
https://bugs.webkit.org/show_bug.cgi?id=89365

Source/WebCore:

Reviewed by Pavel Feldman.

Reverted original patch.
Change has not been reviewed by the right people. It declares
public protocol methods and is wrong in several ways.

* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::GeolocationController):
(WebCore::GeolocationController::positionChanged):
* Modules/geolocation/GeolocationController.h:
(GeolocationController):
* inspector/Inspector.json:
* inspector/InspectorInstrumentation.cpp:
(WebCore):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent):
* inspector/InspectorPageAgent.h:
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.UserAgentSettingsTab):
(WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
* inspector/front-end/UserAgentSupport.js:

LayoutTests:

Reviewed by Pavel Feldman.
Change has not been reviewed by the right people. It declares
public protocol methods and is wrong in several ways.

Reverted original patch.

* inspector/geolocation-error-expected.txt: Removed.
* inspector/geolocation-error.html: Removed.
* inspector/geolocation-success-expected.txt: Removed.
* inspector/geolocation-success.html: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122532 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Build fix. Initialize unused const member variables to make compilers happy.

* dom/DynamicNodeList.h:
(WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122533 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CommitQueue is confused about what port it is using
https://bugs.webkit.org/show_bug.cgi?id=91040

Reviewed by Dirk Pranke.

On EC2, we explicitly pass --port to the commit-queue, but that
requires editing the start-queue.sh script locally on each bot. In
moving to Google Compute Engine, we're try to avoid any local edits to
the EWSTools.

Rather than passing --port to the commit-queue, this patch teaches the
CommitQueue which port its running, which is the approach we use for
the EWS bots.

Mutating tool._deprecated_port is a bit ugly, but it's what we're doing
currently for the EWS bots.

* Scripts/webkitpy/tool/commands/queues.py:
(CommitQueue):
(CommitQueue.begin_work_queue):
(CommitQueue.run_command):
* Scripts/webkitpy/tool/commands/queues_unittest.py:
(CommitQueueTest.test_commit_queue):
(mock_run_webkit_patch):
(test_rollout):
(test_rollout_lands):
(test_manual_reject_during_processing):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122534 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Simplify CodeGeneratorV8 since V8OnProto is only true for DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=91165

Reviewed by Nate Chapin.

The old code was dead code since V8OnProto only ever gets set to 1 for DOMWindow.

No new tests. No change in functionality.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122535 268f45cc-cd09-0410-ab3c-d52691b4dbfc