Timeline
Jul 22, 2013:
- 10:40 PM Changeset in webkit [153033] by
-
- 13 edits5 adds in branches/dfgFourthTier/Source/JavaScriptCore
fourthTier: DFG should do a high-level LICM before going to FTL
https://bugs.webkit.org/show_bug.cgi?id=118749
Reviewed by Oliver Hunt.
Implements LICM hoisting for nodes that never write anything and never read
things that are clobbered by the loop. There are some other preconditions for
hoisting, see DFGLICMPhase.cpp.
Also did a few fixes:
- ClobberSet::add was failing to switch Super entries to Direct entries in some cases.
- DFGClobberize.cpp needed to #include "Operations.h".
- DCEPhase needs to process the graph in reverse DFS order, when we're in SSA.
- AbstractInterpreter can now execute a Node without knowing its indexInBlock. Knowing the indexInBlock is an optional optimization that all other clients of AI still opt into, but LICM doesn't.
This makes the FTL a 2.19x speed-up on imaging-gaussian-blur.
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAbstractInterpreter.h:
(AbstractInterpreter):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::::executeEffects):
(JSC::DFG::::execute):
(DFG):
(JSC::DFG::::clobberWorld):
(JSC::DFG::::clobberStructures):
- dfg/DFGAtTailAbstractState.cpp: Added.
(DFG):
(JSC::DFG::AtTailAbstractState::AtTailAbstractState):
(JSC::DFG::AtTailAbstractState::~AtTailAbstractState):
(JSC::DFG::AtTailAbstractState::createValueForNode):
(JSC::DFG::AtTailAbstractState::forNode):
- dfg/DFGAtTailAbstractState.h: Added.
(DFG):
(AtTailAbstractState):
(JSC::DFG::AtTailAbstractState::initializeTo):
(JSC::DFG::AtTailAbstractState::forNode):
(JSC::DFG::AtTailAbstractState::variables):
(JSC::DFG::AtTailAbstractState::block):
(JSC::DFG::AtTailAbstractState::isValid):
(JSC::DFG::AtTailAbstractState::setDidClobber):
(JSC::DFG::AtTailAbstractState::setIsValid):
(JSC::DFG::AtTailAbstractState::setBranchDirection):
(JSC::DFG::AtTailAbstractState::setFoundConstants):
(JSC::DFG::AtTailAbstractState::haveStructures):
(JSC::DFG::AtTailAbstractState::setHaveStructures):
- dfg/DFGBasicBlock.h:
(JSC::DFG::BasicBlock::insertBeforeLast):
- dfg/DFGBasicBlockInlines.h:
(DFG):
- dfg/DFGClobberSet.cpp:
(JSC::DFG::ClobberSet::add):
(JSC::DFG::ClobberSet::addAll):
- dfg/DFGClobberize.cpp:
(JSC::DFG::doesWrites):
- dfg/DFGClobberize.h:
(DFG):
- dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::DCEPhase):
(JSC::DFG::DCEPhase::run):
(JSC::DFG::DCEPhase::fixupBlock):
(DCEPhase):
- dfg/DFGEdgeDominates.h: Added.
(DFG):
(EdgeDominates):
(JSC::DFG::EdgeDominates::EdgeDominates):
(JSC::DFG::EdgeDominates::operator()):
(JSC::DFG::EdgeDominates::result):
(JSC::DFG::edgesDominate):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::checkArray):
- dfg/DFGLICMPhase.cpp: Added.
(LICMPhase):
(JSC::DFG::LICMPhase::LICMPhase):
(JSC::DFG::LICMPhase::run):
(JSC::DFG::LICMPhase::attemptHoist):
(DFG):
(JSC::DFG::performLICM):
- dfg/DFGLICMPhase.h: Added.
(DFG):
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- 9:52 PM Changeset in webkit [153032] by
-
- 3 edits in trunk/Source/WebCore
StickyPositionConstraints should store the constrainingRectAtLastLayout
https://bugs.webkit.org/show_bug.cgi?id=118999
Reviewed by Simon Fraser.
Much like how FixedPositionConstraints store a viewportRectAtLastLayout,
StickyConstraints should store a constrainingRectAtLastLayout. We'll need this to
get sticky right in overflow areas once overflow areas scroll on the scrolling
thread.
- page/scrolling/ScrollingConstraints.h:
(WebCore::StickyPositionViewportConstraints::StickyPositionViewportConstraints):
(WebCore::StickyPositionViewportConstraints::constrainingRectAtLastLayout):
(WebCore::StickyPositionViewportConstraints::setConstrainingRectAtLastLayout):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
- 7:30 PM Changeset in webkit [153031] by
-
- 11 edits in branches/safari-537-branch/Source
Merged r153017. <rdar://problem/14511268>
- 7:16 PM Changeset in webkit [153030] by
-
- 3 edits in branches/safari-537-branch/Source/WebCore
Merged r153014. <rdar://problem/14516421>
- 7:12 PM Changeset in webkit [153029] by
-
- 2 edits in branches/safari-537-branch/Source/WebCore
Merged r153013. <rdar://problem/14511232>
- 7:10 PM Changeset in webkit [153028] by
-
- 2 edits in branches/safari-537-branch/Source/WebCore
Merged r152989. <rdar://problem/13580220>
- 7:08 PM Changeset in webkit [153027] by
-
- 2 edits in branches/safari-537-branch/Source/WebKit2
Merged r152984. <rdar://problem/14155030>
- 7:04 PM Changeset in webkit [153026] by
-
- 4 edits in branches/safari-537-branch
Merged r152951. <rdar://problem/14504480>
- 7:03 PM Changeset in webkit [153025] by
-
- 2 edits in branches/safari-537-branch/Tools
Merged r152484. <rdar://problem/14504480>
- 6:51 PM Changeset in webkit [153024] by
-
- 2 edits in branches/safari-537-branch/Source/WebKit2
Merged r152950. <rdar://problem/14496721>
- 6:47 PM Changeset in webkit [153023] by
-
- 3 edits in branches/safari-537-branch/Source/WebKit2
Merged r152787. <rdar://problem/14418799>
- 6:43 PM Changeset in webkit [153022] by
-
- 2 edits in trunk/Source/WebCore
DateInputType constructor initiate incorrect base class
https://bugs.webkit.org/show_bug.cgi?id=118962
Patch by Santosh Mahto <santosh.ma@samsung.com> on 2013-07-22
Reviewed by Gyuyoung Kim.
No new test required since solving code error
- html/DateInputType.cpp:
(WebCore::DateInputType::DateInputType):
Corrected the base class instantiation in constructor.
- 6:24 PM Changeset in webkit [153021] by
-
- 15 edits9 copies in branches/safari-537-branch
Merged r152941. <rdar://problem/14475779>
- 6:16 PM Changeset in webkit [153020] by
-
- 2 edits in branches/safari-537-branch
Merged r152939. <rdar://problem/14497952>
- 6:15 PM Changeset in webkit [153019] by
-
- 5 edits in branches/safari-537-branch
Merged r152939. <rdar://problem/14365153>
- 6:03 PM Changeset in webkit [153018] by
-
- 14 edits50 copies in branches/safari-537-branch
Merged r152911. <rdar://problem/14109351>
- 6:02 PM Changeset in webkit [153017] by
-
- 11 edits in trunk/Source
Plug-in unavailability indicator should not be displayed if a blocked plugin's indicator is clipped
https://bugs.webkit.org/show_bug.cgi?id=118998
<rdar://problem/14511268>
Reviewed by Anders Carlsson.
- html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::updateWidget):
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::updateWidget):
- html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler):
(WebCore::HTMLPlugInElement::supportsFocus):
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary):
- loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::createJavaAppletWidget):
(WebCore::SubframeLoader::loadPlugin):
- page/FrameView.cpp:
(WebCore::FrameView::updateWidget):
Rename showsUnavailablePluginIndicator to isPluginUnavailable, since being unavailable
and actually showing the indicator are two totally different things.
- WebCore.exp.in: Expose setUnavailablePluginIndicatorIsHidden.
- rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
Rename m_showsUnavailablePluginIndicator to m_isPluginUnavailable.
Add m_isUnavailablePluginIndicatorHidden, defaulting to false.
(WebCore::RenderEmbeddedObject::setPluginUnavailabilityReasonWithDescription):
Set m_isPluginUnavailable when we get an unavailability reason.
(WebCore::RenderEmbeddedObject::paint):
(WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden): Added.
- rendering/RenderEmbeddedObject.h:
(WebCore::RenderEmbeddedObject::isPluginUnavailable): Added.
(WebCore::RenderEmbeddedObject::showsUnavailablePluginIndicator):
Repurpose "showsUnavailablePluginIndicator" to actually represent whether
the indicator is displayed (i.e. the plugin is unavailable, and the
indicator is not hidden).
- 5:54 PM Changeset in webkit [153016] by
-
- 3 edits2 copies in branches/safari-537-branch
Merged r152907. <rdar://problem/14494580>
- 5:51 PM Changeset in webkit [153015] by
-
- 2 edits in branches/safari-537-branch/Source/JavaScriptCore
Merged r152882. <rdar://problem/14488577>
- 5:14 PM Changeset in webkit [153014] by
-
- 3 edits in trunk/Source/WebCore
RenderEmbeddedObject::isReplacementObscured should include the arrow in its area-of-interest
https://bugs.webkit.org/show_bug.cgi?id=118995
<rdar://problem/14516421>
Reviewed by Anders Carlsson.
- rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::unavailablePluginIndicatorBounds):
Rename method from replacementTextRect to unavailablePluginIndicatorBounds for accuracy.
Use the bounding box of the indicator's path, which includes the rounded rect behind
the text as well as the arrow button.
(WebCore::RenderEmbeddedObject::isReplacementObscured):
- rendering/RenderEmbeddedObject.h:
- 5:05 PM Changeset in webkit [153013] by
-
- 2 edits in trunk/Source/WebCore
<applet> plugins are instantiated post-attach (instead of post-layout like for object and embed)
https://bugs.webkit.org/show_bug.cgi?id=118994
<rdar://problem/14511232>
Reviewed by Anders Carlsson.
Make <applet> consistent with <object> and <embed>, deferring plugin
instantiation to post-layout, so that layout is up-to-date if anything
needs it (like RenderEmbeddedObject::isReplacementObscured) during creation.
- html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::updateWidget):
Copy code from HTMLObjectElement/HTMLEmbedElement that defers plugin
creation until post-layout tasks. Java is always an NPAPI plugin, so
we should always defer if requested.
- 4:53 PM Changeset in webkit [153012] by
-
- 4 edits in branches/safari-537-branch
Merged r152874. <rdar://problem/14473010>
- 4:43 PM Changeset in webkit [153011] by
-
- 2 edits in branches/safari-537-branch/Source/JavaScriptCore
Merged r152868. <rdar://problem/14486297>
- 4:37 PM Changeset in webkit [153010] by
-
- 3 edits in branches/safari-537-branch/Source/WebKit2
Merged r152866. <rdar://problem/14474988>
- 4:34 PM Changeset in webkit [153009] by
-
- 4 edits in branches/safari-537-branch/Source/WebKit2
Merged r152862. <rdar://problem/13826348>
- 3:33 PM Changeset in webkit [153008] by
-
- 2 edits in branches/safari-537-branch/Source/WebCore
Merged r152858. <rdar://problem/14480588>
- 3:29 PM Changeset in webkit [153007] by
-
- 2 edits in trunk/Source/WTF
String::lower() - Skip to slow path on the first failure
https://bugs.webkit.org/show_bug.cgi?id=118885
Reviewed by Andreas Kling.
In the 8 bits case, we don't need to know the state of the full string before changing characters
to their lowercase variant.
Just fail immediately and start transforming characters from the point of failure.
This avoid reading the string twice when the uppercase character is not at the end of the string.
- wtf/text/StringImpl.cpp:
(WTF::StringImpl::lower):
- 3:26 PM Changeset in webkit [153006] by
-
- 4 edits in branches/safari-537-branch/Source
Merged r152848. <rdar://problem/14481659>
- 3:23 PM Changeset in webkit [153005] by
-
- 4 edits in trunk/Source/WebCore
Do not allocate 2 AtomicString just to do a comparison in HTMLAnchorElement::setRel()
https://bugs.webkit.org/show_bug.cgi?id=118941
Reviewed by Gavin Barraclough.
Currently, the only type of link relation supported by HTMLAnchorElement is RelationNoReferrer.
To find the value, we create a SpaceSplitString with the input value of the attribute (which
create one or more AtomicString depending on the input). Then we create a new AtomicString for
the literal "noreferrer". Finally, we compare the pointers and throw away all the AtomicStrings.
This causes a lot of memory operations for something really simple.
This patch adds a little helper method to SpaceSplitString to find a literal in the input. The only
allocation happens if we need to foldCase(). The following operations are done without allocating
new buffer and without hashing the input.
- dom/SpaceSplitString.cpp:
(WebCore::tokenizeSpaceSplitString):
(WebCore::AppendTokenToVectorTokenProcessor::AppendTokenToVectorTokenProcessor):
(WebCore::AppendTokenToVectorTokenProcessor::processToken):
(WebCore::SpaceSplitStringData::createVector):
(WebCore::TokenIsEqualToCStringTokenProcessor::TokenIsEqualToCStringTokenProcessor):
(WebCore::TokenIsEqualToCStringTokenProcessor::processToken):
(WebCore::TokenIsEqualToCStringTokenProcessor::referenceStringWasFound):
(WebCore::SpaceSplitString::spaceSplitStringContainsValue):
- dom/SpaceSplitString.h:
(WebCore::SpaceSplitString::spaceSplitStringContainsValue):
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::setRel):
- 3:17 PM Changeset in webkit [153004] by
-
- 2 edits in branches/safari-537-branch/Source/WebCore
Merged r152839. <rdar://problem/14247011>
- 3:10 PM Changeset in webkit [153003] by
-
- 7 edits3 adds in trunk
segfault in RenderLayerCompositor when the iframe's position attribute is changed and it embeds <object>.
https://bugs.webkit.org/show_bug.cgi?id=118965
Patch by Zalan Bujtas <Alan Bujtas> on 2013-07-22
Reviewed by Simon Fraser.
Do not change the composition state unless we can reliably figure out the iframe's size.
If the renderer is not yet attached, its size is not computable.
Source/WebCore:
Test: compositing/iframes/iframe-position-absolute-with-padding-percentage-crash.html
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForFrame):
LayoutTests:
- compositing/iframes/iframe-position-absolute-with-padding-percentage-crash-expected.txt: Added.
- compositing/iframes/iframe-position-absolute-with-padding-percentage-crash.html: Added.
- compositing/iframes/resources/embed-tag-with-composition.html: Added.
- platform/efl/TestExpectations: skip
- platform/efl-wk2/TestExpectations: skip
- platform/qt-5.0-wk1/TestExpectations: skip
- platform/qt-5.0-wk2/TestExpectations: skip
- 3:04 PM Changeset in webkit [153002] by
-
- 3 edits2 adds in trunk
AX: VoiceOver only read the first column in a safari table
https://bugs.webkit.org/show_bug.cgi?id=118992
Reviewed by Tim Horton.
Source/WebCore:
In case the first section has fewer columns than the rest of the table, the AXTable was only reporting the number of
columns for the first section. We need to take the max number of columns out of all sections.
Test: accessibility/table-with-mismatch-column-count-in-initial-section.html
- accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
LayoutTests:
- accessibility/table-with-mismatch-column-count-in-initial-section-expected.txt: Added.
- accessibility/table-with-mismatch-column-count-in-initial-section.html: Added.
- 2:59 PM Changeset in webkit [153001] by
-
- 18 edits in branches/safari-537-branch
Merged r152824. <rdar://problem/14209318>
- 2:50 PM Changeset in webkit [153000] by
-
- 38 edits1 delete in branches/safari-537-branch
Rollout of r152701. <rdar://problem/14209318>
- 2:48 PM Changeset in webkit [152999] by
-
- 4 edits in branches/safari-537-branch/LayoutTests
Rollout of r152703. <rdar://problem/14209318>
- 2:32 PM Changeset in webkit [152998] by
-
- 7 edits2 adds in trunk
StickyPositionContraints should not need to change to account for a RenderLayer's
scrollOffset
https://bugs.webkit.org/show_bug.cgi?id=118958
-and corresponding-
<rdar://problem/12469203>
Reviewed by Simon Fraser.
Source/WebCore:
Before this patch, to get sticky offsets right in overflow areas, the
StickyPositionConstraints changed on every scroll to factor it in. This will be a
problem once we can scroll overflow areas on the scrolling thread. The constraints
should never have to change to account for the scroll position. This patch fixes
that issue by changing the StickyPositionViewportConstraints’s containerBlockRect
and stickyBoxRect to be in a coordinate space that is relative to the scrolling
ancestor rather than being absolute. This patch also removes ‘absolute’ from those
variable names since they are no longer absolute.
A few re-names in the StickyPositionViewportConstraints class. The parameter to
computeStickyOffset() used to be called viewportRect, and is now called
constrainingRect. m_absoluteStickyBoxRect is now m_stickyBoxRect, and
m_absoluteContainingBlockRect is now m_containingBlockRect. And finally,
layerPositionForViewportRect() is now layerPositionForConstrainingRect()
- page/scrolling/ScrollingConstraints.cpp:
(WebCore::StickyPositionViewportConstraints::computeStickyOffset):
(WebCore::StickyPositionViewportConstraints::layerPositionForConstrainingRect):
- page/scrolling/ScrollingConstraints.h:
(WebCore::StickyPositionViewportConstraints::StickyPositionViewportConstraints):
(WebCore::StickyPositionViewportConstraints::containingBlockRect):
(WebCore::StickyPositionViewportConstraints::setContainingBlockRect):
(WebCore::StickyPositionViewportConstraints::stickyBoxRect):
(WebCore::StickyPositionViewportConstraints::setStickyBoxRect):
(WebCore::StickyPositionViewportConstraints::operator==):
Accounting for the re-names.
- page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):
(WebCore::ScrollingStateStickyNode::dumpProperties):
- page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):
Compute all values relative to the scrolling ancestor. This requires some juggling
in the overflow case to factor border and padding in or out.
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
This is where the scrollOffset should be factored in.
(WebCore::RenderBoxModelObject::stickyPositionOffset):
LayoutTests:
This tests stick in overflow areas where the sticky’s containing block overflows
the overflow area. The sticky object should not extend beyond the overflow area in
that case.
- fast/css/sticky/sticky-top-overflow-container-overflow-expected.html: Added.
- fast/css/sticky/sticky-top-overflow-container-overflow.html: Added.
- 2:24 PM Changeset in webkit [152997] by
-
- 7 edits2 copies in branches/safari-537-branch
Merged r152793. <rdar://problem/14152444>
- 2:21 PM Changeset in webkit [152996] by
-
- 11 edits in branches/safari-537-branch
Merged r152788. <rdar://problem/14421609>
- 2:17 PM Changeset in webkit [152995] by
-
- 3 edits2 copies in branches/safari-537-branch
Merged r152783. <rdar://problem/13540428>
- 2:15 PM Changeset in webkit [152994] by
-
- 2 edits in branches/safari-537-branch/Websites/bugs.webkit.org
Merged r152751. <rdar://problem/14450661>
- 2:12 PM Changeset in webkit [152993] by
-
- 2 edits in branches/safari-537-branch/Source/WebCore
Merged r152743. <rdar://problem/14459780>
- 2:09 PM Changeset in webkit [152992] by
-
- 2 edits in branches/safari-537-branch/Source/JavaScriptCore
Merged r152737. <rdar://problem/14435663>
- 2:07 PM Changeset in webkit [152991] by
-
- 3 edits4 copies in branches/safari-537-branch
Merged r152721. <rdar://problem/14446514>
- 1:56 PM Changeset in webkit [152990] by
-
- 2 edits in branches/safari-537-branch/Source/WebInspectorUI
Merged r152651. <rdar://problem/14406853>
- 1:54 PM Changeset in webkit [152989] by
-
- 2 edits in trunk/Source/WebCore
PlugIn content can disappear after restarting
https://bugs.webkit.org/show_bug.cgi?id=118982
Reviewed by Simon Fraser.
When a snapshotted plug-in is restarted, we inserted its compositing
layer back into the tree, but didn't recalculate style. This meant
that a subsequent compositing tree operation (such as any hardware
animation) could cause the content to disappear.
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::setDisplayState): Force a style recalc.
(WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): Ditto.
- 1:52 PM Changeset in webkit [152988] by
-
- 2 edits in branches/safari-537-branch/Source/JavaScriptCore
Merged r152600. <rdar://problem/14474400>
- 12:49 PM Changeset in webkit [152987] by
-
- 2 edits5 adds in trunk/LayoutTests
Rebaseline the caret color test for the Mac port after r152612
https://bugs.webkit.org/show_bug.cgi?id=118961
Reviewed by Alexey Proskuryakov.
Added expected results of the caret color test for the Mac port.
- platform/mac-wk2/editing/caret/caret-color-expected.png: Added.
- platform/mac/TestExpectations:
- platform/mac/editing/caret/caret-color-expected.png: Added.
- platform/mac/editing/caret/caret-color-expected.txt: Added.
- 12:38 PM Changeset in webkit [152986] by
-
- 3 edits2 adds in trunk
REGRESSION(r152227) Images with compositing layer don't show up unless the containing window is resized.
https://bugs.webkit.org/show_bug.cgi?id=118951
Patch by Zalan Bujtas <Alan Bujtas> on 2013-07-22
Reviewed by Simon Fraser.
Ensure that the content rect is initialized when the image is set on the graphics layer.
RenderLayerBacking::updateGraphicsLayerGeometry() only updates the contents rect when
the associated graphics layer has a content layer. Since the image gets committed
on the graphics layer after the update calls, the contents rect is left uninitialized.
Source/WebCore:
Test: compositing/images/positioned-image-content-rect.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateImageContents):
LayoutTests:
- compositing/images/positioned-image-content-rect-expected.html: Added.
- compositing/images/positioned-image-content-rect.html: Added.
- 11:48 AM Changeset in webkit [152985] by
-
- 3 edits in trunk/Source/WebCore
[Old Web Inspector] When right-clicking on a DataGrid column, show editing menu option as "Edit <columnName>" instead of just "Edit"
https://bugs.webkit.org/show_bug.cgi?id=118971
Patch by Diego Pino Garcia <Diego Pino Garcia> on 2013-07-22
Reviewed by Timothy Hatcher.
- English.lproj/localizedStrings.js:
- inspector/front-end/DataGrid.js: Change "Edit" for "Edit <columnTitle>"
(WebInspector.DataGrid.prototype._contextMenuInDataTable):
- 11:25 AM Changeset in webkit [152984] by
-
- 2 edits in trunk/Source/WebKit2
Frequent MESSAGE_CHECK failures in WebPageProxy::didReceiveEvent
https://bugs.webkit.org/show_bug.cgi?id=118976
<rdar://problem/14155030>
Reviewed by Sam Weinig.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetStateAfterProcessExited): Clear m_gestureEventQueue, just like we clear all other event queues here.
- 11:14 AM Changeset in webkit [152983] by
-
- 2 edits in trunk/Source/WebKit
Fixed WinCairo build configurations.
https://bugs.webkit.org/show_bug.cgi?id=118932
Reviewed by Brent Fulgham.
- WebKit.vcxproj/WebKit.sln:
Made WinCairo not build AssembleBuildLogs (wasn't working, not necessary).
Made Debug_WinCairo build with Debug_WinCairo configuration.
Made 64-bit WinCairo not build QTMovieWin.
- 11:12 AM Changeset in webkit [152982] by
-
- 6 edits in trunk/Source
Added assembly files to Windows 64-bit builds.
https://bugs.webkit.org/show_bug.cgi?id=118931
Reviewed by Brent Fulgham.
Source/JavaScriptCore:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: Added JITStubsMSVC64.asm for x64 and enabled MASM.
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: Added JITStubsMSVC64.asm.
Source/WebCore:
- WebCore.vcxproj/WebCore.vcxproj: Added PaintHooks.asm for x64 and enabled MASM.
- WebCore.vcxproj/WebCore.vcxproj.filters: Added PaintHooks.asm.
- 11:10 AM Changeset in webkit [152981] by
-
- 4 edits30 adds3 deletes in trunk/LayoutTests
Unreviewed, rolling out r152968.
http://trac.webkit.org/changeset/152968
https://bugs.webkit.org/show_bug.cgi?id=118975
"I forgot to add a test" (Requested by abucur on #webkit).
- fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.html: Removed.
- fast/regions/percentage-margins-mixed-ltr-dominant-regions.html:
- fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.html: Removed.
- fast/regions/percentage-margins-mixed-rtl-dominant-regions.html:
- fast/regions/percentage-margins-rtl-variable-width-regions-expected.html: Removed.
- fast/regions/percentage-margins-rtl-variable-width-regions.html:
- platform/efl/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.png: Added.
- platform/efl/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.txt: Added.
- platform/efl/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.png: Added.
- platform/efl/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.txt: Added.
- platform/efl/fast/regions/percentage-margins-rtl-variable-width-regions-expected.png: Added.
- platform/efl/fast/regions/percentage-margins-rtl-variable-width-regions-expected.txt: Added.
- platform/efl/fast/regions/percentage-margins-variable-width-regions-expected.png: Added.
- platform/efl/fast/regions/percentage-margins-variable-width-regions-expected.txt: Added.
- platform/gtk/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.png: Added.
- platform/gtk/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.txt: Added.
- platform/gtk/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.png: Added.
- platform/gtk/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.txt: Added.
- platform/gtk/fast/regions/percentage-margins-rtl-variable-width-regions-expected.png: Added.
- platform/gtk/fast/regions/percentage-margins-rtl-variable-width-regions-expected.txt: Added.
- platform/gtk/fast/regions/percentage-margins-variable-width-regions-expected.png: Added.
- platform/gtk/fast/regions/percentage-margins-variable-width-regions-expected.txt: Added.
- platform/mac/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.png: Added.
- platform/mac/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.txt: Added.
- platform/mac/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.png: Added.
- platform/mac/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.txt: Added.
- platform/mac/fast/regions/percentage-margins-rtl-variable-width-regions-expected.png: Added.
- platform/mac/fast/regions/percentage-margins-rtl-variable-width-regions-expected.txt: Added.
- platform/qt/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.png: Added.
- platform/qt/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.txt: Added.
- platform/qt/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.png: Added.
- platform/qt/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.txt: Added.
- platform/qt/fast/regions/percentage-margins-rtl-variable-width-regions-expected.png: Added.
- platform/qt/fast/regions/percentage-margins-rtl-variable-width-regions-expected.txt: Added.
- platform/qt/fast/regions/percentage-margins-variable-width-regions-expected.png: Added.
- platform/qt/fast/regions/percentage-margins-variable-width-regions-expected.txt: Added.
- 11:06 AM Changeset in webkit [152980] by
-
- 2 edits in trunk/Source/WebCore
[BlackBerry] Fix WebGL to a 2D canvas copies.
https://bugs.webkit.org/show_bug.cgi?id=118921
https://jira.bbqnx.net/browse/BRWSR-12714
JIRA 449577
Patch by Jakob Petsovits <jpetsovits@blackberry.com> on 2013-07-22
Reviewed by George Staikos.
The transform here was converted incorrectly when it
replaced the pixel copy that was there before.
As a true draw transformation, it doesn't need the "- 1"
modification that pixel copies often require.
Fixes existing webgl/conformance/canvas tests.
- platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::paintToCanvas):
- 10:05 AM Changeset in webkit [152979] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: When right-clicking on a DataGrid column, show editing
menu option as "Edit <columnName>" instead of just "Edit"
https://bugs.webkit.org/show_bug.cgi?id=118970
Patch by Diego Pino Garcia <Diego Pino Garcia> on 2013-07-22
Reviewed by Timothy Hatcher.
- Localizations/en.lproj/localizedStrings.js: Add literal "Edit '%s'"
- UserInterface/DataGrid.js: Change "Edit" for "Edit <columnTitle>"
(WebInspector.DataGrid.prototype._contextMenuInDataTable):
- 10:04 AM Changeset in webkit [152978] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening of AppleWin port. Skip some crashing tests.
- platform/win/TestExpectations:
- 9:39 AM Changeset in webkit [152977] by
-
- 1 edit2 adds in trunk/LayoutTests
[GTK] Unreviewed gardening. Added baselines needed after r110542.
- platform/gtk/fast/forms/label/labelable-elements-expected.txt: Added.
- 9:35 AM Changeset in webkit [152976] by
-
- 6 edits in trunk/Source
[Curl] Download fails for certain urls.
https://bugs.webkit.org/show_bug.cgi?id=118468
Patch by peavo@outlook.com <peavo@outlook.com> on 2013-07-22
Reviewed by Brent Fulgham.
Source/WebCore:
The current Curl download implementation has a few shortcomings:
1) Downloading from secure locations fails. We need to provide Curl with the path to a certificate file (.pem file).
2) Cookies are not set in the download request. We need to give Curl the path to the cookie file.
3) When a normal load is converted to a download, some of the headers from the original request is not sent (e.g. Referer, User agent).
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::CurlDownload): Initialize custom headers member.
(WebCore::CurlDownload::~CurlDownload): Free custom headers member.
(WebCore::CurlDownload::init): Set certificate and cookie file path.
(WebCore::CurlDownload::closeFile): Check file handle against value for invalid platform handle.
(WebCore::CurlDownload::writeDataToFile): Added utility method to write download data to file.
(WebCore::CurlDownload::addHeaders): Added utility method to add headers to request.
(WebCore::CurlDownload::didReceiveData): Use writeDataToFile utility method.
- platform/network/curl/CurlDownload.h:
Put class in WebCore namespace.
Added method to init download from resource handle, request, and response object.
Added utility method to write download data to file.
Added utility method to add headers to request.
Added custom headers member.
Source/WebKit/win:
Initialize download from provided resource handle, request, and response object.
- WebDownload.h: Use WebCore namespace for Curl download class.
- WebDownloadCurl.cpp:
(WebDownload::init): Initialize download from provided resource handle, request, and response object.
- 9:26 AM Changeset in webkit [152975] by
-
- 4 edits in trunk/Source/WebCore
[iOS] captions sometimes positioned incorrectly after fullscreen state change
https://bugs.webkit.org/show_bug.cgi?id=118912
Reviewed by Jer Noble.
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Call clearTextTrackRepresentation.
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Call updateDisplay so
cues are re-rendered with the updated size.
(WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation): Cleanup the
text track representation.
(WebCore::MediaControlTextTrackContainerElement::enteredFullscreen): New, force cues to be updated.
(WebCore::MediaControlTextTrackContainerElement::exitedFullscreen): Ditto.
- html/shadow/MediaControlElements.h:
- html/shadow/MediaControls.cpp:
(WebCore::MediaControls::enteredFullscreen): Call MediaControlTextTrackContainerElement::enteredFullscreen.
(WebCore::MediaControls::exitedFullscreen): Call MediaControlTextTrackContainerElement::exitedFullscreen.
- 9:23 AM Changeset in webkit [152974] by
-
- 2 edits in trunk/LayoutTests
[Qt] Unreviewed gardening. Rebase after r152814.
Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-07-22
- platform/qt-5.0-wk1/http/tests/security/contentSecurityPolicy/object-src-none-allowed-expected.txt:
- 9:23 AM Changeset in webkit [152973] by
-
- 2 edits in trunk/Source/WTF
[Windows] Unreviewed build fix.
- WTF.vcxproj/WTFGenerated.make: Stop triggering a "Build All" when things have not changed.
- 9:19 AM Changeset in webkit [152972] by
-
- 1 edit17 adds in trunk/LayoutTests
Unreviewed gardening. Added new baselines for GTK+ after r152911.
- platform/gtk/fast/multicol/pagination/BottomToTop-bt-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/BottomToTop-lr-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/BottomToTop-rl-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/BottomToTop-tb-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/LeftToRight-bt-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/LeftToRight-lr-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/LeftToRight-rl-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/LeftToRight-tb-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/RightToLeft-bt-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/RightToLeft-lr-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/RightToLeft-rl-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/RightToLeft-tb-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/TopToBottom-bt-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/TopToBottom-lr-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/TopToBottom-rl-expected.txt: Added.
- platform/gtk/fast/multicol/pagination/TopToBottom-tb-expected.txt: Added.
- 9:10 AM Changeset in webkit [152971] by
-
- 1 edit8 adds in trunk/LayoutTests
Unreviewed gardening. Added baselines for GTK+ related to subpixel layout.
- platform/gtk/editing/selection/mixed-editability-10-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/animate-elem-22-b-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/animate-elem-23-t-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/coords-units-03-b-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/filters-example-01-b-expected.txt: Added.
- platform/gtk/svg/custom/pattern-with-transformation-expected.txt: Added.
- platform/gtk/svg/text/text-midpoint-split-bug-expected.txt: Added.
- 8:01 AM Changeset in webkit [152970] by
-
- 1 edit2 adds in trunk/LayoutTests
Unreviewed gardening. Added needed baselines for GTK after r149088.
- platform/gtk/editing/selection/5825350-1-expected.txt: Added.
- platform/gtk/editing/selection/5825350-2-expected.txt: Added.
- 7:04 AM Changeset in webkit [152969] by
-
- 2 edits in trunk/Source/WebCore
[Qt][WK1] Support direct painting without GraphicsSurface
https://bugs.webkit.org/show_bug.cgi?id=118302
Reviewed by Jocelyn Turcotte.
Configure the WebGL OpenGL context to share texture with
the HostWindow OpenGL if available, and paint accelerated
using the the now shared textures.
This should return the performance without GraphicsSurface
on the WK1 code path to what it was before r135995 (28/11 2012).
- platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
- 7:02 AM Changeset in webkit [152968] by
-
- 4 edits3 adds30 deletes in trunk/LayoutTests
[CSS Regions] Convert percentage-margins-* tests to ref-tests
https://bugs.webkit.org/show_bug.cgi?id=118723
Reviewed by Andreas Kling.
The patch converts the percentage margins tests for regions in ref tests.
- fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.html: Added.
- fast/regions/percentage-margins-mixed-ltr-dominant-regions.html:
- fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.html: Added.
- fast/regions/percentage-margins-mixed-rtl-dominant-regions.html:
- fast/regions/percentage-margins-rtl-variable-width-regions-expected.html: Added.
- fast/regions/percentage-margins-rtl-variable-width-regions.html:
- platform/efl/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.png: Removed.
- platform/efl/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.txt: Removed.
- platform/efl/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.png: Removed.
- platform/efl/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.txt: Removed.
- platform/efl/fast/regions/percentage-margins-rtl-variable-width-regions-expected.png: Removed.
- platform/efl/fast/regions/percentage-margins-rtl-variable-width-regions-expected.txt: Removed.
- platform/efl/fast/regions/percentage-margins-variable-width-regions-expected.png: Removed.
- platform/efl/fast/regions/percentage-margins-variable-width-regions-expected.txt: Removed.
- platform/gtk/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.png: Removed.
- platform/gtk/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.txt: Removed.
- platform/gtk/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.png: Removed.
- platform/gtk/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.txt: Removed.
- platform/gtk/fast/regions/percentage-margins-rtl-variable-width-regions-expected.png: Removed.
- platform/gtk/fast/regions/percentage-margins-rtl-variable-width-regions-expected.txt: Removed.
- platform/gtk/fast/regions/percentage-margins-variable-width-regions-expected.png: Removed.
- platform/gtk/fast/regions/percentage-margins-variable-width-regions-expected.txt: Removed.
- platform/mac/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.png: Removed.
- platform/mac/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.txt: Removed.
- platform/mac/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.png: Removed.
- platform/mac/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.txt: Removed.
- platform/mac/fast/regions/percentage-margins-rtl-variable-width-regions-expected.png: Removed.
- platform/mac/fast/regions/percentage-margins-rtl-variable-width-regions-expected.txt: Removed.
- platform/qt/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.png: Removed.
- platform/qt/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.txt: Removed.
- platform/qt/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.png: Removed.
- platform/qt/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.txt: Removed.
- platform/qt/fast/regions/percentage-margins-rtl-variable-width-regions-expected.png: Removed.
- platform/qt/fast/regions/percentage-margins-rtl-variable-width-regions-expected.txt: Removed.
- platform/qt/fast/regions/percentage-margins-variable-width-regions-expected.png: Removed.
- platform/qt/fast/regions/percentage-margins-variable-width-regions-expected.txt: Removed.
- 6:39 AM Changeset in webkit [152967] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening. Add accesibility/lists.html as 'Missing' expectation.
- platform/gtk/TestExpectations: Added test.
- 6:21 AM Changeset in webkit [152966] by
-
- 3 edits in trunk/LayoutTests
[Qt] Unreviewed gardening. Skipping failing tests.
Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-07-22
- platform/qt-5.0-wk1/TestExpectations:
- platform/qt/TestExpectations:
- 6:15 AM Changeset in webkit [152965] by
-
- 2 edits in trunk/LayoutTests
[GTK] Regression: Multiple tests fail after r152701 changed how unavailable plugins are handled
https://bugs.webkit.org/show_bug.cgi?id=118730
Unreviewed GTK gardening. Unskip tests no longer failing.
Changes from r152701 were reverted in r152814 and later reworked in r152824,
so the tests no longer fail.
Patch by Simon Pena <simon.pena@samsung.com> on 2013-07-22
- platform/gtk/TestExpectations:
- 6:03 AM Changeset in webkit [152964] by
-
- 3 edits in trunk/LayoutTests
Unreviewed gardening. Update test expectations for GTK.
- platform/gtk/accessibility/aria-option-role-expected.txt: Update
expectations to match those from EFL.
- platform/gtk/TestExpectations: Removed test from failures expectations,
now it's running as expected.
- 5:08 AM Changeset in webkit [152963] by
-
- 8 edits in trunk/Source/WebCore
Introduce toSVGUseElement(), use it
https://bugs.webkit.org/show_bug.cgi?id=118942
Reviewed by Allan Sandfeld Jensen.
As a step to change static_cast with toSVGXXX, static_cast<SVGUseElement*> can
be changed with toSVGUseElement().
No new tests, no behavior change.
- dom/EventRetargeter.h:
(WebCore::EventRetargeter::eventTargetRespectingTargetRules):
- page/EventHandler.cpp:
(WebCore::instanceAssociatedWithShadowTreeElement):
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
- rendering/svg/RenderSVGTransformableContainer.cpp:
(WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
- svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::title):
- svg/SVGUseElement.cpp:
(WebCore::dumpInstanceTree):
(WebCore::SVGUseElement::buildInstanceTree):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
- svg/SVGUseElement.h:
(WebCore::toSVGUseElement):
- 5:07 AM Changeset in webkit [152962] by
-
- 9 edits in trunk/Source/WebCore
Use toSVGPathElement() instead of static_cast<>
https://bugs.webkit.org/show_bug.cgi?id=118960
Reviewed by Allan Sandfeld Jensen.
Though there is toSVGPathElement(), some files still use static_cast<SVGPathElement*>.
To remove all static_cast<> use, we need to change argument from SVGElement to Element.
Merge from https://src.chromium.org/viewvc/blink?view=rev&revision=154621
No new tests, no behavior change.
- rendering/svg/RenderSVGTextPath.cpp:
(WebCore::RenderSVGTextPath::layoutPath):
- rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromPathElement):
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::operator<<):
- svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::pathElement):
- svg/SVGPathElement.h:
(WebCore::toSVGPathElement):
- svg/SVGPathSegList.cpp:
(WebCore::SVGPathSegList::commitChange):
- svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
(WebCore::SVGAnimatedPathSegListPropertyTearOff::animValDidChange):
- svg/properties/SVGPathSegListPropertyTearOff.cpp:
(WebCore::SVGPathSegListPropertyTearOff::contextElement):
- 4:44 AM Changeset in webkit [152961] by
-
- 2 edits in trunk/Source/WebCore
[Qt] Implement more of DOM3 KeyEvent key-identifiers
https://bugs.webkit.org/show_bug.cgi?id=118566
Reviewed by Jocelyn Turcotte.
Implemented as many of the key values from http://www.w3.org/TR/DOM-Level-3-Events/#key-values-list
as Qt keycodes support.
Also corrected the mapping of the Menu key, which was confused because MENU
is also the ancient Microsoft speak for the Alt keys.
- platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::keyIdentifierForQtKeyCode):
- 1:46 AM Changeset in webkit [152960] by
-
- 2 edits1 move2 adds1 delete in trunk/LayoutTests
[Qt] Unreviewed gardening. Update platform specific expectations.
- platform/qt-5.0-wk1/fast/loader/show-only-one-beforeunload-dialog-expected.txt: Added after r152941.
- platform/qt-5.0-wk1/http/tests/misc/iframe-beforeunload-dialog-matching-ancestor-securityorigin-expected.txt: Added after r152941.
- platform/qt-5.0-wk2/fast/multicol/shrink-to-column-height-for-pagination-expected.png: Removed.
- platform/qt/fast/multicol/shrink-to-column-height-for-pagination-expected.png: Added after r152911.
- platform/qt/fast/multicol/shrink-to-column-height-for-pagination-expected.txt: Renamed from LayoutTests/platform/qt-5.0-wk2/fast/multicol/shrink-to-column-height-for-pagination-expected.txt.
Jul 21, 2013:
- 9:04 PM Changeset in webkit [152959] by
-
- 5 edits6 adds in branches/dfgFourthTier/Source
fourthTier: DFG Nodes should be able to abstractly tell you what they read and what they write
https://bugs.webkit.org/show_bug.cgi?id=118910
Source/JavaScriptCore:
Reviewed by Sam Weinig.
Add the notion of AbstractHeap to the DFG. This is analogous to the AbstractHeap in
the FTL, except that the FTL's AbstractHeaps are used during LLVM lowering and are
engineered to obey LLVM TBAA logic. The FTL's AbstractHeaps are also engineered to
be inexpensive to use (they just give you a TBAA node) but expensive to create (you
create them all up front). FTL AbstractHeaps also don't actually give you the
ability to reason about aliasing; they are *just* a mechanism for lowering to TBAA.
The DFG's AbstractHeaps are engineered to be both cheap to create and cheap to use.
They also give you aliasing machinery. The DFG AbstractHeaps are represented
internally by a int64_t. Many comparisons between them are just integer comaprisons.
AbstractHeaps form a three-level hierarchy (World is the supertype of everything,
Kind with a TOP payload is a direct subtype of World, and Kind with a non-TOP
payload is the direct subtype of its corresponding TOP Kind).
Add the notion of a ClobberSet. This is the set of AbstractHeaps that you had
clobbered. It represents the set that results from unifying a bunch of
AbstractHeaps, and is intended to quickly answer overlap questions: does the given
AbstractHeap overlap any AbstractHeap in the ClobberSet? To this end, if you add an
AbstractHeap to a set, it "directly" adds the heap itself, and "super" adds all of
its ancestors. An AbstractHeap is said to overlap a set if any direct or super
member is equal to it, or if any of its ancestors are equal to a direct member.
Example #1:
- I add Variables(5). I.e. Variables is the Kind and 5 is the payload. This is a subtype of Variables, which is a subtype of World.
- You query Variables. I.e. Variables with a TOP payload, which is the supertype of Variables(X) for any X, and a subtype of World.
The set will have Variables(5) as a direct member, and Variables and World as
super members. The Variables query will immediately return true, because
Variables is indeed a super member.
Example #2:
- I add Variables(5)
- You query NamedProperties
NamedProperties is not a member at all (neither direct or super). We next
query World. World is a member, but it's a super member, so we return false.
Example #3:
- I add Variables
- You query Variables(5)
The set will have Variables as a direct member, and World as a super member.
The Variables(5) query will not find Variables(5) in the set, but then it
will query Variables. Variables is a direct member, so we return true.
Example #4:
- I add Variables
- You query NamedProperties(5)
Neither NamedProperties nor NamedProperties(5) are members. We next query
World. World is a member, but it's a super member, so we return false.
Overlap queries require that either the heap being queried is in the set (either
direct or super), or that one of its ancestors is a direct member. Another way to
think about how this works is that two heaps A and B are said to overlap if
A.isSubtypeOf(B) or B.isSubtypeOf(A). This is sound since heaps form a
single-inheritance heirarchy. Consider that we wanted to implement a set that holds
heaps and answers the question, "is any member in the set an ancestor (i.e.
supertype) of some other heap". We would have the set contain the heaps themselves,
and we would satisfy the query "A.isSubtypeOfAny(set)" by walking the ancestor
chain of A, and repeatedly querying its membership in the set. This is what the
"direct" members of our set do. Now consider the other part, where we want to ask if
any member of the set is a descendent of a heap, or "A.isSupertypeOfAny(set)". We
would implement this by implementing set.add(B) as adding not just B but also all of
B's ancestors; then we would answer A.isSupertypeOfAny(set) by just checking if A is
in the set. With two such sets - one that answers isSubtypeOfAny() and another that
answers isSupertypeOfAny() - we could answer the "do any of my heaps overlap your
heap" question. ClobberSet does this, but combines the two sets into a single
HashMap. The HashMap's value, "direct", means that the key is a member of both the
supertype set and the subtype set; if it's false then it's only a member of one of
them.
Finally, this adds a functorized clobberize() method that adds the read and write
clobbers of a DFG::Node to read and write functors. Common functors for adding to
ClobberSets, querying overlap, and doing nothing are provided. Convenient wrappers
are also provided. This allows you to say things like:
ClobberSet set;
addWrites(graph, node1, set);
if (readsOverlap(graph, node2, set))
We know that node1 may write to something that node2 may read from.
Currently this facility is only used to improve graph dumping, but it will be
instrumental in both LICM and GVN. In the future, I want to completely kill the
NodeClobbersWorld and NodeMightClobber flags, and eradicate CSEPhase's hackish way
of accomplishing almost exactly what AbstractHeap gives you.
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAbstractHeap.cpp: Added.
(DFG):
(JSC::DFG::AbstractHeap::Payload::dump):
(JSC::DFG::AbstractHeap::dump):
(WTF):
(WTF::printInternal):
- dfg/DFGAbstractHeap.h: Added.
(DFG):
(AbstractHeap):
(Payload):
(JSC::DFG::AbstractHeap::Payload::Payload):
(JSC::DFG::AbstractHeap::Payload::top):
(JSC::DFG::AbstractHeap::Payload::isTop):
(JSC::DFG::AbstractHeap::Payload::value):
(JSC::DFG::AbstractHeap::Payload::valueImpl):
(JSC::DFG::AbstractHeap::Payload::operator==):
(JSC::DFG::AbstractHeap::Payload::operator!=):
(JSC::DFG::AbstractHeap::Payload::operator<):
(JSC::DFG::AbstractHeap::Payload::isDisjoint):
(JSC::DFG::AbstractHeap::Payload::overlaps):
(JSC::DFG::AbstractHeap::AbstractHeap):
(JSC::DFG::AbstractHeap::operator!):
(JSC::DFG::AbstractHeap::kind):
(JSC::DFG::AbstractHeap::payload):
(JSC::DFG::AbstractHeap::isDisjoint):
(JSC::DFG::AbstractHeap::overlaps):
(JSC::DFG::AbstractHeap::supertype):
(JSC::DFG::AbstractHeap::hash):
(JSC::DFG::AbstractHeap::operator==):
(JSC::DFG::AbstractHeap::operator!=):
(JSC::DFG::AbstractHeap::operator<):
(JSC::DFG::AbstractHeap::isHashTableDeletedValue):
(JSC::DFG::AbstractHeap::payloadImpl):
(JSC::DFG::AbstractHeap::encode):
(JSC::DFG::AbstractHeapHash::hash):
(JSC::DFG::AbstractHeapHash::equal):
(AbstractHeapHash):
(WTF):
- dfg/DFGClobberSet.cpp: Added.
(DFG):
(JSC::DFG::ClobberSet::ClobberSet):
(JSC::DFG::ClobberSet::~ClobberSet):
(JSC::DFG::ClobberSet::add):
(JSC::DFG::ClobberSet::addAll):
(JSC::DFG::ClobberSet::contains):
(JSC::DFG::ClobberSet::overlaps):
(JSC::DFG::ClobberSet::clear):
(JSC::DFG::ClobberSet::direct):
(JSC::DFG::ClobberSet::super):
(JSC::DFG::ClobberSet::dump):
(JSC::DFG::ClobberSet::setOf):
(JSC::DFG::addReads):
(JSC::DFG::addWrites):
(JSC::DFG::addReadsAndWrites):
(JSC::DFG::readsOverlap):
(JSC::DFG::writesOverlap):
- dfg/DFGClobberSet.h: Added.
(DFG):
(ClobberSet):
(JSC::DFG::ClobberSet::isEmpty):
(ClobberSetAdd):
(JSC::DFG::ClobberSetAdd::ClobberSetAdd):
(JSC::DFG::ClobberSetAdd::operator()):
(ClobberSetOverlaps):
(JSC::DFG::ClobberSetOverlaps::ClobberSetOverlaps):
(JSC::DFG::ClobberSetOverlaps::operator()):
(JSC::DFG::ClobberSetOverlaps::result):
- dfg/DFGClobberize.cpp: Added.
(DFG):
(JSC::DFG::didWrites):
- dfg/DFGClobberize.h: Added.
(DFG):
(JSC::DFG::clobberize):
(NoOpClobberize):
(JSC::DFG::NoOpClobberize::NoOpClobberize):
(JSC::DFG::NoOpClobberize::operator()):
(CheckClobberize):
(JSC::DFG::CheckClobberize::CheckClobberize):
(JSC::DFG::CheckClobberize::operator()):
(JSC::DFG::CheckClobberize::result):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
Source/WTF:
Reviewed by Sam Weinig.
Fix compile goof in sortedListDump().
- wtf/ListDump.h:
(WTF::sortedListDump):
- 8:57 PM Changeset in webkit [152958] by
-
- 4 edits in branches/dfgFourthTier/Source/JavaScriptCore
fourthTier: It should be easy to figure out which blocks nodes belong to
https://bugs.webkit.org/show_bug.cgi?id=118957
Reviewed by Sam Weinig.
- dfg/DFGGraph.cpp:
(DFG):
(JSC::DFG::Graph::initializeNodeOwners):
- dfg/DFGGraph.h:
(Graph):
- dfg/DFGNode.h:
- 8:36 PM Changeset in webkit [152957] by
-
- 18 edits in branches/dfgFourthTier/Source/JavaScriptCore
fourthTier: NodeExitsForward shouldn't be duplicated in NodeType
https://bugs.webkit.org/show_bug.cgi?id=118956
Reviewed by Sam Weinig.
We had two way of expressing that something exits forward: the NodeExitsForward
flag and the word 'Forward' in the NodeType. That's kind of dumb. This patch
makes it just be a flag.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::::executeEffects):
- dfg/DFGArgumentsSimplificationPhase.cpp:
(JSC::DFG::ArgumentsSimplificationPhase::run):
- dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::int32ToDoubleCSE):
(JSC::DFG::CSEPhase::checkStructureElimination):
(JSC::DFG::CSEPhase::structureTransitionWatchpointElimination):
(JSC::DFG::CSEPhase::putStructureStoreElimination):
(JSC::DFG::CSEPhase::checkArrayElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::injectInt32ToDoubleNode):
- dfg/DFGMinifiedNode.h:
(JSC::DFG::belongsInMinifiedGraph):
(JSC::DFG::MinifiedNode::hasChild):
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToStructureTransitionWatchpoint):
(JSC::DFG::Node::hasStructureSet):
(JSC::DFG::Node::hasStructure):
(JSC::DFG::Node::hasArrayMode):
(JSC::DFG::Node::willHaveCodeGenOrOSR):
- dfg/DFGNodeType.h:
(DFG):
(JSC::DFG::needsOSRForwardRewiring):
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileInt32ToDouble):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::run):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- dfg/DFGVariableEventStream.cpp:
(JSC::DFG::VariableEventStream::reconstruct):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::addExitArgumentForNode):
- 8:24 PM Changeset in webkit [152956] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Cleanup InspectorFrontendHostStub.js
https://bugs.webkit.org/show_bug.cgi?id=118959
Patch by Seokju Kwon <Seokju Kwon> on 2013-07-21
Reviewed by Timothy Hatcher.
Remove some functions because we dont use on New Inspector.
- UserInterface/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub):
(.WebInspector.InspectorFrontendHostStub.prototype.save):
- 5:13 PM Changeset in webkit [152955] by
-
- 7 edits in trunk/Source/WebCore
Introduce toSVGGradientElement(), use it
https://bugs.webkit.org/show_bug.cgi?id=118943
Reviewed by Andreas Kling.
As a step to change static_cast with toSVGXXX, static_cast<SVGGradientElement*> can
be changed with toSVGGradientElement().
No new tests, no behavior change.
- rendering/svg/RenderSVGGradientStop.cpp:
(WebCore::RenderSVGGradientStop::gradientElement):
- rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
- rendering/svg/SVGResources.cpp:
(WebCore::targetReferenceFromResource):
- svg/SVGGradientElement.h:
(WebCore::toSVGGradientElement):
- svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::collectGradientAttributes):
- svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::collectGradientAttributes):
- 4:42 PM Changeset in webkit [152954] by
-
- 10 edits in branches/dfgFourthTier/Source/JavaScriptCore
fourthTier: It should be possible for a DFG::Node to claim to exit to one CodeOrigin, but then claim that it belongs to a different CodeOrigin for all other purposes
https://bugs.webkit.org/show_bug.cgi?id=118946
Reviewed by Geoffrey Garen.
We want to decouple the exit target code origin of a node from the code origin
for all other purposes. The purposes of code origins are:
- Where the node will exit, if it exits. The exit target should be consistent with the surrounding nodes, in that if you just looked at the code origins of nodes in the graph, they would be consistent with the code origins in bytecode. This is necessary for live-at-bytecode analyses to work, and to preserve the original bytecode semantics when exiting.
- What kind of code the node came from, for semantics thingies. For example, we might use the code origin to find the node's global object for doing an original array check. Or we might use it to determine if the code is in strict mode. Or other similar things. When we use the code origin in this way, we're basically using it as a way of describing the node's meta-data without putting it into the node directly, to save space. In the absurd extreme you could imagine nodes not even having NodeTypes or NodeFlags, and just using the CodeOrigin to determine what bytecode the node originated from. We won't do that, but you can think of this use of code origins as just a way of compressing meta-data.
- What code origin we should supply profiling to, if we exit. This is closely related to the semantics thingies, in that the exit profiling is a persistent kind of semantic meta-data that survives between recompiles, and the only way to do that is to ascribe it to the original bytecode via the code origin.
If we hoist a node, we need to change the exit target code origin, but we must not
change the code origin for other purposes. The best way to do this is to decouple
the two kinds of code origin.
OSR exit data structures already do this, because they may edit the exit target
code origin while keeping the code origin for profiling intact. This happens for
forward exits. So, we just need to thread separation all the way back to DFG::Node.
That's what this patch does.
- dfg/DFGNode.h:
(JSC::DFG::Node::Node):
(Node):
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::OSRExit):
- dfg/DFGOSRExitBase.h:
(JSC::DFG::OSRExitBase::OSRExitBase):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::checkArgumentTypes):
- dfg/DFGSpeculativeJIT.h:
(SpeculativeJIT):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::appendOSRExit):
(LowerDFGToLLVM):
- ftl/FTLOSRExit.cpp:
(JSC::FTL::OSRExit::OSRExit):
- ftl/FTLOSRExit.h:
(OSRExit):
- 2:44 PM Changeset in webkit [152953] by
-
- 6 edits1 add in branches/dfgFourthTier/Source/JavaScriptCore
fourthTier: each DFG node that relies on other nodes to do their type checks should be able to tell you if those type checks happened
https://bugs.webkit.org/show_bug.cgi?id=118866
Reviewed by Sam Weinig.
Adds a safeToExecute() method that takes a node and an abstract state and tells you
if the node will run without crashing under that state.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
- dfg/DFGCFAPhase.cpp:
(CFAPhase):
(JSC::DFG::CFAPhase::CFAPhase):
(JSC::DFG::CFAPhase::run):
(JSC::DFG::CFAPhase::performBlockCFA):
(JSC::DFG::CFAPhase::performForwardCFA):
- dfg/DFGSafeToExecute.h: Added.
(DFG):
(SafeToExecuteEdge):
(JSC::DFG::SafeToExecuteEdge::SafeToExecuteEdge):
(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::SafeToExecuteEdge::result):
(JSC::DFG::safeToExecute):
- dfg/DFGStructureAbstractValue.h:
(JSC::DFG::StructureAbstractValue::isValidOffset):
(StructureAbstractValue):
- runtime/Options.h:
(JSC):
- 2:28 PM Changeset in webkit [152952] by
-
- 9 edits3 adds in branches/dfgFourthTier
fourthTier: FTL should be able to generate LLVM IR that uses an intrinsic for OSR exit
https://bugs.webkit.org/show_bug.cgi?id=118948
Source/JavaScriptCore:
Reviewed by Sam Weinig.
- Add the ability to generate LLVM IR but then not use it, via --llvmAlwaysFails=true. This allows doing "what if" experiments with IR generation, even if the generated IR can't yet execute.
- Add an OSR exit path that just calls an intrinsic that combines the branch and the off-ramp.
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- ftl/FTLFail.cpp: Added.
(FTL):
(JSC::FTL::fail):
- ftl/FTLFail.h: Added.
(FTL):
- ftl/FTLIntrinsicRepository.h:
(FTL):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::appendOSRExit):
(JSC::FTL::LowerDFGToLLVM::emitOSRExitCall):
- runtime/Options.h:
(JSC):
Tools:
Reviewed by Sam Weinig.
- Make ReducedFTL capable of dealing with code that uses the fake OSR exit intrinsic, by exporting it as a function.
- Make combineModules.rb idempotent. Sometimes it's convenient to run a file through it even if you know that you've already done so. See processIRDump.sh.
- Add a script, processIRDump.sh, that takes the output of --dumpLLVMIR=true and runs it through ReducedFTL automatically. You typically want to say something like:
jsc --dumpLLVMIR=true <program(s)> > jsc-output.txt
./processIRDump.sh --timing < jsc-output.txt
- ReducedFTL/ReducedFTL.c:
(webkit_osr_exit):
- ReducedFTL/combineModules.rb:
- ReducedFTL/processIRDump.sh: Added.
- 12:05 PM Changeset in webkit [152951] by
-
- 4 edits in trunk
KURL creates duplicate strings when completing data: URIs.
<http://webkit.org/b/118952>
<rdar://problem/14504480>
Reviewed by Anders Carlsson.
Source/WebCore:
When checking if the original URL input string can be reused, compare against the part
of the parsing buffer that we would actually return, not the entire buffer.
632 kB progression on <http://www.nytimes.com/>
Test: KURLTest.KURLDataURIStringSharing
- platform/KURL.cpp:
(WebCore::KURL::parse):
Tools:
- TestWebKitAPI/Tests/WebCore/KURL.cpp:
(TestWebKitAPI::TEST_F):
- 11:55 AM Changeset in webkit [152950] by
-
- 2 edits in trunk/Source/WebKit2
Java Updater not launched on Lion and Mountain Lion
https://bugs.webkit.org/show_bug.cgi?id=118953
<rdar://problem/14496721>
Reviewed by Sam Weinig.
On Lion and Mountain Lion, -[NSURL isEqual:] will return NO for two file URLs if one of
them has "localhost" specified, even if the paths are otherwise equal. Work around this by
comparing the paths directly.
- UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::isJavaUpdaterURL):