Timeline
May 26, 2016:
- 10:43 PM Changeset in webkit [201447] by
-
- 3 edits4 adds in trunk
Preload single download tests.
https://bugs.webkit.org/show_bug.cgi?id=157988
Reviewed by Alex Christensen.
Source/WebCore:
ResourceTiming entries for some subresource weren't registered as resource->response().isHTTP() was false, since
resource->response().url() was empty. I switched the check to use resource->resourceRequest().url() directly instead.
Test: http/tests/preload/single_download_preload_runner.html
- loader/ResourceTimingInformation.cpp:
(WebCore::ResourceTimingInformation::addResourceTiming):
LayoutTests:
Make sure preload is only downloading a single resource, which is properly reused.
- http/tests/preload/resources/single_download_preload.html: Added.
- http/tests/preload/single_download_preload_runner-expected.txt: Added.
- http/tests/preload/single_download_preload_runner.html: Added.
- 10:40 PM Changeset in webkit [201446] by
-
- 2 edits in trunk/LayoutTests
Unreviewed EFL gardening.
Release some passing tests which have been marked to Crash, Failure.
- platform/efl/TestExpectations:
- 8:31 PM Changeset in webkit [201445] by
-
- 7 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r201436.
https://bugs.webkit.org/show_bug.cgi?id=158143
Caused 30% regression on Dromaeo DOM core tests (Requested by
rniwa on #webkit).
Reverted changeset:
"REGRESSION: JSBench spends a lot of time transitioning
to/from dictionary"
https://bugs.webkit.org/show_bug.cgi?id=158045
http://trac.webkit.org/changeset/201436
- 8:19 PM Changeset in webkit [201444] by
-
- 2 edits in trunk/Source/WebKit2
Certain NetworkResourceLoader callbacks can deref a null m_networkLoad.
https://bugs.webkit.org/show_bug.cgi?id=158134
Reviewed by Alex Christensen.
It's legit for m_networkLoad to be null in these callbacks.
We need null checks, just like we have in many other callbacks in this class.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace):
- 6:41 PM Changeset in webkit [201443] by
-
- 3 edits2 adds in trunk
AX: Wrong CharacterOffset from VisiblePosition with composed characters
https://bugs.webkit.org/show_bug.cgi?id=158138
Reviewed by Chris Fleizach.
Source/WebCore:
The conversion logic is not correct when the text node contains composed characters.
We should use VisiblePosition's offset directly for text nodes so we won't mess things up.
Test: accessibility/mac/character-offset-visible-position-conversion-with-emoji.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::visiblePositionFromCharacterOffset):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
LayoutTests:
- accessibility/mac/character-offset-visible-position-conversion-with-emoji-expected.txt: Added.
- accessibility/mac/character-offset-visible-position-conversion-with-emoji.html: Added.
- 5:40 PM Changeset in webkit [201442] by
-
- 29 edits in trunk
[JSC] Allow JSBench to use precise time
https://bugs.webkit.org/show_bug.cgi?id=158050
Reviewed by Geoffrey Garen.
PerformanceTests:
- JSBench/amazon-chrome-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/amazon-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/amazon-firefox-win/urm.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/amazon-firefox/urm.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/amazon-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-chrome-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-firefox-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-firefox/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-chrome-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-firefox-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-firefox/uem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/harness.js:
(runBenchmark.window.currentTimeInMS):
(runBenchmark.else.window.currentTimeInMS):
- JSBench/twitter-chrome-win/rem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/twitter-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/twitter-firefox-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/twitter-firefox/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/twitter-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-chrome-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-firefox-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-firefox/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
Tools:
JSBench use
new Date().getTime()without options and there is no way to use precise time.
This patch modifies the JSBench code to inject the code taking the precise time.
currentTimeInMSis given by the benchmerk harness and JSBench uses it.
run-jsc-benchmark switches this function's implementation betweenDate.now()and
testRunner's precise time one.
While this patch modifies the code of JSBench, the last release of JSBench is Jan 2013 and
the contents are not changed for a long time. As described in the original paper[1], the
tests can be generated by using JSBench's record & replay system, but in that case, we can
adopt this modification by changing the tool side.
We also add currentTimeInMS implementation in harness.js and u?rem.js directly.
u?rem.js implementation is required when it is executed in u?rem.html without harness.
And harness.js implementation is required when it is executed in the JSBench's harness.
In these implementation, we follow the JetStream's time measuring function: performance.now(),
preciseTime(), or Date.now().
[1]: http://dl.acm.org/citation.cfm?id=2048119
- Scripts/run-jsc-benchmarks:
- 5:05 PM Changeset in webkit [201441] by
-
- 59 edits in trunk/Source
Media queries and platform screen modernization and streamlining
https://bugs.webkit.org/show_bug.cgi?id=158067
Reviewed by Alex Christensen.
Source/WebCore:
- bindings/objc/DOM.mm:
(-[DOMHTMLLinkElement _mediaQueryMatches]): Use references, use fastGetAttribute,
pass a document instead of a frame to the media query evaluator and a reference instead
of a pointer.
- css/CSSGrammar.y.in: Use "expression" instead of "exp" for media query expressions.
Update vectors and arguments to move media query expressions instead of using unique_ptr.
- css/CSSImportRule.h: Use pragma once. Removed unneeded forward declarations.
Made more overrides private and marked them final.
- css/CSSParser.cpp:
(WebCore::CSSParser::SourceSize::SourceSize): Added missing WTFMove to avoid reference
count churn. Changed type of expression to no longer use unique_ptr.
(WebCore::CSSParser::sourceSize): Ditto.
- css/CSSParser.h: Changed SourceSize::expression to no longer use unique_ptr.
Also changed SourceSize::length to be Ref instead of RefPtr.
- css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::appendAuthorStyleSheets): Updated for changes to
MediaQueryEvaluator.
- css/MediaFeatureNames.cpp:
(WebCore::MediaFeatureNames::init): Streamlined a bit. Removed "MediaFeature" suffix from
names of media feature strings.
- css/MediaFeatureNames.h: Use pragma once. Changed media feature name globals
to use normal WebKit naming style instead of all lowercase with underscores.
Sorted alphabetically. Removed "MediaFeature" suffix from names of media feature strings.
- css/MediaList.cpp:
(WebCore::MediaQuerySet::MediaQuerySet): Simplified copy constructor since the queries
vector can now be copied normally.
(WebCore::parseMediaDescriptor): Normalized types and changed to use isASCIIAlphanumeric.
The old code was not handling '0' the way the comment said it did.
(WebCore::MediaQuerySet::internalParse): Added. Helper function to cut down on redundant
code in functions below.
(WebCore::MediaQuerySet::parse): Use stripLeadingAndTrailingHTMLSpaces instead of
stripWhiteSpace. Streamlined logic using helper function. Updated to use a vector of
queries instead of a vector of unique_ptr.
(WebCore::MediaQuerySet::add): Use internalParse.
(WebCore::MediaQuerySet::remove): Ditto.
(WebCore::MediaQuerySet::addMediaQuery): Changed argument type to not be unique_ptr.
(WebCore::MediaQuerySet::mediaText): Use modern for loop.
(WebCore::MediaList::MediaList): Initialize pointers to null in the class definition
rather than in these constructors.
(WebCore::MediaList::setMediaText): Removed unhelpful local variable.
(WebCore::MediaList::item): Updated since queries no longer use unique_ptr.
(WebCore::addResolutionWarningMessageToConsole): Changed argument types to references
instead of pointers with assertions.
(WebCore::reportMediaQueryWarningIfNeeded): Updated to modernize.
- css/MediaList.h: Use pragma once. Removed unneeded includes and forward declarations.
Changed vector to contain media queries instead of unique_ptr. Use nullptr instead of 0.
Initialize pointers to null here.
- css/MediaQuery.cpp: Deleted now-unneeded copy constructor and destructor. Both are
correctly generated without us writing them explicitly.
(WebCore::MediaQuery::serialize): Rewrote to streamline.
(WebCore::MediaQuery::MediaQuery): Updates since expressions are no longer unique_ptr.
(WebCore::MediaQuery::cssText): Changed return type to reference.
- css/MediaQuery.h: Use pragma once. Added include since this now includes media query
expressions, not just unique_ptr. Deleted the unneeded copy function.
- css/MediaQueryEvaluator.cpp:
(WebCore::isViewportDependent): Moved this here. It used to be a member function of
MediaQueryExp, but this file has a lot more functions about specific features and how
they are evaluated, so it really belongs here.
(WebCore::MediaQueryEvaluator::MediaQueryEvaluator): Changed constructor to take a
document instead of a frame. Initialize the fallback result in the class definition.
(WebCore::MediaQueryEvaluator::evaluate): Changed the argument type to a reference.
(WebCore::compareValue): Made both of the arguments separate template types. This
helps us compare an integer to a double without lots of type casts.
(WebCore::compareAspectRatioValue): Changed to use early return style and got rid of
the casts to int so we will do the work in double instead.
(WebCore::doubleValue): Replaced the old numberValue function with this. Since values
are stored as doubles, it's much better to use double rather than float.
(WebCore::zeroEvaluate): Added. Helpful for the many functions that just need to
evaluate as 0.
(WebCore::oneEvaluate): Ditto.
(WebCore::colorEvaluate): Renamed this and all the functions below. Simplified the logic
to use the new doubleValue function.
(WebCore::colorIndexEvaluate): Use zeroEvaluate.
(WebCore::colorGamutEvaluate): No longer use page just to get from the frame to the
main frame.
(WebCore::monochromeEvaluate): Simplify logic using zeroEvaluate.
(WebCore::invertedColorsEvaluate): Use auto for the keyword; easier to read.
(WebCore::orientationEvaluate): Use early return style.
(WebCore::aspectRatioEvaluate): Ditto.
(WebCore::deviceAspectRatioEvaluate): Simplified logic and removed type casts.
(WebCore::evaluateResolution): Added a couple null checks.
(WebCore::devicePixelRatioEvaluate): Renamed. Added missing type check.
(WebCore::resolutionEvaluate): Ditto.
(WebCore::gridEvaluate): Use zeroEvaluate.
(WebCore::computeLength): Added a null check.
(WebCore::deviceHeightEvaluate): Use early return.
(WebCore::deviceWidthEvaluate): Ditto.
(WebCore::heightEvaluate): Ditto.
(WebCore::widthEvaluate): Ditto.
(WebCore::minColorEvaluate): Updated name only.
(WebCore::maxColorEvaluate): Ditto.
(WebCore::minColorIndexEvaluate): Ditto.
(WebCore::maxColorIndexEvaluate): Ditto.
(WebCore::minMonochromeEvaluate): Ditto.
(WebCore::maxMonochromeEvaluate): Ditto.
(WebCore::minAspectRatioEvaluate): Ditto.
(WebCore::maxAspectRatioEvaluate): Ditto.
(WebCore::minDeviceAspectRatioEvaluate): Ditto.
(WebCore::maxDeviceAspectRatioEvaluate): Ditto.
(WebCore::minDevicePixelRatioEvaluate): Ditto.
(WebCore::maxDevicePixelRatioEvaluate): Ditto.
(WebCore::minHeightEvaluate): Ditto.
(WebCore::maxHeightEvaluate): Ditto.
(WebCore::minWidthEvaluate): Ditto.
(WebCore::maxWidthEvaluate): Ditto.
(WebCore::minDeviceHeightEvaluate): Ditto.
(WebCore::maxDeviceHeightEvaluate): Ditto.
(WebCore::minDeviceWidthEvaluate): Ditto.
(WebCore::maxDeviceWidthEvaluate): Ditto.
(WebCore::minResolutionEvaluate): Ditto.
(WebCore::maxResolutionEvaluate): Ditto.
(WebCore::animationEvaluate): Use oneEvaluate.
(WebCore::transitionEvaluate): Ditto.
(WebCore::transform2dEvaluate): Ditto.
(WebCore::transform3dEvaluate): Simplify using zeroEvaluate and oneEvaluate.
(WebCore::viewModeEvaluate): Simplified logic with fewer local variables and the name "keyword".
(WebCore::videoPlayableInlineEvaluate): Use reference.
(WebCore::hoverEvaluate): Simplify using keyword.
(WebCore::anyHoverEvaluate): Just updated name.
(WebCore::pointerEvaluate): Simplify using keyword.
(WebCore::anyPointerEvaluate): Just updated name.
(WebCore::add): Added. Helper for building up the media query function map.
(WebCore::MediaQueryEvaluator::evaluate): Moved code to build the function map in here in
a lambda, rather than having it in a separate global function.
- css/MediaQueryEvaluator.h: Use pragma once. Removed uneeded includes. Simplified comments and
modernized their style.
- css/MediaQueryExp.cpp:
(WebCore::isFeatureValidWithIdentifier): Renamed to make it clearer what this does. Updated
to take a reference and use te new feature names.
(WebCore::isFeatureValidWithNonNegativeLengthOrNumber): Ditto.
(WebCore::isFeatureValidWithDensity): Ditto.
(WebCore::isFeatureValidWithNonNegativeInteger): Ditto.
(WebCore::isFeatureValidWithNonNegativeNumber): Ditto.
(WebCore::isFeatureValidWithZeroOrOne): Ditto.
(WebCore::isAspectRatioFeature): Ditto.
(WebCore::isFeatureValidWithoutValue): Ditto.
(WebCore::isFeatureValidWithNumberWithUnit): Added. Helper that calls multiple functions above.
(WebCore::isFeatureValidWithNumber): Ditto.
(WebCore::isSlash): Added. Helper to make aspect ratio code below easier to read.
(WebCore::isPositiveIntegerValue): Ditto.
(WebCore::MediaQueryExpression::MediaQueryExpression): Rearranged code to be much less wordy and
to not use current/next.
- css/MediaQueryExp.h: Use pragma once. Renamed class to MediaQueryExpression. Removed
the isViewportDependent function, now part of MediaQueryEvaluator. Removed unneeded includes.
- css/MediaQueryList.cpp:
(WebCore::MediaQueryList::MediaQueryList): Marked this inline. Use a reference and a Ref&&
instead of PassRefPtr.
(WebCore::MediaQueryList::create): Updated argument types.
(WebCore::MediaQueryList::addListener): Updated argument type and use releaseNonNull.
(WebCore::MediaQueryList::removeListener): Updated argument types.
(WebCore::MediaQueryList::evaluate): Ditto.
(WebCore::MediaQueryList::matches): More of the same.
- css/MediaQueryList.h: Use pragma once. Changed types to use references, RefPtr&& and Ref&&.
- css/MediaQueryMatcher.cpp:
(WebCore::MediaQueryMatcher::MediaQueryMatcher): Take a reference.
(WebCore::MediaQueryMatcher::documentDestroyed): Use nullptr.
(WebCore::MediaQueryMatcher::documentElementUserAgentStyle): Use auto.
(WebCore::MediaQueryMatcher::evaluate): Take a reference. Updated for changes to MediaQueryEvaluator.
(WebCore::MediaQueryMatcher::matchMedia): Updated for above changes.
(WebCore::MediaQueryMatcher::addListener): Use Ref&& and reference for arguments. Simplify code.
(WebCore::MediaQueryMatcher::removeListener): Ditto.
(WebCore::MediaQueryMatcher::styleResolverChanged): Moved the logic for evaluating each query here.
Updated for changes to MediaQueryEvaluator.
- css/MediaQueryMatcher.h: Use pragma once. Changed create to take a reference. Tightened argument
types for addListener and removeListener. Made the private Listener a simple struct rather than a
class. Initialized m_evaluationRound.
- css/RuleSet.cpp:
(WebCore::RuleSet::addChildRules): Updated for changes to MediaQueryEvaluator.
(WebCore::RuleSet::addRulesFromSheet): Ditto.
- css/SourceSizeList.cpp:
(WebCore::match): Updated to use MediaQueryEvaluator in a simpler way.
(WebCore::defaultLength): Use a reference and simpler syntax.
(WebCore::computeLength): Ditto.
(WebCore::parseSizesAttribute): Changed arguments to take a Document instead of both a
RenderView and a Frame.
- css/SourceSizeList.h: Use #pragma once. Change parseSizesAttribute to take a Document.
- css/StyleMedia.cpp:
(WebCore::StyleMedia::matchMedium): Update for changes to MediaQueryEvaluator.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver): Use a MediaQueryEvaluator instead of a unique_ptr
to one.
(WebCore::StyleResolver::appendAuthorStyleSheets): Ditto.
(WebCore::StyleResolver::styleForElement): Ditto.
(WebCore::StyleResolver::pseudoStyleForElement): Ditto.
(WebCore::StyleResolver::pseudoStyleRulesForElement): Ditto.
(WebCore::StyleResolver::addViewportDependentMediaQueryResult): Use references instead of
ponters, and use a vector of MediaQueryResult instead of unique_ptr.
(WebCore::StyleResolver::hasMediaQueriesAffectedByViewportChange): Use a modern for loop.
- css/StyleResolver.h: Use a MediaQueryEvaluator instead of a unique_ptr to one.
Use a vector of MediaQueryResult instead of a vector of unique_ptr.
- dom/Document.cpp:
(WebCore::Document::mediaQueryMatcher): Pass a reference instead of a pointer.
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::createSheet): Updated for changes to MediaQueryEvaluator.
- editing/TextIterator.cpp:
(WebCore::SimplifiedBackwardsTextIterator::advance): Removed a stray space (unrelated to
the rest of the patch).
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Updated for changes to the
MediaQueryEvaluator class. Also use auto a bit more and eliminated a double hash table
lookup in code that used hasAttribute followed by fastGetAttribute.
(WebCore::HTMLImageElement::selectImageSource): Updated for changes to parseSizesAttribute.
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process): Updated for changes to MediaQueryEvaluator.
(WebCore::HTMLLinkElement::setCSSStyleSheet): Use auto.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::selectNextSourceChild): Updated for changes to MediaQueryEvaluator.
- html/HTMLPictureElement.cpp:
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture): Updated for changes to
MediaQueryEvaluator.
- html/HTMLPictureElement.h: Use #pragma once. Changed viewport dependent media query results
vector to be a vector of results, not of unique_ptr.
- html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): Updated for changes to
parseSizesAttribute.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Updated for changes to
MediaQueryEvaluator.
- html/parser/HTMLResourcePreloader.cpp:
(WebCore::mediaAttributeMatches): Updated for changes to MediaQueryEvaluator.
(WebCore::HTMLResourcePreloader::preload): Ditto.
- page/DOMWindow.cpp: Removed unneeded include of PlatformScreen.h.
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::effectiveMousePositionForSelectionAutoscroll): Simplified code and
updated for changes to PlatformScreenMac functions.
- platform/PlatformScreen.h: Use #pragma once. Use using instad of typedef. Put the typedef
for PlatformDisplayID inside the WebCore namespace. Removed the typedef for ColorProfile.
Renamed the functions that find a screen to just "screen".
- platform/graphics/DisplayRefreshMonitorClient.cpp:
(WebCore::DisplayRefreshMonitorClient::DisplayRefreshMonitorClient): Moved initialization
of booleans to the class definition.
- platform/graphics/DisplayRefreshMonitorClient.h: Use pragma once. Removed unneeded
forward declarations. Changed display ID data member to be an Optional instead of a boolean
paired with another data member.
- platform/graphics/GraphicsLayerUpdater.h: Use pragma once. Removed unneeded include of
PlatformScreen.h.
- platform/image-decoders/ImageDecoder.h: Use pragma once. Moved ColorProfile here from
PlatformScreen.h, since it's not used there. and is used here.
- platform/mac/PlatformEventFactoryMac.h: Use parma once. Changed reutrn type of the
globalPoint function to NSPoint. Tweaked comments and formatting a bit.
- platform/mac/PlatformEventFactoryMac.mm:
(WebCore::globalPoint): Changed return type to NSPoint and so removed the explicit
conversion to IntPoint.
(WebCore::globalPointForEvent): Changed return type to NSPoint.
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder): Moved conversion to
IntPoint in here. Also got rid of special indenting style and just indented normally.
(WebCore::PlatformWheelEventBuilder::PlatformWheelEventBuilder): Ditto.
(WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder): Ditto.
- platform/mac/PlatformScreenMac.mm:
(WebCore::displayID): Renamed from displayIDFromScreen and displayFromWidget since this
is C++ and we have overloading to determine the types of arguments. Added a null check
of the how dinwo pointer.
(WebCore::firstScreen): Added. Helper used below.
(WebCore::window): Added. Helper used below.
(WebCore::screen): Renamed from screenForWidget and screenFromWindow and removed the
unneeded window argument from the widget version.
(WebCore::screenDepth): Simplified, using new helpers.
(WebCore::screenDepthPerComponent): Ditto.
(WebCore::screenIsMonochrome): Tweaked comment.
(WebCore::screenHasInvertedColors): Ditto.
(WebCore::screenRect): Simplified using new elpers.
(WebCore::screenAvailableRect): Ditto.
(WebCore::screenSupportsExtendedColor): Streamlined using fewer local variables and
using auto for types of the results of adoptCF.
(WebCore::toUserSpace): Updated for function name changes.
(WebCore::toDeviceSpace): Ditto.
Source/WebKit/mac:
- WebView/WebFrame.mm:
(-[WebFrame _dragSourceEndedAt:operation:]): Updated to use the new version of
globalPoint, which returns an NSPoint.
Source/WebKit2:
- Shared/mac/WebEventFactory.mm:
(WebKit::screenForWindow): Deleted.
(WebKit::flipScreenPoint): Deleted.
(WebKit::globalPoint): Deleted.
(WebKit::globalPointForEvent): Use globalPoint function from WebCore so we don't need
copies of everything in here.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::windowDidChangeScreen): Removed unneeded type cast.
(WebKit::WebViewImpl::draggedImage): Added type cast since globalPoint now returns an
NSPoint rather than an IntPoint.
- UIProcess/WebPageProxy.h: Use pragma once. Add a WebCore prefix to a use of
PlatformDisplayID, since that is now inside the WebCore namespace.
- WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.
- WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h: Ditto.
- WebProcess/WebPage/DrawingArea.h: Ditto.
- WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: Ditto.
- 4:53 PM Changeset in webkit [201440] by
-
- 10 edits in trunk/Source
Purge PassRefPtr in Modules/battery
https://bugs.webkit.org/show_bug.cgi?id=157062
Reviewed by Darin Adler.
Use RefPtr<>& to reduce uses of PassRefPtr in WebKit.
Source/WebCore:
- Modules/battery/BatteryClient.h:
- Modules/battery/BatteryController.cpp:
(WebCore::BatteryController::BatteryController):
(WebCore::BatteryController::~BatteryController):
(WebCore::BatteryController::addListener):
(WebCore::BatteryController::removeListener):
(WebCore::BatteryController::updateBatteryStatus):
(WebCore::BatteryController::didChangeBatteryStatus):
(WebCore::provideBatteryTo):
- Modules/battery/BatteryController.h:
- Modules/battery/BatteryManager.cpp:
(WebCore::BatteryManager::didChangeBatteryStatus):
(WebCore::BatteryManager::updateBatteryStatus):
- Modules/battery/BatteryManager.h:
- Modules/battery/BatteryStatus.h:
- testing/Internals.cpp:
(WebCore::Internals::setBatteryStatus):
Source/WebKit2:
- WebProcess/Battery/WebBatteryManager.cpp:
(WebKit::WebBatteryManager::didChangeBatteryStatus):
(WebKit::WebBatteryManager::updateBatteryStatus):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
- 4:40 PM Changeset in webkit [201439] by
-
- 1 edit2 adds in trunk/LayoutTests
DOM mutation methods fail to re-check validity of node insertion after removing nodes from old parent
https://bugs.webkit.org/show_bug.cgi?id=81991
<rdar://problem/11120506>
Reviewed by Chris Dumez.
Add a test case for an old DOM mutation bug that was fixed long ago.
- fast/dom/circular-dom-tree-crash-expected.txt: Added.
- fast/dom/circular-dom-tree-crash.html: Added.
- 4:05 PM Changeset in webkit [201438] by
-
- 2 edits in trunk/Source/WebInspectorUI
Uncaught Exception: TypeError: undefined is not an object (evaluating 'records[endIndex].endTime')
https://bugs.webkit.org/show_bug.cgi?id=158057
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineViewTimes):
When the entire recording is selected, rendering frames should use the
record count as its end time instead of the recording's end time.
- 4:03 PM Changeset in webkit [201437] by
-
- 2 edits in trunk/LayoutTests
Marking js/function-apply.html as a flaky timeout on mac debug wk2
https://bugs.webkit.org/show_bug.cgi?id=158133
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:30 PM Changeset in webkit [201436] by
-
- 7 edits in trunk/Source/JavaScriptCore
REGRESSION: JSBench spends a lot of time transitioning to/from dictionary
https://bugs.webkit.org/show_bug.cgi?id=158045
Reviewed by Saam Barati.
15% speedup on jsbench-amazon-firefox, possibly 5% speedup overall on jsbench.
This regression seems to have two parts:
(1) Transitioning the window object to/from dictionary is more expensive
than it used to be to because the window object has lots more properties.
The window object has more properties because, for WebIDL compatibility,
we reify DOM APIs as properties when you delete.
(2) DOM prototypes transition to/from dictionary upon creation
because, once again for WebIDL compatibility, we reify their static
APIs eagerly.
The solution is to chill out a bit on dictionary transitions.
- bytecode/ObjectPropertyConditionSet.cpp: Don't flatten a dictionary
if we've already done so before. This avoids pathological churn, and it
is our idiom in other places.
- interpreter/Interpreter.cpp:
(JSC::Interpreter::execute): Do flatten the global object unconditionally
if it is an uncacheable dictionary because the global object is super
important.
- runtime/BatchedTransitionOptimizer.h:
(JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
(JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer): Deleted.
Don't transition away from dictionary after a batched set of property
puts because normal dictionaries are cacheable and that's a perfectly
fine state to be in -- and the transition is expensive.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init): Do start the global object out as a cacheable
dictionary because it will inevitably have enough properties to become
a dictionary.
- runtime/Operations.h:
(JSC::normalizePrototypeChain): Same as ObjectPropertyConditionSet.cpp.
- 3:05 PM Changeset in webkit [201435] by
-
- 6 edits in trunk/Source/WebCore
Add WebKitAdditions extension point in HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=158097
Reviewed by Eric Carlson.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldOverrideBackgroundLoadingRestriction):
We need to load data in the background if playing to wireless playback target.
(WebCore::HTMLMediaElement::fullscreenModeChanged):
Moved from header file.
- html/HTMLMediaElement.h:
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::clientWillPausePlayback):
The code to start m_clientDataBufferingTimer is also in visibilityChanged().
Moved that code to PlatformMediaSession::scheduleClientDataBufferingCheck() and call
that method here.
(WebCore::PlatformMediaSession::visibilityChanged):
Call PlatformMediaSession::scheduleClientDataBufferingCheck().
(WebCore::PlatformMediaSession::scheduleClientDataBufferingCheck):
Start m_clientDataBufferingTimer if it's not already active.
(WebCore::PlatformMediaSession::shouldOverrideBackgroundLoadingRestriction):
Call the client.
- platform/audio/PlatformMediaSession.h:
(WebCore::PlatformMediaSessionClient::shouldOverrideBackgroundLoadingRestriction):
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::sessionCanLoadMedia):
Call the new PlatformMediaSession::shouldOverrideBackgroundLoadingRestriction().
- 3:03 PM Changeset in webkit [201434] by
-
- 2 edits in trunk/Tools
Unreviewed test fix after r201427.
https://bugs.webkit.org/show_bug.cgi?id=157423
<rdar://problem/23751632>
A debug assertion was firing during some test runs due to the Geolocation permission
being turned off during the test. The timer logic was originally written to assert
if the timer fired when permissions were disabled. But this is no longer valid,
because we expect the Geolocation system to be active and become deactivated if the
browsing context violates one of the security criteria.
- DumpRenderTree/mac/UIDelegate.mm:
(-[UIDelegate timerFired]): Remove invalid assertion.
- 2:58 PM Changeset in webkit [201433] by
-
- 7 edits1 add in trunk
ScopedLambda should have a lifetime story that makes sense to the compiler
https://bugs.webkit.org/show_bug.cgi?id=158118
Reviewed by Mark Lam.
Source/WTF:
Prior to this change, there were two lifetime bugs in ScopedLambda:
- scopedLambda(Functor&&) would bind Functor to const lambda&, so the resulting ScopedLambdaFunctor would hold a reference to the original lambda. This would have surprising behavior; for example it meant that this code was wrong:
auto l = scopedLambda<things>([&] ...);
The solution is to have explicit copy/move versions of scopedLambda() rather than rely on perfect
forwarding.
- ScopedLambdaFunctor did not override its copy or move operations, so if the compiler did not RVO scopedLambda(), it would return a ScopedLambdaFunctor whose m_arg points to a dead temporary ScopedLambdaFunctor instance. The solution is to have explicit copy/move constructors and operators, which preserve the invariant that ScopedLambda::m_arg points to this.
One nice side-effect of all of these constructors and operators being explicit is that we can rely
on WTFMove's excellent assertions, which helped catch the first issue.
This reverts ParkingLot to use ScopedLambda again.
- wtf/ParkingLot.cpp:
(WTF::ParkingLot::parkConditionallyImpl):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkOneImpl):
- wtf/ParkingLot.h:
(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::unparkOne):
- wtf/ScopedLambda.h:
(WTF::scopedLambda):
Tools:
Added a test case. This test crashes before the fix and now it passes.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/ScopedLambda.cpp: Added.
(TestWebKitAPI::TEST):
- 2:57 PM Changeset in webkit [201432] by
-
- 3 edits in trunk/Source/WebCore
Use std::atomic<> rather than OSAtomicIncrement in CARingBuffer.cpp
https://bugs.webkit.org/show_bug.cgi?id=158129
Reviewed by Eric Carlson.
std::atomic is a more portable atomic primitive than OSAtomicIncrement.
- platform/audio/mac/CARingBuffer.cpp:
(WebCore::CARingBuffer::setCurrentFrameBounds):
(WebCore::CARingBuffer::getCurrentFrameBounds):
(WebCore::CARingBuffer::currentStartFrame):
(WebCore::CARingBuffer::currentEndFrame):
- platform/audio/mac/CARingBuffer.h:
- 2:24 PM Changeset in webkit [201431] by
-
- 3 edits in trunk/Tools
Build fix
Rubber stamped by Lucas Forschler.
- DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
- WebKitTestRunner/Configurations/DebugRelease.xcconfig:
- 2:21 PM Changeset in webkit [201430] by
-
- 4 edits in trunk/Source
Build fix
Rubber stamped by Lucas Forschler.
- Configurations/DebugRelease.xcconfig:
- 1:37 PM Changeset in webkit [201429] by
-
- 2 edits in trunk/Source/WebCore
Rebaseline bindings tests after r201428
Unreviewed test gardening.
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjReplaceableAttribute):
- 12:51 PM Changeset in webkit [201428] by
-
- 7 edits in trunk
replaceable own properties seem to ignore replacement after property caching
https://bugs.webkit.org/show_bug.cgi?id=158091
Reviewed by Darin Adler.
PerformanceTests:
- MallocBench/MallocBench.xcodeproj/project.pbxproj:
- MallocBench/MallocBench/Benchmark.cpp:
- MallocBench/MallocBench/Interpreter.cpp:
(Interpreter::doMallocOp):
- MallocBench/MallocBench/Interpreter.h:
- MallocBench/MallocBench/fastMallocLog.63316.ops: Added.
- MallocBench/MallocBench/jetstream.cpp: Added.
(benchmark_jetstream):
- MallocBench/MallocBench/jetstream.h: Added.
Source/JavaScriptCore:
- runtime/Lookup.h:
(JSC::replaceStaticPropertySlot): New helper function for replacing a
static property with a direct property. We need to do an attribute changed
transition because client code might have cached our static property.
Source/WebCore:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Use our new replacement helper if we're replacing
an own static property with an own direct property. Because we advertise
that our own static properties are cacheable, we need to do a structure
transition to indicate when they change. (Only own properties need this
special treatment because JSC considers it normal to shadow a prototype
property with an own property.)
LayoutTests:
- js/cached-window-properties.html: Augmneted this test to enter cacheable
dictionary mode in order to demonstrate a bug that is not visible otherwise.
Factored out a helper test function.
- 12:29 PM Changeset in webkit [201427] by
-
- 1 edit3 adds in trunk/LayoutTests
Sites served over insecure connections should not be allowed to use geolocation.
https://bugs.webkit.org/show_bug.cgi?id=157423
<rdar://problem/23751632>
Patch by Pranjal Jumde <pjumde@apple.com> on 2016-05-26
Reviewed by Brent Fulgham.
Add missing test content from r201423.
- http/tests/security/resources/geolocation-over-insecure-content.html: Added.
- http/tests/security/resources/geolocation-over-mixed-content-block.html: Added.
- http/tests/security/resources/geolocation-over-mixed-content.html: Added.
- 12:12 PM Changeset in webkit [201426] by
-
- 2 edits in trunk/LayoutTests
[Win] Update test expectation for imported blink test.
https://bugs.webkit.org/show_bug.cgi?id=158122
Patch by Per Arne Vollan <pvollan@apple.com> on 2016-05-26
Reviewed by Alex Christensen.
The crash on imported/blink/compositing/perspective-origin-overflow-hidden.html
was fixed in https://trac.webkit.org/changeset/192166.
- platform/win/TestExpectations:
- 12:06 PM Changeset in webkit [201425] by
-
- 1 edit2 moves5 adds1 delete in trunk/LayoutTests
Release JSC test test-observegc.js.layout failing.
https://bugs.webkit.org/show_bug.cgi?id=158126
Unreviewed.
Move this test to a directory that is less... "special"
- fast/misc/resources/test-observegc.js: Renamed from LayoutTests/js/script-tests/test-observegc.js.
- fast/misc/test-observegc-expected.txt: Renamed from LayoutTests/js/test-observegc-expected.txt.
- fast/misc/test-observegc.html: Added.
- js/test-observegc.html: Removed.
- 11:46 AM Changeset in webkit [201424] by
-
- 7 edits in trunk/Source/WebCore
BitmapImage::checkForSolidColor() cleanup
https://bugs.webkit.org/show_bug.cgi?id=157750
Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-05-26
Reviewed by Darin Adler.
Have a single implementation for BitmapImage::checkForSolidColor(). Create
a new function named NativeImage::solidColor() and call it from the former
one. The goal is to have the platform files contain only the platform dependent
code rather than repeating the platform independent code multiple times.
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyMetadataAndNotify): Invalidate m_solidColor.
(WebCore::BitmapImage::singlePixelSolidColor): Combine mayFillWithSolidColor(),
checkForSolidColor() and solidColor() in one function to guarantee the validity
of the returned value. Before, if solidColor() is called without calling
mayFillWithSolidColor() or checkForSolidColor(), the returned value would be
incorrect.
(WebCore::BitmapImage::dump): Use the m_solidColor Optional and Color states.
(WebCore::BitmapImage::mayFillWithSolidColor): Deleted.
(WebCore::BitmapImage::solidColor): Deleted.
- platform/graphics/BitmapImage.h: Delete m_checkedForSolidColor and
m_isSolidColor and change m_solidColor to be Optional<Color>.
- platform/graphics/Image.cpp:
(WebCore::Image::drawTiled): Use singlePixelSolidColor() and check the returned
value to know whether the singe pixel solid color optimization applies or not.
- platform/graphics/Image.h:
(WebCore::Image::singlePixelSolidColor):
(WebCore::Image::mayFillWithSolidColor): Deleted.
(WebCore::Image::solidColor): Deleted.
Replace mayFillWithSolidColor() and solidColor() with a single function named
singlePixelSolidColor(). isValid() of the returned Color can be used to tell
whether the singe pixel solid color optimization applies or not.
- platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::NativeImage::singlePixelSolidColor):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::checkForSolidColor): Deleted.
Delete the platform dependent BitmapImage::checkForSolidColor() and add
the new platform dependent function NativeImage::singlePixelSolidColor() and
use to know whether the singe pixel solid color optimization applies or not.
- platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::NativeImage::singlePixelSolidColor):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::checkForSolidColor): Deleted.
Ditto.
- 11:19 AM Changeset in webkit [201423] by
-
- 8 edits6 adds in trunk
Sites served over insecure connections should not be allowed to use geolocation.
https://bugs.webkit.org/show_bug.cgi?id=157423
<rdar://problem/23751632>
Patch by Pranjal Jumde <pjumde@apple.com> on 2016-05-26
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: http/tests/security/insecure-geolocation.html
http/tests/security/mixedcontent-geolocation-block-insecure-content.html
http/tests/security/mixedcontent-geolocation.html
- Modules/geolocation/Geolocation.cpp:
(WebCore::logError):
Logs an error to the console if geolocation is blocked.
(WebCore::Geolocation::startRequest):
Access to Geolocation will be blocked if site is not secure. An error will be logged when access to Geolocation is blocked.
(WebCore::Geolocation::shouldBlockGeolocationRequests)
Returns true if the access to geolocation should be blocked.
- Modules/geolocation/Geolocation.h:
- dom/SecurityContext.h:
(WebCore::SecurityContext::foundMixedContent):
Returns true if insecure content was accessed over secure connection.
(WebCore::SecurityContext::setFoundMixedContent):
Sets m_foundMixedContent to true if insecure content is accessed over secure connection.
(WebCore::SecurityContext::geolocationAccessed):
Returns true if geolocation was accessed
(WebCore::SecurityContext::setGeolocationAccessed):
Sets m_geolocationAccessed to true if geolocation was accessed.
- loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::canDisplayInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.
(WebCore::MixedContentChecker::canRunInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.
LayoutTests:
- http/tests/security/geolocation-over-insecure-content.html: Added.
- http/tests/security/geolocation-over-mixed-content-block.html: Added.
- http/tests/security/geolocation-over-mixed-content.html: Added.
- http/tests/security/insecure-geolocation-expected.txt: Added.
- http/tests/security/insecure-geolocation.html: Added.
- http/tests/security/mixedcontent-geolocation-block-insecure-content-expected.txt: Added.
- http/tests/security/mixedcontent-geolocation-block-insecure-content.html: Added.
- http/tests/security/mixedcontent-geolocation-expected.txt: Added.
- http/tests/security/mixedcontent-geolocation.html: Added.
- http/tests/security/sandboxed-iframe-geolocation-watchPosition.html: iframe is loaded over secure connection to avoid geolocation failures
- http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition.html: iframe is loaded over secure connection to avoid geolocation failures
- 10:23 AM Changeset in webkit [201422] by
-
- 8 edits6 adds in trunk
Implement internals.observeGC to get called back when a Javascript object is GC'ed.
https://bugs.webkit.org/show_bug.cgi?id=158093
Reviewed by Geoffrey Garen.
Source/WebCore:
Test: js/test-observegc.html
- CMakeLists.txt:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- testing/GCObservation.cpp: Added.
(WebCore::GCObservation::GCObservation):
- testing/GCObservation.h: Added.
- testing/GCObservation.idl: Added.
- testing/Internals.cpp:
(WebCore::Internals::observeGC):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- js/script-tests/test-observegc.js: Added.
- js/test-observegc-expected.txt: Added.
- js/test-observegc.html: Added.
- 10:08 AM Changeset in webkit [201421] by
-
- 3 edits2 adds in trunk
[Font Loading] Allow empty strings in FontFace constructor
https://bugs.webkit.org/show_bug.cgi?id=158112
Reviewed by Darin Adler.
Source/WebCore:
Other browsers accept empty strings and parse them as if they are omitted.
We should do the same. However, this is only true for the constructor. Setting
an attribute to an empty string should still throw an exception.
Test: fast/text/font-face-empty-string.html
- css/FontFace.cpp:
(WebCore::FontFace::create):
(WebCore::FontFace::setFamily):
(WebCore::FontFace::setStyle):
(WebCore::FontFace::setWeight):
(WebCore::FontFace::setUnicodeRange):
(WebCore::FontFace::setVariant):
(WebCore::FontFace::setFeatureSettings):
LayoutTests:
- fast/text/font-face-empty-string-expected.txt: Added.
- fast/text/font-face-empty-string.html: Added.
- 9:24 AM Changeset in webkit [201420] by
-
- 10 edits1 delete in trunk
WebRTC: RTCSessionDescription: Make attributes readonly (and remove custom binding)
https://bugs.webkit.org/show_bug.cgi?id=157858
Reviewed by Eric Carlson.
Source/WebCore:
Align RTCSessionDescription type with WebRTC 1.0 specification [1].
- Make constructor dictionary member mandatory
- Align constructor dictionary argument (RTCSessionDescriptionInit) with [1]
- Use RTCSdpType enum for the type attribute
- Remove custom binding
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html
Updated existing test.
- CMakeLists.txt:
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createOfferTask):
- Modules/mediastream/RTCSessionDescription.cpp:
(WebCore::parseTypeString):
(WebCore::RTCSessionDescription::create):
(WebCore::RTCSessionDescription::RTCSessionDescription):
(WebCore::verifyType): Deleted.
(WebCore::RTCSessionDescription::setType): Deleted.
- Modules/mediastream/RTCSessionDescription.h:
(WebCore::RTCSessionDescription::type):
- Modules/mediastream/RTCSessionDescription.idl:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSRTCSessionDescriptionCustom.cpp: Removed.
(WebCore::constructJSRTCSessionDescription): Deleted.
LayoutTests:
- fast/mediastream/RTCSessionDescription-expected.txt:
- fast/mediastream/RTCSessionDescription.html:
Add tests for mandatory constructor dictionary argument and required 'type' member (also
check its value). Verify that attributes are read-only.
- 9:10 AM Changeset in webkit [201419] by
-
- 4 edits in trunk/Source/WebCore
NativeToJSValue is harcoding the $thisValue in some strings
https://bugs.webkit.org/show_bug.cgi?id=158113
Patch by Alejandro G. Castro <alex@igalia.com> on 2016-05-26
Reviewed by Darin Adler.
Replaced the string with the variable value.
Updated the tests results in the bindings.
- bindings/scripts/CodeGeneratorJS.pm:
(NativeToJSValue): Replaced the hardcoded string with the variable
value.
- bindings/scripts/test/JS/JSTestCallback.cpp:
(WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
- bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
(WebCore::JSTestCallbackFunction::callbackWithSerializedScriptValueParam):
- 7:28 AM WebKitGTK/2.12.x edited by
- Added r200371 for annulen who lacks edit privs (diff)
- 2:14 AM Changeset in webkit [201418] by
-
- 4 edits in trunk/Source/WebCore
Small improvements to RenderBox/LayoutUnit casting in MathML
https://bugs.webkit.org/show_bug.cgi?id=157943
Patch by Frederic Wang <fwang@igalia.com> on 2016-05-26
Reviewed by Darin Adler.
This is a small follow-up of the RenderMathMLRow/RenderMathMLUnderOver/RenderMathMLFraction
refactoring. Since these MathML renderers can only contain other MathML renderers, we can
just considerer RenderBox children and avoid unnecessary casts. Similarly, when the two
arguments of std::max are LayoutUnit's, we do not need to specialize to std::max<LayoutUnit>.
No new tests, behavior is not changed.
- rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::layoutBlock): Do not to specialize to std::max<LayoutUnit>.
- rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::updateOperatorProperties): Browse the list of RenderBox children
and use auto*.
(WebCore::RenderMathMLRow::computeLineVerticalStretch): Do not to specialize to std::max<LayoutUnit>.
- rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::unembellishedOperator): Get the RenderBox child and use auto*.
(WebCore::RenderMathMLUnderOver::computeOperatorsHorizontalStretch): Browse the list of
RenderBox children, use auto* and remove unnecessary casts. Do not to specialize to
std::max<LayoutUnit>.
- 12:54 AM Changeset in webkit [201417] by
-
- 3 edits in trunk/Source/WebCore
AX: crash at AccessibilityRenderObject::remoteSVGRootElement const
https://bugs.webkit.org/show_bug.cgi?id=158098
Reviewed by Joanmarie Diggs.
What looks like happens here is that when a document is torn down and we try to detach, we end up creating an accessibility element during detachment phase.
So instead of just clearing the callback pointer on an existing AXObject, we make a new object and access properties of an object being deallocated.
I tried very hard to make a test but it looks like this can really only be triggered during document tear down which also tears down the AXObjectCache. I didn't
have luck reproducing because of that.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
(WebCore::AccessibilityRenderObject::isSVGImage):
(WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
(WebCore::AccessibilityRenderObject::remoteSVGRootElement):
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
- accessibility/AccessibilityRenderObject.h:
May 25, 2016:
- 11:50 PM Changeset in webkit [201416] by
-
- 3 edits in trunk/Source/WebCore
Invalidate style for newly added nodes in Node::insertedInto
https://bugs.webkit.org/show_bug.cgi?id=158088
Reviewed by Darin Adler.
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::childrenChanged):
(WebCore::ContainerNode::updateTreeAfterInsertion):
- dom/Node.cpp:
(WebCore::Node::insertedInto):
Consolidate setNeedsStyleRecalc(ReconstructRenderTree) here.
This also now happens earliest possible time, right after inserting the node and can avoid
some unneeded style invalidation work in subclass insertion handlers.
- 10:34 PM Changeset in webkit [201415] by
-
- 4 edits4 adds in trunk
Fix ResourceTiming multiple entries per resource and test initiator
https://bugs.webkit.org/show_bug.cgi?id=158094
Reviewed by Alex Christensen.
Make sure that CachedResource that was needed by two different elements only adds one entry, with the right (first) initiatorType.
Source/WebCore:
Tests: http/tests/performance/performance-resource-timing-initiator-css.html
http/tests/performance/performance-resource-timing-initiator-no-override.html
- loader/ResourceTimingInformation.cpp:
(WebCore::ResourceTimingInformation::addResourceTiming): Don't remove CachedResource when entry is added, but
mark it as added. Only add new entries for non-added resources.
(WebCore::ResourceTimingInformation::storeResourceTimingInitiatorInformation): Initialize initiator info as NotYetAdded.
- loader/ResourceTimingInformation.h:
LayoutTests:
- http/tests/performance/performance-resource-timing-initiator-css.html: Added. Makes sure css has the right initiator type.
- http/tests/performance/performance-resource-timing-initiator-css-expected.txt: Added.
- http/tests/performance/performance-resource-timing-initiator-no-override.html: Added. Makes sure that only one entry is added and
that its initiator info doesn't get overriden.
- http/tests/performance/performance-resource-timing-initiator-no-override-expected.txt: Added.
- 10:33 PM Changeset in webkit [201414] by
-
- 6 edits1 copy1 add in trunk
Fix ResourceTiming XHR flakiness
https://bugs.webkit.org/show_bug.cgi?id=158019
Reviewed by Alex Christensen.
Source/WebCore:
Remove XHR specific ResourceTiming information store and addition as it is not needed.
Test: http/tests/performance/performance-resource-timing-xhr-single-entry.html
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest): Removed XHR-specific initiator info storage.
(WebCore::DocumentThreadableLoader::didFinishLoading): Removed XHR-specific RT entry addition.
- loader/DocumentThreadableLoader.h:
LayoutTests:
Test fixes and additions that make sure XHR tests are not run as part of XHR's onload event, as ResourceTiming entries are added
after it.
- TestExpectations:
- http/tests/performance/performance-resource-timing-cached-entries.html: Avoid running the tests as part of the XHR's load event.
- http/tests/performance/performance-resource-timing-xhr-single-entry-expected.txt: Added.
- http/tests/performance/performance-resource-timing-xhr-single-entry.html: Test that XHR fetch adds a single entry with correct initiatorType.
- 10:31 PM Changeset in webkit [201413] by
-
- 4 edits in trunk
[cmake] Deduplicate make-js-file-arrays usage and make it work on Windows.
https://bugs.webkit.org/show_bug.cgi?id=157997
Reviewed by Alex Christensen.
.:
- Source/cmake/WebKitMacros.cmake: Added MAKE_JS_FILE_ARRAYS macro.
Source/WebCore:
No new tests needed.
- CMakeLists.txt: Use new MAKE_JS_FILE_ARRAYS macro.
- 8:27 PM WebKitGTK/2.12.x edited by
- Update a11y proposed merges to point to new bugs with … (diff)
- 8:19 PM Changeset in webkit [201412] by
-
- 6 edits3 adds in trunk
[JSC] RegExp with deeply nested subexpressions overflow the stack in Yarr
https://bugs.webkit.org/show_bug.cgi?id=158011
rdar://problem/25946592
Reviewed by Saam Barati.
Source/JavaScriptCore:
When generating the meta-data required for compilation,
Yarr uses a recursive function over the various expression in the pattern.
If you have many nested expressions, you can run out of stack
and crash the WebProcess.
This patch changes that into a soft failure. The expression is just
considered invalid.
- runtime/RegExp.cpp:
(JSC::RegExp::finishCreation):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):
- yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
(JSC::Yarr::YarrPatternConstructor::setupOffsets):
(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse):
(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPattern::YarrPattern):
(JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets): Deleted.
(JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets): Deleted.
- yarr/YarrPattern.h:
LayoutTests:
- js/script-tests/stack-overflow-arrity-catch.js:
With the new failure, this test can fail on allocating
the RegExp for a valid reason.
The new expression should not have this issue.
- js/script-tests/stack-overflow-regexp.js: Added.
(shouldThrow.recursiveCall):
(shouldThrow):
(recursiveCall):
- js/stack-overflow-regexp-expected.txt: Added.
- js/stack-overflow-regexp.html: Added.
- 5:08 PM Changeset in webkit [201411] by
-
- 2 edits in trunk/LayoutTests
Marking imported/blink/http/tests/plugins/get-url-notify-on-removal.html as a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=158101
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:35 PM Changeset in webkit [201410] by
-
- 2 edits in trunk/Source/WebCore
Use HashMap::add() instead of HashMap::set() in Node::ensureEventTargetData()
https://bugs.webkit.org/show_bug.cgi?id=158092
Reviewed by Ryosuke Niwa.
Use HashMap::add() instead of HashMap::set() in Node::ensureEventTargetData()
as we already checked that the key is not present in the HashMap.
- dom/Node.cpp:
(WebCore::Node::ensureEventTargetData):
- 4:18 PM Changeset in webkit [201409] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r191531): Web Inspector: WebSQL databases are no longer shown when first opening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=158096
<rdar://problem/26454671>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-25
Reviewed by Brian Burg.
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didOpenDatabase):
Remove the fast return errantly added in r191531. InspectorDatabaseAgent
wants to track databases, even before a frontend may be open, so that
on first open it can inform the frontend about open databases.
- 4:11 PM Changeset in webkit [201408] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'collectionData.affectedSnapshots')
https://bugs.webkit.org/show_bug.cgi?id=158051
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-25
Reviewed by Brian Burg.
- UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
(HeapSnapshot.prototype.updateDeadNodesAndGatherCollectionData):
- UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:
(HeapSnapshotWorker.prototype.createSnapshot):
If by the time the timeout fires we had cleared our snapshot list, then
updateDeadNodesAndGatherCollectionData could bail. Handle gracefully.
- 4:01 PM Changeset in webkit [201407] by
-
- 3 edits2 adds in trunk
Setting overflow:hidden does not always repaint clipped content.
https://bugs.webkit.org/show_bug.cgi?id=116994
rdar://problem/26476697
Issue repaint for both layout and visual overflow rects when the container starts
clipping overflow content.
Reviewed by David Hyatt.
Source/WebCore:
Test: fast/repaint/overflow-hidden-repaint.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::updateFromStyle):
LayoutTests:
- fast/repaint/overflow-hidden-repaint-expected.html: Added.
- fast/repaint/overflow-hidden-repaint.html: Added.
- 3:56 PM Changeset in webkit [201406] by
-
- 9 edits2 deletes in trunk
Get rid of WTF/Functional.h
https://bugs.webkit.org/show_bug.cgi?id=158081
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/mediastream/MediaStreamTrack.cpp:
Source/WTF:
This is no longer used, and removing it will free up the name for a new Functional.h implementation.
- WTF.xcodeproj/project.pbxproj:
- wtf/Functional.h: Removed.
(WTF::RefAndDeref::ref): Deleted.
(WTF::RefAndDeref::deref): Deleted.
(WTF::ParamStorageTraits::wrap): Deleted.
(WTF::ParamStorageTraits::unwrap): Deleted.
(WTF::ParamStorageTraits<PassRefPtr<T>>::wrap): Deleted.
(WTF::ParamStorageTraits<PassRefPtr<T>>::unwrap): Deleted.
(WTF::ParamStorageTraits<RefPtr<T>>::wrap): Deleted.
(WTF::ParamStorageTraits<RefPtr<T>>::unwrap): Deleted.
(WTF::ParamStorageTraits<RetainPtr<T>>::wrap): Deleted.
(WTF::ParamStorageTraits<RetainPtr<T>>::unwrap): Deleted.
(WTF::FunctionImplBase::~FunctionImplBase): Deleted.
(WTF::FunctionBase::isNull): Deleted.
(WTF::FunctionBase::FunctionBase): Deleted.
(WTF::FunctionBase::impl): Deleted.
(WTF::bind): Deleted.
- wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/Functional.cpp: Removed.
(TestWebKitAPI::returnFortyTwo): Deleted.
(TestWebKitAPI::TEST): Deleted.
(TestWebKitAPI::multiplyByTwo): Deleted.
(TestWebKitAPI::multiplyByOneAndAHalf): Deleted.
(TestWebKitAPI::multiply): Deleted.
(TestWebKitAPI::subtract): Deleted.
(TestWebKitAPI::A::A): Deleted.
(TestWebKitAPI::A::f): Deleted.
(TestWebKitAPI::A::addF): Deleted.
(TestWebKitAPI::B::B): Deleted.
(TestWebKitAPI::B::~B): Deleted.
(TestWebKitAPI::B::ref): Deleted.
(TestWebKitAPI::B::deref): Deleted.
(TestWebKitAPI::B::f): Deleted.
(TestWebKitAPI::B::g): Deleted.
(TestWebKitAPI::Number::create): Deleted.
(TestWebKitAPI::Number::~Number): Deleted.
(TestWebKitAPI::Number::value): Deleted.
(TestWebKitAPI::Number::Number): Deleted.
(TestWebKitAPI::multiplyNumberByTwo): Deleted.
- 3:07 PM Changeset in webkit [201405] by
-
- 4 edits in trunk/Source/WebKit2
Flashiness and jumpiness when entering fullscreen
https://bugs.webkit.org/show_bug.cgi?id=158087
Reviewed by Beth Dakin.
Multiple independant sources of jumpiness and flashiness are addressed here:
- Setting the top content inset on the WKView cause a vertical jump during fullscreen
transition. Instead of setting the content inset to 0, take the existing inset into account
when placing the WKView in the NSWindow.
- The enter fullscreen transition causes a white flash due to the NSWindow needing
display before ordering onscreen. Ensure the window has a backing by calling -displayIfNeeded
before entering fullscreen mode.
- The exit fullscreen transition causes a white background color flash for an unknown
reason, but is solved by not making the window's content view layer-backed. Rather than
directly animating the contentView's background color, create a specific background view
and animate it's background color instead.
- UIProcess/mac/WKFullScreenWindowController.h:
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController initWithWindow:webView:page:]):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
- WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::saveScrollPosition): Deleted.
(WebKit::WebFullScreenManager::restoreScrollPosition): Deleted.
- 2:58 PM Changeset in webkit [201404] by
-
- 22 edits2 adds in trunk
[WebSockets] No infrastructure for testing secure web sockets (wss)
https://bugs.webkit.org/show_bug.cgi?id=157884
<rdar://problem/26477197>
Reviewed by Andy Estes.
Source/WebCore:
Add a new test-only flag used to tell CFNetwork that we do not wish to
validate the SLL certificate chain. This allows us to use self-signed
certificates in test cases.
Tests: http/tests/websocket/tests/hybi/simple-wss.html
- page/Settings.cpp:
(WebCore::Settings::setAllowsAnySSLCertificate): Added.
(WebCore::Settings::allowsAnySSLCertificate): Added. This defaults
to False.
- page/Settings.h:
- platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::createStreams): When running under our
testing infrastructure, do not require full certificate validation.
- testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::setAllowsAnySSLCertificate): Added.
- testing/js/WebCoreTestSupport.h:
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::setAllowsAnySSLCertificate): Added.
- testing/InternalSettings.h:
Tools:
Add support to webkitpy to start and stop a secure Web Socket server running on port 9323
using the certificate, private-key from file LayoutTests/http/conf/webkit-httpd.pem. Also
teaches run-webkit-httpd to start and stop the Web Socket servers.
Modify DumpRenderTree and WebKitTestRunner to understand a new testRunner method,
'setAllowsAnySSLCertificate', which allows us to use the same self-signed test certificate
we do for our HTTPS tests.
- DumpRenderTree/TestRunner.cpp:
(setAllowsAnySSLCertificateCallback):
(TestRunner::setAllowsAnySSLCertificate):
- DumpRenderTree/TestRunner.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebViewToConsistentStateBeforeTesting): Make sure we turn off the new flag between tests.
- Scripts/run-webkit-httpd:
(main): Start the websocket server at launch.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.init): Remove dead code.
- Scripts/webkitpy/layout_tests/servers/websocket_server.py:
(PyWebSocket.init): Cleanup code.
(PyWebSocket): Pass '--tls-client-ca' to start command.
(PyWebSocket._prepare_config): Cleanups.
- Scripts/webkitpy/port/base.py:
(Port.to.start_http_server):
(Port.to):
(Port.to._extract_certificate_from_pem): Added.
(Port.to._extract_private_key_from_pem): Added.
(Port.to.start_websocket_server): Start secure socket server.
(Port.to.stop_websocket_server): Stop secure socket server.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Add new API.
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::setAllowsAnySSLCertificate): Added.
- WebKitTestRunner/InjectedBundle/InjectedBundle.h:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setAllowsAnySSLCertificate): Added.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
LayoutTests:
- http/tests/websocket/tests/hybi/simple-wss-expected.txt: Added.
- http/tests/websocket/tests/hybi/simple-wss.html: Added.
- 2:57 PM Changeset in webkit [201403] by
-
- 2 edits in trunk/Source/WebCore
CRASH at WebCore::WebPlaybackSessionModelMediaElement::selectAudioMediaOption() + 104
https://bugs.webkit.org/show_bug.cgi?id=158090
<rdar://problem/26388936>
Reviewed by Eric Carlson.
Null-check m_mediaElement before using.
- platform/cocoa/WebPlaybackSessionModelMediaElement.mm:
(WebPlaybackSessionModelMediaElement::selectAudioMediaOption):
(WebPlaybackSessionModelMediaElement::selectLegibleMediaOption):
- 2:19 PM Changeset in webkit [201402] by
-
- 2 edits in trunk/Source/WebCore
Race condition calling back to an IDBOpenDBRequest during WorkerThread shutdown.
https://bugs.webkit.org/show_bug.cgi?id=158089
Reviewed by Alex Christensen.
No new tests (Only seen randomly under GuardMalloc).
Crash was seen once running under GuardMalloc. The error is obvious.
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest): Don't get a raw pointer out of the map.
Instead store off as a RefPtr, as the map might be cleared out from the worker thread.
- 2:13 PM Changeset in webkit [201401] by
-
- 5 edits in trunk/Source/WebCore
Simplify and inline minimumValueForLength()
https://bugs.webkit.org/show_bug.cgi?id=158084
Reviewed by Zalan Bujtas.
Simplify and inline minimumValueForLength(). Based on iOS PLT profiles,
we spend up to 0.7% of CPU time during page loads in this function.
The roundPercentages parameter has been dropped because it was false
for all call sites.
- css/LengthFunctions.cpp:
(WebCore::minimumIntValueForLength): Deleted.
(WebCore::minimumValueForLength): Deleted.
- css/LengthFunctions.h:
(WebCore::minimumValueForLength):
(WebCore::minimumIntValueForLength):
- rendering/RenderBoxModelObject.cpp:
(WebCore::resolveEdgeRelativeLength):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
- rendering/RenderElement.h:
(WebCore::RenderElement::minimumValueForLength):
- 2:02 PM Changeset in webkit [201400] by
-
- 2 edits in trunk/LayoutTests
Marking http/tests/css/shared-stylesheet-mutation.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=158085
Unreviewed test gardening.
- 12:52 PM Changeset in webkit [201399] by
-
- 6 edits in trunk
[css-grid] Update <fixed-size> syntax
https://bugs.webkit.org/show_bug.cgi?id=158063
Reviewed by Darin Adler.
Source/WebCore:
The syntax for <fixed-size> has been updated on the spec:
https://drafts.csswg.org/css-grid/#typedef-fixed-size
New syntax is:
<fixed-size> =
<fixed-breadth> |
minmax( <fixed-breadth> , <track-breadth> ) |
minmax( <inflexible-breadth> , <fixed-breadth> )
This means that it's enough to have one <fixed-breadth>,
it doesn't matter if it's as minimum or maximum.
Before it was required that the minimum was fixed.
- css/CSSParser.cpp:
(WebCore::isGridTrackFixedSized):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
LayoutTests:
Updated test to check the new expected behavior.
- fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
- fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
- 12:49 PM Changeset in webkit [201398] by
-
- 6 edits in trunk/Source
Fix CMake build.
- PlatformMac.cmake:
Source/WebCore:
c++14 is needed since r201255.
ColorSync (in ApplicationServices) is needed since r201065.
- 12:41 PM Changeset in webkit [201397] by
-
- 11 edits3 adds in trunk
Swap search field's cancel and result button for RTL content.
https://bugs.webkit.org/show_bug.cgi?id=158007
Reviewed by Dean Jackson.
Source/WebCore:
Test: fast/forms/search-input-rtl.html
- css/html.css:
(input[type="search"]::-webkit-textfield-decoration-container): Deleted.
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):
LayoutTests:
- fast/forms/resources/common.js:
(searchCancelButtonPositionRTL):
(searchCancelButtonPosition):
- fast/forms/search-input-rtl.html: Added.
- fast/forms/search-rtl.html:
- platform/ios-simulator-wk2/fast/forms/search-rtl-expected.txt:
- platform/ios-simulator/fast/css/text-overflow-input-expected.txt:
- platform/ios-simulator/fast/forms/search-input-rtl-expected.txt: Added.
- platform/mac/fast/css/text-overflow-input-expected.txt:
- platform/mac/fast/forms/placeholder-position-expected.txt:
- platform/mac/fast/forms/search-input-rtl-expected.png: Added.
- platform/mac/fast/forms/search-input-rtl-expected.txt: Added.
- platform/mac/fast/forms/search-rtl-expected.txt:
- 12:39 PM Changeset in webkit [201396] by
-
- 2 edits in trunk
[css-grid] Turn on ENABLE_CSS_GRID_LAYOUT by default
https://bugs.webkit.org/show_bug.cgi?id=158060
Reviewed by Darin Adler.
The runtime flag is disabled by default,
but we want to build CSS Grid Layout by default.
Otherwise the runtime flag would be useless.
- Source/cmake/WebKitFeatures.cmake:
- 12:17 PM Changeset in webkit [201395] by
-
- 5 edits in trunk/Source/WebKit2
Simplify a few lambda captures in the network cache code
https://bugs.webkit.org/show_bug.cgi?id=158076
Reviewed by Antti Koivisto.
Simplify a few lambda captures in the network cache code by WTFMoving
upon capture.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
- NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache):
(WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCache::Statistics::recordRetrievalFailure):
(WebKit::NetworkCache::Statistics::writeTimerFired):
(WebKit::NetworkCache::Statistics::addHashesToDatabase):
(WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase):
- NetworkProcess/cache/NetworkCacheStatistics.h:
- 12:08 PM Changeset in webkit [201394] by
-
- 5 edits2 adds in trunk
[Font Loading] ASSERT if calling FontFace.loaded twice with a garbage collection between them
https://bugs.webkit.org/show_bug.cgi?id=158015
Reviewed by Darin Adler.
Source/WebCore:
The following scenario may occur:
- We create a FontFace object
- We create an associated JSFontFace object
- We start loading the FontFace, which causes an extra ref to hang around until loading finishes
- Javascript calls the "loaded" attribute on the FontFace, which saves a promise inside the FontFace
- The FontFace goes out of scope in Javascript
- A garbage collection occurs, causing us to delete the JSFontFace object
- Javascript then encounters the FontFace object without first going through a reference to a JSFontFace.
It can do this via iterating through a FontFaceSet. We respond to this situation by creating a new
JSFontFace object and associating it with the existing FontFace.
- Javascript calls the "loaded" attribute
In this situation, the newer JSFontFace object is out of sync with the older FontFace object. In
particular, the FontFace has a saved promise, but the JSFontFace doesn't know about it. Therefore,
the JSFontFace should be flexible to the presence of this member.
Test: fast/text/font-face-crash-2.html
- bindings/js/JSDOMPromise.h:
(WebCore::DOMPromise::deferredWrapper):
- bindings/js/JSFontFaceCustom.cpp:
(WebCore::JSFontFace::loaded):
- css/FontFace.h:
LayoutTests:
- fast/text/font-face-crash-2-expected.txt: Added.
- fast/text/font-face-crash-2.html: Added.
- 12:04 PM Changeset in webkit [201393] by
-
- 4 edits2 adds in trunk
Source/WebCore:
Shadow DOM: RenderTreePosition miscomputed when display:contents value changes
https://bugs.webkit.org/show_bug.cgi?id=158072
rdar://problem/25766333
Reviewed by Darin Adler.
Test: fast/shadow-dom/slot-crash.html
- style/RenderTreePosition.h:
(WebCore::RenderTreePosition::invalidateNextSibling):
Add unconditional invalidation function.
- style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):
With display:contents rendering siblings may be found from the subtree and the existing cached
position may become invalid.
If the display:contents value changes invalidate the current render tree position.
LayoutTests:
Shadow DOM: RenderTreePosition should determine if element has display:contents from new style
https://bugs.webkit.org/show_bug.cgi?id=158072
Reviewed by Darin Adler.
- fast/shadow-dom/slot-crash.html: Added.
- 12:01 PM WebKitGTK/2.12.x edited by
- (diff)
- 12:00 PM WebKitGTK/2.12.x edited by
- (diff)
- 11:59 AM Changeset in webkit [201392] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix Win64 build after r201335
https://bugs.webkit.org/show_bug.cgi?id=158078
Reviewed by Mark Lam.
- offlineasm/x86.rb:
Add intel implementations for loadbs and loadhs
- 11:31 AM Changeset in webkit [201391] by
-
- 2 edits in trunk/Tools
run-jsc-benchmarks should use the new JSBench rather than look for it in the config file.
https://bugs.webkit.org/show_bug.cgi?id=158077
Reviewed by Mark Lam.
Since we didn't have JSBench in the tree before we needed to lookup the path to it from
benchmark config file. That's no longer the case so we should just fix it in the script.
- Scripts/run-jsc-benchmarks:
- 11:20 AM Changeset in webkit [201390] by
-
- 6 edits in trunk/Source/WebCore
Modern IDB: IDB objects from a worker thread might be destroyed on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=158004
Reviewed by Alex Christensen.
No new tests (Spuriously reproduces on the bots, but I've been unable to construct a reliable test).
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::notifyOpenDBRequestBlocked):
(WebCore::IDBClient::IDBConnectionProxy::didCommitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didAbortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::unregisterDatabaseConnection):
(WebCore::IDBClient::removeItemsMatchingCurrentThread):
(WebCore::IDBClient::IDBConnectionProxy::forgetActivityForCurrentThread): Clear out all objects that originated on this thread.
(WebCore::IDBClient::IDBConnectionProxy::takeIDBOpenDBRequest): Deleted.
- Modules/indexeddb/client/IDBConnectionProxy.h:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::stopIndexedDatabase):
- workers/WorkerGlobalScope.h:
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::stop):
- 11:02 AM Changeset in webkit [201389] by
-
- 5 edits in trunk/Source
Versioning.
- 10:37 AM Changeset in webkit [201388] by
-
- 1 copy in tags/Safari-602.1.34
New tag.
- 9:43 AM Changeset in webkit [201387] by
-
- 14 edits in trunk/Source/WebCore
Remove unused slotBase parameter in bindings generator
https://bugs.webkit.org/show_bug.cgi?id=158068
Patch by Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> on 2016-05-25
Reviewed by Darin Adler.
Remove unused slotBase parameter from attribute Getter functions.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
- bindings/scripts/test/JS/JSTestException.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
- bindings/scripts/test/JS/JSTestNode.cpp:
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
- bindings/scripts/test/JS/JSattribute.cpp:
- 9:39 AM Changeset in webkit [201386] by
-
- 4 edits in trunk/Source/WebCore
Include fewer headers from headers
https://bugs.webkit.org/show_bug.cgi?id=158043
Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-25
Reviewed by Brady Eidson.
- platform/graphics/GraphicsContext.h:
- rendering/svg/RenderSVGResourceClipper.h:
(isType):
- rendering/svg/RenderSVGResourceMasker.h:
- 9:19 AM Changeset in webkit [201385] by
-
- 2 edits in trunk/Source/WebCore
ASSERT in WebCore::TextTrackList::remove when running media/track/track-remove-track.html
https://bugs.webkit.org/show_bug.cgi?id=158071
<rdar://problem/26432041>
Reviewed by Chris Dumez.
No new tests, this prevents media/track/track-remove-track.html from crashing.
- html/track/TextTrackList.cpp:
(TextTrackList::remove): Don't assert when the media element has been set to null.
- 9:01 AM Changeset in webkit [201384] by
-
- 2 edits in trunk/Source/WebCore
Addressing post-review comments on r200971.
Reviewed by Darin Adler.
- page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
- 8:23 AM Changeset in webkit [201383] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION(r201066): [GTK] Several intl tests started to fail in GTK+ bot after r201066
https://bugs.webkit.org/show_bug.cgi?id=158066
Reviewed by Darin Adler.
run-javascriptcore-tests does $ENV{LANG}="en_US.UTF-8"; but we are not actually honoring the environment
variables at all when using jsc binary. We are using setlocale() with a nullptr locale to get the current one, but
the current one is always "C", because to set the locale according to the environment variables we need to call
setlocale with an empty string as locale. That's done by gtk_init(), which is called by all our binaries (web
process, network process, etc.), but not by jsc (because jsc doesn't depend on GTK+). The reason why it has
always worked for EFL is because they call ecore_init() in jsc that calls setlocale.
- jsc.cpp:
(main): Call setlocale(LC_ALL, "") on GTK+.
- 7:44 AM Changeset in webkit [201382] by
-
- 3 edits in trunk/Source/WebCore
[css-grid] Simplify grid track sizes parsing
https://bugs.webkit.org/show_bug.cgi?id=158021
Reviewed by Sergio Villar Senin.
Previously once we saw an auto-repeat function,
we passed the "FixedSizeOnly" restriction to the rest of methods.
That way we were sure that all the tracks after the auto-repeat
had fixed sizes.
But we needed to call allTracksAreFixedSized() to be sure that
the tracks before the auto-repeat had fixed sizes too.
Now we're introducing a new boolean |allTracksAreFixedSized|,
to check in advance if the declaration contains any track not fixed.
If that's the case and we found an auto-repeat method,
we consider it invalid.
With this approach we avoid the loop to verify
that all the tracks (before and after the auto-repeat) are fixed.
It also allows us to simplify the code and avoid passing
the restriction to all the methods parsing the track size.
No new tests, no change of behavior.
- css/CSSParser.cpp:
(WebCore::isGridTrackFixedSized): New method to check if a grid track
size is fixed or not (based on old allTracksAreFixedSized()).
(WebCore::CSSParser::parseGridTrackList): Add new boolean to detect
if any track has not a fixed size.
(WebCore::CSSParser::parseGridTrackRepeatFunction): Ditto.
(WebCore::CSSParser::parseGridTrackSize): Remove usage of
TrackSizeRestriction enum.
Check here if |minTrackBreadth| is a flexible size.
(WebCore::CSSParser::parseGridBreadth): Remove usage of
TrackSizeRestriction enum.
(WebCore::allTracksAreFixedSized): Deleted.
- css/CSSParser.h: Remove TrackSizeRestriction enum and update headers.
- 6:18 AM Changeset in webkit [201381] by
-
- 3 edits in trunk/Source/WebKit2
[Unix] Potential buffer overrun of m_fileDescriptors in readBytesFromSocket of ConnectionUnix.cpp
https://bugs.webkit.org/show_bug.cgi?id=158058
Patch by Fujii Hironori <Fujii Hironori> on 2016-05-25
Reviewed by Carlos Garcia Campos.
Memcpy does not check the boundary of m_fileDescriptors in
readBytesFromSocket of ConnectionUnix.cpp. This is not a problem
in normal cases, but in the case when Web process is hijacked and
malicious IPC packets were sent. WTF::Vector already has two
members m_capacity and m_size. There is no need to have a
separate member m_fileDescriptorsSize to remember the number of
remaining data.
- Platform/IPC/Connection.h: Remove members m_readBufferSize and
m_fileDescriptorsSize.
- Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::platformInitialize): Removed initialization of
m_readBufferSize and m_fileDescriptorsSize. Reserve initial
capacity for m_readBuffer and m_fileDescriptors.
(IPC::Connection::processMessage): Replace m_readBufferSize and
m_fileDescriptorsSize with m_readBuffer.size() and
m_fileDescriptors.size(). Use Vector::shrink() to reset the
number of remaining data in the buffers.
(IPC::readBytesFromSocket) : Change argument types to WTF::Vector
instead of pointers and sizes.
(IPC::Connection::readyReadHandler): Call new readBytesFromSocket
- 6:03 AM Changeset in webkit [201380] by
-
- 2 edits in trunk/Source/JavaScriptCore
[ARM] Fix the Wcast-align warning in LinkBuffer.cpp
https://bugs.webkit.org/show_bug.cgi?id=157889
Reviewed by Darin Adler.
- assembler/LinkBuffer.cpp:
(JSC::recordLinkOffsets):
- 4:32 AM Changeset in webkit [201379] by
-
- 3 edits in trunk/Source/WebCore
[css-grid] Refactor populateGridPositions()
https://bugs.webkit.org/show_bug.cgi?id=158065
Reviewed by Carlos Garcia Campos.
RenderGrid::populateGridPositions() was doing exactly the same thing for columns and rows
but using different data structures. That lead to a lot of duplicated code. It's easy to
refactor it in a new function that properly select the data structures to operate on based
on the direction.
No new tests as there is no change in behaviour.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::populateGridPositionsForDirection): Refactored from
populateGridPositions().
(WebCore::RenderGrid::populateGridPositions): Deleted.
- rendering/RenderGrid.h:
- 4:17 AM Changeset in webkit [201378] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, rolling out r201373.
https://bugs.webkit.org/show_bug.cgi?id=158064
Several tests are hitting the ASSERT (Requested by rego on
#webkit).
Reverted changeset:
"[css-grid] Simplify grid track sizes parsing"
https://bugs.webkit.org/show_bug.cgi?id=158021
http://trac.webkit.org/changeset/201373
- 4:13 AM Changeset in webkit [201377] by
-
- 3 edits in trunk/Source/WebCore
Purge PassRefPtr from TouchList
https://bugs.webkit.org/show_bug.cgi?id=157985
Patch by Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> on 2016-05-25
Reviewed by Darin Adler.
Use RefPtr&& argument instead of PassRefPtr in append()
- dom/TouchList.h:
(WebCore::TouchList::append):
- page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
- 3:59 AM Changeset in webkit [201376] by
-
- 3 edits in trunk/Source/WebKit2
Update constructRevalidationRequest() to stop returning a unique_ptr<ResourceRequest>
https://bugs.webkit.org/show_bug.cgi?id=158046
Reviewed by Darin Adler.
Update constructRevalidationRequest() to stop returning a unique_ptr<ResourceRequest>
and to return a ResourceRequest instead. There is no reason for it to return a
pointer.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::revalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
- 3:58 AM Changeset in webkit [201375] by
-
- 2 edits in trunk/LayoutTests
Update dom/Window/messageevent-source-postmessage-reified.html after r201315
https://bugs.webkit.org/show_bug.cgi?id=158048
Reviewed by Darin Adler.
We need to delete a property that is part of the Window's static table
now in order to force the reification.
- fast/dom/Window/messageevent-source-postmessage-reified.html:
- 2:49 AM Changeset in webkit [201374] by
-
- 5 edits4 adds in trunk
Elements with backdrop-filter cannot be clipped with clip-path or mask
https://bugs.webkit.org/show_bug.cgi?id=142662
<rdar://problem/20150192>
Patch by Antoine Quint <Antoine Quint> on 2016-05-25
Reviewed by Dean Jackson.
Source/WebCore:
We used to only apply the mask to the layer contents but did not account
for the fact that a layer backdrop may exist. We now correctly mask the
backdrop layer as well as the layer contents.
Test: css3/filters/backdrop/backdrop-filter-with-clip-path.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateShape):
Ensure clones of a layer use the same shape path.
(WebCore::GraphicsLayerCA::updateMaskLayer):
If we have a backdrop layer, ensure that we apply a clone of the mask layer applied to
the layer contents.
Source/WebKit2:
Ensure layer clones are set up with the same shape path as their original layer.
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
LayoutTests:
New test that checks that applying a backdrop-filter and a clip-path on a single
element has the same effect as applying a clip-path on a parent of a child with
a backdrop-filter.
- css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt: Added.
- css3/filters/backdrop/backdrop-filter-with-clip-path.html: Added.
- platform/ios-simulator/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.html: Added.
- platform/mac/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.png: Added.
- 2:22 AM Changeset in webkit [201373] by
-
- 3 edits in trunk/Source/WebCore
[css-grid] Simplify grid track sizes parsing
https://bugs.webkit.org/show_bug.cgi?id=158021
Reviewed by Sergio Villar Senin.
Previously once we saw an auto-repeat function,
we passed the "FixedSizeOnly" restriction to the rest of methods.
That way we were sure that all the tracks after the auto-repeat
had fixed sizes.
But we needed to call allTracksAreFixedSized() to be sure that
the tracks before the auto-repeat had fixed sizes too.
Now we're introducing a new boolean |allTracksAreFixedSized|,
to check in advance if the declaration contains any track not fixed.
If that's the case and we found an auto-repeat method,
we consider it invalid.
With this approach we avoid the loop to verify
that all the tracks (before and after the auto-repeat) are fixed.
It also allows us to simplify the code and avoid passing
the restriction to all the methods parsing the track size.
No new tests, no change of behavior.
- css/CSSParser.cpp:
(WebCore::isGridTrackFixedSized): New method to check if a grid track
size is fixed or not (based on old allTracksAreFixedSized()).
(WebCore::CSSParser::parseGridTrackList): Add new boolean to detect
if any track has not a fixed size.
(WebCore::CSSParser::parseGridTrackRepeatFunction): Ditto.
(WebCore::CSSParser::parseGridTrackSize): Remove usage of
TrackSizeRestriction enum.
Check here if |minTrackBreadth| is a flexible size.
(WebCore::CSSParser::parseGridBreadth): Remove usage of
TrackSizeRestriction enum.
(WebCore::allTracksAreFixedSized): Deleted.
- css/CSSParser.h: Remove TrackSizeRestriction enum and update headers.
- 2:05 AM Changeset in webkit [201372] by
-
- 2 edits in trunk/PerformanceTests
Unreviewed, add JSBench to the skipped list for now since it doesn't
work currently.
- Skipped: