Fold setCellLogicalWidths logic into RenderTableSection layout
https://bugs.webkit.org/show_bug.cgi?id=99382

Reviewed by Eric Seidel.

setCellLogicalWidths was implemented as a pre-phase to laying out
the table's sections. This split was artificial as any change in
the columns' logical width should trigger a sections' relayout, which
could propagate and mark the cells / rows as needed.

Merging setCellLogicalWidths into RenderTableSection::layout removes
an unneeded cells walking and some clunkiness from our implementation.

Refactoring covered by the existing tests.

* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable): Initialize our new boolean.
(WebCore::RenderTable::layout):
If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
are marked for layout if there is the logical width change.

* rendering/RenderTable.h:
(WebCore::RenderTable):
Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).

(WebCore::RenderTable::setColumnPosition):
If a column position changed, register that our column logical widths changed. This is not
totally true, so added a comment about when it will be wrong.

* rendering/RenderTableCell.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::setCellLogicalWidth):
Updated the function to mark the cell and the row for layout. Also changed the argument to
be an 'int' as this was what was passed in.

* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layout):
* rendering/RenderTableSection.h:
Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
the table layout's logical widths first so that rows are marked as needing layout as appropriate.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131465 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: setTimeout in layout tests causes flakiness in multiprocess ports
https://bugs.webkit.org/show_bug.cgi?id=98949

Reviewed by Tony Chang.

In multiprocess ports with asynchronous IPC, events and timers may race causing script
callbacks to execute in different orders.

Eliminate the uses of setTimeout() where the intent is to have code delayed but may
race with a pending event.

* fast/js/resources/js-test-pre.js:
(evalAndLog) Added quiet flag.
* storage/indexeddb/deletedatabase-blocked-expected.txt:
* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-expected.txt:
* storage/indexeddb/deletedatabase-delayed-by-versionchange-expected.txt:
* storage/indexeddb/intversion-close-between-events-expected.txt:
* storage/indexeddb/resources/deletedatabase-blocked.js: Remove setTimeout.
(test.request.onsuccess.openOnSuccess.h.onversionchange):
(test.request.onsuccess.openOnSuccess.request.onblocked):
* storage/indexeddb/resources/deletedatabase-delayed-by-open-and-versionchange.js: Remove setTimeout.
(test.request.onsuccess.openOnSuccess.h.onversionchange):
(test.request.onsuccess.openOnSuccess.request.onblocked):
* storage/indexeddb/resources/deletedatabase-delayed-by-versionchange.js: Remove setTimeout.
(test.request.onsuccess.openOnSuccess.h.onversionchange):
(test.request.onsuccess.openOnSuccess.request.onsuccess.h2OpenOnSuccess.request.onblocked):
* storage/indexeddb/resources/intversion-close-between-events.js: Test was intended to call db.close()
between "complete" and "success" but in single process ports this is not possible, and in multi-process
ports is not reliable. To make the test not flaky and watch out for regressions in this edge case, it
is changed to have minimal logging.
(deleteSuccess):
(upgradeNeeded.transaction.oncomplete):
(upgradeNeeded):
(closeDB):
(openSuccess):
(checkFinished):
* storage/indexeddb/resources/intversion-close-in-oncomplete.js: Log on error rather than timing out.
(deleteSuccess):
* storage/indexeddb/resources/setversion-blocked.js: Removed setTimeout.
(test.request.onsuccess.h1OpenOnSuccess.request.onsuccess.h2OpenOnSuccess.h2.onversionchange):
(test.request.onsuccess.h1OpenOnSuccess.request.onsuccess.h2OpenOnSuccess.request.onblocked):
* storage/indexeddb/resources/shared.js:
(evalAndExpectException) Added quiet flag.
* storage/indexeddb/setversion-blocked-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131466 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Re-order CachedRawResource::data() to set m_data earlier
https://bugs.webkit.org/show_bug.cgi?id=99361

Reviewed by Adam Barth.

Currently, we calculate the diff between the data parameter and m_data, call
dataReceived(), then set m_data to data. If something inside dataReceived()
tries to access m_data via CachedResource::resourceBuffer(), it will see the
old data instead of the new data, which seems inconsistent.

No new tests, as no one appears to try to access m_data within dataReceived() currently.

* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::data):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131467 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Code to reverse a GlyphBuffer range is repeated in several places
https://bugs.webkit.org/show_bug.cgi?id=99424

Reviewed by Adele Peterson.

* platform/graphics/FontFastPath.cpp:
(WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
GlyphBuffer::reverse.
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
(WebCore::GlyphBuffer::swap): Made private.
* platform/graphics/WidthIterator.cpp:
(WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
corrected their bounds.
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
GlyphBuffer::range.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131468 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r131461.
http://trac.webkit.org/changeset/131461
https://bugs.webkit.org/show_bug.cgi?id=99474

Broke win7 bots (Requested by danakj|gardening on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-16

* DumpRenderTree/chromium/TestEventPrinter.cpp:
* DumpRenderTree/chromium/TestEventPrinter.h:
(TestEventPrinter):
* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::dump):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131469 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed.  Rolled DEPS.

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-16

* DEPS:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131470 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Inspector should allow reading the compositing debug settings
https://bugs.webkit.org/show_bug.cgi?id=99458

Patch by Antoine Quint <graouts@apple.com> on 2012-10-16
Reviewed by Timothy Hatcher.

* inspector/Inspector.json:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::getCompositingBordersVisible):
* inspector/InspectorPageAgent.h:

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