Timeline
Jun 10, 2013:
- 10:47 PM Changeset in webkit [151423] by
-
- 4 edits in trunk/Source
[CoordinatedGraphics] Typos in custom shader support
https://bugs.webkit.org/show_bug.cgi?id=117413
Patch by Jae Hyun Park <jae.park@company100.net> on 2013-06-10
Reviewed by Noam Rosenthal.
Wrong keyframe is passed when assigning filterValue.
Source/WebCore:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
Source/WebKit2:
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::prepareCustomFilterProxiesIfNeeded):
- 10:40 PM Changeset in webkit [151422] by
-
- 2 edits in trunk/Source/WebCore
text-transform: capitalize shouldn't upconvert
https://bugs.webkit.org/show_bug.cgi?id=117485
Reviewed by Adam Barth.
Avoid the upconversion. Merge https://chromium.googlesource.com/chromium/blink/+/c5a221d6da2443df0639c01c40aac6040908ec79.
- rendering/RenderText.cpp:
(WebCore::makeCapitalized):
- 10:37 PM Changeset in webkit [151421] by
-
- 2 edits in trunk/Source/WebCore
DocType strings should be 8 bit wide
https://bugs.webkit.org/show_bug.cgi?id=117487
Reviewed by Michael Saboff.
Merge https://chromium.googlesource.com/chromium/blink/+/8da02d0ce3965c4e6bf227db856bce930393429a.
- html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertDoctype):
- 9:47 PM Changeset in webkit [151420] by
-
- 23 edits4 adds in branches/dfgFourthTier/Source
Introducing the StackIterator class.
https://bugs.webkit.org/show_bug.cgi?id=117390.
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
The StackIterator class is meant to unify the way we iterate the JS
stack. It also makes it so that we don't have to copy the frame data
into the intermediate StackFrame struct before processing it.
Unfortunately we still can't get rid of StackFrame because it is used
to record frame information for the Exception stack that is expected
to persist beyond when the frames have been popped off the JS stack.
The StackIterator will iterate over all "logical" frames (i.e. including
inlined frames). As it iterates the JS stack, if it encounters a DFG
frame that has inlined frames, the iterator will canonicalize the
inlined frames before returning. Once canonicalized, the frame can be
read like any other frame.
The StackIterator implements a Frame class that inherits from CallFrame.
The StackIterator::Frame serves as reader of the CallFrame that makes
it easier to access information about the frame. The StackIterator::Frame
only adds functions, and no additional data fields.
- API/JSContextRef.cpp:
(JSContextCreateBacktrace):
- CMakeLists.txt:
- GNUmakefile.list.am:
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Target.pri:
- interpreter/CallFrame.cpp:
(JSC::CallFrame::begin):
(JSC::CallFrame::beginAt):
- interpreter/CallFrame.h:
(JSC::ExecState::setInlineCallFrame):
(ExecState):
(JSC::ExecState::end):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::dumpRegisters):
(JSC::Interpreter::unwindCallFrame):
(JSC::Interpreter::getStackTrace):
(JSC::Interpreter::throwException):
(JSC::Interpreter::debug):
- interpreter/Interpreter.h:
(Interpreter):
- interpreter/StackIterator.cpp: Added.
(JSC::StackIterator::StackIterator):
(JSC::StackIterator::beginAt):
(JSC::StackIterator::gotoNextFrame):
- Based on the deleted Interpreter::findFunctionCallFrameFromVMCode().
(JSC::StackIterator::findFrameForFunction):
- Based on the deleted Interpreter::retrieveCallerFromVMCode().
(JSC::StackIterator::Frame::codeType):
- Based on the deleted getStackFrameCodeType().
(JSC::StackIterator::Frame::functionName):
- Based on StackFrame::friendlyFunctionName().
(JSC::StackIterator::Frame::sourceURL):
- Based on StackFrame::friendlySourceURL().
(JSC::StackIterator::Frame::toString):
- Based on StackFrame::toString().
(JSC::StackIterator::Frame::bytecodeOffset):
(JSC::StackIterator::Frame::line):
- Based on StackFrame::line().
(JSC::StackIterator::Frame::column):
- Based on StackFrame::column().
(JSC::StackIterator::Frame::arguments):
- Based on the deleted Interpreter::retrieveArgumentsFromVMCode().
(JSC::StackIterator::Frame::retrieveExpressionInfo):
- Based on StackFrame::expressionInfo().
(JSC::StackIterator::Frame::logicalFrame):
- Based on the now deleted CallFrame::trueCallFrame().
(JSC::StackIterator::Frame::logicalCallerFrame):
- Based on the now deleted CallFrame::trueCallerFrame().
(JSC::jitTypeName):
(JSC::printIndents):
(JSC::printif):
(JSC::StackIterator::Frame::print):
(debugPrintCallFrame):
- Prints the contents of the frame for debugging purposes. There are 2 versions that can be used as follows:
- When you have a valid StackIterator, you can print the current frame's content using the print instance method:
iter->print(indentLevel);
- When you have a CallFrame* that you want to dump from a debugger console, you can print its content as follows:
(gdb) call debugPrintCallFrame(callFrame)
A sample of the output looks like this:
frame 0x1510c70b0 {
name 'shouldBe'
sourceURL 'testapi.js'
hostFlag 0
isInlinedFrame 0
callee 0x15154efb0
returnPC 0x10ed0786d
callerFrame 0x1510c7058
logicalCallerFrame 0x1510c7058
rawLocationBits 27 0x1b
codeBlock 0x7fe79b037200
bytecodeOffset 27 0x1b / 210
line 46
column 20
jitType 3 <BaselineJIT> isOptimizingJIT 0
hasCodeOrigins 0
}
- interpreter/StackIterator.h: Added.
(StackIterator::Frame):
(JSC::StackIterator::Frame::create):
(JSC::StackIterator::Frame::isJSFrame):
(JSC::StackIterator::Frame::callFrame):
- interpreter/StackIteratorPrivate.h: Added.
(StackIterator):
(JSC::StackIterator::operator*):
(JSC::StackIterator::operator->):
(JSC::StackIterator::operator==):
(JSC::StackIterator::operator!=):
(JSC::StackIterator::operator++):
(JSC::StackIterator::end):
(JSC::StackIterator::empty):
- jsc.cpp:
(functionJSCStack):
- profiler/ProfileGenerator.cpp:
(JSC::ProfileGenerator::addParentForConsoleStart):
- profiler/ProfileNode.h:
(ProfileNode):
- runtime/JSFunction.cpp:
(JSC::retrieveArguments):
(JSC::JSFunction::argumentsGetter):
(JSC::skipOverBoundFunctions):
(JSC::retrieveCallerFunction):
(JSC::JSFunction::callerGetter):
(JSC::JSFunction::getOwnPropertyDescriptor):
(JSC::JSFunction::defineOwnProperty):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncProtoGetter):
(JSC::globalFuncProtoSetter):
- runtime/ObjectConstructor.cpp:
(JSC::objectConstructorGetPrototypeOf):
- runtime/Operations.h:
Source/WebCore:
No new tests.
- ForwardingHeaders/interpreter/StackIterator.h: Added.
- bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::send):
- bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptCallStack):
- 9:47 PM Changeset in webkit [151419] by
-
- 5 edits in trunk/Source/WebKit2
[Qt][GTK] Build fix after r151403
https://bugs.webkit.org/show_bug.cgi?id=117452
Patch by Seokju Kwon <Seokju Kwon> on 2013-06-10
Reviewed by Csaba Osztrogonác.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::preferencesDidChange):
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/API/qt/raw/qrawwebview_p_p.h:
(QRawWebViewPrivate::preferencesDidChange):
- UIProcess/qt/QtPageClient.h:
(WebKit::QtPageClient::preferencesDidChange):
- 9:16 PM Changeset in webkit [151418] by
-
- 3 edits in trunk/LayoutTests
Use shouldBeType in animations/keyframes-rule.html
https://bugs.webkit.org/show_bug.cgi?id=117439
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/7eb727a7d5765eaa1779e00a45ac9f63e2e0047f
- animations/keyframes-rule-expected.txt:
- animations/keyframes-rule.html:
- 7:31 PM Changeset in webkit [151417] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, EFL gardening. Fix wrong expectation result on 151416.
- platform/efl-wk2/TestExpectations:
- 6:15 PM Changeset in webkit [151416] by
-
- 3 edits in trunk/LayoutTests
Unreviewed, EFL gardening. Manage tests which need to implement repaint rect.
- platform/efl-wk2/TestExpectations:
- platform/efl/TestExpectations:
- 6:11 PM Changeset in webkit [151415] by
-
- 5 edits in trunk/Source/WebCore
Make more functions const
https://bugs.webkit.org/show_bug.cgi?id=117455
Reviewed by Benjamin Poulain.
Merge https://chromium.googlesource.com/chromium/blink/+/886866f5034d7f30f8aa607b909313f99db1f3b4.
- editing/VisibleUnits.cpp:
(WebCore::CachedLogicallyOrderedLeafBoxes::boxIndexInLeaves):
- html/canvas/WebGLRenderingContext.cpp:
- page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::evalDisabledErrorMessage):
- rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::shouldIndentText):
- 5:47 PM Changeset in webkit [151414] by
-
- 3 edits in trunk/Source/WebKit2
Unreviewed, rolling out r151411.
http://trac.webkit.org/changeset/151411
https://bugs.webkit.org/show_bug.cgi?id=117453
because it is duplicated with Bug 117441 (Requested by
gyuyoung_ on #webkit).
Patch by Commit Queue <commit-queue@webkit.org> on 2013-06-10
- UIProcess/efl/WebViewEfl.cpp:
- UIProcess/efl/WebViewEfl.h:
- 5:46 PM Changeset in webkit [151413] by
-
- 3 edits in trunk/Source/WebKit2
Fix build error and warning
https://bugs.webkit.org/show_bug.cgi?id=117441
Patch by Jaehun Lim <ljaehun.lim@samsung.com> on 2013-06-10
Reviewed by Anders Carlsson.
- UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::preferencesDidChange): Added.
(WebKit::WebView::createPopupMenuProxy): Remove 'page'.
- UIProcess/CoordinatedGraphics/WebView.h:
- 5:38 PM Changeset in webkit [151412] by
-
- 4 edits in trunk/Tools
https://bugs.webkit.org/show_bug.cgi?id=117449
Remove dead code for storing fonts in DATA section
Reviewed by Dan Bernstein.
- DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
Don't copy font resources to DATA, as we don't have any code that reads them
from there (previously removed due to being under "defined(BUILDING_ON_LEOPARD)").
- DumpRenderTree/mac/DumpRenderTree.mm: (activateTestingFonts):
- WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm: (WTR::activateFonts):
Removed comments suggesting that we want to restore the old solution.
- 5:27 PM Changeset in webkit [151411] by
-
- 3 edits in trunk/Source/WebKit2
Unreviewed, EFL Build fix after r151403.
Added preferencesDidChange to WebViewEfl.
- UIProcess/efl/WebViewEfl.cpp:
(WebKit::WebViewEfl::preferencesDidChange):
- UIProcess/efl/WebViewEfl.h:
- 5:07 PM Changeset in webkit [151410] by
-
- 4 edits10 adds in trunk
REGRESSION(r151302): Many broken webaudio/ tests on Mac port.
https://bugs.webkit.org/show_bug.cgi?id=117446
Reviewed by Chris Rogers.
Source/WebCore:
The new "pageConsentRequiredForAudioStart()" restriction was blocking playback event
even when page consent was given. Remvoe the restriction immediately in that case.
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::startRendering):
LayoutTests:
Re-enable the tests on mac-wk2 and add new baselines for codec and audiobuffersource tests.
- platform/mac-wk2/TestExpectations:
- platform/mac-wk2/webaudio/audiobuffersource-loop-points-expected.wav: Added.
- platform/mac-wk2/webaudio/audiobuffersource-playbackrate-expected.wav: Added.
- platform/mac-wk2/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Added.
- platform/mac-wk2/webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Added.
- platform/mac-wk2/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Added.
- 4:43 PM Changeset in webkit [151409] by
-
- 2 edits in trunk/Source/WebKit2
Crash in StorageAreaMap::applyChange when clearing local storage in another web process
https://bugs.webkit.org/show_bug.cgi?id=117440
<rdar://problem/13961548>
Reviewed by Tim Horton.
Add an early return so we won't try to look up a null key in the m_pendingValueChanges map.
Also, fix an assertion - it's fine for m_storageMap to be null in applyChange.
- WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::applyChange):
- 4:16 PM Changeset in webkit [151408] by
-
- 1 edit1 copy1 move in trunk/WebKitLibraries
Change WebKitLibraries/win folder structure around.
<rdar://problem/14097829>
Reviewed by Lucas Forschler.
- win/WinTools.make: Copied from win/tools32/WinTools.make.
- win/tools32/WinTools.make: Removed.
- win/tools64: Copied from win/tools32.
- 3:28 PM Changeset in webkit [151407] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Remove a vestige of wxWidgets support.
https://bugs.webkit.org/show_bug.cgi?id=117419
Reviewed by Benjamin Poulain.
- runtime/JSExportMacros.h: Remove a check for BUILDING_WX that
seems to have gone unnoticed when the wxWidgets port was removed.
- 3:10 PM Changeset in webkit [151406] by
-
- 2 edits in trunk/Source/WebKit2
[WK2][CoordinatedGraphics] Add default case to switches to fix strict build
https://bugs.webkit.org/show_bug.cgi?id=117416
Patch by Sergio Correia <Sergio Correia> on 2013-06-10
Reviewed by Noam Rosenthal.
This patch fixes a strict build by asserting on the default case of two
switch statements where gcc was previously complaining of unhandled cases.
- Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
- 2:50 PM Changeset in webkit [151405] by
-
- 5 edits3 adds in branches/dfgFourthTier
Source/JavaScriptCore: Marge trunk r146653.
2013-03-22 Filip Pizlo <fpizlo@apple.com>
DFG folding of PutById to SimpleReplace should consider the specialized function case
https://bugs.webkit.org/show_bug.cgi?id=113093
Reviewed by Geoffrey Garen and Mark Hahnenberg.
- bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeFor):
LayoutTests: Merge trunk r146653.
2013-03-22 Filip Pizlo <fpizlo@apple.com>
DFG folding of PutById to SimpleReplace should consider the specialized function case
https://bugs.webkit.org/show_bug.cgi?id=113093
Reviewed by Geoffrey Garen and Mark Hahnenberg.
- fast/js/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function-expected.txt: Added.
- fast/js/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.html: Added.
- fast/js/jsc-test-list:
- fast/js/script-tests/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.js: Added. (foo): (baz): (fuzz):
- 2:36 PM Changeset in webkit [151404] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r150633): Find on page non-focused text highlight color is bright yellow.
<rdar://problem/14098882>
<http://webkit.org/b/117371>
Reviewed by Anders Carlsson.
There was a mistake in the parameter ordering which still compiled because of
implicit bool/unsigned conversion.
Changed the interface of Page::findMatchesForText() to use enums instead of bools.
No test because the color of the highlighted matches is not available through APIs.
- page/Page.h:
- page/Page.cpp:
(WebCore::Page::findMatchesForText):
(WebCore::Page::markAllMatchesForText):
(WebCore::Page::countFindMatches):
- 2:32 PM Changeset in webkit [151403] by
-
- 7 edits in trunk/Source/WebKit2
-[WKView _updateWindowAndViewFrames] should avoid updating the view frame in window coordinates if we don't have plugins
https://bugs.webkit.org/show_bug.cgi?id=117420
<rdar://problem/14073034>
Reviewed by Tim Horton.
If plug-ins are disabled there's no need for the web process to know about the view frame in window coordinates so only
send it when plug-ins are enabled. In addition, if accessibility is disabled we don't need to send a message at all.
- UIProcess/API/mac/PageClientImpl.h:
- UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::preferencesDidChange):
Call through to -[WKView _preferencesDidChange].
- UIProcess/API/mac/WKView.mm:
(-[WKView _updateWindowAndViewFrames]):
Don't compute viewFrameInWindowCoordinates or accessibilityPosition unless they're required. If neither are required,
don't even send a message to the web process.
(-[WKView _preferencesDidChange]):
Update _needsViewFrameInWindowCoordinates and call -[WKView _updateWindowAndViewFrames] if needed.
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
Set _needsViewFrameInWindowCoordinates based on whether plug-ins are enabled or not.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::preferencesDidChange):
Call the page client.
- 2:23 PM Changeset in webkit [151402] by
-
- 31 edits15 moves1 add in trunk
[CSS Shapes][CSS Exclusions] Split CSS Exclusions and CSS Shapes code
https://bugs.webkit.org/show_bug.cgi?id=117162
Reviewed by Alexandru Chiculita.
Source/WebCore:
With the split between the CSS Exclusions and CSS Shapes specifications,
some renaming is necessary. In general, this patch removes 'Exclusion' from
any Shapes code, while organizing the rendering shapes code into a 'shapes'
folder.
Renames:
ExclusionShape -> Shape
Exclusion[Rectangle|Polygon] -> [Rectangle|Polygon]Shape
Exclusion -> Shape
Refactoring, no new tests.
- CMakeLists.txt:
- GNUmakefile.am:
- GNUmakefile.list.am:
- Target.pri:
- WebCore.pri:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.vcxproj/WebCore.vcxproj.filters:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
- css/CSSPrimitiveValue.h:
- css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyShape::setValue):
(WebCore::ApplyPropertyShape::applyValue):
(WebCore::ApplyPropertyShape::createHandler):
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::PropertyWrapperShape::PropertyWrapperShape):
(WebCore::CSSPropertyAnimation::ensurePropertyMap):
- rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
- rendering/LayoutState.h:
(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::shapeInsideInfo):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange):
(WebCore::shapeInfoRequiresRelayout):
(WebCore::RenderBlock::updateRegionsAndExclusionsBeforeChildLayout):
(WebCore::RenderBlock::computeShapeSize):
(WebCore::RenderBlock::updateRegionsAndExclusionsAfterChildLayout):
(WebCore::RenderBlock::insertFloatingObject):
(WebCore::RenderBlock::computeLogicalLocationForFloat):
(WebCore::RenderBlock::positionNewFloats):
(WebCore::RenderBlock::logicalLeftOffsetForLine):
(WebCore::RenderBlock::logicalRightOffsetForLine):
- rendering/RenderBlock.h:
(WebCore::RenderBlock::ensureShapeInsideInfo):
(WebCore::RenderBlock::shapeInsideInfo):
(WebCore::RenderBlock::setShapeInsideInfo):
(WebCore::RenderBlock::allowsShapeInsideInfoSharing):
(WebCore::RenderBlock::xPositionForFloatIncludingMargin):
(WebCore::RenderBlock::yPositionForFloatIncludingMargin):
- rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutShapeInsideInfo):
(WebCore::LineWidth::LineWidth):
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
(WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
(WebCore::constructBidiRunsForLine):
(WebCore::adjustLogicalLineTop):
(WebCore::RenderBlock::updateLineBoundariesForShapes):
(WebCore::RenderBlock::adjustLogicalLineTopAndLogicalHeightIfNeeded):
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):
(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::updateShapeOutsideInfoAfterStyleChange):
- rendering/RenderBox.h:
(WebCore::RenderBox::shapeOutsideInfo):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintOffset):
- rendering/RenderView.h:
(WebCore::RenderView::pushLayoutState):
- rendering/shapes/PolygonShape.cpp: Renamed from Source/WebCore/rendering/ExclusionPolygon.cpp.
(WebCore::leftSide):
(WebCore::isReflexVertex):
(WebCore::computeXIntersection):
(WebCore::inwardEdgeNormal):
(WebCore::outwardEdgeNormal):
(WebCore::appendArc):
(WebCore::snapVerticesToLayoutUnitGrid):
(WebCore::computeShapePaddingBounds):
(WebCore::computeShapeMarginBounds):
(WebCore::PolygonShape::shapePaddingBounds):
(WebCore::PolygonShape::shapeMarginBounds):
(WebCore::getVertexIntersectionVertices):
(WebCore::appendIntervalX):
(WebCore::compareEdgeIntersectionX):
(WebCore::computeXIntersections):
(WebCore::computeOverlappingEdgeXProjections):
(WebCore::PolygonShape::getExcludedIntervals):
(WebCore::PolygonShape::getIncludedIntervals):
(WebCore::firstFitRectInPolygon):
(WebCore::aboveOrToTheLeft):
(WebCore::PolygonShape::firstIncludedIntervalLogicalTop):
- rendering/shapes/PolygonShape.h: Renamed from Source/WebCore/rendering/ExclusionPolygon.h.
(WebCore::OffsetPolygonEdge::OffsetPolygonEdge):
(WebCore::OffsetPolygonEdge::edgeIndex):
(WebCore::OffsetPolygonEdge::basis):
(WebCore::PolygonShape::PolygonShape):
- rendering/shapes/RectangleShape.cpp: Renamed from Source/WebCore/rendering/ExclusionRectangle.cpp.
(WebCore::ellipseXIntercept):
(WebCore::ellipseYIntercept):
(WebCore::FloatRoundedRect::paddingBounds):
(WebCore::FloatRoundedRect::marginBounds):
(WebCore::FloatRoundedRect::cornerInterceptForWidth):
(WebCore::RectangleShape::shapePaddingBounds):
(WebCore::RectangleShape::shapeMarginBounds):
(WebCore::RectangleShape::getExcludedIntervals):
(WebCore::RectangleShape::getIncludedIntervals):
(WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
- rendering/shapes/RectangleShape.h: Renamed from Source/WebCore/rendering/ExclusionRectangle.h.
(WebCore::FloatRoundedRect::FloatRoundedRect):
(WebCore::FloatRoundedRect::rx):
(WebCore::FloatRoundedRect::ry):
(WebCore::RectangleShape::RectangleShape):
- rendering/shapes/Shape.cpp: Renamed from Source/WebCore/rendering/ExclusionShape.cpp.
(WebCore::createRectangleShape):
(WebCore::createShapeCircle):
(WebCore::createShapeEllipse):
(WebCore::createPolygonShape):
(WebCore::physicalRectToLogical):
(WebCore::physicalPointToLogical):
(WebCore::physicalSizeToLogical):
(WebCore::Shape::createShape):
- rendering/shapes/Shape.h: Renamed from Source/WebCore/rendering/ExclusionShape.h.
(WebCore::LineSegment::LineSegment):
(WebCore::Shape::~Shape):
(WebCore::Shape::shapeMargin):
(WebCore::Shape::shapePadding):
- rendering/shapes/ShapeInfo.cpp: Renamed from Source/WebCore/rendering/ExclusionShapeInfo.cpp.
(WebCore::::computedShape):
(WebCore::::computeSegmentsForLine):
- rendering/shapes/ShapeInfo.h: Renamed from Source/WebCore/rendering/ExclusionShapeInfo.h.
(WebCore::MappedInfo::ensureInfo):
(WebCore::MappedInfo::removeInfo):
(WebCore::MappedInfo::info):
(WebCore::MappedInfo::infoMap):
(WebCore::ShapeInfo::~ShapeInfo):
(WebCore::ShapeInfo::setShapeSize):
(WebCore::ShapeInfo::clearSegments):
(WebCore::ShapeInfo::shapeLogicalTop):
(WebCore::ShapeInfo::shapeLogicalBottom):
(WebCore::ShapeInfo::shapeLogicalLeft):
(WebCore::ShapeInfo::shapeLogicalRight):
(WebCore::ShapeInfo::shapeLogicalWidth):
(WebCore::ShapeInfo::shapeLogicalHeight):
(WebCore::ShapeInfo::logicalLineTop):
(WebCore::ShapeInfo::logicalLineBottom):
(WebCore::ShapeInfo::shapeContainingBlockHeight):
(WebCore::ShapeInfo::lineOverlapsShapeBounds):
(WebCore::ShapeInfo::lineWithinShapeBounds):
(WebCore::ShapeInfo::dirtyShapeSize):
(WebCore::ShapeInfo::shapeSizeDirty):
(WebCore::ShapeInfo::owner):
(WebCore::ShapeInfo::ShapeInfo):
(WebCore::ShapeInfo::logicalTopOffset):
(WebCore::ShapeInfo::logicalLeftOffset):
- rendering/shapes/ShapeInsideInfo.cpp: Renamed from Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp.
(WebCore::LineSegmentRange::LineSegmentRange):
(WebCore::ShapeInsideInfo::isEnabledFor):
(WebCore::ShapeInsideInfo::adjustLogicalLineTop):
- rendering/shapes/ShapeInsideInfo.h: Renamed from Source/WebCore/rendering/ExclusionShapeInsideInfo.h.
(WebCore::LineSegmentIterator::LineSegmentIterator):
(WebCore::ShapeInsideInfo::createInfo):
(WebCore::ShapeInsideInfo::hasSegments):
(WebCore::ShapeInsideInfo::segments):
(WebCore::ShapeInsideInfo::segmentRanges):
(WebCore::ShapeInsideInfo::currentSegment):
(WebCore::ShapeInsideInfo::setNeedsLayout):
(WebCore::ShapeInsideInfo::needsLayout):
(WebCore::ShapeInsideInfo::ShapeInsideInfo):
- rendering/shapes/ShapeInterval.cpp: Renamed from Source/WebCore/rendering/ExclusionInterval.cpp.
(WebCore::IntervalX1Comparator::operator()):
(WebCore::ShapeInterval::intersect):
(WebCore::sortShapeIntervals):
(WebCore::mergeShapeIntervals):
(WebCore::intersectShapeIntervals):
(WebCore::subtractShapeIntervals):
- rendering/shapes/ShapeInterval.h: Renamed from Source/WebCore/rendering/ExclusionInterval.h.
(WebCore::ShapeInterval::ShapeInterval):
- rendering/shapes/ShapeOutsideInfo.cpp: Renamed from Source/WebCore/rendering/ExclusionShapeOutsideInfo.cpp.
(WebCore::ShapeOutsideInfo::isEnabledFor):
(WebCore::ShapeOutsideInfo::computeSegmentsForLine):
- rendering/shapes/ShapeOutsideInfo.h: Renamed from Source/WebCore/rendering/ExclusionShapeOutsideInfo.h.
(WebCore::ShapeOutsideInfo::shapeLogicalOffset):
(WebCore::ShapeOutsideInfo::leftSegmentShapeBoundingBoxDelta):
(WebCore::ShapeOutsideInfo::rightSegmentShapeBoundingBoxDelta):
(WebCore::ShapeOutsideInfo::createInfo):
(WebCore::ShapeOutsideInfo::ShapeOutsideInfo):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::initialShapeInside):
- rendering/style/RenderStyle.h:
- rendering/style/ShapeValue.h: Renamed from Source/WebCore/rendering/style/ExclusionShapeValue.h.
(WebCore::ShapeValue::createShapeValue):
(WebCore::ShapeValue::createOutsideValue):
(WebCore::ShapeValue::createImageValue):
(WebCore::ShapeValue::type):
(WebCore::ShapeValue::shape):
(WebCore::ShapeValue::image):
(WebCore::ShapeValue::setImage):
(WebCore::ShapeValue::operator==):
(WebCore::ShapeValue::ShapeValue):
- rendering/style/StyleRareNonInheritedData.h:
Source/WebKit:
Adding the WebCore/rendering/shapes directory to the include list.
- CMakeLists.txt:
Source/WebKit2:
Adding the WebCore/rendering/shapes directory to the include list.
- CMakeLists.txt:
Tools:
Adding the WebCore/rendering/shapes directory to the include list.
- DumpRenderTree/efl/CMakeLists.txt:
- 2:12 PM Changeset in webkit [151401] by
-
- 104 edits4 adds in branches/dfgFourthTier
Unreviewd, rolled out
<http://trac.webkit.org/changeset/151362>
<http://trac.webkit.org/changeset/151363>
Source/JavaScriptCore:
because they caused crashes.
LayoutTests:
because they caused crashes.
- 1:47 PM Changeset in webkit [151400] by
-
- 2 edits in tags/Safari-537.44.1/Source/WTF
Merged r151330. <rdar://problem/14094873>
- 1:36 PM Changeset in webkit [151399] by
-
- 1 copy in tags/Safari-537.44.1
New Tag.
- 12:06 PM Changeset in webkit [151398] by
-
- 9 edits2 copies in trunk/Source
Use Cairo implementation of the WidgetBackingStore instead of X11 when running on Wayland
https://bugs.webkit.org/show_bug.cgi?id=116717
Patch by Iago Toral Quiroga <itoral@igalia.com> on 2013-06-10
Reviewed by Martin Robinson.
Source/WebCore:
Refactored WidgetBackingStore to be an abstract base class and make
GtkWidgetBackingStoreX11 and WidgetBackingStoreCairo inherit from it.
GtkWidgetBackingStoreX11 renamed to WidgetBackingStoreGtkX11.
- GNUmakefile.list.am:
- platform/cairo/WidgetBackingStore.h:
(WebCore):
(WidgetBackingStore):
(WebCore::WidgetBackingStore::WidgetBackingStore):
(WebCore::WidgetBackingStore::~WidgetBackingStore):
- platform/cairo/WidgetBackingStoreCairo.cpp:
(WebCore::WidgetBackingStoreCairo::create):
(WebCore):
(WebCore::WidgetBackingStoreCairo::WidgetBackingStoreCairo):
(WebCore::WidgetBackingStoreCairo::~WidgetBackingStoreCairo):
(WebCore::WidgetBackingStoreCairo::cairoSurface):
(WebCore::WidgetBackingStoreCairo::scroll):
- platform/cairo/WidgetBackingStoreCairo.h: Added.
(WebCore):
(WidgetBackingStoreCairo):
- platform/gtk/GtkWidgetBackingStoreX11.cpp:
(WebCore::WidgetBackingStoreGtkX11::create):
(WebCore):
(WebCore::WidgetBackingStoreGtkX11::WidgetBackingStoreGtkX11):
(WebCore::WidgetBackingStoreGtkX11::~WidgetBackingStoreGtkX11):
(WebCore::WidgetBackingStoreGtkX11::cairoSurface):
(WebCore::WidgetBackingStoreGtkX11::scroll):
- platform/gtk/GtkWidgetBackingStoreX11.h: Added.
(WebCore):
(WidgetBackingStoreGtkX11):
Source/WebKit/gtk:
Decide which implementation of WidgetBackingStore to use (X11 or Cairo)
depending on whether we are running on X11 or not. Select Cairo
implementation when not running in X11.
- WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::createBackingStore):
(WebKit):
(WebKit::ChromeClient::widgetSizeChanged):
(WebKit::ChromeClient::attachRootGraphicsLayer):
Source/WebKit2:
Decide which implementation of WidgetBackingStore to use (X11 or Cairo)
depending on whether we are running on X11 or not. Select Cairo
implementation when not running in X11.
- UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit):
(WebKit::createBackingStoreForGTK):
(WebKit::BackingStore::incorporateUpdate):
- 10:45 AM Changeset in webkit [151397] by
-
- 2 edits in trunk/Source/WebCore
[BlackBerry] Store ParsedCookies as RefPtrs instead of PassRefPtrs in CookieDatabaseBackingStore
https://bugs.webkit.org/show_bug.cgi?id=117411
JIRA388672
BRWSR-11465
Patch by Otto Derek Cheung <otcheung@rim.com> on 2013-06-10
Reviewed by Rob Buis.
When we queue up ParsedCookie objects for modification, we should be storing them as a refptr instead
of a PassRefPtr.
- platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
- 9:27 AM Changeset in webkit [151396] by
-
- 3 edits2 adds in trunk
[CSSRegions] ASSERTION FAILED: roundedIntPoint(rendererMappedResult) == roundedIntPoint(result) in RenderGeometryMap::mapToContainer
https://bugs.webkit.org/show_bug.cgi?id=117395
Reviewed by Alexandru Chiculita.
Source/WebCore:
Test: fast/regions/assert-flow-thread-compositing.html
We should not allow RenderNamedFlowThread layers to be composited, rather their collected children should checked
for compositing through their associated RenderRegions.
The assert in RenderGeometryMap::mapToContainer was hit because after https://bugs.webkit.org/show_bug.cgi?id=117270
the render named flow threads are hooked in RenderView layer tree - with the caveat that they are not directly involved
in hit testing/paint which is done through their associated regions.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Bail out if we hit a render named flow thread layer.
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Ditto.
LayoutTests:
- fast/regions/assert-flow-thread-compositing-expected.txt: Added.
- fast/regions/assert-flow-thread-compositing.html: Added.
- 8:26 AM Changeset in webkit [151395] by
-
- 2 edits in trunk/Source/WebCore
Refactor CALCFUNCTION rules in the CSS grammar
https://bugs.webkit.org/show_bug.cgi?id=117401
Reviewed by Andreas Kling.
From Blink r149862 by <serya@chromium.org>.
Reduce the number of CALCFUNCTION rules by refactoring the closing
parenthesis handling code.
No new tests required as this is a refactoring, no new functionality
added.
- css/CSSGrammar.y.in:
- 7:19 AM Changeset in webkit [151394] by
-
- 33 edits2 moves1 add1 delete in trunk
[CSS Regions] Rename region-overflow to region-fragment
https://bugs.webkit.org/show_bug.cgi?id=117397
PerformanceTests:
Renamed -webkit-region-overflow to -webkit-region-fragment according to the new working draft
at http://www.w3.org/TR/2013/WD-css3-regions-20130528/#the-region-fragment-property
Patch by Radu Stavila <stavila@adobe.com> on 2013-06-10
Reviewed by Alexander Pavlov.
- Layout/resources/regions.css:
Source/WebCore:
Renamed -webkit-region-overflow to -webkit-region-fragment and
webkitRegionOverflow to webkitRegionFragment according to the new working draft
at http://www.w3.org/TR/2013/WD-css3-regions-20130528/#the-region-fragment-property
Patch by Radu Stavila <stavila@adobe.com> on 2013-06-10
Reviewed by Alexander Pavlov.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
- css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator RegionFragment):
- css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
- css/CSSPropertyNames.in:
- css/CSSValueKeywords.in:
- css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::hasNextPage):
- rendering/RenderRegion.cpp:
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
- rendering/style/RenderStyle.h:
- rendering/style/RenderStyleConstants.h:
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
- rendering/style/StyleRareNonInheritedData.h:
LayoutTests:
Renamed -webkit-region-overflow to -webkit-region-fragment and
webkitRegionOverflow to webkitRegionFragment according to the new working draft
at http://www.w3.org/TR/2013/WD-css3-regions-20130528/#the-region-fragment-property
Patch by Radu Stavila <stavila@adobe.com> on 2013-06-10
Reviewed by Alexander Pavlov.
- fast/regions/autoheight-breakafteralways-maxheight.html:
- fast/regions/autoheight-breakbeforealways.html:
- fast/regions/autoheight-singleregion-breakafteralways-maxheight.html:
- fast/regions/autoheight-singleregion-breakafteralways.html:
- fast/regions/autoheight-singleregion-breakaftermargin.html:
- fast/regions/autoheight-singleregion-breakbeforealways-minheight.html:
- fast/regions/autoheight-singleregion-breakbeforealways.html:
- fast/regions/autoheight-singleregion-multiplebreaks.html:
- fast/regions/css-regions-disabled-expected.txt:
- fast/regions/region-overflow-auto-overflow-hidden.html:
- fast/regions/region-overflow-auto-overflow-visible.html:
- fast/regions/region-overflow-break.html:
- fast/regions/regions-widows-and-orphans.html:
- fast/regions/script-tests/css-regions-disabled.js:
- fast/regions/script-tests/webkit-region-overflow-parsing.js:
- fast/regions/webkit-region-overflow-parsing-expected.txt:
- 6:49 AM WebKitGTK/2.0.x edited by
- (diff)
- 6:20 AM WebKitGTK/2.0.x edited by
- (diff)
- 6:16 AM Changeset in webkit [151393] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0
Merge r150963 - [GTK] Needs to check for harfbuzz-icu
https://bugs.webkit.org/show_bug.cgi?id=116978
Patch by Alberto Garcia <agarcia@igalia.com> on 2013-05-30
Reviewed by Xan Lopez.
HarfBuzz 0.9.18 splits harbuzz-icu into a separate library so we
also need to check for it in order to get the necessary flags for
the compiler and the linker.
We keep this conditional for now since we still want to support
earlier versions of HarfBuzz.
- Source/autotools/FindDependencies.m4:
- 6:15 AM WebKitGTK/2.0.x edited by
- (diff)
- 6:10 AM Changeset in webkit [151392] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebCore/platform/gtk/po
Merge r151189 - [GTK] Updated WebKit Translation in Hindi [hi] language
https://bugs.webkit.org/show_bug.cgi?id=115508
Patch by Rajesh Ranjan <rajeshkajha@yahoo.com> on 2013-06-04
Reviewed by Gustavo Noronha Silva (kov).
- hi.po: Updated.
- 6:09 AM Changeset in webkit [151391] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebCore/platform/gtk/po
Merge r151188 - Updated Telugu [te] Translations for WebKitGTK+ HEAD
https://bugs.webkit.org/show_bug.cgi?id=115856
Patch by Krishnababu Krothapalli <kkrothap@redhat.com> on 2013-06-04
Reviewed by Gustavo Noronha Silva (kov).
- te.po: Updated.
- 6:07 AM WebKitGTK/2.0.x edited by
- (diff)
- 6:07 AM Changeset in webkit [151390] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebCore/platform/gtk/po
Merge r151187 - Updated WebKitGTK+ Translation for Odia [or] language.
https://bugs.webkit.org/show_bug.cgi?id=116825
Patch by Manoj Kumar Giri <mgiri@redhat.com> on 2013-06-04
Reviewed by Gustavo Noronha Silva (kov).
- or.po: Updated.
- 6:06 AM Changeset in webkit [151389] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebCore/platform/gtk/po
Merge r151186 - [kn] Kannada Translation for webkit - Updated
https://bugs.webkit.org/show_bug.cgi?id=116941
Patch by Shankar Prasad <svenkate@redhat.com> on 2013-06-04
Reviewed by Gustavo Noronha Silva (kov).
- kn.po: Updated.
- 6:03 AM Changeset in webkit [151388] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebCore/platform/gtk/po
[GTK] Updated as-IN translations
https://bugs.webkit.org/show_bug.cgi?id=116953
Patch by Nilamdyuti Goswami <ngoswami@redhat.com> on 2013-05-30
Reviewed by Gustavo Noronha Silva (kov).
- as.po: Updated.
- 6:02 AM WebKitGTK/2.0.x edited by
- (diff)
- 6:02 AM Changeset in webkit [151387] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebCore
Merge r151141 - [harfbuzz] WebKit fails to build with MinGW compiler because of invalid cast in HarfBuzzShaper.cpp
https://bugs.webkit.org/show_bug.cgi?id=108373
Patch by Paweł Forysiuk <tuxator@o2.pl> on 2013-06-03
Reviewed by Darin Adler.
Fix building on platforms where UChar is defined as wchar_t.
- platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
- 5:57 AM Changeset in webkit [151386] by
-
- 3 edits in releases/WebKitGTK/webkit-2.0/Tools
Merge r151135 - [GTK] Respect PKG_CONFIG env variable when generating gtk-doc
https://bugs.webkit.org/show_bug.cgi?id=117168
Patch by Erik van Pienbroek <epienbro@fedoraproject.org> on 2013-06-03
Reviewed by Martin Robinson.
The tool generate-gtkdoc internally calls pkg-config.
When cross-compiling it shouldn't use pkg-config, but
it should use the pkg-config which was detected by
the ./configure script (for example this can be
i686-w64-mingw32-pkg-config when cross-compiling)
- GNUmakefile.am:
- gtk/gtkdoc.py:
(PkgConfigGTKDoc.init):
- 5:47 AM WebKitGTK/2.0.x edited by
- (diff)
- 5:43 AM WebKitGTK/2.0.x edited by
- (diff)
- 5:42 AM Changeset in webkit [151385] by
-
- 6 edits in releases/WebKitGTK/webkit-2.0
Merge r150326 - [GTK] Parallel build fails if gtk-doc is enabled
https://bugs.webkit.org/show_bug.cgi?id=116227
Patch by Alberto Garcia <agarcia@igalia.com> on 2013-05-18
Reviewed by Martin Robinson.
.:
- GNUmakefile.am:
Define an empty noinst_DATA variable where other automake files
can add additional objects to be built.
Source/WebCore:
- GNUmakefile.am:
Don't overwrite noinst_DATA, modify its existing value instead.
Tools:
- GNUmakefile.am:
Don't use the 'all' target to generate the documentation.
The prerequisites of this target must be files that need to be
built _before_ the actual compilation of WebKit starts. Since the
documentation depends on WebKit being built first, this means in
practice that the code will be built in parallel with the
generation of its dependencies, potentially making the build fail.
- 5:41 AM WebKitGTK/2.0.x edited by
- (diff)
- 5:36 AM Changeset in webkit [151384] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Tools
Merge r150117 - [GTK] Fails to build while generating gtkdoc
https://bugs.webkit.org/show_bug.cgi?id=115612
Patch by Alberto Garcia <agarcia@igalia.com> on 2013-05-15
Reviewed by Philippe Normand.
Fix typo in the prerequisites of docs-build.stamp.
- GNUmakefile.am:
- 5:35 AM WebKitGTK/2.0.x edited by
- (diff)
- 5:30 AM Changeset in webkit [151383] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebKit2
Merge r150232 - [GTK] Fix memory leak in WebKitBackForwardList
https://bugs.webkit.org/show_bug.cgi?id=116222
Patch by Manuel Rego Casasnovas <Manuel Rego Casasnovas> on 2013-05-16
Reviewed by Carlos Garcia Campos.
Due to the use of leakRef() the ImmutableArray is not being released
automatically. Adding a local variable in the methods to make sure that
the ImmutableArray is freed.
- UIProcess/API/gtk/WebKitBackForwardList.cpp:
(webkit_back_forward_list_get_back_list_with_limit): Add local variable
RefPtr and pass the ImmutableArray to
WebKitBackForwardList::webkitBackForwardListCreateList() using
RefPtr::get().
(webkit_back_forward_list_get_forward_list_with_limit): Ditto.
- 5:27 AM WebKitGTK/2.0.x edited by
- (diff)
- 5:23 AM Changeset in webkit [151382] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebKit2
Merge r150758 - Reset all clients on WebPage close
https://bugs.webkit.org/show_bug.cgi?id=112334
Patch by Xan Lopez <xlopez@igalia.com> on 2013-05-27
Reviewed by Anders Carlsson.
We do not reset the clients on WebPage::close(), so there's a
small chance that someone will try to access them after that. This
won't work and will generally cause runtime warnings, crashes or
other issues. Reset them all to null to prevent this situation.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
- 4:33 AM Changeset in webkit [151381] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/JavaScriptCore
Merge r149114 - REGRESSION(r137994): Random crashes occur with SH4 JSC.
https://bugs.webkit.org/show_bug.cgi?id=115167.
Patch by Julien Brianceau <jbrianceau@nds.com> on 2013-04-25
Reviewed by Oliver Hunt.
Since r137994, uncommited pages could be inside the area of memory in
parameter of the cacheFlush function. That's why we have to flush each
page separately to avoid a fail of the whole flush, if an uncommited page
is in the area.
This patch is very similar to changeset 145194 made for ARMv7 architecture,
see https://bugs.webkit.org/show_bug.cgi?id=111441 for further information.
- assembler/SH4Assembler.h:
(JSC::SH4Assembler::cacheFlush):
- 4:25 AM WebKitIDL edited by
- Add documentation for RaisesException, harmonize with Blink IDL (diff)
- 4:25 AM Changeset in webkit [151380] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.0
Merge r151312 - Frame flattening: crash when child iframe is removed during beforeload.
https://bugs.webkit.org/show_bug.cgi?id=116220
Patch by Zalan Bujtas <Alan Bujtas> on 2013-06-07
Reviewed by Antti Koivisto.
FrameView can get destroyed in updateWidget(). Normally, it is protected by layout()
but with frame flattening on, it can also be called asynchronously through the
post layout timer.
Source/WebCore:
Test: fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html
- page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
LayoutTests:
- fast/frames/flattening/crash-remove-iframe-during-object-beforeload-expected.txt: Added.
- fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html: Added.
- 4:16 AM WebKitGTK/2.0.x edited by
- (diff)
- 4:10 AM Changeset in webkit [151379] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebKit/gtk
Merge r151245 - [GTK] AcceleratedCompositingContext: fix layerFlushTimerFiredCallback condition
https://bugs.webkit.org/show_bug.cgi?id=117258
Patch by Alberto Garcia <agarcia@igalia.com> on 2013-06-05
Reviewed by Martin Robinson.
The expressions were incorrectly grouped, a timeout handler can
only be added only if there's none running already.
- WebCoreSupport/AcceleratedCompositingContextGL.cpp:
(WebKit::AcceleratedCompositingContext::renderLayersToWindow):
- 4:05 AM Changeset in webkit [151378] by
-
- 16 edits in trunk/Source/WebCore
Replace [ConstructorRaisesException] with [RaisesException]
https://bugs.webkit.org/show_bug.cgi?id=117400
Reviewed by Kentaro Hara.
Replace [ConstructorRaisesException] with [RaisesException] IDL extended
attribute and drop [ConstructorRaisesException]. It makes little sense
to have 2 extended attributes with the same meaning.
[RaisesException] can now be used on IDL operations to indicate that the
method may throw exceptions or on interfaces to indicate that the
constructor may throw exceptions.
From Blink r148027 by Kentaro Hara <haraken@chromium.org>.
No new tests, no behavior change.
- Modules/encryptedmedia/MediaKeys.idl:
- Modules/mediastream/RTCIceCandidate.idl:
- Modules/mediastream/RTCPeerConnection.idl:
- Modules/mediastream/RTCSessionDescription.idl:
- Modules/webaudio/OfflineAudioContext.idl:
- Modules/websockets/WebSocket.idl:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDefinition):
- bindings/scripts/IDLAttributes.txt:
- bindings/scripts/test/TestInterface.idl:
- bindings/scripts/test/TestNamedConstructor.idl:
- css/WebKitCSSMatrix.idl:
- html/HTMLOptionElement.idl:
- page/EventSource.idl:
- workers/SharedWorker.idl:
- workers/Worker.idl:
- 3:49 AM WebKitGTK/2.0.x edited by
- (diff)
- 3:44 AM Changeset in webkit [151377] by
-
- 3 edits in releases/WebKitGTK/webkit-2.0/Source/WebKit/gtk
Merge r151198 - [GTK] Make precedence of logical operators explicit
https://bugs.webkit.org/show_bug.cgi?id=117216
Patch by Alberto Garcia <agarcia@igalia.com> on 2013-06-04
Reviewed by Martin Robinson.
There's a couple of cases where we mix && and in the same expression. In ChromeClient::contentsSizeChanged() the lack of
parentheses actually makes the expression wrong.
- WebCoreSupport/AcceleratedCompositingContextGL.cpp:
(WebKit::AcceleratedCompositingContext::renderLayersToWindow):
- WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::contentsSizeChanged):
- 3:35 AM WebKitGTK/2.0.x edited by
- (diff)
- 3:30 AM Changeset in webkit [151376] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebKit2
Merge r150763 - [GTK] WebKitWebView child widgets are not rendered with recent GTK+
https://bugs.webkit.org/show_bug.cgi?id=116794
Reviewed by Xan Lopez.
Since rev d22fd7223c75f4720ddb982c659efb0d8d7543c4 of GTK+ expose
events are not propagated to child GdkWindows anymore, and child
widgets are rendered via gtk_container_propagate_draw(). Since all
our children have its own GdkWindow (auth widget, inspector view
and windowed plugins) we don't propagate the draw signal making
them invisible with current GTK+.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDraw): Chain up to the parent draw(), so it's
propagated to the children. This shouldn't have any effect in
previous versions of GTK+ because gtk_container_propagate_draw()
returned early when the child widget had its own GdkWindow.
- 3:09 AM Changeset in webkit [151375] by
-
- 27 edits in trunk
Web Inspector: refactor statusBarItems getter in front-end.
https://bugs.webkit.org/show_bug.cgi?id=110114
Patch by Mátyás Mustoha <mmatyas@inf.u-szeged.hu> on 2013-06-10
Reviewed by Noam Rosenthal.
Source/WebCore:
Refactored "statusBarItems" methods from getters into functions and
moved default implementation from Panel.js to View.js.
Patch created by Andrey Lushnikov.
- inspector/front-end/AdvancedSearchController.js:
(WebInspector.SearchView.prototype.statusBarItems):
- inspector/front-end/ApplicationCacheItemsView.js:
(WebInspector.ApplicationCacheItemsView.prototype.statusBarItems):
- inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel.prototype.statusBarItems):
- inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.prototype.statusBarItems):
- inspector/front-end/CSSSelectorProfileView.js:
(WebInspector.CSSSelectorProfileView.prototype.statusBarItems):
- inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView.prototype.statusBarItems):
(WebInspector.CanvasProfileType.prototype.statusBarItems):
- inspector/front-end/ConsolePanel.js:
(WebInspector.ConsolePanel.prototype.statusBarItems):
- inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.statusBarItems):
- inspector/front-end/CookieItemsView.js:
(WebInspector.CookieItemsView.prototype.statusBarItems):
- inspector/front-end/DOMStorageItemsView.js:
(WebInspector.DOMStorageItemsView.prototype.statusBarItems):
- inspector/front-end/DatabaseTableView.js:
(WebInspector.DatabaseTableView.prototype.statusBarItems):
- inspector/front-end/Drawer.js:
- inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.statusBarItems):
- inspector/front-end/ExtensionPanel.js:
(WebInspector.ExtensionPanel.prototype.statusBarItems):
- inspector/front-end/FileSystemView.js:
(WebInspector.FileSystemView.prototype.statusBarItems):
- inspector/front-end/HeapSnapshotView.js:
- inspector/front-end/IndexedDBViews.js:
(WebInspector.IDBDataView.prototype.statusBarItems):
- inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype.statusBarItems):
(WebInspector.NetworkPanel.prototype.statusBarItems):
- inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.wasShown):
- inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileType.prototype.statusBarItems):
(WebInspector.ProfilesPanel.prototype.statusBarItems):
(WebInspector.ProfilesPanel.prototype._updateProfileTypeSpecificUI):
(WebInspector.ProfilesPanel.prototype._showProfile):
- inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.statusBarItems):
(WebInspector.ResourcesPanel.prototype._innerShowView):
- inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.statusBarItems):
- inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype.statusBarItems):
- inspector/front-end/View.js:
(WebInspector.View.prototype.statusBarItems):
LayoutTests:
Fix layout test to correspond to refactoring.
Patch created by Andrey Lushnikov.
- inspector/extensions/extensions-panel.html:
- 3:03 AM Changeset in webkit [151374] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebKit2
Merge r150500 - REGRESSION(r150491): WebKit2.CloseThenTerminate asserting below WebContext::disconnectProcess().
<http://webkit.org/b/116588>
Reviewed by Sam Weinig.
Do an early return from WebProcessProxy::requestTermination() if there is no child process
connection to terminate.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
- 3:01 AM WebKitGTK/2.0.x edited by
- (diff)
- 3:00 AM Changeset in webkit [151373] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebCore
Merge r150350 - GtkSelectionData length is off by one
https://bugs.webkit.org/show_bug.cgi?id=113962
Reviewed by Anders Carlsson.
No new tests. Since drag data is interpreted as a null-terminated string
this is difficult to test with a C program and we have no infrastructure
built for using GIR tests.
- platform/gtk/PasteboardHelper.cpp:
(WebCore::PasteboardHelper::fillSelectionData): Instead of including the null
character in the paste data length, just include the string. This matches the behavior
of Firefox.
- 2:56 AM Changeset in webkit [151372] by
-
- 2 edits in releases/WebKitGTK/webkit-2.0/Source/WebKit2
Merge r151270 - [Gtk] Connection is leaking when WebProcess is terminated
https://bugs.webkit.org/show_bug.cgi?id=117293
Reviewed by Martin Robinson.
Connection is leaking because WorkQueue::SocketEventSource inherits from
WorkQueue::EventSource but when it is destroyed, the actual destructor running
is the one from base class; however, subclass contains a function binded from
Connection (m_closeFunction) and we need to do this extra cleanup, otherwise
WorkQueue will keep Connection alive. A better explanation of this fix is provided
on http://stackoverflow.com/questions/461203/when-to-use-virtual-destructors
A quick way to see the leak is to change WK2 test "ReloadPageAfterCrash" to terminate
WebProcess N times and add a printf on Connection destructor.
- Platform/gtk/WorkQueueGtk.cpp:
(WorkQueue::EventSource::~EventSource): Adds a virtual destructor to enable
the subclass to do its own cleanup.
- 2:48 AM WebKitGTK/2.0.x edited by
- (diff)
- 2:43 AM Changeset in webkit [151371] by
-
- 3 edits in releases/WebKitGTK/webkit-2.0/Source/WebKit2
Merge r150808 - [GTK] Connection issues in repeated WebProcess crash/reloads.
https://bugs.webkit.org/show_bug.cgi?id=115880
Reviewed by Anders Carlsson.
When stressing the WebProcess creation/destruction, WebKitGTK can
often run into socket issues like bad file descriptor errors or
polling a socket indefinitely.
Currently WebKitGTK has three places where a socket can be
closed.
- childFinishedFunction (in ProcessLauncherGtk.cpp)
- Connection::platformInvalidate (in ConnectionUnix.cpp)
- WorkQueue EventSource destruction (in WorkQueueGtk.cpp)
To avoid these race conditions, socket closing will be handled
by the event source callback in WorkQueueGtk.cpp.
- Platform/CoreIPC/unix/ConnectionUnix.cpp:
(CoreIPC::Connection::platformInvalidate): Do not close the socket
when the connection is invalidated, the socket event source is
unregistered in this method and the socket is closed when the
GSocket associated to the event source is destroyed.
- UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess): Do not monitor child
process to close the connection on termination. This was needed in
the past when we used DGRAM sockets, we currently use always
connection oriented sockets, so that when the other end closes
the connection we are notified and the connection is invalidated.
- 2:38 AM WebKitGTK/2.0.x edited by
- (diff)
- 2:31 AM Changeset in webkit [151370] by
-
- 3 edits in releases/WebKitGTK/webkit-2.0/Source/WebKit2
Merge r149934 - When possible, terminate web processes immediately when closing their last page.
<http://webkit.org/b/115964>
<rdar://problem/13869266>
Reviewed by Geoffrey Garen.
When we're using a network process, there's no need for the UI process to wait for web processes
to clear resource caches and terminate nicely.
We can just kill them off right away in WebProcessProxy::removeWebPage() when the last page is closed.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::removeWebPage):
Terminate the child process immediately if possible.
- UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::canTerminateChildProcess):
(WebKit::WebProcessProxy::shouldTerminate):
Broke out the logic from the shouldTerminate() IPC message handler into a separate function
so we can call it from removeWebPage().
- 2:29 AM WebKitGTK/2.0.x edited by
- (diff)
- 2:24 AM Changeset in webkit [151369] by
-
- 9 edits1 add in releases/WebKitGTK/webkit-2.0
Merge r149933 - Crash when terminating a process that has not been fully launched
https://bugs.webkit.org/show_bug.cgi?id=115962
<rdar://problem/13660916>
Reviewed by Andreas Kling.
Source/WebKit2:
Handle terminating a process that has not been fully launched.
- UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::didFinishLaunchingProcess):
If we have been invalidated, dispose the connection identifier.
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::terminateProcess):
If we're still launching the process, invalidate so the client won't get an unexpected
didFinishLaunching callback.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
Check if webConnection() is null before calling it. (It will be null if the process isn't fully launched).
Tools:
Add TerminateTwice, a test that terminates a page, then reloads it and terminates it again
before the process has had a chance to be fully launched.
- TestWebKitAPI/GNUmakefile.am:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2/TerminateTwice.cpp: Added.
(TestWebKitAPI):
(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit2/WebKit2.pro:
- 2:19 AM WebKitGTK/2.0.x edited by
- (diff)
- 2:14 AM WebKitGTK/2.0.x edited by
- (diff)
- 2:14 AM Changeset in webkit [151368] by
-
- 4 edits1 add in releases/WebKitGTK/webkit-2.0
Merge r149573 - REGRESSION(r148312): Crash when calling WKPageClose(page) followed by WKPageTerminate(page)
<rdar://problem/13702008>
https://bugs.webkit.org/show_bug.cgi?id=115607
Reviewed by Benjamin Poulain.
Source/WebKit2:
API Test: WebKit2.CloseThenTerminate
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetStateAfterProcessExited):
Don't try to reset the state if the page is closed, it won't work and its not worth it.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2/CloseThenTerminate.cpp: Added.
(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::TEST):
Add test that calls WKPageClose, follow by WKPageTerminate. If it crashes, its not working.
- 2:09 AM Changeset in webkit [151367] by
-
- 11 edits1 add in releases/WebKitGTK/webkit-2.0
Merge r148312 - [WK2] WebPageProxy loadURL() won't work when called just after terminateProcess()
https://bugs.webkit.org/show_bug.cgi?id=110743
Patch by Adenilson Cavalcanti <cavalcantii@gmail.com> on 2013-04-12
Reviewed by Benjamin Poulain.
Source/WebKit2:
A call to loadURL() just after terminating WebProcess will fail thanks to
WebPageProxy being in an undefined state since it is in the middle of its own
cleanup after process termination.
To properly fix this, not only WebPageProxy cleanup should be made
at WebProcess termination request, but also WebProcessProxy needs
to only return to its caller after terminating the process and
closing connections. Otherwise, WebPageProxy can even be able to
detect that WebProcess is no longer running, but a call to respawn
the process will fail.
To fix these issues, this patch moves the cleanup code to a shared private function
that is used for both the cases i.e. user termination and real crash. WebProcess
shutdown is done using a new method that ensures that all cleanup was done before
returning.
A last change introduced in this patch is that for user requested termination,
clients are no longer notified of a crash (since it is not a crash).
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::terminateProcess):
(WebKit::WebPageProxy::processDidCrash):
(WebKit):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
- UIProcess/WebPageProxy.h:
(WebPageProxy):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::userRequestedTerminate):
(WebKit):
- UIProcess/WebProcessProxy.h:
(WebProcessProxy):
Tools:
Adding a new test file to check if loading a page just after WebProcess
has crashed (or was terminated) works. The test executes the
following steps (Load, Crash, Load), thus stressing WebProcess
reattach and process termination code path.
- TestWebKitAPI/GNUmakefile.am:
- TestWebKitAPI/PlatformEfl.cmake:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2/MouseMoveAfterCrash.cpp:
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit2/LoadPageOnCrash.cpp: Added.
(TestWebKitAPI):
(WebKit2CrashLoader):
(TestWebKitAPI::WebKit2CrashLoader::WebKit2CrashLoader):
(TestWebKitAPI::WebKit2CrashLoader::loadUrl):
(TestWebKitAPI::WebKit2CrashLoader::crashWebProcess):
(TestWebKitAPI::didFinishLoad):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit2/WebKit2.pro:
- 1:52 AM WebKitGTK/2.0.x edited by
- (diff)
- 1:47 AM Changeset in webkit [151366] by
-
- 3 edits in releases/WebKitGTK/webkit-2.0/Source
Merge r145194 - Cache flush problem on ARMv7 JSC
https://bugs.webkit.org/show_bug.cgi?id=111441
Reviewed by Zoltan Herczeg.
Not proper cache flush causing random crashes on ARMv7 Linux with V8 tests.
The problem is similar to https://bugs.webkit.org/show_bug.cgi?id=77712.
Change the cache fulsh mechanism similar to ARM traditinal and revert the
temporary fix.
Source/JavaScriptCore:
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::cacheFlush):
Source/WTF:
- wtf/OSAllocatorPosix.cpp:
(WTF::OSAllocator::reserveUncommitted):
(WTF::OSAllocator::decommit):
- 1:04 AM Changeset in webkit [151365] by
-
- 4 edits in trunk/Source/WebCore
Add special tree walking for the single tag or class CSS query selectors
https://bugs.webkit.org/show_bug.cgi?id=117388
Reviewed by Ryosuke Niwa.
Queries for a single tag name or a single class name are the most common
input of querySelector.
This patch adds a simplified tree walking in those cases, only checking that particular
case instead of a full selector.
With the change, the balanced query selector benchmarks become 11% faster.
- css/SelectorCheckerFastPath.cpp:
(WebCore::HTMLNames::checkClassValue):
- dom/SelectorQuery.cpp:
(WebCore::isSingleTagNameSelector):
(WebCore::SelectorDataList::executeSingleTagNameSelectorData):
(WebCore::isSingleClassNameSelector):
(WebCore::SelectorDataList::executeSingleClassNameSelectorData):
(WebCore::SelectorDataList::execute):
- dom/SelectorQuery.h:
- 12:16 AM WebKitGTK/2.0.x edited by
- Remove change previous to the branch point :-) (diff)
- 12:08 AM WebKitGTK/2.0.x edited by
- (diff)
- 12:04 AM WebKitGTK/2.0.x edited by
- (diff)
Jun 9, 2013:
- 11:25 PM Changeset in webkit [151364] by
-
- 2 edits in trunk/Source/WebKit2
[CoordinatedGraphics] Typo in argument decoder for CoordinatedGraphicsState
https://bugs.webkit.org/show_bug.cgi?id=117384
Patch by Jae Hyun Park <jae.park@company100.net> on 2013-06-09
Reviewed by Noam Rosenthal.
For CSS Shaders, it must decode state.customFiltersToRemove instead of
state.updateAtlasesToRemove.
- Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::decode):
- 10:45 PM Changeset in webkit [151363] by
-
- 93 edits4 adds4 deletes in branches/dfgFourthTier
Re-worked non-local variable resolution
https://bugs.webkit.org/show_bug.cgi?id=117375
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
This patch has two goals:
(1) Simplicity.
- Net removes 15 opcodes.
- Net removes 2,000 lines of code.
- Removes setPair() from the DFG: All DFG nodes have 1 result register now.
(2) Performance.
- 2%-3% speedup on SunSpider (20% in LLInt and Baseline JIT)
- 2% speedup on v8-spider
- 10% speedup on js-regress-hashmap*
- Amusing 2X speedup on js-regress-poly-stricteq
The bytecode now separates the scope chain resolution opcode from the
scope access opcode.
OLD:
NEW:
resolve_scope r0, x(@id0)
get_from_scope r1, r0, x(@id0)
inc r1
put_to_scope r0, x(@id0), r1
Also, we link non-local variable resolution opcodes at CodeBlock link
time instead of time of first opcode execution.
This means that we can represent all possible non-local variable
resolutions using just three opcodes, and any optimizations in these
opcodes naturally apply across-the-board.
- API/JSCTestRunnerUtils.cpp:
(JSC::numberOfDFGCompiles):
- GNUmakefile.list.am:
- JavaScriptCore.gypi:
- JavaScriptCore.order:
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Target.pri: Build!
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode): Updated for removed things.
(JSC::CodeBlock::CodeBlock): Always provide the full scope chain when
creating a CodeBlock, so we can perform non-local variable resolution.
Added code to perform linking for these opcodes. This is where we figure
out which non-local variable resolutions are optimizable, and how.
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::noticeIncomingCall):
(JSC::CodeBlock::optimizeAfterWarmUp):
(JSC::CodeBlock::optimizeAfterLongWarmUp):
(JSC::CodeBlock::optimizeSoon): Updated for removed things.
- bytecode/CodeBlock.h:
(JSC::CodeBlock::needsActivation):
(JSC::GlobalCodeBlock::GlobalCodeBlock):
(JSC::ProgramCodeBlock::ProgramCodeBlock):
(JSC::EvalCodeBlock::EvalCodeBlock):
(JSC::FunctionCodeBlock::FunctionCodeBlock):
- bytecode/EvalCodeCache.h:
(JSC::EvalCodeCache::getSlow): Updated for interface changes.
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFor): Treat global object access as
optimizable even though the global object has a custom property access
callback. This is what we've always done since, otherwise, we can't
optimize globals. (In future, we probably want to figure out a more
targeted policy than "any property access callback means no
optimization".)
- bytecode/GlobalResolveInfo.h: Removed.
- bytecode/Instruction.h:
- bytecode/Opcode.h:
(JSC::padOpcodeName):
- bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeFor): Like GetByIdStatus.
- bytecode/ResolveGlobalStatus.cpp: Removed.
- bytecode/ResolveGlobalStatus.h: Removed.
- bytecode/ResolveOperation.h: Removed.
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::codeBlockFor):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
- bytecode/UnlinkedCodeBlock.h: Don't provide a scope chain to unlinked
code blocks. Giving a scope to an unscoped compilation unit invites
programming errors.
- bytecode/Watchpoint.h:
(JSC::WatchpointSet::addressOfIsInvalidated):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::resolveCallee):
(JSC::BytecodeGenerator::local):
(JSC::BytecodeGenerator::constLocal):
(JSC::BytecodeGenerator::resolveType):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::emitInstanceOf):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitPopScope):
(JSC::BytecodeGenerator::pushFinallyContext):
(JSC::BytecodeGenerator::emitComplexPopScopes):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::emitPushNameScope):
(JSC::BytecodeGenerator::isArgumentNumber):
- bytecompiler/BytecodeGenerator.h:
(JSC::Local::Local):
(JSC::Local::operator bool):
(JSC::Local::get):
(JSC::Local::isReadOnly):
(JSC::BytecodeGenerator::scopeDepth):
(JSC::BytecodeGenerator::shouldOptimizeLocals):
(JSC::BytecodeGenerator::canOptimizeNonLocals): Refactored the bytecode
generator to resolve all variables within local scope, as if there
were no non-local scope. This helps provide a separation of concerns:
unlinked bytecode is always scope-free, and the linking stage links
in the provided scope.
- bytecompiler/NodesCodegen.cpp:
(JSC::ResolveNode::isPure):
(JSC::ResolveNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::PostfixNode::emitResolve):
(JSC::DeleteResolveNode::emitBytecode):
(JSC::TypeOfResolveNode::emitBytecode):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::ConstDeclNode::emitCodeSingle):
(JSC::ForInNode::emitBytecode): A bunch of this codegen is no longer
necessary, since it's redundant with the linking stage.
- dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::ByteCodeParser):
(JSC::DFG::ByteCodeParser::cellConstantWithStructureCheck):
(JSC::DFG::ByteCodeParser::handlePutByOffset):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::parseBlock): Updated for interface changes.
Notably, we can reuse existing DFG nodes -- but the mapping between
bytecode and DFG nodes has changed, and some nodes and corner cases have
been removed.
- dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::scopedVarLoadElimination):
(JSC::DFG::CSEPhase::varInjectionWatchpointElimination):
(JSC::DFG::CSEPhase::globalVarStoreElimination):
(JSC::DFG::CSEPhase::scopedVarStoreElimination):
(JSC::DFG::CSEPhase::getLocalLoadElimination):
(JSC::DFG::CSEPhase::setLocalStoreElimination):
(JSC::DFG::CSEPhase::performNodeCSE): Added CSE for var injection
watchpoints. Even though watchpoints are "free", they're quite common
inside code that's subject to var injection, so I figured we'd save a
little memory.
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGCapabilities.h: Removed detection for old forms.
- dfg/DFGDriver.h:
(JSC::DFG::tryCompile):
(JSC::DFG::tryCompileFunction):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.h:
- dfg/DFGJITCode.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToStructureTransitionWatchpoint):
(JSC::DFG::Node::hasVarNumber):
(JSC::DFG::Node::hasIdentifierNumberForCheck):
(JSC::DFG::Node::hasRegisterPointer):
(JSC::DFG::Node::hasHeapPrediction):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGRepatch.h:
(JSC::DFG::dfgResetGetByID):
(JSC::DFG::dfgResetPutByID):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation): Removed some unneeded things,
and updated for renames.
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile): The two primary changes here are:
(1) Use a watchpoint for var injection instead of looping over the scope
chain and checking. This is more efficient and much easier to model in
code generation.
(2) I've eliminated the notion of an optimized global assignment that
needs to check for whether it should fire a watchpiont. Instead, we
fire pre-emptively at the point of optimization. This removes a bunch
of edge cases, and it seems like a more honest representation of
the fact that our new optimization contradicts our old one.
- dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- heap/DFGCodeBlocks.cpp:
(JSC::DFGCodeBlocks::jettison):
- interpreter/CallFrame.h:
(JSC::ExecState::trueCallFrame): Removed stuff that's unused now, and
fixed the build.
- interpreter/Interpreter.cpp:
(JSC::eval):
(JSC::getBytecodeOffsetForCallFrame):
(JSC::getCallerInfo):
(JSC::Interpreter::throwException): Updated exception scope tracking
to match the rest of our linking strategy: The unlinked bytecode compiles
exception scope as if non-local scope did not exist, and we add in
non-local scope at link time. This means that we can restore the right
scope depth based on a simple number, without checking the contents of
the scope chain.
(JSC::Interpreter::execute): Make sure to establish the full scope chain
before linking eval code. We now require the full scope chain at link
time, in order to link non-local variable resolution opcodes.
- jit/JIT.cpp:
(JSC::JIT::JIT):
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_add):
- jit/JITCode.cpp:
- jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_bitxor):
(JSC::JIT::emitSlow_op_bitor):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emitSlow_op_to_primitive):
(JSC::JIT::emit_op_strcat):
(JSC::JIT::emitSlow_op_create_this):
(JSC::JIT::emitSlow_op_to_this):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitVarInjectionCheck):
(JSC::JIT::emitResolveClosure):
(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emitSlow_op_resolve_scope):
(JSC::JIT::emitLoadWithStructureCheck):
(JSC::JIT::emitGetGlobalProperty):
(JSC::JIT::emitGetGlobalVar):
(JSC::JIT::emitGetClosureVar):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emitPutGlobalProperty):
(JSC::JIT::emitPutGlobalVar):
(JSC::JIT::emitPutClosureVar):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
(JSC::JIT::emit_op_init_global_const):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitVarInjectionCheck):
(JSC::JIT::emitResolveClosure):
(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emitSlow_op_resolve_scope):
(JSC::JIT::emitLoadWithStructureCheck):
(JSC::JIT::emitGetGlobalProperty):
(JSC::JIT::emitGetGlobalVar):
(JSC::JIT::emitGetClosureVar):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emitPutGlobalProperty):
(JSC::JIT::emitPutGlobalVar):
(JSC::JIT::emitPutClosureVar):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
(JSC::JIT::emit_op_init_global_const):
- jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
- jit/JITStubs.h: Re-wrote baseline JIT codegen for our new variable
resolution model.
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LLIntSlowPaths.cpp:
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter.cpp:
(JSC::CLoop::execute):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm: Ditto for LLInt.
- offlineasm/x86.rb: Fixed a pre-existing encoding bug for a syntactic
form that we never used before.
- runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncToLocaleString):
(JSC::arrayProtoFuncJoin):
(JSC::arrayProtoFuncConcat):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncPush):
(JSC::arrayProtoFuncReverse):
(JSC::arrayProtoFuncShift):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSort):
(JSC::arrayProtoFuncSplice):
(JSC::arrayProtoFuncUnShift):
(JSC::arrayProtoFuncFilter):
(JSC::arrayProtoFuncMap):
(JSC::arrayProtoFuncEvery):
(JSC::arrayProtoFuncForEach):
(JSC::arrayProtoFuncSome):
(JSC::arrayProtoFuncReduce):
(JSC::arrayProtoFuncReduceRight):
(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf): Fixed some pre-existing bugs in
'this' value conversion, which I made much more common by removing
special cases in bytecode generation.
These functions need to invoke toThis() because they observe the 'this'
value. Also, toLocaleString() is specified to accept non-array 'this'
values.
(Most other host functions don't need this fix because they perform
strict 'this' checking, which never coerces unexpected types.)
- runtime/CodeCache.cpp:
(JSC::CodeCache::getCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
- runtime/CodeCache.h: Don't supply a scope to the unlinked code cache.
Unlinked code is supposed to be scope-free, so let's have the compiler
help verify that.
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- runtime/Executable.cpp:
(JSC::EvalExecutable::create):
(JSC::EvalExecutable::compileInternal):
(JSC::ProgramExecutable::compileInternal):
(JSC::FunctionExecutable::produceCodeBlockFor):
(JSC::FunctionExecutable::compileForCallInternal):
(JSC::FunctionExecutable::compileForConstructInternal):
- runtime/Executable.h:
(JSC::EvalExecutable::numVariables):
(JSC::EvalExecutable::numberOfFunctionDecls):
- runtime/ExecutionHarness.h:
(JSC::prepareForExecutionImpl):
(JSC::prepareFunctionForExecutionImpl):
(JSC::installOptimizedCode): Fiddled with executable initialization so
that we can always generate a full scope chain before we go to link a
code block. We need this because code block linking now depends on the
scope chain to link non-local variable resolution opcodes.
- runtime/JSActivation.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::createEvalCodeBlock):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::varInjectionWatchpoint):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
- runtime/JSNameScope.h:
- runtime/JSScope.cpp:
(JSC::abstractAccess):
(JSC::JSScope::objectAtScope):
(JSC::JSScope::depth):
(JSC::JSScope::resolve):
(JSC::JSScope::abstractResolve): Updated to match changes explained above.
- runtime/JSScope.h:
(JSC::makeType):
(JSC::needsVarInjectionChecks):
(JSC::ResolveOp::ResolveOp):
(JSC::ResolveModeAndType::ResolveModeAndType):
(JSC::ResolveModeAndType::mode):
(JSC::ResolveModeAndType::type):
(JSC::ResolveModeAndType::operand): Removed the old variable resolution
state machine, since it's unused now. Added logic for performing abstract
variable resolution at link time. This is used by codeblock linking.
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncValueOf):
(JSC::objectProtoFuncHasOwnProperty):
(JSC::objectProtoFuncIsPrototypeOf):
(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):
(JSC::objectProtoFuncLookupGetter):
(JSC::objectProtoFuncLookupSetter):
(JSC::objectProtoFuncPropertyIsEnumerable):
(JSC::objectProtoFuncToLocaleString):
(JSC::objectProtoFuncToString): Fixed some pre-existing bugs in
'this' value conversion, which I made much more common by removing
special cases in bytecode generation.
These functions need to invoke toThis() because they observe the 'this'
value.
- runtime/StringPrototype.cpp:
(JSC::checkObjectCoercible):
(JSC::stringProtoFuncReplace):
(JSC::stringProtoFuncCharAt):
(JSC::stringProtoFuncCharCodeAt):
(JSC::stringProtoFuncConcat):
(JSC::stringProtoFuncIndexOf):
(JSC::stringProtoFuncLastIndexOf):
(JSC::stringProtoFuncMatch):
(JSC::stringProtoFuncSearch):
(JSC::stringProtoFuncSlice):
(JSC::stringProtoFuncSplit):
(JSC::stringProtoFuncSubstr):
(JSC::stringProtoFuncSubstring):
(JSC::stringProtoFuncToLowerCase):
(JSC::stringProtoFuncToUpperCase):
(JSC::stringProtoFuncLocaleCompare):
(JSC::stringProtoFuncBig):
(JSC::stringProtoFuncSmall):
(JSC::stringProtoFuncBlink):
(JSC::stringProtoFuncBold):
(JSC::stringProtoFuncFixed):
(JSC::stringProtoFuncItalics):
(JSC::stringProtoFuncStrike):
(JSC::stringProtoFuncSub):
(JSC::stringProtoFuncSup):
(JSC::stringProtoFuncFontcolor):
(JSC::stringProtoFuncFontsize):
(JSC::stringProtoFuncAnchor):
(JSC::stringProtoFuncLink):
(JSC::trimString): Fixed some pre-existing bugs in
'this' value conversion, which I made much more common by removing
special cases in bytecode generation.
These functions need to invoke toThis() because they observe the 'this'
value.
- runtime/StructureRareData.cpp:
- runtime/VM.cpp:
(JSC::VM::~VM):
- runtime/WriteBarrier.h:
(JSC::WriteBarrierBase::slot): Modified to reduce casting in client code.
LayoutTests:
This patch removed special-case 'this' resolution from bytecode, making
some pre-existing edge cases in 'this' value treatment much more common.
I updated the test results below, and added some tests, to match bug
fixes for these cases.
- fast/js/script-tests/array-functions-non-arrays.js:
- fast/js/array-functions-non-arrays-expected.txt: As specified, it's
not an error to pass a non-array to toLocaleString. Our new result
matches Firefox and Chrome.
- fast/js/array-prototype-properties-expected.txt: Updated for slightly
clearer error message.
- fast/js/basic-strict-mode-expected.txt: Updated for slightly more
standard error message.
- fast/js/object-prototype-toString-expected.txt: Added.
- fast/js/object-prototype-toString.html: Added. This test demonstrates
why we now fail a Sputnik test below, while Firefox and Chrome pass it.
(The test doesn't test what it thinks it tests, and this test verifies
that we get right what it does think it tests.)
- fast/js/string-prototype-function-this-expected.txt: Added.
- fast/js/string-prototype-function-this.html: Added. This test shows
that we CheckObjectCoercible in string prototype functions. (We used
to get this wrong, but Sputnik tests made it seem like we got it right
because they didn't test the dynamic scope case.)
- sputnik/Conformance/11_Expressions/11.1_Primary_Expressions/11.1.1_The_this_Keyword/S11.1.1_A2-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.3_Array_prototype_toLocaleString/S15.4.4.3_A2_T1-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T3-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.11_String.prototype.replace/S15.5.4.11_A1_T3-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A1_T3-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.13_String.prototype.slice/S15.5.4.13_A1_T3-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.14_String.prototype.split/S15.5.4.14_A1_T3-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.15_String.prototype.substring/S15.5.4.15_A1_T3-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.6_String.prototype.concat/S15.5.4.6_A1_T3-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.7_String.prototype.indexOf/S15.5.4.7_A1_T3-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A1_T3-expected.txt:
Updated to show failing results. Firefox and Chrome also fail these
tests, and the ES5 spec seems to mandate failure. Because these tests
resolve a String.prototype function at global scope, the 'this' value
for the call is an environment record. Logically, an environment record
converts to 'undefined' at the call site, and should then fail the
CheckObjectCoercible test.
- 10:15 PM Changeset in webkit [151362] by
-
- 28 edits2 adds in branches/dfgFourthTier/Source/JavaScriptCore
Unreviewed, rolled back in http://trac.webkit.org/changeset/151342.
I filled in the missing return register loads, and tests
seem to pass now.
2013-06-07 Michael Saboff <msaboff@apple.com>
fourthTier: The baseline jit and LLint should use common slow paths
https://bugs.webkit.org/show_bug.cgi?id=116889
- 8:08 PM Changeset in webkit [151361] by
-
- 2 edits in trunk/Tools
[Windows] Unreviewed test correction: Prevent DumpRenderTree crashes
- DumpRenderTree/win/AccessibilityUIElementWin.cpp:
(AccessibilityUIElement::role): Prevent crashes when m_element is null. This
happends in some of the 'accessibility' test cases.
- 2:22 PM Changeset in webkit [151360] by
-
- 8 edits2 adds in trunk
Layout info should never be cleared before delayed scroll information updates.
https://bugs.webkit.org/show_bug.cgi?id=116689.
Reviewed by Darin Adler.
Test: fast/flexbox/clear-overflow-before-scroll-update.html
Make sure that clearLayoutOverflow only gets called after layer()->updateScrollInfoAfterLayout().
Also move clearLayoutOverflow to RenderBlock so we can keep all the delayed scroll update logic in RenderBlock.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::finishDelayUpdateScrollInfo): Call clearLayoutOverflow here.
(WebCore::RenderBlock::layout): Only call clearLayoutOverflow here if scrolling isn't being delayed.
(WebCore::RenderBlock::clearLayoutOverflow): Remove clearLayoutOverflow, move into RenderBlock to keep delayed scrolling logic in the same file.
- rendering/RenderBlock.h:
- rendering/RenderBox.cpp:
- rendering/RenderBox.h:
- rendering/RenderDeprecatedFlexibleBox.cpp: Should call updateScrollInfoAfterLayout, not layer()->updateScrollInfoAfterLayout(), so that it takes delayed scrolling logic into account.
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
- rendering/RenderGrid.cpp: Ditto
(WebCore::RenderGrid::layoutBlock):
- 1:57 PM Changeset in webkit [151359] by
-
- 3 edits in trunk/Source/WebCore
Split the 3 paths of SelectorDataList::execute() into 3 separate functions
https://bugs.webkit.org/show_bug.cgi?id=117378
Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-06-09
Reviewed by Ryosuke Niwa.
Split those to have several small execute() fucntions instead of a giant one.
- dom/SelectorQuery.cpp:
(WebCore::selectorForIdLookup):
(WebCore::isTreeScopeRoot):
(WebCore::SelectorDataList::executeFastPathForIdSelector):
(WebCore::SelectorDataList::executeSingleSelectorData):
(WebCore::SelectorDataList::executeSingleMultiSelectorData):
(WebCore::SelectorDataList::execute):
- dom/SelectorQuery.h:
- 1:56 PM Changeset in webkit [151358] by
-
- 2 edits in branches/dfgFourthTier/Tools
Unreviewed, fix minor goof in profiling output layout. We weren't accounting
for the "/" that is printed between engine counts.
- Scripts/display-profiler-output:
- 1:04 PM Changeset in webkit [151357] by
-
- 4 edits in branches/dfgFourthTier/Source
Source/WebCore: Unreviewed, fix build. Use at() instead of operator[] because of ambiguity on some compilers.
- page/CaptionUserPreferencesMac.mm:
(WebCore::languageIdentifier):
Source/WTF: Unreviewed, fix build. On some compilers the automatic coercion from WTF::String to NSString*
causes operator[] to appear ambiguous. One way around this is to make WTF::String behave like
most of our other classes: at(unsigned) is always a valid synonym for operator[](unsigned).
- wtf/text/WTFString.h:
(WTF::String::at):
(WTF::String::operator[]):
- 12:52 PM Changeset in webkit [151356] by
-
- 3 edits in trunk/Source/WebCore
Scrolling with platformWidget and delegateScrolling is incorrectly clamped
https://bugs.webkit.org/show_bug.cgi?id=117369
<rdar://problem/13985064>
Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-06-09
Reviewed by Darin Adler.
The patch http://trac.webkit.org/changeset/142526 clamps the input position
in the ScrollView scroll range. This was done for the path to the ScrollingCoordinator.
The problem with that change is ScrollView::setScrollPosition() can delegate the scrolling
to either a platformWidget, or through delegateScrolling. After r142526, the position is clamped,
and we do not let those external scrolling mechanims handle the out-of-bound scrolling.
This patch fixes the issue by moving the threaded scrolling call to ScrollView,
after the delegate handling code.
- page/FrameView.cpp:
(WebCore::FrameView::setScrollPosition):
(WebCore::FrameView::requestScrollPositionUpdate):
- 12:19 PM Changeset in webkit [151355] by
-
- 7 edits6 adds in branches/dfgFourthTier
fourthTier: DFG GetById patching shouldn't distinguish between self lists and proto lists
https://bugs.webkit.org/show_bug.cgi?id=117377
Source/JavaScriptCore:
Reviewed by Geoffrey Garen.
Previously if you did self accesses and then wanted to do a prototype access, you'd
have a bad time: the prototype accesses would be forced to take slow path because
the self list wouldn't allow prototype accesses. Likewise if you did prototype (or
chain) accesses and then wanted to do a self access, similar stupidity would ensue.
This fixes the stupidity.
I believe that this was introduced way back in the days of the old interpreter,
where distinguishing between self lists, proto lists, and chain lists was meaningful
for interpreter performance: it meant fewer branches to evaluate those lists. Then
it got mostly carried over to the old JIT since the old JIT was just initially an
optimized version of the old interpreter, and then later it got carried over to the
DFG because I didn't know any better at the time. Now I do know better and I'm
fixing it.
- bytecode/PolymorphicAccessStructureList.h:
(JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::initGetByIdSelfList):
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGRepatch.cpp:
(JSC::DFG::tryCacheGetByID):
(JSC::DFG::getPolymorphicStructureList):
(DFG):
(JSC::DFG::patchJumpToGetByIdStub):
(JSC::DFG::tryBuildGetByIDList):
(JSC::DFG::dfgBuildGetByIDList):
LayoutTests:
Reviewed by Geoffrey Garen.
Add tests that show why this is important. These tests speed up by more than 3x.
- fast/js/regress/get-by-id-proto-or-self-expected.txt: Added.
- fast/js/regress/get-by-id-proto-or-self.html: Added.
- fast/js/regress/get-by-id-self-or-proto-expected.txt: Added.
- fast/js/regress/get-by-id-self-or-proto.html: Added.
- fast/js/regress/script-tests/get-by-id-proto-or-self.js: Added.
(foo):
(bar):
(Foo):
- fast/js/regress/script-tests/get-by-id-self-or-proto.js: Added.
(foo):
(bar):
(Foo):
- 12:04 PM Changeset in webkit [151354] by
-
- 14 edits in branches/dfgFourthTier/Source/JavaScriptCore
Fix broken no-DFG build.
https://bugs.webkit.org/show_bug.cgi?id=117381.
Reviewed by Geoffrey Garen.
- bytecode/CodeBlock.cpp:
- bytecode/CodeBlock.h:
(CodeBlock):
(ProgramCodeBlock):
(EvalCodeBlock):
(FunctionCodeBlock):
- dfg/DFGCapabilities.h:
- dfg/DFGDriver.h:
(JSC::DFG::tryCompile):
(JSC::DFG::tryCompileFunction):
- dfg/DFGJITCode.cpp:
- dfg/DFGRepatch.h:
(JSC::DFG::dfgResetGetByID):
(JSC::DFG::dfgResetPutByID):
- heap/DFGCodeBlocks.cpp:
(JSC::DFGCodeBlocks::jettison):
- interpreter/CallFrame.h:
(ExecState):
(JSC::ExecState::trueCallFrame):
- interpreter/Interpreter.cpp:
(JSC::getCallerInfo):
- runtime/Executable.cpp:
- runtime/Executable.h:
(EvalExecutable):
(ProgramExecutable):
(FunctionExecutable):
- runtime/ExecutionHarness.h:
- runtime/VM.cpp:
(JSC::VM::~VM):