[New Multicolumn] Refactor flow thread repainting.
https://bugs.webkit.org/show_bug.cgi?id=95586

Reviewed by Simon Fraser.

Refactor flow thread repainting in regions to delegate the work to the region. This allows subclasses
to customize how the repainting happens so that individual repaints can be issued for columns and pages
inside sets.
        
repaintFlowThreadContent is the new virtual function that can be subclassed by sets to customize
the repaint process.
        
repaintFlowThreadContentRectangle is a parameterized helper that will be called for each individual
column and page in a set.

* WebCore.exp.in:
Change repaintRectangle's signature to be const.

* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::repaintRectangleInRegions):
Now delegates the work for each region to RenderRegion::repaintFlowThreadContent.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintUsingContainer):
(WebCore::RenderObject::repaint):
(WebCore::RenderObject::repaintRectangle):
(WebCore::RenderObject::isRooted):
* rendering/RenderObject.h:
Change a bunch of functions to be const.

* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::repaintFlowThreadContent):
(WebCore):
(WebCore::RenderRegion::repaintFlowThreadContentRectangle):
* rendering/RenderRegion.h:
(RenderRegion):
Add the two new functions (the virtual repaintFlowThreadContent and the helper it
uses, repaintFlowThreadContentRectangle).



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127280 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Mark fast/dom/shadow/shadowdom-for-textarea-complex-shadow.html as failing on mac
https://bugs.webkit.org/show_bug.cgi?id=95588

Unreviewed gardening.

This test is failing on mac due to the sizing of the textbox: in the
expected results there is no scrollbar but in the actual results there
is one. This patch marks this test as failing temporarily.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127281 268f45cc-cd09-0410-ab3c-d52691b4dbfc
fast/workers/storage/interrupt-database-sync.html fails intermittently
https://bugs.webkit.org/show_bug.cgi?id=49906

The test was disabled in r81333, so remove it from the Skipped lists so that run-webkit-tests
doesn't complain about not being able to find the test.

* platform/win-xp/Skipped:
* platform/wk2/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127286 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] http/tests/cookies/js-get-and-set-http-only-cookie.html failing since introduction in r119947
https://bugs.webkit.org/show_bug.cgi?id=87208

The .php version was removed in r118166, but the .html version it was replaced with in r119947
was separately marked as failing on Qt. Update the Skipped lists so that run-webkit-tests
doesn't complain about not being able to find the test on Mac (and so that the comment in the
Qt Skipped list is correct).

* platform/mac/Skipped:
* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127287 268f45cc-cd09-0410-ab3c-d52691b4dbfc
plugins/npruntime/leak-window-scriptable-object.html is failing
https://bugs.webkit.org/show_bug.cgi?id=90710

This test was removed in r91637. Remove it from the Skipped list so that run-webkit-tests
doesn't complain about not being able to find the test.

* platform/mac/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127288 268f45cc-cd09-0410-ab3c-d52691b4dbfc
http/tests/cache/cancel-in-progress-load.html fails on several platforms
https://bugs.webkit.org/show_bug.cgi?id=87728

The test was rolled out in r119918. Remove it from the Skipped list so that run-webkit-tests
doesn't complain about not being able to find the test.

* platform/mac/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
fast/css/align-positioned-object-on-resize.html skipped on Mac platforms
https://bugs.webkit.org/show_bug.cgi?id=83489

This test was removed in r126911. Remove it from the Skipped list.

* platform/mac/Skipped:
* platform/win/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Fix platform/chromium/TestExpectations typo
https://bugs.webkit.org/show_bug.cgi?id=95592

Unreviewed gardening.

Unfortunately r127174 contained a typo that broke webkit-lint on our build. See https://bugs.webkit.org/show_bug.cgi?id=95581 .

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127291 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Mark http/tests/security/inactive-document-with-empty-security-origin.html while Geoff Garen
investigates in https://bugs.webkit.org/show_bug.cgi?id=95501 in order to get the bots green.

* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Shrink activation objects by half
https://bugs.webkit.org/show_bug.cgi?id=95591

Reviewed by Sam Weinig.

Removed the global object, global data, and global this pointers from
JSScope, and changed an int to a bitfield. This gets the JSActivation
class down to 64 bytes, which in practice cuts it in half by getting it
out of the 128 byte size class.

Now, it's one extra indirection to get these pointers. These pointers
aren't accessed by JIT code, so I thought there would be no cost to the
extra indirection. However, some C++-heavy SunSpider tests regressed a
bit in an early version of the patch, which added even more indirection.
This suggests that calls to exec->globalData() and/or exec->lexicalGlobalObject()
are common and probably duplicated in lots of places, and could stand
further optimization in C++.

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute): Test against the specific activation
for our global object, since there's no VM-shared activation structure
anymore. This is guaranteed to have the same success rate as the old test
because activation scope is fixed at compile time.

* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::MarkedBlock):
* heap/MarkedBlock.h:
(JSC::MarkedBlock::globalData):
* heap/WeakSet.cpp:
(JSC::WeakSet::addAllocator):
* heap/WeakSet.h:
(WeakSet):
(JSC::WeakSet::WeakSet):
(JSC::WeakSet::globalData): Store a JSGlobalData* instead of a Heap*
because JSGlobalData->Heap is just a constant fold in the addressing
mode, while Heap->JSGlobalData is an extra pointer dereference. (These
objects should eventually just merge.)

* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_resolve_global_dynamic): See DFGAbstractState.cpp.

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm: Load the activation structure from
the code block instead of the global data because the structure is not
VM-shared anymore. (See DFGAbstractState.cpp.)

* runtime/JSActivation.cpp:
(JSC::JSActivation::JSActivation):
* runtime/JSActivation.h:
(JSActivation): This is the point of the patch: Remove the data.

* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
* runtime/JSGlobalData.h:
(JSGlobalData): No longer VM-shared. (See DFGAbstractState.cpp.)

(JSC::WeakSet::heap): (See WeakSet.h.)

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::setGlobalThis):
(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSGlobalObject):
(JSC::JSGlobalObject::withScopeStructure):
(JSC::JSGlobalObject::strictEvalActivationStructure):
(JSC::JSGlobalObject::activationStructure):
(JSC::JSGlobalObject::nameScopeStructure):
(JSC::JSScope::globalThis):
(JSC::JSGlobalObject::globalThis): Data that used to be in the JSScope
class goes here now, so it's not duplicated across all activations.

* runtime/JSNameScope.h:
(JSC::JSNameScope::JSNameScope):
* runtime/JSScope.cpp:
(JSC::JSScope::visitChildren): This is the point of the patch: Remove the data.

* runtime/JSScope.h:
(JSScope):
(JSC::JSScope::JSScope):
(JSC::JSScope::globalObject):
(JSC::JSScope::globalData):
* runtime/JSSegmentedVariableObject.h:
(JSC::JSSegmentedVariableObject::JSSegmentedVariableObject):
* runtime/JSSymbolTableObject.h:
(JSC::JSSymbolTableObject::JSSymbolTableObject):
* runtime/JSVariableObject.h:
(JSC::JSVariableObject::JSVariableObject):
* runtime/JSWithScope.h:
(JSC::JSWithScope::JSWithScope):
* runtime/StrictEvalActivation.cpp:
(JSC::StrictEvalActivation::StrictEvalActivation): Simplified now that
we don't need to pass so much data to JSScope.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127293 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Layout tests svg-filters.html and alpha.html are crashing intermittently
https://bugs.webkit.org/show_bug.cgi?id=92660

Reviewed by James Robinson.

We use two GL contexts to create and upload tile textures.
One context creates the texture, while another uploads it.
Even though the texture is shared by the two contexts, it is not
available to the uploading context immediately after creation,
unless the creating context is flushed.

* platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
(WebCore::createAcceleratedCanvas):
(WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127294 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed Gardening. inspector/profiler/webgl/webgl-profiler-api-changes.html fails on Windows.
WebGL not enabled on Windows.

* platform/win/Skipped:


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