WebKit-https.git
5 years ago[Content Extensions] Use less memory to store the json input.
achristensen@apple.com [Tue, 5 May 2015 22:20:34 +0000 (22:20 +0000)]
[Content Extensions] Use less memory to store the json input.
https://bugs.webkit.org/show_bug.cgi?id=144604

Reviewed by Benjamin Poulain.

Source/WebCore:

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/ContentExtensionCompiler.h:
(WebCore::ContentExtensions::loadEncodedRules):
Don't copy strings as much or keep them alive after done using them.

Source/WebKit2:

* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::compiledToFile):
(API::UserContentExtensionStore::compileContentExtension):
* UIProcess/API/APIUserContentExtensionStore.h:
Don't copy strings as much or keep them alive after done using them.

Tools:

* MiniBrowser/mac/ExtensionManagerWindowController.m:
(-[ExtensionManagerWindowController add:]):
* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter):
* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformConfigureViewForTest):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183832 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoPrevent recursive calls to show target picker menu.
eric.carlson@apple.com [Tue, 5 May 2015 22:01:42 +0000 (22:01 +0000)]
Prevent recursive calls to show target picker menu.
https://bugs.webkit.org/show_bug.cgi?id=144637
<rdar://problem/20824726>

Reviewed by Jer Noble.

* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h: Add m_showingMenu.
* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Do nothing if the menu
is already showing.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183831 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Web Inspector: Further optimize SVG images
agomez@igalia.com [Tue, 5 May 2015 21:31:14 +0000 (21:31 +0000)]
[GTK] Web Inspector: Further optimize SVG images
https://bugs.webkit.org/show_bug.cgi?id=144441

SVG images optimized with a combination of sed replacements, the
usage of the scour tool (http://www.codedread.com/scour/) and a
forked version of the svgo tool (https://github.com/tanty/svgo).

Also, added the class attribute to the shape elements following
the convention used in Apple's images.

Reviewed by Joseph Pecoraro.

* UserInterface/Images/gtk/BackArrow.svg: Optimized.
* UserInterface/Images/gtk/BreakpointActionAdd.svg: Optimized.
* UserInterface/Images/gtk/BreakpointActionRemove.svg: Optimized.
* UserInterface/Images/gtk/BreakpointButton.svg: Optimized.
* UserInterface/Images/gtk/BreakpointInactiveButton.svg: Optimized.
* UserInterface/Images/gtk/Breakpoints.svg: Optimized.
* UserInterface/Images/gtk/Checkers.svg: Optimized.
* UserInterface/Images/gtk/Circle.svg: Optimized.
* UserInterface/Images/gtk/Close.svg: Optimized.
* UserInterface/Images/gtk/CloseLarge.svg: Optimized.
* UserInterface/Images/gtk/CloseWhite.svg: Optimized.
* UserInterface/Images/gtk/ContentFlow.svg: Optimized.
* UserInterface/Images/gtk/Crosshair.svg: Optimized.
* UserInterface/Images/gtk/DOMCharacterData.svg: Optimized.
* UserInterface/Images/gtk/DOMComment.svg: Optimized.
* UserInterface/Images/gtk/DOMDocument.svg: Optimized.
* UserInterface/Images/gtk/DOMDocumentType.svg: Optimized.
* UserInterface/Images/gtk/DOMElement.svg: Optimized.
* UserInterface/Images/gtk/DOMNode.svg: Optimized.
* UserInterface/Images/gtk/DOMTextNode.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg: Optimized.
* UserInterface/Images/gtk/DockBottom.svg: Optimized.
* UserInterface/Images/gtk/DockRight.svg: Optimized.
* UserInterface/Images/gtk/DownloadArrow.svg: Optimized.
* UserInterface/Images/gtk/Error.svg: Optimized.
* UserInterface/Images/gtk/Errors.svg: Optimized.
* UserInterface/Images/gtk/ErrorsEnabled.svg: Optimized.
* UserInterface/Images/gtk/EventListener.svg: Optimized.
* UserInterface/Images/gtk/Exception.svg: Optimized.
* UserInterface/Images/gtk/Eye.svg: Optimized.
* UserInterface/Images/gtk/FilterFieldGlyph.svg: Optimized.
* UserInterface/Images/gtk/ForwardArrow.svg: Optimized.
* UserInterface/Images/gtk/Function.svg: Optimized.
* UserInterface/Images/gtk/GoToArrow.svg: Optimized.
* UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg: Optimized.
* UserInterface/Images/gtk/Issues.svg: Optimized.
* UserInterface/Images/gtk/IssuesEnabled.svg: Optimized.
* UserInterface/Images/gtk/LayerBorders.svg: Optimized.
* UserInterface/Images/gtk/Locked.svg: Optimized.
* UserInterface/Images/gtk/Logs.svg: Optimized.
* UserInterface/Images/gtk/Native.svg: Optimized.
* UserInterface/Images/gtk/NavigationItemCurleyBraces.svg: Optimized.
* UserInterface/Images/gtk/NavigationItemTrash.svg: Optimized.
* UserInterface/Images/gtk/NavigationItemTypes.svg: Optimized.
* UserInterface/Images/gtk/PaintFlashing.svg: Optimized.
* UserInterface/Images/gtk/Pause.svg: Optimized.
* UserInterface/Images/gtk/PausedBreakpoint.svg: Optimized.
* UserInterface/Images/gtk/Pencil.svg: Optimized.
* UserInterface/Images/gtk/Plus.svg: Optimized. Text element
converted into a shape.
* UserInterface/Images/gtk/PseudoElement.svg: Optimized.
* UserInterface/Images/gtk/Record.svg: Optimized.
* UserInterface/Images/gtk/Reflection.svg: Optimized.
* UserInterface/Images/gtk/ReloadFull.svg: Optimized.
* UserInterface/Images/gtk/ReplayPauseButton.svg: Optimized.
* UserInterface/Images/gtk/ReplayPlayButton.svg: Optimized.
* UserInterface/Images/gtk/ReplayRecordingButton.svg: Optimized.
* UserInterface/Images/gtk/Request.svg: Optimized.
* UserInterface/Images/gtk/Resources.svg: Optimized.
* UserInterface/Images/gtk/Response.svg: Optimized.
* UserInterface/Images/gtk/ResultLine.svg: Optimized.
* UserInterface/Images/gtk/Resume.svg: Optimized.
* UserInterface/Images/gtk/ShadowDOM.svg: Optimized.
* UserInterface/Images/gtk/SortIndicatorDownArrow.svg: Optimized.
* UserInterface/Images/gtk/SortIndicatorUpArrow.svg: Optimized.
* UserInterface/Images/gtk/SplitToggleUp.svg: Optimized.
* UserInterface/Images/gtk/StepInto.svg: Optimized.
* UserInterface/Images/gtk/StepOut.svg: Optimized.
* UserInterface/Images/gtk/StepOver.svg: Optimized.
* UserInterface/Images/gtk/Stop.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleAuthor.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleInherited.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleInheritedElement.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleInspector.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleUser.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleUserAgent.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordAnimation.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordEvent.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordLayout.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordPaint.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordStyle.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordTimer.svg: Optimized.
* UserInterface/Images/gtk/TypeBoolean.svg: Optimized.
* UserInterface/Images/gtk/TypeNull.svg: Optimized.
* UserInterface/Images/gtk/TypeNumber.svg: Optimized.
* UserInterface/Images/gtk/TypeObject.svg: Optimized.
* UserInterface/Images/gtk/TypeRegex.svg: Optimized. Removed
mistaken extra shape.
* UserInterface/Images/gtk/TypeString.svg: Optimized.
* UserInterface/Images/gtk/TypeSymbol.svg: Optimized. Removed
mistaken extra shape.
* UserInterface/Images/gtk/TypeUndefined.svg: Optimized.
* UserInterface/Images/gtk/Undock.svg: Optimized.
* UserInterface/Images/gtk/UpDownArrows.svg: Optimized.
* UserInterface/Images/gtk/UserInputPrompt.svg: Optimized.
* UserInterface/Images/gtk/UserInputPromptPrevious.svg: Optimized.
* UserInterface/Images/gtk/UserInputResult.svg: Optimized.
* UserInterface/Images/gtk/Warning.svg: Optimized.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183830 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUse system blue for Airplay Glyph
dino@apple.com [Tue, 5 May 2015 21:29:20 +0000 (21:29 +0000)]
Use system blue for Airplay Glyph
https://bugs.webkit.org/show_bug.cgi?id=144614

There was a typo in the last commit.

* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-optimized-fullscreen-button): Transition duration should be 250ms.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183829 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[iOS] Use system blue for Airplay Glyph
dino@apple.com [Tue, 5 May 2015 21:19:25 +0000 (21:19 +0000)]
[iOS] Use system blue for Airplay Glyph
https://bugs.webkit.org/show_bug.cgi?id=144614

Reviewed by Eric Carlson.

Revert to using masks for the glyphs in the media controls,
which allows us to:
- use the system blue color when Airplay is active <rdar://problem/20245297>
- fade out from the active state <rdar://problem/20245487>
- allow the play button to give touch feedback <rdar://problem/17849930>

While those are three separate bugs, they all get addressed by
this single change.

* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-optimized-fullscreen-button):
(audio::-webkit-media-controls-optimized-fullscreen-button:active):
(video::-webkit-media-controls-play-button):
(video::-webkit-media-controls-play-button.paused):
(video::-webkit-media-controls-fullscreen-button):
(video::-webkit-media-controls-wireless-playback-picker-button):
(video::-webkit-media-controls-wireless-playback-picker-button.playing):
(video::-webkit-media-controls-optimized-fullscreen-button):
(video::-webkit-media-controls-play-button:active): Deleted.
(video::-webkit-media-controls-play-button.paused:active): Deleted.
(video::-webkit-media-controls-fullscreen-button:active): Deleted.
(video::-webkit-media-controls-wireless-playback-picker-button:active): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183828 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed. Make myself a WebKit reviewer.
utatane.tea@gmail.com [Tue, 5 May 2015 21:01:22 +0000 (21:01 +0000)]
Unreviewed. Make myself a WebKit reviewer.

* Scripts/webkitpy/common/config/contributors.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183827 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoOnly autoplay videos should not automatically play to playback target
eric.carlson@apple.com [Tue, 5 May 2015 20:50:02 +0000 (20:50 +0000)]
Only autoplay videos should not automatically play to playback target
https://bugs.webkit.org/show_bug.cgi?id=144633

Reviewed by Jer Noble.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Set RequireUserGestureToAutoplayToExternalDevice.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Remove
RequireUserGestureToAutoplayToExternalDevice.
(WebCore::HTMLMediaElement::mediaState): Set ExternalDeviceAutoPlayCandidate if playback
was started from a user gesture, even if the video loops and/or doesn't have audio.

* html/HTMLMediaSession.h: Define RequireUserGestureToAutoplayToExternalDevice.
(WebCore::HTMLMediaSession::hasBehaviorRestriction): New.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183826 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFTL SwitchString slow case creates duplicate switch cases
fpizlo@apple.com [Tue, 5 May 2015 20:42:44 +0000 (20:42 +0000)]
FTL SwitchString slow case creates duplicate switch cases
https://bugs.webkit.org/show_bug.cgi?id=144634

Reviewed by Geoffrey Garen.

The problem of duplicate switches is sufficiently annoying that I fixed the issue and also
added mostly-debug-only asserts to catch such issues earlier.

* bytecode/CallVariant.cpp:
(JSC::variantListWithVariant): Assertion to prevent similar bugs.
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::switchStringRecurse): Assertion to prevent similar bugs.
(JSC::FTL::LowerDFGToLLVM::switchStringSlow): This is the bug.
* jit/BinarySwitch.cpp:
(JSC::BinarySwitch::BinarySwitch): Assertion to prevent similar bugs.
* jit/Repatch.cpp:
(JSC::linkPolymorphicCall): Assertion to prevent similar bugs.
* tests/stress/ftl-switch-string-slow-duplicate-cases.js: Added. This tests the FTL SwitchString bug. It was previously crashing every time.
(foo):
(cat):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed logging fix.
bfulgham@apple.com [Tue, 5 May 2015 20:14:07 +0000 (20:14 +0000)]
Unreviewed logging fix.

* page/WheelEventTestTrigger.cpp:
(WebCore::WheelEventTestTrigger::triggerTestTimerFired): Fix typo in logging channel.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd overflow scroll-snap tests
bfulgham@apple.com [Tue, 5 May 2015 20:12:10 +0000 (20:12 +0000)]
Add overflow scroll-snap tests
https://bugs.webkit.org/show_bug.cgi?id=144591

Reviewed by Simon Fraser.

* platform/mac-wk2/TextExpectations: Mark overflow test as flaky while I investigate.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/resources: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/resources/horizontal-mainframe.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/resources/vertical-mainframe.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183823 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] r183783 breaks build
jdiggs@igalia.com [Tue, 5 May 2015 19:35:21 +0000 (19:35 +0000)]
[GTK] r183783 breaks build
https://bugs.webkit.org/show_bug.cgi?id=144632

Reviewed by Martin Robinson.

Return false rather than nullptr for unimplemented AccessibilityUIElement::setSelectedVisibleTextRange

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183822 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoREGRESSION: Web Inspector: no way to navigate to a resource/source location from...
timothy@apple.com [Tue, 5 May 2015 18:11:50 +0000 (18:11 +0000)]
REGRESSION: Web Inspector: no way to navigate to a resource/source location from overview timeline view
https://bugs.webkit.org/show_bug.cgi?id=144539

Reviewed by Brian Burg.

* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.set status): Call didChange() so the onchange event fires. This allows
TimelineSidebarPanel to update the status element when it goes from a spinner to empty for ResourceTreeElements.
(WebInspector.GeneralTreeElement.prototype.onattach): Don't call _updateStatusElement, just append it if needed.
Calling _updateStatusElement caused DOMNodeFragments as status elements to be appended a second time and fail.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.treeElementAddedOrChanged):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.NetworkTimelineView.prototype.treeElementSelected):
(WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
(WebInspector.NetworkTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked): Deleted.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.OverviewTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
(WebInspector.OverviewTimelineView.prototype._treeElementDeselected): Deleted.
(WebInspector.OverviewTimelineView.prototype._treeElementSelected): Deleted.
(WebInspector.OverviewTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.OverviewTimelineView.prototype._closeStatusButtonClicked): Deleted.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.RenderingFrameTimelineView.prototype.showContentViewForTreeElement):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent): Don't show a go-to arrow in the Domain column.
(WebInspector.ResourceTimelineDataGridNode.prototype._goToResource): Deleted.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.ScriptTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.ScriptTimelineView.prototype.treeElementSelected):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement.prototype.get sourceCodeLocation):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline .item:hover:not(.selected) .status .close.status-button):
(.sidebar > .panel.navigation.timeline:not(.timeline-recording-content-view-showing) .status .go-to-arrow.status-button):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .status .close.status-button):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementAddedOrChanged): Added.
(WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
(WebInspector.TimelineSidebarPanel.prototype._treeElementGoToArrowWasClicked): Added.
(WebInspector.TimelineSidebarPanel.prototype._treeElementCloseButtonClicked): Added.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.TimelineView.prototype.showContentViewForTreeElement):
(WebInspector.TimelineView.prototype.treeElementDeselected):
(WebInspector.TimelineView.prototype.treeElementSelected):
(WebInspector.TimelineView.prototype.needsLayout):
(WebInspector.TimelineView.prototype._closeStatusButtonClicked): Deleted.
(WebInspector.TimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
* UserInterface/Views/TreeElementStatusButton.css:
(.item > .status > .status-button): Fix an alignment issue with close and go-to arrows being side-by-side.
Does not happen in the final patch because they are mutually exclusive, but still good to fix.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183821 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMedia control volume slider is opaque.
roger_fong@apple.com [Tue, 5 May 2015 18:02:09 +0000 (18:02 +0000)]
Media control volume slider is opaque.
https://bugs.webkit.org/show_bug.cgi?id=144470.
<rdar://problem/20770350>

Rubberstamped by Simon Fraser.

* Modules/mediacontrols/mediaControlsApple.css:
(audio::-webkit-media-controls-panel):
Don't create a stacking context just for the controls.
Doing so causes the mix-blend-mode on the volume box to fail.

* platform/mac/TestExpectations:
Some tests generate assertion failures after this change, though the tests pass in release.
Marking them as crashing in debug for now.
Tracking failures here: https://bugs.webkit.org/show_bug.cgi?id=144630.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183820 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix debug builds after r183812
basile_clement@apple.com [Tue, 5 May 2015 17:59:33 +0000 (17:59 +0000)]
Fix debug builds after r183812
https://bugs.webkit.org/show_bug.cgi?id=144300

Rubber stamped by Andreas Kling and Filip Pizlo.

hasObjectMaterializationData() didn't treat MaterializeCreateActivation
as having materialization data, which was causing an assertion failure when
sinking CreateActivations on debug builds.

* dfg/DFGNode.h:
(JSC::DFG::Node::hasObjectMaterializationData):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183819 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Content Extensions] Combine NFAs properly and free memory as we compile.
achristensen@apple.com [Tue, 5 May 2015 17:27:41 +0000 (17:27 +0000)]
[Content Extensions] Combine NFAs properly and free memory as we compile.
https://bugs.webkit.org/show_bug.cgi?id=144485

Reviewed by Benjamin Poulain.

Source/WebCore:

This patch correctly combines all regular expressions with a common prefix up to
the last quantified term into the same NFA.  It also deletes the prefix tree as it
creates NFAs, thus reducing the maximum memory used when compiling.

* contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::CombinedURLFilters::isEmpty):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
(WebCore::ContentExtensions::CombinedURLFilters::clear): Deleted.
* contentextensions/CombinedURLFilters.h:
* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/ContentExtensionsDebugging.h:

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
Added tests for correctly splitting up NFAs with unquantified terms after quantified terms.
Added tests for deep NFAs.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183818 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Content Extensions] Use less memory when writing byte code to file
achristensen@apple.com [Tue, 5 May 2015 17:12:36 +0000 (17:12 +0000)]
[Content Extensions] Use less memory when writing byte code to file
https://bugs.webkit.org/show_bug.cgi?id=144602

Reviewed by Darin Adler.

Source/WebCore:

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/ContentExtensionCompiler.h:
Compile one DFA at a time so we don't need to keep all the bytecode in memory at the same time.
* contentextensions/DFABytecodeInterpreter.cpp:
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
Jumps are now relative to the current DFA because we don't know about other DFAs that
have been compiling when linking the DFA bytecode.  This will also make the DFA bytecode
easier to minimize because more of the values are small in the DFAs after the first DFA.
* platform/FileSystem.h:

Source/WebKit2:

* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::decodeContentExtensionMetaData):
(API::writeDataToFile):
(API::compiledToFile):
(API::createExtension):
Compile and write each DFA to file, then come back and write the header when finalizing.
Also don't copy the DFA bytecode. This way, we don't need to keep more than one DFA's
bytecode in memory at a time.

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183817 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Fix some issues with Search tabs
timothy@apple.com [Tue, 5 May 2015 16:59:31 +0000 (16:59 +0000)]
Web Inspector: Fix some issues with Search tabs
https://bugs.webkit.org/show_bug.cgi?id=144531

Reviewed by Darin Adler.

* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
Support DOMSearchMatchObject and SourceCodeSearchMatchObject representedObjects. These are usually
handled at a higher level, but cookie restoring requires ContentView to handle them.

* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype.selectAndRevealDOMNode):
(WebInspector.DOMTreeContentView.prototype.selectLastSelectedNode):
(WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
Don't allow restoring the previous selected node when another not has already been selected.

* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
Allow Script objects to be shown in the Search tab.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183816 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Source/WebInspectorUI/UserInterface/Images/Logs.svg has unknown attrib...
timothy@apple.com [Tue, 5 May 2015 16:37:58 +0000 (16:37 +0000)]
Web Inspector: Source/WebInspectorUI/UserInterface/Images/Logs.svg has unknown attribute "fille"
https://bugs.webkit.org/show_bug.cgi?id=144627

Reviewed by Darin Adler.

* UserInterface/Images/Logs.svg: Change "fille" to "fill".

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183815 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed gardening, unskip passing compositing tests since USE_NATIVE_XDISPLAY=1
ossy@webkit.org [Tue, 5 May 2015 16:36:27 +0000 (16:36 +0000)]
Unreviewed gardening, unskip passing compositing tests since USE_NATIVE_XDISPLAY=1
is set on the EFL bots and mark the remaining failing compositing tests properly.

* platform/efl/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183814 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMake all FrameLoadState data members private.
commit-queue@webkit.org [Tue, 5 May 2015 16:34:35 +0000 (16:34 +0000)]
Make all FrameLoadState data members private.
https://bugs.webkit.org/show_bug.cgi?id=144562

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-05
Reviewed by Darin Adler.

Previously, all of the data members in FrameLoadState were public and accessed directly
from outside the class. But these should all be private as noted in FrameLoadState.h
for better encapsulation.

No new tests, no behavior change.

* UIProcess/API/C/WKFrame.cpp:
(WKFrameGetFrameLoadState):
* UIProcess/FrameLoadState.h:
(WebKit::FrameLoadState::state):
(WebKit::FrameLoadState::url):
(WebKit::FrameLoadState::provisionalURL):
(WebKit::FrameLoadState::unreachableURL):
* UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::url):
(WebKit::WebFrameProxy::provisionalURL):
(WebKit::WebFrameProxy::unreachableURL):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183813 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAllow CreateActivation sinking
basile_clement@apple.com [Tue, 5 May 2015 16:34:21 +0000 (16:34 +0000)]
Allow CreateActivation sinking
https://bugs.webkit.org/show_bug.cgi?id=144300

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This pursues the work started in
https://bugs.webkit.org/show_bug.cgi?id=144016 to expand the set of
allocations we are able to sink by allowing sinking of CreateActivation
node.

This is achieved by following closely the way NewObject is currently
sunk: we add a new PhantomCreateActivation node to record the initial
position of the CreateActivation node, new ClosureVarPLoc promoted heap
locations to keep track of the variables put in the activation, and a
new MaterializeCreateActivation node to allocate and populate the sunk
activation.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.cpp:
(JSC::DFG::Node::convertToPutClosureVarHint):
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToPhantomCreateActivation):
(JSC::DFG::Node::isActivationAllocation):
(JSC::DFG::Node::isPhantomActivationAllocation):
(JSC::DFG::Node::isPhantomAllocation):
* dfg/DFGNodeType.h:
* dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
(JSC::DFG::ObjectAllocationSinkingPhase::createMaterialize):
(JSC::DFG::ObjectAllocationSinkingPhase::populateMaterialize):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGPromotedHeapLocation.cpp:
(WTF::printInternal):
* dfg/DFGPromotedHeapLocation.h:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validateCPS):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileMaterializeCreateActivation):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
* tests/stress/activation-sink-osrexit.js: Added.
(bar):
(foo.set result):
* tests/stress/activation-sink.js: Added.
(bar):

LayoutTests:

Add a performance test for activation allocation sinking.

* js/regress/script-tests/sink-huge-activation.js: Added.
(bar):
(foo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183812 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCrashes in SandboxExtension::consumePermanently when uploading
ap@apple.com [Tue, 5 May 2015 16:27:39 +0000 (16:27 +0000)]
Crashes in SandboxExtension::consumePermanently when uploading
https://bugs.webkit.org/show_bug.cgi?id=144611
rdar://problem/10156710

Reviewed by Darin Adler.

This only fixes the crashes, uploading still won't work.
Added null checks and some logging that may help us get to the root cause eventually.

* Shared/SandboxExtension.h:
(WebKit::SandboxExtension::createHandle):
(WebKit::SandboxExtension::createHandleForReadWriteDirectory):
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::createHandle):
(WebKit::SandboxExtension::createHandleForReadWriteDirectory):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChooseFilesForOpenPanel):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::extendSandboxForFileFromOpenPanel):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183811 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed WinCairo buildfix after r183807.
ossy@webkit.org [Tue, 5 May 2015 16:22:23 +0000 (16:22 +0000)]
Unreviewed WinCairo buildfix after r183807.

* WebCoreSupport/AcceleratedCompositingContext.cpp:
(AcceleratedCompositingContext::initialize):
(AcceleratedCompositingContext::acceleratedCompositingAvailable):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183810 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, speculative WinCairo buildfix after r183807.
ossy@webkit.org [Tue, 5 May 2015 16:13:05 +0000 (16:13 +0000)]
Unreviewed, speculative WinCairo buildfix after r183807.

* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183809 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix up fast/performance/performance-now-crash-on-navigated-window.html after r183795.
akling@apple.com [Tue, 5 May 2015 16:10:04 +0000 (16:10 +0000)]
Fix up fast/performance/performance-now-crash-on-navigated-window.html after r183795.

Unreviewed fix for the bots. Since performance.now doesn't bail out and return 0 in
disconnected frames anymore, we have to adjust the expectations. This test was all
about catching a crash anyway.

* fast/performance/performance-now-crash-on-navigated-window-expected.txt:
* fast/performance/performance-now-crash-on-navigated-window.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183808 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove TextureMapperImageBuffer
ossy@webkit.org [Tue, 5 May 2015 15:48:29 +0000 (15:48 +0000)]
Remove TextureMapperImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=143561

Reviewed by Žan Doberšek.

Source/WebCore:

* CMakeLists.txt:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformWinCairo.cmake:
* platform/graphics/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBufferData::paintToTextureMapper):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):
* platform/graphics/texmap/BitmapTextureImageBuffer.cpp: Removed.
* platform/graphics/texmap/BitmapTextureImageBuffer.h: Removed.
* platform/graphics/texmap/BitmapTexturePool.cpp:
(WebCore::BitmapTexturePool::createTexture):
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setFilters):
* platform/graphics/texmap/TextureMapper.cpp:
(WebCore::TextureMapper::create):
(WebCore::TextureMapper::TextureMapper):
* platform/graphics/texmap/TextureMapper.h:
(WebCore::TextureMapper::accelerationMode): Deleted.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::TextureMapperGL):
* platform/graphics/texmap/TextureMapperImageBuffer.cpp: Removed.
* platform/graphics/texmap/TextureMapperImageBuffer.h: Removed.
* platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
(WebCore::CompositingCoordinator::CompositingCoordinator):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::GraphicsLayer::supportsContentsTiling):
(WebCore::CoordinatedGraphicsLayer::setShouldSupportContentsTiling): Deleted.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Source/WebKit2:

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183807 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Web Inspector: New Images added in r183339, r183338, r183332, r183323, r182660...
agomez@igalia.com [Tue, 5 May 2015 15:20:36 +0000 (15:20 +0000)]
[GTK] Web Inspector: New Images added in r183339, r183338, r183332, r183323, r182660, and r182186
https://bugs.webkit.org/show_bug.cgi?id=144329

Reviewed by Joseph Pecoraro.

* UserInterface/Images/gtk/Console.svg: Added.
* UserInterface/Images/gtk/Debugger.svg: Added.
* UserInterface/Images/gtk/Elements.svg: Added.
* UserInterface/Images/gtk/Gear.svg: Added.
* UserInterface/Images/gtk/NewTab.svg: Added.
* UserInterface/Images/gtk/NewTabPlus.svg: Added.
* UserInterface/Images/gtk/ReloadToolbar.svg: Added.
* UserInterface/Images/gtk/SearchResults.svg: Added.
* UserInterface/Images/gtk/Storage.svg: Added.
* UserInterface/Images/gtk/Timeline.svg: Added.
* UserInterface/Images/gtk/TimelineRecordRenderingFrame.svg: Added.
* UserInterface/Images/gtk/ToggleLeftSidebar.svg: Added.
* UserInterface/Images/gtk/ToggleRightSidebar.svg: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183806 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[CSS Box Alignment] Upgrade align-content parsing to CSS3 Box Alignment spec
jfernandez@igalia.com [Tue, 5 May 2015 15:15:38 +0000 (15:15 +0000)]
[CSS Box Alignment] Upgrade align-content parsing to CSS3 Box Alignment spec
https://bugs.webkit.org/show_bug.cgi?id=144443

Reviewed by Darin Adler.

Source/WebCore:

Upgrade the align-content property to the last CSS3 Box
Alignment specification. As it uses a different enumeration for
Positional and Distribution alignment, it implies some changes in
the FlexibleBox implementation.

Test: css3/parse-align-content.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::resolveContentAlignmentAuto):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::initialAlignContentOffset):
(WebCore::alignContentSpaceBetweenChildren):
(WebCore::RenderFlexibleBox::alignFlexLines):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::resolveContentAlignment):
(WebCore::RenderStyle::resolveContentJustification):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

Tests to verify the align-content parsing logic. The new Box Alignment spec
requires some changes in the flexbox tests.

* css3/flexbox/css-properties-expected.txt:
* css3/flexbox/css-properties.html:
* css3/parse-align-content-expected.txt: Added.
* css3/parse-align-content.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Web Inspector: icons for console.info() messages
agomez@igalia.com [Tue, 5 May 2015 13:43:52 +0000 (13:43 +0000)]
[GTK] Web Inspector: icons for console.info() messages
https://bugs.webkit.org/show_bug.cgi?id=144461

Reviewed by Joseph Pecoraro.

* UserInterface/Images/gtk/Debug.svg: Added.
* UserInterface/Images/gtk/Info.svg: Added.
* UserInterface/Images/gtk/Log.svg: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183804 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agostreams/readable-stream.html is very flaky
youenn.fablet@crf.canon.fr [Tue, 5 May 2015 13:23:52 +0000 (13:23 +0000)]
streams/readable-stream.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=144455

Reviewed by Darin Adler.

Source/WebCore:

Changed the link between readadable stream and controller.
Controller ref()/deref() now increments/decrements its stream ref counter.
This ensures that even if JS scripts do not keep track of the readable stream,
the readable stream will not be disposed as long as the JS script has access to its controller.

Test: streams/readable-stream-gc.html

* Modules/streams/ReadableStreamController.h:
(WebCore::ReadableStreamController::ReadableStreamController):
(WebCore::ReadableStreamController::ref):
(WebCore::ReadableStreamController::deref):
(WebCore::ReadableStreamController::create): Deleted.
(WebCore::ReadableStreamController::stream): Deleted.
* bindings/js/JSReadableStreamControllerCustom.cpp:
(WebCore::JSReadableStreamController::close):
(WebCore::JSReadableStreamController::enqueue):
(WebCore::JSReadableStreamController::error):
* bindings/js/ReadableStreamJSSource.cpp:
(WebCore::ReadableStreamJSSource::~ReadableStreamJSSource):
(WebCore::ReadableStreamJSSource::start):
(WebCore::ReadableJSStream::jsController):
* bindings/js/ReadableStreamJSSource.h:

LayoutTests:

Moved flaky test to streams/readable-stream-gc.html.
Updated flaky test to check that the controller methods work well even if readable stream reference is lost by script.

* streams/readable-stream-expected.txt:
* streams/readable-stream-gc-expected.txt: Added.
* streams/readable-stream-gc.html: Added.
* streams/readable-stream.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183803 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Gardening 4th May
commit-queue@webkit.org [Tue, 5 May 2015 13:14:01 +0000 (13:14 +0000)]
[GTK] Gardening 4th May
https://bugs.webkit.org/show_bug.cgi?id=144571

Unreviewed.

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-05-05

* platform/gtk/TestExpectations:
* platform/gtk/fast/forms/color/input-appearance-color-expected.png: Added.
* platform/gtk/fast/forms/color/input-appearance-color-expected.txt:
* platform/gtk/fast/regions/region-overflow-break-expected.html: Added.
* platform/gtk/fast/regions/scrolling/wheel-scroll-abspos-expected.html: Added.
* platform/gtk/fast/regions/scrolling/wheel-scroll-expected.html: Added.
* platform/gtk/fast/text/font-kerning-expected.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183802 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[SOUP] Network Cache: IOChannel operations are not sent to the right thread
carlosgc@webkit.org [Tue, 5 May 2015 08:20:47 +0000 (08:20 +0000)]
[SOUP] Network Cache: IOChannel operations are not sent to the right thread
https://bugs.webkit.org/show_bug.cgi?id=144542

Reviewed by Darin Adler.

We are ignoring the given WorkQueue and running the async
operations in the current thread. Check the given WorkQueue
instead and schedule the operation to the given queue. If the
given queue is nullptr, which means the operation should be run in
the main context, the operation is run directly if the current
context is the main one or sent to the main context using a
GMainLoopSource.

Fixes crashes due to asserts when running disk-cache layout tests
in a Debug build.

* NetworkProcess/cache/NetworkCacheIOChannel.h:
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
(WebKit::NetworkCache::IOChannel::write):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183801 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Async operations running in the WorkQueue thread should schedule their sources...
carlosgc@webkit.org [Tue, 5 May 2015 08:16:16 +0000 (08:16 +0000)]
[GTK] Async operations running in the WorkQueue thread should schedule their sources to the WorkQueue main lopp
https://bugs.webkit.org/show_bug.cgi?id=144541

Reviewed by Žan Doberšek.

Source/WTF:

They are currently sent to the main thread run loop, because we
are not setting the WorkQueue main context as the default one in
the worker thread.

* wtf/gtk/WorkQueueGtk.cpp:
(WTF::WorkQueue::platformInitialize): Call
g_main_context_push_thread_default() to set the WorkQueue main
context as the default of the thread before running the main loop,
and g_main_context_pop_thread_default() when the main loop quits.

Tools:

Add a test case to WorkQueue unit test, to check that sources of
asynchronous IO operations running in the WorkQueue thread are
dispatched by the WorkQueue main loop.

* TestWebKitAPI/PlatformGTK.cmake:
* TestWebKitAPI/Tests/WTF/gtk/WorkQueueGtk.cpp: Added.
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoSmall cleanup in RenderText::computePreferredLogicalWidths()
mmaxfield@apple.com [Tue, 5 May 2015 07:49:13 +0000 (07:49 +0000)]
Small cleanup in RenderText::computePreferredLogicalWidths()
https://bugs.webkit.org/show_bug.cgi?id=144615

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-05-05
Reviewed by Simon Fraser.

A little bit of cleanup before I tackle dependent widths in this function.

No new tests because there is no behavior change.

* rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183799 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[ATK] AX: figure out platform difference for ATK to make accessibility/table-cell...
jdiggs@igalia.com [Tue, 5 May 2015 07:39:23 +0000 (07:39 +0000)]
[ATK] AX: figure out platform difference for ATK to make accessibility/table-cell-display-block.html work
https://bugs.webkit.org/show_bug.cgi?id=143083

Reviewed by Chris Fleizach.

Source/WebCore:

The main platform difference was that ATK was mapping the td element to
the accessible table cell, and the render block resulting from the style
wound up being the cell parent. In contrast, AX API was mapping the cell
element to an AXGroup which was a child of the AXCell. Rather than try to
bend yet another case to the will of our individual platforms' table needs,
it made more sense to clean up the code that is competing and move toward
more platform-unified handling. This is the first step in that direction,
with ATK moving closer toward the WebCore/AX API mapping.

No new tests. Instead, modified and fixed the test which was being skipped
for GTK, and also updated the expectations of some Mac tests whose FIXMEs
should now be fixed.

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::supportsRequiredAttribute):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::computeIsTableExposableThroughAccessibility):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::determineAccessibilityRole):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):

LayoutTests:

* accessibility/roles-computedRoleString-expected.txt: Updated to reflect fixed FIXME.
* accessibility/roles-computedRoleString.html: Updated to reflect fixed FIXME.
* accessibility/table-cell-display-block-expected.txt: Modified to be more platform agnostic.
* accessibility/table-cell-display-block.html: Modified to be more platform agnostic.
* platform/efl/accessibility/table-detection-expected.txt: Updated to reflect mapping change.
* platform/gtk/TestExpectations: Unskip failing test from opening report.
* platform/gtk/accessibility/table-detection-expected.txt: Updated to reflect mapping change.
* platform/mac/accessibility/rowheader-outside-table-role-expected.txt: Updated to reflect mapping change.
* platform/mac/accessibility/rowheader-outside-table-role.html: Updated to reflect mapping change.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[iOS] Videos on apple.com flash when touching to show or hide the controls
jer.noble@apple.com [Tue, 5 May 2015 06:57:27 +0000 (06:57 +0000)]
[iOS] Videos on apple.com flash when touching to show or hide the controls
https://bugs.webkit.org/show_bug.cgi?id=144598

Reviewed by Eric Carlson.

The apple.com site will add a "selection" rectangle atop a playing video when it recieves a touchstart
event. The default media controls use touchstart to signal the controls to become visible. Stop the touch
from propagating down to the page in this case.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.handleWrapperTouchStart):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCorrect '--show-webview' option for Tiled Drawing tests
bfulgham@apple.com [Tue, 5 May 2015 05:22:52 +0000 (05:22 +0000)]
Correct '--show-webview' option for Tiled Drawing tests
https://bugs.webkit.org/show_bug.cgi?id=144621

Reviewed by Simon Fraser.

The scrolling thread/tiled drawing tests recreate the standard test runner web view. My earlier patch did not make
sure that the state of the '--show-webview' option was propagated to this additional view creation routine.

* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformConfigureViewForTest): Include the value of the 'shouldShowWebView' state in the
WKMutableDictionary passed to the 'ensureViewSupportsOptions' method.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183796 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRecord the reference time when Performance is constructed.
akling@apple.com [Tue, 5 May 2015 04:49:00 +0000 (04:49 +0000)]
Record the reference time when Performance is constructed.
<https://webkit.org/b/144616>

Reviewed by Geoffrey Garen.

This is a merge of Blink's r156613 by simonjam@chromium.org.

Cache a copy of the DocumentLoader's reference timestamp when constructing
the Performance object. That way we don't have to jump through a bunch of scary
hoops to access it when now() is called later on.

* page/Performance.cpp:
(WebCore::Performance::Performance):
(WebCore::Performance::now): Deleted.
* page/Performance.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix assertions in WK1 tests after r183777.
simon.fraser@apple.com [Tue, 5 May 2015 04:29:30 +0000 (04:29 +0000)]
Fix assertions in WK1 tests after r183777.

Source/WebCore:

Two issues with the original change:

If not in compositing mode, we shouldn't schedule layer flushes, since
Document::documentWillSuspendForPageCache() only only calls cancelCompositingLayerUpdate()
if in compositing mode.

Second, RenderLayerCompositor::rootBackgroundTransparencyChanged() never stored the
new color, resulting in too many triggered compositing updates.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged):

LayoutTests:

Behavior difference with the change to RenderLayerCompositor::rootBackgroundTransparencyChanged().

* platform/mac-wk2/tiled-drawing/background-transparency-toggle-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183794 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, fix stale comment.
fpizlo@apple.com [Tue, 5 May 2015 04:24:23 +0000 (04:24 +0000)]
Unreviewed, fix stale comment.

* tests/mozilla/js1_5/Array/regress-101964.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183793 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoLarge array shouldn't be slow
fpizlo@apple.com [Tue, 5 May 2015 04:16:50 +0000 (04:16 +0000)]
Large array shouldn't be slow
https://bugs.webkit.org/show_bug.cgi?id=144617

Rubber stamped by Mark Lam.

* tests/mozilla/js1_5/Array/regress-101964.js: 500ms isn't enough in debug mode. We don't care how long this takes so long as we run it to completion. I've raised the limit much higher.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183792 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoLarge array shouldn't be slow
fpizlo@apple.com [Tue, 5 May 2015 03:51:35 +0000 (03:51 +0000)]
Large array shouldn't be slow
https://bugs.webkit.org/show_bug.cgi?id=144617

Rubber stamped by Mark Lam.

* tests/mozilla/js1_5/Array/regress-101964.js: Mozilla may have cared about this being fast a decade ago (or more), but we don't care. We've consistently found that an array implementation that punishes this case to get speed on common-case array accesses is better. This should fix some test failures on the bots.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183791 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, rolling out r183789.
commit-queue@webkit.org [Tue, 5 May 2015 03:35:13 +0000 (03:35 +0000)]
Unreviewed, rolling out r183789.
https://bugs.webkit.org/show_bug.cgi?id=144620

Causing flakiness on exceptionFuzz tests locally on 32-bit
build (Requested by saamyjoon on #webkit).

Reverted changeset:

"Global functions should be initialized as JSFunctions in byte
code"
https://bugs.webkit.org/show_bug.cgi?id=144178
http://trac.webkit.org/changeset/183789

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183790 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoGlobal functions should be initialized as JSFunctions in byte code
saambarati1@gmail.com [Tue, 5 May 2015 03:27:09 +0000 (03:27 +0000)]
Global functions should be initialized as JSFunctions in byte code
https://bugs.webkit.org/show_bug.cgi?id=144178

Reviewed by Geoffrey Garen.

This patch makes the initialization of global functions more explicit by
moving initialization into bytecode. It also prepares JSC for having ES6
style lexical scoping because initializing global functions in bytecode
easily allows global functions to be initialized with the proper scope that
will have access to global lexical variables. Global lexical variables
should be visible to global functions but don't live on the global object.

* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedProgramCodeBlock::visitChildren):
* bytecode/UnlinkedCodeBlock.h:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
* bytecompiler/BytecodeGenerator.h:
* runtime/Executable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addFunction):
* runtime/JSGlobalObject.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183789 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRenderWidget::setWidgetGeometry() can end up destroying *this*.
zalan@apple.com [Tue, 5 May 2015 03:22:35 +0000 (03:22 +0000)]
RenderWidget::setWidgetGeometry() can end up destroying *this*.
https://bugs.webkit.org/show_bug.cgi?id=144601

Reviewed by Andreas Kling.

This is a speculative fix to ensure we don't crash on an invalid *this* renderer
while flattening the current iframe.
Calling RenderWidget::setWidgetGeometry() can result in destroying the current renderer.
While it is not a issue in case of normal layout flow as widget positions are updated at post layout,
frame flattening initiates this action in the middle of layout.
This patch re-introduces refcount model for RenderWidgets so that the renderer is protected during layout
when frame flattening is in use.

* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::layoutWithFlattening): Let's be paranoid about child view.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroy):
* rendering/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::~RenderWidget):
* rendering/RenderWidget.h:
(WebCore::RenderWidget::ref):
(WebCore::RenderWidget::deref):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183788 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoLarge array shouldn't be slow
fpizlo@apple.com [Tue, 5 May 2015 02:40:28 +0000 (02:40 +0000)]
Large array shouldn't be slow
https://bugs.webkit.org/show_bug.cgi?id=144617

Reviewed by Geoffrey Garen.

PerformanceTests:

Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
long-running. So, hash-map sort of belongs here.

* LongSpider/hash-map.js: Added.
(HashMap):
(HashMap.):
(.get var):

Source/JavaScriptCore:

Decouple MIN_SPARSE_ARRAY_INDEX, which is the threshold for storing to the sparse map when
you're already using ArrayStorage mode, from the minimul array length required to use
ArrayStorage in a new Array(length) allocation.

Lift the array allocation length threshold to something very high. If this works, we'll
probably remove that threshold entirely.

This is a 27% speed-up on JetStream/hash-map. Because run-jsc-benchmarks still can't run
JetStream as a discrete suite, this adds hash-map to LongSpider so that we run it somewhere
for now.

* dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNewArrayWithSize):
* runtime/ArrayConventions.h:
* runtime/JSArray.h:
(JSC::JSArray::create):
* runtime/JSGlobalObject.h:
(JSC::constructEmptyArray):
* tests/stress/new-array-storage-array-with-size.js: Skip this test until we fix https://bugs.webkit.org/show_bug.cgi?id=144609.

Tools:

Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
long-running. So, hash-map sort of belongs here.

* Scripts/run-jsc-benchmarks:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Always expand initial top level DOM tree nodes when not including...
commit-queue@webkit.org [Tue, 5 May 2015 01:00:49 +0000 (01:00 +0000)]
Web Inspector: Always expand initial top level DOM tree nodes when not including the root (frame views)
https://bugs.webkit.org/show_bug.cgi?id=144607

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-05-04
Reviewed by Timothy Hatcher.

* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.update):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183786 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd backed intrinsics to private functions exposed with private symbols in global...
utatane.tea@gmail.com [Tue, 5 May 2015 00:37:39 +0000 (00:37 +0000)]
Add backed intrinsics to private functions exposed with private symbols in global object
https://bugs.webkit.org/show_bug.cgi?id=144545

Reviewed by Darin Adler.

Math.abs and Math.floor have ASM intrinsics And it is further accelerated in DFG/FTL layers.
This patch adds intrinsic to private functions exposed with private symbols in global object,
@floor and @abs.

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalPrivateFuncAbs): Deleted.
(JSC::globalPrivateFuncFloor): Deleted.
* runtime/MathObject.cpp:
* runtime/MathObject.h:
* tests/stress/array-from-abs-and-floor.js: Added.
(target1):
(target2):
(target3):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183785 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWebKit always goes through LaunchServices for main frame navigation actions
mitz@apple.com [Tue, 5 May 2015 00:37:06 +0000 (00:37 +0000)]
WebKit always goes through LaunchServices for main frame navigation actions
https://bugs.webkit.org/show_bug.cgi?id=144608

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Defined
_WKNavigationActionPolicyAllowWithoutTryingAppLink.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): If the policy
is _WKNavigationActionPolicyAllowWithoutTryingAppLink, don’t go through tryAppLink.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183784 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAX: setting focus via accessibility object needs to set isSynchronizing in resulting...
commit-queue@webkit.org [Tue, 5 May 2015 00:16:01 +0000 (00:16 +0000)]
AX: setting focus via accessibility object needs to set isSynchronizing in resulting selection intent
https://bugs.webkit.org/show_bug.cgi?id=144489

Patch by Doug Russell <d_russell@apple.com> on 2015-05-04
Reviewed by Chris Fleizach.

Resolves infinite looping when navigating rapidly between controls with the search API and then focusing
on the returned control.
Remove isSynchronizing flag from AXTextStateChangeIntent and put it on AXObjectCache.
Move AXTextStateChangeIntent logic in AccessibilityRenderObject into a helper method.
Call new AXTextStateChangeIntent helper from AccessibilityRenderObject::setFocus().
Add support for setSelectedVisibleTextRange() in accessibility tests.

Source/WebCore:

Test: platform/mac/accessibility/selection-sync.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::showIntent):
(WebCore::AXObjectCache::setTextSelectionIntent):
(WebCore::AXObjectCache::setIsSynchronizingSelection):
(WebCore::AXObjectCache::postTextStateChangeNotification):
* accessibility/AXObjectCache.h:
* accessibility/AXTextStateChangeIntent.h:
(WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::setTextSelectionIntent):
(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::setFocused):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):
(WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange): Deleted.
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):

Tools:

* DumpRenderTree/AccessibilityUIElement.cpp:
(setSelectedVisibleTextRangeCallback):
(AccessibilityUIElement::setSelectedVisibleTextRange):
(AccessibilityUIElement::getJSClass):
(AccessibilityUIElement::textMarkerForIndex): Deleted.
* DumpRenderTree/AccessibilityUIElement.h:
* DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::setSelectedVisibleTextRange):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
(WTR::AccessibilityUIElement::setSelectedTextRange): Deleted.
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):

LayoutTests:

* platform/mac/accessibility/selection-sync-expected.txt: Added.
* platform/mac/accessibility/selection-sync.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183783 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Mac] Audio-only files should not have a device picker
eric.carlson@apple.com [Tue, 5 May 2015 00:08:28 +0000 (00:08 +0000)]
[Mac] Audio-only files should not have a device picker
https://bugs.webkit.org/show_bug.cgi?id=144606
<rdar://problem/20806387>

Reviewed by Dean Jackson.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.hasVideo): New.
(Controller.prototype.updateFullscreenButtons): Use hasVideo.
(Controller.prototype.updateHasVideo): Ditto.
(Controller.prototype.updateWirelessTargetAvailable): Don't show the target picker button
unless a file has video.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183782 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCrash at com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::createWindow...
cdumez@apple.com [Mon, 4 May 2015 23:58:32 +0000 (23:58 +0000)]
Crash at com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::createWindow + 185
https://bugs.webkit.org/show_bug.cgi?id=144597
<rdar://problem/20361579>

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/dom/Window/window-open-activeWindow-null-frame.html

In our implementation of window.open(), we make sure that the window
which window.open() is called has a frame. However, we did not have the
same check for the activeDOMWindow (i.e. the lexicalGlobalObject) causing
us to crash in WebCore::createWindow() when dereferencing it.

This patch updates WebCore::createWindow() takes a reference to the
openerFrame instead of a pointer to make it clear the implementation
expects it to be non-null. A null check is then added for the frame
at the call site: DOMWindow::createWindow().

* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openInNewTab):
* loader/FrameLoader.cpp:
(WebCore::isDocumentSandboxed):
(WebCore::FrameLoader::submitForm):
(WebCore::createWindow):
Take a reference to openerFrame instead of a pointer as the
implementation expects it to be non-null.

* loader/FrameLoader.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
Add null check for activeFrame before passing it to
WebCore::createWindow().

LayoutTests:

Add a layout test to cover the case where window.open() is called on a
window that is different than the activeDOMWindow and where the
activeDOMWindow does not have a frame.

* fast/dom/Window/resources/test-frame.html: Added.
* fast/dom/Window/window-open-activeWindow-null-frame-expected.txt: Added.
* fast/dom/Window/window-open-activeWindow-null-frame.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183781 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[iOS WK2] editorState should include information about selection clipping rectangle.
enrica@apple.com [Mon, 4 May 2015 23:51:21 +0000 (23:51 +0000)]
[iOS WK2] editorState should include information about selection clipping rectangle.
https://bugs.webkit.org/show_bug.cgi?id=144603
rdar://problem/20521252

Reviewed by Chris Dumez.

Adding selectionClipRect to the post-layout portion of EditorState.
This way we can compute the selection clipping rectangle based on
up-to-date information instead of using the rectangle provided when
then element was first focused.

* Shared/EditorState.cpp:
(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):
* Shared/EditorState.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _selectionClipRect]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183780 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[cmake] ARM related build system cleanup
ossy@webkit.org [Mon, 4 May 2015 23:46:44 +0000 (23:46 +0000)]
[cmake] ARM related build system cleanup
https://bugs.webkit.org/show_bug.cgi?id=144566

Reviewed by Darin Adler.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183779 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCreate a named CSS property for system colors
dino@apple.com [Mon, 4 May 2015 23:42:56 +0000 (23:42 +0000)]
Create a named CSS property for system colors
https://bugs.webkit.org/show_bug.cgi?id=144423

Follow-up comments from Darin Adler.

* rendering/RenderThemeIOS.h: Cache a Color rather than an RGBA32.
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::systemColor): Use "add" to avoid multiple hits on the HashMap, and
cache invalid responses so that we don't have to keep looking for non-existent colors.
* rendering/RenderThemeMac.h: Same as iOS.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::systemColor):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183778 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agodisplay:none iframes cause repeated compositing flushing
simon.fraser@apple.com [Mon, 4 May 2015 23:31:10 +0000 (23:31 +0000)]
display:none iframes cause repeated compositing flushing
https://bugs.webkit.org/show_bug.cgi?id=144529

Reviewed by Darin Adler.

Source/WebCore:

FrameView::updateLayoutAndStyleIfNeededRecursive() only forces layout on rendered
frames, by virtue of using its Widget children which are FrameViews.

However, FrameView::flushCompositingStateIncludingSubframes() iterated over
all frames, and return false if any subframe needed layout. Thus, if it saw
non-rendered frames (which are never laid out), it would return false,
which causes the CFRunLoopObserver that drives flushing to run again.

Fix by having FrameView::flushCompositingStateIncludingSubframes() only check
rendered frames, using FrameTree::traverseNextRendered() (which needs to be public).

Also change FrameView::needsStyleRecalcOrLayout() and FrameView::updateLayoutAndStyleIfNeededRecursive()
to fetch the list of FrameViews using FrameTree's nextRenderedSibling(), rather than using
the Widget tree, since we'd like to eventually remove Widgets, and using the Frame
tree matches flushCompositingStateIncludingSubframes() and other code.

Test: compositing/iframes/display-none-subframe.html

* page/FrameTree.h:
* page/FrameView.cpp:
(WebCore::FrameView::flushCompositingStateIncludingSubframes):
(WebCore::FrameView::needsStyleRecalcOrLayout):
(WebCore::FrameView::renderedChildFrameViews): Helper that returns a vector
of Ref<FrameView>s for rendered frames only.
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
* page/FrameView.h:

LayoutTests:

Test with a display:none iframe that triggers a single compositing flush,
then counts how many occur in 10ms.

* compositing/iframes/display-none-subframe-expected.txt: Added.
* compositing/iframes/display-none-subframe.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183777 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed. Fix build with SECURITY_ASSERTIONS enabled.
cdumez@apple.com [Mon, 4 May 2015 23:10:34 +0000 (23:10 +0000)]
Unreviewed. Fix build with SECURITY_ASSERTIONS enabled.
<rdar://problem/20653104>

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::ScriptExecutionContext):
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForPageCache):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
* dom/ScriptExecutionContext.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix updating of tiled backing opaquenss when the page background color changes
simon.fraser@apple.com [Mon, 4 May 2015 22:53:10 +0000 (22:53 +0000)]
Fix updating of tiled backing opaquenss when the page background color changes
https://bugs.webkit.org/show_bug.cgi?id=144600
rdar://problem/20723035

Reviewed by Tim Horton.

Source/WebCore:

RenderLayerCompositor makes the page tiles opaque or not based on the result of
viewHasTransparentBackground(), which consults the view transparency, and
FrameView::documentBackgroundColor(). documentBackgroundColor() in turn is based
on the root and/or body background colors.

We thus need to re-evaluate whether page tiles are opaque when any of these inputs
change, but were failing to do so for the FrameView's baseBackgroundColor, and
the page root background color.

Fix by having FrameView::setBaseBackgroundColor(), and RenderBox::styleDidChange()
(for the root) trigger a compositing update when necessary.

Added setViewBaseBackgroundColor() on Internals for testing.

Test: platform/mac-wk2/tiled-drawing/background-transparency-toggle.html

* page/FrameView.cpp:
(WebCore::FrameView::setTransparent): Use the isViewForDocumentInFrame() helper.
(WebCore::FrameView::setBaseBackgroundColor): Bail if we're not the view for the
frame's document, and trigger a compositing update check if the alpha changed.
(WebCore::FrameView::isViewForDocumentInFrame): Helper that checks to see if
this FrameView is associated with the Document being displayed in the FrameView's
Frame. This returns false when we're setting up a new FrameView (its Frame still
points to the old document, so renderView() returns the RenderView for the Frame's
existing Document).
* page/FrameView.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange): Have the compositor check to see if it needs
to do an update.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged): If the result
of documentBackgroundColor() changed in alpha since the last time, trigger a compositing
update.
* rendering/RenderLayerCompositor.h:
* testing/Internals.cpp:
(WebCore::Internals::setViewBaseBackgroundColor):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Test that dumps layers with various baseBackgroundColor and body background color
combinations.

* platform/mac-wk2/tiled-drawing/background-transparency-toggle-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/background-transparency-toggle.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183775 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[iOS] Crash in -[WebCALayerHostWrapper resolveBounds]
jer.noble@apple.com [Mon, 4 May 2015 22:14:33 +0000 (22:14 +0000)]
[iOS] Crash in -[WebCALayerHostWrapper resolveBounds]
https://bugs.webkit.org/show_bug.cgi?id=144595

Reviewed by Eric Carlson.

It is possible for a WebCALayorHostWrapper to outlive the WebVideoFullscreenModel to which it refers,
since the model pointer is bare, rather than a RefPtr. The reference to the model must be invalidated
before the model is destroyed.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183774 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix the test after r183758 since shouldNotBe is not supported in the standalone testing.
rniwa@webkit.org [Mon, 4 May 2015 21:42:45 +0000 (21:42 +0000)]
Fix the test after r183758 since shouldNotBe is not supported in the standalone testing.

* js/class-syntax-default-constructor-expected.txt:
* js/script-tests/class-syntax-default-constructor.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183773 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Win] Implement the "--show-webview" option for Windows
bfulgham@apple.com [Mon, 4 May 2015 20:46:09 +0000 (20:46 +0000)]
[Win] Implement the "--show-webview" option for Windows
https://bugs.webkit.org/show_bug.cgi?id=144589

Reviewed by Alex Christensen.

Add another runtime flag (--show-webview) that causes DumpRenderTree
to draw its view on-screen, rather than the standard offscreen mode.

* DumpRenderTree/win/DumpRenderTree.cpp:
(createWebViewAndOffscreenWindow): Honor the 'showWebView' flag.
(initializeGlobalsFromCommandLineOptions): Recognize the new
command-line argument, and set the global 'showWebView' state if
appropriate.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183772 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, rolling out r183661.
commit-queue@webkit.org [Mon, 4 May 2015 20:44:29 +0000 (20:44 +0000)]
Unreviewed, rolling out r183661.
https://bugs.webkit.org/show_bug.cgi?id=144594

Caused ~3.5MB regression on membuster(!) (Requested by kling_
on #webkit).

Reverted changeset:

"Decrease minimum Vector size."
https://bugs.webkit.org/show_bug.cgi?id=144453
http://trac.webkit.org/changeset/183661

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoToggling underline or strike through affects each other
rniwa@webkit.org [Mon, 4 May 2015 20:42:41 +0000 (20:42 +0000)]
Toggling underline or strike through affects each other
https://bugs.webkit.org/show_bug.cgi?id=27818

Reviewed by Darin Adler.

Source/WebCore:

This patch introduces a new mechanism to apply and remove text decorations. This is necessary because text
decorations are always additive and we can't differentiate whether we're adding or removing a text decoration.
Conceptually, we need four values for text decorations: adding underline, removing underline, adding
line-through, and removing line-through but we have only three: underline, line-through, none.

After this patch, there are three mechanism by which text decorations states are kept tracked. While applying
or removing text decorations, we use newly added m_underlineChange and m_strikeThroughChange in EditingStyle.
For the typing style, we use -webkit-text-decorations-in-effect to store the state since we need to preserve
every type of text decorations such as overline in addition to underline and line-through. Once applied, all
text decorations should be expressed in terms of the standard text-decoration property.

Test: editing/execCommand/toggle-mixed-text-decorations.html

* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle):
(WebCore::ApplyStyleCommand::removeCSSStyle): conflictsWithInlineStyleOfElement now creates a new inline style
instead of a list of properties to remove.
(WebCore::ApplyStyleCommand::addBlockStyle):
(WebCore::ApplyStyleCommand::applyInlineStyleChange): Merge inline styles instead of adding as string.
Otherwise it would generate style content attribute with multiple text-decoration properties.

* editing/EditingStyle.cpp:
(WebCore::HTMLElementEquivalent::matches):
(WebCore::HTMLElementEquivalent::propertyExistsInStyle): Takes an EditingStyle instead of StyleProperties.
(WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
(WebCore::HTMLTextDecorationEquivalent::HTMLTextDecorationEquivalent):
(WebCore::HTMLTextDecorationEquivalent::propertyExistsInStyle): Respect newly added m_strikeThroughChange and
m_underlineChange in EditingStyle.
(WebCore::HTMLTextDecorationEquivalent::valueIsPresentInStyle): Ditto.
(WebCore::HTMLTextDecorationEquivalent::changeInStyle): Added. Retrieves the change enum for the associated
type of text-decoration (underline or strike through).
(WebCore::HTMLAttributeEquivalent::matches):
(WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
(WebCore::EditingStyle::EditingStyle): Initialize m_underlineChange and m_strikeThroughChange. Also use the
delegating constructor elsewhere. Also added the missing call to extractFontSizeDelta() in the variant that
takes CSSPropertyID and String, and added a variant that takes CSSPropertyID and CSSValueID.
(WebCore::EditingStyle::isEmpty): Return false when m_underlineChange and m_strikeThroughChange are not "none".
(WebCore::applyTextDecorationChangeToValueList): Added.
(WebCore::EditingStyle::overrideTypingStyleAt): Added. Used by Editor::computeAndSetTypingStyle to set a new
typing style. Resolve m_underlineChange and m_strikeThroughChange into -webkit-text-decorations-in-effect.
(WebCore::EditingStyle::clear): Clear m_underlineChange and m_strikeThroughChange.
(WebCore::EditingStyle::copy): Copy m_underlineChange and m_strikeThroughChange.
(WebCore::textDecorationValueList): Added.
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement): Now takes a pointer to MutableStyleProperties
instead of a vector. This was necessary we can't simply remove text-decoration property in ApplyStyleCommand's
removeCSSStyle as that would result in unrelated text decorations also getting removed. Also added the code
for m_underlineChange and m_strikeThroughChange. Only removing text decoration changes can cause a conflict
since text decorations are always additive.
(WebCore::EditingStyle::conflictsWithImplicitStyleOfElement): Check isEmpty() instead of the nullity of
m_mutableStyle to respect m_underlineChange and m_strikeThroughChange.
(WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes):
(WebCore::EditingStyle::extractConflictingImplicitStyleOfAttributes):
(WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode): Respect the values of m_underlineChange and
m_strikeThroughChange. Here, the style is considered present if it has text decorations that are being added.
(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
(WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Takes EditingStyle instead of StyleProperties to
respect m_underlineChange and m_strikeThroughChange.
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
(WebCore::mergeTextDecorationValues):
(WebCore::EditingStyle::mergeStyle): Make a copy of CSSValueList before modifying it since CSSValueList's are
shared with other immutable StyleProperties.
(WebCore::StyleChange::StyleChange): Set m_applyUnderline, m_applyLineThrough, and m_cssStyle if either
m_underlineChange or m_strikeThroughChange are TextDecorationChange::Add in EditingStyle if the current position
doesn't already have the matching style.
(WebCore::StyleChange::operator==): Moved from the header file. Also added the logic to compare m_cssStyle now
that it's a StyleProperties instead of String.

* editing/EditingStyle.h: Added TextDecorationChange.
(WebCore::EditingStyle::create): Added a variant that takes CSSPropertyID and CSSValueID.
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
(WebCore::EditingStyle::setUnderlineChange): Added.
(WebCore::EditingStyle::underlineChange): Added.
(WebCore::EditingStyle::setStrikeThroughChange): Added.
(WebCore::EditingStyle::strikeThroughChange): Added.
(WebCore::StyleChange::cssStyle): Now returns StyleProperties* instead of String so that ApplyStyleCommand's
applyInlineStyleChange could merge inline styles instead of just appending it to the end.
(WebCore::StyleChange::operator==): Moved into the cpp file.

* editing/Editor.cpp:
(WebCore::Editor::applyStyle): Added. This variant takes EditingStyle instead of StyleProperties.
(WebCore::Editor::applyStyleToSelection): Ditto.
(WebCore::Editor::computeAndSetTypingStyle): Added a variant for EditingStyle. Also use overrideTypingStyleAt
to set -webkit-text-decorations-in-effect based on m_underlineChange and m_strikeThroughChange

* editing/Editor.h:
* editing/EditorCommand.cpp:
(WebCore::applyCommandToFrame):
(WebCore::isStylePresent): Extracted from executeToggleStyle.
(WebCore::executeApplyStyle):
(WebCore::executeToggleStyle):
(WebCore::executeToggleStyleInList): Deleted.
(WebCore::textDecorationChangeForToggling): Added. Used in executeStrikethrough and executeUnderline.
(WebCore::executeStrikethrough):
(WebCore::executeUnderline):

Source/WebKit/mac:

* WebView/WebFrame.mm:
(-[WebFrame _setTypingStyle:withUndoAction:]):

LayoutTests:

Added a regression test and rebaselined various tests as explained below.

* editing/execCommand/script-tests/toggle-style-2.js: The order in which u and strike elements appear have switched.
* editing/execCommand/script-tests/toggle-text-decorations.js: Ditto for line-through and overline.
* editing/execCommand/toggle-mixed-text-decorations-expected.txt: Added.
* editing/execCommand/toggle-mixed-text-decorations.html: Added.
* editing/execCommand/toggle-style-2-expected.txt: Rebaselined.
* editing/execCommand/toggle-text-decorations-expected.txt: Rebaselined.
* editing/undo/remove-css-property-and-remove-style-expected.txt: The order in which color and font-weight properties
appear have switched.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183770 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoOptimize WeakBlock's "reap" and "visit" operations.
akling@apple.com [Mon, 4 May 2015 20:42:10 +0000 (20:42 +0000)]
Optimize WeakBlock's "reap" and "visit" operations.
<https://webkit.org/b/144585>

Reviewed by Geoffrey Garen.

WeakBlock was using Heap::isLive(void*) to determine the liveness of weak pointees.
That function was really written with conservative roots marking in mind, and will do a bunch
of sanity and bounds checks.

For weaks, we know that the pointer will have been a valid cell pointer into a block
of appropriate cell size, so we can skip a lot of the checks.

We now keep a pointer to the MarkedBlock in each WeakBlock. That way we no longer have to do
MarkedBlock::blockFor() for every single cell when iterating.

Note that a WeakBlock's MarkedBlock pointer becomes null when we detach a logically empty
WeakBlock from its WeakSet and transfer ownership to Heap. At that point, the block will never
be pointing to any live cells, and the only operation that will run on the block is sweep().

Finally, MarkedBlock allows liveness queries in three states: Marked, Retired, and Allocated.
In Allocated state, all cells are reported as live. This state will reset to Marked on next GC.
This patch uses that knowledge to avoid branching on the MarkedBlock's state for every cell.

This is a ~3x speedup of visit() and a ~2x speedup of reap() on Dromaeo/dom-modify, netting
what looks like a 1% speedup locally.

* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::MarkedBlock): Pass *this to the WeakSet's ctor.

* heap/MarkedBlock.h:
(JSC::MarkedBlock::isMarkedOrNewlyAllocated): Added, stripped-down version of isLive() when the
block's state is known to be either Marked or Retired.

(JSC::MarkedBlock::isAllocated): Added, tells WeakBlock it's okay to skip reap/visit since isLive()
would report that all cells are live anyway.

* heap/WeakBlock.cpp:
(JSC::WeakBlock::create):
(JSC::WeakBlock::WeakBlock): Stash a MarkedBlock* on each WeakBlock.

(JSC::WeakBlock::visit):
(JSC::WeakBlock::reap): Optimized these two to avoid a bunch of pointer arithmetic and branches.

* heap/WeakBlock.h:
(JSC::WeakBlock::disconnectMarkedBlock): Added.
* heap/WeakSet.cpp:
(JSC::WeakSet::sweep): Call the above when removing a WeakBlock from WeakSet and transferring
ownership to Heap until it can die peacefully.

(JSC::WeakSet::addAllocator):
* heap/WeakSet.h:
(JSC::WeakSet::WeakSet): Give WeakSet a MarkedBlock& for passing on to WeakBlocks.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183769 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Allow closing and reopening the Debugger tab
timothy@apple.com [Mon, 4 May 2015 20:36:31 +0000 (20:36 +0000)]
Web Inspector: Allow closing and reopening the Debugger tab
https://bugs.webkit.org/show_bug.cgi?id=144536

Reviewed by Joseph Pecoraro.

* UserInterface/Base/Main.js:
(WebInspector._updateNewTabButtonState):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype.closed):
(WebInspector.DebuggerSidebarPanel.prototype._addIssuesForSourceCode):
(WebInspector.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
(WebInspector.DebuggerSidebarPanel.prototype._resourceAdded):
(WebInspector.DebuggerSidebarPanel.prototype._addResource):
(WebInspector.DebuggerSidebarPanel.prototype._mainResourceChanged):
(WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
(WebInspector.DebuggerSidebarPanel.prototype._addScript):
* UserInterface/Views/DebuggerTabContentView.js:
(WebInspector.DebuggerTabContentView):
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183768 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Mac] Fix build breakage caused by API deprecation
eric.carlson@apple.com [Mon, 4 May 2015 20:36:13 +0000 (20:36 +0000)]
[Mac] Fix build breakage caused by API deprecation
https://bugs.webkit.org/show_bug.cgi?id=144593

* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Suppress warnings.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183767 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoREGRESSION: Web Inspector: FrameTreeElement does not folders properly when loading...
timothy@apple.com [Mon, 4 May 2015 20:34:56 +0000 (20:34 +0000)]
REGRESSION: Web Inspector: FrameTreeElement does not folders properly when loading a page
https://bugs.webkit.org/show_bug.cgi?id=144535

Reviewed by Joseph Pecoraro.

* UserInterface/Views/FolderizedTreeElement.js:
(WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Fix an exception if not in a tree.
(WebInspector.FolderizedTreeElement.prototype.prepareToPopulate):
(WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoREGRESSION (r178156): CSS Parser incorrectly rejects valid calc() in padding-right...
cdumez@apple.com [Mon, 4 May 2015 20:27:50 +0000 (20:27 +0000)]
REGRESSION (r178156): CSS Parser incorrectly rejects valid calc() in padding-right property
https://bugs.webkit.org/show_bug.cgi?id=144584
<rdar://problem/20796829>

Reviewed by Darin Adler.

Source/WebCore:

The CSS parser was rejecting calculated values at parsing time if it
considered the value was negative and the CSS property did not allow
negative values. However, doing so at this point will not always work
because we don't necessarily know the font-size yet (for e.g. for
calc(0.5em - 2px). Also, rejecting negative calculated values is not
the right behavior as the the specification. The specification says
we should clamp:
http://dev.w3.org/csswg/css-values-3/#calc-range

This patch updates validateCalculationUnit() to stop marking the value
as invalid if it is negative. Instead, let the CSSCalcValue's permitted
range clamp the value as needed.

This bug was causing the bottom graphic on aldentrio.com to not be
rendered properly.

Test: fast/css/negative-calc-values.html
      fast/css/padding-calc-value.html

* css/CSSParser.cpp:
(WebCore::CSSParser::validateCalculationUnit):

LayoutTests:

* fast/css/negative-calc-values-expected.txt: Added.
* fast/css/negative-calc-values.html: Added.
Add a layout test that assigns negative calc() values to properties
whose values cannot be negative to verify that values are clamped as
per the specification:
http://dev.w3.org/csswg/css-values-3/#calc-range

* fast/css/padding-calc-value-expected.txt: Added.
* fast/css/padding-calc-value.html: Added.
Add a layout test to test that using calc(.5em - 2px) for padding-right
CSS property works as intended. It used to be resolved as 0px instead
of "2*font-size - 2px".

* fast/css/text-shadow-calc-value-expected.txt:
* fast/css/text-shadow-calc-value.html:
Update test to match what the specification says:
http://dev.w3.org/csswg/css-values-3/#calc-range
"width: calc(5px - 10px);" is equivalent to "width: 0px;" since widths
smaller than 0px are not allowed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183765 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Allow closing and reopening the Timelines tab
timothy@apple.com [Mon, 4 May 2015 20:22:55 +0000 (20:22 +0000)]
Web Inspector: Allow closing and reopening the Timelines tab
https://bugs.webkit.org/show_bug.cgi?id=144520

Reviewed by Joseph Pecoraro.

* UserInterface/Base/Main.js:
(WebInspector._updateNewTabButtonState):
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager): No need for a delay now. Call reset().
(WebInspector.TimelineManager.prototype.reset):
(WebInspector.TimelineManager.delayedWork): Deleted.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView):
(WebInspector.ContentBrowserTabContentView.prototype.closed):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype.closed): Added. Fixed leak.
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.closed): Added. Fixed leak.
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView): Added Timelines.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.closed): Added. Fixed leak.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.closed): Added. Fixed leak.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.closed):
* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView.prototype.closed): Deleted. Made generic
in ContentBrowserTabContentView.prototype.closed.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser.prototype._tabBarItemSelected): Fix a potential exception
when selectedTabBarItem is null.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.closed):
(WebInspector.TimelineSidebarPanel._recordingCreated): Call _addRecording.
(WebInspector.TimelineSidebarPanel._addRecording): Added.
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183764 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAllocation sinking is prohibiting the creation of phis between a Phantom object and...
basile_clement@apple.com [Mon, 4 May 2015 20:11:58 +0000 (20:11 +0000)]
Allocation sinking is prohibiting the creation of phis between a Phantom object and its materialization
https://bugs.webkit.org/show_bug.cgi?id=144587

Rubber stamped by Filip Pizlo.

When sinking object allocations, we ensure in
determineMaterializationPoints that whenever an allocation is
materialized on a path to a block, it is materialized in all such
paths. Thus when running the SSA calculator to place Phis in
placeMaterializationPoints, we can't encounter a situation where some
Upsilons are referring to a materialization while others are referring
to the phantom object.

This replaces the code that was adding a materialization late in
placeMaterializationPoints to handle that case by an assertion that it
does not happen, which will make
https://bugs.webkit.org/show_bug.cgi?id=143073 easier to implement.

* dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183763 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Switching recordings in the Timeline navigation bar is broken
timothy@apple.com [Mon, 4 May 2015 19:33:38 +0000 (19:33 +0000)]
Web Inspector: Switching recordings in the Timeline navigation bar is broken
https://bugs.webkit.org/show_bug.cgi?id=144519

Reviewed by Joseph Pecoraro.

* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._hierarchicalPathComponentWasSelected): Use revealAndSelect
on the TreeElement instead of showing the representedObject directly. This fixes an exception in
TimelineRecordingContentView where it wouldn't be initialized with the TimelineSidebarPanel extra argument.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.get visibleDuration): Fix an annoying assert. We show the view
early in construction, before it is in the document. Future updateLayout calls work and fix this.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype.shown): Call _currentContentViewDidChange
to trigger the sidebar to update when this recording view is shown.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._recordingsTreeElementSelected): Moved code from here...
(WebInspector.TimelineSidebarPanel.prototype._recordingSelected): ... to here. Take two different paths
to state restoration here. If the view existed before, use its state. If now, use the current state that
is captured by the cookie logic and explicitly restore it.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183762 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed gardening. Fix lint error on mac-wk1.
joepeck@webkit.org [Mon, 4 May 2015 19:28:23 +0000 (19:28 +0000)]
Unreviewed gardening. Fix lint error on mac-wk1.

* platform/mac-wk1/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183761 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agostorage/indexeddb/mozilla/cursor-update-updates-indexes.html is flaky
ap@apple.com [Mon, 4 May 2015 19:27:14 +0000 (19:27 +0000)]
storage/indexeddb/mozilla/cursor-update-updates-indexes.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=144590

* platform/mac-wk2/TestExpectations: Marking as such.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183760 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoExtending undefined in class syntax should throw a TypeError
rniwa@webkit.org [Mon, 4 May 2015 19:23:24 +0000 (19:23 +0000)]
Extending undefined in class syntax should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=144284

Reviewed by Darin Adler.

Source/JavaScriptCore:

The bug was caused by op_eq_null evaluating to true when compared to undefined.
Explicitly check op_eq_undefined first to detect the case where we're extending undefined.

We also had bogus test cases checked in class-syntax-extends.html. This patch also fixes them.

* bytecompiler/NodesCodegen.cpp:
(JSC::ClassExprNode::emitBytecode):

LayoutTests:

Fixed the expectation for extending undefined and removed irrelevant test cases for extending undefined
since we'll never get to instantiate these classes now.

* js/class-syntax-extends-expected.txt:
* js/script-tests/class-syntax-extends.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183759 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoES6 classes: Invalid test for constructor property
rniwa@webkit.org [Mon, 4 May 2015 19:22:38 +0000 (19:22 +0000)]
ES6 classes: Invalid test for constructor property
https://bugs.webkit.org/show_bug.cgi?id=144278

Reviewed by Darin Adler.

Fixed the test. The constructors of two distinct classes should definitely be distinct.

* js/class-syntax-default-constructor-expected.txt:
* js/script-tests/class-syntax-default-constructor.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183758 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agonew super should be a syntax error
rniwa@webkit.org [Mon, 4 May 2015 19:21:28 +0000 (19:21 +0000)]
new super should be a syntax error
https://bugs.webkit.org/show_bug.cgi?id=144282

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Disallow "new super" as ES6 spec doesn't allow this.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseMemberExpression):

LayoutTests:

Rebaselined the test.

* js/class-syntax-super-expected.txt:
* js/script-tests/class-syntax-super.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183757 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoSkip fast/images/animated-gif-body-outside-viewport.html on Windows. It
simon.fraser@apple.com [Mon, 4 May 2015 19:17:34 +0000 (19:17 +0000)]
Skip fast/images/animated-gif-body-outside-viewport.html on Windows. It
started failing after r183732, but like the other fast/images/animated-gif* tests,
it's sensitive to window display timing. These tests were already skipped for Mac
WK1, probably because we disable window autodisplay on the Mac.

* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183756 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoNetwork Cache: Support time based cache clearing
antti@apple.com [Mon, 4 May 2015 18:51:36 +0000 (18:51 +0000)]
Network Cache: Support time based cache clearing
https://bugs.webkit.org/show_bug.cgi?id=144568
<rdar://problem/19769820>

Reviewed by Andreas Kling.

Support clearing cache entries newer than given time only.

* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::deleteDumpFile):
(WebKit::NetworkCache::Storage::traverse):

    Also fix thread safety of traverse handler function.

(WebKit::NetworkCache::Cache::clear):

    Also add completion handler to support the API properly.

* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::clear):
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::clearNSURLCache):

    Factor to a function.

(WebKit::NetworkProcess::clearDiskCache):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183755 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoJSCallbackObject does not maintain symmetry between accesses for getOwnPropertySlot...
saambarati1@gmail.com [Mon, 4 May 2015 18:47:33 +0000 (18:47 +0000)]
JSCallbackObject does not maintain symmetry between accesses for getOwnPropertySlot and put
https://bugs.webkit.org/show_bug.cgi?id=144265

Reviewed by Geoffrey Garen.

JSCallbackObject will defer to a parent's implementation of getOwnPropertySlot
for a static function if the parent has that property slot. JSCallbackObject::put
did not maintain this symmetry of also calling ::put on the parent if the parent
has the property. We should ensure that this symmetry exists.

* API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::put):
* API/tests/testapi.c:
* API/tests/testapi.js:
(globalStaticFunction2):
(this.globalStaticFunction2):
(iAmNotAStaticFunction):
(this.iAmNotAStaticFunction):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183754 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMake ExecState::vm() branchless in release builds.
akling@apple.com [Mon, 4 May 2015 18:45:40 +0000 (18:45 +0000)]
Make ExecState::vm() branchless in release builds.
<https://webkit.org/b/144586>

Reviewed by Geoffrey Garen.

Avoid null checking the ExecState's callee() before getting the
VM from it. The code was already dereferencing it anyway, since we
know it's not gonna be null.

* runtime/JSCellInlines.h:
(JSC::ExecState::vm):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183753 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoObject allocation not sinking properly through CheckStructure
basile_clement@apple.com [Mon, 4 May 2015 18:37:58 +0000 (18:37 +0000)]
Object allocation not sinking properly through CheckStructure
https://bugs.webkit.org/show_bug.cgi?id=144465

Reviewed by Filip Pizlo.

Currently, sinking an allocation through a CheckStructure will
completely ignore all structure checking, which is obviously wrong.

A CheckStructureImmediate node type was present for that purpose, but
the CheckStructures were not properly replaced.  This ensures that
CheckStructure nodes are replaced by CheckStructureImmediate nodes when
sunk through, and that structure checking happens correctly.

* dfg/DFGNode.h:
(JSC::DFG::Node::convertToCheckStructureImmediate): Added.
(JSC::DFG::Node::hasStructureSet):
* dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::promoteSunkenFields):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCheckStructure):
(JSC::FTL::LowerDFGToLLVM::compileCheckStructureImmediate):
(JSC::FTL::LowerDFGToLLVM::checkStructure):
* tests/stress/sink_checkstructure.js: Added.
(foo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183752 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Mac] Show wireless playback placard even when an element has custom controls
eric.carlson@apple.com [Mon, 4 May 2015 18:26:00 +0000 (18:26 +0000)]
[Mac] Show wireless playback placard even when an element has custom controls
https://bugs.webkit.org/show_bug.cgi?id=144548

Reviewed by Brent Fulgham.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.shouldHaveAnyUI): Return true when playing to wireless target.
(Controller.prototype.reconnectControls): Add controls when playing to wireless target.
(Controller.prototype.setPlaying): Return early when there is no 'controls' attribute.
(Controller.prototype.showControls): Ditto.
(Controller.prototype.updateWirelessPlaybackStatus): Call updateBase when playing to wireless
target to ensure that controls have been set up.
(Controller.prototype.handleWirelessPlaybackChange): Call reconnectControls when playing
to wireless target when there is no 'controls' attribute.
(Controller.prototype.showInlinePlaybackPlaceholderOnly): New.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Call configureMediaControls.
(WebCore::HTMLMediaElement::configureMediaControls): Require controls when playing
to wireless target.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Remove some unhelpful, noisy, logging.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183751 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFixed the build.
mitz@apple.com [Mon, 4 May 2015 18:24:19 +0000 (18:24 +0000)]
Fixed the build.

* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Moved off of a deprecated
method to a non-deprecated equivalent.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183750 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoREGRESSION(r183570): jslib-traverse-jquery is 22% slower
ggaren@apple.com [Mon, 4 May 2015 17:27:34 +0000 (17:27 +0000)]
REGRESSION(r183570): jslib-traverse-jquery is 22% slower
https://bugs.webkit.org/show_bug.cgi?id=144476

Reviewed by Sam Weinig.

jslib-traverse-jquery is now 31% faster than its unregressed baseline.

The jQuery algorithm for sorting DOM nodes is so pathologically slow that,
to my knowledge, the topic of how to optimize it is not covered in any
literature about sorting.

On the slowest jQuery sorting test -- prevAll -- our new
Array.prototype.sort, compared to its predecessor, performed 12% fewer
comparisons and requireed 10X less overhead per comparison. Yet, it was
slower.

It was slower because it inadvertantly increased the average cost of the
comparison function by 2X. jQuery uses compareDocumentPosition to compare
DOM nodes, and compareDocumentPosition(a, b) is O(N) in the distance
required to traverse backwards from b to a. In prevAll, we encounter the
worst case for merge sort of compareDocumentPosition: A long list of DOM
nodes in mostly reverse order. In this case, merge sort will sequentially
compareDocumentPosition(a, b), where a is not reachable backwards from
b, and therefore compareDocumentPosition will traverse the whole sibling
list.

The solution is simple enough: Call compareDocumentPosition(b, a) instead.

This is a pretty silly thing to do, but it is harmless, and jQuery is
popular, so let's do it.

We do not risk suffering the same problem in reverse when sorting a long
list of DOM nodes in forward order. (We still have a 37% speedup on the
nextAll benchmark.) The reason is that merge sort performs 2X fewer
comparisons when the list is already sorted, so we can worry less about
the cost of each comparison.

A fully principled soultion to this problem would probably do something
like Python's timsort, which special-cases ordered ranges to perform
only O(n) comparisons. But that would contradict our original
goal of just having something simple that works.

Another option is for elements to keep a compareDocumentPosition cache,
like a node list cache, which allows you to determine the absolute
position of a node using a hash lookup. I will leave this as an exercise
for kling.

* builtins/Array.prototype.js:
(sort.merge): Compare in an order that is favorable to a comparator
that calls compareDocumentPosition.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183749 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[CSS Box Alignment] Upgrade justify-content parsing to CSS3 Box Alignment spec.
jfernandez@igalia.com [Mon, 4 May 2015 17:25:21 +0000 (17:25 +0000)]
[CSS Box Alignment] Upgrade justify-content parsing to CSS3 Box Alignment spec.
https://bugs.webkit.org/show_bug.cgi?id=144442

Reviewed by David Hyatt.

Upgrade the justify-content property to the last CSS3 Box
Alignment specification. It defines a different enumeration for
Positional and Distribution alignment, which requires changes in
the FlexibleBox implementation.

Source/WebCore:

A new parsing function has been implemented to replace the basic
keyword IDs validation. Because of the complexity of the new
values, a new CSSPrimitiveValue derived class has been defined
which simplifies considerably the parsing logic.

We will follow the same approach than for Self Alignment, defining
a single class to hold all the related alignment data. This makes
possible to use a StyleBuilderConverter function instead of custom
builder functions for these properties.

Test: css3/parse-justify-content.html

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::resolveContentAlignmentAuto):
(WebCore::valueForContentPositionAndDistributionWithOverflowAlignment):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::valueForItemPositionWithOverflowAlignment): Deleted.
* css/CSSContentDistributionValue.cpp: Added.
(WebCore::CSSContentDistributionValue::CSSContentDistributionValue):
(WebCore::CSSContentDistributionValue::~CSSContentDistributionValue):
(WebCore::CSSContentDistributionValue::customCSSText):
(WebCore::CSSContentDistributionValue::equals):
* css/CSSContentDistributionValue.h: Added.
(WebCore::CSSContentDistributionValue::create):
(WebCore::CSSContentDistributionValue::distribution):
(WebCore::CSSContentDistributionValue::position):
(WebCore::CSSContentDistributionValue::overflow):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
(WebCore::isContentDistributionKeyword):
(WebCore::isContentPositionKeyword):
(WebCore::isAlignmentOverflowKeyword):
(WebCore::CSSParser::parseContentDistributionOverflowPosition):
(WebCore::CSSParser::parseItemPositionOverflowPosition):
(WebCore::CSSParser::parseLegacyPosition): Deleted.
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ContentPosition):
(WebCore::CSSPrimitiveValue::operator ContentDistributionType):
(WebCore::CSSPrimitiveValue::operator EFlexDirection): Deleted.
* css/CSSPropertyNames.in:
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
(WebCore::CSSValue::isContentDistributionValue):
(WebCore::CSSValue::isWebKitCSSFilterValue): Deleted.
* css/CSSValueKeywords.in:
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertContentAlignmentData):
(WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): Deleted.
* rendering/RenderFlexibleBox.cpp:
(WebCore::initialJustifyContentOffset):
(WebCore::justifyContentSpaceBetweenChildren):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
* rendering/RenderFullScreen.cpp:
(WebCore::createFullScreenStyle):
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
(WebCore::RenderMathMLScripts::fixAnonymousStyles):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleContentAlignmentData.h: Added.
(WebCore::StyleContentAlignmentData::StyleContentAlignmentData):
(WebCore::StyleContentAlignmentData::setPosition):
(WebCore::StyleContentAlignmentData::setDistribution):
(WebCore::StyleContentAlignmentData::setOverflow):
(WebCore::StyleContentAlignmentData::position):
(WebCore::StyleContentAlignmentData::distribution):
(WebCore::StyleContentAlignmentData::overflow):
(WebCore::StyleContentAlignmentData::operator==):
(WebCore::StyleContentAlignmentData::operator!=):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

Some minor changes in some Flexbox related test cases for adapting
them to the new parsing logic. New layout tests, not Flexbox
specific, to verify the parsing of the new values.

* css3/flexbox/css-properties.html:
* css3/parse-justify-content-expected.txt: Added.
* css3/parse-justify-content.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183748 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[WinCairo] Compile error in sharedEGLDisplay() method.
peavo@outlook.com [Mon, 4 May 2015 16:22:23 +0000 (16:22 +0000)]
[WinCairo] Compile error in sharedEGLDisplay() method.
https://bugs.webkit.org/show_bug.cgi?id=144563

Reviewed by Alex Christensen.

The PlatformDisplay type is undefined.

* platform/graphics/egl/GLContextEGL.cpp:
(WebCore::sharedEGLDisplay):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183747 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[WTF] Remove Functional.h inclusions
zandobersek@gmail.com [Mon, 4 May 2015 15:35:25 +0000 (15:35 +0000)]
[WTF] Remove Functional.h inclusions
https://bugs.webkit.org/show_bug.cgi?id=144400

Reviewed by Darin Adler.

Source/WebCore:

Remove unnecessary inclusions of the <wtf/Functional.h> header in WebCore.

* Modules/mediastream/MediaStreamTrack.cpp:
* Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:
* Modules/mediastream/UserMediaRequest.cpp:
* page/scrolling/ScrollingTree.h:
* page/scrolling/ios/ScrollingCoordinatorIOS.mm:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
* platform/MemoryPressureHandler.cpp:
* platform/UserActivity.h: Include the <objc/objc.h> header that was previously
indirectly included through Functional.h.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
* platform/mac/SoftLinking.h: Unconditionally include the <objc/runtime.h> header
that was previously included for the Mac port through Functional.h.

Source/WebKit2:

Remove unnecessary inclusions of the <wtf/Functional.h> header in WebKit2.

* Platform/IPC/unix/ConnectionUnix.cpp:
* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Import the <objc/runtime.h>
header that was previously indirectly included through the Functional.h header.
* WebProcess/WebPage/DrawingArea.cpp:

Source/WTF:

Remove most of the Functional.h header inclusions. The header is preserved
since it's still used by older versions of Safari, and for the callOnMainThread()
stub in DeprecatedSymbolsUsedBySafari.mm.

* wtf/MainThread.cpp:
* wtf/RunLoop.h:
* wtf/WorkQueue.cpp:
* wtf/WorkQueue.h:
* wtf/efl/DispatchQueueEfl.h:
* wtf/efl/DispatchQueueWorkItemEfl.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183746 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove dead code from TestInvocationCairo.cpp
ossy@webkit.org [Mon, 4 May 2015 15:20:41 +0000 (15:20 +0000)]
Remove dead code from TestInvocationCairo.cpp
https://bugs.webkit.org/show_bug.cgi?id=144564

Reviewed by Gyuyoung Kim.

Only EFL and GTK port use TestInvocationCairo.cpp, there isn't other platform.

* WebKitTestRunner/cairo/TestInvocationCairo.cpp:
(WTR::TestInvocation::dumpPixelsAndCompareWithExpected):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183745 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Streams API] Refactor ReadableJSStream and ReadableStreamJSSource
youenn.fablet@crf.canon.fr [Mon, 4 May 2015 13:30:18 +0000 (13:30 +0000)]
[Streams API] Refactor ReadableJSStream and ReadableStreamJSSource
https://bugs.webkit.org/show_bug.cgi?id=144387

Reviewed by Darin Adler.

Made ReadableStreamReader a private class of ReadableJSStream.
Simplified ReadableJSStream construction so that binding constructor does not need to know about ReadableStreamJSSource.

No functional change, existing tests cover the changes.

* Modules/streams/ReadableStream.h:
(WebCore::ReadableStream::source): Added to implement jsSource(), needed by ReadableJSStream.
* bindings/js/JSReadableStreamCustom.cpp:
(WebCore::constructJSReadableStream): Simplified to not have to handle source creation.
* bindings/js/ReadableStreamJSSource.cpp:
(WebCore::ReadableStreamJSSource::globalObject): Helper function to be used in other future methods.
(WebCore::ReadableStreamJSSource::start):
(WebCore::ReadableJSStream::create):
(WebCore::ReadableJSStream::createReader):
(WebCore::ReadableJSStream::jsSource):
(WebCore::ReadableJSStream::Reader::create):
(WebCore::ReadableJSStream::Reader::Reader):
* bindings/js/ReadableStreamJSSource.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183744 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Add libnotify in gtk install-dependencies
commit-queue@webkit.org [Mon, 4 May 2015 11:20:12 +0000 (11:20 +0000)]
[GTK] Add libnotify in gtk install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=144379

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-05-04
Reviewed by Csaba Osztrogonác.

* gtk/install-dependencies:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183743 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove move-js-headers.sh
ossy@webkit.org [Mon, 4 May 2015 10:04:37 +0000 (10:04 +0000)]
Remove move-js-headers.sh
https://bugs.webkit.org/show_bug.cgi?id=144323

Reviewed by Daniel Bates.

move-js-headers.sh was only used by the Wx port, which has been removed from trunk long ago.

* move-js-headers.sh: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183742 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[cmake] Disable GNU Gold linker on Cortex A53
ossy@webkit.org [Mon, 4 May 2015 08:51:25 +0000 (08:51 +0000)]
[cmake] Disable GNU Gold linker on Cortex A53
https://bugs.webkit.org/show_bug.cgi?id=144382

Reviewed by Carlos Garcia Campos.

* Source/cmake/OptionsCommon.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183741 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[ARM] Don't compare unsigned chars to EOF (-1)
ossy@webkit.org [Mon, 4 May 2015 08:42:28 +0000 (08:42 +0000)]
[ARM] Don't compare unsigned chars to EOF (-1)
https://bugs.webkit.org/show_bug.cgi?id=144439

Reviewed by Geoffrey Garen.

Source/WebCore:

* platform/linux/MemoryPressureHandlerLinux.cpp:
(WebKit::nextToken): Don't cast return value of fgetc() to char.

Source/WebKit2:

* Shared/linux/WebMemorySamplerLinux.cpp:
(WebKit::nextToken): Don't cast return value of fgetc() to char.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183740 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[CSS Grid Layout] Wrong computed style for named grid lines in implicit tracks
rego@igalia.com [Mon, 4 May 2015 08:37:03 +0000 (08:37 +0000)]
[CSS Grid Layout] Wrong computed style for named grid lines in implicit tracks
https://bugs.webkit.org/show_bug.cgi?id=144449

Reviewed by Sergio Villar Senin.

Source/WebCore:

If there're implicit tracks then trackPositions is bigger than
trackSizes, so we need to use the proper index to append the trailing
<ident>s in valueForGridTrackList().

Test: fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackList):

LayoutTests:

* fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt: Added.
* fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183739 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[cmake] Fix generate-js-builtins related incremental build issue
ossy@webkit.org [Mon, 4 May 2015 08:22:19 +0000 (08:22 +0000)]
[cmake] Fix generate-js-builtins related incremental build issue
https://bugs.webkit.org/show_bug.cgi?id=144094

Reviewed by Michael Saboff.

* CMakeLists.txt: Generated JSCBuiltins.<cpp|h> should depend on Source/JavaScriptCore/builtins directory.
Pass input directory to generate-js-builtins instead of Source/JavaScriptCore/builtins/*.js.
* DerivedSources.make:
Pass input directory to generate-js-builtins instead of Source/JavaScriptCore/builtins/*.js.
* generate-js-builtins: Accept input files and input directory too.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183738 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove NetworkResourceLoadScheduler
antti@apple.com [Mon, 4 May 2015 07:52:00 +0000 (07:52 +0000)]
Remove NetworkResourceLoadScheduler
https://bugs.webkit.org/show_bug.cgi?id=144550

Reviewed by Sam Weinig.

It doesn't really do anything.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getNetworkProcessStatistics):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::networkResourceLoadScheduler): Deleted.
* NetworkProcess/NetworkResourceLoadScheduler.cpp: Removed.
* NetworkProcess/NetworkResourceLoadScheduler.h: Removed.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::cleanup):
* NetworkProcess/NetworkResourceLoader.h:
(WebKit::NetworkResourceLoader::create):
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::initializeNetworkSettings):

    Moved from NetworkResourceLoadSchedulerMac.mm.

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm: Removed.
* NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp: Removed.
* WebKit2.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183737 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCrash in SandboxExtension::consume when uploading iWork -tef documents to iCloud
ap@apple.com [Mon, 4 May 2015 05:16:00 +0000 (05:16 +0000)]
Crash in SandboxExtension::consume when uploading iWork -tef documents to iCloud
https://bugs.webkit.org/show_bug.cgi?id=144509
rdar://problem/18731910

Reviewed by Daniel Bates.

No test, because testRunner.beginDragWithFiles doesn't work in WKTR, and making
it work is hard.

* Shared/BlobDataFileReferenceWithSandboxExtension.cpp:
(WebKit::BlobDataFileReferenceWithSandboxExtension::prepareForFileAccess):
(WebKit::BlobDataFileReferenceWithSandboxExtension::revokeFileAccess):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183736 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoPurge PassRefPtr in WebCore/html
gyuyoung.kim@webkit.org [Mon, 4 May 2015 01:20:48 +0000 (01:20 +0000)]
Purge PassRefPtr in WebCore/html
https://bugs.webkit.org/show_bug.cgi?id=144543

Reviewed by Andreas Kling.

Change PassRefPtr in create() factory functions with Ref. In some functions,
it returns RefPtr when it might have a chance to return nullptr.

No new tests, no behavior changes.

* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::sendError):
* html/DOMFormData.h:
(WebCore::DOMFormData::create):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):
* html/HTMLMediaElement.h:
* html/MediaError.h:
(WebCore::MediaError::create):
* html/MediaKeyError.h:
(WebCore::MediaKeyError::create):
* html/canvas/CanvasGradient.h:
* html/canvas/CanvasProxy.cpp:
(WebCore::CanvasProxy::create):
* html/canvas/CanvasProxy.h:
* html/canvas/WebGLActiveInfo.h:
(WebCore::WebGLActiveInfo::create):
* html/canvas/WebGLContextAttributes.h:
* html/canvas/WebGLContextGroup.h:
* html/canvas/WebGLProgram.h:
* html/canvas/WebGLQuery.h:
* html/canvas/WebGLRenderbuffer.h:
* html/canvas/WebGLSampler.h:
* html/canvas/WebGLShader.h:
* html/canvas/WebGLShaderPrecisionFormat.h:
* html/canvas/WebGLSync.h:
* html/canvas/WebGLTexture.h:
* html/canvas/WebGLTransformFeedback.h:
* html/canvas/WebGLUniformLocation.h:
* html/canvas/WebGLVertexArrayObjectOES.h:
* html/shadow/ImageControlsRootElement.cpp:
(WebCore::ImageControlsRootElement::maybeCreate):
* html/shadow/ImageControlsRootElement.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::create):
(WebCore::MediaControlPanelEnclosureElement::create):
(WebCore::MediaControlOverlayEnclosureElement::create):
(WebCore::MediaControlTimelineContainerElement::create):
(WebCore::MediaControlVolumeSliderContainerElement::create):
(WebCore::MediaControlStatusDisplayElement::create):
(WebCore::MediaControlPanelMuteButtonElement::create):
(WebCore::MediaControlVolumeSliderMuteButtonElement::create):
(WebCore::MediaControlPlayButtonElement::create):
(WebCore::MediaControlOverlayPlayButtonElement::create):
(WebCore::MediaControlSeekForwardButtonElement::create):
(WebCore::MediaControlSeekBackButtonElement::create):
(WebCore::MediaControlRewindButtonElement::create):
(WebCore::MediaControlReturnToRealtimeButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsTrackListElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlPanelVolumeSliderElement::create):
(WebCore::MediaControlFullscreenVolumeSliderElement::create):
(WebCore::MediaControlFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
(WebCore::MediaControlTimeRemainingDisplayElement::create):
(WebCore::MediaControlCurrentTimeDisplayElement::create):
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControlsApple.h:
(WebCore::MediaControlsAppleEventListener::create):
* html/shadow/MeterShadowElement.h:
(WebCore::MeterInnerElement::create):
(WebCore::MeterBarElement::create):
(WebCore::MeterValueElement::create):
* html/shadow/ProgressShadowElement.h:
(WebCore::ProgressInnerElement::create):
(WebCore::ProgressBarElement::create):
(WebCore::ProgressValueElement::create):
* html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::ImageControlsRootElement::maybeCreate):
* html/track/TextTrackCueList.h:
(WebCore::TextTrackCueList::create):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::create):
* html/track/VTTCue.h:
(WebCore::VTTCue::create):
* html/track/VTTRegion.h:
* html/track/VideoTrack.h:
* html/track/VideoTrackList.h:
* html/track/WebVTTElement.cpp:
(WebCore::WebVTTElement::create):
* html/track/WebVTTElement.h:
* html/track/WebVTTParser.h:
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerCreateResourceLoader):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183735 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMake some static data const
simon.fraser@apple.com [Sun, 3 May 2015 23:58:44 +0000 (23:58 +0000)]
Make some static data const
https://bugs.webkit.org/show_bug.cgi?id=144552

Reviewed by Andreas Kling.
Source/JavaScriptCore:

Turn characterSetInfo into const data.

* yarr/YarrCanonicalizeUCS2.cpp:
* yarr/YarrCanonicalizeUCS2.h:

Source/WebCore:

Turn baseTable and shiftTable into const data.

* platform/graphics/FormatConverter.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183734 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Exception under ContentViewContainer _disassociateFromContentView
timothy@apple.com [Sun, 3 May 2015 22:55:08 +0000 (22:55 +0000)]
Web Inspector: Exception under ContentViewContainer _disassociateFromContentView
https://bugs.webkit.org/show_bug.cgi?id=144546

Reviewed by Brian Burg.

* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showContentView):
Make sure to pass the ContentView to _disassociateFromContentView. Also negate the result
of the _backForwardList.some(), since we don't want to dissociate if the content view is
still in the back-forward list.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183733 268f45cc-cd09-0410-ab3c-d52691b4dbfc