JSC should have a zombie mode
https://bugs.webkit.org/show_bug.cgi?id=96047

Reviewed by Geoffrey Garen.

To aid clients of JSC while they are debugging memory issues, we should add a zombie
mode that scribbles into objects in the MarkedSpace after they are found to be dead
to prevent a sort of "use after free" situation. As a first cut we should support a
mode that just scribbles on objects prior to their being reused (i.e. while they are
"zombies") and a mode in which, in addition to scribbling on zombies, once an object
has been marked its mark bit will never be cleared, thus giving us "immortal" zombies.

These two modes will be enabled through the use of environment variables. For now these
will be "JSZombieEnabled" and "JSImmortalZombieEnabled". Setting them to any value will
result in the use of the appropriate mode.

* heap/Heap.cpp:
(JSC::Heap::collect): Zombifies dead objects at the end of collection if zombie mode is enabled.
(ZombifyCellFunctor):
(JSC::ZombifyCellFunctor::ZombifyCellFunctor): Sets marked bits for dead objects if in immortal mode and writes 0xbbadbeef into them.
(JSC::ZombifyCellFunctor::operator()):
(JSC):
(ZombifyBlockFunctor):
(JSC::ZombifyBlockFunctor::operator()):
(JSC::Heap::zombifyDeadObjects): Eagerly sweeps so that we don't write garbage into an object before it
is finalized/destroyed.
* heap/Heap.h:
(Heap):
* heap/MarkedBlock.h:
(MarkedBlock):
(JSC::MarkedBlock::forEachDeadCell): Used to iterate over dead cells at the end of collection if zombie mode is enabled.
(JSC):
* runtime/Options.cpp:
(JSC::Options::initialize):
* runtime/Options.h:
(JSC):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127829 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Tests] Skip Dialog element tests on Win
https://bugs.webkit.org/show_bug.cgi?id=96051

Patch by Matt Falkenhagen <falken@chromium.org> on 2012-09-06
Reviewed by Hajime Morita.

Dialog is not yet enabled except on Chromium. Dialog tests should have
been added to the Win port's skipped list as part of r122420.

* platform/win/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127830 268f45cc-cd09-0410-ab3c-d52691b4dbfc
The CC button should have chrome-specific rendering for Mac.
https://bugs.webkit.org/show_bug.cgi?id=95981

Reviewed by Eric Carlson.

This patch allows RenderThemeChromiumMac to define its own behavior for the CC button.

No new tests.  Button should display graphics from chromium resources.

* css/mediaControlsChromium.css:
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
Adjust styling for the chromium graphics.
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::paintMediaClosedCaptionsButton):
Check whether closed captions are visible to decide how to draw the button.
* rendering/RenderThemeChromiumMac.h:
(RenderThemeChromiumMac):
Override the paint function for the CC button.
* rendering/RenderThemeChromiumMac.mm:
(WebCore):
(WebCore::RenderThemeChromiumMac::paintMediaToggleClosedCaptionsButton):
Call the chromium-specific painting function.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127831 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r127822.
http://trac.webkit.org/changeset/127822
https://bugs.webkit.org/show_bug.cgi?id=96073

It broke compilation on chromium debug bots (Requested by
loislo on #webkit).

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

Source/WebCore:

* platform/graphics/chromium/cc/CCDirectRenderer.cpp:
(WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
(WebCore::CCDirectRenderer::haveCachedResourcesForRenderPassId):
* platform/graphics/chromium/cc/CCDirectRenderer.h:
(CCDirectRenderer):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
(WebCore::findRenderPassById):
(WebCore::removeRenderPassesRecursive):
* platform/graphics/chromium/cc/CCRenderPass.cpp:
(WebCore::CCRenderPass::create):
(WebCore::CCRenderPass::CCRenderPass):
(WebCore::CCRenderPass::copy):
* platform/graphics/chromium/cc/CCRenderPass.h:
(CCRenderPass):
(WebCore::CCRenderPass::id):
(WebCore):
* platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
(WebCore::CCRenderPassDrawQuad::create):
(WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
(WebCore::CCRenderPassDrawQuad::copy):
* platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
(WebCore):
(CCRenderPassDrawQuad):
(WebCore::CCRenderPassDrawQuad::renderPassId):
* platform/graphics/chromium/cc/CCRenderSurface.cpp:
(WebCore::CCRenderSurface::appendRenderPasses):
(WebCore::CCRenderSurface::appendQuads):
* platform/graphics/chromium/cc/CCRenderSurface.h:
(WebCore):
(CCRenderSurface):
* platform/graphics/chromium/cc/CCRenderer.h:
(WebCore::CCRenderer::haveCachedResourcesForRenderPassId):

Source/WebKit/chromium:

* tests/CCDrawQuadTest.cpp:
(WebCore::TEST):
* tests/CCLayerTreeHostImplTest.cpp:
* tests/CCLayerTreeHostTest.cpp:
* tests/CCRenderPassTest.cpp:
(WebCore::TEST):
* tests/CCRenderSurfaceTest.cpp:
* tests/CCRendererGLTest.cpp:
(FakeCCRendererClient::FakeCCRendererClient):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Regression: Web Inspector tool-tips pixellated with --force-device-scale-factor=2
https://bugs.webkit.org/show_bug.cgi?id=95875

Reviewed by Vsevolod Vlasov.

The overlay canvas is scaled according to the actual devicePixelRatio of the inspected page, while retaining its original CSS size.

* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::reset):
* inspector/InspectorOverlayPage.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed GTK gardening.

Updating baselines for two MathML tests after r127769.

Removing failure expectations for tests fixed by changes in r127798,
rollout in r127774 and rebaseline in r127825.

* platform/gtk/TestExpectations:
* platform/gtk/mathml/presentation/roots-expected.txt:
* platform/gtk/mathml/presentation/sup-expected.txt:


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