WebKit-https.git
4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 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

4 years agoAssertion failure (!needsLayout()) loading inkedmag.com
simon.fraser@apple.com [Sun, 3 May 2015 16:10:43 +0000 (16:10 +0000)]
Assertion failure (!needsLayout()) loading inkedmag.com
https://bugs.webkit.org/show_bug.cgi?id=144528
rdar://problem/20788681

Reviewed by Darin Adler.

Source/WebCore:

When animated GIFs get into catch-up mode, which is common on inkedmag.com,
BitmapImage::advanceAnimation() can synchronously call it's observer's
animationAdvanced(). This could cause RenderImage::repaintOrMarkForLayout()
to repaint or mark itself as needing layout in the middle of painting.
If painting multiple tiles, this could occur when painting the first tile,
and then painting the second tile would assert in RenderView::paint().

It's always wrong to synchronously call the observer when advancing
the animation, since this happens when painting, and you can't repaint
when painting. The long comment and call to startAnimation(DoNotCatchUp)
was required to explain and work around this, but it's simpler to just
advance the animation on a zero-delay timer.

Special handling is required for the case where internalAdvanceAnimation()
is catching up, and reaches the end of a non-repeating image; there, we
have to set a flag and do the notify on a zero-delay timer.

Lots of comment cleanup.

Test: fast/images/set-needs-layout-in-painting.html

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::startTimer): Utility to create and start the timer.
(WebCore::BitmapImage::repetitionCount):
(WebCore::BitmapImage::startAnimation): Early return in the DoNotCatchUp clause.
If skipping, and internalAdvanceAnimation() returns false (meaning it must have
reached the end), then queue up a notify. Change the normal behavior to just
start the timer.
(WebCore::BitmapImage::stopAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation): Notify if the flag is set.
* platform/graphics/BitmapImage.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::paint): Add a SetLayoutNeededForbiddenScope to
detect setNeedsLayouts when painting replaced elements, including images.

LayoutTests:

Test that sleeps for a while to force an image into catchup mode.

* fast/images/resources/spinner.gif: Added.
* fast/images/set-needs-layout-in-painting-expected.txt: Added.
* fast/images/set-needs-layout-in-painting.html: Added.

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

4 years ago[GTK][EFL] Unify platform display handling
carlosgc@webkit.org [Sun, 3 May 2015 15:20:34 +0000 (15:20 +0000)]
[GTK][EFL] Unify platform display handling
https://bugs.webkit.org/show_bug.cgi?id=144517

Reviewed by Martin Robinson.

Source/WebCore:

There are several places were we are handling the X display
connection:

- GLContext::sharedX11Display() creates a new connection.
- X11Helper::nativeDisplay() creates a new connection.
- BackingStoreBackendCairoX11 uses the GTK+ shared connection.
- NetscapePlugin::x11HostDisplay() uses the GTK+/ecore shared connection
- The rest of the GTK+ code uses the shared GTK+ connection

And then we also have WaylandDisplay and the code to check if the
current display is wayland or X11.
We could unify all these to share the same connection to reduce
the amount of ifdefs and ensure a single connection. That will
also allow us to use "smart pointers" for the X resources that
need a Display* to be freed.

* PlatformEfl.cmake: Add new files to compilation.
* PlatformGTK.cmake: Move some files to WebCore_SOURCES sinc ethey
don't use GTK+ anymore, and add new files to compilation.
* platform/graphics/GLContext.cpp:
(WebCore::GLContext::cleanupActiveContextsAtExit): Remove the
custom X11 connection.
(WebCore::GLContext::createContextForWindow): Check if the shared
display is Wayland to create a EGL context in such case.
* platform/graphics/PlatformDisplay.cpp: Added.
(WebCore::PlatformDisplay::createPlatformDisplay): Creates the
shared display, using the GTK+/ecore shared connection.
(WebCore::PlatformDisplay::sharedDisplay): Return the shared display.
* platform/graphics/PlatformDisplay.h: Added.
* platform/graphics/egl/GLContextEGL.cpp:
(WebCore::sharedEGLDisplay): Use PlatformDisplay::sharedDisplay()
to get the native display.
(WebCore::GLContextEGL::createPixmapContext): Ditto.
* platform/graphics/glx/GLContextGLX.cpp:
(WebCore::GLContextGLX::createWindowContext): Ditto.
(WebCore::GLContextGLX::createPbufferContext): Ditto.
(WebCore::GLContextGLX::createPixmapContext): Ditto.
(WebCore::GLContextGLX::createContext): Ditto.
(WebCore::GLContextGLX::~GLContextGLX): Ditto.
(WebCore::GLContextGLX::defaultFrameBufferSize): Ditto.
(WebCore::GLContextGLX::makeContextCurrent): Ditto.
(WebCore::GLContextGLX::swapBuffers): Ditto.
(WebCore::GLContextGLX::cairoDevice): Ditto.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext): Ditto.
* platform/graphics/surfaces/glx/X11Helper.cpp:
(WebCore::X11Helper::nativeDisplay): Ditto.
* platform/graphics/wayland/PlatformDisplayWayland.cpp: Renamed from Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp.
(WebCore::PlatformDisplayWayland::globalCallback):
(WebCore::PlatformDisplayWayland::globalRemoveCallback):
(WebCore::PlatformDisplayWayland::create): Renamed instance() as
create() since the single instance is now handled by PlatformDisplay.
(WebCore::PlatformDisplayWayland::PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::createSurface):
(WebCore::PlatformDisplayWayland::createSharingGLContext):
* platform/graphics/wayland/PlatformDisplayWayland.h: Renamed from Source/WebCore/platform/graphics/wayland/WaylandDisplay.h.
* platform/graphics/x11/PlatformDisplayX11.cpp: Added.
(WebCore::PlatformDisplayX11::PlatformDisplayX11):
(WebCore::PlatformDisplayX11::~PlatformDisplayX11):
* platform/graphics/x11/PlatformDisplayX11.h: Added.
* platform/gtk/GtkUtilities.cpp:
(WebCore::getDisplaySystemType): Deleted.
* platform/gtk/GtkUtilities.h:

Source/WebKit2:

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize): Use PlatformDisplay::sharedDisplay()
to checkt the display type.
(webkitWebViewBaseCreateWebPage): Ditto.
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::createBackend): Pass the native X11 shared
display to BackingStoreBackendCairoX11.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::x11HostDisplay): Return the native X11
shared display.

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

4 years agoUnreviewed. Fix Debug build with NETWORK_CACHE enabled and CACHE_PARTITIONING disabled.
carlosgc@webkit.org [Sun, 3 May 2015 10:14:55 +0000 (10:14 +0000)]
Unreviewed. Fix Debug build with NETWORK_CACHE enabled and CACHE_PARTITIONING disabled.

* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::store):

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

4 years ago[GTK] API tests crashing on debug builds due to extra unref
carlosgc@webkit.org [Sun, 3 May 2015 09:54:35 +0000 (09:54 +0000)]
[GTK] API tests crashing on debug builds due to extra unref
https://bugs.webkit.org/show_bug.cgi?id=144508

Reviewed by Mario Sanchez Prada.

The problem is that we were assuming that when a new DOMWindow is
created, the DOM object cache was notified about the previous
DOMWindow being destroyed before objects for the new DOMWindow are
added to the cache. However, that's not always the case and we
only create a DOMWindowObserver for the first DOMWindow. We need
to keep a pointer to the DOMWindow being observed to clear() the
cache and create a new DOMWindowObserver when it changes in the
Frame.

Fixes crashes in several unit tests in debug builds.

* bindings/gobject/DOMObjectCache.cpp:

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

4 years agoSkip fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html
ap@apple.com [Sun, 3 May 2015 07:48:58 +0000 (07:48 +0000)]
Skip fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html
https://bugs.webkit.org/show_bug.cgi?id=144540

* TestExpectations:

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

4 years agoRemove timer alignment logging that I added earler today.
ap@apple.com [Sun, 3 May 2015 07:13:22 +0000 (07:13 +0000)]
Remove timer alignment logging that I added earler today.

* page/Settings.cpp: (WebCore::Settings::setDOMTimerAlignmentInterval):

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

4 years agoPurge PassRefPtr create() factory functions in html
commit-queue@webkit.org [Sun, 3 May 2015 02:20:17 +0000 (02:20 +0000)]
Purge PassRefPtr create() factory functions in html
https://bugs.webkit.org/show_bug.cgi?id=144522

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2015-05-02
Reviewed by Darin Adler.

Return Ref instead of PassRefPtr in create() factory functions in html, because the factory
can't return null. This patch is a first step to purge in html. Following patch is going to
be uploaded.

No new tests, no behavior changes.

* html/FileInputType.cpp:
(WebCore::UploadButtonElement::create):
(WebCore::UploadButtonElement::createForMultiple):
* html/MediaController.cpp:
(MediaController::create):
* html/MediaController.h:
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::create):
* html/canvas/WebGLBuffer.h:
* html/canvas/WebGLContextAttributes.cpp:
(WebCore::WebGLContextAttributes::create):
* html/canvas/WebGLContextAttributes.h:
* html/canvas/WebGLContextGroup.cpp:
(WebCore::WebGLContextGroup::create):
* html/canvas/WebGLContextGroup.h:
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::create):
* html/canvas/WebGLFramebuffer.h:
* html/canvas/WebGLProgram.cpp:
(WebCore::WebGLProgram::create):
* html/canvas/WebGLProgram.h:
* html/canvas/WebGLQuery.cpp:
(WebCore::WebGLQuery::create):
* html/canvas/WebGLQuery.h:
* html/canvas/WebGLRenderbuffer.cpp:
(WebCore::WebGLRenderbuffer::create):
* html/canvas/WebGLRenderbuffer.h:
* html/canvas/WebGLSampler.cpp:
(WebCore::WebGLSampler::create):
* html/canvas/WebGLSampler.h:
* html/canvas/WebGLShader.cpp:
(WebCore::WebGLShader::create):
* html/canvas/WebGLShader.h:
* html/canvas/WebGLShaderPrecisionFormat.cpp:
(WebCore::WebGLShaderPrecisionFormat::create):
* html/canvas/WebGLShaderPrecisionFormat.h:
* html/canvas/WebGLSync.cpp:
(WebCore::WebGLSync::create):
* html/canvas/WebGLSync.h:
* html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::create):
* html/canvas/WebGLTexture.h:
* html/canvas/WebGLTransformFeedback.cpp:
(WebCore::WebGLTransformFeedback::create):
* html/canvas/WebGLTransformFeedback.h:
* html/canvas/WebGLUniformLocation.cpp:
(WebCore::WebGLUniformLocation::create):
* html/canvas/WebGLUniformLocation.h:
* html/canvas/WebGLVertexArrayObject.cpp:
(WebCore::WebGLVertexArrayObject::create):
* html/canvas/WebGLVertexArrayObject.h:
* html/canvas/WebGLVertexArrayObjectOES.cpp:
(WebCore::WebGLVertexArrayObjectOES::create):
* html/canvas/WebGLVertexArrayObjectOES.h:

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

4 years agoStyle recalc always causes detach from shared StyleRareNonInheritedData.
akling@apple.com [Sun, 3 May 2015 00:53:18 +0000 (00:53 +0000)]
Style recalc always causes detach from shared StyleRareNonInheritedData.
<https://webkit.org/b/144530>

Reviewed by Darin Adler.

StyleResolver::adjustStyleForMaskImages() was always calling RenderStyle::ensureMaskLayers()
when we were in style recalc. This caused the RenderStyle to COW off from the previously
shared StyleRareNonInheritedData even if nothing actually changes.

This patch adds an early return to adjustStyleForMaskImages() when the previous style had
no mask images. Further refinements could be made, but this covers the most common case where
we don't have any mask images at all.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustStyleForMaskImages):

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

4 years agoTypeOf should be fast
fpizlo@apple.com [Sun, 3 May 2015 00:15:27 +0000 (00:15 +0000)]
TypeOf should be fast
https://bugs.webkit.org/show_bug.cgi?id=144396

Reviewed by Geoffrey Garen.

Adds comprehensive support for fast typeof to the optimizing JITs. Calls into the runtime
are only used for very exotic objects - they must have either the MasqueradesAsUndefined or
TypeOfShouldCallGetCallData type flags set. All other cases are handled inline.

This means optimizing IsObjectOrNull, IsFunction, and TypeOf - all node types that used to
rely heavily on C++ calls to fulfill their function.

Because TypeOf is now so fast, we no longer need to do any speculations on this node.

In the FTL, we take this further by querying AI for each branch in the TypeOf decision tree.
This means that if the TypeOf is dominated by any type checks, we will automatically prune
out cases that are redundant.

This patch anticipates the addition of SwitchTypeOf or something like that. So, the TypeOf
code generation is designed to be reusable.

This is a speed-up on most typeof benchmarks. But, it is a slow-down on benchmarks that take
the exotic call trap hook. That hook is now in a deeper slow path than before.

* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize): TypeOf was pure all along, but we failed to realize this.
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGHeapLocation.cpp:
(WTF::printInternal):
* dfg/DFGHeapLocation.h:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileIsObjectOrNull):
(JSC::DFG::SpeculativeJIT::compileIsFunction):
(JSC::DFG::SpeculativeJIT::compileTypeOf):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::blessedBooleanResult):
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileIsObjectOrNull):
(JSC::FTL::LowerDFGToLLVM::compileIsFunction):
(JSC::FTL::LowerDFGToLLVM::compileTypeOf):
(JSC::FTL::LowerDFGToLLVM::buildTypeOf): Reusable TypeOf building for the FTL.
(JSC::FTL::LowerDFGToLLVM::isExoticForTypeof):
* ftl/FTLSwitchCase.h:
(JSC::FTL::SwitchCase::SwitchCase):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfNotEqual):
(JSC::AssemblyHelpers::branchIfEqual):
(JSC::AssemblyHelpers::branchIfNumber):
(JSC::AssemblyHelpers::branchIfNotNumber):
(JSC::AssemblyHelpers::branchIfBoolean):
(JSC::AssemblyHelpers::branchIfNotBoolean):
(JSC::AssemblyHelpers::boxBooleanPayload):
(JSC::AssemblyHelpers::boxBoolean):
(JSC::AssemblyHelpers::emitTypeOf): Reusable TypeOf building for assembly JITs.
* jit/JITOperations.h:
* runtime/SmallStrings.h:
(JSC::SmallStrings::typeString):
* runtime/TypeofType.cpp: Added.
(WTF::printInternal):
* runtime/TypeofType.h: Added.
* tests/stress/type-of-functions-and-objects.js: Modified this test to give more comprehensive feedback.

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

4 years agoUnreviewed, rolling out r183722.
commit-queue@webkit.org [Sat, 2 May 2015 23:06:08 +0000 (23:06 +0000)]
Unreviewed, rolling out r183722.
https://bugs.webkit.org/show_bug.cgi?id=144534

Made all the tests assert (Requested by ap on #webkit).

Reverted changeset:

"Generated static StringImpls should have static flag set."
https://bugs.webkit.org/show_bug.cgi?id=144516
http://trac.webkit.org/changeset/183722

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

4 years agoGenerated static StringImpls should have static flag set.
akling@apple.com [Sat, 2 May 2015 20:55:59 +0000 (20:55 +0000)]
Generated static StringImpls should have static flag set.
<https://webkit.org/b/144516>

Reviewed by Darin Adler.

Discovered this while tracking down a string ref leak. Turns out that the strings
generated by StaticString.pm were not getting the static flag set on them.

The only practical difference from this AFAICT is that now the garbage collector
will correctly see that these strings have no extra memory cost to worry about.

* wtf/text/StringImpl.h:

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

4 years agoWeb Inspector: Relocate the selected range details in the Rendering Frames timeline UI
commit-queue@webkit.org [Sat, 2 May 2015 19:26:21 +0000 (19:26 +0000)]
Web Inspector: Relocate the selected range details in the Rendering Frames timeline UI
https://bugs.webkit.org/show_bug.cgi?id=144346

This patch removes the details sidebar used by the rendering frames view, and relocates the frame selection
chart the Timelines navigation sidebar.

Patch by Matt Baker <mattbaker@apple.com> on 2015-05-02
Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
RenderingFramesDetailsSidebar is no longer used.

* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._loadNewRecording):
Reordered timelines.

* UserInterface/Main.html:
Removed references to deleted files.

* UserInterface/Views/ChartDetailsSectionLegendRow.js: Removed.
No longer used. The legend is now a child element of the chart.

* UserInterface/Views/ChartDetailsSectionRow.css:
(.details-section > .content > .group > .row.chart > .title):
(.details-section > .content > .group > .row.chart > .chart-content):
(.details-section > .content > .group > .row.chart > .chart-content > .legend):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label > .color-swatch):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .value):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > *):
New chart and legend styles.

* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow):
(WebInspector.ChartDetailsSectionRow.prototype.set title):
(WebInspector.ChartDetailsSectionRow.prototype.set innerLabel):
(WebInspector.ChartDetailsSectionRow.prototype.set innerRadius):
(WebInspector.ChartDetailsSectionRow.prototype.get total):
(WebInspector.ChartDetailsSectionRow.set data):
(WebInspector.ChartDetailsSectionRow.prototype.set data):
(WebInspector.ChartDetailsSectionRow.prototype._createLegendItem):
(WebInspector.ChartDetailsSectionRow.prototype._refresh):

A few changes have been made to the appearance and behavior of the chart. A chart title can now be set,
and the legend appears to the right of the chart rather than in a separate details group.

The chart now has better support for adding empty data points, ensuring that a meaningful legend is shown even
when no rendering frames are selected in the timeline overview graph. This ensures that the task associated
with each colored frame segment is apparent, without having to make a selection or record a timeline.

* UserInterface/Views/RenderingFrameDetailsSidebarPanel.js: Removed.
No longer used.

* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
Reduced maximum timeline height to increase the height of short frames.

* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.shown):
(WebInspector.RenderingFrameTimelineView.prototype.hidden):
RenderingFramesDetailsSidebar is no longer used.

* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
Improved logic for updating the frame selection.

* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > div.header):
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > .content > .group > .row.chart):
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > .content > .group > .row.chart > .chart-content > .chart):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content): Deleted.
New chart styles.

* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.shown):
(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
(WebInspector.TimelineSidebarPanel.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.get else):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.getSelectedRecords.get var):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.getSelectedRecords):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.durationForRecordType):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.TimelineSidebarPanel.set contentTreeOutlineLabel): Deleted.
(WebInspector.TimelineSidebarPanel._recordingCreated.set this): Deleted.
(WebInspector.TimelineSidebarPanel.get this): Deleted.
Moved the selected frames chart to the navigation sidebar.

* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView):
RenderingFramesDetailsSidebar is no longer used.

* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Removed references to deleted files.

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

4 years agofast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemit...
ap@apple.com [Sat, 2 May 2015 19:19:07 +0000 (19:19 +0000)]
fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

Unreviewed, will roll out soon.

Added some temporary logging to better see if alignment is indeed the culprit.

* page/Settings.cpp: (WebCore::Settings::setDOMTimerAlignmentInterval):

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

4 years agoUnreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=144527.
fpizlo@apple.com [Sat, 2 May 2015 18:36:24 +0000 (18:36 +0000)]
Unreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=144527.

* dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::attemptHoist):

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

4 years agoUnreviewed, add FIXMEs referencing https://bugs.webkit.org/show_bug.cgi?id=144524 and
fpizlo@apple.com [Sat, 2 May 2015 17:33:36 +0000 (17:33 +0000)]
Unreviewed, add FIXMEs referencing https://bugs.webkit.org/show_bug.cgi?id=144524 and
https://bugs.webkit.org/show_bug.cgi?id=144525.

* dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::attemptHoist):
* dfg/DFGPhantomInsertionPhase.cpp:

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

4 years agoUse Ref instead of PassRefPtr in WebCore/svg
commit-queue@webkit.org [Sat, 2 May 2015 15:41:48 +0000 (15:41 +0000)]
Use Ref instead of PassRefPtr in WebCore/svg
https://bugs.webkit.org/show_bug.cgi?id=144479

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2015-05-02
Reviewed by Darin Adler.

Remove remained PassRefPtr in svg.

No new tests, no behavior changes.

* svg/SVGFontFaceSrcElement.cpp:
(WebCore::SVGFontFaceSrcElement::srcValue):
* svg/SVGFontFaceSrcElement.h:
* svg/properties/SVGPropertyInfo.h:

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

4 years agoSmall cleanup in BitmapImage
simon.fraser@apple.com [Sat, 2 May 2015 15:32:10 +0000 (15:32 +0000)]
Small cleanup in BitmapImage
https://bugs.webkit.org/show_bug.cgi?id=144515

Reviewed by Darin Adler.

Use an enum for the internalAdvanceAnimation() argument, with a default.

Wrap the clearing of the timer in a clearTimer() function, called from
stopAnimation(). This fixes the jarring reading of BitmapImage::internalAdvanceAnimation(),
which used to start by calling stopAnimation().

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::clearTimer):
(WebCore::BitmapImage::startAnimation):
(WebCore::BitmapImage::stopAnimation):
(WebCore::BitmapImage::advanceAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.h:

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

4 years agoStatic property hashtable should only lookup with non-symbol key
utatane.tea@gmail.com [Sat, 2 May 2015 15:28:24 +0000 (15:28 +0000)]
Static property hashtable should only lookup with non-symbol key
https://bugs.webkit.org/show_bug.cgi?id=144438

Reviewed by Darin Adler.

Static property hashtable compares the Identifier's uid
with the normal C string without interning it.
So this comparison is performed in their contents.
As the result, in this comparison, symbol-ness is not considered.

So if accidentally the hash collision occur with the symbol and the string
and they have the same contents, the hash table entry is looked up incorrectly.

* runtime/Lookup.h:
(JSC::HashTable::entry):

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

4 years agoWeb Inspector: Allow closing and reopening the Resources tab
timothy@apple.com [Sat, 2 May 2015 09:41:26 +0000 (09:41 +0000)]
Web Inspector: Allow closing and reopening the Resources tab
https://bugs.webkit.org/show_bug.cgi?id=144513

Reviewed by Joseph Pecoraro.

* UserInterface/Base/Main.js:
(WebInspector._updateNewTabButtonState):
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.closed):
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView):

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

4 years agoWeb Inspector: REGRESSION: Resources section doesn't update after changes are made...
timothy@apple.com [Sat, 2 May 2015 09:36:12 +0000 (09:36 +0000)]
Web Inspector: REGRESSION: Resources section doesn't update after changes are made to a local file
https://bugs.webkit.org/show_bug.cgi?id=144512

The content view was being associated with the wrong represented object. This caused the code to use
the old main resource when showing the frame again.

Reviewed by Joseph Pecoraro.

* UserInterface/Base/Main.js:
(WebInspector._frameWasAdded.delayedWork):
(WebInspector._frameWasAdded):
With the changes in ResourceSidebarPanel, we need to delay showing the frame.

* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView.prototype.showRepresentedObject):
Avoid restoring state by calling cancelRestoringState(). Not fully related to this bug,
but it was preventing testing the cases.

* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.contentViewForRepresentedObject):
This fixes the bug. Don't associate the content view with the Frame, associate it with
the Resource that we actually show.

* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.cancelRestoringState): Added.

* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel): Remove unused _waitingForInitialMainFrame.
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.ResourceSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
Clean up how we show the main frame in the sidebar. This was a two step mess before.

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

4 years agoAvoid compositing updates after style recalcs which have no compositing implications
simon.fraser@apple.com [Sat, 2 May 2015 02:32:29 +0000 (02:32 +0000)]
Avoid compositing updates after style recalcs which have no compositing implications
https://bugs.webkit.org/show_bug.cgi?id=144502

Reviewed by Darin Adler.

Source/WebCore:

After r183461, we have reliable information about whether a style change with zero
diff can be reliably ignored. Use that information to track whether a given
recalcStyle() does anything which should force a compositing update.

This eliminates up to 40% of the post-recalcStyle compositing updates on some pages.

Add Internals API to test.

Test: compositing/updates/no-style-change-updates.html

* dom/Document.cpp:
(WebCore::Document::recalcStyle): Tell the FrameView we're going to recalc style.
* page/FrameView.cpp:
(WebCore::FrameView::willRecalcStyle): Pass it on to the compositor.
(WebCore::FrameView::updateCompositingLayersAfterStyleChange): Move the code
that was here into RenderLayerCompositor::didRecalcStyleWithNoPendingLayout().
* page/FrameView.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::willRecalcStyle): Reset the m_layerNeedsCompositingUpdate flag.
(WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout): Bail on the update if
no layers changed.
(WebCore::RenderLayerCompositor::updateCompositingLayers): Logging. Increment m_compositingUpdateCount,
which is used for testing.
(WebCore::RenderLayerCompositor::layerStyleChanged): Set the m_layerNeedsCompositingUpdate flag.
(WebCore::RenderLayerCompositor::startTrackingCompositingUpdates): Reset the counter.
(WebCore::RenderLayerCompositor::compositingUpdateCount):
* rendering/RenderLayerCompositor.h:
* testing/Internals.cpp:
(WebCore::Internals::startTrackingCompositingUpdates):
(WebCore::Internals::compositingUpdateCount):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Use internals.compositingUpdateCount() to see if various document mutations
cause a compositing update. Doesn't actually detect any behavior change
from this patch, but seems useful in general.

* compositing/updates/no-style-change-updates-expected.txt: Added.
* compositing/updates/no-style-change-updates.html: Added.

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

4 years agoClass syntax should allow string and numeric identifiers for method names
rniwa@webkit.org [Sat, 2 May 2015 02:23:01 +0000 (02:23 +0000)]
Class syntax should allow string and numeric identifiers for method names
https://bugs.webkit.org/show_bug.cgi?id=144254

Reviewed by Darin Adler.

Source/JavaScriptCore:

Added the support for string and numeric identifiers in class syntax.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionInfo): Instead of using ConstructorKind to indicate whether we're
inside a class or not, use the newly added SuperBinding argument instead. ConstructorKind is now None
outside a class constructor as it should be.
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass): No longer expects an identifier at the beginning of every class
element to allow numeric and string method names. For both of those method names, parse it here instead
of parseFunctionInfo since it doesn't support either type. Also pass in SuperBinding::Needed.
(JSC::Parser<LexerType>::parsePropertyMethod): Call parseFunctionInfo with SuperBinding::NotNeeded since
this function is never used to parse a class method.
(JSC::Parser<LexerType>::parseGetterSetter): Pass in superBinding argument to parseFunctionInfo.
(JSC::Parser<LexerType>::parsePrimaryExpression): Call parseFunctionInfo with SuperBinding::NotNeeded.
* parser/Parser.h:
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createProperty):

LayoutTests:

Added a test and rebaselined other tests per syntax error message change.

* js/class-syntax-declaration-expected.txt:
* js/class-syntax-expression-expected.txt:
* js/class-syntax-string-and-numeric-names-expected.txt: Added.
* js/class-syntax-string-and-numeric-names.html: Added.
* js/class-syntax-super-expected.txt:
* js/script-tests/class-syntax-declaration.js:
* js/script-tests/class-syntax-expression.js:
* js/script-tests/class-syntax-string-and-numeric-names.js: Added.
* js/script-tests/class-syntax-super.js:

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

4 years agoFTL should use AI more
fpizlo@apple.com [Sat, 2 May 2015 01:59:46 +0000 (01:59 +0000)]
FTL should use AI more
https://bugs.webkit.org/show_bug.cgi?id=144500

Reviewed by Oliver Hunt.

This makes our type check folding even more comprehensive by ensuring that even if the FTL
decides to emit some checks, it will still do another query to the abstract interpreter to
see if the check is necessary. This helps with cases where we decided early on to speculate
one way, but later proved a more specific type of the value in question, and the constant
folder didn't catch it.

This also makes it more natural to query the abstract interpreter. For example, if you just
want the proven type, you can now say provenType(node) or provenType(edge).

* dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::alreadyChecked):
* dfg/DFGArrayMode.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileBooleanToNumber):
(JSC::FTL::LowerDFGToLLVM::compileToThis):
(JSC::FTL::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::LowerDFGToLLVM::compileArithPow):
(JSC::FTL::LowerDFGToLLVM::compileArithNegate):
(JSC::FTL::LowerDFGToLLVM::compileGetById):
(JSC::FTL::LowerDFGToLLVM::compileCheckArray):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::compileToStringOrCallStringConstructor):
(JSC::FTL::LowerDFGToLLVM::compileToPrimitive):
(JSC::FTL::LowerDFGToLLVM::compileStringCharAt):
(JSC::FTL::LowerDFGToLLVM::compileStringCharCodeAt):
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::LowerDFGToLLVM::compileSwitch):
(JSC::FTL::LowerDFGToLLVM::compileIsBoolean):
(JSC::FTL::LowerDFGToLLVM::compileIsNumber):
(JSC::FTL::LowerDFGToLLVM::compileIsString):
(JSC::FTL::LowerDFGToLLVM::compileIsObject):
(JSC::FTL::LowerDFGToLLVM::compileInstanceOf):
(JSC::FTL::LowerDFGToLLVM::numberOrNotCellToInt32):
(JSC::FTL::LowerDFGToLLVM::baseIndex):
(JSC::FTL::LowerDFGToLLVM::compareEqObjectOrOtherToObject):
(JSC::FTL::LowerDFGToLLVM::typedArrayLength):
(JSC::FTL::LowerDFGToLLVM::boolify):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::lowInt32):
(JSC::FTL::LowerDFGToLLVM::lowInt52):
(JSC::FTL::LowerDFGToLLVM::lowCell):
(JSC::FTL::LowerDFGToLLVM::lowBoolean):
(JSC::FTL::LowerDFGToLLVM::lowDouble):
(JSC::FTL::LowerDFGToLLVM::isCellOrMisc):
(JSC::FTL::LowerDFGToLLVM::isNotCellOrMisc):
(JSC::FTL::LowerDFGToLLVM::isNumber):
(JSC::FTL::LowerDFGToLLVM::isNotNumber):
(JSC::FTL::LowerDFGToLLVM::isNotCell):
(JSC::FTL::LowerDFGToLLVM::isCell):
(JSC::FTL::LowerDFGToLLVM::isNotMisc):
(JSC::FTL::LowerDFGToLLVM::isMisc):
(JSC::FTL::LowerDFGToLLVM::isNotBoolean):
(JSC::FTL::LowerDFGToLLVM::isBoolean):
(JSC::FTL::LowerDFGToLLVM::isNotOther):
(JSC::FTL::LowerDFGToLLVM::isOther):
(JSC::FTL::LowerDFGToLLVM::isProvenValue):
(JSC::FTL::LowerDFGToLLVM::isObject):
(JSC::FTL::LowerDFGToLLVM::isNotObject):
(JSC::FTL::LowerDFGToLLVM::isNotString):
(JSC::FTL::LowerDFGToLLVM::isString):
(JSC::FTL::LowerDFGToLLVM::isFunction):
(JSC::FTL::LowerDFGToLLVM::isNotFunction):
(JSC::FTL::LowerDFGToLLVM::speculateObjectOrOther):
(JSC::FTL::LowerDFGToLLVM::speculateStringObjectForStructureID):
(JSC::FTL::LowerDFGToLLVM::speculateNotStringVar):
(JSC::FTL::LowerDFGToLLVM::abstractValue):
(JSC::FTL::LowerDFGToLLVM::provenType):
(JSC::FTL::LowerDFGToLLVM::provenValue):
(JSC::FTL::LowerDFGToLLVM::abstractStructure):

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

4 years agoCreate a set of initial scroll snap point tests
bfulgham@apple.com [Sat, 2 May 2015 01:44:54 +0000 (01:44 +0000)]
Create a set of initial scroll snap point tests
https://bugs.webkit.org/show_bug.cgi?id=142358

Reviewed by Simon Fraser.

* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html: Added.

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

4 years agoReproducible crash removing name attribute from <img> node
akling@apple.com [Sat, 2 May 2015 01:29:29 +0000 (01:29 +0000)]
Reproducible crash removing name attribute from <img> node
<https://webkit.org/b/144371>
<rdar://problem/17198583>

Reviewed by Darin Adler.

Source/WebCore:

The problem here was with HTMLImageElement::getNameAttribute(), which relies
on Element::hasName() to avoid slow attribute lookups when the attribute
is already known not to be present. Unfortunately hasName() uses an ElementData
flag that wasn't getting updated until after the call to parseAttribute().

This patch fixes the issue by moving the code that updates the hasName() flag
before the parseAttribute() virtual dispatch.

Test: fast/dom/HTMLImageElement/remove-name-id-attribute-from-image.html

* dom/Element.cpp:
(WebCore::Element::attributeChanged):

LayoutTests:

* fast/dom/HTMLImageElement/remove-name-id-attribute-from-image-expected.txt: Added.
* fast/dom/HTMLImageElement/remove-name-id-attribute-from-image.html: Added.

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

4 years agoPostpone caption style sheet creation
eric.carlson@apple.com [Sat, 2 May 2015 01:11:28 +0000 (01:11 +0000)]
Postpone caption style sheet creation
https://bugs.webkit.org/show_bug.cgi?id=144499

Reviewed by Simon Fraser.
Source/WebCore:

Generating and inserting the caption user style sheet is expensive so don't do it until
we see a text track, and only do it for the first video element in a PageGroup.

Test: media/track/track-user-stylesheet.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument): Only register for caption preferences
changes if we have done so before.
(WebCore::HTMLMediaElement::unregisterWithDocument): Only unregister for caption preferences
changes if we registered for them.
(WebCore::HTMLMediaElement::addTextTrack): Register for caption preference changes.
* html/HTMLMediaElement.h:

* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges): Only
generate the style sheet when called for the first time.

LayoutTests:

* media/track/track-user-stylesheet-expected.txt: Added.
* media/track/track-user-stylesheet.html: Added.

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

4 years ago[iOS] Scrubber display is broken if the buffered range is empty
dino@apple.com [Sat, 2 May 2015 00:55:03 +0000 (00:55 +0000)]
[iOS] Scrubber display is broken if the buffered range is empty
https://bugs.webkit.org/show_bug.cgi?id=144511

Reviewed by Eric Carlson.

Make sure that if video.buffered returns an empty list, we
still draw the scrubber background correctly.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.drawTimelineBackground): Ensure that buffered
is always at least as big as the current time.

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

4 years agoMedia control volume slider should be vertical to avoid flickering issues.
roger_fong@apple.com [Sat, 2 May 2015 00:47:04 +0000 (00:47 +0000)]
Media control volume slider should be vertical to avoid flickering issues.
https://bugs.webkit.org/show_bug.cgi?id=144496.
<rdar://problem/20451328>

Reviewed by Darin Adler.

* Modules/mediacontrols/mediaControlsApple.css:
Resize and reposition the volume box so that it does not have to rotated via a transform.
(audio::-webkit-media-controls-panel):
(audio::-webkit-media-controls-panel .volume-box): Also set overflow: hidden so we can't interact
     with the volume slider while the volume box is hidden.
(audio::-webkit-media-controls-panel .volume-box:active):
Rotate and position the volume slider via transforms. Make sure it's not transformed in the fullscreen controls.
(video::-webkit-media-controls-volume-slider):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider):

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

4 years agoExpand test infrastructure to support scrolling tests (Part 4): Scroll Snap Support
bfulgham@apple.com [Sat, 2 May 2015 00:39:37 +0000 (00:39 +0000)]
Expand test infrastructure to support scrolling tests (Part 4): Scroll Snap Support
https://bugs.webkit.org/show_bug.cgi?id=144482

Reviewed by Simon Fraser.

New tests will be landed in a second patch.

The new WheelEventTestTriggers do not work properly with scroll snap points, because some test deferral notifications
need to be triggered for state changes on the scrolling thread. This required the following changes:
1. A flag indicating that we want to know about WheelEvent state changes needed to be propagated to the scrolling thread,
   so that tests could be deferred until Scrolling thread rubberband or scroll-snap animations had completed.
2. The ScrollingNodeID needed to be used for registering and clearing deferrals.
3. The scrolling thread needed a way to dispatch messages to the main thread indicating that we should (or should not)
   defer tests due to scrolling actions.

Note that a future patch will extend this support to include the RemoteScrollingTree.

* page/WheelEventTestTrigger.cpp:
(WebCore::WheelEventTestTrigger::deferTestsForReason): Added some logging features.
(WebCore::WheelEventTestTrigger::removeTestDeferralForReason): Ditto.
(WebCore::dumpState): Helper function for logging test deferral state.
(WebCore::WheelEventTestTrigger::triggerTestTimerFired): Added some logging features.
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Make sure that the scrolling thread is
told that it needs to send scrolling state back to the main thread. Only do this if we are in testing mode.
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): The scrollingNodeID should be
used as the identifier for this operation, not the page address.
(WebCore::AsyncScrollingCoordinator::deferTestsForReason): Added. receives messages from the scrolling thread
and notifies the testing infrastructure.
(WebCore::AsyncScrollingCoordinator::removeTestDeferralForReason): Ditto.
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): When cloning the ScrollingStateScrollingNode,
include the testing mode state.
(WebCore::ScrollingStateScrollingNode::setExpectsWheelEventTestTrigger): Added.
* page/scrolling/ScrollingStateScrollingNode.h:
(WebCore::ScrollingStateScrollingNode::expectsWheelEventTestTrigger): Added.
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::deferTestsForReason): Added stub.
(WebCore::ScrollingTree::removeTestDeferralForReason): Ditto.
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::deferTestsForReason): Added. Dispatches messages from the scrolling thread to the
main thread.
(WebCore::ThreadedScrollingTree::removeTestDeferralForReason): Ditto.
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac): Initialize testing state flag.
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren): If the 'ExpectsWheelEventTestTrigger' flag is
set, update local state.
(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent): If we are testing, and the wheel event should be handled
asynchronously, tell the testing infrastructure we need to wait for the thread state to sync.
(WebCore::ScrollingTreeFrameScrollingNodeMac::deferTestsForReason): Added. Notifies test system we need to defer tests
until we notify them. Also used by the ScrollController during animations.
(WebCore::ScrollingTreeFrameScrollingNodeMac::removeTestDeferralForReason): Ditto.
* platform/Logging.h:
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::deferTestsForReason): Added. Used by ScrollController during animation. This updates the
testing infrastructure directly, since it is running in the same process and main thread.
(WebCore::ScrollAnimator::removeTestDeferralForReason): Ditto.
* platform/ScrollAnimator.h:
* platform/cocoa/ScrollController.h:
(WebCore::ScrollControllerClient::deferTestsForReason): Change client API.
(WebCore::ScrollControllerClient::removeTestDeferralForReason): Ditto.
(WebCore::ScrollControllerClient::testTrigger): Deleted.
* platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::startSnapRubberbandTimer): Use new client API.
(WebCore::ScrollController::stopSnapRubberbandTimer): Ditto.
(WebCore::ScrollController::startScrollSnapTimer): Ditto.
(WebCore::ScrollController::stopScrollSnapTimer): Ditto.

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

4 years agocheck-webkit-style fails due to system pylint
commit-queue@webkit.org [Sat, 2 May 2015 00:23:58 +0000 (00:23 +0000)]
check-webkit-style fails due to system pylint
https://bugs.webkit.org/show_bug.cgi?id=144360

Patch by Mario Sanchez Prada <mario@endlessm.com> on 2015-05-01
Reviewed by Darin Adler.

Make sure that the directory containing third party autoinstalled modules
is at the beginning of the search path, to avoid conflicts with other
versions of the same modules installed in the system (e.g. pylint).

* Scripts/webkitpy/thirdparty/__init__.py: Prepend the autoinstalled
modules directory to sys.path, instead of appending it.

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

4 years agoInline some small methods instead of them being EXPORT'd and out of line
commit-queue@webkit.org [Fri, 1 May 2015 23:59:58 +0000 (23:59 +0000)]
Inline some small methods instead of them being EXPORT'd and out of line
https://bugs.webkit.org/show_bug.cgi?id=144498

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-05-01
Reviewed by Darin Adler.

* page/Page.cpp:
(WebCore::Page::testTrigger): Deleted.
(WebCore::Page::clearTrigger): Deleted.
(WebCore::Page::expectsWheelEventTriggers): Deleted.
* page/Page.h:
(WebCore::Page::testTrigger):
(WebCore::Page::clearTrigger):
(WebCore::Page::expectsWheelEventTriggers):

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

4 years agoUnreviewed, updated my list of email addresses.
mario@webkit.org [Fri, 1 May 2015 23:52:06 +0000 (23:52 +0000)]
Unreviewed, updated my list of email addresses.

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

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

4 years agoSource/WebCore:
mitz@apple.com [Fri, 1 May 2015 23:47:03 +0000 (23:47 +0000)]
Source/WebCore:
WebCore part of <rdar://problem/8636045> Back/forward navigation to an error page in Safari breaks the back-forward list
https://bugs.webkit.org/show_bug.cgi?id=144501

Reviewed by Darin Adler.

Test: TestWebKitAPI/Tests/WebKit2Cocoa/LoadAlternateHTMLString.mm

Normally, loading substitute data (such as an error page) creates a new back-forward list
item. FrameLoader has a mechanism that detects when a substitute data load occurs during
handling of a provisional load error and prevents the creation of a new back-forwards list
item in that case if the unreachable URL is the same as the failing provisional URL. This
mechanism was broken in WebKit2, where handling the provisional load error is asynchronous.

The fix is to capture some state (namely, the failing provisional URL) when dispatching the
load error and allow it to be restored when loading the substitute data.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader): Removed initialization of
m_delegateIsHandlingProvisionalLoadError.
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL): Instead of checking
m_delegateIsHandlingProvisionalLoadError and if true using the provisional document loader’s
URL, check m_provisionalLoadErrorBeingHandledURL.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Instead of checking and setting
m_delegateIsHandlingProvisionalLoadError, use m_provisionalLoadErrorBeingHandledURL.
* loader/FrameLoader.h:
(WebCore::FrameLoader::provisionalLoadErrorBeingHandledURL): Added this getter. The client
can call this from its override of dispatchDidFailProvisionalLoad and store the result.
(WebCore::FrameLoader::setProvisionalLoadErrorBeingHandledURL): Added this setter. The
client can call this prior to loading substitute data if it’s done as part of handling a
previously-dispatched didFailProvisionalLoad.

Source/WebKit2:
WebKit2 part of <rdar://problem/8636045> Back/forward navigation to an error page in Safari breaks the back-forward list
https://bugs.webkit.org/show_bug.cgi?id=144501

Reviewed by Darin Adler.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadAlternateHTMLString): If this is called during
didFailProvisionalLoadForFrame, send back the provisional URL captured at the time of
failure.
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame): Get the provisioinal URL and keep
it in new member variable m_failingProvisionalLoadURL for the duration of the client’s
handling of this message.
* UIProcess/WebPageProxy.h:

* UIProcess/WebPageProxy.messages.in: Added provisionalURL parameter to
DidFailProvisionalLoadForFrame.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): Send the URL for this error
to the UI process.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadAlternateHTMLString): Temporarily restore the loader’s state to
reflect the provisional load error being handled.

* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Added provisionalLoadErrorURL parameter to
LoadAlternateHTMLString.

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

4 years agoUSE(...) macro should expect unprefixed variables
mrobinson@webkit.org [Fri, 1 May 2015 23:38:18 +0000 (23:38 +0000)]
USE(...) macro should expect unprefixed variables
https://bugs.webkit.org/show_bug.cgi?id=144454

Reviewed by Daniel Bates.

.:

* Source/cmake/OptionsAppleWin.cmake: Replace all occurrences WTF_USE with USE.
* Source/cmake/OptionsEfl.cmake: Ditto.
* Source/cmake/OptionsGTK.cmake: Ditto.
* Source/cmake/OptionsMac.cmake: Ditto.
* Source/cmake/OptionsWinCairo.cmake: Ditto.
* Source/cmake/WebKitFeatures.cmake: No longer expose WTF_USE when encountering
USE variables.

Source/JavaScriptCore:

* CMakeLists.txt: Replace all occurrences WTF_USE with USE.

Source/WebCore:

* DerivedSources.make: Replace all occurrences WTF_USE with USE.
* PlatformEfl.cmake: Ditto.
* PlatformGTK.cmake: Ditto.
* bindings/objc/PublicDOMInterfaces.h: Ditto.
* config.h: Ditto.
* crypto/mac/SerializedCryptoKeyWrapMac.mm: Ditto.
* page/AlternativeTextClient.h: Ditto.
* platform/efl/FileSystemEfl.cpp: Ditto.
(WebCore::fileSystemRepresentation): Ditto.
* platform/graphics/cg/ImageBufferDataCG.h: Ditto.
* platform/graphics/cg/PDFDocumentImage.h: Ditto.
* platform/ios/wak/WAKAppKitStubs.h: Ditto.
* rendering/RenderLayerCompositor.cpp: Ditto.

Source/WebKit/cf:

* WebCoreSupport/WebInspectorClientCF.cpp: Replace all occurrences WTF_USE with USE.

Source/WebKit/mac:

* Misc/WebDownload.h: Replace all occurrences WTF_USE with USE.

Source/WebKit2:

* Shared/API/c/WKBase.h: Replace all occurrences WTF_USE with USE.
* WebKit2.xcodeproj/project.pbxproj: Ditto.

Source/WTF:

* wtf/Assertions.cpp: Replace all occurrences WTF_USE with USE.
* wtf/Platform.h: Replace all occurrences WTF_USE with USE. Modify the USE
macro to look for unprefixed variables.
* wtf/WTFThreadData.h: Replace all occurrences WTF_USE with USE.

Tools:

* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Replace all occurrences WTF_USE with USE.
* DumpRenderTree/config.h: Ditto.
* TestWebKitAPI/config.h: Ditto.

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

4 years ago[OS X] Text dilation parameters are not restored after being set
mmaxfield@apple.com [Fri, 1 May 2015 23:25:41 +0000 (23:25 +0000)]
[OS X] Text dilation parameters are not restored after being set
https://bugs.webkit.org/show_bug.cgi?id=144507
<rdar://problem/19446938>

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

Source/WebCore:

Create a RAII class who is in charge of saving, applying, and restoring dilation parameters. Use this class
around our text drawing routines.

Note that this migrates our use of CTFontSetRenderingParameters() to CTFontSetRenderingStyle().

Test: fast/text/dilation-save-restore.html

* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::RenderingStyleSaver::RenderingStyleSaver):
(WebCore::RenderingStyleSaver::~RenderingStyleSaver):
(WebCore::showGlyphsWithAdvances):
* platform/spi/cg/CoreGraphicsSPI.h:
* platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

See below.

* fast/text/dilation-save-restore-expected.html: Added. Never sets dilation parameters, draws two strings.
* fast/text/dilation-save-restore.html: Added. Draws one string without dilation, sets the dilation, then draws a
second string. If saving and restoring doesn't work correctly, these two lines will appear different.

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

4 years agoFix typo bug in Speedometer/resources/main.js
commit-queue@webkit.org [Fri, 1 May 2015 22:53:09 +0000 (22:53 +0000)]
Fix typo bug in Speedometer/resources/main.js
https://bugs.webkit.org/show_bug.cgi?id=144504

Patch by Dewei Zhu <dewei_zhu@apple.com> on 2015-05-01
Reviewed by Ryosuke Niwa.

* Speedometer/resources/main.js: Fix typo.
(window.benchmarkClient.totalTimeInDisplayUnit):

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

4 years agoString#startsWith/endsWith/includes don't handle Infinity position/endPosition args...
commit-queue@webkit.org [Fri, 1 May 2015 22:44:30 +0000 (22:44 +0000)]
String#startsWith/endsWith/includes don't handle Infinity position/endPosition args correctly
https://bugs.webkit.org/show_bug.cgi?id=144314

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-01
Reviewed by Darin Adler.

Source/JavaScriptCore:

Fixing handling of Infinity position args, per
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.includes
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith

* runtime/StringPrototype.cpp:
(JSC::clampInt32):
(JSC::stringProtoFuncStartsWith):
(JSC::stringProtoFuncEndsWith):
(JSC::stringProtoFuncIncludes):

LayoutTests:

* js/script-tests/string-includes.js:
* js/string-includes-expected.txt:

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

4 years agoUnreviewed, rolling out r183687.
commit-queue@webkit.org [Fri, 1 May 2015 22:38:02 +0000 (22:38 +0000)]
Unreviewed, rolling out r183687.
https://bugs.webkit.org/show_bug.cgi?id=144505

Appears to have caused assertions (Requested by ap on
#webkit).

Reverted changeset:

"Media control volume slider is opaque."
https://bugs.webkit.org/show_bug.cgi?id=144470
http://trac.webkit.org/changeset/183687

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

4 years agoMath.abs() returns negative
basile_clement@apple.com [Fri, 1 May 2015 22:35:36 +0000 (22:35 +0000)]
Math.abs() returns negative
https://bugs.webkit.org/show_bug.cgi?id=137827

Reviewed by Michael Saboff.

Math.abs() on doubles was mistakenly assumed by the DFG AI to be the
identity function.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* tests/stress/math-abs-positive.js: Added, was previously failing.
(foo):

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

4 years agoFunction allocation sinking shouldn't be performed on singleton functions
basile_clement@apple.com [Fri, 1 May 2015 22:33:32 +0000 (22:33 +0000)]
Function allocation sinking shouldn't be performed on singleton functions
https://bugs.webkit.org/show_bug.cgi?id=144166

Reviewed by Geoffrey Garen.

Function allocations usually are free of any other side effects, but
this is not the case for allocations performed while the underlying
FunctionExecutable is still a singleton (as this allogation will fire
watchpoints invalidating code that depends on it being a singleton).
As the object allocation sinking phase assumes object allocation is
free of side-effects, sinking these allocations is not correct.

This also means that when materializing a function allocation on OSR
exit, that function's executable will never be a singleton, and we don't have
to worry about its watchpoint, allowing us to use
JSFunction::createWithInvalidatedRellocationWatchpoint instead of
JSFunction::create.

* dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):

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

4 years agoStop using deprecated AVKit SPI for enter and exit fullscreen.
commit-queue@webkit.org [Fri, 1 May 2015 21:18:05 +0000 (21:18 +0000)]
Stop using deprecated AVKit SPI for enter and exit fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=144493

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-05-01
Reviewed by Jer Noble.

Replace
    -enterFullScreenWithCompletionHandler:
    -exitFullScreenWithCompletionHandler:
with
    -enterFullScreenAnimated:completionHandler:
    -exitFullScreenAnimated:completionHandler:

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard):
(WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal):
* platform/spi/cocoa/AVKitSPI.h:

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

4 years agoUnreviewed. Add myself as a commiter in contributors.json.
basile_clement@apple.com [Fri, 1 May 2015 21:07:09 +0000 (21:07 +0000)]
Unreviewed. Add myself as a commiter in contributors.json.

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

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

4 years agoEnable ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX by default on all ports (Windows was missed)
commit-queue@webkit.org [Fri, 1 May 2015 20:54:51 +0000 (20:54 +0000)]
Enable ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX by default on all ports (Windows was missed)
https://bugs.webkit.org/show_bug.cgi?id=144495

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-05-01
Reviewed by Csaba Osztrogonác.

* wtf/FeatureDefines.h:
This covers all ports that haven't defined the flag otherwise.

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

4 years agoMedia control volume slider is opaque.
roger_fong@apple.com [Fri, 1 May 2015 20:11:02 +0000 (20:11 +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.

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

4 years agoUnreviewed gardening for GTK+.
mrobinson@webkit.org [Fri, 1 May 2015 19:50:31 +0000 (19:50 +0000)]
Unreviewed gardening for GTK+.

* platform/gtk/TestExpectations: Remove some inaccurate missing results
and unskip a passing test.

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

4 years agoUpdate speedometer patch to provide better UI, fix merge result bug and add "Score...
commit-queue@webkit.org [Fri, 1 May 2015 19:42:35 +0000 (19:42 +0000)]
Update speedometer patch to provide better UI, fix merge result bug and add "Score" metric to speedometer benchmark.
https://bugs.webkit.org/show_bug.cgi?id=144487

Patch by Dewei Zhu <dewei_zhu@apple.com> on 2015-05-01
Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.merge): Fix bug.
* Scripts/webkitpy/benchmark_runner/data/patches/Speedometer.patch: Update appearance and add "Score" metric.

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

4 years ago[GTK] accessibility/secure-textfield-title-ui.html is failing
jdiggs@igalia.com [Fri, 1 May 2015 19:39:28 +0000 (19:39 +0000)]
[GTK] accessibility/secure-textfield-title-ui.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98375

Reviewed by Chris Fleizach.

Modify the test to check the childrenCount of the titleUIElement in order
to determine where the element text is exposed. On the Mac, it's exposed
in StaticText children; in ATK, in the element itself. The test was failing
because it assumed the text was in the first child of the element.

* accessibility/secure-textfield-title-ui.html: Modified.
* platform/gtk/TestExpectations: Unskipped the failing test.

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

4 years ago[GTK] REGRESSION(183368): It made editing tests assert
jdiggs@igalia.com [Fri, 1 May 2015 19:37:55 +0000 (19:37 +0000)]
[GTK] REGRESSION(183368): It made editing tests assert
https://bugs.webkit.org/show_bug.cgi?id=144447

Reviewed by Chris Fleizach.

Don't notify platforms of editing actions of type EditActionUnspecified.
If we don't know what the action is, platform accessibility APIs certainly
won't.

Add AXTextEditTypeAttributesChange and AXTextAttributesChanged as catch-alls
for formatting changes. ATK lacks finely-grained signals through which to
specify which text attributes have changed. If other platforms have such
signals, new types can always be added.

Don't post an accessible replacement notification for AXTextEditTypeCut.
The notification is handled by DeleteSelectionCommand. It is possible for
white space to be inserted in preparation for a cut which was triggering
a not-reached assert, but insertion of whitespace in preparation for a
cut does not seem notification-worthy.

Treat AXTextEditTypeDictation the same as other insertion types (insert,
paste, typing) with respect to replacement notifications.

No new tests. The hundreds of editing tests that had been crashing seem sufficient.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::showIntent):
(WebCore::AXObjectCache::textChangeForEditType):
* accessibility/AXObjectCache.h:
* accessibility/AXTextStateChangeIntent.h:
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
(WebCore::AppendNodeCommand::doUnapply):
* editing/DeleteFromTextNodeCommand.cpp:
(WebCore::DeleteFromTextNodeCommand::doApply):
(WebCore::DeleteFromTextNodeCommand::doUnapply):
* editing/EditCommand.cpp:
(WebCore::EditCommand::applyEditType):
(WebCore::EditCommand::unapplyEditType):
* editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doApply):
(WebCore::InsertIntoTextNodeCommand::doUnapply):
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply):
(WebCore::InsertNodeBeforeCommand::doUnapply):
* editing/ReplaceInsertIntoTextNodeCommand.cpp:
(WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange):

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

4 years agoAdd API to disable meta refreshes.
beidson@apple.com [Fri, 1 May 2015 18:19:58 +0000 (18:19 +0000)]
Add API to disable meta refreshes.
<rdar://problem/20333198> and https://bugs.webkit.org/show_bug.cgi?id=144269

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: loader/meta-refresh-disabled.html

* dom/Document.cpp:
(WebCore::Document::processHttpEquiv): Bail early if Settings have meta refreshes disabled.
* page/Settings.in:

Source/WebKit/mac:

Add a preference to enable/disable meta refreshes, enabled by default.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences setMetaRefreshEnabled:]):
(-[WebPreferences metaRefreshEnabled]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add a preference to enable/disable meta refreshes, enabled by default.

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetMetaRefreshEnabled):
(WKPreferencesGetMetaRefreshEnabled):
(WKPreferencesGetIgnoreViewportScalingConstraints): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues): Reset the meta refresh pref between tests.

LayoutTests:

* loader/meta-refresh-disabled-expected.txt: Added.
* loader/meta-refresh-disabled.html: Added.
* loader/resources/notify-done.html: Added.
* platform/win/TestExpectations:

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

4 years agoUnreviewed gardening for WebKitGTK+
mrobinson@webkit.org [Fri, 1 May 2015 17:55:48 +0000 (17:55 +0000)]
Unreviewed gardening for WebKitGTK+

Unskip some passing tests. Add new baselines. Properly organize some
failures in the TestExpectations file.

* platform/gtk/TestExpectations:
* platform/gtk/editing/execCommand/print-expected.png: Added.
* platform/gtk/editing/execCommand/print-expected.txt: Added.
* platform/gtk/fast/attachment/attachment-progress-expected.txt: Added.
* platform/gtk/fast/attachment/attachment-select-on-click-expected.txt: Added.
* platform/gtk/fast/attachment/attachment-select-on-click-inside-user-select-all-expected.txt: Added.
* platform/gtk/fast/attachment/attachment-subtitle-expected.txt: Added.
* platform/gtk/fast/attachment/attachment-title-expected.txt: Added.
* platform/gtk/fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position-expected.txt: Added.
* platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.png: Added.
* platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.txt: Added.
* platform/gtk/fast/multicol/scrolling-column-rules-expected.png: Added.
* platform/gtk/fast/multicol/scrolling-column-rules-expected.txt: Added.
* platform/gtk/printing/allowed-page-breaks-expected.txt: Added.
* platform/gtk/printing/compositing-layer-printing-expected.png: Added.
* platform/gtk/printing/compositing-layer-printing-expected.txt:
* platform/gtk/printing/css2.1/page-break-after-000-expected.txt: Added.
* platform/gtk/printing/css2.1/page-break-after-001-expected.txt: Added.
* platform/gtk/printing/css2.1/page-break-after-002-expected.txt: Added.
* platform/gtk/printing/css2.1/page-break-after-003-expected.txt: Added.
* platform/gtk/printing/css2.1/page-break-after-004-expected.txt: Added.
* platform/gtk/printing/css2.1/page-break-before-000-expected.txt: Added.
* platform/gtk/printing/css2.1/page-break-before-001-expected.txt: Added.
* platform/gtk/printing/css2.1/page-break-before-002-expected.txt: Added.
* platform/gtk/printing/css2.1/page-break-inside-000-expected.txt: Added.
* platform/gtk/printing/iframe-print-expected.png: Added.
* platform/gtk/printing/iframe-print-expected.txt: Added.
* platform/gtk/printing/media-queries-print-expected.png: Added.
* platform/gtk/printing/media-queries-print-expected.txt:
* platform/gtk/printing/no-content-empty-pages-expected.txt: Added.
* platform/gtk/printing/numberOfPages-expected.txt: Added.
* platform/gtk/printing/page-break-after-avoid-expected.txt: Added.
* platform/gtk/printing/page-break-always-expected.txt: Added.
* platform/gtk/printing/page-break-avoid-expected.txt: Added.
* platform/gtk/printing/page-break-before-avoid-expected.txt: Added.
* platform/gtk/printing/page-break-display-none-expected.txt: Added.
* platform/gtk/printing/page-break-inside-avoid-expected.txt: Added.
* platform/gtk/printing/page-break-margin-collapsed-expected.txt: Added.
* platform/gtk/printing/page-break-orphans-and-widows-expected.txt: Added.
* platform/gtk/printing/page-break-orphans-expected.txt: Added.
* platform/gtk/printing/page-break-widows-expected.txt: Added.
* platform/gtk/printing/page-count-layout-overflow-expected.txt: Added.
* platform/gtk/printing/page-count-percentage-height-expected.txt: Added.
* platform/gtk/printing/page-count-relayout-shrink-expected.txt: Added.
* platform/gtk/printing/page-count-with-one-word-expected.txt: Added.
* platform/gtk/printing/page-format-data-display-none-expected.txt: Added.
* platform/gtk/printing/page-format-data-expected.txt: Added.
* platform/gtk/printing/page-rule-css-text-expected.txt: Added.
* platform/gtk/printing/page-rule-in-media-query-expected.png: Added.
* platform/gtk/printing/page-rule-in-media-query-expected.txt: Added.
* platform/gtk/printing/pageNumerForElementById-expected.txt: Added.
* platform/gtk/printing/print-close-crash-expected.txt: Added.
* platform/gtk/printing/pseudo-class-outside-page-expected.txt: Added.
* platform/gtk/printing/return-from-printing-mode-expected.png: Added.
* platform/gtk/printing/return-from-printing-mode-expected.txt:
* platform/gtk/printing/setPrinting-expected.png: Added.
* platform/gtk/printing/setPrinting-expected.txt: Added.
* platform/gtk/printing/simultaneous-position-float-change-expected.png: Added.
* platform/gtk/printing/simultaneous-position-float-change-expected.txt: Added.
* platform/gtk/printing/single-line-must-not-be-split-into-two-pages-expected.txt: Added.
* platform/gtk/printing/stretch-to-view-height-expected.txt: Added.
* platform/gtk/printing/width-overflow-expected.png: Added.
* platform/gtk/printing/width-overflow-expected.txt: Added.
* platform/gtk/printing/zoomed-document-expected.txt: Added.

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

4 years ago[Freetype] Properly support synthetic oblique in vertical text
mrobinson@webkit.org [Fri, 1 May 2015 17:50:49 +0000 (17:50 +0000)]
[Freetype] Properly support synthetic oblique in vertical text
https://bugs.webkit.org/show_bug.cgi?id=144492

Reviewed by Sergio Villar Senin.

Source/WebCore:

No new tests. Covered by existing tests.

* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::initializeWithFontFace): Skew vertical when using synthetic
oblique for vertical text.

LayoutTests:

* platform/gtk/TestExpectations: Unskip passing tests.
* platform/gtk/fast/text/international/synthesized-italic-vertical-latin-expected.png: Added.
* platform/gtk/fast/text/international/synthesized-italic-vertical-latin-expected.txt: Added.

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

4 years agoAX: [ATK] REGRESSION: accessibility/canvas-fallback-content.html now crashes
jdiggs@igalia.com [Fri, 1 May 2015 17:05:51 +0000 (17:05 +0000)]
AX: [ATK] REGRESSION: accessibility/canvas-fallback-content.html now crashes
https://bugs.webkit.org/show_bug.cgi?id=144481

Reviewed by Chris Fleizach.

Canvas fallback content is allowed to be focusable if the canvas is displayed
and visible. Update the style when creating an accessible object for a node in
a canvas subtree and before Element::isFocusable() gets called.

No new tests. The existing, crashing test no longer crashes.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):

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

4 years ago[Content Extensions] Add CombinedURLFilters debugging code.
achristensen@apple.com [Fri, 1 May 2015 17:03:45 +0000 (17:03 +0000)]
[Content Extensions] Add CombinedURLFilters debugging code.
https://bugs.webkit.org/show_bug.cgi?id=144491

Reviewed by Daniel Bates.

No change in behavior.

* contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::recursiveMemoryUsed):
(WebCore::ContentExtensions::CombinedURLFilters::memoryUsed):
(WebCore::ContentExtensions::prefixTreeVertexToString):
(WebCore::ContentExtensions::recursivePrint):
(WebCore::ContentExtensions::CombinedURLFilters::print):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
* contentextensions/CombinedURLFilters.h:
* contentextensions/NFA.cpp:
(WebCore::ContentExtensions::NFA::memoryUsed):
* contentextensions/NFA.h:
* contentextensions/Term.h:
(WebCore::ContentExtensions::quantifierToString):
(WebCore::ContentExtensions::Term::toString):

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

4 years agoFix text track language selection logic
eric.carlson@apple.com [Fri, 1 May 2015 16:57:38 +0000 (16:57 +0000)]
Fix text track language selection logic
https://bugs.webkit.org/show_bug.cgi?id=144467

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests, media/track/track-language-preference.html was updated.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::configureTextTrackGroup): Correct a minor style typo.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Update logging.

* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::textTrackSelectionScore): Minor cleanup.
(WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Give exact matches a
higher score.

* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore): Update for
indexOfBestMatchingLanguageInList change.

* platform/Language.cpp:
(WebCore::indexOfBestMatchingLanguageInList): Add parameter for exact match. Convert the
passed language to lower case as we do with the preferred languages.
* platform/Language.h:

LayoutTests:

* media/track/track-language-preference-expected.txt:
* media/track/track-language-preference.html: Updated, add new tests.
* platform/mac/TestExpectations:

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

4 years agoProvide a runtime flag to run-webkit-tests that shows the test view
bfulgham@apple.com [Fri, 1 May 2015 16:23:07 +0000 (16:23 +0000)]
Provide a runtime flag to run-webkit-tests that shows the test view
https://bugs.webkit.org/show_bug.cgi?id=144079.

Unreviewed correction to r183651.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize): Make sure the state of the '--show-webview'
flag is included in the options dictionary passed to the PlatformWebView.

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

4 years agoUnreviewed gardening. Rebaseline some tests for WebKitGTK+.
mrobinson@webkit.org [Fri, 1 May 2015 16:04:05 +0000 (16:04 +0000)]
Unreviewed gardening. Rebaseline some tests for WebKitGTK+.

* platform/gtk/editing/execCommand/nsresponder-outdent-expected.txt: Rebaseline.
* platform/gtk/inspector-protocol/debugger/regress-133182-expected.txt: Removed. The
platform-independent baseline should be good enough.

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

4 years ago[Freetype] Add support for the font-synthesis property
mrobinson@webkit.org [Fri, 1 May 2015 16:00:13 +0000 (16:00 +0000)]
[Freetype] Add support for the font-synthesis property
https://bugs.webkit.org/show_bug.cgi?id=144472

Reviewed by Sergio Villar Senin.

No new tests. This causes fast/css3-text/font-synthesis.html to pass
for WebKitGTK+.

* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::FontPlatformData): Only use synthetic bold when the font description allows it.
(WebCore::FontPlatformData::initializeWithFontFace): Ditto for synthetic oblique.

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

4 years ago[GTK] New CORS tests from r183280 fail on WebKitGTK+
mrobinson@webkit.org [Fri, 1 May 2015 14:58:19 +0000 (14:58 +0000)]
[GTK] New CORS tests from r183280 fail on WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=144469

Reviewed by Sergio Villar Senin.

No new tests. This causes failing tests to pass.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::doRedirect): Clear the origin header on cross-origin redirects.

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

4 years agoWeb Inspector: Remove FrameContentView.js
timothy@apple.com [Fri, 1 May 2015 14:24:17 +0000 (14:24 +0000)]
Web Inspector: Remove FrameContentView.js
https://bugs.webkit.org/show_bug.cgi?id=144415

Reviewed by Joseph Pecoraro.

* UserInterface/Images/DOMTree.svg: Removed.
* UserInterface/Images/SourceCode.svg: Removed.
* UserInterface/Main.html: Removed FrameContentView.js.
* UserInterface/Views/FrameContentView.js: Removed.
* UserInterface/Views/PathComponentIcons.css:
(.source-code-icon .icon): Deleted.
(.dom-tree-icon .icon): Deleted.

* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
Simplify the code here. We don't need these checks now with tabs and the Storage tab.

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

4 years agoRemove network process load serialization code
antti@apple.com [Fri, 1 May 2015 11:40:11 +0000 (11:40 +0000)]
Remove network process load serialization code
https://bugs.webkit.org/show_bug.cgi?id=144448

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

TestRunner.setSerializeHTTPLoads is used by a few tests but it is unnecessary
with network process. We don't reorder loads anyway so test results are consistent.
There or no other clients for this code.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::setSerialLoadingEnabled): Deleted.
* NetworkProcess/NetworkConnectionToWebProcess.h:
(WebKit::NetworkConnectionToWebProcess::isSerialLoadingEnabled): Deleted.
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getNetworkProcessStatistics):
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
(WebKit::NetworkResourceLoadScheduler::scheduleLoader):
(WebKit::NetworkResourceLoadScheduler::removeLoader):
(WebKit::NetworkResourceLoadScheduler::loadsPendingCount): Deleted.
* NetworkProcess/NetworkResourceLoadScheduler.h:
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetTabKeyCyclesThroughElements):
(WKBundleSetSerialLoadingEnabled): Deleted.
(WKBundleDispatchPendingLoadRequests): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setSerialLoadingEnabled): Deleted.
(WebKit::InjectedBundle::dispatchPendingLoadRequests): Deleted.

    Remove also this as it does nothing.

* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler):
(WebKit::WebResourceLoadScheduler::suspendPendingRequests):
(WebKit::WebResourceLoadScheduler::resumePendingRequests):

    Remove implementation, it does nothing.

(WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled):
* WebProcess/Network/WebResourceLoadScheduler.h:

Tools:

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setSerializeHTTPLoads):
(WTR::TestRunner::dispatchPendingLoadRequests):

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

4 years ago[GTK] Add libhyphen-dev to the build dependencies
calvaris@igalia.com [Fri, 1 May 2015 09:04:12 +0000 (09:04 +0000)]
[GTK] Add libhyphen-dev to the build dependencies
https://bugs.webkit.org/show_bug.cgi?id=144452

Reviewed by Martin Robinson.

* gtk/install-dependencies: Added hyphen as Fedora and Arch
dependencies.

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