⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jan 16, 2016:

8:54 PM Changeset in webkit [195180] by mmaxfield@apple.com
  • 34 edits
    8 deletes in trunk

Remove TextRun::allowsRoundingHacks()
https://bugs.webkit.org/show_bug.cgi?id=153185

Reviewed by Simon Fraser.

Source/WebCore:

Rounding hacks are disallowed by default, and are only re-enabled on iOS 4 and
earlier, which are not supported OSes. Because they are disallowed on all
supported configurations, remove support for them wholesale.

No new tests.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • platform/graphics/FontCascade.cpp:
  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::isRoundingHackCharacter): Deleted.

  • platform/graphics/StringTruncator.cpp:

(WebCore::stringWidth):
(WebCore::truncateString):
(WebCore::StringTruncator::centerTruncate):
(WebCore::StringTruncator::rightTruncate):
(WebCore::StringTruncator::width):
(WebCore::StringTruncator::leftTruncate):
(WebCore::StringTruncator::rightClipToCharacter):
(WebCore::StringTruncator::rightClipToWord):

  • platform/graphics/StringTruncator.h:
  • platform/graphics/TextRun.cpp:

(WebCore::TextRun::setAllowsRoundingHacks): Deleted.
(WebCore::TextRun::allowsRoundingHacks): Deleted.

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):
(WebCore::TextRun::applyRunRounding): Deleted.
(WebCore::TextRun::applyWordRounding): Deleted.
(WebCore::TextRun::disableRoundingHacks): Deleted.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

  • platform/mac/DragImageMac.mm:

(WebCore::widthWithFont): Deleted.
(WebCore::drawAtPoint): Deleted.

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::fileTextValue):
(WebCore::RenderFileUploadControl::paintObject): Deleted.

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::updateFromElement): Deleted.

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::getAverageCharWidth): Deleted.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::fileListNameForWidth):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::fileListNameForWidth):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::constructTextRun): Deleted.

  • rendering/svg/SVGTextMetrics.cpp:

(WebCore::SVGTextMetrics::constructTextRun): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): Deleted.
(WebCore::Internals::allowRoundingHacks): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit/ios:

  • Misc/WebUIKitSupport.mm:

(WebKitInitialize): Deleted.

Source/WebKit/mac:

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]): Deleted.
(-[NSString _web_widthWithFont:]): Deleted.

  • WebView/WebView.mm:

(+[WebView _setAllowsRoundingHacks:]): Deleted.
(+[WebView _allowsRoundingHacks]): Deleted.

  • WebView/WebViewPrivate.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting): Deleted.

LayoutTests:

  • platform/mac/fast/text/rounding-hacks-expansion.html: Removed.
  • platform/mac/fast/text/rounding-hacks.html: Removed.
  • platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.png: Removed.
  • platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.txt: Removed.
  • platform/mac/platform/mac/fast/text/rounding-hacks-expected.png: Removed.
  • platform/mac/platform/mac/fast/text/rounding-hacks-expected.txt: Removed.
  • svg/text/svg-font-word-rounding-hacks-spaces-expected.html: Removed.
  • svg/text/svg-font-word-rounding-hacks-spaces.html: Removed.
4:21 PM Changeset in webkit [195179] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

Allocate style sheet media queries in BumpArena.
<https://webkit.org/b/153188>

Reviewed by Antti Koivisto.

Teach the CSS parser to allocate MediaQuery and MediaQueryExp from BumpArena as well.

  • css/CSSGrammar.y.in:
  • css/MediaQuery.h:
  • css/MediaQueryExp.h:
4:04 PM Changeset in webkit [195178] by commit-queue@webkit.org
  • 8 edits in trunk

[ES6] Arrow function syntax. Arrow function should support the destructuring parameters.
https://bugs.webkit.org/show_bug.cgi?id=146934

Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2016-01-16
Reviewed by Saam Barati.
Source/JavaScriptCore:

Added support of destructuring parameters, before arrow function expect only simple parameters,
e.g. (), (x), (x, y) or x in assigment expressio. To support destructuring parameters added
additional check that check for destructuring paramters if check does not pass for simple parameters.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/Parser.h:

LayoutTests:

  • js/arrowfunction-syntax-errors-expected.txt:
  • js/arrowfunction-syntax-expected.txt:
  • js/script-tests/arrowfunction-syntax-errors.js:
  • js/script-tests/arrowfunction-syntax.js:
4:00 PM Changeset in webkit [195177] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] Add a couple comments to ScrollbarThemeGtk
https://bugs.webkit.org/show_bug.cgi?id=153184

Reviewed by Carlos Garcia Campos.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::paint):

1:05 PM Changeset in webkit [195176] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fix some responsive issues on smaller screens.

  • wp-content/themes/webkit/style.css:

(.timeline .time):
(@media (max-width: 900px)):
(.timeline:before):
(.timeline > li):
(.timeline > li:before):
(.timeline .content):
(.timeline li .time::before):

12:53 PM Changeset in webkit [195175] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Web Inspector: Add tests for Array Utilities like lowerBound/upperBound
https://bugs.webkit.org/show_bug.cgi?id=153177

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-16
Reviewed by Timothy Hatcher.

  • inspector/unit-tests/array-utilities-expected.txt: Added.
  • inspector/unit-tests/array-utilities.html: Added.
12:50 PM Changeset in webkit [195174] by commit-queue@webkit.org
  • 4 edits in trunk

.:
[GTK] Use -Wl,-all_load on darwin to include contents of all static archives

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

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-01-16
Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsGTK.cmake:

Source/WebKit2:
Remove a now-irrelevant darwin build hack
https://bugs.webkit.org/show_bug.cgi?id=153117

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-01-16
Reviewed by Michael Catanzaro.

  • PlatformGTK.cmake:
12:37 PM Changeset in webkit [195173] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Give RuleSet a BumpArena and start using it for RuleDataVectors.
<https://webkit.org/b/153169>

Reviewed by Antti Koivisto.

Since RuleSet only supports appending rules and doesn't need to worry about removing them,
it's a great candidate for BumpArena optimizations.

Give each RuleSet its own BumpArena and teach them how to allocate RuleDataVector objects
out of them.

There are more things that can be done here, ideally all the sub-allocations inside RuleSet
that happen via e.g Vector and HashMap would also come out of the BumpArena.

  • css/RuleSet.cpp:

(WebCore::RuleSet::RuleSet):
(WebCore::RuleSet::addToRuleSet):
(WebCore::RuleSet::copyShadowPseudoElementRulesFrom):

  • css/RuleSet.h:

(WebCore::RuleSet::RuleDataVector::create):
(WebCore::RuleSet::RuleSet): Deleted.

11:07 AM Changeset in webkit [195172] by Simon Fraser
  • 4 edits in trunk

Source/WebCore:
Fix flakiness of displaylists/layer-dispay-list.html

When toggling "uses display list drawing" on a GraphicsLayerCA, do
a repaint.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setUsesDisplayListDrawing):

LayoutTests:
This test needs to force layout before calling setElementUsesDisplayListDrawing(),
so that the layer already has its "drawsContents" property updated.

  • displaylists/layer-dispay-list.html:
11:03 AM Changeset in webkit [195171] by jhoneycutt@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS] Replace deprecated -[UIDocumentMenuViewController
_setIgnoreApplicationEntitlementForImport:]

<https://bugs.webkit.org/show_bug.cgi?id=145690>
<rdar://problem/20636577>

Reviewed by Brent Fulgham.

  • Platform/spi/ios/UIKitSPI.h:

Replace deprecated SPI with newer SPI.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel presentWithParameters:resultListener:]):
(-[WKFileUploadPanel _showDocumentPickerMenu]):
Ditto.

10:12 AM Changeset in webkit [195170] by Simon Fraser
  • 17 edits in trunk/Source

Remove GraphicsContext::drawConvexPolygon() and GraphicsContext::clipConvexPolygon()
https://bugs.webkit.org/show_bug.cgi?id=153174

Reviewed by Zalan Bujtas.

GraphicsContext::drawConvexPolygon() and GraphicsContext::clipConvexPolygon() were
poorly named (non-convex polygons are allowed), and just syntactic sugar over
clipPath() and drawPath().

Remove them, but add a convenience function to create a Path from a Vector of
points. For CG, we can use the more efficient CGPathAddLines().
Source/WebCore:

Add TextStream dumping for Path.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Path.cpp:

(WebCore::Path::polygonPathFromPoints):
(WebCore::Path::dump):
(WebCore::operator<<):

  • platform/graphics/Path.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::setPlatformShouldAntialias):
(WebCore::addConvexPolygonToContext): Deleted.
(WebCore::GraphicsContext::drawConvexPolygon): Deleted.
(WebCore::GraphicsContext::clipConvexPolygon): Deleted.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::addConvexPolygonToPath): Deleted.
(WebCore::GraphicsContext::drawConvexPolygon): Deleted.
(WebCore::GraphicsContext::clipConvexPolygon): Deleted.

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::polygonPathFromPoints):
(WebCore::Path::moveTo):
(WebCore::Path::addLineTo):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::addArcTo):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::Item::sizeInBytes): Deleted.
(WebCore::DisplayList::ClipConvexPolygon::ClipConvexPolygon): Deleted.
(WebCore::DisplayList::ClipConvexPolygon::apply): Deleted.
(WebCore::DisplayList::operator<<): Deleted.
(WebCore::DisplayList::addConvexPolygonToPath): Deleted.
(WebCore::DisplayList::DrawConvexPolygon::DrawConvexPolygon): Deleted.
(WebCore::DisplayList::DrawConvexPolygon::localBounds): Deleted.
(WebCore::DisplayList::DrawConvexPolygon::apply): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::ClipConvexPolygon::create): Deleted.
(WebCore::DisplayList::ClipConvexPolygon::points): Deleted.
(WebCore::DisplayList::ClipConvexPolygon::antialias): Deleted.
(WebCore::DisplayList::DrawConvexPolygon::create): Deleted.
(WebCore::DisplayList::DrawConvexPolygon::points): Deleted.
(WebCore::DisplayList::DrawConvexPolygon::antialiased): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawConvexPolygon): Deleted.
(WebCore::DisplayList::Recorder::clipConvexPolygon): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::clipBorderSidePolygon):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::drawLineForBoxSide):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuListButtonDecorations):

Source/WebKit/win:

  • FullscreenVideoController.cpp:

(HUDSlider::draw):

8:46 AM Changeset in webkit [195169] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add Platform.cpp to ANGLESupport

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

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-01-16
Reviewed by Darin Adler.

No new tests, only addresses a build failure.

  • CMakeLists.txt:
7:15 AM Changeset in webkit [195168] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] Unreviewed. Fix a typo in an API comment.

  • UIProcess/API/gtk/WebKitWebViewSessionState.cpp:
1:44 AM Changeset in webkit [195167] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] List box selections stopped working again with GTK+ from current git master
https://bugs.webkit.org/show_bug.cgi?id=153122

Reviewed by Michael Catanzaro.

The problem is that the ListBox selection implementation is
wrong. We are using a similar implementation to GtkEntry, but
GtkTreeView doesn't have a child CSS node for selections.

  • rendering/RenderThemeGtk.cpp:

(WebCore::styleColor): Don't use a child style context for ListBox selections.
(WebCore::createStyleContext): Remove ListBoxSelection.

1:36 AM Changeset in webkit [195166] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] GVariant runtime critical errors when encoding session data
https://bugs.webkit.org/show_bug.cgi?id=153130

Reviewed by Michael Catanzaro.

It happens when the FrameState has children, because the recursive
serialization is wrong. Also fix serialization of
documentSequenceNumber and itemSequenceNumber that are gint64, not
guint64.

  • UIProcess/API/gtk/WebKitWebViewSessionState.cpp:

(encodeFrameState): Let the caller open/init the given
builder. Use a new builder to encode child states recursively.
(encodePageState): Do the builder open/close for the FrameState encoding.
(decodeFrameState): Get the variant of every child.

12:49 AM Changeset in webkit [195165] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] Initialize HTTP version of ResourceResponse
https://bugs.webkit.org/show_bug.cgi?id=153088

Reviewed by Michael Catanzaro.

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::updateFromSoupMessage):

12:25 AM Changeset in webkit [195164] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Tiny cleanup in FontFaceComparator
https://bugs.webkit.org/show_bug.cgi?id=153044

Reviewed by Zalan Bujtas.

This is a follow-up patch to r194923.

No new tests because there is no behavior change.

  • css/CSSFontSelector.cpp:

(WebCore::FontFaceComparator::FontFaceComparator):
(WebCore::FontFaceComparator::operator()):

Jan 15, 2016:

7:57 PM Changeset in webkit [195163] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[webkitdirs] Avoid list form of open because it broke WinCairo
https://bugs.webkit.org/show_bug.cgi?id=153106

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-15
Reviewed by Alex Christensen.

  • Scripts/webkitdirs.pm:

(determineArchitecture):

6:08 PM Changeset in webkit [195162] by jiewen_tan@apple.com
  • 4 edits
    4 adds in trunk

FrameLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame() is never called when loading a main resource from the memory cache
https://bugs.webkit.org/show_bug.cgi?id=152520
<rdar://problem/23305737>

Reviewed by Andy Estes.

Source/WebCore:

Test: http/tests/loading/server-redirect-for-provisional-load-caching.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):
Dispatch message to notify client that a cached resource was redirected. So,
client can make proper actions to treat server side redirection.

  • loader/cache/CachedRawResource.h:

Add a method to tell whether the cached resource was redirected.

LayoutTests:

  • http/tests/loading/resources/server-redirect-result.html: Added.
  • http/tests/loading/resources/server-redirect.php: Added.
  • http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt: Added.
  • http/tests/loading/server-redirect-for-provisional-load-caching.html: Added.
5:55 PM Changeset in webkit [195161] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Content blocking console messages are not deterministic for one test
https://bugs.webkit.org/show_bug.cgi?id=153051

Unreviewed.

Console messages will print the line number of whichever JavaScript line is
being parsed. However, font requests (and therefore content blockers) are
not run in response to script. The solution is to add the webfont style
from script, so the line number is deterministic.

  • http/tests/contentextensions/font-display-none-repeated-layout.html:
5:03 PM Changeset in webkit [195160] by Chris Dumez
  • 7 edits
    2 deletes in trunk

Drop obsolete HTMLDocument.width / height attributes
https://bugs.webkit.org/show_bug.cgi?id=153144

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Drop obsolete HTMLDocument.width / height attributes as these are
obsolete and already not supported by other major browsers (tested
Firefox and Chrome).

No new tests, already covered by existing tests.

  • html/HTMLDocument.idl:

LayoutTests:

  • fast/dom/HTMLDocument/width-and-height-expected.txt: Removed.
  • fast/dom/HTMLDocument/width-and-height.html: Removed.

Drop outdated test.

  • fast/dom/Window/window-property-invalid-characters-ignored-expected.txt:
  • fast/dom/Window/window-property-invalid-characters-ignored.html:

Stop relying on Document.width / height as these are obsolete.

4:37 PM Changeset in webkit [195159] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Legalize Memory Offsets for ARM64 before lowering to Air
https://bugs.webkit.org/show_bug.cgi?id=153065

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-01-15
Reviewed by Mark Lam.
Reviewed by Filip Pizlo.

On ARM64, we cannot use signed 32bits offset for memory addressing.
There are two available addressing: signed 9bits and unsigned scaled 12bits.
Air already knows about it.

In this patch, the offsets are changed to something valid for ARM64
prior to lowering. When an offset is invalid, it is just computed
before the instruction and used as the base for addressing.

(JSC::B3::generateToAir):

  • b3/B3LegalizeMemoryOffsets.cpp: Added.

(JSC::B3::legalizeMemoryOffsets):

  • b3/B3LegalizeMemoryOffsets.h: Added.
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::effectiveAddr): Deleted.

  • b3/testb3.cpp:

(JSC::B3::testLoadWithOffsetImpl):
(JSC::B3::testLoadOffsetImm9Max):
(JSC::B3::testLoadOffsetImm9MaxPlusOne):
(JSC::B3::testLoadOffsetImm9MaxPlusTwo):
(JSC::B3::testLoadOffsetImm9Min):
(JSC::B3::testLoadOffsetImm9MinMinusOne):
(JSC::B3::testLoadOffsetScaledUnsignedImm12Max):
(JSC::B3::testLoadOffsetScaledUnsignedOverImm12Max):
(JSC::B3::run):

4:16 PM Changeset in webkit [195158] by Beth Dakin
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test for touch events in scaled documents
https://bugs.webkit.org/show_bug.cgi?id=153149
-and corresponding-
rdar://problem/24181371

Reviewed by Simon Fraser.

  • fast/events/touch/ios/touch-event-in-scaled-document-expected.txt: Added.
  • fast/events/touch/ios/touch-event-in-scaled-document.html: Added.
4:08 PM Changeset in webkit [195157] by Chris Dumez
  • 5 edits in trunk

Drop obsolete DocumentType.entities / notations
https://bugs.webkit.org/show_bug.cgi?id=153147

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Drop obsolete DocumentType.entities / notations attributes.

Firefox and Chrome already dropped those. We already dropped support for
entities and notations so these always returned null.

No new tests, already covered by existing tests.

  • dom/DocumentType.h:
  • dom/DocumentType.idl:
3:57 PM Changeset in webkit [195156] by Simon Fraser
  • 15 edits
    3 adds in trunk

Make a way to test display-list drawing
https://bugs.webkit.org/show_bug.cgi?id=152956

Reviewed by Ryosuke Niwa.
Source/WebCore:

Make it possible to toggle display-list drawing for a given compositing
layer via internals, as well as getting a textual representation of the display
list, optionally including items with platform-specific behavior.

Add one test that uses this.

Test: displaylists/layer-dispay-list.html

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::displayListAsText):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::displayListAsText):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::shouldDumpForFlags):
(WebCore::DisplayList::DisplayList::asText):

  • platform/graphics/displaylists/DisplayList.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::setUsesDisplayListDrawing):
(WebCore::RenderLayerBacking::displayListAsText):

  • rendering/RenderLayerBacking.h:
  • testing/Internals.cpp:

(WebCore::Internals::setElementUsesDisplayListDrawing):
(WebCore::Internals::displayListForElement):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Enable displaylists tests on Mac and iOS.

  • TestExpectations:
  • displaylists/layer-dispay-list-expected.txt: Added.
  • displaylists/layer-dispay-list.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
3:42 PM Changeset in webkit [195155] by achristensen@apple.com
  • 16 edits in trunk/Source

Fix internal Windows build
https://bugs.webkit.org/show_bug.cgi?id=153142

Source/JavaScriptCore:

Reviewed by Brent Fulgham.

The internal Windows build builds JavaScriptCore from a directory that is not called JavaScriptCore.
Searching for JavaScriptCore/API/APICast.h fails because it is in SomethingElse/API/APICast.h.
Since we are including the JavaScriptCore directory, it is not necessary to have JavaScriptCore in
the forwarding headers, but removing it allows builds form directories that are not named JavaScriptCore.

  • ForwardingHeaders/JavaScriptCore/APICast.h:
  • ForwardingHeaders/JavaScriptCore/JSBase.h:
  • ForwardingHeaders/JavaScriptCore/JSCTestRunnerUtils.h:
  • ForwardingHeaders/JavaScriptCore/JSContextRef.h:
  • ForwardingHeaders/JavaScriptCore/JSObjectRef.h:
  • ForwardingHeaders/JavaScriptCore/JSRetainPtr.h:
  • ForwardingHeaders/JavaScriptCore/JSStringRef.h:
  • ForwardingHeaders/JavaScriptCore/JSStringRefCF.h:
  • ForwardingHeaders/JavaScriptCore/JSValueRef.h:
  • ForwardingHeaders/JavaScriptCore/JavaScript.h:
  • ForwardingHeaders/JavaScriptCore/JavaScriptCore.h:
  • ForwardingHeaders/JavaScriptCore/OpaqueJSString.h:
  • ForwardingHeaders/JavaScriptCore/WebKitAvailability.h:

Source/WebKit2:

Unreviewed addition to Alex's JSC patch, which was reviewed by Brent Fulgham. Pass
-I${JAVASCRIPTCORE_DIR} to g-ir-scanner.

Patch by Michael Catanzaro <Michael Catanzaro> on 2016-01-15

  • PlatformGTK.cmake:
3:34 PM Changeset in webkit [195154] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Fix audio build with video disabled
https://bugs.webkit.org/show_bug.cgi?id=153134

Patch by Olivier Blin <Olivier Blin> on 2016-01-15
Reviewed by Michael Catanzaro.

Build fails when WebAudio is enabled but VIDEO disabled.

No new tests since this is a build fix only.

  • platform/audio/PlatformMediaSession.cpp:
  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.cpp:
  • testing/Internals.cpp:

(WebCore::Internals::setAudioContextRestrictions):

3:22 PM Changeset in webkit [195153] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Fix build of RenderThemeGtk without VIDEO by including HTMLInputElement
https://bugs.webkit.org/show_bug.cgi?id=153133

Patch by Olivier Blin <Olivier Blin> on 2016-01-15
Reviewed by Michael Catanzaro.

Build was fine with VIDEO enabled, since HTMLInputElement.h was
included by transitivity through MediaControlElements.h and
MediaControlElementTypes.h.

This seems to be broken since r194847.

No new tests since this is just a build fix.

  • rendering/RenderThemeGtk.cpp:
3:06 PM Changeset in webkit [195152] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

createElementNS and createAttributeNS should treat undefined namespaceURI as null string
https://bugs.webkit.org/show_bug.cgi?id=153119

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebaseline a test now that more test cases are passing.

  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:

Source/WebCore:

Treat undefined as null in document.createElementNS and document.createAttributeNS as defined in:
https://dom.spec.whatwg.org/#document

Test: fast/dom/Document/createAttributeNS-undefined-namespace.html

  • dom/Document.idl:

LayoutTests:

Add a regression test for calling createAttributeNS with undefined namespaceURI.

  • fast/dom/Document/createAttributeNS-undefined-namespace-expected.txt: Added.
  • fast/dom/Document/createAttributeNS-undefined-namespace.html: Added.
3:03 PM Changeset in webkit [195151] by jiewen_tan@apple.com
  • 10 edits in trunk/LayoutTests

Refine http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer*
https://bugs.webkit.org/show_bug.cgi?id=153140

Reviewed by Alexey Proskuryakov.

  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped.html:
  • http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped.js:

(onload):
(navigation): Deleted.
The reason why the tests are not completed after calling testRunner.notifyDone() is that the original navigation()
is bound as the onload of the iframe which will dispatch two load events. Therefore, navigation() will be called
twice. Here, change the navigation() to be bound with the main frame's onload function, which will restrict it to
be called only once.

2:58 PM Changeset in webkit [195150] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[Cocoa] Font features are not applied to the system font
https://bugs.webkit.org/show_bug.cgi?id=153053

Reviewed by Dean Jackson.

Source/WebCore:

We simply need to call preparePlatformFont() on it.

Test: fast/text/system-font-features.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::fontWithFamily):

LayoutTests:

  • fast/text/system-font-features-expected.html: Added.
  • fast/text/system-font-features.html: Added.
2:29 PM Changeset in webkit [195149] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Data detector yellow highlight location is vertically mirrored in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=152216
<rdar://problem/23848003>

Reviewed by Beth Dakin.

No new tests, because we currently have no decent mechanism for testing
where TextIndicator/Lookup/DataDetectors actually make it to the screen,
nor for synthetic force-click in WebKit1.

  • editing/mac/DictionaryLookup.h:
  • editing/mac/DictionaryLookup.mm:

(WebCore::showPopupOrCreateAnimationController):
(WebCore::DictionaryLookup::showPopup):
(WebCore::DictionaryLookup::animationControllerForPopup):
Add an optional function for converting between root-FrameView and
handed-in-NSView coordinates, and use it to convert textBoundingRectInRootViewCoordinates
into the coordinates of the WebView.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
These assignments have no effect because they're operating on a copy, because
TextIndicator::data() does not return a reference... so remove them.

  • WebView/WebView.mm:

(-[WebView _setTextIndicator:withLifetime:]):
Convert textBoundingRectInRootViewCoordinates to WebView coordinates before
converting to Window coordinates from WebView coordinates so we get flipping right.

(-[WebView _animationControllerForDictionaryLookupPopupInfo:]):
(-[WebView _showDictionaryLookupPopup:]):
Ditto for these, except in the aforementioned conversion callback.

2:28 PM Changeset in webkit [195148] by commit-queue@webkit.org
  • 4 edits
    2 adds
    2 deletes in trunk

Media Query (-webkit-video-playable-inline) is failing as an invalid media query expression
https://bugs.webkit.org/show_bug.cgi?id=153111

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-15
Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/media/video-playable-inline-media-query.html

  • css/MediaQueryEvaluator.cpp:

(WebCore::video_playable_inlineMediaFeatureEval):
(WebCore::isRunningOnIPhoneOrIPod): Deleted.
Make the media query work regardless of the platform.
It should just check the web view's settings.

  • css/MediaQueryExp.cpp:

(WebCore::featureWithoutValue):
This media query expects no value, include it in the list
so it is not treated as invalid.

LayoutTests:

  • fast/media/video-playable-inline-media-query-expected.txt: Added.
  • fast/media/video-playable-inline-media-query.html: Added.
  • platform/ios-simulator/ios/fast/media/video-inline-expected.txt: Removed.
  • platform/ios-simulator/ios/fast/media/video-inline.html: Removed.
2:21 PM Changeset in webkit [195147] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk/LayoutTests

LayoutTest inspector/script-profiler/event-type-Other.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=153016
<rdar://problem/24192919>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-15
Reviewed by Brian Burg.

Introduce a better way for the inspected page to signal to
the inspector page by dispatching an event with JSON data.
Use it in this test to try to eliminate flakyness.

  • http/tests/inspector/resources/inspector-test.js:

(TestPage.dispatchEventToFrontend):

  • http/tests/inspector/resources/protocol-test.js:

(TestPage.runTest.window.runTest):
(TestPage.dispatchEventToFrontend):

  • inspector/script-profiler/event-type-Other.html:
  • inspector/unit-tests/inspector-test-dispatch-event-to-frontend-expected.txt: Added.
  • inspector/unit-tests/inspector-test-dispatch-event-to-frontend.html: Added.
  • inspector/unit-tests/protocol-test-dispatch-event-to-frontend-expected.txt: Added.
  • inspector/unit-tests/protocol-test-dispatch-event-to-frontend.html: Added.
  • platform/mac/TestExpectations:
1:49 PM Changeset in webkit [195146] by Alan Bujtas
  • 3 edits
    2 adds in trunk
ASSERTION FAILED: canHaveChildren()
canHaveGeneratedChildren() in WebCore::RenderElement::insertChildInternal

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

Reviewed by Darin Adler.

Do not set named flow fragment bit on the flow until after the renderer is attached. Setting/resetting it too early
could affect the attach/detach process itself (This is similar to attaching a multi column flow thread).

Source/WebCore:

Test: fast/regions/input-box-with-region-assert.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::willBeDestroyed):
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
(WebCore::RenderBlockFlow::setRenderNamedFlowFragment):

LayoutTests:

  • fast/regions/input-box-with-region-assert-expected.txt: Added.
  • fast/regions/input-box-with-region-assert.html: Added.
1:43 PM Changeset in webkit [195145] by peavo@outlook.com
  • 5 edits in trunk/Source/JavaScriptCore

[B3][Win64] Compile fixes.
https://bugs.webkit.org/show_bug.cgi?id=153127

Reviewed by Alex Christensen.

MSVC have several overloads of fmod, pow, and ceil. We need to suggest to MSVC
which one we want to use.

  • b3/B3LowerMacros.cpp:
  • b3/B3LowerMacrosAfterOptimizations.cpp:
  • b3/B3MathExtras.cpp:

(JSC::B3::powDoubleInt32):

  • b3/B3ReduceStrength.cpp:
1:18 PM Changeset in webkit [195144] by commit-queue@webkit.org
  • 5 edits in trunk/LayoutTests

Web Inspector: Fix some typos in unit tests
https://bugs.webkit.org/show_bug.cgi?id=153141

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-15
Reviewed by Brian Burg.

  • inspector/unit-tests/async-test-suite-expected.txt:
  • inspector/unit-tests/async-test-suite.html:
  • inspector/unit-tests/sync-test-suite-expected.txt:
  • inspector/unit-tests/sync-test-suite.html:

Fix some typos.

1:11 PM Changeset in webkit [195143] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline tables/mozilla_expected_failures/bugs/bug89315.html for ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=152130

Unreviewed test gardening.

  • platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
12:57 PM Changeset in webkit [195142] by Simon Fraser
  • 9 edits
    3 adds in trunk

Add kdebug_trace signposts for a few WebCore operations
https://bugs.webkit.org/show_bug.cgi?id=153136
rdar://problem/24208487

Reviewed by Sam Weinig.
Source/WebCore:

Add trace points for style recalc, layout, view painting and layer painting.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::paintContents):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::platformCALayerPaintContents):

Source/WTF:

New header with the reserved WebKit component code, trace point codes, and
a stack-based helper that traces scope entry and exit.

The available range of trace point codes is arbitrarily segmented into WTF, JSC,
WebCore, WebKit and WebKit2.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/SystemTracing.h: Added.

(WTF::TraceScope::TraceScope):
(WTF::TraceScope::~TraceScope):

Tools:

Plist used by kdebug_trace() viewing tools.

  • Tracing/SystemTracePoints.plist: Added.
12:01 PM Changeset in webkit [195141] by akling@apple.com
  • 23 edits
    2 adds in trunk/Source

Source/WebCore:
Use BumpArena for style sheet object tree.
<https://webkit.org/b/152696>

Reviewed by Antti Koivisto.

Give each StyleSheetContents its own BumpArena, and plumb it down through CSSParser
to allocate StyleRule, StyleProperties and CSSSelectorList's selector arrays there.

This basically means that most objects that make up a given style sheet will end up
in one (or a few) contiguous region(s) of memory, instead of being scattered all
over the malloc heap.

In the common case (no CSSOM manipulation), the lifetimes of these objects are very
predictable: everything tends to die when the StyleSheetContents dies.
This dramatically improves space-efficiency in those cases, and allows us to return
contiguous chunks of memory to the system once a style sheet is no longer needed.

One-off CSS parses that don't work within a StyleSheetContents context will have
their StyleRules & co allocated through FastMalloc just like before.

Bonus: give SelectorQueryCache a dedicated BumpArena as well, since it has very
predictable lifetime.

  • css/CSSGrammar.y.in:
  • css/CSSKeyframesRule.h:

(WebCore::StyleRuleKeyframes::create):

  • css/CSSParser.cpp:

(WebCore::CSSParser::createStyleProperties):
(WebCore::CSSParser::createMediaRule):
(WebCore::CSSParser::createSupportsRule):
(WebCore::CSSParser::createKeyframesRule):
(WebCore::CSSParser::setArena):
(WebCore::CSSParser::arena):
(WebCore::CSSParser::createStyleRule):
(WebCore::CSSParser::createFontFaceRule):
(WebCore::CSSParser::createPageRule):
(WebCore::CSSParser::createRegionRule):
(WebCore::CSSParser::createViewportRule):

  • css/CSSParser.h:
  • css/CSSParserValues.cpp:

(WebCore::CSSParserSelector::parsePseudoElementCueFunctionSelector):
(WebCore::CSSParserSelector::adoptSelectorVector):

  • css/CSSParserValues.h:
  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::adoptSelectorVector):
(WebCore::CSSSelectorList::deleteSelectors):

  • css/CSSSelectorList.h:
  • css/StyleProperties.cpp:

(WebCore::ImmutableStyleProperties::create):
(WebCore::StyleProperties::immutableCopyIfNeeded):

  • css/StyleProperties.h:
  • css/StyleRule.cpp:

(WebCore::StyleRule::create):
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):
(WebCore::StyleRuleRegion::StyleRuleRegion):

  • css/StyleRule.h:

(WebCore::StyleRule::create):
(WebCore::StyleRule::parserAdoptSelectorVector):
(WebCore::StyleRuleFontFace::create):
(WebCore::StyleRulePage::create):
(WebCore::StyleRulePage::parserAdoptSelectorVector):
(WebCore::StyleRuleMedia::create):
(WebCore::StyleRuleSupports::create):
(WebCore::StyleRuleRegion::create):
(WebCore::StyleRuleViewport::create):

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::StyleSheetContents):
(WebCore::StyleSheetContents::parseAuthorStyleSheet):
(WebCore::StyleSheetContents::parseStringAtPosition):

  • css/StyleSheetContents.h:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorQueryCache::SelectorQueryCache):
(WebCore::SelectorQueryCache::add):

  • dom/SelectorQuery.h:
  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::SVGFontFaceElement):

Source/WTF:
Fragmentation-free allocator for timeless and/or coupled allocations.
<https://webkit.org/b/152696>

Reviewed by Antti Koivisto.

Introduce BumpArena, a space-efficient memory allocator for situations where
you feel pretty confident betting on allocation lifetimes.

Basic design:

  • Reserves 128MB range of memory at startup.
  • Allocates 4kB-aligned blocks of 4kB from VM at a time.
  • Bump-pointer allocates out of a block until it reaches end.
  • Each allocation increments the ref-count of its block.
  • Each deallocation decrements the ref-count of its block.
  • Transparently falls back to fastMalloc()/fastFree() when needed.

Interface:

  • BumpArena::create()

Create your very own BumpArena!

  • BumpArena::allocate(BumpArena* arena, size_t size)

Allocates 'size' bytes of memory from 'arena'.
If 'arena' is null, falls back to fastMalloc().

  • BumpArena::deallocate(void* ptr)

If 'ptr' is BumpArena allocation, decrements block ref-count.
If 'ptr' is FastMalloc allocation, calls fastFree() on it.

  • WTF_MAKE_BUMPARENA_ALLOCATED;

Macro that gives a class or struct custom operators new and delete
for allocation out of BumpArena. Just like WTF_MAKE_FAST_ALLOCATED;

Note that while the name of this patch says "fragmentation-free allocator"
it will only be fragmentation-free when used for appropriate things.
This is not meant to be a general-purpose allocator. Only use it for sets of
allocations that are known to die roughly at the same time.

BumpArena will never resume allocating from a block that has been filled,
so it's even more important than usual that everything gets deallocated.

BumpArena redirects allocations to FastMalloc in three cases:

  • When invoked with a null BumpArena*
  • When allocation request is larger than BumpArena's block size (4kB)
  • When BumpArena has exhausted all of its pre-reserved VM. (128MB)

The VM allocator will eagerly return blocks of VM to the kernel by calling
madvise(). Average time spent in madvise is around 0.007ms on my box.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/BumpArena.cpp: Added.

(WTF::BumpArena::Block::capacity):
(WTF::BumpArena::Block::arena):
(WTF::BumpArena::Block::payloadStart):
(WTF::arenas):
(WTF::BumpArena::Block::Block):
(WTF::BumpArena::Block::~Block):
(WTF::BumpArena::Block::ref):
(WTF::BlockAllocator::BlockAllocator):
(WTF::BlockAllocator::isAllocation):
(WTF::blockAllocator):
(WTF::BlockAllocator::allocateBlock):
(WTF::BlockAllocator::deallocateBlock):
(WTF::BumpArena::Block::deref):
(WTF::BumpArena::Block::create):
(WTF::BumpArena::Block::dump):
(WTF::BumpArena::dump):
(WTF::BumpArena::create):
(WTF::BumpArena::BumpArena):
(WTF::BumpArena::~BumpArena):
(WTF::BumpArena::allocateSlow):
(WTF::BumpArena::allocate):
(WTF::BumpArena::deallocate):
(WTF::BumpArena::Block::blockFor):
(WTF::BumpArena::arenaFor):

  • wtf/BumpArena.h: Added.
  • wtf/CMakeLists.txt:
11:55 AM Changeset in webkit [195140] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Eliminate the margin on timeline elements so multiple timelines can touch.

  • wp-content/themes/webkit/style.css:

(.timeline):

11:41 AM Changeset in webkit [195139] by fpizlo@apple.com
  • 30 edits
    10 adds in trunk/Source/JavaScriptCore

Air needs a Shuffle instruction
https://bugs.webkit.org/show_bug.cgi?id=152952

Reviewed by Saam Barati.

This adds an instruction called Shuffle. Shuffle allows you to simultaneously perform
multiple moves to perform arbitrary permutations over registers and memory. We call these
rotations. It also allows you to perform "shifts", like (a => b, b => c): after the shift,
c will have b's old value, b will have a's old value, and a will be unchanged. Shifts can
use immediates as their source.

Shuffle is added as a custom instruction, since it has a variable number of arguments. It
takes any number of triplets of arguments, where each triplet describes one mapping of the
shuffle. For example, to represent (a => b, b => c), we might say:

Shuffle %a, %b, 64, %b, %c, 64

Note the "64"s, those are width arguments that describe how many bits of the register are
being moved. Each triplet is referred to as a "shuffle pair". We call it a pair because the
most relevant part of it is the pair of registers or memroy locations (i.e. %a, %b form one
of the pairs in the example). For GP arguments, the width follows ZDef semantics.

In the future, we will be able to use Shuffle for a lot of things. This patch is modest about
how to use it:

  • C calling convention argument marshalling. Previously we used move instructions. But that's problematic since it introduces artificial interference between the argument registers and the inputs. Using Shuffle removes that interference. This helps a bit.
  • Cold C calls. This is what really motivated me to write this patch. If we have a C call on a cold path, then we want it to appear to the register allocator like it doesn't clobber any registers. Only after register allocation should we handle the clobbering by simply saving all of the live volatile registers to the stack. If you imagine the saving and the argument marshalling, you can see how before the call, we want to have a Shuffle that does both of those things. This is important. If argument marshalling was separate from the saving, then we'd still appear to clobber argument registers. Doing them together as one Shuffle means that the cold call doesn't appear to even clobber the argument registers.

Unfortunately, I was wrong about cold C calls being the dominant problem with our register
allocator right now. Fixing this revealed other problems in my current tuning benchmark,
Octane/encrypt. Nonetheless, this is a small speed-up across the board, and gives us some
functionality we will need to implement other optimizations.

Relanding after fixing production build.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/AbstractMacroAssembler.h:

(JSC::isX86_64):
(JSC::isIOS):
(JSC::optimizeForARMv7IDIVSupported):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::zeroExtend32ToPtr):
(JSC::MacroAssemblerX86Common::swap32):
(JSC::MacroAssemblerX86Common::moveConditionally32):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::store64WithAddressOffsetPatch):
(JSC::MacroAssemblerX86_64::swap64):
(JSC::MacroAssemblerX86_64::move64ToDouble):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::xchgl_rr):
(JSC::X86Assembler::xchgl_rm):
(JSC::X86Assembler::xchgq_rr):
(JSC::X86Assembler::xchgq_rm):
(JSC::X86Assembler::movl_rr):

  • b3/B3CCallValue.h:
  • b3/B3Compilation.cpp:

(JSC::B3::Compilation::Compilation):
(JSC::B3::Compilation::~Compilation):

  • b3/B3Compilation.h:

(JSC::B3::Compilation::code):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::run):
(JSC::B3::Air::LowerToAir::createSelect):
(JSC::B3::Air::LowerToAir::lower):
(JSC::B3::Air::LowerToAir::marshallCCallArgument): Deleted.

  • b3/B3OpaqueByproducts.h:

(JSC::B3::OpaqueByproducts::count):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::isArgValidForValue):
(JSC::B3::StackmapSpecial::isArgValidForRep):

  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::isStackMemory):
(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):
(JSC::B3::Air::Arg::canRepresent):
(JSC::B3::Air::Arg::isCompatibleType):
(JSC::B3::Air::Arg::dump):
(WTF::printInternal):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::forEachType):
(JSC::B3::Air::Arg::isWarmUse):
(JSC::B3::Air::Arg::cooled):
(JSC::B3::Air::Arg::isEarlyUse):
(JSC::B3::Air::Arg::imm64):
(JSC::B3::Air::Arg::immPtr):
(JSC::B3::Air::Arg::addr):
(JSC::B3::Air::Arg::special):
(JSC::B3::Air::Arg::widthArg):
(JSC::B3::Air::Arg::operator==):
(JSC::B3::Air::Arg::isImm64):
(JSC::B3::Air::Arg::isSomeImm):
(JSC::B3::Air::Arg::isAddr):
(JSC::B3::Air::Arg::isIndex):
(JSC::B3::Air::Arg::isMemory):
(JSC::B3::Air::Arg::isRelCond):
(JSC::B3::Air::Arg::isSpecial):
(JSC::B3::Air::Arg::isWidthArg):
(JSC::B3::Air::Arg::isAlive):
(JSC::B3::Air::Arg::base):
(JSC::B3::Air::Arg::hasOffset):
(JSC::B3::Air::Arg::offset):
(JSC::B3::Air::Arg::width):
(JSC::B3::Air::Arg::isGPTmp):
(JSC::B3::Air::Arg::isGP):
(JSC::B3::Air::Arg::isFP):
(JSC::B3::Air::Arg::isType):
(JSC::B3::Air::Arg::isGPR):
(JSC::B3::Air::Arg::isValidForm):
(JSC::B3::Air::Arg::forEachTmpFast):

  • b3/air/AirBasicBlock.h:

(JSC::B3::Air::BasicBlock::insts):
(JSC::B3::Air::BasicBlock::appendInst):
(JSC::B3::Air::BasicBlock::append):

  • b3/air/AirCCallingConvention.cpp: Added.

(JSC::B3::Air::computeCCallingConvention):
(JSC::B3::Air::cCallResult):
(JSC::B3::Air::buildCCall):

  • b3/air/AirCCallingConvention.h: Added.
  • b3/air/AirCode.h:

(JSC::B3::Air::Code::proc):

  • b3/air/AirCustom.cpp: Added.

(JSC::B3::Air::CCallCustom::isValidForm):
(JSC::B3::Air::CCallCustom::generate):
(JSC::B3::Air::ShuffleCustom::isValidForm):
(JSC::B3::Air::ShuffleCustom::generate):

  • b3/air/AirCustom.h:

(JSC::B3::Air::PatchCustom::forEachArg):
(JSC::B3::Air::PatchCustom::generate):
(JSC::B3::Air::CCallCustom::forEachArg):
(JSC::B3::Air::CCallCustom::isValidFormStatic):
(JSC::B3::Air::CCallCustom::admitsStack):
(JSC::B3::Air::CCallCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::ColdCCallCustom::forEachArg):
(JSC::B3::Air::ShuffleCustom::forEachArg):
(JSC::B3::Air::ShuffleCustom::isValidFormStatic):
(JSC::B3::Air::ShuffleCustom::admitsStack):
(JSC::B3::Air::ShuffleCustom::hasNonArgNonControlEffects):

  • b3/air/AirEmitShuffle.cpp: Added.

(JSC::B3::Air::ShufflePair::dump):
(JSC::B3::Air::emitShuffle):

  • b3/air/AirEmitShuffle.h: Added.

(JSC::B3::Air::ShufflePair::ShufflePair):
(JSC::B3::Air::ShufflePair::src):
(JSC::B3::Air::ShufflePair::dst):
(JSC::B3::Air::ShufflePair::width):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):

  • b3/air/AirGenerate.h:
  • b3/air/AirInsertionSet.cpp:

(JSC::B3::Air::InsertionSet::insertInsts):
(JSC::B3::Air::InsertionSet::execute):

  • b3/air/AirInsertionSet.h:

(JSC::B3::Air::InsertionSet::insertInst):
(JSC::B3::Air::InsertionSet::insert):

  • b3/air/AirInst.h:

(JSC::B3::Air::Inst::operator bool):
(JSC::B3::Air::Inst::append):

  • b3/air/AirLowerAfterRegAlloc.cpp: Added.

(JSC::B3::Air::lowerAfterRegAlloc):

  • b3/air/AirLowerAfterRegAlloc.h: Added.
  • b3/air/AirLowerMacros.cpp: Added.

(JSC::B3::Air::lowerMacros):

  • b3/air/AirLowerMacros.h: Added.
  • b3/air/AirOpcode.opcodes:
  • b3/air/AirRegisterPriority.h:

(JSC::B3::Air::regsInPriorityOrder):

  • b3/air/testair.cpp: Added.

(hiddenTruthBecauseNoReturnIsStupid):
(usage):
(JSC::B3::Air::compile):
(JSC::B3::Air::invoke):
(JSC::B3::Air::compileAndRun):
(JSC::B3::Air::testSimple):
(JSC::B3::Air::loadConstantImpl):
(JSC::B3::Air::loadConstant):
(JSC::B3::Air::loadDoubleConstant):
(JSC::B3::Air::testShuffleSimpleSwap):
(JSC::B3::Air::testShuffleSimpleShift):
(JSC::B3::Air::testShuffleLongShift):
(JSC::B3::Air::testShuffleLongShiftBackwards):
(JSC::B3::Air::testShuffleSimpleRotate):
(JSC::B3::Air::testShuffleSimpleBroadcast):
(JSC::B3::Air::testShuffleBroadcastAllRegs):
(JSC::B3::Air::testShuffleTreeShift):
(JSC::B3::Air::testShuffleTreeShiftBackward):
(JSC::B3::Air::testShuffleTreeShiftOtherBackward):
(JSC::B3::Air::testShuffleMultipleShifts):
(JSC::B3::Air::testShuffleRotateWithFringe):
(JSC::B3::Air::testShuffleRotateWithLongFringe):
(JSC::B3::Air::testShuffleMultipleRotates):
(JSC::B3::Air::testShuffleShiftAndRotate):
(JSC::B3::Air::testShuffleShiftAllRegs):
(JSC::B3::Air::testShuffleRotateAllRegs):
(JSC::B3::Air::testShuffleSimpleSwap64):
(JSC::B3::Air::testShuffleSimpleShift64):
(JSC::B3::Air::testShuffleSwapMixedWidth):
(JSC::B3::Air::testShuffleShiftMixedWidth):
(JSC::B3::Air::testShuffleShiftMemory):
(JSC::B3::Air::testShuffleShiftMemoryLong):
(JSC::B3::Air::testShuffleShiftMemoryAllRegs):
(JSC::B3::Air::testShuffleShiftMemoryAllRegs64):
(JSC::B3::Air::combineHiLo):
(JSC::B3::Air::testShuffleShiftMemoryAllRegsMixedWidth):
(JSC::B3::Air::testShuffleRotateMemory):
(JSC::B3::Air::testShuffleRotateMemory64):
(JSC::B3::Air::testShuffleRotateMemoryMixedWidth):
(JSC::B3::Air::testShuffleRotateMemoryAllRegs64):
(JSC::B3::Air::testShuffleRotateMemoryAllRegsMixedWidth):
(JSC::B3::Air::testShuffleSwapDouble):
(JSC::B3::Air::testShuffleShiftDouble):
(JSC::B3::Air::run):
(run):
(main):

  • b3/testb3.cpp:

(JSC::B3::testCallSimple):
(JSC::B3::testCallRare):
(JSC::B3::testCallRareLive):
(JSC::B3::testCallSimplePure):
(JSC::B3::run):

11:30 AM Changeset in webkit [195138] by commit-queue@webkit.org
  • 12 edits
    4 adds in trunk

[INTL] Implement Date.prototype.toLocaleString in ECMA-402
https://bugs.webkit.org/show_bug.cgi?id=147611

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2016-01-15
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Expose dateProtoFuncGetTime as thisTimeValue for builtins.
Remove unused code in DateTimeFormat toDateTimeOptions, and make the
function specific to the call in initializeDateTimeFormat. Properly
throw when the options parameter is null.
Add toLocaleString in builtin JavaScript, with it's own specific branch
of toDateTimeOptions.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/DatePrototype.js: Added.

(toLocaleString.toDateTimeOptionsAnyAll):
(toLocaleString):

  • runtime/CommonIdentifiers.h:
  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::finishCreation):

  • runtime/DatePrototype.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::toDateTimeOptionsAnyDate):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::toDateTimeOptions): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

LayoutTests:

  • js/intl-datetimeformat-expected.txt: Added test for null options.
  • js/date-toLocaleString-expected.txt: Added.
  • js/date-toLocaleString.html: Added.
  • js/script-tests/intl-datetimeformat.js: Added test for null options.
  • js/script-tests/date-toLocaleString.js: Added.
10:59 AM Changeset in webkit [195137] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/LayoutTests

Merged r195130. rdar://problem/24154420

10:57 AM Changeset in webkit [195136] by bshafiei@apple.com
  • 2 edits in branches/safari-601-branch/LayoutTests

Merged r195130. rdar://problem/24154290

10:56 AM Changeset in webkit [195135] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

10:53 AM Changeset in webkit [195134] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[mips] Implemented emitFunctionPrologue/Epilogue
https://bugs.webkit.org/show_bug.cgi?id=152947

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-15
Reviewed by Michael Saboff.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::popPair):
(JSC::MacroAssemblerMIPS::pushPair):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitFunctionPrologue):
(JSC::AssemblyHelpers::emitFunctionEpilogueWithEmptyFrame):
(JSC::AssemblyHelpers::emitFunctionEpilogue):

9:07 AM Changeset in webkit [195133] by commit-queue@webkit.org
  • 30 edits
    10 deletes in trunk/Source/JavaScriptCore

Unreviewed, rolling out r195084.
https://bugs.webkit.org/show_bug.cgi?id=153132

Broke Production build (Requested by ap on #webkit).

Reverted changeset:

"Air needs a Shuffle instruction"
https://bugs.webkit.org/show_bug.cgi?id=152952
http://trac.webkit.org/changeset/195084

9:06 AM Changeset in webkit [195132] by hyatt@apple.com
  • 6 edits in trunk/Source/WebCore

Avoid downloading the wrong image for <picture> elements.
https://bugs.webkit.org/show_bug.cgi?id=153027

Reviewed by Dean Jackson.

No tests, since they are always flaky.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::~HTMLImageElement):
(WebCore::HTMLImageElement::createForJSConstructor):
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::insertedInto):
(WebCore::HTMLImageElement::removedFrom):
(WebCore::HTMLImageElement::pictureElement):
(WebCore::HTMLImageElement::setPictureElement):
(WebCore::HTMLImageElement::width):

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::hasShadowControls):

  • html/HTMLPictureElement.h:
  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::createHTMLElement):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

Images that are built underneath a <picture> element are now connected
to that picture element via a setPictureNode call from the parser. This
ensures that the correct <source> elements are examined before checking the image.

This connection between images and their picture owners is handled using a static
HashMap in HTMLImageElement. This connection is made both from the parser and from
DOM insertions, and the map is queried now instead of looking directly at the
image's parentNode().

5:41 AM Changeset in webkit [195131] by Carlos Garcia Campos
  • 3 edits
    29 adds in releases/WebKitGTK/webkit-2.10

Merge r194143 - Fix computation of min|max-content contribution of non-replaced blocks
https://bugs.webkit.org/show_bug.cgi?id=152004

Reviewed by Darin Adler.

Source/WebCore:

WebKit currently always returns the min preferred logical
width for the min-content contribution (and the max preferred
logical width for the max-content contribution) for
non-replaced blocks. That is not correct according to specs
https://drafts.csswg.org/css-sizing/#block-intrinsic.

The min-content and max-content contributions actually depend
on the computed inline size of the block:

  • for min-content,max-content or definite sizes: min-content

and max-content contributions are the inline size plus border,
margin and padding.

  • otherwise: min-content contribution is the min-content size

and max-content contribution is the max-content size (in both
cases plus border, padding and margin).

Tests: fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html

fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html
fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html
fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):

LayoutTests:

  • fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1-expected.html: Added.
  • fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html: Added.
  • fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2-expected.html: Added.
  • fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html: Added.
  • fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
  • fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
  • fast/css-intrinsic-dimensions/resources/intrinsic-size-contribution.css: Added.

(.container):
(.item):
(.border):
(.padding):
(.margin):

5:23 AM Changeset in webkit [195130] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

Switch out from ES6 arrow function syntax to allow the test to work with an older WebKit.

  • fast/loader/cache-encoding.html:
5:16 AM Changeset in webkit [195129] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.10/Source/WTF

Merge r194037 - REGRESSION (r162777): Remove Boost Software License from WTF
<http://webkit.org/b/152243>

Reviewed by Darin Adler.

The source code that the Boost Software License was referring to
was removed in r162777 by switching to std::atomic.

  • wtf/Atomics.cpp:
  • wtf/Atomics.h:
  • wtf/ThreadSafeRefCounted.h:
  • Remove Boost Software License.
  • Update Apple Inc. copyright as needed.
  • Refresh Apple Inc. license text.
5:14 AM Changeset in webkit [195128] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r194016 - Clean up absolute positioned map properly.
https://bugs.webkit.org/show_bug.cgi?id=152219
rdar://problem/23861165

Reviewed by Simon Fraser.

We insert positioned renderers into a static map (RenderBlock::gPositionedDescendantsMap) to keep track of them.
Since this static map is at block level, (positioned)inline renderers use their containing block to store
their positioned descendants.
This patch ensures that when an inline element can no longer hold positioned children, we remove them from
the inline's containing block's map. -unless the container itself can hold positioned renderers(see RenderElement::canContainAbsolutelyPositionedObjects).

Source/WebCore:

Test: fast/block/positioning/crash-when-positioned-inline-has-positioned-child.html

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleWillChange):

  • rendering/RenderInline.h:

LayoutTests:

  • fast/block/positioning/crash-when-positioned-inline-has-positioned-child-expected.txt: Added.
  • fast/block/positioning/crash-when-positioned-inline-has-positioned-child.html: Added.
5:11 AM Changeset in webkit [195127] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r194002 - ASSERTION FAILED: !rect.isEmpty() in WebCore::GraphicsContext::drawRect
https://bugs.webkit.org/show_bug.cgi?id=151201

Reviewed by Simon Fraser.

Drawing empty rect is a waste.

Source/WebCore:

Test: fast/borders/empty-drawrect-assert-after-pixelsnap.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::drawLineForBoxSide):

LayoutTests:

  • fast/borders/empty-drawrect-assert-after-pixelsnap-expected.txt: Added.
  • fast/borders/empty-drawrect-assert-after-pixelsnap.html: Added.
5:10 AM Changeset in webkit [195126] by Carlos Garcia Campos
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.10

Merge r194001 - Strip out Referer header when requesting subresources or following links for documents with "Content-Disposition: attachment"
https://bugs.webkit.org/show_bug.cgi?id=152102
<rdar://problem/22124230>

Reviewed by Andy Estes.

Source/WebCore:

Keep the ReferrerPolicy for a document as ReferrerPolicyNever if the document is loaded with
"Content-Disposition: attachment".

Test: http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html

  • dom/Document.cpp:

(WebCore::Document::processReferrerPolicy):
(WebCore::Document::applyContentDispositionAttachmentSandbox):

LayoutTests:

  • http/tests/contentdispositionattachmentsandbox/resources/echo-http-referer.php: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/subresource-request-not-include-referer-header-frame.php: Added.
  • http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header-expected.txt: Added.
  • http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html: Added.
4:42 AM Changeset in webkit [195125] by Carlos Garcia Campos
  • 6 edits
    1 copy
    4 adds in releases/WebKitGTK/webkit-2.10

Merge r193939 - [CSP] eval() is not blocked for stringified literals
https://bugs.webkit.org/show_bug.cgi?id=152158
<rdar://problem/15775625>

Reviewed by Saam Barati.

Source/JavaScriptCore:

Fixes an issue where stringified literals can be eval()ed despite being disallowed by
Content Security Policy of the page.

  • interpreter/Interpreter.cpp:

(JSC::eval): Throw a JavaScript EvalError exception if eval() is disallowed for the page
and return undefined.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncEval): Ditto.

LayoutTests:

Update test LayoutTests/http/tests/security/contentSecurityPolicy/eval-blocked.html to be
more comprehensive.

Add tests to ensure that we block eval() from within an external JavaScript script when the
policy of the page disallows eval() and that we block eval() inside a subframe that disallows
eval() when the page in the main frame allows eval().

  • http/tests/security/contentSecurityPolicy/eval-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/eval-blocked-in-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/eval-blocked-in-external-script.html: Added.
  • http/tests/security/contentSecurityPolicy/eval-blocked-in-subframe-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/eval-blocked-expected.txt.
  • http/tests/security/contentSecurityPolicy/eval-blocked-in-subframe.html: Added.
  • http/tests/security/contentSecurityPolicy/eval-blocked.html:
  • http/tests/security/contentSecurityPolicy/resources/eval-blocked-in-external-script.js: Added.
4:38 AM Changeset in webkit [195124] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r194955 - [GTK] Fix return value of some paint methods in RenderThemeGtk
https://bugs.webkit.org/show_bug.cgi?id=153015

Reviewed by Michael Catanzaro.

The bool value returned by paint methods in RenderTheme means
whether the appearance is supported or not, so we should return
true when not supported (so we didn't paint anything) and false
when supported (so we actually painted the theme part).

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
(WebCore::RenderThemeGtk::paintMediaButton):
(WebCore::RenderThemeGtk::paintMediaMuteButton):
(WebCore::RenderThemeGtk::paintMediaPlayButton):
(WebCore::RenderThemeGtk::paintMediaSliderTrack):
(WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer): Deleted.

  • rendering/RenderThemeGtk.h:
4:38 AM Changeset in webkit [195123] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r194847 - [GTK] Cleanup RenderThemeGtk
https://bugs.webkit.org/show_bug.cgi?id=152888

Reviewed by Michael Catanzaro.

Use a common path for GTK+ 3.19 and previous versions, simplifying
the code and removing a lot of ifdefs.

  • createStyleContext() now receives a theme part enum value, and an optional parent GtkStyleContext. It encapsulates all the differences between GTK+ 3.19 and previous version leaving the rendering code common and free of ifdefs.
  • Stock icons support have been removed, simplifying the code that now always renders symbolic icons, updating the colors depending on the current state.
  • Media button and colors have been removed, because they are unused now that we render the media controls with CSS.
  • ComboBox separators support has also been removed. In GTK+ 3.19 combo boxes no longer have separators and most of the GTK+ themes don't use the either, so it's better to simple not render them anymore in WebKit either.
  • Code to paint caps lock indicator has been removed too, since caps lock indicator is now shadow dom and automatically rendered by WebCore.
  • rendering/RenderThemeGtk.cpp:

(WebCore::createStyleContext):
(WebCore::loadThemedIcon):
(WebCore::gtkIconStateFlags):
(WebCore::RenderThemeGtk::adjustRepaintRect):
(WebCore::setToggleSize):
(WebCore::paintToggle):
(WebCore::RenderThemeGtk::setCheckboxSize):
(WebCore::RenderThemeGtk::paintCheckbox):
(WebCore::RenderThemeGtk::setRadioSize):
(WebCore::RenderThemeGtk::paintRadio):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::getComboBoxMetrics):
(WebCore::RenderThemeGtk::popupInternalPaddingLeft):
(WebCore::RenderThemeGtk::popupInternalPaddingRight):
(WebCore::RenderThemeGtk::popupInternalPaddingTop):
(WebCore::RenderThemeGtk::popupInternalPaddingBottom):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::adjustSearchFieldIconStyle):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::paintIcon):
(WebCore::paintEntryIcon):
(WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
(WebCore::RenderThemeGtk::shouldHaveCapsLockIndicator):
(WebCore::RenderThemeGtk::paintSliderTrack):
(WebCore::RenderThemeGtk::paintSliderThumb):
(WebCore::RenderThemeGtk::adjustSliderThumbSize):
(WebCore::RenderThemeGtk::paintProgressBar):
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
(WebCore::paintSpinArrowButton):
(WebCore::RenderThemeGtk::paintInnerSpinButton):
(WebCore::styleColor):
(WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeGtk::systemColor):
(WebCore::RenderThemeGtk::paintMediaButton):
(WebCore::RenderThemeGtk::paintMediaFullscreenButton):
(WebCore::RenderThemeGtk::paintMediaMuteButton):
(WebCore::RenderThemeGtk::paintMediaPlayButton):
(WebCore::RenderThemeGtk::paintMediaSeekBackButton):
(WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
(WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):

  • rendering/RenderThemeGtk.h:
4:37 AM Changeset in webkit [195122] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r194844 - [GTK] Cleanup ScrollbarThemeGtk
https://bugs.webkit.org/show_bug.cgi?id=152830

Reviewed by Michael Catanzaro.

Use a common path for GTK+ 3.19 and previous versions, simplifying
the code and removing a lot of ifdefs. Use always a new
GtkStyleContext, but when painting cache the newly created one so
all paint methods use that one. We were also caching some theme
properties assuming they don't change unless the theme changes,
but some of them can have different values depending on the state,
for example, when hovered or pressed. Those properties are now
only cached when we create a new GtkStyleContext.
The method updateScrollbarsFrameThickness() has also been removed,
since the Scrollbar constructor already initializes the frame rect
using the scrollbarThickness(). This method was not doing anything
anyway, since that was called on the constructor of the theme,
when there were no scrollbars registered. This also means we no
longer need to track registered/unregistered scrollbars.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::backButtonRect): Use the cached
GtkStyleContext and properties or create a new.
(WebCore::ScrollbarThemeGtk::forwardButtonRect): Ditto.
(WebCore::ScrollbarThemeGtk::trackRect): Ditto.
(WebCore::orientationStyleClass):
(WebCore::ScrollbarThemeGtk::getOrCreateStyleContext): Create a
new GtkStyleContext for the scrollbar if there isn't a cached
one. Also initialize the properties that depend on the state.
(WebCore::createChildStyleContext): Create a new GtkStyleContext
from a parent one.
(WebCore::ScrollbarThemeGtk::updateThemeProperties): Get the
properties that can only change when the theme changes.
(WebCore::ScrollbarThemeGtk::thumbRect): Use the cached
GtkStyleContext and properties or create a new.
(WebCore::adjustRectAccordingToMargin): Use always the
GtkStyleContext state instead of receiving it and setting it again.
(WebCore::ScrollbarThemeGtk::paintTrackBackground): Get or create
a GtkStyleContext for the scrollbar and create a child one for the trough.
(WebCore::ScrollbarThemeGtk::paintScrollbarBackground): Use the
cached GtkStyleContext or create a new one.
(WebCore::ScrollbarThemeGtk::paintThumb): Get or create a
GtkStyleContext for the scrollbar and create a child ones for
trough and slider.
(WebCore::ScrollbarThemeGtk::paintButton): Get or create a
GtkStyleContext for the scrollbar and create a child one for the button.
(WebCore::ScrollbarThemeGtk::paint): Create a GtkStyleContext and
cache it temporarily using TemporaryChange until the method finishes.
(WebCore::ScrollbarThemeGtk::scrollbarThickness): Use the cached
GtkStyleContext and properties or create a new.
(WebCore::ScrollbarThemeGtk::buttonSize): Ditto.

  • platform/gtk/ScrollbarThemeGtk.h:
4:37 AM Changeset in webkit [195121] by Carlos Garcia Campos
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r194817 - Absolute positioning -webkit-search-cancel-button crashes Safari.
https://bugs.webkit.org/show_bug.cgi?id=152847
<rdar://problem/24112087>

Reviewed by Simon Fraser.

Do not call offsetFromContainer while resolving the painting position for the search/cancel button renderer.
It skips the static positioned parent input renderer, when the search/cancel renderer is absolute positioned.
This patch also fixes a rendering glitch when the margin-right is > 0.

Source/WebCore:

Test: fast/forms/absolute-positioned-custom-search-cancel-crash.html

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::paintSearchFieldCancelButton):
(WebCore::RenderTheme::paintSearchFieldResultsDecorationPart):
(WebCore::RenderTheme::paintSearchFieldResultsButton):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::convertToPaintingPosition):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):
(WebCore::RenderThemeMac::convertToPaintingRect): Deleted.

LayoutTests:

  • fast/forms/absolute-positioned-custom-search-cancel-crash-expected.txt: Added.
  • fast/forms/absolute-positioned-custom-search-cancel-crash.html: Added.
4:37 AM Changeset in webkit [195120] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r194377 - [GTK] Everything broken in GTK+ 3.19
https://bugs.webkit.org/show_bug.cgi?id=150550

Reviewed by Carlos Garcia Campos.

Port RenderThemeGtk and ScrollbarThemeGtk to use CSS nodes. This makes it possible to render
stuff with modern GTK+.

No new tests. We already have tons of tests for this functionality, but we're running them
with GTK+ 3.16, so they cannot have detected this breakage. These fixes require unreleased
GTK+, and GTK+ rendering is currently in a state of flux; once things settle down, we can
consider upgrading the GTK+ used for our layout tests.

  • platform/gtk/GRefPtrGtk.cpp:

(WTF::refGPtr):
(WTF::derefGPtr):

  • platform/gtk/GRefPtrGtk.h:
  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::themeChanged):
(WebCore::ScrollbarThemeGtk::updateThemeProperties):
(WebCore::orientationStyleClass):
(WebCore::applyScrollbarStyleContextClasses):
(WebCore::ScrollbarThemeGtk::paintTrackBackground):
(WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
(WebCore::ScrollbarThemeGtk::paintThumb):
(WebCore::ScrollbarThemeGtk::paintButton):

  • rendering/RenderThemeGtk.cpp:

(WebCore::createStyleContext):
(WebCore::setToggleSize):
(WebCore::paintToggle):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::getComboBoxMetrics):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::applySliderStyleContextClasses):
(WebCore::RenderThemeGtk::paintSliderTrack):
(WebCore::RenderThemeGtk::paintSliderThumb):
(WebCore::RenderThemeGtk::paintProgressBar):
(WebCore::paintSpinArrowButton):
(WebCore::styleColor):

4:36 AM Changeset in webkit [195119] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r193896 - [GTK] RenderThemeGtk::platformActiveSelectionBackgroundColor, et. al. should not clobber state of cached GtkStyleContexts
https://bugs.webkit.org/show_bug.cgi?id=151533

Reviewed by Carlos Garcia Campos.

Remove the style context cache to simplify the code, drastically reduce the number of
expensive save/restore operations performed on style contexts, and avoid unwanted
side-effects in RenderThemeGtk::styleColor. This is also a speculative fix for improper
button rendering with certain custom themes, and a simplification that will make it easier
to fix bug #150550.

This change does have performance implications, which I intend to check on the perf bot
after landing to ensure that removing the cache does not have a significant negative impact
on performance; I have no clue whether this will be a net performance win or loss. However,
this is a bit tricky, because the bot is running GTK+ 3.16, whereas I expect save/restore
might be much more expensive in GTK+ 3.20, and I do not want to make performance decisions
except based on the latest GTK+ due to large changes in the implementation of
GtkStyleContext.

  • rendering/RenderThemeGtk.cpp:

(WebCore::createStyleContext):
(WebCore::getStockIconForWidgetType):
(WebCore::getStockSymbolicIconForWidgetType):
(WebCore::RenderThemeGtk::initMediaColors):
(WebCore::RenderThemeGtk::adjustRepaintRect):
(WebCore::setToggleSize):
(WebCore::paintToggle):
(WebCore::RenderThemeGtk::setCheckboxSize):
(WebCore::RenderThemeGtk::setRadioSize):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::getComboBoxMetrics):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::RenderThemeGtk::paintSliderTrack):
(WebCore::RenderThemeGtk::paintSliderThumb):
(WebCore::RenderThemeGtk::adjustSliderThumbSize):
(WebCore::RenderThemeGtk::paintProgressBar):
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeGtk::paintInnerSpinButton):
(WebCore::styleColor):
(WebCore::gtkStyleChangedCallback): Deleted.
(WebCore::styleContextMap): Deleted.
(WebCore::getStyleContext): Deleted.

3:34 AM Changeset in webkit [195118] by Carlos Garcia Campos
  • 6 edits
    4 adds in releases/WebKitGTK/webkit-2.10

Merge r193841 - AX: [GTK] Anonymous render block flow elements should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL
https://bugs.webkit.org/show_bug.cgi?id=152070

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Map the element to WebCore AccessibilityRole DivRole for GTK. This is being
done in the shared layer rather than in the platform layer because we want all
subsequent logic to treat anonymous render block flow elements as divs.

No new tests. We already have sufficient test coverage. The expectations
been updated accordingly.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

LayoutTests:

  • platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.
  • platform/gtk/accessibility/gtk/media-controls-panel-title-expected.txt: Added.
  • platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt: Added.
  • platform/gtk/accessibility/image-link-expected.txt: Updated
  • platform/gtk/accessibility/image-with-alt-and-map-expected.txt: Updated.
  • platform/gtk/accessibility/lists-expected.txt: Updated.
  • platform/gtk/accessibility/media-emits-object-replacement-expected.txt: Updated.
3:32 AM Changeset in webkit [195117] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.10

Merge r193840 - form.elements should reflect the element ordering after the HTML tree builder algorithm
https://bugs.webkit.org/show_bug.cgi?id=148870
rdar://problem/22589879

Patch by Keith Rollin <Keith Rollin> on 2015-12-09
Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline existing test.

  • web-platform-tests/html/semantics/forms/the-form-element/form-elements-nameditem-02-expected.txt:

Source/WebCore:

form.elements should return form-associated elements in tree order.
However, when presented with an HTML fragment like the following,
forms.elements is not built in tree order. Instead, the elements
appear in forms.element in the same order they appear in the HTML --
that is in the same order as they are parsed.

<form id=form>

<table>

<tr>

<td><input type="radio" name="radio1" id="r1" value=1></td>
<td><input type="radio" name="radio2" id="r2" value=2></td>
<input type="radio" name="radio0" id="r0" value=0>

</tr>

</table>

</form>

The reason why elements appear in forms.elements in parse order is
because they register themselves with the designated form when they
are created. At this time, they are not in the DOM tree, so the form
can only assume that the element will be appended to the DOM tree,
with the result that it records the elements in the HTML fragment
above as [r1, r2, r0].

However, it's not always the case that the newly-created element will
be appended to the current tree. In the HTML fragment above, the r0
input element is hoised out of the table element. It ends up being the
preceding sibling of the table element, with the result that the
actual tree-order of the input elements is [r0, r1, r2].

Because the problem is due to registering form-associated elements
with the form *before* the elements are added to the DOM tree, the
solution is to defer that registration until afterwards. With the new
element in the tree, the form can now use its current location in the
tree to correctly place the element in form.elements.

Existing tests now pass:

  • imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-nameditem-02-html
  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::FormAssociatedElement):
(WebCore::FormAssociatedElement::insertedInto):
(WebCore::FormAssociatedElement::removedFrom):
(WebCore::FormAssociatedElement::formRemovedFromTree):
(WebCore::FormAssociatedElement::formWillBeDestroyed):

  • html/FormAssociatedElement.h:
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::HTMLFormControlElement):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::insertedInto):
(WebCore::HTMLImageElement::removedFrom):

  • html/HTMLImageElement.h:
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::HTMLObjectElement):

3:21 AM Changeset in webkit [195116] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.10

Merge r193830 - [GTK] Crash in WebProcess when loading large content with custom URI schemes
https://bugs.webkit.org/show_bug.cgi?id=144262

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Properly handle scenarios where errors happen after reading the first
chunk of data coming from the GInputStream provided by the application.

  • UIProcess/API/gtk/WebKitWebContextPrivate.h:
  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextIsLoadingCustomProtocol): New, checks whether a load
is still in progress, after the startLoading method has been called.

  • UIProcess/API/gtk/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback): Early return if the stream has been
cancelled on finish_error, so that we make sure we don't keep on reading
the GInputStream after that point.
(webkit_uri_scheme_request_finish_error): Don't send a didFailWithError
message to the Network process if the load is not longer in progress.

  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:

(WebKit::CustomProtocolManagerImpl::didFailWithError): Handle the case where
an error is notified from the UI process after the first chunk has been read.
(WebKit::CustomProtocolManagerImpl::didReceiveResponse): Handle the case where
data might no longer be available if an error happened even before this point.

  • WebProcess/soup/WebKitSoupRequestInputStream.h:
  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamDidFailWithError): Notify the custom GInputStream
that we no longer want to keep reading data in chunks due to a specific error.
(webkitSoupRequestInputStreamReadAsync): Early finish the GTask with a specific
error whenever webkitSoupRequestInputStreamDidFailWithError() has been called.

Tools:

Added new unit test to check the additional scenarios we now
handle for custom URI schemes.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:

(generateHTMLContent): New helper function to generate big enough content.
(testWebContextURIScheme): New unit test.

2:42 AM Changeset in webkit [195115] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r193829 - Bad position of large operators inside an munderover element
https://bugs.webkit.org/show_bug.cgi?id=151916

Reviewed by Alejandro G. Castro.

Source/WebCore:

Test: mathml/opentype/large-operators-munderover.html

  • rendering/mathml/RenderMathMLOperator.h:

(WebCore::RenderMathMLOperator::isVertical): Expose the direction of the operator.

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::layout): Remove call to horizontal stretching for vertical operators.

LayoutTests:

  • mathml/opentype/large-operators-munderover-expected.txt: Added.
  • mathml/opentype/large-operators-munderover.html: Added.

Add a test to verify the position and size of a large operator used as an munderover base.

2:40 AM Changeset in webkit [195114] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r193819 - [TextureMapper] TextureMapperShaderProgram::setMatrix() should use TransformationMatrix::FloatMatrix4
https://bugs.webkit.org/show_bug.cgi?id=152042

Reviewed by Martin Robinson.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::setMatrix): Instead of manually writing out
the complete matrix in a C array, simply use TransformationMatrix::FloatMatrix4
and fill that via the TransformationMatrix::toColumnMajorFloatArray() method
called on the passed-in TransformationMatrix.

2:39 AM Changeset in webkit [195113] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r193818 - [Soup] Attach the SocketStreamHandleSoup write-ready source to the thread-default context
https://bugs.webkit.org/show_bug.cgi?id=152041

Reviewed by Carlos Garcia Campos.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::beginWaitingForSocketWritability): Attach the
write-ready source to the thread-default context, instead of implicitly
relying on the default context for dispatching.

2:38 AM Changeset in webkit [195112] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r193817 - [Soup] SocketStreamHandle should call g_source_destroy() on the write-ready source
https://bugs.webkit.org/show_bug.cgi?id=152040

Reviewed by Carlos Garcia Campos.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::stopWaitingForSocketWritability): Instead of
calling the g_source_get_id()-g_source_remove() pair, destroy the source via
the g_source_destroy() call. Also use nullptr to clear out the pointer
variable.

2:37 AM Changeset in webkit [195111] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r193798 - Changing <video> src during 'ended' event can leave screen sleep disabled
https://bugs.webkit.org/show_bug.cgi?id=152018

Reviewed by Eric Carlson.

Resetting a HTMLMediaElement's src during 'ended' introduces a race condition: whether
the 'mediaPlayerRateChanged()' notification will fire before createMediaPlayer() destroys
the old MediaPlayer firing said notification.

To break the race condition, always update the sleep disabling assertion after destroying
the media player (by creating a new one).

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::createMediaPlayer):

2:35 AM Changeset in webkit [195110] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r193773 - Do not insert positioned renderers to multiple gPositionedDescendantsMap.
https://bugs.webkit.org/show_bug.cgi?id=151878
rdar://problem/22229889

Reviewed by Simon Fraser.

We insert positioned renderers into a static map (RenderBlock::gPositionedDescendantsMap) to keep track of them.
This static map is at block level. A particular absolute positioned object is added to its closest ancestor that
returns true for RenderElement::canContainAbsolutelyPositionedObjects().
canContainAbsolutelyPositionedObjects() returns true if the ancestor is either positioned or has transform.
If this container's style changes so that it's no longer positioned and it has no transform anymore,
we need to clear its static map of positioned objects (they'll get re-inserted to another ancestor at next layout).

This patch addresses the case when the renderer does not have transforms anymore.

Source/WebCore:

Test: fast/block/positioning/crash-when-transform-is-removed.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::styleWillChange):

LayoutTests:

  • fast/block/positioning/crash-when-transform-is-removed-expected.txt: Added.
  • fast/block/positioning/crash-when-transform-is-removed.html: Added.
2:32 AM Changeset in webkit [195109] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r193743 - [cairo] Solid stroke of lines with thickness less than 1 pixel broken after r191658
https://bugs.webkit.org/show_bug.cgi?id=151947

Reviewed by Martin Robinson.

Source/WebCore:

Test: mathml/presentation/radical-bar-visibility.html

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawLine): Force a minimal thickness of 1px

LayoutTests:

Add a test to check that the radical overbar appears on the screen when it has thickness less than 1px.

  • mathml/presentation/radical-bar-visibility-expected-mismatch.html: Added.
  • mathml/presentation/radical-bar-visibility.html: Added.
2:30 AM Changeset in webkit [195108] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/WebKit2

Merge r193654 - [WK2] Regression(r187691): If a page is showing an auth pane in one tab, any new tabs with same page hang until credentials are entered in first tab
https://bugs.webkit.org/show_bug.cgi?id=151960
<rdar://problem/23618112>

Reviewed by Alex Christensen.

After r187691, if a page is showing an auth pane in one tab, any new
tabs with same page hang until credentials are entered in first tab.
This is because we coalescing all authentication challenges from the
same domain, no matter what tab they are for. This can be confusing
so we now only coalesce authentication challenges within each tab,
by leveraging the pageID (in addition to the domain).

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::shouldCoalesceChallenge):
(WebKit::AuthenticationManager::coalesceChallengesMatching):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Authentication/AuthenticationManager.h:
2:30 AM Changeset in webkit [195107] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.10/Source/WebKit2

Merge r192287 - Implement authentication challenge handling when using NETWORK_SESSION
https://bugs.webkit.org/show_bug.cgi?id=150968

Reviewed by Antti Koivisto.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):
Copy functionality from NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync (which is used when we don't use NETWORK_SESSION)
because there is no canAuthenticateAgainstProtectionSpace delegate callback when using NSURLSession, according to
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/AuthenticationChallenges.html
Instead, all authentication challenge callbacks go to URLSession:task:didReceiveChallenge:completionHandler:
because we do not implement URLSession:didReceiveChallenge:completionHandler:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[NetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[NetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[NetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Make a block copy of the completion handlers so we can copy the std::functions that wrap them into HashMaps and call them later,
in this case we call the completion handler after the UIProcess gives us credentials for an authentication challenge.

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::AuthenticationManager):
(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::shouldCoalesceChallenge):
(WebKit::AuthenticationManager::coalesceChallengesMatching):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
Fix an existing bug that caused multiple calls to addChallengeToChallengeMap for one challenge. This caused too many calls to
the AuthenticationClient methods, which did not cause a problem because they were not one-time-use block copies of completion handlers before.
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge):
(WebKit::AuthenticationManager::cancelChallenge):
(WebKit::AuthenticationManager::cancelSingleChallenge):
(WebKit::AuthenticationManager::performDefaultHandling):
(WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge):
Call completion handlers which we stored in a HashMap before doing IPC if we are using NETWORK_SESSION,
which has completion handlers instead of continueSomething client calls.

  • Shared/Authentication/AuthenticationManager.h:

(WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount):

  • Shared/Downloads/Download.cpp:

(WebKit::Download::didReceiveAuthenticationChallenge):
(WebKit::Download::didReceiveResponse):

  • Shared/Downloads/DownloadAuthenticationClient.cpp:

(WebKit::DownloadAuthenticationClient::receivedChallengeRejection):

  • Shared/Downloads/DownloadAuthenticationClient.h:

Add ifdefs for code related to downloading I will implement later.

2:06 AM Changeset in webkit [195106] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/JavaScriptCore

Merge r193648 - Crashes on PPC64 due to mprotect() on address not aligned to the page size
https://bugs.webkit.org/show_bug.cgi?id=130237

Reviewed by Mark Lam.

Make sure that commitSize is at least as big as the page size.

  • interpreter/JSStack.cpp:

(JSC::commitSize):
(JSC::JSStack::JSStack):
(JSC::JSStack::growSlowCase):

  • interpreter/JSStack.h:
1:35 AM Changeset in webkit [195105] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r193635 - Crash in MemoryCache::pruneDeadResourcesToSize()
https://bugs.webkit.org/show_bug.cgi?id=151833
<rdar://problem/22392235>

Reviewed by David Kilzer.

MemoryCache::pruneDeadResourcesToSize() is iterating over m_allResources
(which is a vector of LRUList). It first destroys decoded data for each
resource in the LRUList. Then, if it does not suffice to reach the
target size, and starts actually removing resources from the cache.

The issue is that this code alters m_allResources (and its LRULists) as
it is iterating over it. We tried to deal with this in various ways:

  1. Increment the iterator before removing the resource pointed by the iterator.
  2. Protect the next resource in the LRUList and abort early if it is no longer in the cache.

This adds code complexity and apparently does not correctly handle all
the edge cases as we still see crashes in this code. In particular, I
suspect that 2. may not be sufficient if it is possible for the next
resource to be moved to another LRUList (in which case, next->inCache()
would still return true but the iterator would however become invalid).

To make the code simpler and more robust, this patch copies the LRUList
(and refs the CachedResources) before iterating over it. This is a lot
safer and should hopefully fix the crashes we see in this function.

No new tests, no reproduction case.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::pruneDeadResourcesToSize):

1:33 AM Changeset in webkit [195104] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r193613 - Clipping along compositing borders in svg-edit
https://bugs.webkit.org/show_bug.cgi?id=151791

Reviewed by Zalan Bujtas.

Source/WebCore:

RenderSVGRoot::layout() failed to clear overflow before recomputing
visual overflow, which could cause it to get stuck with stale overflow.
This would cause underpainting if its size went from small to large.

Test: svg/overflow/visual-overflow-change.html

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

LayoutTests:

Ref test that triggers recomputation of overflow.

  • svg/overflow/visual-overflow-change-expected.html: Added.
  • svg/overflow/visual-overflow-change.html: Added.
1:31 AM Changeset in webkit [195103] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r193610 - REGRESSION (r187121): Can't get to the main content of the page at https://theintercept.com/drone-papers/
https://bugs.webkit.org/show_bug.cgi?id=151849
rdar://problem/23132828

Reviewed by Zalan Bujtas.

Source/WebCore:

This page uses a fill-forwards animation where the last keyframe has height: auto.
After r187121, we tried to blend the height Length value from the last keyframe to the
first keyframe with progress=0 (which should pick up the 'auto' from the last keyframe).

However, Length::blend() just considered both 0 and 'auto' to be zero, and returned
the 0 length.

So fix Length::blend() to return the "from" length if progress is zero.

Test: animations/fill-forwards-auto-height.html

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): Length::blend takes a double, so don't narrow to float.

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty): Declare two variables
at first use.

  • platform/Length.h:

(WebCore::Length::blend):

LayoutTests:

New ref test.

The behavior of imported/blink/transitions/transition-not-interpolable.html changed
with this patch, but that test is trying to determine if transitions run to/from
'auto' values, and doing it wrong. The current patch doesn't change the user-visible
behavior of transitions with 'auto' endpoints (covered by http://webkit.org/b/38243).

  • animations/fill-forwards-auto-height-expected.html: Added.
  • animations/fill-forwards-auto-height.html: Added.
  • imported/blink/transitions/transition-not-interpolable-expected.txt:
1:15 AM Changeset in webkit [195102] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r193609 - Give SVGTransformList some inline vector capacity
https://bugs.webkit.org/show_bug.cgi?id=151644

Reviewed by Andreas Kling.

Giving SVGTransformList inline capacity of one drops time under SVGTransformList::parse() by
about 1% on http://animateplus.com/demos/stress-test/

  • svg/SVGTransformList.h:
1:14 AM Changeset in webkit [195101] by youenn.fablet@crf.canon.fr
  • 23 edits in trunk

[Streams API] Expose ReadableStream and relatives to Worker
https://bugs.webkit.org/show_bug.cgi?id=152066

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebasing tests as Worker tests are now running.

  • web-platform-tests/streams-api/byte-length-queuing-strategy-expected.txt:
  • web-platform-tests/streams-api/count-queuing-strategy-expected.txt:
  • web-platform-tests/streams-api/readable-streams/bad-underlying-sources-expected.txt:
  • web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt:
  • web-platform-tests/streams-api/readable-streams/brand-checks-expected.txt:
  • web-platform-tests/streams-api/readable-streams/cancel-expected.txt:
  • web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration-expected.txt:
  • web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt:
  • web-platform-tests/streams-api/readable-streams/general-expected.txt:
  • web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt:
  • web-platform-tests/streams-api/readable-streams/readable-stream-reader-expected.txt:
  • web-platform-tests/streams-api/readable-streams/tee-expected.txt:
  • web-platform-tests/streams-api/readable-streams/templated-expected.txt:

Source/WebCore:

Covered by rebased tests.

  • Modules/streams/ByteLengthQueuingStrategy.idl:
  • Modules/streams/CountQueuingStrategy.idl:
  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStreamController.idl:
  • Modules/streams/ReadableStreamReader.idl:

LayoutTests:

Rebasing tests as ReadableStream is now available in workers.

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
1:11 AM Changeset in webkit [195100] by youenn.fablet@crf.canon.fr
  • 5 edits
    8 adds in trunk

CORS: Fix the handling of redirected request containing Origin null.
https://bugs.webkit.org/show_bug.cgi?id=128816

Reviewed by Brent Fulgham.

Source/WebCore:

Merging Blink patch from George Ancil (https://chromiumcodereview.appspot.com/20735002).

This patch removes the check for securityOrigin->isUnique() in passesAccessControlCheck().
This check prevented a redirected request with "Origin: null" from being
successful even when the response contains "Access-Control-Allow-Origin: null"

Tests: http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow-origin-null.html

http/tests/xmlhttprequest/redirect-cors-origin-null.html

  • loader/CrossOriginAccessControl.cpp:

(WebCore::passesAccessControlCheck):

LayoutTests:

Merging Blink patch from George Ancil (https://chromiumcodereview.appspot.com/20735002)

Added two tests to check CORS with Origin null in HTTP redirect and iframe cases.
Updated two test sandboxed iframes test expectations (requests are still denied but error messages are different).

  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow-origin-null-expected.txt: Added.
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow-origin-null.html: Added.
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
  • http/tests/xmlhttprequest/redirect-cors-origin-null-expected.txt: Added.
  • http/tests/xmlhttprequest/redirect-cors-origin-null.html: Added.
  • http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-allow-origin-null-iframe.html: Added.
  • http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-allow-origin-null.cgi: Added.
  • http/tests/xmlhttprequest/resources/redirect-cors-origin-null-pass.php: Added.
  • http/tests/xmlhttprequest/resources/redirect-cors-origin-null.php: Added.
1:04 AM Changeset in webkit [195099] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r193390 - Remove the use of GraphicsContextStateSaver from RenderLayer::paintLayerByApplyingTransform
https://bugs.webkit.org/show_bug.cgi?id=151829

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-12-03
Reviewed by Simon Fraser.

Set the CTM of the GraphicsContext to its original value before changing
it. This is a lot cheaper than using GraphicsContextStateSaver to save the
whole state of the GraphicsContext and restore it back;

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerByApplyingTransform):

12:58 AM Changeset in webkit [195098] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.10/Source/bmalloc

Merge r193373 - bmalloc: extra large allocations could be more efficient
https://bugs.webkit.org/show_bug.cgi?id=151817

Reviewed by Geoffrey Garen.

Reduced the super chunk size from 4MB to 2MB.

Added path to reallocate() of an extra large object to see if we can extend the allocation.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocate):

  • bmalloc/SegregatedFreeList.h:
  • bmalloc/Sizes.h:
  • bmalloc/VMAllocate.h:

(bmalloc::tryVMAllocate):
(bmalloc::tryVMExtend):
(bmalloc::vmAllocate):

12:36 AM Changeset in webkit [195097] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r192989 - Reduce size of ScriptElement
https://bugs.webkit.org/show_bug.cgi?id=151786

Patch by Alex Christensen <achristensen@webkit.org> on 2015-12-02
Reviewed by Andreas Kling.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::requestScript):

  • dom/ScriptElement.h:

Use callOnMainThread instead of a Timer to save memory on a timer that is rarely used.
Use bit fields for the boolean values to save another 8 bytes per ScriptElement.
This reduces sizeof(ScriptElement) from 168 to 48 bytes.

12:33 AM Changeset in webkit [195096] by Carlos Garcia Campos
  • 8 edits
    3 adds in releases/WebKitGTK/webkit-2.10

Merge r192983 - Asynchronously call onerror when a content blocker blocks ascript element's load
https://bugs.webkit.org/show_bug.cgi?id=151649

Patch by Alex Christensen <achristensen@webkit.org> on 2015-12-02
Reviewed by Brady Eidson.

Source/WebCore:

Test: http/tests/contentextensions/script-onerror.html

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::requestScript):

  • dom/ScriptElement.h:

LayoutTests:

  • http/tests/contentextensions/script-onerror-expected.txt: Added.
  • http/tests/contentextensions/script-onerror.html: Added.
  • http/tests/contentextensions/script-onerror.html.json: Added.
  • http/tests/misc/unloadable-script-expected.txt:
  • http/tests/misc/unloadable-script.html:
  • http/tests/security/local-JavaScript-from-remote-expected.txt:
  • http/tests/security/local-JavaScript-from-remote.html:

Added testRunner.waitUntilDone and testRunner.notifyDone to reflect the fact that onerror is no longer called synchronously.

12:26 AM Changeset in webkit [195095] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r192969 - Fix preloader issue with srcdoc documents.
https://bugs.webkit.org/show_bug.cgi?id=151744

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make sure that PreloadRequest is resolving URLs based on the document's
baseURL() rather than using url() as the base URL, which is not how URLs
are resolved by the parser, and fails when document->url() diverges from
the document's base URL (e.g. in the case of srcdoc based documents).

Test: fast/preloader/iframe-srcdoc.html

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::completeURL):

LayoutTests:

Added a test that makes sure that srcdoc based subresources are properly preloaded.

  • fast/preloader/iframe-srcdoc-expected.txt: Added.
  • fast/preloader/iframe-srcdoc.html: Added.
12:22 AM Changeset in webkit [195094] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[EFL] WorkQueue methods should be defined inside WTF namespace.
https://bugs.webkit.org/show_bug.cgi?id=153097

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-15
Reviewed by Gyuyoung Kim.

  • wtf/efl/WorkQueueEfl.cpp:
12:11 AM Changeset in webkit [195093] by Julien Brianceau
  • 3 edits in trunk/Source/JavaScriptCore

[mips] Add countLeadingZeros32 implementation in macro assembler
https://bugs.webkit.org/show_bug.cgi?id=152886

Reviewed by Michael Saboff.

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::lui):
(JSC::MIPSAssembler::clz):
(JSC::MIPSAssembler::addiu):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::and32):
(JSC::MacroAssemblerMIPS::countLeadingZeros32):
(JSC::MacroAssemblerMIPS::lshift32):

Note: See TracTimeline for information about the timeline view.