WebKit-https.git
4 years agoREGRESSION (r188581): Web Inspector: Option-Enter no longer inserts a new line in...
nvasilyev@apple.com [Wed, 19 Aug 2015 07:11:36 +0000 (07:11 +0000)]
REGRESSION (r188581): Web Inspector: Option-Enter no longer inserts a new line in the console
https://bugs.webkit.org/show_bug.cgi?id=148165

Make Option-Enter insert a new line, as it was before r188581.
Make Command-Enter keep executed command in the prompt.

Reviewed by Timothy Hatcher.

* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt): Deleted.
(WebInspector.ConsolePrompt.prototype._handleCommandEnterKey):
(WebInspector.ConsolePrompt.prototype._handleOptionEnterKey): Deleted.
(WebInspector.ConsolePrompt.prototype._handleCommandOptionEnterKey): Deleted.

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

4 years ago[Cocoa] Punctuation near Hindi text is garbled when styled with the system font
mmaxfield@apple.com [Wed, 19 Aug 2015 06:23:41 +0000 (06:23 +0000)]
[Cocoa] Punctuation near Hindi text is garbled when styled with the system font
https://bugs.webkit.org/show_bug.cgi?id=148164

Reviewed by Brian Burg.

Source/WebCore:

Fonts cache whether or not they are the system font. This caching took place at the end of Font::platformInit().
However, in the middle of Font::platformInit(), we look up a glyph, which calls GlyphPage::fill() which consults
with this cache. However, at this point, the cache has not been constructed yet. The solution is just to
construct the cache earlier (at the beginning of the function).

Consulting with the cache before it is populated causes it to erroneously say that no fonts are system fonts.
Then, we use Core Graphics to ask for glyphs instead of Core Text. Core Graphics, however, is incapable of
handling the system font, and returns us garbled results. In particular, when the system language is set to
Japanese, the system font does not support punctuation, and Core Text tells us so. However, Core Graphics
erroneously tells us that the system font does support punctuation.

Then, if text is near the punctuation which causes us to take the complex text codepath (such as Hindi text),
we tell Core Text to explicitly lay out the punctuation using the system font (which does not support
punctuation). Core Text then replies that the provided font doesn't support the punctuation, and that we should
use LastResort with some other glyphs instead. WebKit then disregards the font CoreText told us to use (because
we are oh-so-sure that the font in question supports punctuation) and uses the LastResort glyph IDs with our
font, which causes arbitrary glyphs to be shown.

Test: fast/text/hindi-system-font-punctuation.html

* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformInit):

LayoutTests:

This test is only relevant when the system font is set to Japanese or Simplified Chinese. In these
languages, the system font doesn't support punctuation, but CG will erroneously say that it does.

I intend to implement testing infrastructure which will allow us to mock the system language,
thereby allowing this test to be valid on all machines. The tracking bug for this effort is
https://bugs.webkit.org/show_bug.cgi?id=148168

* fast/text/hindi-system-font-punctuation-expected.html: Added.
* fast/text/hindi-system-font-punctuation.html: Added.

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

4 years ago[GLib] GMainLoopSource should receive the std::function<> objects through rvalue...
zandobersek@gmail.com [Wed, 19 Aug 2015 05:52:28 +0000 (05:52 +0000)]
[GLib] GMainLoopSource should receive the std::function<> objects through rvalue references
https://bugs.webkit.org/show_bug.cgi?id=147981

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue): Move the std::function<> into the scheduling call.

Source/WTF:

Scheduling methods on GMainLoopSource and GThreadSafeMainLoopSource should
have the std::function<> objects passed through rvalue references, and should
move the passed-in objects forward when required.

* wtf/glib/GMainLoopSource.cpp:
(WTF::GMainLoopSource::schedule):
(WTF::GMainLoopSource::scheduleAfterDelay):
(WTF::GMainLoopSource::scheduleAndDeleteOnDestroy):
(WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy):
* wtf/glib/GMainLoopSource.h:
* wtf/glib/GThreadSafeMainLoopSource.cpp:
(WTF::GThreadSafeMainLoopSource::schedule):
(WTF::GThreadSafeMainLoopSource::scheduleAfterDelay):
* wtf/glib/GThreadSafeMainLoopSource.h:

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

4 years ago[Win] Test Gardening after r188598
bburg@apple.com [Wed, 19 Aug 2015 05:09:50 +0000 (05:09 +0000)]
[Win] Test Gardening after r188598

Unreviewed. Really skip all inspector/ tests until the test harnesses are fixed.
This work is tracked by <https://bugs.webkit.org/show_bug.cgi?id=148025> and
<https://bugs.webkit.org/show_bug.cgi?id=148037>.

* platform/win/TestExpectations:

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

4 years agoWeb Inspector: Links for rules in <style> are incorrect, do not account for <style...
commit-queue@webkit.org [Wed, 19 Aug 2015 05:00:35 +0000 (05:00 +0000)]
Web Inspector: Links for rules in <style> are incorrect, do not account for <style> offset in the document
https://bugs.webkit.org/show_bug.cgi?id=148141

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-08-18
Reviewed by Brian Burg.

Source/JavaScriptCore:

* inspector/protocol/CSS.json:
Extend StyleSheetHeader to include start offset information and a bit
for whether or not this was an inline style tag created by the parser.
These match additions to Blink's protocol.

Source/WebCore:

Test: inspector/css/getAllStyleSheets.html

* css/CSSStyleSheet.h:
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::create):
(WebCore::CSSStyleSheet::createInline):
(WebCore::CSSStyleSheet::CSSStyleSheet):
Include the starting position when created by the Parser.
Default to the minimum position, which should never be
possible for an inline <style> because the "<style>" characters
themselves require at least some offset.

* dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::createSheet):
Provide the start position offset for this stylesheet if it was inline.

* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
Include new protocol values for the style sheet.

Source/WebInspectorUI:

* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager):
(WebInspector.CSSStyleManager.prototype.get styleSheets):
(WebInspector.CSSStyleManager.prototype.fetchStyleSheetsIfNeeded):
(WebInspector.CSSStyleManager.prototype.styleSheetForIdentifier):
(WebInspector.CSSStyleManager.prototype._mainResourceDidChange):
Update more information about a StyleSheet when fetched.

* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.update):
Eliminate usage of `delete`.

* UserInterface/Models/CSSStyleSheet.js:
(WebInspector.CSSStyleSheet):
(WebInspector.CSSStyleSheet.prototype.get startLineNumber):
(WebInspector.CSSStyleSheet.prototype.get startColumnNumber):
(WebInspector.CSSStyleSheet.prototype.hasInfo):
(WebInspector.CSSStyleSheet.prototype.isInlineStyleTag):
(WebInspector.CSSStyleSheet.prototype.updateInfo):
Include more information about this stylesheet.

(WebInspector.CSSStyleSheet.prototype.offsetSourceCodeLocation):
Include helper API to offset a source code location by the startLine/Column
of this stylesheet itself, if it was an inline style.

(WebInspector.CSSStyleSheet.prototype.isInlineStyleAttributeStyleSheet):
(WebInspector.CSSStyleSheet.prototype.markAsInlineStyleAttributeStyleSheet):
(WebInspector.CSSStyleSheet.isInlineStyle): Deleted.
(WebInspector.CSSStyleSheet.prototype.markAsInlineStyle): Deleted.
Rename for clarity.

* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.refresh):
Fetch stylesheet header information eagerly, so we have them early on.

(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
Offset sourceCodeLocations for CSSRules based on the StyleSheet offset.

* UserInterface/Models/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype.update):
Improve coding style.

LayoutTests:

* inspector/css/getAllStyleSheets-expected.txt: Added.
* inspector/css/getAllStyleSheets.html: Added.
* inspector/css/resources/external.css: Added.
(body):
Test for style sheet header information for external and inline stylesheets.

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

4 years agoWeb Inspector: Add proper formatting for editing styles in the Visual Panel
drousso@apple.com [Wed, 19 Aug 2015 04:56:30 +0000 (04:56 +0000)]
Web Inspector: Add proper formatting for editing styles in the Visual Panel
https://bugs.webkit.org/show_bug.cgi?id=148147

Reviewed by Timothy Hatcher.

Editing styles in the Visual styles panel now preserves whitespace in the related resource file.

* UserInterface/Views/VisualStylePropertyCombiner.js:
(WebInspector.VisualStylePropertyCombiner):
(WebInspector.VisualStylePropertyCombiner.prototype.modifyPropertyText):

* UserInterface/Views/VisualStylePropertyEditor.js:
(WebInspector.VisualStylePropertyEditor):
(WebInspector.VisualStylePropertyEditor.generateFormattedTextForNewProperty):
(WebInspector.VisualStylePropertyEditor.prototype.modifyPropertyText):

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

4 years agoWeb Inspector: Add support for positioning Visual editors on non-retina displays
drousso@apple.com [Wed, 19 Aug 2015 04:54:10 +0000 (04:54 +0000)]
Web Inspector: Add support for positioning Visual editors on non-retina displays
https://bugs.webkit.org/show_bug.cgi?id=148160

Reviewed by Timothy Hatcher.

Cleans up the positioning, dimensions, and widths of the
Visual editors on non-retina displays.

* UserInterface/Views/VisualStyleColorPicker.css:
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):

* UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row.visual-style-separated-row):
(@media (-webkit-min-device-pixel-ratio: 2)):

* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._clearModifiedSection):

* UserInterface/Views/VisualStylePropertyEditorLink.css:
(.visual-style-property-editor-link):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon):
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-icon):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-icon:hover + .visual-style-property-editor-link-border.right): Deleted.
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.right): Deleted.
(.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-icon): Deleted.

* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item > .icon):
(.item.visual-style-selector-item.selector-invalid > .titles > .title::before):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.item.visual-style-selector-item > .titles):
(.item.visual-style-selector-item.selector-invalid > .icon): Deleted.

* UserInterface/Views/VisualStyleTimingEditor.css:
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor):
(@media (-webkit-min-device-pixel-ratio: 2)):

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

4 years agoWeb Inspector: Show the computed value in an overlay for numerical Visual Editors
drousso@apple.com [Wed, 19 Aug 2015 04:50:38 +0000 (04:50 +0000)]
Web Inspector: Show the computed value in an overlay for numerical Visual Editors
https://bugs.webkit.org/show_bug.cgi?id=148161

Reviewed by Timothy Hatcher.

Adds an "Unchanged" option to the number-based Visual editors that shows the
computed value if it is not a number (it would therefore be a keyword).

* UserInterface/Views/VisualStyleNumberInputBox.css:
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container:not(.has-value) > span):

* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox):
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.get units):
(WebInspector.VisualStyleNumberInputBox.prototype.set units):
(WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
(WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
(WebInspector.VisualStyleNumberInputBox.prototype.set _unitsElementTextContent):
(WebInspector.VisualStyleNumberInputBox.prototype._markUnitsContainerIfInputHasValue):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown):
(WebInspector.VisualStyleNumberInputBox.prototype._numberInputChanged):

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

4 years ago[iOS] Safari’s Web Content process crashes when decoding an NSError containing an...
mitz@apple.com [Wed, 19 Aug 2015 04:50:15 +0000 (04:50 +0000)]
[iOS] Safari’s Web Content process crashes when decoding an NSError containing an identity
https://bugs.webkit.org/show_bug.cgi?id=148135

Reviewed by Sam Weinig.

* Configurations/WebContent-iOS.entitlements: Added the com.apple.identities keychain
  access group. The Networking process already has it since r169655.

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitialize): Always allow the UI process to decode keys.

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

4 years agoWeb Inspector: Small Caps variant checkbox should be to the left of the Small Caps...
drousso@apple.com [Wed, 19 Aug 2015 04:35:31 +0000 (04:35 +0000)]
Web Inspector: Small Caps variant checkbox should be to the left of the Small Caps label
https://bugs.webkit.org/show_bug.cgi?id=148102

Reviewed by Timothy Hatcher.

* UserInterface/Views/VisualStyleKeywordCheckbox.css:
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input): Deleted.
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::after):
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::before): Deleted.

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

4 years ago[EFL] Web Inspector: make to use StringBuilder in inspectorBaseURL
commit-queue@webkit.org [Wed, 19 Aug 2015 04:23:16 +0000 (04:23 +0000)]
[EFL] Web Inspector: make to use StringBuilder in inspectorBaseURL
https://bugs.webkit.org/show_bug.cgi?id=148126

Patch by Jincheol Jo <jincheol.jo@navercorp.com> on 2015-08-18
Reviewed by Gyuyoung Kim.

* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::inspectorBaseURL):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):

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

4 years ago[JSC] Optimize more cases of something-compared-to-null/undefined
benjamin@webkit.org [Wed, 19 Aug 2015 04:09:12 +0000 (04:09 +0000)]
[JSC] Optimize more cases of something-compared-to-null/undefined
https://bugs.webkit.org/show_bug.cgi?id=148157

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-08-18
Reviewed by Geoffrey Garen and Filip Pizlo.

Source/JavaScriptCore:

CompareEq is fairly trivial if you assert one of the operands is either
null or undefined. Under those conditions, the only way to have "true"
is to have the other operand be null/undefined or have an object
that masquerades to undefined.

JSC already had a fast path in CompareEqConstant.
With this patch, I generalize this fast path to more cases and try
to eliminate the checks whenever possible.

CompareEq now does the job of CompareEqConstant. If any operand can
be proved to be undefined/other, its edge is set to OtherUse. Whenever
any edge is OtherUse, we generate the fast code we had for CompareEqConstant.

The AbstractInterpreter has additional checks to reduce the node to a constant
whenever possible.

There are two additional changes in this patch:
-The Fixup Phase tries to set edges to OtherUse early. This is done correctly
 in ConstantFoldingPhase but setting it up early helps the phases relying
 on Clobberize.
-The codegen for CompareEqConstant was improved. The reason is the comparison
 for ObjectOrOther could be faster just because the codegen was better.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize): Deleted.
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC): Deleted.
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::isUndefinedOrNullConstant):
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate): Deleted.
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute): Deleted.
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::compare):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::isKnownNotOther):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull): Deleted.
(JSC::DFG::SpeculativeJIT::compile): Deleted.
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull): Deleted.
(JSC::DFG::SpeculativeJIT::compile): Deleted.
* dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validate): Deleted.
* dfg/DFGWatchpointCollectionPhase.cpp:
(JSC::DFG::WatchpointCollectionPhase::handle):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareEqConstant): Deleted.
* tests/stress/compare-eq-on-null-and-undefined-non-peephole.js: Added.
(string_appeared_here.useForMath):
(testUseForMath):
* tests/stress/compare-eq-on-null-and-undefined-optimized-in-constant-folding.js: Added.
(string_appeared_here.unreachableCodeTest):
(inlinedCompareToNull):
(inlinedComparedToUndefined):
(warmupInlineFunctions):
(testInlineFunctions):
* tests/stress/compare-eq-on-null-and-undefined.js: Added.
(string_appeared_here.compareConstants):
(opaqueNull):
(opaqueUndefined):
(compareConstantsAndDynamicValues):
(compareDynamicValues):
(compareDynamicValueToItself):
(arrayTesting):
(opaqueCompare1):
(testNullComparatorUpdate):
(opaqueCompare2):
(testUndefinedComparatorUpdate):
(opaqueCompare3):
(testNullAndUndefinedComparatorUpdate):

LayoutTests:

* js/dom/document-all-watchpoint-covers-eliminated-compare-eq-expected.txt: Added.
* js/dom/document-all-watchpoint-covers-eliminated-compare-eq.html: Added.
* js/dom/script-tests/document-all-watchpoint-covers-eliminated-compare-eq.js: Added.
(compareFunction):

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

4 years agoAttempt to fix the failing search-padding-cancel-results-buttons.html test by making
wenson_hsieh@apple.com [Wed, 19 Aug 2015 02:09:44 +0000 (02:09 +0000)]
Attempt to fix the failing search-padding-cancel-results-buttons.html test by making
platform-specific versions of the test.

* TestExpectations: Added search-padding-cancel-results-buttons-expected.txt with a default [ Skip ].
* fast/forms/search/search-padding-cancel-results-buttons-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt.
* fast/forms/search/search-padding-cancel-results-buttons.html: Renamed from LayoutTests/platform/mac/fast/forms/search/search-padding-cancel-results-buttons.html.
* platform/mac-mavericks/fast/forms/search/search-padding-cancel-results-buttons-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt.
* platform/mac/TestExpectations: Enable the test only for Mac platforms.

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

4 years agoAdd null check in ImageBufferData::getData
dino@apple.com [Wed, 19 Aug 2015 01:55:15 +0000 (01:55 +0000)]
Add null check in ImageBufferData::getData
https://bugs.webkit.org/show_bug.cgi?id=148156
<rdar://problem/22337157>

Reviewed by Simon Fraser.

We're getting a number of crash reports that suggest the allocation
of the result buffer has failed, but have been unable to reproduce.
This patch adds a null check to the allocation, and logs a message
to the system console. This might avoid the crashes, and hopefully
we'll see the message.

No new tests, since we're unable to reproduce this crash.

* platform/graphics/cg/ImageBufferDataCG.cpp:
(WebCore::ImageBufferData::getData): Add a null-check and early
return.

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

4 years agoWeb Inspector: Visual editor links should unlink when switching styles
drousso@apple.com [Wed, 19 Aug 2015 01:41:58 +0000 (01:41 +0000)]
Web Inspector: Visual editor links should unlink when switching styles
https://bugs.webkit.org/show_bug.cgi?id=148153

Reviewed by Timothy Hatcher.

Visual editor links are now deactivated when switching rules/nodes.

* UserInterface/Images/VisualStylePropertyUnlinked.svg:
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):

* UserInterface/Views/VisualStylePropertyEditorLink.js:
(WebInspector.VisualStylePropertyEditorLink.prototype.set linked):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconClicked):
(WebInspector.VisualStylePropertyEditorLink):

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

4 years agoREGRESSION(r188548): [GTK] Build broken.
clopez@igalia.com [Wed, 19 Aug 2015 01:37:50 +0000 (01:37 +0000)]
REGRESSION(r188548): [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=148154

Reviewed by Martin Robinson.

* WebKitTestRunner/gtk/TestControllerGtk.cpp:
(WTR::TestController::updatePlatformSpecificViewOptionsForTest):
Even if we don't need to add/override any settings in ViewOptions,
we need to define this as an empty function to make it build.

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

4 years agoUse CSSValuePool::singleton() instead of cssValuePool()
cdumez@apple.com [Wed, 19 Aug 2015 01:28:03 +0000 (01:28 +0000)]
Use CSSValuePool::singleton() instead of cssValuePool()
https://bugs.webkit.org/show_bug.cgi?id=148132

Reviewed by Simon Fraser.

Use CSSValuePool::singleton() instead of cssValuePool() to access the
global CSSValuePool instance, as per coding style.

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

4 years agoFix conversion-null warning in conversion.cpp of TestWebKitAPI
gyuyoung.kim@webkit.org [Wed, 19 Aug 2015 01:25:31 +0000 (01:25 +0000)]
Fix conversion-null warning in conversion.cpp of TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=148073

Reviewed by Alexey Proskuryakov.

* TestWebKitAPI/Tests/WTF/Condition.cpp: Use EXPECT_FALSE instead of EXPECT_EQ.
(TestWebKitAPI::TEST):

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

4 years agoWeb Inspector: Consider showing style summary on collapsed visual sidebar sections
drousso@apple.com [Wed, 19 Aug 2015 01:22:10 +0000 (01:22 +0000)]
Web Inspector: Consider showing style summary on collapsed visual sidebar sections
https://bugs.webkit.org/show_bug.cgi?id=148104

Reviewed by Timothy Hatcher.

The blue indicator dot on a section now means that that section has at least one set value.
If a section has been modified, it will display a trash can that will clear those modifications.

* UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section .details-section.has-set-property > .header > span::after):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section.modified > .header > span::after): Deleted.

* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
(WebInspector.VisualStyleDetailsPanel.prototype._sectionModified):
(WebInspector.VisualStyleDetailsPanel.prototype._groupHasSetProperty):

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

4 years agoWeb Inspector: round sub-pixel values we get from computed style in visual sidebar
drousso@apple.com [Wed, 19 Aug 2015 01:18:49 +0000 (01:18 +0000)]
Web Inspector: round sub-pixel values we get from computed style in visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148105

Reviewed by Timothy Hatcher.

* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
Now rounds the value and placeholder to the nearest 100th.

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

4 years agoMedia Session: don't begin listening for interruptions when an interruption provider...
mrajca@apple.com [Wed, 19 Aug 2015 01:04:56 +0000 (01:04 +0000)]
Media Session: don't begin listening for interruptions when an interruption provider is created
https://bugs.webkit.org/show_bug.cgi?id=148109

Reviewed by Eric Carlson.

If we call `beginListeningForInterruption` in MediaSessionInterruptionProvider's constructor, the current
class's implementation will get called, not implementations provided by subclasses (this makes sense since base
classes are initialized before derived classes). To fix this, we let clients of
MediaSessionInterruptionProvider start listening for interruptions instead. As a corollary of this, we can make
MediaSessionInterruptionProvider's methods pure virtual.

* Modules/mediasession/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager):
* platform/mediasession/MediaSessionInterruptionProvider.h:
* platform/mediasession/MediaSessionInterruptionProvider.cpp:
(WebCore::MediaSessionInterruptionProvider::MediaSessionInterruptionProvider):

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

4 years agoWeb Inspector: transparent color swatches have lopsided checkered background on non...
commit-queue@webkit.org [Wed, 19 Aug 2015 00:56:57 +0000 (00:56 +0000)]
Web Inspector: transparent color swatches have lopsided checkered background on non-retina
https://bugs.webkit.org/show_bug.cgi?id=148150

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

* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(@media (-webkit-max-device-pixel-ratio: 1)):
Make color and bezier widgets slightly smaller, but evenly sized so the
checkered background is not lopsided and the curve is a little less blurry.

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

4 years agoFix a rare flakiness in svg/animations/svgPreserveAspectRatio-animation-1.html
commit-queue@webkit.org [Wed, 19 Aug 2015 00:43:48 +0000 (00:43 +0000)]
Fix a rare flakiness in svg/animations/svgPreserveAspectRatio-animation-1.html
https://bugs.webkit.org/show_bug.cgi?id=148149

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-08-18
Reviewed by Tim Horton.

Do not sample the SVG animation at the middle of the animation period. At
that time, the SVG animation test script changes the value of the animated
attribute from the from-value to the to-value. It is safer to sample
immediately before and after the middle of the animation period.

* svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js:
* svg/animations/svgPreserveAspectRatio-animation-1-expected.txt:

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

4 years agoRemove "platform text track menu"
eric.carlson@apple.com [Wed, 19 Aug 2015 00:32:58 +0000 (00:32 +0000)]
Remove "platform text track menu"
https://bugs.webkit.org/show_bug.cgi?id=148139

Reviewed by Jer Noble.

Source/WebCore:

No new tests, this patch removes unused code.

* WebCore.xcodeproj/project.pbxproj: Remove PlatformTextTrackMenu.h.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::scheduleDelayedAction): Remove PLATFORM_TEXT_TRACK_MENU.
(WebCore::HTMLMediaElement::pendingActionTimerFired):
(WebCore::HTMLMediaElement::textTrackModeChanged):
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveVideoTrack):
(WebCore::HTMLMediaElement::closeCaptionTracksChanged):
(WebCore::HTMLMediaElement::addAudioTrack):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::setSelectedTextTrack): Deleted.
(WebCore::HTMLMediaElement::platformTextTracks): Deleted.
(WebCore::HTMLMediaElement::notifyMediaPlayerOfTextTrackChanges): Deleted.
(WebCore::HTMLMediaElement::platformTextTrackMenu): Deleted.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::player):
* html/track/InbandTextTrack.h:
* html/track/TextTrack.cpp:
(WebCore::TextTrack::hasCue):
(WebCore::TextTrack::isMainProgramContent):
(WebCore::TextTrack::platformTextTrack): Deleted.
* html/track/TextTrack.h:
(WebCore::TextTrack::create):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::resetMediaEngines):
(WebCore::MediaPlayer::implementsTextTrackControls): Deleted.
(WebCore::MediaPlayer::textTrackMenu): Deleted.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::tracksChanged):
(WebCore::MediaPlayerPrivateInterface::simulateAudioInterruption):
(WebCore::MediaPlayerPrivateInterface::implementsTextTrackControls): Deleted.
(WebCore::MediaPlayerPrivateInterface::textTrackMenu): Deleted.
* platform/graphics/PlatformTextTrack.h:
* platform/graphics/PlatformTextTrackMenu.h: Removed.

Source/WTF:

* wtf/Platform.h: Remove PLATFORM_TEXT_TRACK_MENU.

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

4 years agoSearch input results and clear icons are misaligned when padding is added
wenson_hsieh@apple.com [Wed, 19 Aug 2015 00:23:49 +0000 (00:23 +0000)]
Search input results and clear icons are misaligned when padding is added
https://bugs.webkit.org/show_bug.cgi?id=148146
<rdar://problem/22310951>

Reviewed by Zalan Bujtas.

Source/WebCore:

Use content box rect to determine where to draw the results and cancel buttons
of a search field that has -webkit-appearance: textfield. Previously, we used
the bounding box, which caused the buttons to render in the input's padding
region.

Test: platform/mac/fast/forms/search/search-padding-cancel-results-buttons.html

* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintSearchFieldCancelButton): Use content box to
    compute where to render cancel button.
(WebCore::RenderThemeMac::paintSearchFieldResultsButton): Use content box to
    compute where to render results button.

LayoutTests:

Tests that for a search field with -webkit-appearance: textfield; and padding will not clip
its cancel and results buttons.

* platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt: Added.
* platform/mac/fast/forms/search/search-padding-cancel-results-buttons.html: Added.

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

4 years agoCAOpenGLLayer doesn't need an SPI declaration
dino@apple.com [Wed, 19 Aug 2015 00:21:48 +0000 (00:21 +0000)]
CAOpenGLLayer doesn't need an SPI declaration
https://bugs.webkit.org/show_bug.cgi?id=148151

Reviewed by Tim Horton.

Follow-up to https://trac.webkit.org/r188608.
The property is in the public SDK, so we don't need
to declare it.

* platform/spi/cocoa/QuartzCoreSPI.h:

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

4 years ago[El Capitan] Fix the open source build
mmaxfield@apple.com [Tue, 18 Aug 2015 23:53:57 +0000 (23:53 +0000)]
[El Capitan] Fix the open source build
https://bugs.webkit.org/show_bug.cgi?id=148134

Reviewed by Anders Carlsson.

No new tests because there is no behavior change.

Need to declare CGFontRenderingStyle.

* platform/spi/cocoa/CoreTextSPI.h:

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

4 years agoCAOpenGLLayer needs a named class extension for non-internal installs
dino@apple.com [Tue, 18 Aug 2015 23:47:36 +0000 (23:47 +0000)]
CAOpenGLLayer needs a named class extension for non-internal installs
https://bugs.webkit.org/show_bug.cgi?id=148151
<rdar://problem/22335111>

Reviewed by Tim Horton.

In order to build using the public SDK on El Capitan, we can't
use a class extension to declare this SPI.

No change in behaviour, so no new tests.

* platform/spi/cocoa/QuartzCoreSPI.h:

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

4 years agoFix test failure fallout from r188602 by using a V5 page ui client struct.
andersca@apple.com [Tue, 18 Aug 2015 23:31:03 +0000 (23:31 +0000)]
Fix test failure fallout from r188602 by using a V5 page ui client struct.

* TestWebKitAPI/Tests/WebKit2/WKPageIsPlayingAudio.cpp:
(TestWebKitAPI::setUpClients):

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

4 years agoFix build, and fix the version check.
andersca@apple.com [Tue, 18 Aug 2015 22:52:55 +0000 (22:52 +0000)]
Fix build, and fix the version check.

* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):

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

4 years agoWTF::Condition should have a fast path for notifyOne/notifyAll that avoids calling...
fpizlo@apple.com [Tue, 18 Aug 2015 22:35:25 +0000 (22:35 +0000)]
WTF::Condition should have a fast path for notifyOne/notifyAll that avoids calling unparkOne/unparkAll
https://bugs.webkit.org/show_bug.cgi?id=148090

Reviewed by Geoffrey Garen.

This change makes notifyOne()/notifyAll() blazing fast when nobody is waiting, by using the
various hooks that ParkingLot gives us to maintain a m_hasWaiters variable. When it's false, it
means that any unpark operation would simply return immediately.

This is a 45% speed-up for the 1-producer/1-consumer scenario with a 100-element queue when you
use the notifyOne()-per-enqueue style. What's cool about this change is that you can now safely
call notifyOne() (or notifyAll()) out of paranoia, just in case someone might be waiting. It's
free to do so if nobody is waiting!

* wtf/Condition.h:
(WTF::Condition::Condition):
(WTF::Condition::waitUntil):
(WTF::Condition::notifyOne):
(WTF::Condition::notifyAll):

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

4 years agowill-change: backface-visibility should not cause stacking context
simon.fraser@apple.com [Tue, 18 Aug 2015 22:35:08 +0000 (22:35 +0000)]
will-change: backface-visibility should not cause stacking context
https://bugs.webkit.org/show_bug.cgi?id=148091

Reviewed by Zalan Bujtas.

Source/WebCore:

Take CSSPropertyWebkitBackfaceVisibility out of the list of properties that causes
will-change to create stacking context, since no value of the property creates
stacking.

Move willChangeCreatesStackingContext() and shouldWillChangeCreateStackingContext()
into RenderInline since it's only called from there.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::shouldWillChangeCreateStackingContext): Deleted.
* rendering/RenderElement.h:
(WebCore::RenderElement::willChangeCreatesStackingContext): Deleted.
* rendering/RenderInline.h:
(WebCore::RenderInline::willChangeCreatesStackingContext):
* rendering/style/WillChangeData.cpp:
(WebCore::propertyCreatesStackingContext): Deleted.

LayoutTests:

Test that will-change: -webkit-backface-visibility does not create
stacking context.

* fast/css/will-change/resources/will-change-stacking-helper.js:

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

4 years agoIntroduce non-user-observable Promise functions to use Promises internally
utatane.tea@gmail.com [Tue, 18 Aug 2015 22:32:13 +0000 (22:32 +0000)]
Introduce non-user-observable Promise functions to use Promises internally
https://bugs.webkit.org/show_bug.cgi?id=148118

Reviewed by Saam Barati.

To leverage the Promises internally (like ES6 Module Loaders), we add
the several non-user-observable private methods, like @then, @all. And
refactor the existing Promises implementation to make it easy to use
internally.

But still the trappable part remains. When resolving the promise with
the returned value, we look up the "then" function. So users can trap
by replacing "then" function of the Promise's prototype.
To avoid this situation, we'll introduce completely differnt promise
instances called InternalPromise in the subsequent patch[1].

No behavior change.

[1]: https://bugs.webkit.org/show_bug.cgi?id=148136

* builtins/PromiseConstructor.js:
(privateAll.newResolveElement):
(privateAll):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren): Deleted.
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::promiseConstructor): Deleted.
(JSC::JSGlobalObject::promisePrototype): Deleted.
(JSC::JSGlobalObject::promiseStructure): Deleted.
* runtime/JSPromiseConstructor.cpp:
(JSC::JSPromiseConstructor::finishCreation):
* runtime/JSPromiseDeferred.cpp:
(JSC::callFunction):
(JSC::JSPromiseDeferred::resolve):
(JSC::JSPromiseDeferred::reject):
* runtime/JSPromiseDeferred.h:
* runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototype::create):
(JSC::JSPromisePrototype::JSPromisePrototype):
* runtime/JSPromisePrototype.h:

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

4 years agoREGRESSION: Playing audio causes near-instant crash
andersca@apple.com [Tue, 18 Aug 2015 22:18:47 +0000 (22:18 +0000)]
REGRESSION: Playing audio causes near-instant crash
https://bugs.webkit.org/show_bug.cgi?id=148059
rdar://problem/22282680

Reviewed by Sam Weinig.

The version of WebKit that Safari 6.2.8, 7.1.8 and 8.0.8 built against
had an ABI incompatible WKPageUIClientV4 struct. Thankfully we're not going to ship any
versions of Safari that use the "normal" WKPageUIClientV4 struct so just assume that it's always the
broken one and fix it up by converting it to a WKPageUIClientV5 struct and setting that as the page UI client.

* UIProcess/API/C/WKPage.cpp:
(fixUpBotchedPageUIClient):
(WKPageSetPageUIClient):

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

4 years agoWeb Inspector: Modernize CSSStyleManager
joepeck@webkit.org [Tue, 18 Aug 2015 22:11:40 +0000 (22:11 +0000)]
Web Inspector: Modernize CSSStyleManager
https://bugs.webkit.org/show_bug.cgi?id=148143

Reviewed by Brian Burg.

* UserInterface/Controllers/CSSStyleManager.js:
  - Eliminate `delete` operator use.
  - Move from using Objects as hashmaps to Map.
  - Fix typos.

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

4 years agoUnreviewed, fix the cairo build after r188594.
achristensen@apple.com [Tue, 18 Aug 2015 22:05:48 +0000 (22:05 +0000)]
Unreviewed, fix the cairo build after r188594.

* platform/network/curl/CurlDownload.h:
* platform/network/curl/ResourceHandleManager.cpp:
Include Lock.h

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

4 years agoMark fast/css/will-change/will-change-creates-stacking-context.html as an image-only
simon.fraser@apple.com [Tue, 18 Aug 2015 21:54:38 +0000 (21:54 +0000)]
Mark fast/css/will-change/will-change-creates-stacking-context.html as an image-only
failure. Filed webkit.org/b/148144 to track it.

* platform/win/TestExpectations:

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

4 years agoWeb Inspector: load ProtocolTestStub from the WebInspectorUI bundle
bburg@apple.com [Tue, 18 Aug 2015 21:53:23 +0000 (21:53 +0000)]
Web Inspector: load ProtocolTestStub from the WebInspectorUI bundle
https://bugs.webkit.org/show_bug.cgi?id=147955

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Move ProtocolTestStub.{html,js} into the actual WebInspectorUI project.

* UserInterface/Base/TestStub.js: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.js.
* UserInterface/TestStub.html: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.html.

Tools:

To enable sharing of common test code between protocol and model tests,
start loading the protocol TestStub.js through the WebInspectorUI bundle.

This patch adds the read-only getter TestRunner.inspectorTestStubURL, which
protocol-test.js uses to load the inspector frontend stub into its iframe
from an arbitrary local file URL.

* DumpRenderTree/TestRunner.cpp:
(getInspectorTestStubURLCallback):
(TestRunner::staticValues):
* DumpRenderTree/TestRunner.h:
* DumpRenderTree/mac/TestRunnerMac.mm:
(SOFT_LINK_STAGED_FRAMEWORK):
(TestRunner::inspectorTestStubURL):
* DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::inspectorTestStubURL):
* WebKitTestRunner/Configurations/Base.xcconfig:
Since WebKitTestRunner now includes WebCore private headers, also search
for the WebCore framework inside the WebKit umbrella framework.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/InjectedBundle/efl/TestRunnerEfl.cpp:
(WTR::TestRunner::inspectorTestStubURL):
* WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
(WTR::TestRunner::inspectorTestStubURL):
* WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:
(WTR::TestRunner::inspectorTestStubURL):

LayoutTests:

Since the inspector stub cannot open files that live in the LayoutTests
directory, adopt the test helper marshalling approach used by inspector.js.
Each helper must register its code for marshalling and explicitly put globals
on the window object.

Use script tags rather than importScript to include helpers in a test.

* TestExpectations: For now, skip inspector http tests. These should be rewritten
to use inspector-test.js, which does not run into cross-origin problems.

Rebaseline some test results to account for shifted line numbers (yuck).

* http/tests/inspector/dom/resources/InspectorDOMListener.js:
* http/tests/inspector/resources/console-test.js:
* http/tests/inspector/resources/probe-test.js:
* http/tests/inspector/resources/protocol-test.js:
(ProtocolTestProxy.registerInitializer):
(log):
(runTest.runInitializationMethodsInFrontend):
(runTest.runTestMethodInFrontend):
(runTest):
* inspector/console/console-message.html:
* inspector/console/css-source-locations-expected.txt:
* inspector/console/css-source-locations.html:
* inspector/console/js-source-locations-expected.txt:
* inspector/console/js-source-locations.html:
* inspector/console/x-frame-options-message-expected.txt:
* inspector/console/x-frame-options-message.html:
* inspector/debugger/didSampleProbe-multiple-probes.html:
* inspector/debugger/setBreakpoint-actions.html:
* inspector/debugger/setBreakpoint-options-exception.html:
* inspector/dom/dom-search-expected.txt:
* inspector/dom/dom-search-with-context.html:
* inspector/dom/dom-search.html:
* inspector/dom/resources/dom-search-queries.js:

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

4 years ago[Win] Test gardening after r188591
mmaxfield@apple.com [Tue, 18 Aug 2015 21:45:29 +0000 (21:45 +0000)]
[Win] Test gardening after r188591
https://bugs.webkit.org/show_bug.cgi?id=148119

Unreviewed.

* platform/win/fast/text/trak-optimizeLegibility-expected.txt: Added.

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

4 years agoUnreviewed, fix GTK build.
fpizlo@apple.com [Tue, 18 Aug 2015 21:28:31 +0000 (21:28 +0000)]
Unreviewed, fix GTK build.

* TestWebKitAPI/Tests/WTF/glib/WorkQueueGLib.cpp:
(TestWebKitAPI::TEST):

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

4 years agoUnreviewed, fix the cairo build.
fpizlo@apple.com [Tue, 18 Aug 2015 19:52:53 +0000 (19:52 +0000)]
Unreviewed, fix the cairo build.

* platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:

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

4 years agoReplace all remaining uses of WTF::Mutex with WTF::Lock
fpizlo@apple.com [Tue, 18 Aug 2015 19:31:28 +0000 (19:31 +0000)]
Replace all remaining uses of WTF::Mutex with WTF::Lock
https://bugs.webkit.org/show_bug.cgi?id=148089

Reviewed by Geoffrey Garen.

Source/WebCore:

No new tests because no new behavior.

* Modules/webaudio/AsyncAudioDecoder.cpp:
(WebCore::AsyncAudioDecoder::AsyncAudioDecoder):
(WebCore::AsyncAudioDecoder::runLoop):
* Modules/webaudio/AsyncAudioDecoder.h:
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/MediaStreamAudioSource.cpp:
(WebCore::MediaStreamAudioSource::addAudioConsumer):
(WebCore::MediaStreamAudioSource::removeAudioConsumer):
(WebCore::MediaStreamAudioSource::setAudioFormat):
(WebCore::MediaStreamAudioSource::consumeAudio):
* Modules/webaudio/MediaStreamAudioSource.h:
* Modules/webdatabase/Database.cpp:
(WebCore::Database::close):
(WebCore::Database::runTransaction):
(WebCore::Database::inProgressTransactionCompleted):
(WebCore::Database::hasPendingTransaction):
* Modules/webdatabase/Database.h:
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseTaskSynchronizer::taskCompleted):
* Modules/webdatabase/DatabaseTask.h:
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::start):
(WebCore::DatabaseThread::databaseThread):
* Modules/webdatabase/DatabaseThread.h:
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::setDatabaseDirectoryPath):
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
(WebCore::DatabaseTracker::hasEntryForOrigin):
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::closeAllDatabases):
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::originLockFor):
(WebCore::DatabaseTracker::quotaForOrigin):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFileIfEmpty):
(WebCore::DatabaseTracker::openDatabaseMutex):
(WebCore::DatabaseTracker::setClient):
(WebCore::notificationMutex):
(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
(WebCore::DatabaseTracker::notifyDatabasesChanged):
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/OriginLock.h:
* Modules/webdatabase/SQLCallbackWrapper.h:
(WebCore::SQLCallbackWrapper::clear):
(WebCore::SQLCallbackWrapper::unwrap):
(WebCore::SQLCallbackWrapper::hasCallback):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::enqueueStatementBackend):
(WebCore::SQLTransactionBackend::getNextStatement):
* Modules/webdatabase/SQLTransactionBackend.h:
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::scheduleExecutionTermination):
(WebCore::WorkerScriptController::isExecutionTerminating):
* bindings/js/WorkerScriptController.h:
* dom/default/PlatformMessagePortChannel.cpp:
(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
(WebCore::MessagePortChannel::isConnectedTo):
(WebCore::MessagePortChannel::hasPendingActivity):
(WebCore::MessagePortChannel::locallyEntangledPort):
(WebCore::PlatformMessagePortChannel::setRemotePort):
(WebCore::PlatformMessagePortChannel::entangledChannel):
(WebCore::PlatformMessagePortChannel::closeInternal):
* dom/default/PlatformMessagePortChannel.h:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::removeAllIcons):
(WebCore::IconDatabase::synchronousIconForPageURL):
(WebCore::IconDatabase::synchronousNativeIconForPageURL):
(WebCore::IconDatabase::synchronousIconURLForPageURL):
(WebCore::IconDatabase::retainIconForPageURL):
(WebCore::IconDatabase::performRetainIconForPageURL):
(WebCore::IconDatabase::releaseIconForPageURL):
(WebCore::IconDatabase::performReleaseIconForPageURL):
(WebCore::IconDatabase::setIconDataForIconURL):
(WebCore::IconDatabase::setIconURLForPageURL):
(WebCore::IconDatabase::synchronousLoadDecisionForIconURL):
(WebCore::IconDatabase::synchronousIconDataKnownForIconURL):
(WebCore::IconDatabase::pageURLMappingCount):
(WebCore::IconDatabase::retainedPageURLCount):
(WebCore::IconDatabase::iconRecordCount):
(WebCore::IconDatabase::iconRecordCountWithData):
(WebCore::IconDatabase::wakeSyncThread):
(WebCore::IconDatabase::scheduleOrDeferSyncTimer):
(WebCore::IconDatabase::isOpenBesidesMainThreadCallbacks):
(WebCore::IconDatabase::databasePath):
(WebCore::IconDatabase::getOrCreatePageURLRecord):
(WebCore::IconDatabase::iconDatabaseSyncThread):
(WebCore::IconDatabase::performOpenInitialization):
(WebCore::IconDatabase::performURLImport):
(WebCore::IconDatabase::syncThreadMainLoop):
(WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
(WebCore::IconDatabase::readFromDatabase):
(WebCore::IconDatabase::writeToDatabase):
(WebCore::IconDatabase::pruneUnretainedIcons):
(WebCore::IconDatabase::cleanupSyncThread):
* loader/icon/IconDatabase.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::setMainFramePinState):
(WebCore::ScrollingTree::mainFrameScrollPosition):
(WebCore::ScrollingTree::setMainFrameScrollPosition):
(WebCore::ScrollingTree::isPointInNonFastScrollableRegion):
(WebCore::ScrollingTree::isRubberBandInProgress):
(WebCore::ScrollingTree::setMainFrameIsRubberBanding):
(WebCore::ScrollingTree::isScrollSnapInProgress):
(WebCore::ScrollingTree::setMainFrameIsScrollSnapping):
(WebCore::ScrollingTree::setCanRubberBandState):
(WebCore::ScrollingTree::rubberBandsAtLeft):
(WebCore::ScrollingTree::rubberBandsAtRight):
(WebCore::ScrollingTree::rubberBandsAtBottom):
(WebCore::ScrollingTree::rubberBandsAtTop):
(WebCore::ScrollingTree::setScrollPinningBehavior):
(WebCore::ScrollingTree::scrollPinningBehavior):
(WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
(WebCore::ScrollingTree::latchedNode):
(WebCore::ScrollingTree::setLatchedNode):
(WebCore::ScrollingTree::clearLatchedNode):
* page/scrolling/ScrollingTree.h:
* platform/MemoryPressureHandler.h:
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::loadAsynchronously):
(WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
* platform/audio/HRTFDatabaseLoader.h:
* platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
(WebCore::MemoryPressureHandler::clearMemoryPressure):
(WebCore::MemoryPressureHandler::shouldWaitForMemoryClearMessage):
(WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):
* platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::displayDidRefresh):
* platform/graphics/DisplayRefreshMonitor.h:
(WebCore::DisplayRefreshMonitor::setMonotonicAnimationStartTime):
(WebCore::DisplayRefreshMonitor::mutex):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::setDelayCallbacks):
(WebCore::MediaPlayerPrivateAVFoundation::clearMainThreadPendingFlag):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::callbackContext):
(WebCore::AVFWrapper::~AVFWrapper):
(WebCore::AVFWrapper::mapLock):
(WebCore::AVFWrapper::addToMap):
(WebCore::AVFWrapper::removeFromMap):
(WebCore::AVFWrapper::periodicTimeObserverCallback):
(WebCore::AVFWrapper::processNotification):
(WebCore::AVFWrapper::loadPlayableCompletionCallback):
(WebCore::AVFWrapper::loadMetadataCompletionCallback):
(WebCore::AVFWrapper::seekCompletedCallback):
(WebCore::AVFWrapper::processCue):
(WebCore::AVFWrapper::legibleOutputCallback):
(WebCore::AVFWrapper::processShouldWaitForLoadingOfResource):
(WebCore::AVFWrapper::resourceLoaderShouldWaitForLoadingOfRequestedResource):
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
(WebCore::InbandTextTrackPrivateGStreamer::handleSample):
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
* platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
(WebCore::DisplayRefreshMonitorMac::requestRefreshCallback):
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::addListener):
(WebCore::MediaPlayerPrivateMediaFoundation::removeListener):
(WebCore::MediaPlayerPrivateMediaFoundation::notifyDeleted):
(WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::Invoke):
(WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::onMediaPlayerDeleted):
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
* platform/ios/LegacyTileCache.h:
* platform/ios/LegacyTileCache.mm:
(WebCore::LegacyTileCache::setTilesOpaque):
(WebCore::LegacyTileCache::doLayoutTiles):
(WebCore::LegacyTileCache::setCurrentScale):
(WebCore::LegacyTileCache::commitScaleChange):
(WebCore::LegacyTileCache::layoutTilesNow):
(WebCore::LegacyTileCache::layoutTilesNowForRect):
(WebCore::LegacyTileCache::removeAllNonVisibleTiles):
(WebCore::LegacyTileCache::removeAllTiles):
(WebCore::LegacyTileCache::removeForegroundTiles):
(WebCore::LegacyTileCache::setContentReplacementImage):
(WebCore::LegacyTileCache::contentReplacementImage):
(WebCore::LegacyTileCache::tileCreationTimerFired):
(WebCore::LegacyTileCache::setNeedsDisplayInRect):
(WebCore::LegacyTileCache::updateTilingMode):
(WebCore::LegacyTileCache::setTilingMode):
(WebCore::LegacyTileCache::doPendingRepaints):
(WebCore::LegacyTileCache::flushSavedDisplayRects):
(WebCore::LegacyTileCache::prepareToDraw):
* platform/ios/LegacyTileLayerPool.h:
* platform/ios/LegacyTileLayerPool.mm:
(WebCore::LegacyTileLayerPool::addLayer):
(WebCore::LegacyTileLayerPool::takeLayerWithSize):
(WebCore::LegacyTileLayerPool::setCapacity):
(WebCore::LegacyTileLayerPool::prune):
(WebCore::LegacyTileLayerPool::drain):
* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownloadManager::add):
(WebCore::CurlDownloadManager::remove):
(WebCore::CurlDownloadManager::getActiveDownloadCount):
(WebCore::CurlDownloadManager::getPendingDownloadCount):
(WebCore::CurlDownloadManager::stopThreadIfIdle):
(WebCore::CurlDownloadManager::updateHandleList):
(WebCore::CurlDownload::~CurlDownload):
(WebCore::CurlDownload::init):
(WebCore::CurlDownload::getTempPath):
(WebCore::CurlDownload::getUrl):
(WebCore::CurlDownload::getResponse):
(WebCore::CurlDownload::closeFile):
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::didReceiveData):
(WebCore::CurlDownload::didFail):
* platform/network/curl/CurlDownload.h:
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::cookieJarPath):
(WebCore::sharedResourceMutex):
(WebCore::curl_lock_callback):
(WebCore::curl_unlock_callback):
* platform/network/ios/QuickLook.mm:
(WebCore::QLDirectoryAttributes):
(qlPreviewConverterDictionaryMutex):
(WebCore::addQLPreviewConverterWithFileForURL):
(WebCore::qlPreviewConverterUTIForURL):
(WebCore::removeQLPreviewConverterForURL):
(WebCore::safeQLURLForDocumentURLAndResourceURL):
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::close):
(WebCore::SQLiteDatabase::maximumSize):
(WebCore::SQLiteDatabase::setMaximumSize):
(WebCore::SQLiteDatabase::pageSize):
(WebCore::SQLiteDatabase::freeSpaceSize):
(WebCore::SQLiteDatabase::totalSize):
(WebCore::SQLiteDatabase::runIncrementalVacuumCommand):
(WebCore::SQLiteDatabase::setAuthorizer):
* platform/sql/SQLiteDatabase.h:
(WebCore::SQLiteDatabase::databaseMutex):
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::prepare):
(WebCore::SQLiteStatement::step):
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::start):
(WebCore::WorkerThread::workerThread):
(WebCore::WorkerThread::stop):
* workers/WorkerThread.h:

Source/WebKit:

* Storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::syncTimerFired):
(WebCore::StorageAreaSync::markImported):
(WebCore::StorageAreaSync::blockUntilImportComplete):
(WebCore::StorageAreaSync::performSync):
* Storage/StorageAreaSync.h:
* Storage/StorageTracker.cpp:
(WebCore::StorageTracker::setDatabaseDirectoryPath):
(WebCore::StorageTracker::finishedImportingOriginIdentifiers):
(WebCore::StorageTracker::syncImportOriginIdentifiers):
(WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
(WebCore::StorageTracker::setOriginDetails):
(WebCore::StorageTracker::syncSetOriginDetails):
(WebCore::StorageTracker::origins):
(WebCore::StorageTracker::deleteAllOrigins):
(WebCore::StorageTracker::syncDeleteAllOrigins):
(WebCore::StorageTracker::deleteOrigin):
(WebCore::StorageTracker::syncDeleteOrigin):
(WebCore::StorageTracker::canDeleteOrigin):
(WebCore::StorageTracker::cancelDeletingOrigin):
(WebCore::StorageTracker::diskUsageForOrigin):
* Storage/StorageTracker.h:

Source/WebKit/ios:

* WebCoreSupport/WebFixedPositionContent.mm:
(WebFixedPositionContentDataLock):
(-[WebFixedPositionContent scrollOrZoomChanged:]):
(-[WebFixedPositionContent overflowScrollPositionForLayer:changedTo:]):
(-[WebFixedPositionContent setViewportConstrainedLayers:stickyContainerMap:]):
(-[WebFixedPositionContent hasFixedOrStickyPositionLayers]):
(-[WebFixedPositionContent minimumOffsetFromFixedPositionLayersToAnchorEdge:ofRect:inLayer:]):

Source/WebKit/mac:

* Storage/WebDatabaseManager.mm:
(transactionBackgroundTaskIdentifierLock):
(+[WebDatabaseManager startBackgroundTask]):
(+[WebDatabaseManager endBackgroundTask]):
* WebView/WebView.mm:
(-[WebView _synchronizeCustomFixedPositionLayoutRect]):
(-[WebView _setCustomFixedPositionLayoutRectInWebThread:synchronize:]):
(-[WebView _setCustomFixedPositionLayoutRect:]):
(-[WebView _fetchCustomFixedPositionLayoutRect:]):
* WebView/WebViewData.h:

Source/WebKit/win:

* Plugins/PluginMainThreadScheduler.cpp:
(WebCore::PluginMainThreadScheduler::scheduleCall):
(WebCore::PluginMainThreadScheduler::registerPlugin):
(WebCore::PluginMainThreadScheduler::unregisterPlugin):
(WebCore::PluginMainThreadScheduler::dispatchCallsForPlugin):
* Plugins/PluginMainThreadScheduler.h:
* WebIconDatabase.cpp:
(WebIconDatabase::didRemoveAllIcons):
(WebIconDatabase::didImportIconURLForPageURL):
(WebIconDatabase::deliverNotifications):
* WebIconDatabase.h:
* WebLocalizableStrings.cpp:
(mainBundleLocStrings):
(frameworkLocStringsMutex):
(findCachedString):
(cacheString):

Source/WebKit2:

* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::postDatabaseTask):
(WebKit::DatabaseProcess::performNextDatabaseTask):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::shutdown):
(WebKit::UniqueIDBDatabase::postMainThreadTask):
(WebKit::UniqueIDBDatabase::performNextMainThreadTask):
(WebKit::UniqueIDBDatabase::postDatabaseTask):
(WebKit::UniqueIDBDatabase::performNextDatabaseTask):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
* Platform/IPC/Connection.cpp:
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingSyncReply):
(IPC::Connection::connectionDidClose):
* Platform/IPC/Connection.h:
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::appendUpdate):
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::createCompositingThread):
(WebKit::ThreadedCompositor::runCompositingThread):
(WebKit::ThreadedCompositor::terminateCompositingThread):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:
(WebKit::CustomProtocolManager::addCustomProtocol):
(WebKit::CustomProtocolManager::removeCustomProtocol):
(WebKit::CustomProtocolManager::registerScheme):
(WebKit::CustomProtocolManager::unregisterScheme):
(WebKit::CustomProtocolManager::supportsScheme):
(WebKit::CustomProtocolManager::protocolForID):
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
* Shared/linux/SeccompFilters/SeccompBroker.cpp:
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
(WebKit::PluginProcessConnectionManager::removePluginProcessConnection):
(WebKit::PluginProcessConnectionManager::pluginProcessCrashed):
* WebProcess/Plugins/PluginProcessConnectionManager.h:
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::addScrollingTreeForPage):
(WebKit::EventDispatcher::removeScrollingTreeForPage):
(WebKit::EventDispatcher::wheelEvent):
* WebProcess/WebPage/EventDispatcher.h:
* WebProcess/soup/WebKitSoupRequestInputStream.cpp:
(webkitSoupRequestInputStreamReadAsync):
(webkitSoupRequestInputStreamAddData):

Source/WTF:

This also beefs up and rationalizes the Condition API, so that it can deal with units of time
other than just steady_clock. This makes it easier to port ThreadCondition and
std::condition_variable code over to Condition. This patch does not take a position on what
kind of time is best; from reading a lot of the uses in WebCore, it seems like our use of
double to measure seconds is often nicer than the many different classes in std::chrono.

Also added a Condition speed test, to make sure that all of this is a good idea. And indeed it
is. The 1-producer/1-consumer scenario with a 100-element queue runs 36x faster using
Lock/Condition than Mutex/ThreadCondition when you use the notifyOne()-per-enqueue style. It
runs 58x faster with Lock/Condition when you use the notifyAll()-at-boundary style. Note that
I have a bug open for making the notifyOne()-per-enqueue style even faster:
https://bugs.webkit.org/show_bug.cgi?id=148090. Also, the 10-consumer/10-producer scenario with
a 100-element queue runs 20x faster with Lock/Condition for notifyOne()-per-enqueue and 30x
faster with notifyAll()-at-boundary. The only way to tweak the test to get
Mutex/ThreadCondition to win is to have one producer, one consumer, a 1-element queue, and use
the notifyOne()-per-enqueue style. In that case, one of the two threads is going to be waiting
most of the time and the test basically measures wake-up latency and nothing else. Because
Condition::wait() does a little bit more work than ThreadCondition::wait(),
Mutex/ThreadCondition end up running 3% faster in this test case. But if you vary any of the
parameters of the test, Mutex/ThreadCondition ends up losing - all it takes is more threads or
a queue size of 5 or more. To my knowledge, we never do producer/consumer with a queue bounded
to one element precisely because that approach is the least efficient regardless of locking
algorithm. For example, neither WTF::MessageQueue nor DFG::Worklist have any bounds on their
queue size. So, it seems that replacing all uses of system mutexes and condition variables with
our own thing is a great idea.

* benchmarks/LockSpeedTest.cpp:
* benchmarks/ConditionSpeedTest.cpp: Added.
* wtf/Condition.h:
(WTF::Condition::Condition):
(WTF::Condition::waitUntil):
(WTF::Condition::waitFor):
(WTF::Condition::wait):
(WTF::Condition::waitUntilWallClockSeconds):
(WTF::Condition::waitUntilMonotonicClockSeconds):
(WTF::Condition::notifyOne):
(WTF::Condition::notifyAll):
(WTF::Condition::waitForSecondsImpl):
(WTF::Condition::waitForImpl):
(WTF::Condition::absoluteFromRelative):
* wtf/MessageQueue.h:
(WTF::MessageQueue::infiniteTime):
(WTF::MessageQueue<DataType>::append):
(WTF::MessageQueue<DataType>::appendAndKill):
(WTF::MessageQueue<DataType>::appendAndCheckEmpty):
(WTF::MessageQueue<DataType>::prepend):
(WTF::MessageQueue<DataType>::removeIf):
(WTF::MessageQueue<DataType>::isEmpty):
(WTF::MessageQueue<DataType>::kill):
(WTF::MessageQueue<DataType>::killed):
* wtf/ParallelJobsGeneric.cpp:
(WTF::ParallelEnvironment::ThreadPrivate::execute):
(WTF::ParallelEnvironment::ThreadPrivate::waitForFinish):
(WTF::ParallelEnvironment::ThreadPrivate::workerThread):
* wtf/ParallelJobsGeneric.h:
* wtf/ParkingLot.cpp:
(WTF::ParkingLot::parkConditionally):
* wtf/ParkingLot.h:
(WTF::ParkingLot::compareAndPark):
* wtf/ThreadingPthreads.cpp:
(WTF::initializeThreading):
* wtf/ThreadingWin.cpp:
(WTF::initializeThreading):
* wtf/dtoa.cpp:
(WTF::pow5mult):
* wtf/dtoa.h:

Tools:

* DumpRenderTree/JavaScriptThreading.cpp:
(javaScriptThreadsMutex):
(runJavaScriptThread):
(startJavaScriptThreads):
(stopJavaScriptThreads):
* TestWebKitAPI/Tests/WTF/Condition.cpp: Fixed a bug in the test that I found from turning the test into a benchmark.
* TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/glib/WorkQueueGLib.cpp:
(TestWebKitAPI::TEST):

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

4 years agoTry to fix the CLOOP build.
ggaren@apple.com [Tue, 18 Aug 2015 19:28:37 +0000 (19:28 +0000)]
Try to fix the CLOOP build.

Unreviewed.

* bytecode/CodeBlock.cpp:

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

4 years agohttp/tests/navigation/page-cache-iframe-provisional-load.html is flaky
cdumez@apple.com [Tue, 18 Aug 2015 19:24:15 +0000 (19:24 +0000)]
http/tests/navigation/page-cache-iframe-provisional-load.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=148133

Reviewed by Alexey Proskuryakov.

http/tests/navigation/page-cache-iframe-provisional-load.html would fail if
the slow load would finish before navigating away. To greatly reduce the
chances of it happening, increase the slow load delay from 100ms to 3s.

Also make the test faster by using page-cache-helper.html instead of
page-cache-helper-slow.html. The idea of using a slow helper was for the
load to potentially finish while the page was in the PageCache. However,
now that we've increased the slow load delay, this will no longer happen.

* http/tests/navigation/page-cache-iframe-provisional-load.html:
* http/tests/navigation/resources/page-cache-helper-slow.html: Removed.

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

4 years ago[Cocoa] Honor the 'trak' table by opting in via text-rendering: optimizeLegibility
mmaxfield@apple.com [Tue, 18 Aug 2015 19:19:49 +0000 (19:19 +0000)]
[Cocoa] Honor the 'trak' table by opting in via text-rendering: optimizeLegibility
https://bugs.webkit.org/show_bug.cgi?id=148119
<rdar://problem/22291561>

Reviewed by Tim Horton.

Source/WebCore:

When the author has opted in by specifying "text-rendering: optimizeLegibility;", we should
honor the font's 'trak' table. We do this by specifying kCTFontOpticalSizeAttribute at font
creation time, and by using CTFontGetAdvancesForGlyphs() instead of
CGFontGetGlyphAdvancesForStyle().

Test: fast/text/trak-optimizeLegibility.html

* platform/graphics/FontCache.h:
(WebCore::FontDescriptionKey::makeFlagKey): Make our caches sensitive to TextRenderingMode.
* platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::FontPlatformData): Add a TextRenderingMode member variable.
(WebCore::FontPlatformData::operator=): Update to consult with the new member.
* platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::textRenderingMode): Getter.
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::preparePlatformFont): Specify kCTFontOpticalSizeAttribute.
(WebCore::applyFontFeatureSettings): Deleted.
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::canUseFastGlyphAdvanceGetter): Use CTFontGetAdvancesForGlyphs() if we are
optimizeLegibility.
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::FontPlatformData): Pass the TextRenderingMode around.
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::getSystemFontFallbackForCharacters): Update to call renamed function.
(WebCore::FontCache::createFontPlatformData): Ditto.
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::fontWithFamily): Ditto.
(WebCore::FontCache::systemFallbackForCharacters): Ditto.
(WebCore::FontCache::createFontPlatformData): Ditto.
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Ditto.
* platform/spi/cocoa/CoreTextSPI.h:
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::updateCachedSystemFontDescription): Ditto.

LayoutTests:

This test will fail until we stop mocking the system font on El Capitan. Until then,
this patch will commit the test failure as an expected result.

* fast/text/trak-optimizeLegibility-expected.html: Added
* fast/text/trak-optimizeLegibility.html: Added

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

4 years agoMake our bindings' GetOwnPropertySlot() behave according to specification
cdumez@apple.com [Tue, 18 Aug 2015 19:15:44 +0000 (19:15 +0000)]
Make our bindings' GetOwnPropertySlot() behave according to specification
https://bugs.webkit.org/show_bug.cgi?id=148092

Reviewed by Geoffrey Garen.

Source/WebCore:

Make our bindings' GetOwnPropertySlot() behave according to
specification. In particular, our bindings use to do:
1. Indexed getter
2. Check static properties
3. Prototype check
4. Named getter
5. Check own properties

According to the specification [1][2], we should do:
- If the interface has [OverrideBuiltins]:
    1. Indexed getter
    2. Named getter
    3. Static / own properties
- Otherwise:
    1. Indexed getter
    2. Static / own properties
    3. Prototype check
    4. Named getter

This patch adds support for the [OverrideBuiltins] IDL extended
attribute [3] and aligns our bindings implementation with the Web IDL
specification weither that IDL extended attribute is present or
not.

[1] https://heycam.github.io/webidl/#getownproperty-guts
[2] https://heycam.github.io/webidl/#dfn-named-property-visibility
[3] https://heycam.github.io/webidl/#OverrideBuiltins

Performance:
- PerformanceTests/Bindings/childNodes-traversal.html: ~Same
- PerformanceTests/Bindings/children-traversal.html: +104% :)

No new tests, covered by:
fast/dom/htmlcollection-getownproperty.html
fast/dom/collection-length-should-not-be-overridden.html
fast/forms/input-named-action-overrides-action-attribute.html

* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::JSHTMLCollection::nameGetter):
Add assertions to make sure we don't use HTMLCollection's namedGetter()
for HTMLFormControlsCollection / HTMLOptionsCollection subclasses.
We should use the subclasses' namedGetter() instead.

* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::canGetItemsForName):
(WebCore::JSHTMLOptionsCollection::nameGetter):
Add code for handling named getter requests on
HTMLOptionsCollection.

* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeList::canGetItemsForName):
(WebCore::JSNodeList::nameGetter):
Refactor custom code for the NodeList named getter, now that the
IDL interface is using [CustomNamedGetter] instead of
[JSCustomGetOwnPropertySlotAndDescriptor].

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateHeaderContentHeader): Deleted.
- Add support for the [OverrideBuiltins] IDL extended attribute and
update the generated getOwnPropertySlot() methods to match the
Web IDL specification.
- Also drop the JSC::HasImpureGetOwnPropertySlot flag for interfaces
that have a named getter but NOT the [OverrideBuiltins] IDL extended
attribute. Without [OverrideBuiltins], named properties can no longer
shadow own properties so we no longer need to mark GetOwnPropertySlot
as impure. This allows caching of properties.

* bindings/scripts/IDLAttributes.txt:
Add [OverrideBuiltins] IDL extended attribute [3].

* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObject::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetter::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestException::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::getOwnPropertySlot):
Rebaseline the bindings tests as their getOwnPropertySlot() method
is now different.

* bindings/scripts/test/GObject/WebKitDOMTestOverrideBuiltins.cpp: Added.
* bindings/scripts/test/GObject/WebKitDOMTestOverrideBuiltins.h: Added.
* bindings/scripts/test/GObject/WebKitDOMTestOverrideBuiltinsPrivate.h: Added.
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: Added.
* bindings/scripts/test/JS/JSTestOverrideBuiltins.h: Added.
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* bindings/scripts/test/ObjC/DOMTestOverrideBuiltins.h: Added.
* bindings/scripts/test/ObjC/DOMTestOverrideBuiltins.mm: Added.
* bindings/scripts/test/ObjC/DOMTestOverrideBuiltinsInternal.h: Added.
* bindings/scripts/test/TestOverrideBuiltins.idl: Added.
Add bindings test coverage for the new [OverrideBuiltins] IDL extended
attribute [3].

* dom/DOMStringMap.idl:
Add [OverrideBuiltins] IDL extended attribute to match the specification:
https://html.spec.whatwg.org/multipage/infrastructure.html#domstringmap

* dom/NodeList.idl:
Use CustomNamedGetter IDL extended attribute instead of
JSCustomGetOwnPropertySlotAndDescriptor as NodeList merely implements
a custom named getter. This makes sure that the order in which the
named getter is called is correct as per the Web IDL specification.

* html/HTMLDocument.idl:
Add [OverrideBuiltins] IDL extended attribute to match the specification:
https://html.spec.whatwg.org/multipage/dom.html#the-document-object

* html/HTMLFormElement.idl:
Add [OverrideBuiltins] IDL extended attribute to match the specification:
https://html.spec.whatwg.org/multipage/forms.html#the-form-element

* html/HTMLOptionsCollection.idl:
Add missing 'getter' in front of the named getter, as the per the HTML
specification. Without this, HTMLOptionsCollection would not be
recognized as a named properties object, which means that we would not
check the HTMLOptionsCollection prototype before querying the named
getter on HTMLCollection. This used to work because the bindings
generator was hard-coding the prototype check for every HTML*Collection
IDL interface. In this patch, we generalized the check to every
interface that has a named getter.

LayoutTests:

* fast/dom/childnode-item-after-itemname.html:
Update the test so the item's id in the NodeList is "testItem"
instead of "item". NodeList has a method called item() which now
takes priority over the name when accessing Nodelist.item, as per
the Web IDL specification.

* fast/dom/htmlcollection-getownproperty-expected.txt:
Rebaseline test. This is a progression.

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

4 years ago[CMake] REGRESSION(r188540): WebKitTestRunner is not longer built and all the tests...
achristensen@apple.com [Tue, 18 Aug 2015 19:09:12 +0000 (19:09 +0000)]
[CMake] REGRESSION(r188540): WebKitTestRunner is not longer built and all the tests (layout and perf) fail.
https://bugs.webkit.org/show_bug.cgi?id=148127

Reviewed by Martin Robinson.

* CMakeLists.txt:
TOOLS_DIR hasn't been set yet since its defining has been moved to WebKitFS.

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

4 years ago[Win] Popup menu displayed at incorrect position when page is scrolled and device...
peavo@outlook.com [Tue, 18 Aug 2015 19:03:18 +0000 (19:03 +0000)]
[Win] Popup menu displayed at incorrect position when page is scrolled and device scale factor != 1.
https://bugs.webkit.org/show_bug.cgi?id=148130

Reviewed by Alex Christensen.

Scale WebView coordinates with device scale factor.

* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::calculatePositionAndSize):

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

4 years agoRemove failing expectations for some WK1 tests that have passed recent
jhoneycutt@apple.com [Tue, 18 Aug 2015 18:51:52 +0000 (18:51 +0000)]
Remove failing expectations for some WK1 tests that have passed recent
builds.

* platform/ios-simulator-wk1/TestExpectations:

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

4 years agoWeb Inspector: Better keyboard shortcut to focus on the console prompt
drousso@apple.com [Tue, 18 Aug 2015 18:47:45 +0000 (18:47 +0000)]
Web Inspector: Better keyboard shortcut to focus on the console prompt
https://bugs.webkit.org/show_bug.cgi?id=147927

Reviewed by Brian Burg.

* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._focusConsolePrompt):
Added a Control-Tilde keyboard shortcut to focus the console prompt.

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

4 years agoSplit InlineCallFrame into its own file
ggaren@apple.com [Tue, 18 Aug 2015 18:28:54 +0000 (18:28 +0000)]
Split InlineCallFrame into its own file
https://bugs.webkit.org/show_bug.cgi?id=148131

Reviewed by Saam Barati.

* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CallLinkStatus.cpp:
* bytecode/CodeBlock.h:
(JSC::ExecState::r):
(JSC::baselineCodeBlockForInlineCallFrame): Deleted.
(JSC::baselineCodeBlockForOriginAndBaselineCodeBlock): Deleted.
* bytecode/CodeOrigin.cpp:
(JSC::CodeOrigin::inlineStack):
(JSC::CodeOrigin::codeOriginOwner):
(JSC::CodeOrigin::stackOffset):
(JSC::CodeOrigin::dump):
(JSC::CodeOrigin::dumpInContext):
(JSC::InlineCallFrame::calleeConstant): Deleted.
(JSC::InlineCallFrame::visitAggregate): Deleted.
(JSC::InlineCallFrame::calleeForCallFrame): Deleted.
(JSC::InlineCallFrame::hash): Deleted.
(JSC::InlineCallFrame::hashAsStringIfPossible): Deleted.
(JSC::InlineCallFrame::inferredName): Deleted.
(JSC::InlineCallFrame::baselineCodeBlock): Deleted.
(JSC::InlineCallFrame::dumpBriefFunctionInformation): Deleted.
(JSC::InlineCallFrame::dumpInContext): Deleted.
(JSC::InlineCallFrame::dump): Deleted.
(WTF::printInternal): Deleted.
* bytecode/CodeOrigin.h:
(JSC::CodeOrigin::deletedMarker):
(JSC::CodeOrigin::hash):
(JSC::CodeOrigin::operator==):
(JSC::CodeOriginHash::hash):
(JSC::CodeOriginHash::equal):
(JSC::InlineCallFrame::kindFor): Deleted.
(JSC::InlineCallFrame::varargsKindFor): Deleted.
(JSC::InlineCallFrame::specializationKindFor): Deleted.
(JSC::InlineCallFrame::isVarargs): Deleted.
(JSC::InlineCallFrame::InlineCallFrame): Deleted.
(JSC::InlineCallFrame::specializationKind): Deleted.
(JSC::InlineCallFrame::setStackOffset): Deleted.
(JSC::InlineCallFrame::callerFrameOffset): Deleted.
(JSC::InlineCallFrame::returnPCOffset): Deleted.
(JSC::CodeOrigin::stackOffset): Deleted.
(JSC::CodeOrigin::codeOriginOwner): Deleted.
* bytecode/InlineCallFrame.cpp: Copied from Source/JavaScriptCore/bytecode/CodeOrigin.cpp.
(JSC::InlineCallFrame::calleeConstant):
(JSC::CodeOrigin::inlineDepthForCallFrame): Deleted.
(JSC::CodeOrigin::inlineDepth): Deleted.
(JSC::CodeOrigin::isApproximatelyEqualTo): Deleted.
(JSC::CodeOrigin::approximateHash): Deleted.
(JSC::CodeOrigin::inlineStack): Deleted.
(JSC::CodeOrigin::dump): Deleted.
(JSC::CodeOrigin::dumpInContext): Deleted.
* bytecode/InlineCallFrame.h: Copied from Source/JavaScriptCore/bytecode/CodeOrigin.h.
(JSC::InlineCallFrame::isVarargs):
(JSC::InlineCallFrame::InlineCallFrame):
(JSC::InlineCallFrame::specializationKind):
(JSC::baselineCodeBlockForInlineCallFrame):
(JSC::baselineCodeBlockForOriginAndBaselineCodeBlock):
(JSC::CodeOrigin::CodeOrigin): Deleted.
(JSC::CodeOrigin::isSet): Deleted.
(JSC::CodeOrigin::operator!): Deleted.
(JSC::CodeOrigin::isHashTableDeletedValue): Deleted.
(JSC::CodeOrigin::operator!=): Deleted.
(JSC::CodeOrigin::deletedMarker): Deleted.
(JSC::CodeOrigin::stackOffset): Deleted.
(JSC::CodeOrigin::hash): Deleted.
(JSC::CodeOrigin::operator==): Deleted.
(JSC::CodeOrigin::codeOriginOwner): Deleted.
(JSC::CodeOriginHash::hash): Deleted.
(JSC::CodeOriginHash::equal): Deleted.
(JSC::CodeOriginApproximateHash::hash): Deleted.
(JSC::CodeOriginApproximateHash::equal): Deleted.
* bytecode/InlineCallFrameSet.cpp:
* dfg/DFGCommonData.cpp:
* dfg/DFGOSRExitBase.cpp:
* dfg/DFGVariableEventStream.cpp:
* ftl/FTLOperations.cpp:
* interpreter/CallFrame.cpp:
* interpreter/StackVisitor.cpp:
* jit/AssemblyHelpers.h:
* profiler/ProfilerOriginStack.cpp:
* runtime/ClonedArguments.cpp:

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

4 years agoAdd a method to WebInspector to indicate whether the inspector is open
jeffm@apple.com [Tue, 18 Aug 2015 17:56:17 +0000 (17:56 +0000)]
Add a method to WebInspector to indicate whether the inspector is open
https://bugs.webkit.org/show_bug.cgi?id=148087

Reviewed by Joseph Pecoraro.

* WebInspector/WebInspector.h:
Added open property.

* WebInspector/WebInspector.mm:
(-[WebInspector isOpen]):
Added, returns YES if we have a frontend.

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

4 years agoRemoved an unused param in Interpreter::initialize().
mark.lam@apple.com [Tue, 18 Aug 2015 17:37:21 +0000 (17:37 +0000)]
Removed an unused param in Interpreter::initialize().
https://bugs.webkit.org/show_bug.cgi?id=148129

Reviewed by Michael Saboff.

* interpreter/Interpreter.cpp:
(JSC::Interpreter::~Interpreter):
(JSC::Interpreter::initialize):
* interpreter/Interpreter.h:
(JSC::Interpreter::stack):
* runtime/VM.cpp:
(JSC::VM::VM):

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

4 years ago[CSS Grid Layout] Do not stretch always grid items with auto width
jfernandez@igalia.com [Tue, 18 Aug 2015 17:03:05 +0000 (17:03 +0000)]
[CSS Grid Layout] Do not stretch always grid items with auto width
https://bugs.webkit.org/show_bug.cgi?id=148069

Reviewed by Darin Adler.

Source/WebCore:

We assumed that any grid item with 'auto' width will be stretched
to fill all the available space in its grid area. We assumed this
because grid area acts as item's container.

However, Grid Layout specification states on its Alignment section
that items will be stretched by default, unless either
justify-self or align-self compute to a value other than stretch
or margins are auto. In those cases, grid items will auto-size to
fit their contents.

Tests:
fast/css-grid-layout/grid-align-justify-stretch.html
fast/css-grid-layout/grid-item-auto-margins-and-stretch.html
fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalWidthInRegion):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::RenderGrid::needToStretchChildLogicalHeight): Deleted.
* rendering/RenderGrid.h:

LayoutTests:

New Layout tests to verify that grid stretching logic works as expected
when aligning both horizontally and vertically.

* fast/css-grid-layout/grid-align-justify-stretch-expected.txt: Added.
* fast/css-grid-layout/grid-align-justify-stretch.html: Added.
* fast/css-grid-layout/grid-item-auto-margins-and-stretch-expected.txt: Added.
* fast/css-grid-layout/grid-item-auto-margins-and-stretch.html: Added.
* fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change-expected.txt: Added.
* fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html: Added.

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

4 years agoWeb Inspector: Option-Enter should commit console command without erasing the prompt
nvasilyev@apple.com [Tue, 18 Aug 2015 14:46:41 +0000 (14:46 +0000)]
Web Inspector: Option-Enter should commit console command without erasing the prompt
https://bugs.webkit.org/show_bug.cgi?id=148123

Also, don't append a console command if it's the same as the last one.

Reviewed by Timothy Hatcher.

* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt):
(WebInspector.ConsolePrompt.prototype._handleEnterKey.commitTextOrInsertNewLine):
(WebInspector.ConsolePrompt.prototype._handleEnterKey):
(WebInspector.ConsolePrompt.prototype._handleOptionEnterKey):
(WebInspector.ConsolePrompt.prototype._handleCommandOptionEnterKey):

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

4 years ago[Streams API] Update implementation with the latest spec
calvaris@igalia.com [Tue, 18 Aug 2015 08:25:22 +0000 (08:25 +0000)]
[Streams API] Update implementation with the latest spec
https://bugs.webkit.org/show_bug.cgi?id=147978

Reviewed by Darin Adler.

Source/WebCore:

Changed the way the read and closed promises are resolved and the stream is released when an even closes or
errors the stream.

Current tests suffice after changing the order of the promise resolution according to the new spec.

* Modules/streams/ReadableStream.cpp:
(WebCore::ReadableStream::releaseReader): Changed how the promises are resolved.
(WebCore::ReadableStream::changeStateToErrored): Changed how the promises are resolved and manually releasing
the stream instead of calling releaseReader according to the spec.

LayoutTests:

Changed tests about the order of the read and closed promise resolution.

* streams/readable-stream-reader-read.html:
* streams/reference-implementation/readable-stream-tee.html:
* streams/reference-implementation/readable-stream-templated.html:
* streams/reference-implementation/readable-stream.html:

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

4 years agoUnreviewed, rolling out r188539, r188544, r188552, and
commit-queue@webkit.org [Tue, 18 Aug 2015 06:33:51 +0000 (06:33 +0000)]
Unreviewed, rolling out r188539, r188544, r188552, and
r188564.
https://bugs.webkit.org/show_bug.cgi?id=148122

Broke tests and some build styles (Requested by ap on
#webkit).

Reverted changesets:

"Web Inspector: load ProtocolTestStub from the WebInspectorUI
bundle"
https://bugs.webkit.org/show_bug.cgi?id=147955
http://trac.webkit.org/changeset/188539

"Web Inspector: split TestStub.js into multiple files and
modernize it"
https://bugs.webkit.org/show_bug.cgi?id=148077
http://trac.webkit.org/changeset/188544

"Web Inspector: InspectorTest should be a subclass of
TestHarness"
https://bugs.webkit.org/show_bug.cgi?id=148079
http://trac.webkit.org/changeset/188552

"Unreviewed internal build fix attempt after r188539."
http://trac.webkit.org/changeset/188564

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

4 years agoWeb Inspector: Allow typing command when a console message is selected
nvasilyev@apple.com [Tue, 18 Aug 2015 06:28:11 +0000 (06:28 +0000)]
Web Inspector: Allow typing command when a console message is selected
https://bugs.webkit.org/show_bug.cgi?id=148121

Reviewed by Timothy Hatcher.

* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._keyPress):
Command-C should still copy the selected message.

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

4 years agoOutline with auto style leaves bits behind when the the box is moved.
zalan@apple.com [Tue, 18 Aug 2015 06:03:51 +0000 (06:03 +0000)]
Outline with auto style leaves bits behind when the the box is moved.
https://bugs.webkit.org/show_bug.cgi?id=148100

Reviewed by Simon Fraser.

Source/WebCore:

We paint the focus ring when 'outline-style: auto' is present, however
we don't take the focus ring width into account when the repaint rect
is computed.

Tests: fast/repaint/outline-with1px-auto-repaint-rect.html
       fast/repaint/outline-with2px-auto-repaint-rect.html
       fast/repaint/outline-with3px-auto-repaint-rect.html

* rendering/RenderObject.cpp:
(WebCore::RenderObject::adjustRectForOutlineAndShadow):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::platformFocusRingMaxWidth): Deleted. : 0 as focus ring width is incorrect.
The reason why r169699 fixed the failing cases was because they all had outline width < 3 (but no auto outline style).
The correct fix is to check if the style requires focus ring painting and use the RenderTheme::platformFocusRingMaxWidth
accordingly.

LayoutTests:

Due to RenderView::maximalOutlineSize() each outline width need to be tested separately.

* fast/repaint/outline-with1px-auto-repaint-rect-expected.txt: Added.
* fast/repaint/outline-with1px-auto-repaint-rect.html: Added.
* fast/repaint/outline-with2px-auto-repaint-rect-expected.txt: Added.
* fast/repaint/outline-with2px-auto-repaint-rect.html: Added.
* fast/repaint/outline-with3px-auto-repaint-rect-expected.txt: Added.
* fast/repaint/outline-with3px-auto-repaint-rect.html: Added.

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

4 years agoWeb Inspector: Update slider styles
nvasilyev@apple.com [Tue, 18 Aug 2015 05:55:36 +0000 (05:55 +0000)]
Web Inspector: Update slider styles
https://bugs.webkit.org/show_bug.cgi?id=148120

Reviewed by Timothy Hatcher.

* UserInterface/Views/Main.css:
(input[type=range]):
(input[type=range]::-webkit-slider-runnable-track::before):

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

4 years ago[Cocoa] Address post-commit review
mmaxfield@apple.com [Tue, 18 Aug 2015 04:55:22 +0000 (04:55 +0000)]
[Cocoa] Address post-commit review
https://bugs.webkit.org/show_bug.cgi?id=147864

Reviewed by Darin Adler.

Create helper functions to cast between NSFont*s and CTFontRefs.

No new tests because there is no behavior change.

* platform/graphics/FontPlatformData.h:
(WebCore::toCTFont):
(WebCore::toNSFont):
* platform/graphics/cocoa/FontCacheCoreText.cpp:
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformCreateScaledFont):
(WebCore::Font::compositeFontReferenceFont):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::platformPurgeInactiveFontData):
(WebCore::lookupCTFont):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::createFontPlatformData):
* platform/mac/DragImageMac.mm:
(WebCore::fontFromNSFont):
(WebCore::widthWithFont):
(WebCore::drawAtPoint):
* platform/spi/mac/NSFontSPI.h:

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

4 years agoWinCairo build fix after r188566
achristensen@apple.com [Tue, 18 Aug 2015 04:13:57 +0000 (04:13 +0000)]
WinCairo build fix after r188566

* platform/graphics/win/FontPlatformDataCairoWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
Remove reference to removed m_isCompositeFontReference.

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

4 years agoWeb Inspector: font-family list is backwards in visual sidebar
drousso@apple.com [Tue, 18 Aug 2015 04:13:56 +0000 (04:13 +0000)]
Web Inspector: font-family list is backwards in visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148101

Reviewed by Timothy Hatcher.

* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._addCommaSeparatedKeyword):
Now appends new children if the current index is not set instead of inserting them.

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

4 years agoWeb Inspector: Style changes to Visual sidebar selector items
drousso@apple.com [Tue, 18 Aug 2015 04:12:15 +0000 (04:12 +0000)]
Web Inspector: Style changes to Visual sidebar selector items
https://bugs.webkit.org/show_bug.cgi?id=148114

Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype._updateTitleElements):
(WebInspector.GeneralTreeElement.prototype._updateTitleTooltip):
Moved the code to update the item tooltip to its own function.

* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.editorMouseover):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.editorMouseout):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners):
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
(WebInspector.VisualStyleDetailsPanel.prototype._populateMarginSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populatePaddingSection):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseover): Deleted.
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseout): Deleted.
Added on-hover node/selector highlighting to margin and padding editor links.

* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox):
Replaced "No Units" with "Number" for better clarity.

* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(body:not(.window-inactive, .window-docked-inactive) .item.visual-style-selector-item.selected > input[type="checkbox"]:checked::before):
(.item.visual-style-selector-item.selected > input[type="checkbox"]::before): Deleted.
Removes the white border when the window is inactive and when the checkbox is unchecked.

* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
Now updates the title of the item when the selector changes.

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

4 years agoWeb Inspector: delete key should work on multi-values visual sidebar grid sections
drousso@apple.com [Tue, 18 Aug 2015 04:11:09 +0000 (04:11 +0000)]
Web Inspector: delete key should work on multi-values visual sidebar grid sections
https://bugs.webkit.org/show_bug.cgi?id=148110

Reviewed by Timothy Hatcher.

* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._listElementKeyDown):
If the backspace/delete key is pressed when focus is within the list element, delete
the selected list item if it is not currently being edited (if it has an editor).

* UserInterface/Views/VisualStyleFontFamilyTreeElement.js:
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.get currentlyEditing):

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

4 years agoWeb Inspector: web fonts or unknown fonts show up as Times in visual sidebar
drousso@apple.com [Tue, 18 Aug 2015 04:08:47 +0000 (04:08 +0000)]
Web Inspector: web fonts or unknown fonts show up as Times in visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148103

Reviewed by Timothy Hatcher.

* UserInterface/Views/VisualStyleFontFamilyTreeElement.js:
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.updateMainTitle):
Fonts now fall back to sans-serif and -apple-system if they do not exist.

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

4 years agoFollow up patch after r188566
mmaxfield@apple.com [Tue, 18 Aug 2015 02:44:14 +0000 (02:44 +0000)]
Follow up patch after r188566

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

4 years agoAdd const to content extension parser
commit-queue@webkit.org [Tue, 18 Aug 2015 02:25:10 +0000 (02:25 +0000)]
Add const to content extension parser
https://bugs.webkit.org/show_bug.cgi?id=148044

Patch by Alex Christensen <achristensen@webkit.org> on 2015-08-17
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

* runtime/JSObject.h:
(JSC::JSObject::getIndexQuickly):
(JSC::JSObject::tryGetIndexQuickly):
(JSC::JSObject::getDirectIndex):
(JSC::JSObject::getIndex):
Added a few const keywords.

Source/WebCore:

* contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::containsOnlyASCIIWithNoUppercase):
(WebCore::ContentExtensions::getDomainList):
(WebCore::ContentExtensions::getTypeFlags):
(WebCore::ContentExtensions::loadTrigger):
(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):
(WebCore::ContentExtensions::loadEncodedRules):
Add const.  No change in behavior.

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

4 years ago[OS X] Remove support for composite fonts
mmaxfield@apple.com [Tue, 18 Aug 2015 02:07:57 +0000 (02:07 +0000)]
[OS X] Remove support for composite fonts
https://bugs.webkit.org/show_bug.cgi?id=147920

Reviewed by Dan Bernstein.

Source/WebCore:

WebKit maintains a cache of code point to glyph mapping for a particular font. One of
the ways WebKit populates this cache is to create a string holding consecutive code
points, create a CTLineRef from the string, and use CTRunGetGlyphs() with
CTRunGetStringIndices() to map from the code points to the glyphs. This approach is
fundamentally incorrect, as it will combine consecutive code points together in the
string if possible to produce a glyph.

The only way WebKit will ever trigger this code path is if we are inspecting a
composite font, first introduced in [1]. These composite fonts are extremely rare
because:
1. None of the preinstalled fonts on either OS X nor iOS are composite fonts,
2. WebKit does not support loading web fonts from composite font files, and
3. WebKit's support only ever existed on OS X (none of the other ports).

In fact, no one I've consulted with has ever seen any of these fonts used in the wild.
The fonts also require a fundamentally broken code path, and add complexity to WebKit.

[1] https://bugs.webkit.org/attachment.cgi?id=134923&action=review

No new tests.

* platform/graphics/Font.h:
* platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::FontPlatformData): Deleted.
(WebCore::FontPlatformData::operator=): Deleted.
* platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::isCompositeFontReference): Deleted.
(WebCore::FontPlatformData::operator==): Deleted.
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::compositeFontReferenceFont): Deleted.
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::FontPlatformData): Deleted.
(WebCore::FontPlatformData::setFont): Deleted.
* platform/graphics/mac/GlyphPageMac.cpp:
(WebCore::shouldUseCoreText):
(WebCore::GlyphPage::fill):

Tools:

* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
* DumpRenderTree/fonts/SampleFont.sfont: Removed.
* DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
* DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
* DumpRenderTree/mac/DumpRenderTree.mm:
(allowedFontFamilySet): Deleted.
(activateTestingFonts): Deleted.
* WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:
(WTR::allowedFontFamilySet): Deleted.
(WTR::activateFonts): Deleted.
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
* WebKitTestRunner/fonts/SampleFont.sfont: Removed.
* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::allowedFontFamilySet): Deleted.

LayoutTests:

* fast/text/international/text-spliced-font.html: Removed.
* platform/efl/fast/text/international/text-spliced-font-expected.png: Removed.
* platform/efl/fast/text/international/text-spliced-font-expected.txt: Removed.
* platform/gtk/fast/text/international/text-spliced-font-expected.png: Removed.
* platform/gtk/fast/text/international/text-spliced-font-expected.txt: Removed.
* platform/ios-simulator-wk2/fast/text/international/text-spliced-font-expected.txt: Removed.
* platform/ios-simulator/fast/text/international/text-spliced-font-expected.txt: Removed.
* platform/mac/fast/text/international/text-spliced-font-expected.png: Removed.
* platform/mac/fast/text/international/text-spliced-font-expected.txt: Removed.
* platform/win/fast/text/international/text-spliced-font-expected.png: Removed.
* platform/win/fast/text/international/text-spliced-font-expected.txt: Removed.

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

4 years agoSome functions on DictionaryLookup.h should just be generic functions elsewhere
timothy_horton@apple.com [Tue, 18 Aug 2015 02:02:36 +0000 (02:02 +0000)]
Some functions on DictionaryLookup.h should just be generic functions elsewhere
https://bugs.webkit.org/show_bug.cgi?id=138567

Reviewed by Dean Jackson.

No new tests, just refactoring.

* dom/Range.cpp:
(WebCore::Range::contains):
* dom/Range.h:
Add a Range::contains(VisiblePosition).
It's simpler than the old thing from DictionaryLookup.mm, but does the same thing.
It's so simple that it doesn't necessarily need to exist, but it seems useful.

* editing/VisiblePosition.cpp:
(WebCore::makeRange):
nullptrs

* editing/mac/DictionaryLookup.h:
* editing/mac/DictionaryLookup.mm:
(WebCore::selectionContainsPosition):
(WebCore::rangeForDictionaryLookupAtHitTestResult):
(WebCore::isPositionInRange): Deleted.
(WebCore::shouldUseSelection): Deleted.
Move isPositionInRange to Range.
Rename shouldUseSelection to what it really means.
I didn't move selectionContainsPosition to VisibleSelection because it
only handles Range selections, not any of the ohers, and thus isn't
generic enough to put there.

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

4 years agoUnreviewed internal build fix attempt after r188539.
jhoneycutt@apple.com [Tue, 18 Aug 2015 01:42:40 +0000 (01:42 +0000)]
Unreviewed internal build fix attempt after r188539.

* WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:

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

4 years agoSpeculative GTK build fix after r188553
achristensen@apple.com [Tue, 18 Aug 2015 01:38:30 +0000 (01:38 +0000)]
Speculative GTK build fix after r188553

* CMakeLists.txt:
Added new files.

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

4 years ago[Win] Test gardening
mmaxfield@apple.com [Tue, 18 Aug 2015 00:57:03 +0000 (00:57 +0000)]
[Win] Test gardening

Unreviewed.

* platform/win/fast/text/system-font-punctuation-expected.txt: Added.

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

4 years agoFix the build
mmaxfield@apple.com [Tue, 18 Aug 2015 00:52:23 +0000 (00:52 +0000)]
Fix the build

Unreviewed.

* TestWebKitAPI/Tests/WTF/StringHasher.cpp:

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

4 years ago[Win CMake] Allow WebKitLibraries directory to be set from the command line
achristensen@apple.com [Tue, 18 Aug 2015 00:43:55 +0000 (00:43 +0000)]
[Win CMake] Allow WebKitLibraries directory to be set from the command line
https://bugs.webkit.org/show_bug.cgi?id=148112

Reviewed by Brent Fulgham.

.:

* Source/cmake/OptionsWin.cmake:
Don't use an environment variable for WEBKIT_LIBRARIES_DIR.
Instead, use the default location if nothing is passed in from the command line.
This way we can set it from the command line for the AppleInternal build.
Also, set the output directories to be consistent between the old and new build systems (and ninja).

Source/WebCore:

* PlatformAppleWin.cmake:
* PlatformWinCairo.cmake:
Don't use an environment variable for WEBKIT_LIBRARIES_DIR.

Source/WebKit:

* PlatformWin.cmake:
Don't use an environment variable for WEBKIT_LIBRARIES_DIR.

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

4 years ago[OS X] Migrate off of CTFontSetRenderingParameters()
mmaxfield@apple.com [Tue, 18 Aug 2015 00:42:34 +0000 (00:42 +0000)]
[OS X] Migrate off of CTFontSetRenderingParameters()
https://bugs.webkit.org/show_bug.cgi?id=148113

Reviewed by Lucas Forschler.

Instead, use CTFontSetRenderingStyle().

No new tests because there is no behavior change.

* platform/spi/cocoa/CoreTextSPI.h:

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

4 years agoBuild Debug Suffix on Windows with CMake
achristensen@apple.com [Tue, 18 Aug 2015 00:21:17 +0000 (00:21 +0000)]
Build Debug Suffix on Windows with CMake
https://bugs.webkit.org/show_bug.cgi?id=148083

Reviewed by Brent Fulgham.

.:

* Source/cmake/OptionsWin.cmake:
Use debug libraries in debug suffix builds.

Source/JavaScriptCore:

* CMakeLists.txt:
* PlatformWin.cmake:
* shell/CMakeLists.txt:
* shell/PlatformWin.cmake:
Add DEBUG_SUFFIX

Source/WebCore:

* CMakeLists.txt:
* PlatformAppleWin.cmake:
* PlatformWin.cmake:
Add DEBUG_SUFFIX

Source/WebKit:

* CMakeLists.txt:
* PlatformWin.cmake:
Add DEBUG_SUFFIX

Source/WTF:

* wtf/PlatformWin.cmake:
Add DEBUG_SUFFIX

Tools:

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/PlatformWin.cmake:
Add DEBUG_SUFFIX

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

4 years agoImplement IntegerHasher
mmaxfield@apple.com [Mon, 17 Aug 2015 23:59:05 +0000 (23:59 +0000)]
Implement IntegerHasher
https://bugs.webkit.org/show_bug.cgi?id=147866

Reviewed by Darin Adler and Anders Carlsson.

Source/WebCore:

Rename StringHasher.h to Hasher.

No new tests because there is no behavior difference.

* contentextensions/DFAMinimizer.cpp: Use new #include.
* contentextensions/HashableActionList.h: Ditto.
* platform/graphics/FontFeatureSettings.cpp:
(WebCore::FontFeatureSettings::hash): Use new IntegerHasher class.
(WebCore::FontFeature::hash): Deleted.
* platform/graphics/FontFeatureSettings.h: Remove unnecessary function.
* platform/graphics/Gradient.cpp: Use new #include.
* platform/graphics/WidthCache.h: Ditto.

Source/WebInspectorUI:

Update comment.

* UserInterface/Base/Utilities.js:

Source/WebKit2:

Use new #include.

* DatabaseProcess/IndexedDB/IDBIdentifier.h:
* Platform/IPC/StringReference.cpp:

Source/WTF:

Rename StringHasher.h to Hasher.h, and include an IntegerHasher class.

* WTF.vcxproj/WTF.vcxproj: Update to target new file.
* WTF.vcxproj/WTF.vcxproj.filters: Ditto.
* WTF.xcodeproj/project.pbxproj: Ditto.
* wtf/CMakeLists.txt: Ditto.
* wtf/Hasher.h: Renamed from Source/WTF/wtf/StringHasher.h.
* wtf/text/CString.cpp: Use new #include
* wtf/text/StringHash.h: Ditto.
* wtf/text/StringImpl.h: Ditto.
* wtf/unicode/UTF8.cpp: Ditto.

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

4 years agoAdd WKWindowFeaturesRef and a new modern createNewPage UI client callback
andersca@apple.com [Mon, 17 Aug 2015 23:39:59 +0000 (23:39 +0000)]
Add WKWindowFeaturesRef and a new modern createNewPage UI client callback
https://bugs.webkit.org/show_bug.cgi?id=147989

Reviewed by Tim Horton.

Re-land this and make sure we actually allocate a WKWindowFeatures object.

* Platform/IPC/mac/ConnectionMac.mm:
* Shared/API/APIObject.h:
* Shared/API/c/WKBase.h:
* UIProcess/API/APIWindowFeatures.cpp: Added.
* UIProcess/API/APIWindowFeatures.h: Added.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/C/WKPageUIClient.h:
* UIProcess/API/C/WKWindowFeaturesRef.cpp: Added.
(WKWindowFeaturesGetTypeID):
* UIProcess/API/C/WKWindowFeaturesRef.h: Added.
* UIProcess/API/Cocoa/WKWindowFeatures.mm:
(-[WKWindowFeatures dealloc]):
(-[WKWindowFeatures menuBarVisibility]):
(-[WKWindowFeatures statusBarVisibility]):
(-[WKWindowFeatures toolbarsVisibility]):
(-[WKWindowFeatures allowsResizing]):
(-[WKWindowFeatures x]):
(-[WKWindowFeatures y]):
(-[WKWindowFeatures width]):
(-[WKWindowFeatures height]):
(-[WKWindowFeatures _apiObject]):
(-[WKWindowFeatures _initWithWindowFeatures:]): Deleted.
* UIProcess/API/Cocoa/WKWindowFeaturesInternal.h:
(WebKit::wrapper):
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPage):
* WebKit2.xcodeproj/project.pbxproj:

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

4 years agoWeb Inspector: InspectorTest should be a subclass of TestHarness
bburg@apple.com [Mon, 17 Aug 2015 23:37:05 +0000 (23:37 +0000)]
Web Inspector: InspectorTest should be a subclass of TestHarness
https://bugs.webkit.org/show_bug.cgi?id=148079

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Extract the frontend test harness into a subclass. Delete some code that
is now redundant. Sprinkle some ES6 syntax where possible.

Rewrite the code that redirects the Inspector page's console messages to
the test page, since it didn't appear to work any more.

* UserInterface/Test.html:
* UserInterface/Test/FrontendTestHarness.js: Added.
(FrontendTestHarness):
(FrontendTestHarness.prototype.completeTest):
(FrontendTestHarness.prototype.addResult):
(FrontendTestHarness.prototype.debugLog):
(FrontendTestHarness.prototype.evaluateInPage):
(FrontendTestHarness.prototype.expectNoError):
(FrontendTestHarness.prototype.testPageDidLoad):
(FrontendTestHarness.prototype.reloadPage):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput.createProxyConsoleHandler):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput):
(FrontendTestHarness.prototype.reportUncaughtException):
(FrontendTestHarness.prototype._resendResults):
* UserInterface/Test/Test.js:
(InspectorTest.EventDispatcher.prototype.dispatchEvent): Deleted.
(InspectorTest.EventDispatcher): Deleted.
(InspectorTest.log): Deleted.
(InspectorTest.assert): Deleted.
(InspectorTest.expectThat): Deleted.
(InspectorTest.debugLog): Deleted.
(InspectorTest.expectNoError): Deleted.
(InspectorTest.completeTest): Deleted.
(InspectorTest.evaluateInPage): Deleted.
(InspectorTest.addResult): Deleted.
(InspectorTest._resendResults): Deleted.
(InspectorTest.testPageDidLoad): Deleted.
(InspectorTest.reloadPage): Deleted.
(InspectorTest.reportUncaughtException): Deleted.

LayoutTests:

Rename InspectorTestProxy to TestPage.

* http/tests/inspector/debugger/debugger-test.js:
* http/tests/inspector/dom/shapes-test.js:
* http/tests/inspector/replay/replay-test.js:
* http/tests/inspector/resources/inspector-test.js:
(TestPage.registerInitializer):
(runTest):
(TestPage.completeTest):
(TestPage.debugLog):
(TestPage.addResult):
(TestPage.reportUncaughtException):
(InspectorTestProxy.registerInitializer): Deleted.
(InspectorTestProxy.completeTest): Deleted.
(InspectorTestProxy.debugLog): Deleted.
(InspectorTestProxy.addResult): Deleted.
(InspectorTestProxy.reportUncaughtException): Deleted.
* inspector/debugger/breakpoint-action-eval.html:
* inspector/debugger/resources/break-on-exception-tests.js:
* inspector/debugger/resources/script-for-breakpoint-actions.js:
(breakpointActions):
* inspector/debugger/search-scripts.html:
* inspector/replay/window-navigator-plugins-memoized.html:
* inspector/timeline/debugger-paused-while-recording.html:
* inspector/timeline/exception-in-injected-script-while-recording.html:

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

4 years agoRemove failing expectations for some WK2 tests that have passed for the
jhoneycutt@apple.com [Mon, 17 Aug 2015 23:03:28 +0000 (23:03 +0000)]
Remove failing expectations for some WK2 tests that have passed for the
last 15 builds.

* platform/ios-simulator-wk2/TestExpectations:

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

4 years agoLog actual PageCache retrieval success rate using diagnostic logging
cdumez@apple.com [Mon, 17 Aug 2015 22:57:27 +0000 (22:57 +0000)]
Log actual PageCache retrieval success rate using diagnostic logging
https://bugs.webkit.org/show_bug.cgi?id=147937

Reviewed by Antti Koivisto.

Log actual PageCache retrieval success rate using diagnostic logging.
Previously, we would only log how successful we are at saving entries
into the cache, which is not the most interesting metric.

* history/PageCache.cpp:
(WebCore::canCachePage):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
* page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::canCacheKey):
* page/DiagnosticLoggingKeys.h:

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

4 years agoWeb Inspector: Type profiler return types aren't showing up
commit-queue@webkit.org [Mon, 17 Aug 2015 22:57:23 +0000 (22:57 +0000)]
Web Inspector: Type profiler return types aren't showing up
https://bugs.webkit.org/show_bug.cgi?id=147348

Patch by Saam barati <sbarati@apple.com> on 2015-08-17
Reviewed by Brian Burg.

Bug #145995 changed the starting offset of a function to
be the open parenthesis of the function's parameter list.
Source/JavaScriptCore:

This broke JSC's type profiler protocol of communicating
return types of a function to the web inspector. This
is now fixed. The text offset used in the protocol is now
the first letter of the function/get/set/method name.
So "f" in "function a() {}", "s" in "set foo(){}", etc.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
* jsc.cpp:
(functionReturnTypeFor):

Source/WebInspectorUI:

This broke the type profiler's text offset based protocol with JSC.
The text offset used in the protocol is now the first letter of the
function/get/set/method name.  So "f" in "function a() {}", "s" in "set foo(){}", etc.

* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
(WebInspector.ScriptSyntaxTree.functionReturnDivot):

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

4 years agoSimplify how PlatformWebViews are created when view options change
andersca@apple.com [Mon, 17 Aug 2015 22:49:42 +0000 (22:49 +0000)]
Simplify how PlatformWebViews are created when view options change
https://bugs.webkit.org/show_bug.cgi?id=148093

Reviewed by Sam Weinig.

Instead of letting each port dictate when the PlatformWebView should be recreated we now do the following:

TestController::ensureViewSupportsOptionsForTest gets the view options for a test by calling
TestController::viewOptionsForTest, which returns a filled in ViewOptions struct for a given test. It also allows
ports to add/override settings by calling TestController::updatePlatformSpecificViewOptionsForTest.

If the current PlatformWebView doesn't support the given view options, delete the web view and create a new one.

Also, get rid of the first call to TestController::createWebViewWithOptions in TestController::initialize and
always rely on TestController::ensureViewSupportsOptionsForTest creating a PlatformWebView for us.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::ensureViewSupportsOptionsForTest):
(WTR::shouldUseFixedLayout):
(WTR::TestController::viewOptionsForTest):
(WTR::TestController::updateWebViewSizeForTest):
(WTR::TestController::updateWindowScaleForTest):
(WTR::TestController::configureViewForTest):
(WTR::TestController::initialize): Deleted.
(WTR::TestController::ensureViewSupportsOptions): Deleted.
(WTR::TestController::updateLayoutTypeForTest): Deleted.
(WTR::TestController::platformConfigureViewForTest): Deleted.
(WTR::TestController::platformResetPreferencesToConsistentValues): Deleted.
(WTR::TestController::run): Deleted.
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/efl/TestControllerEfl.cpp:
(WTR::shouldUseFixedLayout):
(WTR::TestController::updatePlatformSpecificViewOptionsForTest):
(WTR::TestController::platformConfigureViewForTest):
(WTR::TestController::platformResetPreferencesToConsistentValues):
* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::updatePlatformSpecificViewOptionsForTest):
* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::updatePlatformSpecificViewOptionsForTest):
(WTR::TestController::platformConfigureViewForTest):

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

4 years agoAdd performance tests for traversal of collections returned by getElementsByClassName...
cdumez@apple.com [Mon, 17 Aug 2015 22:27:56 +0000 (22:27 +0000)]
Add performance tests for traversal of collections returned by getElementsByClassName() / getElementsByTagName()
https://bugs.webkit.org/show_bug.cgi?id=148080

Reviewed by Antti Koivisto.

Add performance tests for traversal of *uncached* collections returned
by getElementsByClassName() / getElementsByTagName(). These methods
will soon be updated to return an HTMLCollection instead of a
NodeList and we need to make sure we don't regress performance in the
process.

* DOM/get-elements-by-class-name-traversal-uncached.html: Added.
* DOM/get-elements-by-tag-name-traversal-uncached.html: Added.

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

4 years agoWeb Inspector: REGRESSION: spurious console.assert inside ResourceContentView._conten...
bburg@apple.com [Mon, 17 Aug 2015 22:27:36 +0000 (22:27 +0000)]
Web Inspector: REGRESSION: spurious console.assert inside ResourceContentView._contentAvailable
https://bugs.webkit.org/show_bug.cgi?id=147886

Reviewed by Joseph Pecoraro.

* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype._hasContent): Fix the style class name.

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

4 years ago[ES6] Implement ES6 arrow function syntax. Arrow function specific features. Lexical...
commit-queue@webkit.org [Mon, 17 Aug 2015 22:24:20 +0000 (22:24 +0000)]
[ES6] Implement ES6 arrow function syntax. Arrow function specific features. Lexical bind of this
https://bugs.webkit.org/show_bug.cgi?id=144956

Source/JavaScriptCore:

Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-08-17
Reviewed by Saam Barati.

Added support of ES6 arrow function specific feature, lexical bind of this and no constructor. http://wiki.ecmascript.org/doku.php?id=harmony:arrow_function_syntax
In patch were implemented the following cases:
   this - variable |this| is point to the |this| of the function where arrow function is declared. Lexical bind of |this|
   constructor - the using of the command |new| for arrow function leads to runtime error
   call(), apply(), bind()  - methods can only pass in arguments, but has no effect on |this|

* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/BytecodeList.json:
* bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
* bytecode/ExecutableInfo.h:
(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::isArrowFunction):
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::isArrowFunction):
* bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::codeBlockFor):
* bytecode/UnlinkedFunctionExecutable.h:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewFunctionCommon):
(JSC::BytecodeGenerator::emitNewFunctionExpression):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitLoadArrowFunctionThis):
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::ArrowFuncExprNode::emitBytecode):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToPhantomNewFunction):
(JSC::DFG::Node::hasCellOperand):
(JSC::DFG::Node::isFunctionAllocation):
* dfg/DFGNodeType.h:
* dfg/DFGObjectAllocationSinkingPhase.cpp:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGPromotedHeapLocation.cpp:
(WTF::printInternal):
* dfg/DFGPromotedHeapLocation.h:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileLoadArrowFunctionThis):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileNewFunction):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGStoreBarrierInsertionPhase.cpp:
* dfg/DFGStructureRegistrationPhase.cpp:
(JSC::DFG::StructureRegistrationPhase::run):
* ftl/FTLAbstractHeapRepository.cpp:
* ftl/FTLAbstractHeapRepository.h:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToLLVM::compileLoadArrowFunctionThis):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
* interpreter/Interpreter.cpp:
* interpreter/Interpreter.h:
* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState): Added 3 arguments version for windows build.
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::callOperation):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_load_arrowfunction_this):
(JSC::JIT::emit_op_new_func_exp):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_arrow_func_exp):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_load_arrowfunction_this):
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* llint/LLIntOffsetsExtractor.cpp:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setUpCall):
* llint/LLIntSlowPaths.h:
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createFunctionMetadata):
(JSC::ASTBuilder::createArrowFunctionExpr):
* parser/NodeConstructors.h:
(JSC::BaseFuncExprNode::BaseFuncExprNode):
(JSC::FuncExprNode::FuncExprNode):
(JSC::ArrowFuncExprNode::ArrowFuncExprNode):
* parser/Nodes.cpp:
(JSC::FunctionMetadataNode::FunctionMetadataNode):
* parser/Nodes.h:
(JSC::ExpressionNode::isArrowFuncExprNode):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::Parser<LexerType>::parseFunctionInfo):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createFunctionMetadata):
* runtime/Executable.cpp:
(JSC::ScriptExecutable::newCodeBlockFor):
* runtime/Executable.h:
* runtime/JSArrowFunction.cpp: Added.
(JSC::JSArrowFunction::destroy):
(JSC::JSArrowFunction::create):
(JSC::JSArrowFunction::JSArrowFunction):
(JSC::JSArrowFunction::createWithInvalidatedReallocationWatchpoint):
(JSC::JSArrowFunction::visitChildren):
(JSC::JSArrowFunction::getConstructData):
* runtime/JSArrowFunction.h: Added.
(JSC::JSArrowFunction::allocationSize):
(JSC::JSArrowFunction::createImpl):
(JSC::JSArrowFunction::boundThis):
(JSC::JSArrowFunction::createStructure):
(JSC::JSArrowFunction::offsetOfThisValue):
* runtime/JSFunction.h:
* runtime/JSFunctionInlines.h:
(JSC::JSFunction::JSFunction):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::arrowFunctionStructure):
* tests/stress/arrowfunction-activation-sink-osrexit-default-value-tdz-error.js: Added.
* tests/stress/arrowfunction-activation-sink-osrexit-default-value.js: Added.
* tests/stress/arrowfunction-activation-sink-osrexit.js: Added.
* tests/stress/arrowfunction-activation-sink.js: Added.
* tests/stress/arrowfunction-bound.js: Added.
* tests/stress/arrowfunction-call.js: Added.
* tests/stress/arrowfunction-constructor.js: Added.
* tests/stress/arrowfunction-lexical-bind-this-1.js: Added.
* tests/stress/arrowfunction-lexical-bind-this-2.js: Added.
* tests/stress/arrowfunction-lexical-bind-this-3.js: Added.
* tests/stress/arrowfunction-lexical-bind-this-4.js: Added.
* tests/stress/arrowfunction-lexical-bind-this-5.js: Added.
* tests/stress/arrowfunction-lexical-bind-this-6.js: Added.
* tests/stress/arrowfunction-lexical-this-activation-sink-osrexit.js: Added.
* tests/stress/arrowfunction-lexical-this-activation-sink.js: Added.
* tests/stress/arrowfunction-lexical-this-sinking-no-double-allocate.js: Added.
* tests/stress/arrowfunction-lexical-this-sinking-osrexit.js: Added.
* tests/stress/arrowfunction-lexical-this-sinking-put.js: Added.
* tests/stress/arrowfunction-others.js: Added.
* tests/stress/arrowfunction-run-10-1.js: Added.
* tests/stress/arrowfunction-run-10-2.js: Added.
* tests/stress/arrowfunction-run-10000-1.js: Added.
* tests/stress/arrowfunction-run-10000-2.js: Added.
* tests/stress/arrowfunction-sinking-no-double-allocate.js: Added.
* tests/stress/arrowfunction-sinking-osrexit.js: Added.
* tests/stress/arrowfunction-sinking-put.js: Added.
* tests/stress/arrowfunction-tdz.js: Added.
* tests/stress/arrowfunction-typeof.js: Added.

LayoutTests:

Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-08-17
Reviewed by Saam Barati.

* js/arrowfunction-bind-expected.txt: Added.
* js/arrowfunction-bind.html: Added.
* js/arrowfunction-call-expected.txt: Added.
* js/arrowfunction-call.html: Added.
* js/arrowfunction-constructor-expected.txt: Added.
* js/arrowfunction-constructor.html: Added.
* js/arrowfunction-lexical-bind-this-expected.txt: Added.
* js/arrowfunction-lexical-bind-this.html: Added.
* js/arrowfunction-others-expected.txt: Added.
* js/arrowfunction-others.html: Added.
* js/arrowfunction-tdz-expected.txt: Added.
* js/arrowfunction-tdz.html: Added.
* js/arrowfunction-typeof-expected.txt: Added.
* js/arrowfunction-typeof.html: Added.
* js/regress/arrowfunction-call-expected.txt: Added.
* js/regress/arrowfunction-call.html: Added.
* js/regress/script-tests/arrowfunction-call.js: Added.
* js/regress/script-tests/function-call.js: Added.
* js/script-tests/arrowfunction-bind.js: Added.
* js/script-tests/arrowfunction-call.js: Added.
* js/script-tests/arrowfunction-constructor.js: Added.
* js/script-tests/arrowfunction-lexical-bind-this.js: Added.
* js/script-tests/arrowfunction-others.js: Added.
* js/script-tests/arrowfunction-tdz.js: Added.
* js/script-tests/arrowfunction-typeof.js: Added.

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

4 years agoWeb Inspector: split TestStub.js into multiple files and modernize it
bburg@apple.com [Mon, 17 Aug 2015 21:51:45 +0000 (21:51 +0000)]
Web Inspector: split TestStub.js into multiple files and modernize it
https://bugs.webkit.org/show_bug.cgi?id=148077

Reviewed by Timothy Hatcher.
Source/WebInspectorUI:

Since we want to share files between the two harnesses, split some of the parts
into different files so not everything has to be included at once.

Rename InjectedTestHarness to just TestHarness. Update some code to use
ES6 features where appropriate. Put test classes into Test/ directory.

* UserInterface/Base/TestStub.js: Removed.
* UserInterface/Test.html:
* UserInterface/Test/InspectorProtocol.js: Added.
(InspectorProtocol.sendCommand):
(InspectorProtocol.awaitCommand):
(InspectorProtocol.awaitEvent.):
(InspectorProtocol.awaitEvent):
(InspectorProtocol.addEventListener):
(InspectorProtocol.sendMessage):
(InspectorProtocol.checkForError):
(InspectorProtocol.dispatchMessageFromBackend):
* UserInterface/Test/ProtocolTestHarness.js: Added.
(ProtocolTestHarness.prototype.completeTest):
(ProtocolTestHarness.prototype.addResult):
(ProtocolTestHarness.prototype.debugLog):
(ProtocolTestHarness.prototype.evaluateInPage):
(ProtocolTestHarness):
* UserInterface/Test/Test.js: Renamed from Source/WebInspectorUI/UserInterface/Base/Test.js.
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.UIString):
(WebInspector.updateDockedState):
(WebInspector.updateDockingAvailability):
(InspectorTest.EventDispatcher.prototype.dispatchEvent):
(InspectorTest.EventDispatcher):
(InspectorTest.log):
(InspectorTest.assert):
(InspectorTest.expectThat):
(InspectorTest.debugLog):
(InspectorTest.expectNoError):
(InspectorTest.completeTest):
(InspectorTest.evaluateInPage):
(InspectorTest.addResult):
(InspectorTest._resendResults):
(InspectorTest.testPageDidLoad):
(InspectorTest.reloadPage):
(InspectorTest.reportUncaughtException):
* UserInterface/Test/TestHarness.js: Added.
(TestHarness):
(TestHarness.prototype.completeTest):
(TestHarness.prototype.addResult):
(TestHarness.prototype.debugLog):
(TestHarness.prototype.evaluateInPage):
(TestHarness.prototype.createAsyncSuite):
(TestHarness.prototype.createSyncSuite):
(TestHarness.prototype.get logCount):
(TestHarness.prototype.log):
(TestHarness.prototype.assert):
(TestHarness.prototype.expectThat):
* UserInterface/Test/TestStub.js: Added.
* UserInterface/Test/TestSuite.js: Added.
(TestSuite):
(TestSuite.prototype.runTestCasesAndFinish):
(TestSuite.prototype.runTestCases):
(TestSuite.prototype.get passCount):
(TestSuite.prototype.get skipCount):
(TestSuite.prototype.addTestCase):
(AsyncTestSuite.prototype.runTestCasesAndFinish.finish):
(AsyncTestSuite.prototype.runTestCasesAndFinish):
(AsyncTestSuite.prototype.runTestCases):
(AsyncTestSuite):
(SyncTestSuite.prototype.runTestCasesAndFinish):
(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):
* UserInterface/TestStub.html:

LayoutTests:

Add the prefix 'TestPage' to everything in protocol-test.js. Continue
exporting it to the global namespace for backwards compatibility, too.

Rename some things to match changes in the test harness. Tighten up
preconditions for test suite and test case names. Sprinkle some ES6.

* http/tests/inspector/dom/resources/InspectorDOMListener.js:
* http/tests/inspector/resources/console-test.js:
* http/tests/inspector/resources/probe-test.js:
* http/tests/inspector/resources/protocol-test.js:
(TestPage.registerInitializer):
(TestPage.debugLog.window.debugLog):
(TestPage.log.window.log):
(TestPage.closeTest.window.closeTest):
(TestPage.runTest.window.runTest):
(ProtocolTestProxy.registerInitializer): Deleted.
(debugLog): Deleted.
(log): Deleted.
(closeTest): Deleted.
(runTest): Deleted.
* inspector/dom/resources/dom-search-queries.js:
* inspector/unit-tests/async-test-suite.html:
* inspector/unit-tests/sync-test-suite.html:

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

4 years agoAPI::PageConfiguration's sessionID needs to be set whenever the API::WebsiteDataStore...
weinig@apple.com [Mon, 17 Aug 2015 21:50:24 +0000 (21:50 +0000)]
API::PageConfiguration's sessionID needs to be set whenever the API::WebsiteDataStore is set
https://bugs.webkit.org/show_bug.cgi?id=148097

Reviewed by Anders Carlsson.

Source/WebKit2:

We were getting an empty SessionID set on the WebPageProxy (and crashing asserting down the line)
when using a WKPageConfiguration with a WKWebsiteDataStore set on it.

Tests:
    WebKit2.WKPageConfigurationBasicWithDataStore
    WebKit2.WKPageConfigurationBasicWithNonPersistentDataStore

* UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::setWebsiteDataStore):
Set the sessionID member whenever changing the WebsiteDataStore.

* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreGetDefaultDataStore):
(WKWebsiteDataStoreCreateNonPersistentDataStore):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
Expose functions for getting default and new non-persistent data stores via the C-SPI. Useful
for testing and transitioning users of the C-SPI to the new model.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
Remove explicit setting of the sessionID. This is handled by the above call to setWebsiteDataStore().

Tools:

* TestWebKitAPI/Tests/WebKit2/WKPageConfiguration.cpp:
Add tests for WebsiteDataStores in the WKPageConfiguration.

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

4 years agoCleanup the builtin JavaScript files
weinig@apple.com [Mon, 17 Aug 2015 21:40:30 +0000 (21:40 +0000)]
Cleanup the builtin JavaScript files
https://bugs.webkit.org/show_bug.cgi?id=147382

Reviewed by Geoffrey Garen.

* builtins/Array.prototype.js:
* builtins/ArrayConstructor.js:
* builtins/ArrayIterator.prototype.js:
* builtins/Function.prototype.js:
* builtins/Iterator.prototype.js:
* builtins/ObjectConstructor.js:
* builtins/StringConstructor.js:
* builtins/StringIterator.prototype.js:
Unify the style of the built JavaScript files.

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

4 years agoCannot change WKWebView scrollView deceleration rate
wenson_hsieh@apple.com [Mon, 17 Aug 2015 20:39:04 +0000 (20:39 +0000)]
Cannot change WKWebView scrollView deceleration rate
https://bugs.webkit.org/show_bug.cgi?id=148086
<rdar://problem/21893685>

Reviewed by Simon Fraser.

Updates the preferred scroll deceleration factor when the scrollView's decelerationRate is explicitly set by the
user, so when snap scrolling is inactive and [WKWebView scrollViewWillBeginDragging] sets its scrollView's
decelerationRate to the preferred decelerationRate, it will be set to the updated value.

* UIProcess/ios/WKScrollView.mm:
(-[WKScrollView setDecelerationRate:]): Overrides setDecelerationRate to update _preferredScrollDecelerationFactor.

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

4 years agoMove some commands from ./CMakeLists.txt to Source/cmake
achristensen@apple.com [Mon, 17 Aug 2015 20:37:06 +0000 (20:37 +0000)]
Move some commands from ./CMakeLists.txt to Source/cmake
https://bugs.webkit.org/show_bug.cgi?id=148003

Reviewed by Brent Fulgham.

* CMakeLists.txt:
.:

Moved functionality to WebKitCommon.cmake and WebKitFS.cmake and made conditional
so we can change directory structure from command line parameters.
* Source/cmake/OptionsAppleWin.cmake:
* Source/cmake/OptionsWin.cmake: Copied from Source/cmake/OptionsWindows.cmake.
* Source/cmake/OptionsWinCairo.cmake:
* Source/cmake/OptionsWindows.cmake: Removed.
* Source/cmake/WebKitCommon.cmake: Added.
* Source/cmake/WebKitFS.cmake:

Source/JavaScriptCore:

Added commands needed to build JSC by itself.

Source/WebCore:

Added commands needed to build WebCore by itself.

Source/WebKit:

Added some commands needed to build WebKit by itself.

Source/WTF:

Added commands needed to build WTF by itself.

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

4 years agoWeb Inspector: load ProtocolTestStub from the WebInspectorUI bundle
bburg@apple.com [Mon, 17 Aug 2015 20:33:48 +0000 (20:33 +0000)]
Web Inspector: load ProtocolTestStub from the WebInspectorUI bundle
https://bugs.webkit.org/show_bug.cgi?id=147955

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Move ProtocolTestStub.{html,js} into the actual WebInspectorUI project.

* UserInterface/Base/TestStub.js: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.js.
* UserInterface/TestStub.html: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.html.

Tools:

To enable sharing of common test code between protocol and model tests,
start loading the protocol TestStub.js through the WebInspectorUI bundle.

This patch adds the read-only getter TestRunner.inspectorTestStubURL, which
protocol-test.js uses to load the inspector frontend stub into its iframe
from an arbitrary local file URL.

* DumpRenderTree/TestRunner.cpp:
(getInspectorTestStubURLCallback):
(TestRunner::staticValues):
* DumpRenderTree/TestRunner.h:
* DumpRenderTree/mac/TestRunnerMac.mm:
(SOFT_LINK_STAGED_FRAMEWORK):
(TestRunner::inspectorTestStubURL):
* DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::inspectorTestStubURL):
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/InjectedBundle/efl/TestRunnerEfl.cpp:
(WTR::TestRunner::inspectorTestStubURL):
* WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
(WTR::TestRunner::inspectorTestStubURL):
* WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:
(WTR::TestRunner::inspectorTestStubURL):

LayoutTests:

Since the inspector stub cannot open files that live in the LayoutTests
directory, adopt the test helper marshalling approach used by inspector.js.
Each helper must register its code for marshalling and explicitly put globals
on the window object.

Use script tags rather than importScript to include helpers in a test.

* TestExpectations: For now, skip inspector http tests. These should be rewritten
to use inspector-test.js, which does not run into cross-origin problems.

Rebaseline some test results to account for shifted line numbers (yuck).

* http/tests/inspector/dom/resources/InspectorDOMListener.js:
* http/tests/inspector/resources/console-test.js:
* http/tests/inspector/resources/probe-test.js:
* http/tests/inspector/resources/protocol-test.js:
(ProtocolTestProxy.registerInitializer):
(log):
(runTest.runInitializationMethodsInFrontend):
(runTest.runTestMethodInFrontend):
(runTest):
* inspector/console/console-message.html:
* inspector/console/css-source-locations-expected.txt:
* inspector/console/css-source-locations.html:
* inspector/console/js-source-locations-expected.txt:
* inspector/console/js-source-locations.html:
* inspector/console/x-frame-options-message-expected.txt:
* inspector/console/x-frame-options-message.html:
* inspector/debugger/didSampleProbe-multiple-probes.html:
* inspector/debugger/setBreakpoint-actions.html:
* inspector/debugger/setBreakpoint-options-exception.html:
* inspector/dom/dom-search-expected.txt:
* inspector/dom/dom-search-with-context.html:
* inspector/dom/dom-search.html:
* inspector/dom/resources/dom-search-queries.js:

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

4 years agoChange email address from saambarati1@gmail.com to sbarati@apple.com
saambarati1@gmail.com [Mon, 17 Aug 2015 20:29:09 +0000 (20:29 +0000)]
Change email address from saambarati1@gmail.com to sbarati@apple.com

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

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

4 years ago[WinCairo] Accelerated compositing does not respect device scale factor.
peavo@outlook.com [Mon, 17 Aug 2015 20:22:35 +0000 (20:22 +0000)]
[WinCairo] Accelerated compositing does not respect device scale factor.
https://bugs.webkit.org/show_bug.cgi?id=148085

Reviewed by Brent Fulgham.

Scale root layer's transformation matrix with device scale factor.

* WebCoreSupport/AcceleratedCompositingContext.cpp:
(AcceleratedCompositingContext::initialize):
(AcceleratedCompositingContext::startedAnimation):
(AcceleratedCompositingContext::applyDeviceScaleFactor):
(AcceleratedCompositingContext::compositeLayersToContext):
(AcceleratedCompositingContext::resizeRootLayer):
(AcceleratedCompositingContext::flushAndRenderLayers):
(AcceleratedCompositingContext::paintContents):
(AcceleratedCompositingContext::deviceScaleFactor):
* WebCoreSupport/AcceleratedCompositingContext.h:
* WebView.cpp:
(WebView::repaint):

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

4 years agoRemove unused multisampling check
commit-queue@webkit.org [Mon, 17 Aug 2015 20:19:55 +0000 (20:19 +0000)]
Remove unused multisampling check
https://bugs.webkit.org/show_bug.cgi?id=148030

Patch by Alex Christensen <achristensen@webkit.org> on 2015-08-17
Reviewed by Dean Jackson.

No change in behavior.
Extensions3DOpenGLCommon.m_maySupportMultisampling is always true.

* platform/graphics/Extensions3D.h:
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
* platform/graphics/opengl/Extensions3DOpenGLCommon.h:
(WebCore::Extensions3DOpenGLCommon::isImagination):
(WebCore::Extensions3DOpenGLCommon::vendor):
(WebCore::Extensions3DOpenGLCommon::requiresBuiltInFunctionEmulation):
(WebCore::Extensions3DOpenGLCommon::requiresRestrictedMaximumTextureSize):
(WebCore::Extensions3DOpenGLCommon::maySupportMultisampling): Deleted.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::validateDepthStencil):

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

4 years agoRefactor BuildbotQueueView._presentPopoverForPendingCommits to work more generically...
commit-queue@webkit.org [Mon, 17 Aug 2015 19:45:11 +0000 (19:45 +0000)]
Refactor BuildbotQueueView._presentPopoverForPendingCommits to work more generically with
repositories other than "openSource" and "internal".
https://bugs.webkit.org/show_bug.cgi?id=147961

Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-17
Reviewed by Daniel Bates.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Refactored to work more
generically with repositories other than "openSource" and "internal".

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

4 years ago[ES6] Implement Reflect.get
utatane.tea@gmail.com [Mon, 17 Aug 2015 18:56:52 +0000 (18:56 +0000)]
[ES6] Implement Reflect.get
https://bugs.webkit.org/show_bug.cgi?id=147925

Reviewed by Geoffrey Garen.

This patch implements Reflect.get API.
It can take the receiver object as the third argument.
When the receiver is specified and there's a getter for the given property name,
we call the getter with the receiver as the |this| value.

* runtime/ReflectObject.cpp:
(JSC::reflectObjectGet):
* runtime/SparseArrayValueMap.cpp:
(JSC::SparseArrayEntry::get): Deleted.
* runtime/SparseArrayValueMap.h:
* tests/stress/reflect-get.js: Added.
(shouldBe):
(shouldThrow):
(.get shouldThrow):
(.get var):
(get var.object.get hello):
(.get shouldBe):
(get var.object.set hello):

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

4 years agoREGRESSION (r188486): Crash in SubresourceLoader::didReceiveResponse() when Temporary...
aestes@apple.com [Mon, 17 Aug 2015 18:52:38 +0000 (18:52 +0000)]
REGRESSION (r188486): Crash in SubresourceLoader::didReceiveResponse() when TemporaryChange goes out of scope
https://bugs.webkit.org/show_bug.cgi?id=148082

Reviewed by Alexey Proskuryakov.

Covered by existing tests run under ASan or Guard Malloc.

* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse): Ensure that callingDidReceiveResponse is destroyed while the
SubresourceLoader is still alive by declaring it after protect.

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

4 years agowill-change should sometimes trigger compositing
simon.fraser@apple.com [Mon, 17 Aug 2015 18:32:49 +0000 (18:32 +0000)]
will-change should sometimes trigger compositing
https://bugs.webkit.org/show_bug.cgi?id=148072

Reviewed by Tim Horton.
Source/JavaScriptCore:

Include will-change as a reason for compositing.

* inspector/protocol/LayerTree.json:

Source/WebCore:

Implement the compositing side-effects of will-change, if any of the
following properties are specified:
    opacity
    filter (as -webkit-filter)
    backdrop-filter (as -webkit-backdrop-filter)
    transform (on transformable elements only)

Tests: compositing/layer-creation/will-change-change.html
       compositing/layer-creation/will-change-layer-creation.html

* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): Tell the inspector
about will-change.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::adjustStyleDifference): Need to trigger a recomposite if
will-change includes a compositing trigger property. This gets called before and
after setting the style, so this checks both states.
(WebCore::RenderElement::shouldWillChangeCreateStackingContext):
* rendering/RenderElement.h:
(WebCore::RenderElement::willChangeCreatesStackingContext): Helper function that
RenderInline uses to determine if it needs to create a RenderLayer, since RenderInline
doesn't get automatic layer RenderLayers as a side effect of having non-auto z-index
in the style.
* rendering/RenderInline.h: Need to trigger a RenderLayer if will-change includes
a property that applies to inlines.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingLayer): Call requiresCompositingForWillChange().
(WebCore::RenderLayerCompositor::requiresOwnBackingStore): Call requiresCompositingForWillChange().
(WebCore::RenderLayerCompositor::reasonsForCompositing): Include requiresCompositingForWillChange().
(WebCore::RenderLayerCompositor::requiresCompositingForWillChange): If will-change contains a
property that would trigger compositing on this element, return true.
* rendering/RenderLayerCompositor.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout): Set ContextSensitivePropertyWillChange in
changedContextSensitiveProperties if will-change changes.
* rendering/style/RenderStyle.h: Rename for clarity.
* rendering/style/RenderStyleConstants.h: Add ContextSensitivePropertyWillChange.
* rendering/style/WillChangeData.cpp:
(WebCore::propertyCreatesStackingContext): Subset of properties that create stacking
context on any element.
(WebCore::propertyCreatesStackingContextOnBoxesOnly): Additional properties that
create stacking context on boxes.
(WebCore::propertyTriggersCompositing): Properties that trigger compositing on
any element.
(WebCore::propertyTriggersCompositingOnBoxesOnly): Additional properties that
trigger compositing on boxes.
(WebCore::WillChangeData::addFeature): As features are added, manage a set of
flags to know if they trigger stacking context or compositing, on inlines and boxes.
(WebCore::WillChangeData::createsStackingContext): Deleted.
* rendering/style/WillChangeData.h:
(WebCore::WillChangeData::canCreateStackingContext):
(WebCore::WillChangeData::canCreateStackingContextOnInline):
(WebCore::WillChangeData::canTriggerCompositing):
(WebCore::WillChangeData::canTriggerCompositingOnInline):

Source/WebInspectorUI:

Have the web inspector show a correct compositing reason for will-change.
This could be improved to indicate which specific value in will-change triggered
the compositing.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
(WebInspector.LayerTreeDetailsSidebarPanel):

LayoutTests:

* compositing/layer-creation/will-change-change-expected.txt: Added.
* compositing/layer-creation/will-change-change.html: Added.
* compositing/layer-creation/will-change-layer-creation-expected.txt: Added.
* compositing/layer-creation/will-change-layer-creation.html: Added.

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