Timeline
Jun 4, 2015:
- 11:44 PM Changeset in webkit [185241] by
-
- 2 edits in trunk/Source/WebKit2
[iOS] Uploading an animated GIF from the photo library uploads a JPEG
<https://bugs.webkit.org/show_bug.cgi?id=145539>
<rdar://problem/19760877
Selecting a photo from the photo library using UIImagePickerController
results in an NSDictionary with image info and a UIImage with the
image. It's not possible to get the original image data from the
UIImage, only a PNG or JPEG representation, so we were getting a JPEG
representation and uploading that to the server. For animated GIFs,
this meant a JPEG representation of the first frame.
To fix this, we'll get the asset URL, if available, and use the Photos
API to query for the original image data.
Reviewed by Andy Estes and Joe Pecoraro.
- UIProcess/ios/forms/WKFileUploadPanel.mm:
Soft link the Photos framework.
(-[WKFileUploadPanel _uploadItemForImageData:originalImage:imageName:successBlock:failureBlock:]):
Save the image's data to a temporary location, and create a
_WKImageFileUploadItem. Code moved from
-_uploadItemFromMediaInfo:successBlock:failureBlock:.
(-[WKFileUploadPanel _uploadItemForJPEGRepresentationOfImage:successBlock:failureBlock:]):
Get a JPEG representation of the UIImage, and create an upload item
from that data.
(uploadImageNameFromUTI):
Return a filename for the uploaded image based on the UTI.
(-[WKFileUploadPanel _uploadItemForImage:withAssetURL:successBlock:failureBlock:]):
Fetch the photo asset with the given asset URL. Create an image manager
object, and request the image data for the photo asset. Create an
upload item from that data. If we fail, fall back to a JPEG
representation.
(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):
Return early if the media item is not an image type. If it is, and we
have an asset URL, try to create an upload item for the native image.
If we don't have an asset URL, use a JPEG representation of the image.
- 10:20 PM Changeset in webkit [185240] by
-
- 16 edits2 adds in trunk/Source/JavaScriptCore
[JSC] Always track out-of-bounds array access explicitly instead of relying on the slow case
https://bugs.webkit.org/show_bug.cgi?id=145673
Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04
Reviewed by Geoffrey Garen.
Previously, we were deciding to use out-of-bounds speculation based on two informations:
-Explicitly detected out-of-bounds accesses tracked on ArrayProfile.
-The number of time we took the slow cases in the baseline JIT.
The heuristic based on slow cases was a little too fragile.
In some cases, we were running into that limit just because the indexing type changes between
two values (typically Int32Array and DoubleArray). Sometimes we were just unlucky on what
we used for the inline cache.
In Kraken, this was hurting us on "audio-beat-detection" and "audio-fft". The array types we see
change between Int32 and Double. We run into the slow path a bit but never hit
out-of-bounds.
By the time we compile in DFG, we have stable Double Arrays but we speculate out-of-bounds based
on the number of slow cases we took. Because of that, we start boxing the double on GetByVal,
using DoubleRep, etc. adding a ton of overhead over otherwise very simple operations.
WebXPRT was also suffering from this problem but the other way arround: we were missing
the out-of-bounds accesses due to changes in indexing types, we were below the threshold
of slow-path access, thus we predicted in-bounds accesses for code that was doing plenty
of out-of-bands.
This patch fixes the problem by tracking the out-of-bounds access explicitly any time we go
into the slow path in baseline JIT. Since we no longer miss any out-of-bounds, we can remove
the slow-path heuristic.
There is new additional special case in the C code regarding out-of-bounds: Arguments access.
Mispredicting out-of-bounds accesses on arguments is a disaster for performance, so those are
tracked in the way DFG expect it.
There are a few important cases that are still not covered optimally:
-PutByVal on Arguments.
-Get/Put ByVal on TypedArray.
Those are simply not used by DFG in any way. TypedArrays should probably be looked at in the future.
- bytecode/ArrayProfile.cpp:
(JSC::ArrayProfile::computeUpdatedPrediction):
The inline-cache repatch cases now update the ArrayProfile information. This has no value in baseline
JIT but it helps avoiding one recompile in DFG for the missing ArrayProfile information.
- bytecode/ArrayProfile.h:
(JSC::ArrayProfile::setOutOfBounds):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::getArrayMode):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::getArrayModeConsideringSlowPath): Deleted.
- jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::callOperation):
- jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_has_indexed_property):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emitSlow_op_has_indexed_property):
- jit/JITOperations.cpp:
(JSC::canUseFastArgumentAccess):
This is not my favorite part of this patch.
I tried having JSObject::canGetIndexQuickly() handle arguments which would put everything
on the generic path. Unfortunately, that code is very performance sensitive and some benchmarks were
impacted by over 10%
I left JSObject::canGetIndexQuickly() alone, and I added the canUseFastArgumentAccess() mirroring
how DFG uses out-of-bounds for Arguments.
(JSC::getByVal):
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
- runtime/JSPromiseFunctions.cpp:
- tests/stress/get-by-val-out-of-bounds-basics.js: Added.
(opaqueGetByValOnInt32ArrayEarlyOutOfBounds):
(testInt32ArrayEarlyOutOfBounds):
(testIndexingTypeChangesOnInt32Array):
(opaqueGetByValOnStringArrayHotOutOfBounds):
(testStringArrayHotOutOfBounds):
(testIndexingTypeChangesOnStringArray):
(opaqueGetByValOnStringAndInt32ArrayHotOutOfBounds):
(testStringAndInt32ArrayHotOutOfBounds):
(opaqueGetByValOnDoubleArrayHotOutOfBounds):
- tests/stress/put-by-val-out-of-bounds-basics.js: Added.
(opaquePutByValOnInt32ArrayEarlyOutOfBounds):
(testInt32ArrayEarlyOutOfBounds):
(opaquePutByValOnStringArrayHotOutOfBounds):
(testStringArrayHotOutOfBounds):
- 9:59 PM Changeset in webkit [185239] by
-
- 13 edits3 adds in trunk
Simplify unboxing of double JSValues known to be not NaN and not Int32
https://bugs.webkit.org/show_bug.cgi?id=145618
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
In many cases we know that we most likely loaded a non-NaN double value from the heap.
Prior to this patch, we would do two branches before unboxing the double. This patch
reduces this to one branch in the common case. Before:
if (is int32)
unbox int32 and convert to double
else if (is number)
unbox double
else
exit
After:
tmp = unbox double
if (tmp == tmp)
done
else if (is int32)
unbox int32 and convert to double
else
exit
We only use the new style if we have profiling that tells us that we are unlikely to see
either Int32 or NaN - since we will now exit on NaN and int32 requires an extra branch.
This is a 8% speed-up on Octane/box2d. On one microbenchmark this is a 25% speed-up.
Rolling this back in after I made DFG::SpeculativeJIT call a new version of unboxDouble()
that doesn't assert that the JSValue is a double, since we are intentionally using it
before doing the "is a double" test. This wasn't a problem on 32-bit since unboxDouble()
does no such assertion on 32-bit.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixEdgeRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
- dfg/DFGNode.h:
(JSC::DFG::Node::shouldSpeculateDouble):
(JSC::DFG::Node::shouldSpeculateDoubleReal):
(JSC::DFG::Node::shouldSpeculateNumber):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::speculateDoubleReal): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGUseKind.cpp:
(WTF::printInternal):
- dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::boxDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateNumber):
(JSC::FTL::LowerDFGToLLVM::speculateRealNumber):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepReal):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateDoubleReal): Deleted.
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfInt32):
(JSC::AssemblyHelpers::branchIfNotInt32):
(JSC::AssemblyHelpers::branchIfNumber):
LayoutTests:
- js/regress/double-real-use-expected.txt: Added.
- js/regress/double-real-use.html: Added.
- js/regress/script-tests/double-real-use.js: Added.
(foo):
- 9:46 PM Changeset in webkit [185238] by
-
- 51 edits in trunk/Source/WebCore
Purge PassRefPtr create() factory functions in WebCore/css
https://bugs.webkit.org/show_bug.cgi?id=144905
Patch by Joonghun Park <jh718.park@samsung.com> on 2015-06-04
Reviewed by Darin Adler.
Return Ref instead of PassRefPtr in create() factory functions in css,
because the factory can't return null.
No new tests, no new behaviours.
- css/BasicShapeFunctions.cpp:
(WebCore::valueForCenterCoordinate):
(WebCore::basicShapeRadiusToCSSValue):
(WebCore::valueForBasicShape):
- css/BasicShapeFunctions.h:
- css/CSSBasicShapes.h:
- css/CSSCalculationValue.cpp:
(WebCore::createCSS):
(WebCore::CSSCalcValue::create):
- css/CSSCalculationValue.h:
- css/CSSCharsetRule.h:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForNinePieceImageSlice):
(WebCore::valueForNinePieceImageQuad):
(WebCore::zoomAdjustedPixelValue):
(WebCore::zoomAdjustedNumberValue):
(WebCore::zoomAdjustedPixelValueForLength):
(WebCore::valueForReflection):
(WebCore::createPositionListForLayer):
(WebCore::positionOffsetValue):
(WebCore::percentageOrZoomAdjustedValue):
(WebCore::autoOrZoomAdjustedValue):
(WebCore::getBorderRadiusCornerValues):
(WebCore::getBorderRadiusCornerValue):
(WebCore::getBorderRadiusShorthandValue):
(WebCore::matrixTransformValue):
(WebCore::computedTransform):
(WebCore::adjustLengthForZoom):
(WebCore::ComputedStyleExtractor::valueForShadow):
(WebCore::ComputedStyleExtractor::valueForFilter):
(WebCore::specifiedValueForGridTrackBreadth):
(WebCore::specifiedValueForGridTrackSize):
(WebCore::valueForGridTrackList):
(WebCore::scrollSnapDestination):
(WebCore::scrollSnapPoints):
(WebCore::scrollSnapCoordinates):
(WebCore::createAnimationTriggerValue):
(WebCore::getAnimationTriggerValue):
(WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword):
(WebCore::fillSizeToCSSValue):
(WebCore::lineHeightFromStyle):
(WebCore::fontSizeFromStyle):
(WebCore::zoomAdjustedPaddingOrMarginPixelValue):
(WebCore::shapePropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):
- css/CSSComputedStyleDeclaration.h:
- css/CSSFontFace.h:
(WebCore::CSSFontFace::create):
- css/CSSFontFaceLoadEvent.h:
- css/CSSFontFaceRule.h:
- css/CSSGrammar.y.in:
- css/CSSGridLineNamesValue.cpp:
(WebCore::CSSGridLineNamesValue::cloneForCSSOM):
- css/CSSGridLineNamesValue.h:
(WebCore::CSSGridLineNamesValue::create):
- css/CSSImportRule.h:
- css/CSSKeyframeRule.h:
(WebCore::StyleKeyframe::create):
- css/CSSKeyframesRule.h:
- css/CSSMediaRule.h:
- css/CSSPageRule.h:
- css/CSSParser.cpp:
(WebCore::CSSParser::parseGridLineNames):
(WebCore::CSSParser::parseDashboardRegions):
(WebCore::CSSParser::parseClipShape):
(WebCore::CSSParser::parseBasicShape):
(WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
(WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
- css/CSSParser.h:
(WebCore::CSSParser::ValueWithCalculation::calculation):
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
- css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::create):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
- css/CSSPropertySourceData.h:
(WebCore::CSSStyleSourceData::create):
(WebCore::CSSRuleSourceData::create):
(WebCore::CSSRuleSourceData::createUnknown):
- css/CSSRuleList.h:
- css/CSSSegmentedFontFace.h:
(WebCore::CSSSegmentedFontFace::create):
- css/CSSSelector.cpp:
(WebCore::CSSSelector::createRareData):
- css/CSSSelector.h:
(WebCore::CSSSelector::RareData::create):
- css/CSSStyleRule.h:
- css/CSSSupportsRule.h:
- css/CSSValuePool.h:
(WebCore::CSSValuePool::createValue):
- css/FontLoader.cpp:
(WebCore::LoadFontCallback::create):
- css/LengthRepeat.h:
(WebCore::LengthRepeat::create):
(WebCore::LengthRepeat::cloneForCSSOM):
- css/MediaList.h:
(WebCore::MediaQuerySet::create):
(WebCore::MediaQuerySet::createAllowingDescriptionSyntax):
(WebCore::MediaList::create):
- css/MediaQueryList.cpp:
(WebCore::MediaQueryList::create):
- css/MediaQueryList.h:
- css/MediaQueryMatcher.h:
(WebCore::MediaQueryMatcher::create):
- css/Pair.h:
(WebCore::Pair::create):
- css/Rect.h:
(WebCore::Rect::create):
(WebCore::Rect::cloneForCSSOM):
(WebCore::Quad::create):
(WebCore::Quad::cloneForCSSOM):
- css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::paintOrder):
(WebCore::ComputedStyleExtractor::svgPropertyValue):
- css/StyleMedia.h:
(WebCore::StyleMedia::create):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::keyframeStylesForAnimation):
- css/StyleSheetList.h:
(WebCore::StyleSheetList::create):
- css/ViewportStyleResolver.h:
(WebCore::ViewportStyleResolver::create):
- css/WebKitCSSMatrix.h:
- css/WebKitCSSRegionRule.h:
- css/WebKitCSSViewportRule.h:
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilter):
- rendering/style/RenderStyle.h:
(WebCore::adjustFloatForAbsoluteZoom):
- rendering/style/StyleInheritedData.h:
- 9:33 PM Changeset in webkit [185237] by
-
- 8 edits in trunk
Web Inspector: Class constructor appearing as Object Tree property does not include parameters
https://bugs.webkit.org/show_bug.cgi?id=145661
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-04
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
- inspector/InjectedScriptSource.js:
(InjectedScript.prototype._classPreview):
(InjectedScript.RemoteObject.prototype._appendPropertyPreviews):
The string we will return for previews of class constructor functions.
(InjectedScript.RemoteObject):
(InjectedScript.RemoteObject.prototype._describe):
No longer return the class name as the description string.
Instead return the class name for the RemoteObject.className.
Source/WebInspectorUI:
- UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.get functionDescription):
Include the className as only use it for "class" types to override
the normal description string. Stash the actual function description
in a property we can access later.
- UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
Even if this property is a "class" we want to specifically parse it's
function description string. So use functionDescription.
LayoutTests:
- inspector/model/remote-object-expected.txt:
- inspector/model/remote-object.html:
Update expected results and test we get expected values for class constructors.
- 9:31 PM Changeset in webkit [185236] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Close and open tabs on mouseup, not mousedown
https://bugs.webkit.org/show_bug.cgi?id=145656
Match Safari's behaviour.
Reviewed by Timothy Hatcher.
- UserInterface/Views/TabBar.js:
(WebInspector.TabBar):
(WebInspector.TabBar.prototype.set newTabItem):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleClick): Added.
(WebInspector.TabBar.prototype._handleMouseUp):
(WebInspector.TabBar.prototype._handleNewTabClick): Added.
(WebInspector.TabBar.prototype._handleMouseMoved):
- 8:37 PM Changeset in webkit [185235] by
-
- 2 edits in trunk/Source/WebCore
The last 2 merged DFAs are not minimized by DFACombiner
Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04
- contentextensions/DFACombiner.cpp:
(WebCore::ContentExtensions::DFACombiner::combineDFAs):
I introduced a bug when I made minimization conditional: the last merge
does not minimize if we do not reach the minimum size.
- 6:35 PM Changeset in webkit [185234] by
-
- 4 edits in trunk
Latching algorithm in findEnclosingOverflowScroll is broken
https://bugs.webkit.org/show_bug.cgi?id=145642
<rdar://problem/21242308>
Reviewed by Simon Fraser.
Source/WebCore:
Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html
- page/mac/EventHandlerMac.mm:
(WebCore::scrollableAreaForBox): Added helper function.
(WebCore::findEnclosingScrollableContainer): Renamed from findEnclosingOverflowScroll.
Only identify something as our scroll element if it can be scrolled in either
axis of the gesture's motion.
(WebCore::scrollableAreaForContainerNode): Use new helper function.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use new function
name, and pass horizontal and vertical deltas.
(WebCore::findEnclosingOverflowScroll): Deleted.
LayoutTests:
Revise the new latching test to remove the image "max-width: 100%" style, which was
preventing this example from having a horizontal scrollable region at the top of the
file.
It still correctly tests the subpixel bug from Bug 145637.
- platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Remove width
adjustment on image.
- 6:32 PM Changeset in webkit [185233] by
-
- 4 edits in trunk/Source
REGRESSION(r185091): Crash happens on indexdb tests
https://bugs.webkit.org/show_bug.cgi?id=145549
Reviewed by Darin Adler.
Source/WebCore:
- Modules/indexeddb/IDBDatabaseError.h:
(WebCore::IDBDatabaseError::create): Revert Ref usage of IDBDatabaseError::create().
Source/WebKit2:
- WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: Remove leakRef() use.
(WebKit::WebIDBServerConnection::didCreateObjectStore):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):
(WebKit::WebIDBServerConnection::didPutRecord):
(WebKit::WebIDBServerConnection::didGetRecord):
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::didAdvanceCursor):
(WebKit::WebIDBServerConnection::didIterateCursor):
(WebKit::WebIDBServerConnection::didCount):
(WebKit::WebIDBServerConnection::didDeleteRange):
(WebKit::WebIDBServerConnection::didClearObjectStore):
(WebKit::WebIDBServerConnection::didDeleteObjectStore):
(WebKit::WebIDBServerConnection::didChangeDatabaseVersion):
- 6:23 PM Changeset in webkit [185232] by
-
- 3 edits in trunk/Source/WebCore
Crash in EventDispatcher::dispatchEvent entering a location on Google Maps
https://bugs.webkit.org/show_bug.cgi?id=145677
rdar://problem/20698280
Reviewed by Dean Jackson.
If a transition is running on a pseudo-element, and the host element is removed
from the DOM just as the transition ends, and there is a transition event listener,
then we'd crash with a null dereference in event dispatch code.
AnimationController tries to clean up running animations when renderers are destroyed,
but omitted to remove the element from two vectors that store element references.
Elements are only added to these vectors briefly on animation end, before firing
events, but failure to remove the vector entries could result in attempting
to fire an event on a pseudo-element with no host element.
Also convert EventDispatcher code to be more robust to potentially null event
targets, since it's not clear that eventTargetRespectingTargetRules() can always
manage to return a non-null node.
Hard to make a test because this is timing sensitive.
- dom/EventDispatcher.cpp:
(WebCore::eventTargetRespectingTargetRules):
(WebCore::EventDispatcher::dispatchScopedEvent):
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventPath::EventPath):
- page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::clear):
- 6:07 PM Changeset in webkit [185231] by
-
- 30 edits in trunk/Source/WebCore
Replace 0 with nullptr in WebCore/Page.
https://bugs.webkit.org/show_bug.cgi?id=145631
Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-04
Reviewed by Darin Adler.
No new tests, no behavior changes.
- page/AutoscrollController.cpp:
(WebCore::AutoscrollController::AutoscrollController):
(WebCore::AutoscrollController::stopAutoscrollTimer):
- page/ContentSecurityPolicy.cpp:
(WebCore::CSPSourceList::parseSource):
- page/ContentSecurityPolicy.h:
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::clearContextMenu):
- page/DOMSelection.cpp:
(WebCore::DOMSelection::clearTreeScope):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::resetDOMWindowProperties):
(WebCore::DOMWindow::localStorage):
(WebCore::DOMWindow::focus):
- page/DOMWindow.h:
- page/DOMWindowExtension.cpp:
(WebCore::DOMWindowExtension::reconnectFrameFromPageCache):
(WebCore::DOMWindowExtension::willDestroyGlobalObjectInCachedFrame):
- page/DOMWindowProperty.cpp:
(WebCore::DOMWindowProperty::DOMWindowProperty):
(WebCore::DOMWindowProperty::~DOMWindowProperty):
(WebCore::DOMWindowProperty::disconnectFrameForPageCache):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame):
- page/DragController.cpp:
(WebCore::DragController::dragEnded):
(WebCore::DragController::performDragOperation):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::startDrag):
- page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::resizeLayerDestroyed):
(WebCore::EventHandler::freeDataTransfer):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::handleDrag):
- page/EventHandler.h:
- page/FocusController.cpp:
(WebCore::FocusController::advanceFocusInDocumentOrder):
- page/Frame.cpp:
(WebCore::Frame::~Frame):
(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::Frame::willDetachPage):
(WebCore::Frame::createView):
- page/Frame.h:
(WebCore::Frame::detachFromPage):
- page/FrameDestructionObserver.cpp:
(WebCore::FrameDestructionObserver::FrameDestructionObserver):
(WebCore::FrameDestructionObserver::~FrameDestructionObserver):
(WebCore::FrameDestructionObserver::frameDestroyed):
- page/FrameTree.cpp:
(WebCore::FrameTree::~FrameTree):
(WebCore::FrameTree::removeChild):
- page/FrameTree.h:
(WebCore::FrameTree::FrameTree):
(WebCore::FrameTree::detachFromParent):
- page/History.cpp:
(WebCore::History::History):
- page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::findStringMatchingRanges):
- page/PageGroup.cpp:
- page/Performance.cpp:
(WebCore::Performance::Performance):
- page/PointerLockController.cpp:
(WebCore::PointerLockController::didLosePointerLock):
(WebCore::PointerLockController::clearElement):
- page/SecurityOrigin.h:
(WebCore::SecurityOrigin::canAccessDatabase):
- page/Settings.cpp:
(WebCore::Settings::Settings):
- page/SpatialNavigation.cpp:
(WebCore::FocusCandidate::FocusCandidate):
- page/SpatialNavigation.h:
(WebCore::FocusCandidate::FocusCandidate):
- page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::ScrollingTreeNode):
- page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):
- 6:01 PM Changeset in webkit [185230] by
-
- 9 edits7 adds in trunk
Combine tiny DFAs into slightly larger ones
https://bugs.webkit.org/show_bug.cgi?id=145572
Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04
Reviewed by Alex Christensen.
Source/WebCore:
This patch changes the ContentExtensions compiler to combine tiny DFA
until they reach a minimum size.
The main tool introduced here is DFAMerger. It combines 2 DFAs into
a single DFA that represent the union of the two machines.
That is done by a simple subset construction on the "name" of the nodes
in each DFAs.
Since we only merge 2 machines, and they are both deterministic, we know that
we can only be in one state of each machine, or a state in one machine without
equivalent in the other machine.
We exploit that to identify the mapping between nodes. To identify a node in
the new machine from nodes in the original machines, we just concatenate the node
IDs into a single 64 bits number. If there is no node in one of the machine, we
use a special tag.
The current algorithm does not have any subgraph pruning, machines grow very very
quickly. Because of that, we only merge very small DFAs at the moment.
Test: http/tests/contentextensions/filters-with-quantifiers-combined.html
- WebCore.xcodeproj/project.pbxproj:
- contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
- contentextensions/ContentExtensionsDebugging.h:
- contentextensions/DFA.cpp:
(WebCore::ContentExtensions::DFA::graphSize):
(WebCore::ContentExtensions::DFA::debugPrintDot):
- contentextensions/DFA.h:
- contentextensions/DFACombiner.cpp: Added.
(WebCore::ContentExtensions::DFAMerger::DFAMerger):
(WebCore::ContentExtensions::DFAMerger::merge):
(WebCore::ContentExtensions::DFAMerger::signatureForIndices):
(WebCore::ContentExtensions::DFAMerger::extractIndexA):
(WebCore::ContentExtensions::DFAMerger::extractIndexB):
(WebCore::ContentExtensions::DFAMerger::getOrCreateCombinedNode):
(WebCore::ContentExtensions::DFAMerger::setHalfSignature):
(WebCore::ContentExtensions::DFAMerger::populateTransitions):
(WebCore::ContentExtensions::DFAMerger::populateFromFallbackTransitions):
(WebCore::ContentExtensions::DFAMerger::createTransitions):
(WebCore::ContentExtensions::DFAMerger::createFallbackTransitionIfNeeded):
(WebCore::ContentExtensions::DFACombiner::combineDFAs):
- contentextensions/DFACombiner.h: Copied from Source/WebCore/contentextensions/DFA.h.
(WebCore::ContentExtensions::DFACombiner::addDFA):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/DFACombiner.cpp: Added.
(TestWebKitAPI::DFACombinerTest::SetUp):
(TestWebKitAPI::combine):
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/Tests/WebCore/DFAHelpers.h: Copied from Source/WebCore/contentextensions/DFA.h.
(TestWebKitAPI::countLiveNodes):
(TestWebKitAPI::createNFAs):
(TestWebKitAPI::buildDFAFromPatterns):
- TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:
(TestWebKitAPI::countLiveNodes): Deleted.
(TestWebKitAPI::createNFAs): Deleted.
(TestWebKitAPI::buildDFAFromPatterns): Deleted.
LayoutTests:
- http/tests/contentextensions/filters-with-quantifiers-combined-expected.txt: Added.
- http/tests/contentextensions/filters-with-quantifiers-combined.html: Added.
- http/tests/contentextensions/filters-with-quantifiers-combined.html.json: Added.
- 5:31 PM Changeset in webkit [185229] by
-
- 4 edits in trunk/Source/WebKit2
Web Inspector: REGRESSION: dragged node in the DOM Tree isn't positioned correctly
https://bugs.webkit.org/show_bug.cgi?id=143912
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-04
Reviewed by Simon Fraser.
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setDragImage):
When using the WKWebView, convert the position from the WKView's
coordinate system to the WKWebView's.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView draggingUpdated:]):
- UIProcess/API/mac/WKView.mm:
(-[WKView _dragImageForView:withImage:at:linkDrag:]):
Whitespace cleanup in original drag code.
- 5:12 PM Changeset in webkit [185228] by
-
- 2 edits in trunk/LayoutTests
Skip failed layout tests following <http://trac.webkit.org/changeset/185207>
and <https://trac.webkit.org/changeset/185220>
(https://bugs.webkit.org/show_bug.cgi?id=145620)
Unreviewed.
- 5:03 PM Changeset in webkit [185227] by
-
- 2 edits in trunk/Source/WebKit2
Fixed the build.
- UIProcess/API/Cocoa/WKErrorPrivate.h:
- 4:21 PM Changeset in webkit [185226] by
-
- 1 edit5 deletes in trunk/LayoutTests
Unreviewed, rolling out r185211.
https://bugs.webkit.org/show_bug.cgi?id=145670
The test depends on a rolled out patch (Requested by ap on
#webkit).
Reverted changeset:
"Add WK1 versions of tests from Bugs 145637 and 145642"
https://bugs.webkit.org/show_bug.cgi?id=145649
http://trac.webkit.org/changeset/185211
- 4:12 PM Changeset in webkit [185225] by
-
- 2 edits in trunk/Source/WebKit2
Renamed the WebKit2SandboxProfiles target to Sandbox Profiles.
Rubber-stamped by Anders Carlsson.
- WebKit2.xcodeproj/project.pbxproj: Renamed the target. For now, added an aggregate
target with the old name that depends on the renamed target. We can remove it once the build
system doesn’t reference to old name.
- 3:53 PM Changeset in webkit [185224] by
-
- 2 edits in trunk/Tools
WebKitTestRunner leaks strings in generateWhitelist()
https://bugs.webkit.org/show_bug.cgi?id=145665
Reviewed by Myles C. Maxfield.
- WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::generateWhitelist):
- 3:37 PM Changeset in webkit [185223] by
-
- 13 edits2 moves in trunk/Source/WebCore
Rename MediaSessionManager to PlatformMediaSessionManager for consistency with PlatformMediaSession.
https://bugs.webkit.org/show_bug.cgi?id=145648
Patch by Matt Rajca <mrajca@apple.com> on 2015-06-04
Reviewed by Eric Carlson.
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.vcxproj/WebCore.vcxproj.filters:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLMediaElement.cpp:
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::effectivePreloadForElement):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::~PlatformMediaSession):
(WebCore::PlatformMediaSession::clientWillBeginPlayback):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired):
(WebCore::PlatformMediaSession::updateClientDataBuffering):
- platform/audio/PlatformMediaSessionManager.cpp: Renamed from Source/WebCore/platform/audio/MediaSessionManager.cpp.
(WebCore::PlatformMediaSessionManager::sharedManager):
(WebCore::PlatformMediaSessionManager::PlatformMediaSessionManager):
(WebCore::PlatformMediaSessionManager::resetRestrictions):
(WebCore::PlatformMediaSessionManager::has):
(WebCore::PlatformMediaSessionManager::activeAudioSessionRequired):
(WebCore::PlatformMediaSessionManager::count):
(WebCore::PlatformMediaSessionManager::beginInterruption):
(WebCore::PlatformMediaSessionManager::endInterruption):
(WebCore::PlatformMediaSessionManager::addSession):
(WebCore::PlatformMediaSessionManager::removeSession):
(WebCore::PlatformMediaSessionManager::addRestriction):
(WebCore::PlatformMediaSessionManager::removeRestriction):
(WebCore::PlatformMediaSessionManager::restrictions):
(WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
(WebCore::PlatformMediaSessionManager::sessionWillEndPlayback):
(WebCore::PlatformMediaSessionManager::setCurrentSession):
(WebCore::PlatformMediaSessionManager::currentSession):
(WebCore::PlatformMediaSessionManager::sessionRestrictsInlineVideoPlayback):
(WebCore::PlatformMediaSessionManager::sessionCanLoadMedia):
(WebCore::PlatformMediaSessionManager::applicationWillEnterBackground):
(WebCore::PlatformMediaSessionManager::applicationWillEnterForeground):
(WebCore::PlatformMediaSessionManager::updateSessionState):
(WebCore::PlatformMediaSessionManager::didReceiveRemoteControlCommand):
(WebCore::PlatformMediaSessionManager::systemWillSleep):
(WebCore::PlatformMediaSessionManager::systemDidWake):
(WebCore::PlatformMediaSessionManager::audioOutputDeviceChanged):
- platform/audio/PlatformMediaSessionManager.h: Renamed from Source/WebCore/platform/audio/MediaSessionManager.h.
(WebCore::PlatformMediaSessionManager::~PlatformMediaSessionManager):
(WebCore::PlatformMediaSessionManager::configureWireLessTargetMonitoring):
(WebCore::PlatformMediaSessionManager::hasWirelessTargetsAvailable):
(WebCore::PlatformMediaSessionManager::sessions):
- platform/audio/mac/AudioDestinationMac.cpp:
- platform/audio/mac/MediaSessionManagerMac.cpp:
(PlatformMediaSessionManager::updateSessionState):
(MediaSessionManager::updateSessionState): Deleted.
- testing/Internals.cpp:
- 3:20 PM Changeset in webkit [185222] by
-
- 2 edits in tags/Safari-601.1.34.1/Source/WebCore
Roll out r185207.
- 3:11 PM Changeset in webkit [185221] by
-
- 13 edits3 deletes in trunk
Unreviewed, rolling out r185216.
https://bugs.webkit.org/show_bug.cgi?id=145666
it caused a bunch of debug crashes (Requested by pizlo on
#webkit).
Reverted changeset:
"Simplify unboxing of double JSValues known to be not NaN and
not Int32"
https://bugs.webkit.org/show_bug.cgi?id=145618
http://trac.webkit.org/changeset/185216
- 3:08 PM Changeset in webkit [185220] by
-
- 2 edits in trunk/Source/WebCore
[Mac] Don't show default controls after playing to wireless target, again
https://bugs.webkit.org/show_bug.cgi?id=145620
<rdar://problem/21145806>
Reviewed by Dean Jackson.
Follow up to fix two tests broken by r185207.
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.updateControls): Always show controls when the video element
is the fullscreen element because custom controls aren't possible.
- 3:00 PM Changeset in webkit [185219] by
-
- 4 edits in trunk/Source/WebCore
[Cocoa] Add ASSERT to FontPlatformData::ctFont()
https://bugs.webkit.org/show_bug.cgi?id=145659
Reviewed by Dean Jackson.
The new ASSERT needs to be guarded with CORETEXT_WEB_FONTS, which is defined in FontCustomPlatformData.h,
and is not accessible to FontPlatformData. Therefore, I've moved the definition into TextFlags.h, which
both files include.
No new tests because there is no behavior change.
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::ctFont): Add the ASSERT.
- platform/graphics/mac/FontCustomPlatformData.h: Move the CORETEXT_WEB_FONTS preprocessor
macro from here ...
- platform/text/TextFlags.h: ... to here.
- 2:12 PM Changeset in webkit [185218] by
-
- 4 edits in trunk
Unreviewed, rolling out r185208.
https://bugs.webkit.org/show_bug.cgi?id=145655
platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-
latched-select.html (Requested by shallawa on #webkit).
Reverted changeset:
"Latching algorithm in findEnclosingOverflowScroll is broken"
https://bugs.webkit.org/show_bug.cgi?id=145642
http://trac.webkit.org/changeset/185208
- 2:08 PM Changeset in webkit [185217] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] Remove unnecessary code from FontPlatformData::ctFont()
https://bugs.webkit.org/show_bug.cgi?id=145652
Hoefler Text Italic no longer has initial and final swashes by default, so there
is no reason to explicitly disable them.
Reviewed by Andreas Kling.
No new tests because there is no behavior change.
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::ctFont):
(WebCore::createFeatureSettingDictionary): Deleted.
(WebCore::cascadeToLastResortAndDisableSwashesFontDescriptor): Deleted.
- 1:53 PM Changeset in webkit [185216] by
-
- 13 edits3 adds in trunk
Simplify unboxing of double JSValues known to be not NaN and not Int32
https://bugs.webkit.org/show_bug.cgi?id=145618
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
In many cases we know that we most likely loaded a non-NaN double value from the heap.
Prior to this patch, we would do two branches before unboxing the double. This patch
reduces this to one branch in the common case. Before:
if (is int32)
unbox int32 and convert to double
else if (is number)
unbox double
else
exit
After:
tmp = unbox double
if (tmp == tmp)
done
else if (is int32)
unbox int32 and convert to double
else
exit
We only use the new style if we have profiling that tells us that we are unlikely to see
either Int32 or NaN - since we will now exit on NaN and int32 requires an extra branch.
This is a 8% speed-up on Octane/box2d. On one microbenchmark this is a 25% speed-up.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixEdgeRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
- dfg/DFGNode.h:
(JSC::DFG::Node::shouldSpeculateDouble):
(JSC::DFG::Node::shouldSpeculateDoubleReal):
(JSC::DFG::Node::shouldSpeculateNumber):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::speculateDoubleReal): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGUseKind.cpp:
(WTF::printInternal):
- dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::boxDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateNumber):
(JSC::FTL::LowerDFGToLLVM::speculateRealNumber):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepReal):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateDoubleReal): Deleted.
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfInt32):
(JSC::AssemblyHelpers::branchIfNotInt32):
(JSC::AssemblyHelpers::branchIfNumber):
LayoutTests:
- js/regress/double-real-use-expected.txt: Added.
- js/regress/double-real-use.html: Added.
- js/regress/script-tests/double-real-use.js: Added.
(foo):
- 1:50 PM Changeset in webkit [185215] by
-
- 2 edits in trunk/Source/JavaScriptCore
SideState should be a distinct abstract heap from Heap and Stack
https://bugs.webkit.org/show_bug.cgi?id=145653
Reviewed by Geoffrey Garen.
Before, SideState fit into the hierarchy like so:
World
|
+-- Stack
|
+-- Heap
|
+-- SideState
Now we will have:
World
|
+-- Stack
|
+-- Heap
|
+-- SideState
This makes it easy to ask if a writing operation wrote to anything that is observable even
if we don't exit. SideState is only observable if we exit.
- dfg/DFGAbstractHeap.h:
(JSC::DFG::AbstractHeap::AbstractHeap):
(JSC::DFG::AbstractHeap::supertype):
- 1:43 PM Changeset in webkit [185214] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Decrease tabs height to match Safari's tabs height
https://bugs.webkit.org/show_bug.cgi?id=145647
Reviewed by Timothy Hatcher.
- UserInterface/Views/TabBar.css:
(.tab-bar):
- 1:15 PM Changeset in webkit [185213] by
-
- 8 edits in trunk/Source/WebInspectorUI
Web Inspector: Activity Viewer does not update on "Clear Log on reload"
https://bugs.webkit.org/show_bug.cgi?id=145466
Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-06-04
Reviewed by Joseph Pecoraro.
- Isolate logic within LogManager and remove hacks/logic from all other files
- Within LogManager: Differentiate "messagesCleared" calls a) that happen as a result of a "requested clear" by Frontend (e.g. Button) b) that happen on page reload and install "clear/keep-on-page-reload" logic c) that happen on frame navigated, console.clear() or clear()
- Unify "ActiveLogCleared" and "Cleared" events to "Cleared"
For step 2b and 2c it is important to delay the handling and wait until
"_mainResourceDidChange" has determined whether a page reload happened or
not.
- UserInterface/Base/Main.js:
(WebInspector.loaded):
Store "clear-log-on-reload" setting globally.
- UserInterface/Controllers/IssueManager.js:
(WebInspector.IssueManager):
- UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard): Deleted.
- UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype._trackWeakEntries): Deleted.
(WebInspector.ObjectTreeView.prototype._untrackWeakEntries): Deleted.
(WebInspector.ObjectTreeView): Deleted.
Remove deleted events.
- UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut):
(WebInspector.JavaScriptLogViewController.prototype.clear): Deleted.
Remove delegate function call and call LogManager directly.
- UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager):
(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._delayedMessagesCleared):
(WebInspector.LogManager.prototype.requestClearMessages):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Isolate "clear log" logic, especially clear/keep-log-on-reload logic.
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
(WebInspector.LogContentView.prototype._clearLog):
(WebInspector.LogContentView.prototype.didClearMessages): Deleted.
(WebInspector.LogContentView.prototype._sessionsCleared): Deleted.
(WebInspector.LogContentView.prototype._activeLogCleared): Deleted.
(WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages): Deleted.
Make it a consumer of LogManager and remove special hacks. Simplify code.
- 12:37 PM Changeset in webkit [185212] by
-
- 2 edits in trunk/Source/WebKit2
[Cocoa] Expose interruptedForPolicyChangeError
https://bugs.webkit.org/show_bug.cgi?id=145627
Reviewed by Anders Carlsson.
- UIProcess/API/Cocoa/WKErrorPrivate.h: Added WKErrorCodeFrameLoadInterruptedByPolicyChange with the same value as
kWKErrorCodeFrameLoadInterruptedByPolicyChange.
- 12:33 PM Changeset in webkit [185211] by
-
- 1 edit5 adds in trunk/LayoutTests
Add WK1 versions of tests from Bugs 145637 and 145642
https://bugs.webkit.org/show_bug.cgi?id=145649
Reviewed by Zalan Bujtas.
- platform/mac/fast/scrolling/iframe_in_iframe-expected.txt: Added.
- platform/mac/fast/scrolling/iframe_in_iframe.html: Added.
- platform/mac/fast/scrolling/resources/inner_content.html: Added.
- platform/mac/fast/scrolling/resources/testContent.html: Added.
- platform/mac/fast/scrolling/resources/testImage.png: Added.
- 12:17 PM Changeset in webkit [185210] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: streams/reference-implementation/readable-stream-templated.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=145643
Reviewed by Alexey Proskuryakov.
- streams/reference-implementation/readable-stream-templated.html: Removed 'timeout: 50' for test that is now passing.
- 12:10 PM Changeset in webkit [185209] by
-
- 2 edits in tags/Safari-601.1.34.1/Source/WebCore
Merged r185207. rdar://problem/21145806
- 11:55 AM Changeset in webkit [185208] by
-
- 4 edits in trunk
Latching algorithm in findEnclosingOverflowScroll is broken
https://bugs.webkit.org/show_bug.cgi?id=145642
<rdar://problem/21242308>
Reviewed by Simon Fraser.
Source/WebCore:
Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html
- page/mac/EventHandlerMac.mm:
(WebCore::findEnclosingOverflowScrollForDominantDirection): Renamed from
'findEnclosingOverflowScroll'. Only identify element as our overflow
scroll element if it can be scrolled in either axis of the gesture's
motion.
(WebCore::scrolledToEdgeInDominantDirection): Renamed.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use new function
name, and pass horizontal and vertical deltas.
(WebCore::findEnclosingOverflowScroll): Deleted.
LayoutTests:
Revise the new latching test to remove the image "max-width: 100%" style, which was
preventing this example from having a horizontal scrollable region at the top of the
file.
It still correctly tests the subpixel bug from Bug 145637.
- platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Remove width
adjustment on image.
- 11:26 AM Changeset in webkit [185207] by
-
- 2 edits in trunk/Source/WebCore
[Mac] Don't show default controls after playing to wireless target, again
https://bugs.webkit.org/show_bug.cgi?id=145620
<rdar://problem/21145806>
Reviewed by Dean Jackson.
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.updateControls): Show or hide the panel as appropriate.
(Controller.prototype.handleWrapperMouseMove): Early return if !video.controls.
(Controller.prototype.addControls): Call updateControls instead of this.setNeedsTimelineMetricsUpdate
so all needed setup is done.
(Controller.prototype.resetHideControlsTimer): Only start the hide timer if playing.
- 11:23 AM Changeset in webkit [185206] by
-
- 14 edits in trunk/Source
[WK2] Prune more resources from the MemoryCache before process suspension
https://bugs.webkit.org/show_bug.cgi?id=145633
Reviewed by Andreas Kling.
Source/JavaScriptCore:
No longer move protect IncrementalSweeper::fullSweep() behind
USE(CF) so we don't need #ifdefs at call sites, similarly to what is
done for the rest of the IncrementalSweeper API.
- heap/IncrementalSweeper.cpp:
(JSC::IncrementalSweeper::fullSweep):
- heap/IncrementalSweeper.h:
Source/WebCore:
Prune more resources from the MemoryCache before process suspension or
on simulated memory warning by doing a synchronous JS garbage collection
and sweep *before* pruning dead resources from the memory cache.
Previously, we would do the garbage collection after pruning the
MemoryCache which meant that a lot of resources became dead after we
tried to prune them.
At the end a basic browsing on apple.com, we are able to remove ~17%
more resources from the MemoryCache on simulated memory warning with this
change.
Pruning as much as we can from the memory cache on critical memory
pressure or before process suspension is not only useful to free up
memory but also to make room in the vnode table as a lot of
CachedResources are mmmap'd from the network disk cache.
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::MemoryPressureHandler):
(WebCore::MemoryPressureHandler::releaseCriticalMemory):
- Pass 'synchronous' argument so that we know if we need to do a synchronous JS garbage collection.
- Move here code from in the Cocoa handler that is doing a JS garbage collection as well as a sweep, and make this code cross-platform. This code used to be iOS specific but I see no reason we shouldn't do this on Mac.
(WebCore::MemoryPressureHandler::releaseMemory):
- platform/MemoryPressureHandler.h:
Use enum class arguments for critical / synchronous. The 'synchronous'
argument is new so that the call site can let us know if memory needs
to be freed synchronously (e.g. in case of imminent process suspension).
- platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::platformReleaseMemory):
Remove iOS-specific code that was doing a JS garbage collection and
sweep as this code is now in the generic memory pressure handler.
(WebCore::MemoryPressureHandler::install):
On simulated memory pressure, set 'synchronous' argument to Yes so that
a synchronous GC is done by the generic memory pressure handler. This
way, we no longer need to do a sync GC after calling the memory pressure
handler. This avoids code duplication and makes sure the GC is done
before pruning the memory cache.
Source/WebKit2:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::lowMemoryHandler):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::processWillSuspendImminently):
(WebKit::NetworkProcess::prepareToSuspend):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformLowMemoryHandler):
- PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::initializeProcess):
Update low memory handler prototype to match WebCore changes.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::actualPrepareToSuspend):
Pass Synchronous::Yes argument to MemoryPressureHandler::releaseMemory()
to request that the memory is free up synchronously (e.g. synchronous
JS garbage collection) as the process is about to be suspended.
Previously, the memory pressure handler was trying to detect this case
by checking if the system was really under memory pressure but this was
a bit hackish and it wouldn't work if the process happened to get
suspended while the system was under memory pressure.
- 11:18 AM Changeset in webkit [185205] by
-
- 7 edits in trunk/Source/WebCore
[Cocoa] Clean up m_isEmoji in FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=145644
Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-06-04
Reviewed by Andreas Kling.
m_isEmoji used to be a public member variable only defined on iOS. This
means that, whenever it was consulted, the sites were surrounded by
PLATFORM(IOS) guards. A cleaner design is to use a getter and setter,
which on non-iOS platforms, always return false / do nothing. Then, the
use sites can just use these functions without having ugly guards.
No new tests because there is no behavior change.
- platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::hash): Simplify isEmoji use site.
(WebCore::FontPlatformData::isEmoji): Getter. Returns false on Mac.
(WebCore::FontPlatformData::setIsEmoji): Setter. Does nothing on Mac.
- platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::pointAdjustedForEmoji): Simplify isEmoji use site.
(WebCore::FontCascade::drawGlyphs): Ditto.
- platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformInit): Ditto.
(WebCore::canUseFastGlyphAdvanceGetter): Ditto.
(WebCore::isEmoji): Deleted.
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::platformDataInit): Simplify isEmoji use
site.
(WebCore::FontPlatformData::platformDataAssign): Ditto.
(WebCore::FontPlatformData::platformIsEqual): Ditto.
(WebCore::FontPlatformData::ctFontSize): Ditto.
- platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::getSystemFontFallbackForCharacters): Ditto.
(WebCore::FontCache::createFontPlatformData): Ditto.
- platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Ditto.
- 11:09 AM Changeset in webkit [185204] by
-
- 3 edits2 copies in tags/Safari-601.1.34.1
Merged r185187. rdar://problem/21223358
- 11:08 AM Changeset in webkit [185203] by
-
- 5 edits in tags/Safari-601.1.34.1/Source
Versioning.
- 11:04 AM Changeset in webkit [185202] by
-
- 1 copy in tags/Safari-601.1.34.1
New tag.
- 10:53 AM Changeset in webkit [185201] by
-
- 6 edits5 adds in trunk
REGRESSION (r181879): Scrolling order on pages with focused iframe is broken.
https://bugs.webkit.org/show_bug.cgi?id=145637
<rdar://problem/20635581>
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html
This page revealed a bug in our RenderBox code caused by the mismatch between
our scrolling units, which are all integrally snapped, with our client height
and widths, which are not snapped at all.
In certain cases, the client height would have a small subpixel difference compared
to the scroll height, which would cause WebKit to believe it was scrollable. When
this happened, it would get stuck latched to this element and block scrolling events.
- page/Frame.cpp:
(WebCore::Frame::scrollOverflowLayer): Use roundToInt for clientWidth and clientHeight,
rather than integer truncation.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::canBeScrolledAndHasScrollableArea): Need to round clientWidth
and clientHeight to compare with scrollWidth/scrollHeight.
- rendering/RenderBox.h:
(WebCore::RenderBox::hasScrollableOverflowX): Ditto.
(WebCore::RenderBox::hasScrollableOverflowY): Ditto.
- rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::computePosition): Use roundToInt for clientWidth and
clientHeight, rather than integer truncation.
LayoutTests:
- platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe-expected.txt: Added.
- platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html: Added.
- platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Added.
- platform/mac-wk2/tiled-drawing/scrolling/resources/testContent.html: Added.
- platform/mac-wk2/tiled-drawing/scrolling/resources/testImage.png: Added.
- 9:50 AM Changeset in webkit [185200] by
-
- 6 edits in trunk/Source/WebCore
[Cocoa] Clean up m_font inside FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=145634
Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-06-04
Reviewed by Andreas Kling.
FontPlatformDatas are used as keys in a HashMap. This means that they need
to be able to represent a "deleted" value. Previously, this "deleted" value
was represented as setting the pointer value of m_font to -1, and guarding
all uses of m_font to make sure it wasn't -1 before dereferencing it.
This patch simplifies FontPlatformData to represent a "deleted" value using
a separate boolean member variable. This class is already big enough that
the increased space is negligable (the class already contains two CoreText
fonts in addition to a CoreGraphics font). Because of this simplification,
m_font can now be a RetainPtr, instead of being manually retained and
released.
There is still a long way to go before FontPlatformData is acceptably
clean and understandable. This patch improves one aspect of it, and more
improvements will eventually follow.
No new tests because there is no behavior change.
- platform/graphics/FontCache.cpp: Remove unused variable.
- platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::FontPlatformData): Clean up all the PLATFORM
macros in favor of a single bool. Also, update to include new state.
(WebCore::FontPlatformData::operator=): Update to include new state.
- platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::font): Update to account for RetainPtr.
(WebCore::FontPlatformData::nsFont): Ditto.
(WebCore::FontPlatformData::setNSFont): Ditto.
(WebCore::FontPlatformData::hash): Update to include new state.
(WebCore::FontPlatformData::operator==): Ditto.
(WebCore::FontPlatformData::isHashTableDeletedValue): Use new state.
(WebCore::FontPlatformData::hashTableDeletedFontValue): Deleted.
(WebCore::FontPlatformData::isValidCTFontRef): Deleted.
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::platformDataInit): No need for manual retain
and release.
(WebCore::FontPlatformData::platformDataAssign): Ditto.
(WebCore::FontPlatformData::platformIsEqual): Update to account for
RetanPtr.
(WebCore::FontPlatformData::setFont): No need for manual retain and
release.
(WebCore::FontPlatformData::FontPlatformData): Deleted.
(WebCore::FontPlatformData::~FontPlatformData): Deleted.
- platform/graphics/win/FontPlatformDataCairoWin.cpp:
(WebCore::FontPlatformData::~FontPlatformData): m_scaledFont is always
valid.
(WebCore::FontPlatformData::platformDataAssign): Ditto.
- 7:25 AM Changeset in webkit [185199] by
-
- 2 edits in trunk/LayoutTests
css3/filters/backdrop/backdrop-filter-with-mask.html is missing the mask layer.
Unreviewed gardening.
- css3/filters/backdrop/backdrop-filter-with-mask-expected.txt:
- 3:55 AM Changeset in webkit [185198] by
-
- 6 edits in trunk/Source
[GTK] [Wayland] Build is broken on trunk
https://bugs.webkit.org/show_bug.cgi?id=142879
Reviewed by Carlos Garcia Campos.
Source/WebCore:
No new tests, no behavior changes.
Patch on GLContext.h picked from bug 136831 by
Iago Toral <itoral@igalia.com> and Zan Dobersek <zdobersek@igalia.com>
- platform/graphics/GLContext.h: Include wayland-egl.h before eglplatform.h
to use the Wayland platform when building for Wayland.
- platform/graphics/PlatformDisplay.cpp: Fix the include of GDK
headers for the different targets.
- platform/graphics/wayland/WaylandSurface.cpp: Fix build after r183731.
(WebCore::WaylandSurface::~WaylandSurface):
Source/WebKit2:
- WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::makeContextCurrent): When Wayland target
is enabled GLNativeWindowType is not an u_int64 type.
Cast contextID to avoid a build failure.
- 3:19 AM Changeset in webkit [185197] by
-
- 16 edits in trunk
[Streams API] Implement ReadableStreamController enqueue
https://bugs.webkit.org/show_bug.cgi?id=145210
Reviewed by Darin Adler.
Source/WebCore:
Added possibility to enqueue any JSValue within ReadableJSStream.
They are stored in a Vector of strongified JSValue.
Added support for streams that contain data but are asked to close.
This is done through m_closeRequested boolean and splitting actual closing of the stream from changeStateToClosed().
Chunk size and backpressure mechanism is not yet implemented.
Neither is pulling once enqueued data is processed.
Covered by rebased tests.
- Modules/streams/ReadableStream.cpp:
(WebCore::ReadableStream::changeStateToClosed): Split method with newly added close().
(WebCore::ReadableStream::close): Does the actual closing of stream once stream has no more values.
(WebCore::ReadableStream::read): Close the stream when stream is emptied and close is requested.
(WebCore::ReadableStream::resolveReadCallback): Added to enable ReadableJSStream to resolve read callbacks immediatly at enqueue time.
- Modules/streams/ReadableStream.h:
(WebCore::ReadableStream::isErrored): Getter added for the custom binding code.
(WebCore::ReadableStream::isCloseRequested): Ditto.
- bindings/js/JSReadableStreamControllerCustom.cpp:
(WebCore::JSReadableStreamController::enqueue): binding code for enqueue, taking care of raising exception if readable stream cannot enqueue.
- bindings/js/ReadableJSStream.cpp:
(WebCore::ReadableJSStream::hasValue):
(WebCore::ReadableJSStream::read):
(WebCore::ReadableJSStream::enqueue):
- bindings/js/ReadableJSStream.h:
LayoutTests:
- streams/reference-implementation/bad-underlying-sources-expected.txt:
- streams/reference-implementation/count-queuing-strategy-expected.txt:
- streams/reference-implementation/count-queuing-strategy.html:
- streams/reference-implementation/readable-stream-expected.txt:
- streams/reference-implementation/readable-stream-reader-expected.txt:
- streams/reference-implementation/readable-stream-reader.html:
- streams/reference-implementation/readable-stream-templated-expected.txt:
- streams/reference-implementation/readable-stream-templated.html:
- streams/reference-implementation/readable-stream.html:
- 12:52 AM Changeset in webkit [185196] by
-
- 8 edits1 delete in trunk/Source/WebCore
[Streams API] ReadableJSStream does not need a ReadableStreamSource
https://bugs.webkit.org/show_bug.cgi?id=145601
Reviewed by Darin Adler.
Covered by existing tests.
- Modules/streams/ReadableStream.cpp:
(WebCore::ReadableStream::ReadableStream): Remoed m_source.
- Modules/streams/ReadableStream.h: Ditto
- Modules/streams/ReadableStreamSource.h: Deleted.
- WebCore.vcxproj/WebCore.vcxproj: Removing Modules/streams/ReadableStreamSource.h.
- WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- bindings/js/ReadableJSStream.cpp:
(WebCore::ReadableJSStream::globalObject):
(WebCore::ReadableJSStream::doStart): Equivalent of ReadableJSStream::Source::start().
(WebCore::ReadableJSStream::create): Updated according new constructor.
(WebCore::ReadableJSStream::ReadableJSStream):
(WebCore::startReadableStreamAsync): Deleted.
(WebCore::ReadableJSStream::jsController): Deleted.
(WebCore::ReadableJSStream::storeError): Deleted.
- bindings/js/ReadableJSStream.h: Added m_source member to store the JS source as a JS object.
- 12:39 AM Changeset in webkit [185195] by
-
- 2 edits in trunk/Source/WebCore
Shrink the ArabicCharShapingMode enum in SVGGlyph.cpp
https://bugs.webkit.org/show_bug.cgi?id=145564
Reviewed by Darin Adler.
Shrink the ArabicCharShapingMode enum to just one byte.
This drops the size of the static s_arabicCharShapingMode
array of ArabicCharShapingMode values from 888 bytes to 222.
- platform/graphics/SVGGlyph.cpp:
(WebCore::processArabicFormDetection):
Jun 3, 2015:
- 11:49 PM Changeset in webkit [185194] by
-
- 2 edits in trunk/Tools
Fix options in build-jsc for CMake builds
https://bugs.webkit.org/show_bug.cgi?id=145636
Reviewed by Gyuyoung Kim.
CMake only accepts -DXXX=YYY style options.
And ensured that ENABLE_JIT=OFF when specifying--cloop.
- Scripts/build-jsc:
- 11:45 PM Changeset in webkit [185193] by
-
- 4 edits in trunk/Tools
Added a patch so that the colors displayed on the page could be toggled
in case people need accessibility colors displayed in their browser.
https://bugs.webkit.org/show_bug.cgi?id=145570
<rdar://problem/20994468>
Added in CSS colors and toggle buttons for checkmarks in the page, so that
the page could be rendered in a specific way for accessibility needs if needed.
Patch by Matthew Daiter <mdaiter@apple.com> on 2015-06-03
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
(updateHiddenPlatforms):
(applyAccessibilityColorSetting): Initial loading of accessibility colors if necessary
(toggleAccessibilityColors): Toggle colors on and off
(documentReady): Needed to make changes to the initialization
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(a:hover):
(div.cellButton, div.accessibilityButton): Added in similar properties for cellButton and accessibilityButton
(div.cellButton.hide, div.accessibilityButton.hide):
(div.cellButton.unhide, div.accessibilityButton.unhide):
(.settings-visible div.accessibilityButton.hide, .settings-visible div.accessibilityButton.unhide):
(.popover-tracking:hover):
(.accessibilityButton):
(div.cellButton): Deleted.
(div.cellButton.hide): Deleted.
(div.cellButton.unhide): Deleted.
(.settings-visible div.cellButton.hide, .settings-visible div.cellButton.unhide): Deleted.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/StatusLineView.css:
(.status-line.neutral .bubble):
(.status-line.unauthorized .bubble):
(.status-line.danger .bubble.pictogram):
(.status-line.bad .bubble.pictogram):
(.status-line.no-bubble .message):
(.status-line.bad .bubble):
(.status-line.good .bubble):
(.status-line.good .message):
(.status-line.bad .message):
(body.accessibility-colors .status-line.good .bubble):
(body.accessibility-colors .status-line.bad .bubble):
(body.accessibility-colors .status-line.good .message):
(body.accessibility-colors .status-line.bad .message):
(.status-line.danger .message):
(.status-line.unauthorized .message):
- 11:23 PM Changeset in webkit [185192] by
-
- 4 edits2 copies2 adds in trunk
Use borderBoxRect instead of contentBoxRect for backdrop filter.
https://bugs.webkit.org/show_bug.cgi?id=145606
Reviewed by Simon Fraser.
Backdrop filter should use border box rect. It also needs to take css clip into account.
Source/WebCore:
Tests: css3/filters/backdrop/backdrop-filter-with-cliprect.html
css3/filters/backdrop/backdrop-filter-with-mask.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
LayoutTests:
- css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt:
- css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt: Added.
- css3/filters/backdrop/backdrop-filter-with-cliprect.html: Added.
- css3/filters/backdrop/backdrop-filter-with-mask-expected.txt: Added.
- css3/filters/backdrop/backdrop-filter-with-mask.html: Added.
- 11:06 PM Changeset in webkit [185191] by
-
- 3 edits in trunk/Source/WebCore
MediaDevices.getUserMedia should put promises in resolve/reject state synchronously
https://bugs.webkit.org/show_bug.cgi?id=145308
Reviewed by Darin Adler.
Removed the calls to callToMainThread in which were resolved and rejected promises.
Cleaned up the code to remove unneeded callback copies.
Covered by existing tests.
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::create):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::didCreateStream):
(WebCore::UserMediaRequest::failedToCreateStreamWithConstraintsError):
(WebCore::UserMediaRequest::failedToCreateStreamWithPermissionError):
- Modules/mediastream/UserMediaRequest.h:
- 10:35 PM Changeset in webkit [185190] by
-
- 2 edits in trunk/Source/WebKit2
Made WKBackForwardListItemPrivate.h a private header after it was added as internal in r185183.
- WebKit2.xcodeproj/project.pbxproj:
- 10:19 PM Changeset in webkit [185189] by
-
- 2 edits in trunk/LayoutTests
[EFL] Unreviewed gardening on 4th June.
Skip a test regarding emoji font, mark timeout to animation tests.
Update a track test and a xhr test.
- platform/efl/TestExpectations:
- 10:14 PM Changeset in webkit [185188] by
-
- 5 edits in trunk/Source/WebKit2
[EFL] Implement window_object_cleared callback in EwkPageClient.
https://bugs.webkit.org/show_bug.cgi?id=145603
Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-03
Reviewed by Gyuyoung Kim.
We need to provide right timing for custom JS API that may need to work at the beginning of the page.
- UIProcess/API/efl/tests/extensions/extension_sample.cpp:
- WebProcess/InjectedBundle/API/efl/ewk_page.cpp:
(EwkPage::EwkPage):
(EwkPage::didStartProvisionalLoadForFrame):
(EwkPage::didClearWindowObjectForFrame):
(EwkPage::didFinishDocumentLoadForFrame):
- WebProcess/InjectedBundle/API/efl/ewk_page.h:
- WebProcess/InjectedBundle/API/efl/ewk_page_private.h:
- 9:42 PM Changeset in webkit [185187] by
-
- 3 edits2 adds in trunk
REGRESSION (r184968): missing media player buttons (control bar exists, but no buttons)
https://bugs.webkit.org/show_bug.cgi?id=145630
Reviewed by Zalan Bujtas.
Source/WebCore:
r184968 changed the initial value of m_intersectsCoverageRect to false. However,
this triggered a bug with mask layers, whose value of m_intersectsCoverageRect was never
updated.
Fix by copying the value of m_intersectsCoverageRect from the main layer to its
mask layer, just as we do for m_visibleRect and m_coverageRect.
Test: compositing/visible-rect/mask-layer-coverage.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
LayoutTests:
Test that dumps coverage info for a layer with a mask.
- compositing/visible-rect/mask-layer-coverage-expected.txt: Added.
- compositing/visible-rect/mask-layer-coverage.html: Added.
- 9:42 PM Changeset in webkit [185186] by
-
- 5 edits in trunk
Layer tree dumps should include mask layers
https://bugs.webkit.org/show_bug.cgi?id=145629
Reviewed by Zalan Bujtas.
Source/WebCore:
Dumping the layer tree omitted to dump the mask layer, so fix
GraphicsLayer::dumpProperties() to dump this layer.
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties):
LayoutTests:
New results.
- compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
- compositing/masks/mask-layer-size-expected.txt:
- 9:19 PM Changeset in webkit [185185] by
-
- 5 edits in trunk
AX: Expose field sets to accessibility clients
https://bugs.webkit.org/show_bug.cgi?id=145585
Source/WebCore:
Expose fieldsets to the accessibility API via a subrole of AXFieldset.
Patch by Greg Hughes <ghughes@apple.com> on 2015-06-03
Reviewed by Chris Fleizach.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):
LayoutTests:
Updated role tests to include the new subrole for fieldsets
Patch by Greg Hughes <ghughes@apple.com> on 2015-06-03
Reviewed by Chris Fleizach.
- platform/mac/accessibility/roles-exposed-expected.txt:
- 8:42 PM Changeset in webkit [185184] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: if a known CSS property has an unsupported value, only strikethrough the value
https://bugs.webkit.org/show_bug.cgi?id=141262
Patch by Devin Rousso <Devin Rousso> on 2015-06-03
Reviewed by Timothy Hatcher.
- UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.prototype.nameMatchesValidPropertyExactly): Loops through the full property list and returns true only if a property exactly matches the given property name.
(WebInspector.CSSCompletions): Added nameMatchesValidPropertyExactly function.
- UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property.
- 7:55 PM Changeset in webkit [185183] by
-
- 4 edits1 copy in trunk/Source/WebKit2
Add SPI that returns the snapshot layer contents for a given back/forward list item
https://bugs.webkit.org/show_bug.cgi?id=145621
Reviewed by Dan Bernstein.
- UIProcess/API/Cocoa/WKBackForwardListItem.mm:
(-[WKBackForwardListItem _snapshotLayerContents]):
- UIProcess/API/Cocoa/WKBackForwardListItemInternal.h:
- UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListItemInternal.h.
- WebKit2.xcodeproj/project.pbxproj:
- 7:55 PM Changeset in webkit [185182] by
-
- 4 edits in trunk/Source/WebCore
Remove dead code FontPlatformData::roundsGlyphAdvances()
https://bugs.webkit.org/show_bug.cgi?id=145628
Reviewed by Simon Fraser.
No new tests because there is no behavior change.
- WebCore.order:
- platform/graphics/FontPlatformData.h:
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::roundsGlyphAdvances): Deleted.
- 7:01 PM WebKitGTK/WebKit2Roadmap edited by
- (diff)
- 5:07 PM Changeset in webkit [185181] by
-
- 2 edits in trunk/LayoutTests
Skip webgl/useWhilePending.html on WebKit 1 following:
<http://trac.webkit.org/changeset/185172>
Unreviewed.
- platform/mac-wk1/TestExpectations:
- 5:03 PM Changeset in webkit [185180] by
-
- 9 edits1 move1 delete in trunk/Source/WebCore
[CoordinatedGraphics] Merge CoordinatedTile into Tile
https://bugs.webkit.org/show_bug.cgi?id=145602
Reviewed by Darin Adler.
CoordinatedTile only implements Tile since Qt and WebKit1/Efl were dropped.
So, there is no reason that CoordinatedTile inherits Tile interface.
No new tests, no behavior changes.
- PlatformEfl.cmake:
- PlatformGTK.cmake:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.vcxproj/WebCore.vcxproj.filters:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedTile.cpp: Renamed to Tile.cpp
- platform/graphics/texmap/coordinated/CoordinatedTile.h: Merged into Tile.h
(WebCore::CoordinatedTile::coordinate): Deleted.
(WebCore::CoordinatedTile::rect): Deleted.
- platform/graphics/texmap/coordinated/Tile.cpp: Renamed from CoordinatedTile.cpp.
- platform/graphics/texmap/coordinated/Tile.h:
- platform/graphics/texmap/coordinated/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::createTiles):
- 4:41 PM Changeset in webkit [185179] by
-
- 8 edits3 adds in trunk/Source/WebCore
Add basic Media Session support to HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=145581
Patch by Matt Rajca <mrajca@apple.com> on 2015-06-03
Reviewed by Eric Carlson.
HTMLMediaElements now have:
- a 'kind' attribute representing the intrinsic media category
- a 'session' attribute representing the current media session, if any
- CMakeLists.txt: Include the new HTMLMediaElementMediaSession sources.
- DerivedSources.make: Include the new IDL file.
- Modules/mediasession/HTMLMediaElementMediaSession.cpp: Added.
(WebCore::HTMLMediaElementMediaSession::session):
- Modules/mediasession/HTMLMediaElementMediaSession.h: Added basic translation of the IDL file.
(WebCore::HTMLMediaElementMediaSession::kind):
(WebCore::HTMLMediaElementMediaSession::setKind):
(WebCore::HTMLMediaElementMediaSession::setSession):
- Modules/mediasession/HTMLMediaElementMediaSession.idl: Added from the Media Session spec.
- PlatformMac.cmake: Include DOMHTMLMediaElementMediaSession.cpp.
- WebCore.xcodeproj/project.pbxproj: Include the new HTMLMediaElementMediaSession sources.
- html/HTMLMediaElement.h: Added accessors for 'kind' and 'session'.
(WebCore::HTMLMediaElement::kind):
(WebCore::HTMLMediaElement::setKind):
(WebCore::HTMLMediaElement::session):
(WebCore::HTMLMediaElement::setSession):
- 4:35 PM Changeset in webkit [185178] by
-
- 2 edits in trunk/Tools
Unreviewed build fix for Dromaeo.
- Scripts/webkitpy/benchmark_runner/benchmark_results.py:
(BenchmarkResults._aggregate_results_for_test):
- 3:51 PM Changeset in webkit [185177] by
-
- 2 edits in trunk/Tools
Fix build.
- DumpRenderTree/mac/TestRunnerMac.mm:
- 3:50 PM Changeset in webkit [185176] by
-
- 2 edits in trunk/Source/WebCore
Cleanup after r185175.
https://bugs.webkit.org/show_bug.cgi?id=145569
<rdar://problem/20671711>
Unreviewed.
No new tests because there is no behavior change.
- platform/graphics/WidthIterator.h:
- 3:48 PM Changeset in webkit [185175] by
-
- 4 edits3 adds in trunk
SoftBank Emoji are not transformed by shaping when in a run of their own
https://bugs.webkit.org/show_bug.cgi?id=145569
<rdar://problem/20671711>
Reviewed by Dean Jackson.
Normally, we don't perform shaping on single glyphs. However, these particular codepoints
need to have shaping run on them, even if they are alone.
Test: fast/text/softbank-emoji.html Note that this test may fail in different locales on
different platforms. This patch disables the test on iOS.
- Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::applyFontTransforms): Move the length-of-1 check into shouldApplyFontTransforms()
(WebCore::shouldApplyFontTransforms): Return true if we have one of these emoji characters in
a run of its own
(WebCore::advanceInternal): Keep track of the previous character, and use it to call
shouldApplyFontTransforms.
- Source/WebCore/platform/graphics/WidthIterator.h: shouldApplyFontTransforms() needs
some more information to perform its duties.
- 3:46 PM Changeset in webkit [185174] by
-
- 1 edit2 adds in trunk/LayoutTests
Add missing expected result files for ios-simulator port following
<http://trac.webkit.org/changeset/185095>
<http://trac.webkit.org/changeset/185096>
Unreviewed.
- platform/ios-simulator/fast/text/crash-complex-text-surrogate-expected.txt: Added.
- platform/ios-simulator/fast/text/font-weights-zh-expected.txt: Added.
- 3:35 PM Changeset in webkit [185173] by
-
- 3 edits3 adds in trunk
Caps lock indicator should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145612
<rdar://problem/21227454>
Reviewed by Darin Adler.
.:
- ManualTests/password-caps-lock-should-not-show-in-read-only-field.html: Added.
- ManualTests/password-caps-lock-should-not-show-when-field-becomes-disabled.html: Added.
- ManualTests/password-caps-lock-should-not-show-when-field-becomes-read-only.html: Added.
Source/WebCore:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::disabledAttributeChanged): Update caps lock indicator state.
(WebCore::TextFieldInputType::readonlyAttributeChanged): Ditto.
(WebCore::TextFieldInputType::shouldDrawCapsLockIndicator): Do not draw the caps lock indicator
when the field is read-only or disabled.
- 3:32 PM Changeset in webkit [185172] by
-
- 8 edits2 adds in trunk
Crash in GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=145479
<rdar://problem/16461048>
Reviewed by Eric Carlson.
Source/WebCore:
If we are in an unitialized or lost state, don't try to access the context.
In order to test this, I added an Internal setting that always
forces WebGL into a pending state.
Test: fast/canvas/webgl/useWhilePending.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create): Check internal settings for
a forced pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Guard against a pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.
- page/Settings.cpp: New Internal setting for forcing a pending policy.
(WebCore::Settings::Settings):
(WebCore::Settings::setForcePendingWebGLPolicy):
- page/Settings.h:
(WebCore::Settings::isForcePendingWebGLPolicy):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setForcePendingWebGLPolicy):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
LayoutTests:
Attemps to use a WebGL context while it is in the pending state.
- fast/canvas/webgl/useWhilePending-expected.txt: Added.
- fast/canvas/webgl/useWhilePending.html: Added.
- 3:29 PM Changeset in webkit [185171] by
-
- 2 edits in trunk/LayoutTests
AutoFill button should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145579
<rdar://problem/21212494>
Update expected result for Windows that I inadvertently modified in <http://trac.webkit.org/changeset/185166>.
- platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
- 3:00 PM Changeset in webkit [185170] by
-
- 2 edits in trunk/LayoutTests
[iOS] Skip compositing/layer-creation/zoomed-clip-intersection.html
eventSender.scalePageBy() needs to be implemented.
Unreviewed garderning.
- platform/ios-simulator/TestExpectations:
- 2:43 PM Changeset in webkit [185169] by
-
- 3 edits in trunk/Tools
WebKit2.TextFieldDidBeginAndEndEditing is flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=145616
Skip the test on Mac for now to avoid having the bots turn red due to the flakiness
of the test. Further investigation is needed.
- TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp:
- TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing_Bundle.cpp:
- 2:21 PM Changeset in webkit [185168] by
-
- 2 edits in trunk/Source/WebKit/mac
Define WK_ENABLE_FORMAL_DELEGATE_PROTOCOLS on iOS
https://bugs.webkit.org/show_bug.cgi?id=145615
Part of rdar://problem/17380856.
Reviewed by Dan Bernstein.
- postprocess-headers.sh:
- 1:52 PM Changeset in webkit [185167] by
-
- 24 edits in trunk/Source/WebCore
Use modern for-loops in WebCore/page.
https://bugs.webkit.org/show_bug.cgi?id=145455
Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-03
Reviewed by Darin Adler.
No new tests, no behavior changes.
- page/Chrome.cpp:
(WebCore::Chrome::notifyPopupOpeningObservers):
- page/ContentSecurityPolicy.cpp:
(WebCore::CSPSourceList::matches):
(WebCore::CSPDirectiveList::gatherReportURIs):
(WebCore::ContentSecurityPolicy::copyStateFrom):
(WebCore::isAllowedByAll):
(WebCore::isAllowedByAllWithState):
(WebCore::isAllowedByAllWithContext):
(WebCore::isAllowedByAllWithURL):
(WebCore::ContentSecurityPolicy::evalDisabledErrorMessage):
(WebCore::ContentSecurityPolicy::allowPluginType):
(WebCore::ContentSecurityPolicy::reflectedXSSDisposition):
(WebCore::ContentSecurityPolicy::gatherReportURIs):
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
(WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
(WebCore::DOMWindow::willDestroyCachedFrame):
(WebCore::DOMWindow::willDestroyDocumentInFrame):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::disconnectDOMWindowProperties):
(WebCore::DOMWindow::reconnectDOMWindowProperties):
(WebCore::DOMWindow::getMatchedCSSRules):
- page/DeviceController.cpp:
(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):
- page/EventHandler.cpp:
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::handleTouchEvent):
- page/FocusController.cpp:
(WebCore::FocusController::setIsVisibleAndActiveInternal):
- page/Frame.cpp:
(WebCore::Frame::orientationChanged):
(WebCore::Frame::injectUserScriptsForWorld):
- page/FrameView.cpp:
(WebCore::FrameView::scrollContentsFastPath):
(WebCore::FrameView::serviceScriptedAnimations):
(WebCore::FrameView::trackedRepaintRectsAsText):
(WebCore::FrameView::updateWidgetPositions):
(WebCore::FrameView::notifyWidgets):
- page/Page.cpp:
(WebCore::networkStateChanged):
(WebCore::Page::stringToViewMode):
(WebCore::Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment):
(WebCore::Page::refreshPlugins):
(WebCore::Page::lockAllOverlayScrollbarsToHidden):
(WebCore::Page::pluginViews):
(WebCore::Page::storageBlockingStateChanged):
(WebCore::Page::setIsVisibleInternal):
- page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferencesChanged):
- page/PageGroupLoadDeferrer.cpp:
(WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
(WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
- page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame):
- page/Performance.cpp:
(WebCore::Performance::webkitGetEntriesByType):
(WebCore::Performance::webkitGetEntriesByName):
- page/PerformanceResourceTiming.cpp:
(WebCore::passesTimingAllowCheck):
- page/PerformanceUserTiming.cpp:
(WebCore::convertToEntrySequence):
- page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::isAccessWhiteListed):
- page/UserContentURLPattern.cpp:
(WebCore::UserContentURLPattern::matchesPatterns):
- page/WindowFeatures.cpp:
(WebCore::WindowFeatures::parseDialogFeatures):
- page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::updateAnimations):
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
(WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
(WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
(WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::ShorthandPropertyWrapper::equals):
(WebCore::ShorthandPropertyWrapper::blend):
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::setStateScrollingNodeSnapOffsetsAsFloat):
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame):
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
- 1:44 PM Changeset in webkit [185166] by
-
- 3 edits6 moves14 adds in trunk
AutoFill button should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145579
<rdar://problem/21212494>
Reviewed by Darin Adler.
Source/WebCore:
Fixes an issue where the AutoFill button is shown in a read-only or disabled
field. We should not show the AutoFill button in such cases.
Tests: fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled.html
fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html
fast/forms/auto-fill-button/input-auto-fill-button.html
fast/forms/auto-fill-button/input-disabled-auto-fill-button.html
fast/forms/auto-fill-button/input-readonly-auto-fill-button.html
fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button.html
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::disabledAttributeChanged): Update AutoFill button state.
(WebCore::TextFieldInputType::readonlyAttributeChanged): Ditto.
(WebCore::TextFieldInputType::shouldDrawAutoFillButton): Do not draw AutoFill button
when the field is disabled or read-only.
LayoutTests:
Add tests to ensure that we do no show the AutoFill button in a read-only or disabled field.
Additionally, create directory LayoutTests/fast/forms/auto-fill-button and move existing test
LayoutTests/fast/forms/input-auto-fill-button.html and associated test results into this directory
or the platform-specific variant of this directory.
- fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled-expected.html: Added.
- fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled.html: Added.
- fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly-expected.html: Added.
- fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html: Added.
- fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/fast/forms/input-auto-fill-button-expected.txt.
- fast/forms/auto-fill-button/input-auto-fill-button.html: Renamed from LayoutTests/fast/forms/input-auto-fill-button.html.
- fast/forms/auto-fill-button/input-disabled-auto-fill-button-expected.html: Added.
- fast/forms/auto-fill-button/input-disabled-auto-fill-button.html: Added.
- fast/forms/auto-fill-button/input-readonly-auto-fill-button-expected.html: Added.
- fast/forms/auto-fill-button/input-readonly-auto-fill-button.html: Added.
- fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button-expected.html: Added.
- fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button.html: Added.
- platform/ios-simulator/fast/forms/auto-fill-button/input-auto-fill-button-expected.png: Renamed from LayoutTests/platform/ios-simulator/fast/forms/input-auto-fill-button-expected.png.
- platform/ios-simulator/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/forms/input-auto-fill-button-expected.txt.
- platform/mac-mavericks/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/mac-mavericks/fast/forms/input-auto-fill-button-expected.txt.
- platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/win/fast/forms/input-auto-fill-button-expected.txt.
- 1:39 PM Changeset in webkit [185165] by
-
- 1 edit in trunk/Source/JavaScriptCore/ChangeLog
Remove ChangeLog entry; Mark Lam already fixed this yesterday.
- 1:37 PM Changeset in webkit [185164] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Search field bottom border doesn't match the rest of the toolbar
https://bugs.webkit.org/show_bug.cgi?id=145611
Reviewed by Timothy Hatcher.
- UserInterface/Views/Toolbar.css:
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):
- 1:36 PM Changeset in webkit [185163] by
-
- 1 edit in trunk/Source/JavaScriptCore/ChangeLog
Fix build.
The exitingJITType parameter has been removed, so remove its UNUSED_PARAM declaration.
- bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeExitSiteData):
- 1:34 PM Changeset in webkit [185162] by
-
- 2 edits in trunk/PerformanceTests
Skip Dromaeo/jslib-modify-prototype.html for now.
Unreviewed gardening.
- Skipped:
- 1:08 PM Changeset in webkit [185161] by
-
- 5 edits in trunk/Source/JavaScriptCore
CallLinkStatus should return takesSlowPath if the GC often cleared the IC
https://bugs.webkit.org/show_bug.cgi?id=145502
Reviewed by Geoffrey Garen.
CallLinkInfo now remembers when it has been cleared by GC. This has some safeguards for when
a call gets cleared by GC only because we hadn't converted it into a closure call; in that
case the GC will just tell us that it should be a closure call. The DFG will not optimize
a call that was cleared by GC, and the DFG will always prefer a closure call if the GC told
us that the specific callee was dead but the executable wasn't.
This guards us from some scenarios that came up in Speedometer. It's neutral on the pure JS
benchmarks, most likely just because those benchmarks aren't real enough to have interesting
GC of code.
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::visitWeak):
(JSC::CallLinkInfo::dummy):
- bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::CallLinkInfo):
- bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFromCallLinkInfo):
- 1:04 PM Changeset in webkit [185160] by
-
- 9 edits6 adds in trunk
GetById and PutById profiling should be more precise about it takes slow path
https://bugs.webkit.org/show_bug.cgi?id=145590
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
If a ById access ever takes slow path, we want the DFG and FTL to know this. Previously we
were relying on slow path counts, which conflate slow paths taken due to a megamorphic
access and slow paths taken due to IC building.
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):
- bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::computeForStubInfo):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::StructureStubInfo):
- ftl/FTLIntrinsicRepository.h:
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileGetById):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
LayoutTests:
Added just two more tests for getters and setters. I needed more microbenchmarks to track
down a regression in an earlier version of this patch.
- js/regress/getter-prototype-expected.txt: Added.
- js/regress/getter-prototype.html: Added.
- js/regress/script-tests/getter-prototype.js: Added.
- js/regress/script-tests/setter-prototype.js: Added.
- js/regress/setter-prototype-expected.txt: Added.
- js/regress/setter-prototype.html: Added.
- 12:46 PM Changeset in webkit [185159] by
-
- 21 edits in trunk/LayoutTests
[iOS] Rebaseline expected results for <br>
Unreviewed garderning.
- platform/ios-simulator-wk2/fast/css/text-overflow-ellipsis-bidi-expected.txt:
- platform/ios-simulator-wk2/fast/forms/listbox-hit-test-zoomed-expected.txt:
- platform/ios-simulator/http/tests/navigation/postredirect-basic-expected.txt:
- platform/ios-simulator/http/tests/navigation/postredirect-goback1-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug106795-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug1224-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug131020-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug131020_iframe-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug1430-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug16252-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug19599-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug20579-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug32205-3-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug82946-2-expected.txt:
- platform/ios-simulator/tables/mozilla/bugs/bug92143-expected.txt:
- platform/ios-simulator/tables/mozilla/marvin/tables_cellpadding-expected.txt:
- platform/ios-simulator/tables/mozilla/marvin/tables_cellspacing-expected.txt:
- platform/ios-simulator/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
- platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
- platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
- 11:48 AM Changeset in webkit [185158] by
-
- 2 edits in trunk/Source/JavaScriptCore
Improve test coverage for changes made in 145527
https://bugs.webkit.org/show_bug.cgi?id=145578
Reviewed by Geoffrey Garen.
Added more complexity to poly-setter-combo.js stress test to create more turmoil in the
polymorphic get-by-id / put-by-id with getters and setters to exercise the code change in
https://bugs.webkit.org/show_bug.cgi?id=145527. By changing the objects that the main test
function sees, we are able to test those paths. Verified with temporary logging code.
- tests/stress/poly-setter-combo.js:
(Cons2):
(Cons3):
(Cons4):
(foo):
(test):
(runTestWithConstructors):
- 11:44 AM Changeset in webkit [185157] by
-
- 1 edit3 adds in trunk/LayoutTests
Add missing expected result files for GTK and EFL ports following
<http://trac.webkit.org/changeset/185095>
<http://trac.webkit.org/changeset/181351>
Unreviewed.
- platform/efl/fast/text/crash-complex-text-surrogate-expected.txt: Added.
- platform/gtk/editing/selection/extend-by-character-007-expected.txt: Added.
- platform/gtk/fast/text/crash-complex-text-surrogate-expected.txt: Added.
- 11:37 AM Changeset in webkit [185156] by
-
- 3 edits4 adds in trunk
REGRESSION: (r181879): Scrolling in select/option region in iFrame scrolls both select and iframe
https://bugs.webkit.org/show_bug.cgi?id=145574
<rdar://problem/20966828>
Reviewed by Simon Fraser.
Source/WebCore:
Tested by platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html
When the scroll gesture is started when the latched scrollable container is not at the limit of its
scroll region, we are NOT supposed to propagate the scroll event to the enclosing region. However,
we were doing two things wrong:
(1) When we recognized we were latching, we were using the right wheel event target, but not using
the latched scrollable container.
(2) Likewise, we were not using latched ScrollableArea when handling wheel events.
Instead, we were using the current scrollable container and ScrollableArea under the mouse pointer,
which could be different from the point we started latching as the content scrolled.
The fix was to properly track the scrollable container and scrollable area during latching.
I attempted to store the latched ScrollableArea in the latchingState object, like we already do for the
scrollable container, but found that this did not work properly. I think the life cycle of the
ScrollableArea may not match the scrollable container, and since they are not reference counted I
simply retrieve the ScrollableArea when needed.
- page/mac/EventHandlerMac.mm:
(WebCore::scrollableAreaForContainerNode): Helper function to return the correct ScrollableArea
for the two types of RenderBox elements.
(WebCore::latchedToFrameOrBody): Helper predicate to identify Frame and Body elements.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use the correct ScrollableArea for the given
ContainerNode. When latching, make sure to use the ScrollableArea that is related to the latched scrollable
container, not the area currently underneath the mouse pointer.
LayoutTests:
- platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select-expected.txt: Added.
- platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html: Added.
- platform/mac-wk2/tiled-drawing/scrolling/frames/select_iframe.html: Added.
- 10:33 AM Changeset in webkit [185155] by
-
- 9 edits13 adds in trunk
REGRESSION (r183498): Certain types of frame loads in iframes with <base target="_blank"> can open urls in new window/tabs
https://bugs.webkit.org/show_bug.cgi?id=145580
Reviewed by Mark Lam.
Source/WebCore:
Tests: fast/loader/fragment-navigation-base-blank.html
fast/loader/iframe-meta-refresh-base-blank.html
fast/loader/iframe-set-location-base-blank.html
fast/loader/refresh-iframe-base-blank.html
Before 183498, callers of FrameLoader::changeLocation() got automatically assigned a frame name of "_self".
After 183498, many remained without a frame name.
Later on, FrameLoader applies the <base> target as their frame name if they don't already have one.
When the <base> target is "_blank", that causes a new window/tab.
Restoring "_self" to these call sites fixes this.
- inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openInNewTab):
- inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::navigate):
- loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):
- loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleLocationChange):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
Tools:
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::didSameDocumentNavigationForFrame): Implement the dump for "didChangeLocationWithinPageForFrame"
LayoutTests:
- fast/loader/fragment-navigation-base-blank-expected.txt: Added.
- fast/loader/fragment-navigation-base-blank.html: Added.
- fast/loader/iframe-meta-refresh-base-blank-expected.txt: Added.
- fast/loader/iframe-meta-refresh-base-blank.html: Added.
- fast/loader/iframe-set-location-base-blank-expected.txt: Added.
- fast/loader/iframe-set-location-base-blank.html: Added.
- fast/loader/refresh-iframe-base-blank-expected.txt: Added.
- fast/loader/refresh-iframe-base-blank.html: Added.
- fast/loader/resources/fragment-navigation-base-blank.html: Added.
- fast/loader/resources/iframe-meta-refresh-base-blank.html: Added.
- fast/loader/resources/iframe-set-location-base-blank.html: Added.
- fast/loader/resources/notify-done-with-window-count.html: Added.
- fast/loader/resources/refresh-iframe-base-blank-frame.html: Added.
- 9:56 AM Changeset in webkit [185154] by
-
- 2 edits in trunk/Tools
Attempt to fix CSSPropertyParserTest.GridTrackLimits API test after http://trac.webkit.org/r185147
- TestWebKitAPI/Tests/WebCore/CSSParser.cpp:
(TestWebKitAPI::TEST): Update the syntax.
- 9:40 AM Changeset in webkit [185153] by
-
- 2 edits in trunk/Source/WebCore
More iOS build fixing.
- platform/spi/mac/AVFoundationSPI.h:
- 8:36 AM Changeset in webkit [185152] by
-
- 4 edits2 adds in trunk
Subpixel rendering: Composited layer with subpixel gap does not get painted properly when its position changes.
https://bugs.webkit.org/show_bug.cgi?id=145587
Reviewed by Simon Fraser.
The composited layer always snaps to an enclosing device pixel (floors) while the renderer rounds.
At certain positions (for example 0.5px on a 1x display), a gap is formed between the layer(0px) and its renderer(1px).
In such cases, when the the renderer moves to a position (1.1px) where the gap is closed, we need to issue repaint on the layer
in order to get the renderering right.
Source/WebCore:
Test: compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::devicePixelFractionGapFromRendererChanged):
(WebCore::RenderLayerBacking::updateGeometry):
- rendering/RenderLayerBacking.h:
LayoutTests:
- compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves-expected.html: Added.
- compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves.html: Added.
- 7:58 AM Changeset in webkit [185151] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught exception starting a NavigationBar drag and mousing over a different NavigationBar
https://bugs.webkit.org/show_bug.cgi?id=145589
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-03
Reviewed by Timothy Hatcher.
- UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype._mouseDown):
(WebInspector.NavigationBar.prototype._mouseUp):
When mouse dragging for navigation bars, only match against navigation
bar items inside this navigation bar. Also, fix horizontal detection
of navigation bar items by scanning in the middle of the navigation
bar instead of the top, which missed the items.
- 7:55 AM Changeset in webkit [185150] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Debugger Popover for Node object should have go-to-arrow to show the node in DOM tree
https://bugs.webkit.org/show_bug.cgi?id=145594
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-03
Reviewed by Timothy Hatcher.
- UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.inspectElement):
Previously we could get an exception later on if we tried to
inspect an element that was not in the DOM. Bail if the node
is not in the DOM or not.
- UserInterface/Views/SourceCodeTextEditor.css:
(.popover .debugger-popover-content > .title > .go-to-arrow):
- UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject.data.pushNodeToFrontend):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
For a node type, add a go-to-arrow in the popover if it is in the DOM or not.
- 1:16 AM WebKitGTK/StartHacking edited by
- (diff)
- 12:35 AM Changeset in webkit [185149] by
-
- 2 edits in trunk/Source/WebCore
[Streams API] ReadableStreamReader::closed() should be called once by binding code
https://bugs.webkit.org/show_bug.cgi?id=145551
Reviewed by Darin Adler.
Covered by existing tests.
- bindings/js/JSReadableStreamReaderCustom.cpp:
(WebCore::JSReadableStreamReader::closed): Calling ReadableStreamReader::closed only at creation of the promise.