Tweaks to the Buildbot Dashboard

https://bugs.webkit.org/show_bug.cgi?id=122169

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotBuilderQueueView.js:
(BuildbotBuilderQueueView.prototype.update.appendBuilderQueueStatus):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype.revisionLinksForIteration):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot.prototype.buildLogURLForIteration):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156736 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Unreviewed gardening. Skip fast/events/drag-and-drop-autoscroll-inner-frame.html.

Drag and drop does not work on Windows DRT.

* platform/win/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156737 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make tests for renderer base types non-virtual
https://bugs.webkit.org/show_bug.cgi?id=122185

Reviewed by Dave Hyatt.

Make isRenderFoo() functions for commonly tested base types use bit flags instead of virtual calls.
This is faster and we have space in RenderElement.
        
These bits are not mutully exclusive. For testing leaf types we can add an enum.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156738 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Buildbot Dashboard: Fix JSHint issue: 'perlTestResults' used out of scope.
https://bugs.webkit.org/show_bug.cgi?id=122183

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-10-01
Reviewed by Timothy Hatcher.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration.prototype.update):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156739 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] Set NSApplication current event while sending events directly to views
https://bugs.webkit.org/show_bug.cgi?id=122179

Reviewed by Darin Adler.

DumpRenderTree and WebKitTestRunner send events directly to WebHMTLView or WKView,
which doesn't update [NSApp currentEvent]. But there are many places in WebKit that
use the current event.

* DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController mouseDown:withModifiers:]):
(-[EventSendingController mouseUp:withModifiers:]):
(-[EventSendingController mouseMoveToX:Y:]):
(-[EventSendingController mouseScrollByX:andY:continuously:]):
(-[EventSendingController contextClick]):
(-[EventSendingController keyDown:withModifiers:withLocation:]):
* WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::keyDown):
(WTR::EventSenderProxy::mouseScrollBy):
Update the current event. We were already using the SPI in WebKit.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156740 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] Unreviewed gardening.

* platform/win/TestExpectations: Update TestExpectations for two crashes that were not
previously logged, one image-only failure, another broken test due to the media changes.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156741 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Quirksmode: CSS1: WebKit fails dynamic :first-letter test
https://bugs.webkit.org/show_bug.cgi?id=15602

Reviewed by David Hyatt.

Source/WebCore:

CSS first-letter property does not work properly when the first letter is changed
by DOM scripting.
This patch allows to check if the existing first-letter is no longer the
first-letter. In this case, it deletes the old first-letter object and creates
a new one. For the remaining text, the oldRemainingText object is used
again for containing the full text(first letter + remaining text).

Test: fast/css/first-letter-block-change.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):

LayoutTests:

Add a test case that ensures that CSS first-letter property should work
properly when the first letter is changed by DOM scripting.

* fast/css/first-letter-block-change.html: Added.
* platform/efl/TestExpectations:
* platform/gtk-wk1/fast/css/first-letter-block-change-expected.png: Added.
* platform/gtk-wk2/fast/css/first-letter-block-change-expected.png: Added.
* platform/gtk/fast/css/first-letter-block-change-expected.txt: Added.
* platform/mac/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156742 268f45cc-cd09-0410-ab3c-d52691b4dbfc
<http://webkit.org/b/122190> WebKit2 APIs returning CF and NS types should explicitly declare whether they return retained objects.

This make the APIs easier to use under ARC and can help out the static analyzer.

Reviewed by Anders Carlsson.

* Shared/API/c/cf/WKErrorCF.h:
* Shared/API/c/cf/WKStringCF.h:
* Shared/API/c/cf/WKURLCF.h:
* Shared/API/c/cg/WKImageCG.h:
* Shared/API/c/mac/WKURLRequestNS.h:
* Shared/API/c/mac/WKURLResponseNS.h:
* UIProcess/API/C/cg/WKIconDatabaseCG.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156743 268f45cc-cd09-0410-ab3c-d52691b4dbfc
FTL: split overflow checks into non-overflow arithmetic and an additional call to the overflow intrinsic check.
https://bugs.webkit.org/show_bug.cgi?id=122170

Patch by Nadav Rotem <nrotem@apple.com> on 2013-10-01
Reviewed by Filip Pizlo.

Overflow intrinsics are preventing SCEV and other LLVM analysis passes from analyzing loops. This patch changes the FTL-IR gen by splitting arithmetic calculations into two parts:
1. Generate the arithmetic calculation (that may overflow)
2. Generate the overflow check (that is only used by the OSR-exit logic).

We trust LLVM (SelectionDAG) to merge these calculations into a single opcode.

This JS function:

function foo() {
    for (i=0; i < 10000000; i++) { }
}

Is now compiled into this LLVM-IR:

"OSR exit continuation for @24<Int32>":           ; preds = %"Block #0", %"OSR exit continuation for @24<Int32>2"
  %4 = phi i64 [ %10, %"OSR exit continuation for @24<Int32>2" ], [ -281474976710656, %"Block #0" ]
  %5 = trunc i64 %4 to i32
  %6 = add i32 %5, 1
  %7 = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %5, i32 1)
  %8 = extractvalue { i32, i1 } %7, 1
  br i1 %8, label %"OSR exit failCase for @24<Int32>1", label %"OSR exit continuation for @24<Int32>2"

 And into this assembly:

LBB0_1:                                 ## %OSR exit continuation for @24<Int32>
                                ## =>This Inner Loop Header: Depth=1
    movl  %ecx, %esi
    incl  %esi
    jo  LBB0_4

* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileAddSub):
(JSC::FTL::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::LowerDFGToLLVM::compileArithNegate):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156746 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Variable event stream (for DFG OSR exit) should be explicit about where on the stack a SetLocal put a value
https://bugs.webkit.org/show_bug.cgi?id=122178

Reviewed by Geoffrey Garen.
        
Now if the DFG stores the value of a variable into the stack explicitly via a SetLocal,
it will record where on the stack it stored the value in addition to recording where on
the stack the bytecode would have done the SetLocal. Previously it just recorded the
format and the bytecode variable. Recording just the bytecode variable is currently fine
since the DFG always executes SetLocal's to the same stack location that the bytecode
would have used. But that prevents stack compression (webkit.org/b/122024) so this patch
allows the SetLocal to say both the bytecode variable that we're speaking of and the
actual stack location to which the SetLocal stored the value.
        
This had to touch a lot of code, so I took the opportunity to also resolve
webkit.org/b/108019.

* bytecode/Operands.h:
(JSC::Operands::hasOperand):
* dfg/DFGFlushFormat.h:
(JSC::DFG::dataFormatFor):
* dfg/DFGMinifiedID.h:
(JSC::DFG::MinifiedID::bits):
(JSC::DFG::MinifiedID::invalidID):
(JSC::DFG::MinifiedID::otherInvalidID):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileMovHint):
(JSC::DFG::SpeculativeJIT::compileInlineStart):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::recordSetLocal):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGValueSource.cpp:
(JSC::DFG::ValueSource::dump):
* dfg/DFGValueSource.h:
(JSC::DFG::ValueSource::ValueSource):
(JSC::DFG::ValueSource::forFlushFormat):
(JSC::DFG::ValueSource::forDataFormat):
(JSC::DFG::ValueSource::isSet):
(JSC::DFG::ValueSource::kind):
(JSC::DFG::ValueSource::valueRecovery):
(JSC::DFG::ValueSource::id):
(JSC::DFG::ValueSource::virtualRegister):
* dfg/DFGVariableEvent.cpp:
(JSC::DFG::VariableEvent::dump):
(JSC::DFG::VariableEvent::dumpSpillInfo):
* dfg/DFGVariableEvent.h:
(JSC::DFG::VariableEvent::fillGPR):
(JSC::DFG::VariableEvent::fillPair):
(JSC::DFG::VariableEvent::fillFPR):
(JSC::DFG::VariableEvent::spill):
(JSC::DFG::VariableEvent::death):
(JSC::DFG::VariableEvent::setLocal):
(JSC::DFG::VariableEvent::movHint):
(JSC::DFG::VariableEvent::id):
(JSC::DFG::VariableEvent::gpr):
(JSC::DFG::VariableEvent::tagGPR):
(JSC::DFG::VariableEvent::payloadGPR):
(JSC::DFG::VariableEvent::fpr):
(JSC::DFG::VariableEvent::spillRegister):
(JSC::DFG::VariableEvent::bytecodeRegister):
(JSC::DFG::VariableEvent::machineRegister):
(JSC::DFG::VariableEvent::variableRepresentation):
* dfg/DFGVariableEventStream.cpp:
(JSC::DFG::VariableEventStream::reconstruct):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156747 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tiled drawing GraphicsLayer tree dumps should match non-tiled more closely
https://bugs.webkit.org/show_bug.cgi?id=122172

Reviewed by Anders Carlsson.

No new tests, but will be tested by all of the compositing tests after bug 121859 lands.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties):
Only dump drawsContent and backgroundColor if the client says we should.
Provide the ability to skip over a layer in the dump, making it appear as if that layer's
children are direct decendents of that layer's parent.

* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::shouldSkipLayerInDump): Added.
(WebCore::GraphicsLayerClient::shouldDumpPropertyForLayer): Added.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::shouldSkipLayerInDump):
Added. Always skip the root tile cache's flattening layer, as it is
uninteresting and does not exist in the non-tiled-drawing compositing case.

(WebCore::RenderLayerBacking::shouldDumpPropertyForLayer):
Don't dump drawsContent on the root tile cache.
Don't dump backgroundcolor on the root tile cache, unless it is non-white.
This may require some WebKit2-specific rebaselines, but they will occur later.

* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::layerTreeAsText):
If the root tile cache has no composited children, don't dump anything,
to match the traditional case where we drop out of compositing when
we have no reason to be compositing. Except, do dump the root tile cache's
layers if we're specifically being asked to dump tile caches.

* platform/mac-wk2/tiled-drawing/fixed-background/fixed-background-no-image-expected.txt:
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-body-layer-expected.txt:
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-expected.txt:
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-opacity-html-expected.txt:
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-positioned-expected.txt:
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-transformed-html-expected.txt:
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-zoomed-expected.txt:
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-html-background-expected.txt:
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-non-propagated-body-background-expected.txt:
* platform/mac-wk2/tiled-drawing/sticky/sticky-layers-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-coverage-slow-scrolling-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-coverage-speculative-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt:
* platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt:
* platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt:
* platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt:
* platform/mac-wk2/tiled-drawing/use-tiled-drawing-expected.txt:
Rebaseline some tests given these changes.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156749 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix some exceptions seen in the Buildbot Dashboard when looking at unloaded iterations.

Also fix some URLs to not have extras slashes and add a page title.

https://bugs.webkit.org/show_bug.cgi?id=122192

Reviewed by Joseph Pecoraro.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot.prototype.buildLogURLForIteration):
(WebKitBuildbot.prototype.layoutTestResultsURLForIteration):
(WebKitBuildbot.prototype.javascriptTestResultsURLForIteration):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156750 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Convert PageGroup to using std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=122184

Reviewed by Anders Carlsson.

* page/CaptionUserPreferences.cpp:
* page/CaptionUserPreferences.h:
* page/CaptionUserPreferencesMediaAF.cpp:
* page/CaptionUserPreferencesMediaAF.h:
* page/Frame.cpp:
* page/GroupSettings.h:
* page/Page.cpp:
* page/PageGroup.cpp:
* page/PageGroup.h:
* page/UserScriptTypes.h:
* page/UserStyleSheetTypes.h:
* workers/DedicatedWorkerGlobalScope.h:
* workers/DedicatedWorkerThread.cpp:
* workers/DedicatedWorkerThread.h:
* workers/SharedWorkerGlobalScope.cpp:
* workers/SharedWorkerGlobalScope.h:
* workers/SharedWorkerThread.cpp:
* workers/SharedWorkerThread.h:
* workers/WorkerGlobalScope.cpp:
* workers/WorkerGlobalScope.h:
* workers/WorkerThread.cpp:
* workers/WorkerThread.h:


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