WebKit-https.git
4 years agoNumeric setter on prototype doesn't get called.
utatane.tea@gmail.com [Tue, 11 Aug 2015 19:11:55 +0000 (19:11 +0000)]
Numeric setter on prototype doesn't get called.
https://bugs.webkit.org/show_bug.cgi?id=144252

Reviewed by Darin Adler.

Source/JavaScriptCore:

When switching the blank indexing type to the other one in putByIndex,
if the `structure(vm)->needsSlowPutIndexing()` is true, we need to switch
it to the slow put indexing type and reloop the putByIndex since there may
be some indexing accessor in the prototype chain. Previously, we just set
the value into the allocated vector.

In the putDirectIndex case, we just store the value to the vector.
This is because putDirectIndex is the operation to store the own property
and it does not check the accessors in the prototype chain.

* runtime/JSObject.cpp:
(JSC::JSObject::putByIndexBeyondVectorLength):
* tests/stress/injected-numeric-setter-on-prototype.js: Added.
(shouldBe):
(Trace):
(Trace.prototype.trace):
(Trace.prototype.get count):
(.):
* tests/stress/numeric-setter-on-prototype-non-blank-array.js: Added.
(shouldBe):
(Trace):
(Trace.prototype.trace):
(Trace.prototype.get count):
(.):
* tests/stress/numeric-setter-on-prototype.js: Added.
(shouldBe):
(Trace):
(Trace.prototype.trace):
(Trace.prototype.get count):
(.z.__proto__.set 3):
* tests/stress/numeric-setter-on-self.js: Added.
(shouldBe):
(Trace):
(Trace.prototype.trace):
(Trace.prototype.get count):
(.y.set 2):

LayoutTests:

Update the test expectation file.

* js/class-syntax-string-and-numeric-names-expected.txt:

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

4 years ago[Win] Unreviewed gardening.
bfulgham@apple.com [Tue, 11 Aug 2015 18:29:00 +0000 (18:29 +0000)]
[Win] Unreviewed gardening.

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: Add missing
file references so they appear in the proper IDE locations.

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

4 years agoWeb Inspector: use different namespaces in test fixtures for protocol tests and front...
commit-queue@webkit.org [Tue, 11 Aug 2015 18:28:31 +0000 (18:28 +0000)]
Web Inspector: use different namespaces in test fixtures for protocol tests and frontend tests
https://bugs.webkit.org/show_bug.cgi?id=147787

Patch by Brian Burg <bburg@apple.com> on 2015-08-11
Reviewed by Timothy Hatcher.

Refactor test methods to use three distinct namespaces to reflect their implementation:

- InspectorProtocol contains commands that are only used from within protocol tests.
This includes sending and receiving protocol messages and checking message errors.

- InspectorTest contains test methods for full inspector frontend tests.

- ProtocolTest contains test methods for protocol tests.

In a subsequent patch, most methods in InspectorTest and ProtocolTest namespaces
will be unified so that implementations of log, assert, etc. are no longer duplicated.
For now, at least make it obvious at each callsite what code is being invoked.

* http/tests/inspector/console/access-inspected-object.html:
* http/tests/inspector/dom/resources/InspectorDOMListener.js:
* http/tests/inspector/page/loading-iframe-document-node.html:
* http/tests/inspector/resources/ProtocolTestStub.js:
* http/tests/inspector/resources/console-test.js:
* http/tests/inspector/resources/probe-test.js:
* inspector/console/console-message.html:
* inspector/console/css-source-locations.html:
* inspector/console/js-source-locations.html:
* inspector/console/x-frame-options-message.html:
* inspector/css/getSupportedCSSProperties.html:
* inspector/debugger/breakpoint-action-detach.html:
* inspector/debugger/breakpoint-action-with-exception.html:
* inspector/debugger/breakpoint-condition-detach.html:
* inspector/debugger/breakpoint-condition-with-bad-script.html:
* inspector/debugger/breakpoint-condition-with-exception.html:
* inspector/debugger/breakpoint-eval-with-exception.html:
* inspector/debugger/breakpoint-inside-conditons-and-actions.html:
* inspector/debugger/call-frame-function-name.html:
* inspector/debugger/call-frame-this-host.html:
* inspector/debugger/call-frame-this-nonstrict.html:
* inspector/debugger/call-frame-this-strict.html:
* inspector/debugger/debugger-statement.html:
* inspector/debugger/didSampleProbe-multiple-probes.html:
* inspector/debugger/hit-breakpoint-from-console.html:
* inspector/debugger/nested-inspectors.html:
* inspector/debugger/pause-dedicated-worker.html:
* inspector/debugger/pause-on-assert.html:
* inspector/debugger/regress-133182.html:
* inspector/debugger/removeBreakpoint.html:
* inspector/debugger/searchInContent-linebreaks.html:
* inspector/debugger/setBreakpoint-actions.html:
* inspector/debugger/setBreakpoint-autoContinue.html:
* inspector/debugger/setBreakpoint-column.html:
* inspector/debugger/setBreakpoint-condition.html:
* inspector/debugger/setBreakpoint-dfg-and-modify-local.html:
* inspector/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local.html:
* inspector/debugger/setBreakpoint-dfg.html:
* inspector/debugger/setBreakpoint-options-exception.html:
* inspector/debugger/setBreakpoint.html:
* inspector/debugger/setBreakpointByUrl-sourceURL.html:
* inspector/debugger/setPauseOnExceptions-all.html:
* inspector/debugger/setPauseOnExceptions-none.html:
* inspector/debugger/setPauseOnExceptions-uncaught.html:
* inspector/debugger/setVariableValue.html:
* inspector/debugger/terminate-dedicated-worker-while-paused.html:
* inspector/dom-debugger/node-removed.html:
* inspector/dom/dom-remove-events.html:
* inspector/dom/dom-search-crash.html:
* inspector/dom/dom-search-with-context.html:
* inspector/dom/dom-search.html:
* inspector/dom/focus.html:
* inspector/dom/getAccessibilityPropertiesForNode.html:
* inspector/dom/getAccessibilityPropertiesForNode_liveRegion.html:
* inspector/dom/getAccessibilityPropertiesForNode_mouseEventNodeId.html:
* inspector/dom/highlight-flow-with-no-region.html:
* inspector/dom/remove-multiple-nodes.html:
* inspector/dom/request-child-nodes-depth.html:
* inspector/layers/layers-anonymous.html:
* inspector/layers/layers-blending-compositing-reasons.html:
* inspector/layers/layers-compositing-reasons.html:
* inspector/layers/layers-for-node.html:
* inspector/layers/layers-generated-content.html:
* inspector/layers/layers-reflected-content.html:
* inspector/page/archive.html:
* inspector/page/frameScheduledNavigation.html:
* inspector/page/frameStartedLoading.html:
* inspector/page/javascriptDialogEvents.html:
* inspector/page/setEmulatedMedia.html:
* inspector/runtime/getProperties.html:
* inspector/unit-tests/async-test-suite.html:
* inspector/unit-tests/sync-test-suite.html:

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

4 years ago[Win] Unreviewed gardening.
bfulgham@apple.com [Tue, 11 Aug 2015 18:26:54 +0000 (18:26 +0000)]
[Win] Unreviewed gardening.

* WTF.vcxproj/WTF.vcxproj.filters: Place file references so that files appear in correct
folders in IDE.

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

4 years agoUnreviewed windows build fix for VS2015.
bfulgham@apple.com [Tue, 11 Aug 2015 18:21:41 +0000 (18:21 +0000)]
Unreviewed windows build fix for VS2015.

* bindings/ScriptValue.h: Add missing JSCJSValueInlines.h include.

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

4 years ago[ES6] Implement Reflect.has
utatane.tea@gmail.com [Tue, 11 Aug 2015 18:18:39 +0000 (18:18 +0000)]
[ES6] Implement Reflect.has
https://bugs.webkit.org/show_bug.cgi?id=147875

Reviewed by Sam Weinig.

This patch implements Reflect.has[1].
Since the semantics is the same to the `in` operator in the JS[2],
we can implement it in builtin JS code.

[1]: http://www.ecma-international.org/ecma-262/6.0/#sec-reflect.has
[2]: http://www.ecma-international.org/ecma-262/6.0/#sec-relational-operators-runtime-semantics-evaluation

* builtins/ReflectObject.js:
(has):
* runtime/ReflectObject.cpp:
* tests/stress/reflect-has.js: Added.
(shouldBe):
(shouldThrow):

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

4 years ago[iOS] Arabic letter Yeh is drawn in LastResort
mmaxfield@apple.com [Tue, 11 Aug 2015 18:05:40 +0000 (18:05 +0000)]
[iOS] Arabic letter Yeh is drawn in LastResort
https://bugs.webkit.org/show_bug.cgi?id=147862
<rdar://problem/22202935>

Reviewed by Darin Adler.

Source/WebCore:

In order to perform font fallback, we must know which fonts support which characters. We
perform this check by asking each font to map a sequence of codepoints to glyphs, and
any glyphs which end up with a 0 value are unsupported by the font.

One of the mechanisms that we use to do this is to combine the code points into a string,
and tell Core Text to lay out the string. However, this is fundamentally a different
operation than the one we are trying to perform. Strings combine adjacent codepoints into
grapheme clusters, and CoreText operates on these. However, we are trying to gain
information regarding codepoints, not grapheme clusters.

Instead of taking this string-based approach, we should try harder to use Core Text
functions which operate on ordered collections of characters, rather than strings. In
particular, CTFontGetGlyphsForCharacters() and CTFontGetVerticalGlyphsForCharacters()
have the behavior we want where any unmapped characters end up with a 0 value glyph.

Previously, we were only using the result of those functions if they were successfully
able to map their entire input. However, given the fact that we can degrade gracefully
in the case of a partial mapping, we shouldn't need to bail completely to the
string-based approach should a partial mapping occur.

At some point we should delete the string-based approach entirely. However, this path
is still explicitly used for composite fonts. Fixing that use case is out of scope
for this patch.

Test: fast/text/arabic-glyph-cache-fill-combine.html

* platform/graphics/mac/GlyphPageMac.cpp:
(WebCore::GlyphPage::fill):

LayoutTests:

* fast/text/arabic-glyph-cache-fill-combine-expected.html: Added.
* fast/text/arabic-glyph-cache-fill-combine.html: Added.
* platform/mac/TestExpectations: Mark test as iOS-specific
* platform/gtk/TestExpectations: Mark test as iOS-specific
* platform/efl/TestExpectations: Mark test as iOS-specific
* platform/efl/TestExpectations: Mark test as iOS-specific

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

4 years ago[ES6] Implement Reflect.getPrototypeOf and Reflect.setPrototypeOf
utatane.tea@gmail.com [Tue, 11 Aug 2015 17:57:08 +0000 (17:57 +0000)]
[ES6] Implement Reflect.getPrototypeOf and Reflect.setPrototypeOf
https://bugs.webkit.org/show_bug.cgi?id=147874

Reviewed by Darin Adler.

This patch implements ES6 Reflect.{getPrototypeOf, setPrototypeOf}.
The difference from the Object.* one is

1. They dont not perform ToObject onto the non-object arguments. They make it as a TypeError.
2. Reflect.setPrototyeOf returns false when the operation is failed. In Object.setPrototypeOf, it raises a TypeError.

* runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructorGetPrototypeOfFunctor::ObjectConstructorGetPrototypeOfFunctor):
(JSC::ObjectConstructorGetPrototypeOfFunctor::result):
(JSC::ObjectConstructorGetPrototypeOfFunctor::operator()):
(JSC::objectConstructorGetPrototypeOf):
* runtime/ObjectConstructor.h:
* runtime/ReflectObject.cpp:
(JSC::reflectObjectGetPrototypeOf):
(JSC::reflectObjectSetPrototypeOf):
* tests/stress/reflect-get-prototype-of.js: Added.
(shouldBe):
(shouldThrow):
(Base):
(Derived):
* tests/stress/reflect-set-prototype-of.js: Added.
(shouldBe):
(shouldThrow):

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

4 years agoThe 'length' property on interface objects should be configurable
cdumez@apple.com [Tue, 11 Aug 2015 17:52:00 +0000 (17:52 +0000)]
The 'length' property on interface objects should be configurable
https://bugs.webkit.org/show_bug.cgi?id=147858

Reviewed by Daniel Bates.

Source/WebCore:

Make the 'length' property configurable on interface objects to comply
with the Web IDL specification [1] and to align our behavior with
Firefox 38 and Chrome 44.

This behavior is also covered by the following W3C test suite:
http://w3c-test.org/dom/interfaces.html

[1] http://heycam.github.io/webidl/#es-interface-call (17 July 2015)

Test: fast/dom/length-property-configurable.html

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorHelperMethods):
Make the 'length' property configurable on interface objects.

* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorConstructor::finishCreation):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodeConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::JSTestNondeterministicConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::finishCreation):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::JSattributeConstructor::finishCreation):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::JSreadonlyConstructor::finishCreation):
Rebaseline bindings tests.

LayoutTests:

Add layout test to check that the 'length' property on interface
objects has the following attributes:
{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }

* fast/dom/length-property-configurable-expected.txt: Added.
* fast/dom/length-property-configurable.html: Added.

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

4 years agoWeb Inspector: Hovering over an element in the Elements tab should highlight the...
drousso@apple.com [Tue, 11 Aug 2015 17:18:53 +0000 (17:18 +0000)]
Web Inspector: Hovering over an element in the Elements tab should highlight the whole line
https://bugs.webkit.org/show_bug.cgi?id=147855

Reviewed by Brian Burg.

* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.hovered:not(.selected) .selection):
Removed the horizontal positioning and border radius.

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

4 years ago[Win] Popup menus have incorrect placement when device scale factor != 1.
peavo@outlook.com [Tue, 11 Aug 2015 17:15:51 +0000 (17:15 +0000)]
[Win] Popup menus have incorrect placement when device scale factor != 1.
https://bugs.webkit.org/show_bug.cgi?id=147880

Reviewed by Brent Fulgham.

We need to take the device scaling factor into account when calculating
the position and size of the popup menu.

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

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

4 years ago[WebIDL] All interface objects must have a property named "name"
cdumez@apple.com [Tue, 11 Aug 2015 16:58:57 +0000 (16:58 +0000)]
[WebIDL] All interface objects must have a property named "name"
https://bugs.webkit.org/show_bug.cgi?id=147865

Reviewed by Darin Adler.

Source/WebCore:

As per the Web IDL specification, all interface objects must have a
property named "name" with attributes
{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }
whose value is the identifier of the corresponding interface:
http://heycam.github.io/webidl/#es-interface-call
http://heycam.github.io/webidl/#named-constructors

Previously, our interface objects had no such property, this patch
addresses the problem.

Both Firefox 38 and Chrome 44 comply with the Web IDL specification
here.

Test: fast/dom/interface-name-property.html

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorHelperMethods):

* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorConstructor::finishCreation):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodeConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::JSTestNondeterministicConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::finishCreation):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::JSattributeConstructor::finishCreation):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::JSreadonlyConstructor::finishCreation):
Rebaseline bindings tests.

LayoutTests:

Add layout test to check that the 'name' property on interface
objects has the following attributes:
{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }

* fast/dom/interface-name-property-expected.txt: Added.
* fast/dom/interface-name-property.html: Added.
New test.

* media/track/track-cue-empty-cue-text-expected.txt:
Rebaseline, this is a progression.

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

4 years agoReverted r188255, because it turned out that delegates do nonot need this information.
mitz@apple.com [Tue, 11 Aug 2015 16:51:14 +0000 (16:51 +0000)]
Reverted r188255, because it turned out that delegates do nonot need this information.

Source/WebKit2:

* UIProcess/API/APIUIClient.h:
(API::UIClient::footerHeight):
(API::UIClient::drawHeader):
(API::UIClient::drawFooter):
(API::UIClient::printFrame):
(API::UIClient::canRunModal):
(API::UIClient::runModal):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIDelegate):
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota):
(WebKit::UIDelegate::UIClient::printFrame):
(WebKit::UIDelegate::UIClient::close):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runOpenPanel):
(WebKit::WebPageProxy::printFrame):
(WebKit::WebPageProxy::printMainFrame):
(WebKit::WebPageProxy::setMediaVolume):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::setShouldSendEventsSynchronously):
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::print):
(WebKit::WebChromeClient::exceededDatabaseQuota):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/PrintFrame.mm: Removed.

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

4 years agoFix debug build when optimization is enabled
commit-queue@webkit.org [Tue, 11 Aug 2015 16:45:47 +0000 (16:45 +0000)]
Fix debug build when optimization is enabled
https://bugs.webkit.org/show_bug.cgi?id=147816

Patch by Ting-Wei Lan <lantw44@gmail.com> on 2015-08-11
Reviewed by Alexey Proskuryakov.

Source/JavaScriptCore:

* llint/LLIntEntrypoint.cpp:
* runtime/FunctionExecutableDump.cpp:

Source/WebCore:

No new tests because this is only a build fix.

* editing/InsertNodeBeforeCommand.cpp:

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

4 years ago[Cocoa] The UI delegate can't tell if printing was user-initiated
mitz@apple.com [Tue, 11 Aug 2015 16:14:15 +0000 (16:14 +0000)]
[Cocoa] The UI delegate can't tell if printing was user-initiated
https://bugs.webkit.org/show_bug.cgi?id=147869

Reviewed by Sam Weinig.

Source/WebKit2:

* UIProcess/API/APIUIClient.h:
(API::UIClient::printFrame): Added processingUserGesture argument.

* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient): Updated for new client function signature.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added userInitiated boolean argument to
  -_webView:printFrame:.

* UIProcess/Cocoa/UIDelegate.h: Added bool to m_delegateMethods for the new method.
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIDelegate):
(WebKit::UIDelegate::setDelegate): Initialized new bool.
(WebKit::UIDelegate::UIClient::printFrame): Pass processingUserGesture as the delegate‚Äôs
  userInitiated argument.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::printFrame): Added processingUserGesture argument, passing it along
  to the client.
* UIProcess/WebPageProxy.h:

* UIProcess/WebPageProxy.messages.in: Added processingUserGesture argument to printFrame.

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::print): Pass new argument.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/PrintFrame.mm: Added.
(-[PrintFrameController webView:didFinishNavigation:]):
(-[PrintFrameController _webView:printFrame:userInitiated:]):
(TEST):

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

4 years agoUnreviewed, rebaseline bindings tests after r188252.
cdumez@apple.com [Tue, 11 Aug 2015 14:56:37 +0000 (14:56 +0000)]
Unreviewed, rebaseline bindings tests after r188252.

* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorConstructor::finishCreation):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodeConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::JSTestNondeterministicConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::finishCreation):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::JSattributeConstructor::finishCreation):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::JSreadonlyConstructor::finishCreation):

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

4 years agoEnsure that Reflect.enumerate does not produce the deleted keys
utatane.tea@gmail.com [Tue, 11 Aug 2015 07:36:16 +0000 (07:36 +0000)]
Ensure that Reflect.enumerate does not produce the deleted keys
https://bugs.webkit.org/show_bug.cgi?id=147677

Reviewed by Darin Adler.

Add tests for Reflect.enumerate that delete the property keys during the enumeration.

* tests/stress/reflect-enumerate.js:

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

4 years agoThe 'prototype' property on interface objects should not be enumerable
cdumez@apple.com [Tue, 11 Aug 2015 06:42:09 +0000 (06:42 +0000)]
The 'prototype' property on interface objects should not be enumerable
https://bugs.webkit.org/show_bug.cgi?id=147861

Reviewed by Darin Adler.

Source/WebCore:

1. Make the 'prototype' property not enumerable on interface object to
   comply with the Web IDL specification [1] and to align our behavior
   with Firefox 38 and Chrome 44.

2. Also update the 'prototype' property on named constructors to have the
   following attributes:
   { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }

   Previously, all these were true in WebKit. The new behavior complies
   with the Web IDL specification [2] and aligns our behavior with
   Firefox 38. On Chrome 44, the attributes are as follows:
   { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: false }

This behavior is also covered by the following W3C test suite:
http://w3c-test.org/dom/interfaces.html

[1] http://heycam.github.io/webidl/#interface-object
[2] http://heycam.github.io/webidl/#named-constructors

Test: fast/dom/prototype-property-not-enumerable.html

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorHelperMethods):

LayoutTests:

Add layout test to check that the 'prototype' property on interface
objects has the following attributes:
{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }

* fast/dom/prototype-property-not-enumerable-expected.txt: Added.
* fast/dom/prototype-property-not-enumerable.html: Added.

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

4 years agoAnother build fix after r188239.
achristensen@apple.com [Tue, 11 Aug 2015 06:40:56 +0000 (06:40 +0000)]
Another build fix after r188239.

* TestWebKitAPI/PlatformWin.cmake:
Link with more libraries.
* WinLauncher/CMakeLists.txt:
/NODEFAULTLIB:MSVCRT is not just needed for AppleWin.

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

4 years agoAnother build fix after r188239.
achristensen@apple.com [Tue, 11 Aug 2015 04:59:07 +0000 (04:59 +0000)]
Another build fix after r188239.

* PlatformWin.cmake:
Link WinCairo with Media Foundation libraries.

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

4 years agoBuild fix after r188239.
achristensen@apple.com [Tue, 11 Aug 2015 04:46:28 +0000 (04:46 +0000)]
Build fix after r188239.

* PlatformWinCairo.cmake:
MediaPlayerPrivateMediaFoundation is needed on WinCairo with video properly enabled.

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

4 years ago[Win] Unreviewed build fix after r188239.
achristensen@apple.com [Tue, 11 Aug 2015 04:25:22 +0000 (04:25 +0000)]
[Win] Unreviewed build fix after r188239.

* gtest/CMakeLists.txt:
VS2015 requires __STDC_LIMIT_MACROS to be defined for INTMAX_MAX to be defined.

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

4 years agoBuild fix after r188237.
rniwa@webkit.org [Tue, 11 Aug 2015 03:46:43 +0000 (03:46 +0000)]
Build fix after r188237.

* Scripts/webkitpy/benchmark_runner/benchmark_builder.py:
(BenchmarkBuilder.__enter__):

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

4 years agoUpdate ReadMe and correct the way to use abstract abstract class.
commit-queue@webkit.org [Tue, 11 Aug 2015 03:15:00 +0000 (03:15 +0000)]
Update ReadMe and correct the way to use abstract abstract class.
https://bugs.webkit.org/show_bug.cgi?id=147860

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

Update ReadMe according to recent changes. And set ABCMeta to be the __metaclass__ of BrowserDriver and HTTPServerDriver,
so that all methods annotated by 'abstractmethod' will check whether they are implememnt by subclasses.

* Scripts/webkitpy/benchmark_runner/README.md:
* Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
(BrowserDriver):
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
(OSXBrowserDriver.restore_env):
* Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
(HTTPServerDriver):
(HTTPServerDriver.set_device_id):
* Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
(SimpleHTTPServerDriver.get_return_code):
(SimpleHTTPServerDriver):
(SimpleHTTPServerDriver.set_device_id):

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

4 years agoPost-review fixup after r188195
mmaxfield@apple.com [Tue, 11 Aug 2015 02:49:35 +0000 (02:49 +0000)]
Post-review fixup after r188195
https://bugs.webkit.org/show_bug.cgi?id=147806

Unreviewed.

Covered by fast/text/crash-obscure-text.html.

* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::objectForEqualityCheck):

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

4 years agoStart beating UnlinkedCodeBlock.h/.cpp with the "One Class per File" stick
ggaren@apple.com [Tue, 11 Aug 2015 01:26:30 +0000 (01:26 +0000)]
Start beating UnlinkedCodeBlock.h/.cpp with the "One Class per File" stick
https://bugs.webkit.org/show_bug.cgi?id=147856

Reviewed by Saam Barati.

Split out UnlinkedFunctionExecutable.h/.cpp and ExecutableInfo.h into separate files.

* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/ExecutableInfo.h: Copied from Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h.
(JSC::ExecutableInfo::ExecutableInfo):
(JSC::UnlinkedStringJumpTable::offsetForValue): Deleted.
(JSC::UnlinkedSimpleJumpTable::add): Deleted.
(JSC::UnlinkedInstruction::UnlinkedInstruction): Deleted.
(JSC::UnlinkedCodeBlock::isConstructor): Deleted.
(JSC::UnlinkedCodeBlock::isStrictMode): Deleted.
(JSC::UnlinkedCodeBlock::usesEval): Deleted.
(JSC::UnlinkedCodeBlock::needsFullScopeChain): Deleted.
(JSC::UnlinkedCodeBlock::hasExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::setThisRegister): Deleted.
(JSC::UnlinkedCodeBlock::setScopeRegister): Deleted.
(JSC::UnlinkedCodeBlock::setActivationRegister): Deleted.
(JSC::UnlinkedCodeBlock::usesGlobalObject): Deleted.
(JSC::UnlinkedCodeBlock::setGlobalObjectRegister): Deleted.
(JSC::UnlinkedCodeBlock::globalObjectRegister): Deleted.
(JSC::UnlinkedCodeBlock::setNumParameters): Deleted.
(JSC::UnlinkedCodeBlock::addParameter): Deleted.
(JSC::UnlinkedCodeBlock::numParameters): Deleted.
(JSC::UnlinkedCodeBlock::addRegExp): Deleted.
(JSC::UnlinkedCodeBlock::numberOfRegExps): Deleted.
(JSC::UnlinkedCodeBlock::regexp): Deleted.
(JSC::UnlinkedCodeBlock::numberOfIdentifiers): Deleted.
(JSC::UnlinkedCodeBlock::addIdentifier): Deleted.
(JSC::UnlinkedCodeBlock::identifier): Deleted.
(JSC::UnlinkedCodeBlock::identifiers): Deleted.
(JSC::UnlinkedCodeBlock::addConstant): Deleted.
(JSC::UnlinkedCodeBlock::registerIndexForLinkTimeConstant): Deleted.
(JSC::UnlinkedCodeBlock::constantRegisters): Deleted.
(JSC::UnlinkedCodeBlock::constantRegister): Deleted.
(JSC::UnlinkedCodeBlock::isConstantRegisterIndex): Deleted.
(JSC::UnlinkedCodeBlock::constantsSourceCodeRepresentation): Deleted.
(JSC::UnlinkedCodeBlock::numberOfJumpTargets): Deleted.
(JSC::UnlinkedCodeBlock::addJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::jumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::lastJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::isBuiltinFunction): Deleted.
(JSC::UnlinkedCodeBlock::constructorKind): Deleted.
(JSC::UnlinkedCodeBlock::shrinkToFit): Deleted.
(JSC::UnlinkedCodeBlock::numberOfSwitchJumpTables): Deleted.
(JSC::UnlinkedCodeBlock::addSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::switchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::numberOfStringSwitchJumpTables): Deleted.
(JSC::UnlinkedCodeBlock::addStringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::stringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionDecl): Deleted.
(JSC::UnlinkedCodeBlock::functionDecl): Deleted.
(JSC::UnlinkedCodeBlock::numberOfFunctionDecls): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionExpr): Deleted.
(JSC::UnlinkedCodeBlock::functionExpr): Deleted.
(JSC::UnlinkedCodeBlock::numberOfFunctionExprs): Deleted.
(JSC::UnlinkedCodeBlock::numberOfExceptionHandlers): Deleted.
(JSC::UnlinkedCodeBlock::addExceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::exceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::vm): Deleted.
(JSC::UnlinkedCodeBlock::addArrayProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfArrayProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addArrayAllocationProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfArrayAllocationProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addObjectAllocationProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfObjectAllocationProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addValueProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfValueProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addLLIntCallLinkInfo): Deleted.
(JSC::UnlinkedCodeBlock::numberOfLLintCallLinkInfos): Deleted.
(JSC::UnlinkedCodeBlock::codeType): Deleted.
(JSC::UnlinkedCodeBlock::thisRegister): Deleted.
(JSC::UnlinkedCodeBlock::scopeRegister): Deleted.
(JSC::UnlinkedCodeBlock::activationRegister): Deleted.
(JSC::UnlinkedCodeBlock::hasActivationRegister): Deleted.
(JSC::UnlinkedCodeBlock::addPropertyAccessInstruction): Deleted.
(JSC::UnlinkedCodeBlock::numberOfPropertyAccessInstructions): Deleted.
(JSC::UnlinkedCodeBlock::propertyAccessInstructions): Deleted.
(JSC::UnlinkedCodeBlock::constantBufferCount): Deleted.
(JSC::UnlinkedCodeBlock::addConstantBuffer): Deleted.
(JSC::UnlinkedCodeBlock::constantBuffer): Deleted.
(JSC::UnlinkedCodeBlock::hasRareData): Deleted.
(JSC::UnlinkedCodeBlock::recordParse): Deleted.
(JSC::UnlinkedCodeBlock::codeFeatures): Deleted.
(JSC::UnlinkedCodeBlock::hasCapturedVariables): Deleted.
(JSC::UnlinkedCodeBlock::firstLine): Deleted.
(JSC::UnlinkedCodeBlock::lineCount): Deleted.
(JSC::UnlinkedCodeBlock::startColumn): Deleted.
(JSC::UnlinkedCodeBlock::endColumn): Deleted.
(JSC::UnlinkedCodeBlock::addOpProfileControlFlowBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::opProfileControlFlowBytecodeOffsets): Deleted.
(JSC::UnlinkedCodeBlock::finishCreation): Deleted.
(JSC::UnlinkedCodeBlock::createRareDataIfNecessary): Deleted.
(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock): Deleted.
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::generateFunctionCodeBlock): Deleted.
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): Deleted.
(JSC::UnlinkedFunctionExecutable::visitChildren): Deleted.
(JSC::UnlinkedFunctionExecutable::link): Deleted.
(JSC::UnlinkedFunctionExecutable::fromGlobalCode): Deleted.
(JSC::UnlinkedFunctionExecutable::codeBlockFor): Deleted.
* bytecode/UnlinkedCodeBlock.h:
(JSC::ExecutableInfo::ExecutableInfo): Deleted.
(JSC::ExecutableInfo::needsActivation): Deleted.
(JSC::ExecutableInfo::usesEval): Deleted.
(JSC::ExecutableInfo::isStrictMode): Deleted.
(JSC::ExecutableInfo::isConstructor): Deleted.
(JSC::ExecutableInfo::isBuiltinFunction): Deleted.
(JSC::ExecutableInfo::constructorKind): Deleted.
* bytecode/UnlinkedFunctionExecutable.cpp: Copied from Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp.
(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::codeBlockFor):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): Deleted.
(JSC::UnlinkedCodeBlock::visitChildren): Deleted.
(JSC::UnlinkedCodeBlock::lineNumberForBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::getLineAndColumn): Deleted.
(JSC::dumpLineColumnEntry): Deleted.
(JSC::UnlinkedCodeBlock::dumpExpressionRangeInfo): Deleted.
(JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::addExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::typeProfilerExpressionInfoForBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::addTypeProfilerExpressionInfo): Deleted.
(JSC::UnlinkedProgramCodeBlock::visitChildren): Deleted.
(JSC::UnlinkedCodeBlock::~UnlinkedCodeBlock): Deleted.
(JSC::UnlinkedProgramCodeBlock::destroy): Deleted.
(JSC::UnlinkedEvalCodeBlock::destroy): Deleted.
(JSC::UnlinkedFunctionCodeBlock::destroy): Deleted.
(JSC::UnlinkedFunctionExecutable::destroy): Deleted.
(JSC::UnlinkedCodeBlock::setInstructions): Deleted.
(JSC::UnlinkedCodeBlock::instructions): Deleted.
* bytecode/UnlinkedFunctionExecutable.h: Copied from Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h.
(JSC::ExecutableInfo::ExecutableInfo): Deleted.
(JSC::ExecutableInfo::needsActivation): Deleted.
(JSC::ExecutableInfo::usesEval): Deleted.
(JSC::ExecutableInfo::isStrictMode): Deleted.
(JSC::ExecutableInfo::isConstructor): Deleted.
(JSC::ExecutableInfo::isBuiltinFunction): Deleted.
(JSC::ExecutableInfo::constructorKind): Deleted.
(JSC::UnlinkedStringJumpTable::offsetForValue): Deleted.
(JSC::UnlinkedSimpleJumpTable::add): Deleted.
(JSC::UnlinkedInstruction::UnlinkedInstruction): Deleted.
(JSC::UnlinkedCodeBlock::isConstructor): Deleted.
(JSC::UnlinkedCodeBlock::isStrictMode): Deleted.
(JSC::UnlinkedCodeBlock::usesEval): Deleted.
(JSC::UnlinkedCodeBlock::needsFullScopeChain): Deleted.
(JSC::UnlinkedCodeBlock::hasExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::setThisRegister): Deleted.
(JSC::UnlinkedCodeBlock::setScopeRegister): Deleted.
(JSC::UnlinkedCodeBlock::setActivationRegister): Deleted.
(JSC::UnlinkedCodeBlock::usesGlobalObject): Deleted.
(JSC::UnlinkedCodeBlock::setGlobalObjectRegister): Deleted.
(JSC::UnlinkedCodeBlock::globalObjectRegister): Deleted.
(JSC::UnlinkedCodeBlock::setNumParameters): Deleted.
(JSC::UnlinkedCodeBlock::addParameter): Deleted.
(JSC::UnlinkedCodeBlock::numParameters): Deleted.
(JSC::UnlinkedCodeBlock::addRegExp): Deleted.
(JSC::UnlinkedCodeBlock::numberOfRegExps): Deleted.
(JSC::UnlinkedCodeBlock::regexp): Deleted.
(JSC::UnlinkedCodeBlock::numberOfIdentifiers): Deleted.
(JSC::UnlinkedCodeBlock::addIdentifier): Deleted.
(JSC::UnlinkedCodeBlock::identifier): Deleted.
(JSC::UnlinkedCodeBlock::identifiers): Deleted.
(JSC::UnlinkedCodeBlock::addConstant): Deleted.
(JSC::UnlinkedCodeBlock::registerIndexForLinkTimeConstant): Deleted.
(JSC::UnlinkedCodeBlock::constantRegisters): Deleted.
(JSC::UnlinkedCodeBlock::constantRegister): Deleted.
(JSC::UnlinkedCodeBlock::isConstantRegisterIndex): Deleted.
(JSC::UnlinkedCodeBlock::constantsSourceCodeRepresentation): Deleted.
(JSC::UnlinkedCodeBlock::numberOfJumpTargets): Deleted.
(JSC::UnlinkedCodeBlock::addJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::jumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::lastJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::isBuiltinFunction): Deleted.
(JSC::UnlinkedCodeBlock::constructorKind): Deleted.
(JSC::UnlinkedCodeBlock::shrinkToFit): Deleted.
(JSC::UnlinkedCodeBlock::numberOfSwitchJumpTables): Deleted.
(JSC::UnlinkedCodeBlock::addSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::switchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::numberOfStringSwitchJumpTables): Deleted.
(JSC::UnlinkedCodeBlock::addStringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::stringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionDecl): Deleted.
(JSC::UnlinkedCodeBlock::functionDecl): Deleted.
(JSC::UnlinkedCodeBlock::numberOfFunctionDecls): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionExpr): Deleted.
(JSC::UnlinkedCodeBlock::functionExpr): Deleted.
(JSC::UnlinkedCodeBlock::numberOfFunctionExprs): Deleted.
(JSC::UnlinkedCodeBlock::numberOfExceptionHandlers): Deleted.
(JSC::UnlinkedCodeBlock::addExceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::exceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::vm): Deleted.
(JSC::UnlinkedCodeBlock::addArrayProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfArrayProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addArrayAllocationProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfArrayAllocationProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addObjectAllocationProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfObjectAllocationProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addValueProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfValueProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addLLIntCallLinkInfo): Deleted.
(JSC::UnlinkedCodeBlock::numberOfLLintCallLinkInfos): Deleted.
(JSC::UnlinkedCodeBlock::codeType): Deleted.
(JSC::UnlinkedCodeBlock::thisRegister): Deleted.
(JSC::UnlinkedCodeBlock::scopeRegister): Deleted.
(JSC::UnlinkedCodeBlock::activationRegister): Deleted.
(JSC::UnlinkedCodeBlock::hasActivationRegister): Deleted.
(JSC::UnlinkedCodeBlock::addPropertyAccessInstruction): Deleted.
(JSC::UnlinkedCodeBlock::numberOfPropertyAccessInstructions): Deleted.
(JSC::UnlinkedCodeBlock::propertyAccessInstructions): Deleted.
(JSC::UnlinkedCodeBlock::constantBufferCount): Deleted.
(JSC::UnlinkedCodeBlock::addConstantBuffer): Deleted.
(JSC::UnlinkedCodeBlock::constantBuffer): Deleted.
(JSC::UnlinkedCodeBlock::hasRareData): Deleted.
(JSC::UnlinkedCodeBlock::recordParse): Deleted.
(JSC::UnlinkedCodeBlock::codeFeatures): Deleted.
(JSC::UnlinkedCodeBlock::hasCapturedVariables): Deleted.
(JSC::UnlinkedCodeBlock::firstLine): Deleted.
(JSC::UnlinkedCodeBlock::lineCount): Deleted.
(JSC::UnlinkedCodeBlock::startColumn): Deleted.
(JSC::UnlinkedCodeBlock::endColumn): Deleted.
(JSC::UnlinkedCodeBlock::addOpProfileControlFlowBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::opProfileControlFlowBytecodeOffsets): Deleted.
(JSC::UnlinkedCodeBlock::finishCreation): Deleted.
(JSC::UnlinkedCodeBlock::createRareDataIfNecessary): Deleted.
(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock): Deleted.
* runtime/Executable.h:

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

4 years agoBuild TestWebKitAPI with CMake on Windows
achristensen@apple.com [Tue, 11 Aug 2015 00:09:07 +0000 (00:09 +0000)]
Build TestWebKitAPI with CMake on Windows
https://bugs.webkit.org/show_bug.cgi?id=147851

Reviewed by Chris Dumez.

.:

* Source/cmake/OptionsWindows.cmake:
Enable api tests and set USE_SYSTEM_MALLOC to avoid warnings when redefining it.

Source/ThirdParty:

* gtest/CMakeLists.txt:
Include DerivedSources to find WTF/WTFHeaderDetection.h.

Source/WebCore:

* PlatformWin.cmake:
Remove RenderThemeWin.cpp which is included in RenderingAllInOne.cpp.
* WebCorePrefix.h:
Include cmakeconfig.h before wtf/Platform.h like we do in JavaScriptCore's config.h to avoid warnings and redefining ENABLE_*  macros.

Source/WebKit:

* PlatformWin.cmake:
WinCairo libraries conflict with LIBCMT.lib, AppleWin libraries conflict with MSVCRT.lib,
so different /NODEFAULTLIB is needed to link WebKit.dll successfully.

Tools:

* CMakeLists.txt:
* TestWebKitAPI/CMakeLists.txt:
Removed TestJavaScriptCore because JavaScriptCore's API tests are elsewhere and this was just making an empty binary.
Surrounded WebKit2-specific features with ENABLE_WEBKIT2 checks.
Include directories after the Platform*.cmake is included because HostWindow.h needs to be found in Tools/TestWebKitAPI/win
before we look in Source/WebCore/platform, where another file named HostWindow.h exists.
* TestWebKitAPI/PlatformEfl.cmake:
* TestWebKitAPI/PlatformGTK.cmake:
Windows needs all the binaries to be in the same directory to find gtest.dll and the other dlls.
I did this without changing the directory structure of the existing EFL and GTK builds.
* TestWebKitAPI/PlatformWin.cmake: Added.
* TestWebKitAPI/win/main.cpp:
(main):
(dllLauncherEntryPoint):
Added so we can launch TestWebKitAPI executables after finding the AAS directory.
* WinLauncher/CMakeLists.txt:
AppleWin port needs /NODEFAULTLIB:MSVCRT.

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

4 years agoWeb Inspector: Add numerical input and slider based Visual editors for CSS properties
drousso@apple.com [Mon, 10 Aug 2015 23:56:51 +0000 (23:56 +0000)]
Web Inspector: Add numerical input and slider based Visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147712

Reviewed by Brian Burg.

Added editors for CSS properties with numerical values for use in the Visual style
details panel in the CSS sidebar, in the form of a combined select and input or an
input range.  Also added optional visual linkages to sync values between multiple
editors of this type.

* UserInterface/Images/VisualStylePropertyLinked.svg: Added.
* UserInterface/Images/VisualStylePropertyUnlinked.svg: Added.

* UserInterface/Views/VisualStyleNumberInputBox.css: Added.
(.visual-style-property-container > .visual-style-property-value-container.focused > .focus-ring):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-keyword-select):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container):
(.visual-style-property-container > .visual-style-property-value-container:not(.number-input-editable) > .number-input-container):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container > .number-input-value):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container > span):

* UserInterface/Views/VisualStyleNumberInputBox.js: Added.
(WebInspector.VisualStyleNumberInputBox):
(WebInspector.VisualStyleNumberInputBox.prototype.get value):
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.get units):
(WebInspector.VisualStyleNumberInputBox.prototype.set units):
(WebInspector.VisualStyleNumberInputBox.prototype.get placeholder):
(WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
(WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
(WebInspector.VisualStyleNumberInputBox.prototype.get numberInputEditable):
(WebInspector.VisualStyleNumberInputBox.prototype.updateValueFromText):
(WebInspector.VisualStyleNumberInputBox.prototype.parseValue):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown.shiftValue):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown):
(WebInspector.VisualStyleNumberInputBox.prototype._numberInputChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordSelectMouseDown):
(WebInspector.VisualStyleNumberInputBox.prototype._createValueOptions):
(WebInspector.VisualStyleNumberInputBox.prototype._createUnitOptions):
(WebInspector.VisualStyleNumberInputBox.prototype._addAdvancedUnits):
(WebInspector.VisualStyleNumberInputBox.prototype._removeAdvancedUnits):
(WebInspector.VisualStyleNumberInputBox.prototype._focusContentElement):
(WebInspector.VisualStyleNumberInputBox.prototype._blurContentElement):
(WebInspector.VisualStyleNumberInputBox.prototype._toggleTabbingOfSelectableElements):

* UserInterface/Views/VisualStylePropertyEditorLink.css: Added.
(.visual-style-property-editor-link):
(.visual-style-property-editor-link.disabled):
(.visual-style-property-editor-link.link-all):
(.visual-style-property-editor-link.link-all.linked):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-icon:hover + .visual-style-property-editor-link-border.right):
(.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-border.right):
(.visual-style-property-editor-link.linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border.right):
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link:not(.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 > .visual-style-property-editor-link-icon > .unlinked-icon):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .filled):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .stroked):
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-icon):
(.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-icon):

* UserInterface/Views/VisualStylePropertyEditorLink.js: Added.
(WebInspector.VisualStylePropertyEditorLink):
(WebInspector.VisualStylePropertyEditorLink.prototype.get element):
(WebInspector.VisualStylePropertyEditorLink.prototype.set disabled):
(WebInspector.VisualStylePropertyEditorLink.prototype._linkedPropertyValueChanged):
(WebInspector.VisualStylePropertyEditorLink.prototype._updateLinkedEditors):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconMouseover):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconMouseout):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconClicked):

* UserInterface/Views/VisualStyleRelativeNumberSlider.css: Added.
(.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-title):
(.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-value-container):
(.visual-style-property-container.number-input-box.relative-number-slider.disabled > .relative-slider):
(.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-value-container.no-values.no-units):
(.visual-style-property-container.number-input-box.relative-number-slider > .relative-slider):

* UserInterface/Views/VisualStyleRelativeNumberSlider.js: Added.
(WebInspector.VisualStyleRelativeNumberSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype.set scale):
(WebInspector.VisualStyleRelativeNumberSlider.prototype.updateEditorValues):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._resetSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._sliderChanged):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._numberInputChanged):

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

4 years agoMake cleanup more robust and minor code cleaning in run benchmark script.
commit-queue@webkit.org [Mon, 10 Aug 2015 23:44:10 +0000 (23:44 +0000)]
Make cleanup more robust and minor code cleaning in run benchmark script.
https://bugs.webkit.org/show_bug.cgi?id=147800

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

Use 'finnaly' block to make sure cleanup code is always executed.

* Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(built_benchmark):
(built_benchmark.__init__):
(built_benchmark.__enter__):
(built_benchmark.__exit__):
(test_environment):
(test_environment.__init__):
(test_environment.__enter__):
(test_environment.__exit__):
(BenchmarkRunner.__init__):
(BenchmarkRunner.execute):
(BenchmarkRunner._dump):
(BenchmarkRunner._wrap):
(BenchmarkRunner): Deleted.
(BenchmarkRunner._cleanup): Deleted.
* Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
(BrowserDriver.close_browsers):
(BrowserDriver):
(BrowserDriver.restore_env):
* Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
(SimpleHTTPServerDriver.__init__): We do not actually need to know external ip address for now.

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

4 years agoAdd MediaDeviceIdentifier to WebsiteDataTypes
mdaiter@apple.com [Mon, 10 Aug 2015 23:40:40 +0000 (23:40 +0000)]
Add MediaDeviceIdentifier to WebsiteDataTypes
https://bugs.webkit.org/show_bug.cgi?id=147853

Reviewed by Jer Noble.

* Shared/WebsiteData/WebsiteDataTypes.h:

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

4 years agoHTMLMediaElement needs way to find MediaDeviceInfo
mdaiter@apple.com [Mon, 10 Aug 2015 23:27:55 +0000 (23:27 +0000)]
HTMLMediaElement needs way to find MediaDeviceInfo
https://bugs.webkit.org/show_bug.cgi?id=147842

Reviewed by Jer Noble.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerMediaDeviceIdentifierStorageDirectory):
* html/HTMLMediaElement.h:
* page/Settings.h:
(WebCore::Settings::setMediaDeviceIdentifierStorageDirectory):
(WebCore::Settings::mediaDeviceIdentifierStorageDirectory):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerMediaDeviceIdentifierStorageDirectory):

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

4 years agoSimplify code for making Page-cacheability decision
cdumez@apple.com [Mon, 10 Aug 2015 22:58:16 +0000 (22:58 +0000)]
Simplify code for making Page-cacheability decision
https://bugs.webkit.org/show_bug.cgi?id=147829

Reviewed by Antti Koivisto.

Simplify code for making Page-cacheability decision by merging logging
code and decision making code. Having the same checks in two places was
redundant and error-prone as we needed to keep them in sync.

Also get rid of failure reason enum values as those have not been used
in a while.

* history/PageCache.cpp:
(WebCore::canCacheFrame):
(WebCore::canCachePage):
(WebCore::PageCache::canCache):
(WebCore::logPageCacheFailureDiagnosticMessage): Deleted.
(WebCore::PageCache::singleton): Deleted.
(WebCore::PageCache::setMaxSize): Deleted.
(WebCore::PageCache::frameCount): Deleted.
(WebCore::PageCache::markPagesForVisitedLinkStyleRecalc): Deleted.
(WebCore::PageCache::markPagesForFullStyleRecalc): Deleted.
(WebCore::PageCache::markPagesForDeviceOrPageScaleChanged): Deleted.
(WebCore::PageCache::markPagesForContentsSizeChanged): Deleted.
(WebCore::PageCache::markPagesForCaptionPreferencesChanged): Deleted.
(WebCore::pruningReasonToDiagnosticLoggingKey): Deleted.
* page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::isDisabledKey):
(WebCore::DiagnosticLoggingKeys::redirectKey):
(WebCore::DiagnosticLoggingKeys::replaceKey):
(WebCore::DiagnosticLoggingKeys::sourceKey):
(WebCore::DiagnosticLoggingKeys::underMemoryPressureKey):
(WebCore::DiagnosticLoggingKeys::reloadFromOriginKey): Deleted.
* page/DiagnosticLoggingKeys.h:

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

4 years agoTry to fix the 32-bit build.
weinig@apple.com [Mon, 10 Aug 2015 22:09:22 +0000 (22:09 +0000)]
Try to fix the 32-bit build.

* UIProcess/API/mac/WKViewInternal.h:

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

4 years agoRefactor LiveObjectList and LiveObjectData into their own files.
mark.lam@apple.com [Mon, 10 Aug 2015 21:54:36 +0000 (21:54 +0000)]
Refactor LiveObjectList and LiveObjectData into their own files.
https://bugs.webkit.org/show_bug.cgi?id=147843

Reviewed by Saam Barati.

There is no behavior change in this patch.

* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* heap/HeapVerifier.cpp:
(JSC::HeapVerifier::HeapVerifier):
(JSC::LiveObjectList::findObject): Deleted.
* heap/HeapVerifier.h:
(JSC::LiveObjectData::LiveObjectData): Deleted.
(JSC::LiveObjectList::LiveObjectList): Deleted.
(JSC::LiveObjectList::reset): Deleted.
* heap/LiveObjectData.h: Added.
(JSC::LiveObjectData::LiveObjectData):
* heap/LiveObjectList.cpp: Added.
(JSC::LiveObjectList::findObject):
* heap/LiveObjectList.h: Added.
(JSC::LiveObjectList::LiveObjectList):
(JSC::LiveObjectList::reset):

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

4 years agoFix flakiness dashboard stability and performance issues.
dburkart@apple.com [Mon, 10 Aug 2015 21:35:54 +0000 (21:35 +0000)]
Fix flakiness dashboard stability and performance issues.
https://bugs.webkit.org/show_bug.cgi?id=147835

Reviewed by Ryosuke Niwa.

* init-database.sql:
* public/.htaccess:
* public/include/json-shared.php:
* public/include/test-results.php:

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

4 years agoWeb Inspector: Add different types of non-numerical Visual editors for CSS properties
drousso@apple.com [Mon, 10 Aug 2015 20:56:18 +0000 (20:56 +0000)]
Web Inspector: Add different types of non-numerical Visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147711

Added editors for keyword based CSS properties for use in the Visual style
details panel in the CSS sidebar.  Also added images for keyword values that
are simple enough to be conveyed in an image.

Reviewed by Brian Burg.

* UserInterface/Images/ClearBoth.svg: Added.
* UserInterface/Images/ClearLeft.svg: Added.
* UserInterface/Images/ClearRight.svg: Added.
* UserInterface/Images/FloatLeft.svg: Added.
* UserInterface/Images/FloatRight.svg: Added.
* UserInterface/Images/FontStyleItalic.svg: Added.
* UserInterface/Images/FontStyleNormal.svg: Added.
* UserInterface/Images/FontVariantSmallCaps.svg: Added.
* UserInterface/Images/TextAlignCenter.svg: Added.
* UserInterface/Images/TextAlignJustify.svg: Added.
* UserInterface/Images/TextAlignLeft.svg: Added.
* UserInterface/Images/TextAlignRight.svg: Added.
* UserInterface/Images/TextDecorationLineThrough.svg: Added.
* UserInterface/Images/TextDecorationOverline.svg: Added.
* UserInterface/Images/TextDecorationUnderline.svg: Added.
* UserInterface/Images/TextTransformCapitalize.svg: Added.
* UserInterface/Images/TextTransformLowercase.svg: Added.
* UserInterface/Images/TextTransformUppercase.svg: Added.
* UserInterface/Images/VisualStyleNone.svg: Added.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
Changed color swatch title.

* UserInterface/Views/Slider.js:
(WebInspector.Slider):
(WebInspector.Slider.prototype.set value):
(WebInspector.Slider.prototype.set knobX):
(WebInspector.Slider.prototype.get maxX):
If the given value is below 0, reset it to 0.
(WebInspector.Slider.prototype._handleMousedown):
(WebInspector.Slider.prototype._handleMousemove):
(WebInspector.Slider.prototype.get _maxX): Deleted.

* UserInterface/Views/VisualStyleColorPicker.css: Added.
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .visual-style-special-property-placeholder):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:hover):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:active):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch > span):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):
(.visual-style-property-container.input-color-picker.multiple > .visual-style-property-value-container > .visual-style-multiple-property-placeholder):

* UserInterface/Views/VisualStyleColorPicker.js: Added.
(WebInspector.VisualStyleColorPicker):
(WebInspector.VisualStyleColorPicker.prototype.get value):
(WebInspector.VisualStyleColorPicker.prototype.set value):
(WebInspector.VisualStyleColorPicker.prototype.get placeholder):
(WebInspector.VisualStyleColorPicker.prototype.set placeholder):
(WebInspector.VisualStyleColorPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleColorPicker.prototype.get hasCompletions):
(WebInspector.VisualStyleColorPicker.prototype.set completions):
(WebInspector.VisualStyleColorPicker.prototype._updateColorSwatch):
(WebInspector.VisualStyleColorPicker.prototype._colorSwatchClicked):
(WebInspector.VisualStyleColorPicker.prototype._colorPickerColorDidChange):
(WebInspector.VisualStyleColorPicker.prototype._completionClicked):
(WebInspector.VisualStyleColorPicker.prototype._textInputKeyDown):
(WebInspector.VisualStyleColorPicker.prototype._textInputKeyUp):
(WebInspector.VisualStyleColorPicker.prototype._showCompletionsIfAble):
(WebInspector.VisualStyleColorPicker.prototype._hideCompletions):
(WebInspector.VisualStyleColorPicker.prototype._toggleTabbingOfSelectableElements):

* UserInterface/Views/VisualStyleKeywordCheckbox.css: Added.
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container):
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > input):
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > div):

* UserInterface/Views/VisualStyleKeywordCheckbox.js: Added.
(WebInspector.VisualStyleKeywordCheckbox):
(WebInspector.VisualStyleKeywordCheckbox.prototype.get value):
(WebInspector.VisualStyleKeywordCheckbox.prototype.set value):
(WebInspector.VisualStyleKeywordCheckbox.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordCheckbox.prototype._toggleTabbingOfSelectableElements):

* UserInterface/Views/VisualStyleKeywordIconList.css: Added.
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:first-child):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:last-child):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected)):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .stroked):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .filled):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected) + .keyword-icon):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon > div):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:not(.selected) > div):

* UserInterface/Views/VisualStyleKeywordIconList.js: Added.
(WebInspector.VisualStyleKeywordIconList.dashToCapital):
(WebInspector.VisualStyleKeywordIconList.createListItem):
(WebInspector.VisualStyleKeywordIconList):
(WebInspector.VisualStyleKeywordIconList.prototype.get value):
(WebInspector.VisualStyleKeywordIconList.prototype.set value):
(WebInspector.VisualStyleKeywordIconList.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordIconList.prototype._handleKeywordChanged):

* UserInterface/Views/VisualStyleKeywordPicker.js: Added.
(WebInspector.VisualStyleKeywordPicker):
(WebInspector.VisualStyleKeywordPicker.prototype.get value):
(WebInspector.VisualStyleKeywordPicker.prototype.set value):
(WebInspector.VisualStyleKeywordPicker.prototype.set placeholder):
(WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype.updateEditorValues):
(WebInspector.VisualStyleKeywordPicker.prototype._handleKeywordChanged):
(WebInspector.VisualStyleKeywordPicker.prototype._keywordSelectMouseDown):
(WebInspector.VisualStyleKeywordPicker.prototype._addValues):
(WebInspector.VisualStyleKeywordPicker.prototype._addAdvancedValues):
(WebInspector.VisualStyleKeywordPicker.prototype._removeAdvancedValues):
(WebInspector.VisualStyleKeywordPicker.prototype._toggleTabbingOfSelectableElements):

* UserInterface/Views/VisualStylePropertyNameInput.js: Added.
(WebInspector.VisualStylePropertyNameInput):
(WebInspector.VisualStylePropertyNameInput.prototype.get value):
(WebInspector.VisualStylePropertyNameInput.prototype.set value):
(WebInspector.VisualStylePropertyNameInput.prototype.get synthesizedValue):
(WebInspector.VisualStylePropertyNameInput.prototype.get hasCompletions):
(WebInspector.VisualStylePropertyNameInput.prototype.set completions):
(WebInspector.VisualStylePropertyNameInput.prototype._completionClicked):
(WebInspector.VisualStylePropertyNameInput.prototype._inputKeyDown):
(WebInspector.VisualStylePropertyNameInput.prototype._inputKeyUp):
(WebInspector.VisualStylePropertyNameInput.prototype._hideCompletions):
(WebInspector.VisualStylePropertyNameInput.prototype._toggleTabbingOfSelectableElements):

* UserInterface/Views/VisualStyleURLInput.js: Added.
(WebInspector.VisualStyleURLInput):
(WebInspector.VisualStyleURLInput.prototype.set get value):
(WebInspector.VisualStyleURLInput.prototype.parseValue):

* UserInterface/Views/VisualStyleUnitSlider.css: Added.
(.visual-style-property-container.unit-slider > .visual-style-property-value-container > .slider):
(.visual-style-property-container.unit-slider > .visual-style-property-value-container > .slider > img):
(.visual-style-property-container.unit-slider.opacity > .visual-style-property-value-container > .slider):

* UserInterface/Views/VisualStyleUnitSlider.js: Added.
(WebInspector.VisualStyleUnitSlider):
(WebInspector.VisualStyleUnitSlider.prototype.set value):
(WebInspector.VisualStyleUnitSlider.prototype.get value):
(WebInspector.VisualStyleUnitSlider.prototype.get synthesizedValue):
(WebInspector.VisualStyleUnitSlider.prototype.sliderValueDidChange):

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

4 years agoReplace WebPageConfiguration with API::PageConfiguration and expose a C-SPI accessor...
weinig@apple.com [Mon, 10 Aug 2015 20:51:54 +0000 (20:51 +0000)]
Replace WebPageConfiguration with API::PageConfiguration and expose a C-SPI accessor for it
https://bugs.webkit.org/show_bug.cgi?id=147811

Reviewed by Darin Adler.

- Adds the missing pieces from WebPageConfiguration into API::PageConfiguration.
- Adds C-SPI to set and get the WebsiteDataStore on the WKPageConfigurationRef.
- Uses API::PageConfiguration to pass configuration information from WKWebView/WKView
  to WebPageProxy.
- Stores the API::PageConfiguration on the WebPageProxy and exposes a new C-SPI function,
  WKPageCopyPageConfiguration, to get a copy of it.

* UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::create):
(API::PageConfiguration::PageConfiguration):
(API::PageConfiguration::~PageConfiguration):
(API::PageConfiguration::copy):
(API::PageConfiguration::processPool):
(API::PageConfiguration::setRelatedPage):
(API::PageConfiguration::visitedLinkProvider):
(API::PageConfiguration::setVisitedLinkProvider):
(API::PageConfiguration::websiteDataStore):
(API::PageConfiguration::setWebsiteDataStore):
(API::PageConfiguration::sessionID):
(API::PageConfiguration::setSessionID):
(API::PageConfiguration::webPageConfiguration): Deleted.
* UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::preferenceValues):
(API::PageConfiguration::treatsSHA1SignedCertificatesAsInsecure):
(API::PageConfiguration::setTreatsSHA1SignedCertificatesAsInsecure):
(API::PageConfiguration::alwaysRunsAtForegroundPriority):
(API::PageConfiguration::setAlwaysRunsAtForegroundPriority):
(API::PageConfiguration::create): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageGetPageGroup):
(WKPageCopyPageConfiguration):
(WKPageLoadURL):
* UIProcess/API/C/WKPage.h:
* UIProcess/API/C/WKPageConfigurationRef.cpp:
(WKPageConfigurationSetRelatedPage):
(WKPageConfigurationGetWebsiteDataStore):
(WKPageConfigurationSetWebsiteDataStore):
* UIProcess/API/C/WKPageConfigurationRef.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
* UIProcess/API/mac/WKView.mm:
(-[WKView _setPrimaryTrackingArea:]):
(-[WKView initWithFrame:processPool:configuration:webView:]):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
(-[WKView initWithFrame:configurationRef:]):
(-[WKView wantsUpdateLayer]):
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::create):
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::configuration):
(WebKit::WebPageProxy::processIdentifier):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::pageID):
(WebKit::WebPageProxy::sessionID):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::download):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::webPage):
(WebKit::WebProcessProxy::createWebPage):
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::processPool):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView initWithFrame:processPool:configuration:webView:]):
(-[WKContentView initWithFrame:processPool:configuration:wkView:]):
(-[WKContentView dealloc]):

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

4 years agoWeb Inspector: [iOS] Allow inspector to retrieve a list of system fonts
drousso@apple.com [Mon, 10 Aug 2015 20:51:32 +0000 (20:51 +0000)]
Web Inspector: [iOS] Allow inspector to retrieve a list of system fonts
https://bugs.webkit.org/show_bug.cgi?id=147033

Reviewed by Joseph Pecoraro.

Implement systemFontFamilies for iOS.

* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::systemFontFamilies):

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

4 years agoWeb Inspector: Add VisualStyleSelectorSection
drousso@apple.com [Mon, 10 Aug 2015 20:49:47 +0000 (20:49 +0000)]
Web Inspector: Add VisualStyleSelectorSection
https://bugs.webkit.org/show_bug.cgi?id=147572

Reviewed by Brian Burg.

Adds a section to the new Visual style sidebar panel that contains the list of
styles for the currently selected node.

* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.get mediaText):
Returns a string containing the list of media queries.

* UserInterface/Models/CSSStyleDeclaration.js:
(WebInspector.CSSStyleDeclaration):
(WebInspector.CSSStyleDeclaration.prototype.set text):
(WebInspector.CSSStyleDeclaration.prototype.get modified):
(WebInspector.CSSStyleDeclaration.prototype.resetText):
(WebInspector.CSSStyleDeclaration.prototype.generateCSSRuleString):
Generates a formatted string of the style text.

* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):
(WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Deleted.

* UserInterface/Views/VisualStyleSelectorSection.css: Added.
(.details-section.visual-style-selector-section > .header):
(.details-section.visual-style-selector-section:not(.collapsed) > .header):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.details-section.visual-style-selector-section > .header > .current-selector):
(.visual-style-selector-section.details-section:not(.collapsed) > .header > .current-selector):
(.details-section.visual-style-selector-section > .header > .current-selector > .icon):
(.details-section.visual-style-selector-section > .header > .current-selector > span):
(.details-section.visual-style-selector-section > .header > .controls):
(.details-section.visual-style-selector-section.collapsed > .header > .controls):
(.details-section.visual-style-selector-section > .header > .controls > .visual-style-selector-section-add-rule):
(.details-section.visual-style-selector-section > .content > .selectors):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .visual-style-selector-item:nth-child(odd)):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .icon):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > :matches(.disclosure-button, .icon)):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles > .title):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider ~ .visual-style-selector-item:nth-child(even)):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider ~ .visual-style-selector-item:nth-child(odd)):

* UserInterface/Views/VisualStyleSelectorSection.js: Added.
(WebInspector.VisualStyleSelectorSection):
(WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
(WebInspector.VisualStyleSelectorSection.prototype.update.uniqueOrderedRules):
(WebInspector.VisualStyleSelectorSection.prototype.update.insertAllMatchingPseudoRules):
(WebInspector.VisualStyleSelectorSection.prototype.update):
(WebInspector.VisualStyleSelectorSection.prototype.currentStyle):
(WebInspector.VisualStyleSelectorSection.prototype._selectorChanged):
(WebInspector.VisualStyleSelectorSection.prototype._styleTextReset):
(WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
(WebInspector.VisualStyleSelectorSection.prototype._treeElementCheckboxToggled):
(WebInspector.VisualStyleSelectorSection.prototype._handleMouseOver):
(WebInspector.VisualStyleSelectorSection.prototype._handleMouseOut):

* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(.item.visual-style-selector-item):
(.item.visual-style-selector-item.selected):
(.item.visual-style-selector-item > .disclosure-button):
(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item > .icon):
(.item.visual-style-selector-item.modified > .icon):
(.item.visual-style-selector-item.selector-invalid > .icon):
(.item.visual-style-selector-item.selector-invalid > .titles > .title):
(.item.visual-style-selector-item.selector-invalid > .titles > .title::before):
(.item.visual-style-selector-item > .titles):
(.item.visual-style-selector-item:not(.dom-element-icon) > .titles > .title):
(.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title):
(.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title:focus):
(.item.visual-style-selector-item > .titles > .subtitle::before):
(.item.visual-style-selector-item > .titles > .subtitle):

* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem):
(WebInspector.VisualStyleSelectorTreeItem.prototype.get iconClassName):
(WebInspector.VisualStyleSelectorTreeItem.prototype.get selectorText):
(WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
(WebInspector.VisualStyleSelectorTreeItem.prototype.ondeselect):
(WebInspector.VisualStyleSelectorTreeItem.prototype._highlightNodesWithSelector):
(WebInspector.VisualStyleSelectorTreeItem.prototype._hideDOMNodeHighlight):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleCheckboxChanged):
(WebInspector.VisualStyleSelectorTreeItem.prototype._updateCheckboxTitle):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleKeyDown):
(WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
(WebInspector.VisualStyleSelectorTreeItem.prototype._styleTextModified):
(WebInspector.VisualStyleSelectorTreeItem.prototype._selectorChanged):

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

4 years agoUnreviewed, rolling out r187131 and r187286.
commit-queue@webkit.org [Mon, 10 Aug 2015 20:36:10 +0000 (20:36 +0000)]
Unreviewed, rolling out r187131 and r187286.
https://bugs.webkit.org/show_bug.cgi?id=147839

 Causing mroe frequent crashes with invalid layer bounds
(rdar://problem/21465328) (Requested by smfr on #webkit).

Reverted changesets:

"[iOS] Menu drop down such as on nike.com does not stay"
https://bugs.webkit.org/show_bug.cgi?id=147047
http://trac.webkit.org/changeset/187131

"[iOS] REGRESSION (187131): Loading CuteOverload zooms in to
the top left corner."
https://bugs.webkit.org/show_bug.cgi?id=147251
http://trac.webkit.org/changeset/187286

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

4 years agoWeb Inspector: Invalid selectors can be applied to the stylesheet
drousso@apple.com [Mon, 10 Aug 2015 20:33:38 +0000 (20:33 +0000)]
Web Inspector: Invalid selectors can be applied to the stylesheet
https://bugs.webkit.org/show_bug.cgi?id=147230

Reviewed by Timothy Hatcher.

* inspector/InspectorStyleSheet.cpp:
(WebCore::isValidSelectorListString):
(WebCore::InspectorStyleSheet::setRuleSelector):
Now checks to see that the supplied selector is valid before trying to commit it to the rule.
(WebCore::InspectorStyleSheet::addRule):
(WebCore::checkStyleRuleSelector): Deleted.

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

4 years agoWeb Inspector: TDZ in ProbeSetDataGrid construction
commit-queue@webkit.org [Mon, 10 Aug 2015 20:33:26 +0000 (20:33 +0000)]
Web Inspector: TDZ in ProbeSetDataGrid construction
https://bugs.webkit.org/show_bug.cgi?id=147834

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

* UserInterface/Views/ProbeSetDataGrid.js:
(WebInspector.ProbeSetDataGrid):
Do not use "this" before calling super.

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

4 years agoLet's rename FunctionBodyNode
ggaren@apple.com [Mon, 10 Aug 2015 20:24:35 +0000 (20:24 +0000)]
Let's rename FunctionBodyNode
https://bugs.webkit.org/show_bug.cgi?id=147292

Reviewed by Mark Lam & Saam Barati.

FunctionBodyNode => FunctionMetadataNode

Make FunctionMetadataNode inherit from Node instead of StatementNode
because a FunctionMetadataNode can appear in expression context and does
not have a next statement.

(I decided to continue allocating FunctionMetadataNode in the AST arena,
and to retain "Node" in its name, because it really is a parsing
construct, and we transform its data before consuming it elsewhere.

There is still room for a future patch to distill and simplify the
metadata we track about functions between FunDeclNode/FuncExprNode,
FunctionMetadataNode, and UnlinkedFunctionExecutable. But this is a start.)

* builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createExecutableInternal):
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
* bytecode/UnlinkedCodeBlock.h:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewArray):
(JSC::BytecodeGenerator::emitNewFunction):
(JSC::BytecodeGenerator::emitNewFunctionExpression):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::makeFunction):
* bytecompiler/NodesCodegen.cpp:
(JSC::EvalNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):
(JSC::FunctionBodyNode::emitBytecode): Deleted.
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createFunctionExpr):
(JSC::ASTBuilder::createFunctionBody):
* parser/NodeConstructors.h:
(JSC::FunctionParameters::FunctionParameters):
(JSC::FuncExprNode::FuncExprNode):
(JSC::FuncDeclNode::FuncDeclNode):
* parser/Nodes.cpp:
(JSC::EvalNode::EvalNode):
(JSC::FunctionMetadataNode::FunctionMetadataNode):
(JSC::FunctionMetadataNode::finishParsing):
(JSC::FunctionMetadataNode::setEndPosition):
(JSC::FunctionBodyNode::FunctionBodyNode): Deleted.
(JSC::FunctionBodyNode::finishParsing): Deleted.
(JSC::FunctionBodyNode::setEndPosition): Deleted.
* parser/Nodes.h:
(JSC::FuncExprNode::body):
(JSC::FuncDeclNode::body):
* parser/Parser.h:
(JSC::Parser::isFunctionMetadataNode):
(JSC::Parser::next):
(JSC::Parser<LexerType>::parse):
(JSC::Parser::isFunctionBodyNode): Deleted.
* runtime/CodeCache.cpp:
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
* runtime/CodeCache.h:

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

4 years agoMedia Session: generalize isFocusedContentMediaElementPlaying so it works with other...
mrajca@apple.com [Mon, 10 Aug 2015 19:18:50 +0000 (19:18 +0000)]
Media Session: generalize isFocusedContentMediaElementPlaying so it works with other playback attributes
https://bugs.webkit.org/show_bug.cgi?id=147797

Reviewed by Simon Fraser.

* UIProcess/API/C/WKMediaSessionFocusManager.cpp:
(WKMediaSessionFocusManagerValueForPlaybackAttribute):
(WKMediaSessionFocusManagerIsFocusedContentMediaElementPlaying): Deleted.
* UIProcess/API/C/WKMediaSessionFocusManager.h:
* UIProcess/WebMediaSessionFocusManager.cpp:
(WebKit::WebMediaSessionFocusManager::valueForPlaybackAttribute):
(WebKit::WebMediaSessionFocusManager::mediaControlIsEnabledDidChange):
(WebKit::WebMediaSessionFocusManager::isFocusedContentMediaElementPlaying): Deleted.
(WebKit::WebMediaSessionFocusManager::mediaElementIsPlayingDidChange): Deleted.
* UIProcess/WebMediaSessionFocusManager.h:

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

4 years agoAlign WebKit1's PageCache size with WebKit2's
cdumez@apple.com [Mon, 10 Aug 2015 18:57:47 +0000 (18:57 +0000)]
Align WebKit1's PageCache size with WebKit2's
https://bugs.webkit.org/show_bug.cgi?id=147831

Reviewed by Sam Weinig.

Align WebKit1's PageCache size with WebKit2's for consistency. Also, we
have data showing that keeping more than 3 pages in the PageCache is
not really useful.

* WebView/WebView.mm:
(+[WebView _setCacheModel:]):

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

4 years agohttp/tests/cache/disk-cache/disk-cache-validation.html has too many subtests
antti@apple.com [Mon, 10 Aug 2015 18:06:12 +0000 (18:06 +0000)]
http/tests/cache/disk-cache/disk-cache-validation.html has too many subtests
https://bugs.webkit.org/show_bug.cgi?id=147827

Rubber-stamped by Alexey Proskuryakov.

Also split the no-body variant of this.

* http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation-no-body.html:
* http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt: Added.
* http/tests/cache/disk-cache/disk-cache-vary-no-body.html: Added.

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

4 years ago[Win] Small repaint issues when device scale factor != 1.
peavo@outlook.com [Mon, 10 Aug 2015 17:56:52 +0000 (17:56 +0000)]
[Win] Small repaint issues when device scale factor != 1.
https://bugs.webkit.org/show_bug.cgi?id=147825

Reviewed by Alex Christensen.

When scaling, we should scale a FloatRect, and then compute the enclosing IntRect.

* WebView.cpp:
(WebView::repaint):
(WebView::scrollBackingStore):
(WebView::paintIntoBackingStore):

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

4 years agohttp/tests/cache/disk-cache/disk-cache-validation.html has too many subtests
antti@apple.com [Mon, 10 Aug 2015 16:09:27 +0000 (16:09 +0000)]
http/tests/cache/disk-cache/disk-cache-validation.html has too many subtests
https://bugs.webkit.org/show_bug.cgi?id=147827

Reviewed by Chris Dumez.

Looks like it occasionally times out because a bot is running slowly and 243 subtests take >30s.

* http/tests/cache/disk-cache/disk-cache-validation-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation.html:

Split Vary header cases to a separate test.

* http/tests/cache/disk-cache/disk-cache-vary-expected.txt:
* http/tests/cache/disk-cache/disk-cache-vary.html:

Reduce test matrix size by no testing Expires header here.

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

4 years agoAX: Address follow-up comments in bug 145684
jcraig@apple.com [Mon, 10 Aug 2015 16:01:19 +0000 (16:01 +0000)]
AX: Address follow-up comments in bug 145684
https://bugs.webkit.org/show_bug.cgi?id=147817

Reviewed by Dean Jackson.

Minor cleanup and style updates requested by Dean.
Source/WebCore:

Updated Existing Test Expectations.

* Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-show-controls):
* Modules/mediacontrols/mediaControlsiOS.css:
(video::-webkit-media-show-controls):

LayoutTests:

* http/tests/contentextensions/text-track-blocked-expected.txt:
* media/video-controls-show-on-kb-or-ax-event.html:
* platform/mac/media/track/track-cue-rendering-horizontal-expected.txt:

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

4 years ago[CoordinatedGraphics] Fix forward declarations of CoordinatedGraphicsLayerState,...
zandobersek@gmail.com [Mon, 10 Aug 2015 14:12:19 +0000 (14:12 +0000)]
[CoordinatedGraphics] Fix forward declarations of CoordinatedGraphicsLayerState, ViewportAttributes
https://bugs.webkit.org/show_bug.cgi?id=147823

Reviewed by Carlos Garcia Campos.

* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/LayerTreeHost.h:

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

4 years agoExpand network cache tests to cover memory cache behavior
antti@apple.com [Mon, 10 Aug 2015 12:48:53 +0000 (12:48 +0000)]
Expand network cache tests to cover memory cache behavior
https://bugs.webkit.org/show_bug.cgi?id=147783

Reviewed by Alexey Proskuryakov.

Source/WebCore:

To support testing, include memory cache as a possible source type to XHR responses.

* loader/ResourceLoader.cpp:
(WebCore::logResourceResponseSource):
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::didAddClient):
* loader/cache/CachedResource.h:
(WebCore::CachedResource::revalidationInProgress):
* platform/network/ResourceResponseBase.h:
* testing/Internals.cpp:
(WebCore::Internals::xhrResponseSource):

LayoutTests:

Add another round to existing cache tests with hot memory cache.
This add 691 individual cases worth of memory cache test coverage.

XHR (and main resource, CachedRawResource in general) behaves differently from other resource types. The added
coverage maps this behavior. The regular subresource behavior needs coverage too.

* http/tests/cache/disk-cache/disk-cache-204-status-code-expected.txt:
* http/tests/cache/disk-cache/disk-cache-302-status-code-expected.txt:
* http/tests/cache/disk-cache/disk-cache-307-status-code-expected.txt:
* http/tests/cache/disk-cache/disk-cache-404-status-code-expected.txt:
* http/tests/cache/disk-cache/disk-cache-disable-expected.txt:
* http/tests/cache/disk-cache/disk-cache-media-expected.txt:
* http/tests/cache/disk-cache/disk-cache-range-expected.txt:
* http/tests/cache/disk-cache/disk-cache-request-headers-expected.txt:
* http/tests/cache/disk-cache/disk-cache-request-max-stale-expected.txt:
* http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation-expected.txt:
* http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt:
* http/tests/cache/disk-cache/resources/cache-test.js:
(loadResource):
(loadResourcesWithOptions):
(loadResources):
(.):
(runTests):

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

4 years agoCompile warning (-Wsign-compare) on 32-bits at WebCore/platform/FileSystem.cpp
youenn.fablet@crf.canon.fr [Mon, 10 Aug 2015 10:05:40 +0000 (10:05 +0000)]
Compile warning (-Wsign-compare) on 32-bits at WebCore/platform/FileSystem.cpp
https://bugs.webkit.org/show_bug.cgi?id=146414

Reviewed by Darin Adler.

Source/WebCore:

No behavioral changes.

* platform/FileSystem.cpp:
(WebCore::MappedFileData::MappedFileData): Making use of convertSafely.
* platform/posix/SharedBufferPOSIX.cpp:
(WebCore::SharedBuffer::createFromReadingFile): Making use of convertSafely.

Source/WTF:

Added convertSafely routine based on isInBounds routine.
Updated BoundChecker by adding a third boolean parameter to this template giving whether Target has greater or equal precision than Source.
Removed BoundCheckElider, which is no longer necessary and had some issues.

* wtf/CheckedArithmetic.h:
(WTF::isInBounds):
(WTF::convertSafely):

Tools:

* TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:
(TestWebKitAPI::TEST): Improving testing of WTF::isInBounds.

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

4 years ago[Streams API] ReadableStreamReader closed promise should use CachedAttribute
youenn.fablet@crf.canon.fr [Mon, 10 Aug 2015 10:01:31 +0000 (10:01 +0000)]
[Streams API] ReadableStreamReader closed promise should use CachedAttribute
https://bugs.webkit.org/show_bug.cgi?id=147487

Reviewed by Darin Adler.

Covered by existing tests.

* Modules/streams/ReadableStreamReader.idl: Made closed a CachedAttribute.
* bindings/js/JSReadableStreamReaderCustom.cpp:
(WebCore::JSReadableStreamReader::closed): Updated according CachedAttribute specific field.

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

4 years ago[GTK] Crash when the web view is destroyed while the screensaver DBUs proxy is being...
carlosgc@webkit.org [Mon, 10 Aug 2015 08:27:52 +0000 (08:27 +0000)]
[GTK] Crash when the web view is destroyed while the screensaver DBUs proxy is being created
https://bugs.webkit.org/show_bug.cgi?id=147780

Reviewed by Sergio Villar Senin.

We should cancel the screenSaverInhibitCancellable on
dispose. Also use adoptGRef() when creating the cancellable object
to not leak it.

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDispose):
(webkitWebViewBaseSendInhibitMessageToScreenSaver):
(webkitWebViewBaseInhibitScreenSaver):

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

4 years ago[GTK] Test /webkit2/WebKitWebView/submit-form is flaky
carlosgc@webkit.org [Mon, 10 Aug 2015 08:24:59 +0000 (08:24 +0000)]
[GTK] Test  /webkit2/WebKitWebView/submit-form is flaky
https://bugs.webkit.org/show_bug.cgi?id=147727

Reviewed by Sergio Villar Senin.

I think it was not this test in particular, but
/webkit2/WebKitWebView/custom-charset that is affecting the
others. This is because changing the encoding reloads the page,
but we don't wait for the page to be reloaded, so when the test
finishes and other test starts the web process is still reloading
the page.

* Scripts/run-gtk-tests:
(TestRunner): Unskip /webkit2/WebKitWebView/submit-form.
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
(testWebViewCustomCharset): Wait until page is reloaded after
changing the charset.

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

4 years ago[EFL] Use the non-overlay scrollbar
commit-queue@webkit.org [Mon, 10 Aug 2015 06:50:56 +0000 (06:50 +0000)]
[EFL] Use the non-overlay scrollbar
https://bugs.webkit.org/show_bug.cgi?id=147725

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2015-08-09
Reviewed by Gyuyoung Kim.

No new tests because there is no behavior change.

* platform/efl/ScrollbarThemeEfl.cpp:
(WebCore::ScrollbarThemeEfl::usesOverlayScrollbars):
Changed the condition of the 'usesOverlayScrollbars' to use the
setting value.
* platform/efl/ScrollbarThemeEfl.h:

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

4 years agoUnreviewed. Skip GTK+ test /webkit2/WebKitWebView/install-missing-plugins-permission...
carlosgc@webkit.org [Mon, 10 Aug 2015 06:41:20 +0000 (06:41 +0000)]
Unreviewed. Skip GTK+ test /webkit2/WebKitWebView/install-missing-plugins-permission-request.

It's timing out in the bots. My guess is that there's no installer
installed in the bots and gst_install_plugins_supported() returns
false, so we don't even get a permission request because no
installer will be launched.

* Scripts/run-gtk-tests:
(TestRunner):

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

4 years agoPage cache doesn't work for pages actively using Geolocation
cdumez@apple.com [Mon, 10 Aug 2015 04:14:04 +0000 (04:14 +0000)]
Page cache doesn't work for pages actively using Geolocation
https://bugs.webkit.org/show_bug.cgi?id=147785
<rdar://problem/11147901>

Reviewed by Darin Adler.

Source/WebCore:

Allow pages actively using Geolocation into the PageCache.

Tests: fast/history/page-cache-geolocation-active-oneshot.html
       fast/history/page-cache-geolocation-active-watcher.html

* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::canSuspendForPageCache):
(WebCore::Geolocation::suspend): Deleted.
* history/PageCache.cpp:

LayoutTests:

Add layout test coverage for page caching of pages actively using
the Geolocation API.

* fast/history/page-cache-geolocation-active-oneshot-expected.txt: Added.
* fast/history/page-cache-geolocation-active-oneshot.html: Added.
* fast/history/page-cache-geolocation-active-watcher-expected.txt: Added.
* fast/history/page-cache-geolocation-active-watcher.html: Added.

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

4 years agoAX: CSS table display styles can cause malformed, inaccessible AXTables to be exposed...
commit-queue@webkit.org [Mon, 10 Aug 2015 01:53:10 +0000 (01:53 +0000)]
AX: CSS table display styles can cause malformed, inaccessible AXTables to be exposed to the AX tree
https://bugs.webkit.org/show_bug.cgi?id=136415
<rdar://problem/22026625>

Patch by Nan Wang <n_wang@apple.com> on 2015-08-09
Reviewed by Chris Fleizach.

Source/WebCore:

Applying CSS display styles to tables can end up inserting anonymous RenderTableRows, which is not handled well by the
accessibility code, which treats these as the actual rows. We can address this by diving deeper into anonymous nodes
and finding the real rows and cells we want. In addition, another thing also causing malformed tables is that "grid"
roles are being exposed as AXGrid instead of AXTable.

Test: accessibility/mac/malformed-table.html

* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addRowDescendant):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::addTableCellChild):
(WebCore::AccessibilityTable::addChildrenFromSection):
* accessibility/AccessibilityTable.h:
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::parentTable):
(WebCore::AccessibilityTableCell::rowIndexRange):
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::parentTable):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):

LayoutTests:

* accessibility/aria-table-with-presentational-elements-expected.txt:
* accessibility/aria-table-with-presentational-elements.html:
* accessibility/mac/malformed-table-expected.txt: Added.
* accessibility/mac/malformed-table.html: Added.
* platform/mac-mavericks/accessibility/roles-exposed-expected.txt:
* platform/mac/accessibility/aria-table-hierarchy-expected.txt:
* platform/mac/accessibility/aria-tables-expected.txt:
* platform/mac/accessibility/roles-exposed-expected.txt:

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

4 years agoRemove -webkit-color-correction CSS property
darin@apple.com [Mon, 10 Aug 2015 00:10:01 +0000 (00:10 +0000)]
Remove -webkit-color-correction CSS property
https://bugs.webkit.org/show_bug.cgi?id=147812

Reviewed by Maciej Stachowiak.

Source/WebCore:

Covered by existing tests.

I am doing some general cleanup of handling of color spaces in WebKit.
This removes the obsolete web-visible property that allowed clients to
get color correction on older Apple platforms where we chose not to do
it all the time for performance reasons. Currently, it has no effect on
any supported platform.

Now that this property is removed, a website can detect that it's not
there if it uses getComputedStyle, but I don't expect this to have
significant compatibility fallout. It's harmless to continue using the
property in legacy content or websites that have not been updated, since
unknown property names are ignored and it had no effect before anyway.

* css/CSSComputedStyleDeclaration.cpp: Removed
CSSPropertyWebkitColorCorrection from the list of computed properties.
(WebCore::ComputedStyleExtractor::propertyValue): Removed the
CSSPropertyWebkitColorCorrection case.

* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue): Removed the
CSSPropertyWebkitColorCorrection case.
(WebCore::isKeywordPropertyID): Ditto.
(WebCore::CSSParser::parseValue): Ditto.

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted the overload
of this that converts a ColorSpace to a CSSPrimitiveValue.
(WebCore::CSSPrimitiveValue::operator ColorSpace): Deleted.

* css/CSSPropertyNames.in: Removed -webkit-color-correction.

* css/CSSValueKeywords.in: Removed the -webkit-color-correction section,
which contained sRGB.

* css/SVGCSSValueKeywords.in: Uncommented sRGB now that it's not shared
with -webkit-color-correction.

* rendering/style/RenderStyle.h: Removed setColorSpace and initialColorSpace.
Kept colorSpace around for now, but it simply returns ColorSpaceSRGB.
This prevents us from needing to touch every single call site that passes
the color space in to functions in the platform graphics abstraction.
We'll touch most of those call sites when we change Color to include the
color space and eventually we can delete this.

* rendering/style/StyleRareInheritedData.cpp: Deleted colorSpace.
(WebCore::StyleRareInheritedData::StyleRareInheritedData): Deleted
code to initialize colorSpace and to copy colorSpace.
(WebCore::StyleRareInheritedData::operator==): Deleted code to compare
colorSpace.

LayoutTests:

Given that -webkit-color-correction had no effect on rendering on any platform in any
configuration we covered, it's amazing how many tests we had for it.

* fast/css/getComputedStyle/computed-style-expected.txt: Removed expected results for
-webkit-color-correction property.
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Ditto.
* svg/css/getComputedStyle-basic-expected.txt: Ditto.

* fast/css/getComputedStyle/resources/property-names.js: Removed -webkit-color-correction.

* fast/css/color-correction-backgrounds-and-text.html: Removed.
* fast/css/color-correction-on-background-image.html: Removed.
* fast/css/color-correction-on-backgrounds.html: Removed.
* fast/css/color-correction-on-box-shadow.html: Removed.
* fast/css/color-correction-on-text-shadow.html: Removed.
* fast/css/color-correction-on-text.html: Removed.
* fast/css/color-correction-untagged-images.html: Removed.
* fast/css/color-correction.html: Removed.
* fast/css/parsing-color-correction-expected.txt: Removed.
* fast/css/parsing-color-correction.html: Removed.
* fast/css/resources/parsing-color-correction.js: Removed.
* platform/efl/fast/css/color-correction-backgrounds-and-text-expected.png: Removed.
* platform/efl/fast/css/color-correction-backgrounds-and-text-expected.txt: Removed.
* platform/efl/fast/css/color-correction-expected.png: Removed.
* platform/efl/fast/css/color-correction-expected.txt: Removed.
* platform/efl/fast/css/color-correction-on-background-image-expected.png: Removed.
* platform/efl/fast/css/color-correction-on-background-image-expected.txt: Removed.
* platform/efl/fast/css/color-correction-on-backgrounds-expected.png: Removed.
* platform/efl/fast/css/color-correction-on-backgrounds-expected.txt: Removed.
* platform/efl/fast/css/color-correction-on-box-shadow-expected.png: Removed.
* platform/efl/fast/css/color-correction-on-box-shadow-expected.txt: Removed.
* platform/efl/fast/css/color-correction-on-text-expected.png: Removed.
* platform/efl/fast/css/color-correction-on-text-expected.txt: Removed.
* platform/efl/fast/css/color-correction-on-text-shadow-expected.png: Removed.
* platform/efl/fast/css/color-correction-on-text-shadow-expected.txt: Removed.
* platform/efl/fast/css/color-correction-untagged-images-expected.png: Removed.
* platform/efl/fast/css/color-correction-untagged-images-expected.txt: Removed.
* platform/gtk/fast/css/color-correction-backgrounds-and-text-expected.png: Removed.
* platform/gtk/fast/css/color-correction-backgrounds-and-text-expected.txt: Removed.
* platform/gtk/fast/css/color-correction-expected.png: Removed.
* platform/gtk/fast/css/color-correction-expected.txt: Removed.
* platform/gtk/fast/css/color-correction-on-background-image-expected.png: Removed.
* platform/gtk/fast/css/color-correction-on-background-image-expected.txt: Removed.
* platform/gtk/fast/css/color-correction-on-backgrounds-expected.png: Removed.
* platform/gtk/fast/css/color-correction-on-backgrounds-expected.txt: Removed.
* platform/gtk/fast/css/color-correction-on-box-shadow-expected.png: Removed.
* platform/gtk/fast/css/color-correction-on-box-shadow-expected.txt: Removed.
* platform/gtk/fast/css/color-correction-on-text-expected.png: Removed.
* platform/gtk/fast/css/color-correction-on-text-expected.txt: Removed.
* platform/gtk/fast/css/color-correction-on-text-shadow-expected.png: Removed.
* platform/gtk/fast/css/color-correction-on-text-shadow-expected.txt: Removed.
* platform/gtk/fast/css/color-correction-untagged-images-expected.png: Removed.
* platform/gtk/fast/css/color-correction-untagged-images-expected.txt: Removed.
* platform/ios-simulator-wk2/fast/css/color-correction-backgrounds-and-text-expected.txt: Removed.
* platform/ios-simulator-wk2/fast/css/color-correction-expected.txt: Removed.
* platform/ios-simulator-wk2/fast/css/color-correction-on-background-image-expected.txt: Removed.
* platform/ios-simulator-wk2/fast/css/color-correction-on-backgrounds-expected.txt: Removed.
* platform/ios-simulator-wk2/fast/css/color-correction-on-box-shadow-expected.txt: Removed.
* platform/ios-simulator-wk2/fast/css/color-correction-on-text-expected.txt: Removed.
* platform/ios-simulator-wk2/fast/css/color-correction-on-text-shadow-expected.txt: Removed.
* platform/ios-simulator-wk2/fast/css/color-correction-untagged-images-expected.txt: Removed.
* platform/ios-simulator/fast/css/color-correction-backgrounds-and-text-expected.txt: Removed.
* platform/ios-simulator/fast/css/color-correction-expected.txt: Removed.
* platform/ios-simulator/fast/css/color-correction-on-background-image-expected.txt: Removed.
* platform/ios-simulator/fast/css/color-correction-on-backgrounds-expected.txt: Removed.
* platform/ios-simulator/fast/css/color-correction-on-box-shadow-expected.txt: Removed.
* platform/ios-simulator/fast/css/color-correction-on-text-expected.txt: Removed.
* platform/ios-simulator/fast/css/color-correction-on-text-shadow-expected.txt: Removed.
* platform/ios-simulator/fast/css/color-correction-untagged-images-expected.txt: Removed.
* platform/mac/fast/css/color-correction-backgrounds-and-text-expected.png: Removed.
* platform/mac/fast/css/color-correction-backgrounds-and-text-expected.txt: Removed.
* platform/mac/fast/css/color-correction-expected.png: Removed.
* platform/mac/fast/css/color-correction-expected.txt: Removed.
* platform/mac/fast/css/color-correction-on-background-image-expected.png: Removed.
* platform/mac/fast/css/color-correction-on-background-image-expected.txt: Removed.
* platform/mac/fast/css/color-correction-on-backgrounds-expected.png: Removed.
* platform/mac/fast/css/color-correction-on-backgrounds-expected.txt: Removed.
* platform/mac/fast/css/color-correction-on-box-shadow-expected.png: Removed.
* platform/mac/fast/css/color-correction-on-box-shadow-expected.txt: Removed.
* platform/mac/fast/css/color-correction-on-text-expected.png: Removed.
* platform/mac/fast/css/color-correction-on-text-expected.txt: Removed.
* platform/mac/fast/css/color-correction-on-text-shadow-expected.png: Removed.
* platform/mac/fast/css/color-correction-on-text-shadow-expected.txt: Removed.
* platform/mac/fast/css/color-correction-untagged-images-expected.png: Removed.
* platform/mac/fast/css/color-correction-untagged-images-expected.txt: Removed.
* platform/win/fast/css/color-correction-backgrounds-and-text-expected.txt: Removed.
* platform/win/fast/css/color-correction-expected.txt: Removed.
* platform/win/fast/css/color-correction-on-background-image-expected.txt: Removed.
* platform/win/fast/css/color-correction-on-backgrounds-expected.txt: Removed.
* platform/win/fast/css/color-correction-on-box-shadow-expected.txt: Removed.
* platform/win/fast/css/color-correction-on-text-expected.txt: Removed.
* platform/win/fast/css/color-correction-on-text-shadow-expected.txt: Removed.
* platform/win/fast/css/color-correction-untagged-images-expected.txt: Removed.

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

4 years agoRegression(r188105): Seems to have caused crashes during PLT on some iPads
cdumez@apple.com [Sun, 9 Aug 2015 22:55:54 +0000 (22:55 +0000)]
Regression(r188105): Seems to have caused crashes during PLT on some iPads
https://bugs.webkit.org/show_bug.cgi?id=147818

Unreviewed, roll out r188105.

Source/JavaScriptCore:

* bytecode/ByValInfo.h:
(JSC::ByValInfo::ByValInfo):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::getByValInfoMap): Deleted.
(JSC::CodeBlock::addByValInfo): Deleted.
* bytecode/CodeBlock.h:
(JSC::CodeBlock::getByValInfo):
(JSC::CodeBlock::setNumberOfByValInfos):
(JSC::CodeBlock::numberOfByValInfos):
(JSC::CodeBlock::byValInfo):
* bytecode/ExitKind.cpp:
(JSC::exitKindToString): Deleted.
* bytecode/ExitKind.h:
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback): Deleted.
* bytecode/GetByIdStatus.h:
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): Deleted.
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry): Deleted.
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize): Deleted.
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants): Deleted.
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC): Deleted.
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode): Deleted.
(JSC::DFG::FixupPhase::observeUseKindOnNode): Deleted.
* dfg/DFGNode.h:
(JSC::DFG::Node::hasUidOperand): Deleted.
(JSC::DFG::Node::uidOperand): Deleted.
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate): Deleted.
* dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()): Deleted.
(JSC::DFG::safeToExecute): Deleted.
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCheckIdent): Deleted.
(JSC::DFG::SpeculativeJIT::speculateSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::speculate): Deleted.
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile): Deleted.
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile): Deleted.
* dfg/DFGUseKind.cpp:
(WTF::printInternal): Deleted.
* dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor): Deleted.
(JSC::DFG::isCell): Deleted.
* ftl/FTLAbstractHeapRepository.h:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile): Deleted.
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileCheckIdent): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::lowSymbol): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::speculate): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::isNotSymbol): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::speculateSymbol): Deleted.
* jit/JIT.cpp:
(JSC::JIT::privateCompile):
* jit/JIT.h:
(JSC::ByValCompilationInfo::ByValCompilationInfo):
(JSC::JIT::compileGetByValWithCachedId): Deleted.
* jit/JITInlines.h:
(JSC::JIT::callOperation): Deleted.
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_has_indexed_property):
(JSC::JIT::emitSlow_op_has_indexed_property):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_has_indexed_property):
(JSC::JIT::emitSlow_op_has_indexed_property):
* jit/JITOperations.cpp:
(JSC::getByVal):
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emitGetByValWithCachedId): Deleted.
(JSC::JIT::privateCompileGetByVal): Deleted.
(JSC::JIT::privateCompileGetByValWithCachedId): Deleted.
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emitGetByValWithCachedId): Deleted.
* runtime/Symbol.h:
* tests/stress/get-by-val-with-string-constructor.js: Removed.
* tests/stress/get-by-val-with-string-exit.js: Removed.
* tests/stress/get-by-val-with-string-generated.js: Removed.
* tests/stress/get-by-val-with-string-getter.js: Removed.
* tests/stress/get-by-val-with-string.js: Removed.
* tests/stress/get-by-val-with-symbol-constructor.js: Removed.
* tests/stress/get-by-val-with-symbol-exit.js: Removed.
* tests/stress/get-by-val-with-symbol-getter.js: Removed.
* tests/stress/get-by-val-with-symbol.js: Removed.

LayoutTests:

* js/regress/get-by-val-with-string-bimorphic-check-structure-elimination-expected.txt: Removed.
* js/regress/get-by-val-with-string-bimorphic-check-structure-elimination-simple-expected.txt: Removed.
* js/regress/get-by-val-with-string-bimorphic-check-structure-elimination-simple.html: Removed.
* js/regress/get-by-val-with-string-bimorphic-check-structure-elimination.html: Removed.
* js/regress/get-by-val-with-string-chain-from-try-block-expected.txt: Removed.
* js/regress/get-by-val-with-string-chain-from-try-block.html: Removed.
* js/regress/get-by-val-with-string-check-structure-elimination-expected.txt: Removed.
* js/regress/get-by-val-with-string-check-structure-elimination.html: Removed.
* js/regress/get-by-val-with-string-proto-or-self-expected.txt: Removed.
* js/regress/get-by-val-with-string-proto-or-self.html: Removed.
* js/regress/get-by-val-with-string-quadmorphic-check-structure-elimination-simple-expected.txt: Removed.
* js/regress/get-by-val-with-string-quadmorphic-check-structure-elimination-simple.html: Removed.
* js/regress/get-by-val-with-string-self-or-proto-expected.txt: Removed.
* js/regress/get-by-val-with-string-self-or-proto.html: Removed.
* js/regress/get-by-val-with-symbol-bimorphic-check-structure-elimination-expected.txt: Removed.
* js/regress/get-by-val-with-symbol-bimorphic-check-structure-elimination-simple-expected.txt: Removed.
* js/regress/get-by-val-with-symbol-bimorphic-check-structure-elimination-simple.html: Removed.
* js/regress/get-by-val-with-symbol-bimorphic-check-structure-elimination.html: Removed.
* js/regress/get-by-val-with-symbol-chain-from-try-block-expected.txt: Removed.
* js/regress/get-by-val-with-symbol-chain-from-try-block.html: Removed.
* js/regress/get-by-val-with-symbol-check-structure-elimination-expected.txt: Removed.
* js/regress/get-by-val-with-symbol-check-structure-elimination.html: Removed.
* js/regress/get-by-val-with-symbol-proto-or-self-expected.txt: Removed.
* js/regress/get-by-val-with-symbol-proto-or-self.html: Removed.
* js/regress/get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple-expected.txt: Removed.
* js/regress/get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple.html: Removed.
* js/regress/get-by-val-with-symbol-self-or-proto-expected.txt: Removed.
* js/regress/get-by-val-with-symbol-self-or-proto.html: Removed.
* js/regress/script-tests/get-by-val-with-string-bimorphic-check-structure-elimination-simple.js: Removed.
* js/regress/script-tests/get-by-val-with-string-bimorphic-check-structure-elimination.js: Removed.
* js/regress/script-tests/get-by-val-with-string-chain-from-try-block.js: Removed.
* js/regress/script-tests/get-by-val-with-string-check-structure-elimination.js: Removed.
* js/regress/script-tests/get-by-val-with-string-proto-or-self.js: Removed.
* js/regress/script-tests/get-by-val-with-string-quadmorphic-check-structure-elimination-simple.js: Removed.
* js/regress/script-tests/get-by-val-with-string-self-or-proto.js: Removed.
* js/regress/script-tests/get-by-val-with-symbol-bimorphic-check-structure-elimination-simple.js: Removed.
* js/regress/script-tests/get-by-val-with-symbol-bimorphic-check-structure-elimination.js: Removed.
* js/regress/script-tests/get-by-val-with-symbol-chain-from-try-block.js: Removed.
* js/regress/script-tests/get-by-val-with-symbol-check-structure-elimination.js: Removed.
* js/regress/script-tests/get-by-val-with-symbol-proto-or-self.js: Removed.
* js/regress/script-tests/get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple.js: Removed.
* js/regress/script-tests/get-by-val-with-symbol-self-or-proto.js: Removed.

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

4 years agoFollow-up nit fixes after r187691.
cdumez@apple.com [Sun, 9 Aug 2015 22:20:36 +0000 (22:20 +0000)]
Follow-up nit fixes after r187691.
https://bugs.webkit.org/show_bug.cgi?id=128006

Reviewed by Gavin Barraclough.

Use modern for-loops instead of explicit iterators.

* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::shouldCoalesceChallenge):
(WebKit::AuthenticationManager::coalesceChallengesMatching):

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

4 years ago[Mac] Always require ExternalDeviceAutoPlayCandidate flag to AirPlay automatically
eric.carlson@apple.com [Sun, 9 Aug 2015 20:39:56 +0000 (20:39 +0000)]
[Mac] Always require ExternalDeviceAutoPlayCandidate flag to AirPlay automatically
https://bugs.webkit.org/show_bug.cgi?id=147801

Reviewed by Dean Jackson.

Test: http/tests/media/video-media-document-disposition-download.html

* Modules/mediasession/WebMediaSessionManager.cpp:
(WebCore::WebMediaSessionManager::configurePlaybackTargetClients): Don't tell the last element
  to begin playing to the target unless the ExternalDeviceAutoPlayCandidate flag is set and
  it is not currently playing.

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

4 years agoCrash in ComplexTextController when laying out obscure text
mmaxfield@apple.com [Sun, 9 Aug 2015 20:01:15 +0000 (20:01 +0000)]
Crash in ComplexTextController when laying out obscure text
https://bugs.webkit.org/show_bug.cgi?id=147806
<rdar://problem/22102378>

Reviewed by Darin Adler.

Source/WebCore:

CTFontDescriptorCopyAttribute(fontDescriptor.get(), kCTFontReferenceURLAttribute) can return nullptr.

Test: fast/text/crash-obscure-text.html

* platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::safeCFEqual):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

LayoutTests:

* fast/text/crash-obscure-text-expected.txt: Added.
* fast/text/crash-obscure-text.html: Added.

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

4 years agoRemove the webkit prefix from CanvasRenderingContext2D imageSmoothingEnabled
dino@apple.com [Sun, 9 Aug 2015 11:15:01 +0000 (11:15 +0000)]
Remove the webkit prefix from CanvasRenderingContext2D imageSmoothingEnabled
https://bugs.webkit.org/show_bug.cgi?id=147803
<rdar://problem/22200553>

Reviewed by Sam Weinig.

Source/WebCore:

Rename webkitImageSmoothingEnabled to imageSmoothingEnabled.

Updated existing tests, and made sure that the prefixed version is
identical to the standard version.

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::imageSmoothingEnabled): Renamed from webkitImageSmoothingEnabled.
(WebCore::CanvasRenderingContext2D::setImageSmoothingEnabled): Renamed from setWebkitImageSmoothingEnabled.
(WebCore::CanvasRenderingContext2D::webkitImageSmoothingEnabled): Deleted.
(WebCore::CanvasRenderingContext2D::setWebkitImageSmoothingEnabled): Deleted.
* html/canvas/CanvasRenderingContext2D.h: Rename the methods.
* html/canvas/CanvasRenderingContext2D.idl: Add the non-prefixed form, and mark is as the
implementation of the prefixed form.

LayoutTests:

Use the standard version of imageSmoothingEnabled rather than
the prefixed version.

* fast/canvas/canvas-imageSmoothingEnabled-expected.txt:
* fast/canvas/canvas-imageSmoothingEnabled-patterns.html:
* fast/canvas/canvas-imageSmoothingEnabled-zero-size.html:
* fast/canvas/script-tests/canvas-imageSmoothingEnabled-repaint.js:
(draw):
* fast/canvas/script-tests/canvas-imageSmoothingEnabled.js: Add some tests
to make sure the prefixed version correctly maps to the standard version.

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

4 years agoRef-ify some functions that always succeed in constructing Documents.
akling@apple.com [Sun, 9 Aug 2015 08:11:32 +0000 (08:11 +0000)]
Ref-ify some functions that always succeed in constructing Documents.
<https://webkit.org/b/147552>

Reviewed by Sam Weinig.

Update some functions involved in the construction of new Document objects
to codify that they always construct objects.

Bonus: DOMImplementation::createCSSStyleSheet().

* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createCSSStyleSheet):
(WebCore::DOMImplementation::createHTMLDocument):
(WebCore::DOMImplementation::createDocument):
* dom/DOMImplementation.h:
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument):
(WebCore::DocumentWriter::begin):
* loader/DocumentWriter.h:
* xml/DOMParser.cpp:
(WebCore::DOMParser::parseFromString):
* xml/DOMParser.h:
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
* xml/XSLTProcessor.h:

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

4 years agoWeb Inspector: Timeline ruler handle tooltip shows wrong value when handles overlap
drousso@apple.com [Sun, 9 Aug 2015 02:06:07 +0000 (02:06 +0000)]
Web Inspector: Timeline ruler handle tooltip shows wrong value when handles overlap
https://bugs.webkit.org/show_bug.cgi?id=147652

Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._updateSelection):
Now changes the title depending on whether the selection start/end is clamped.

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

4 years agoWeb Inspector: Don't show "No Filter Results" when timeline is empty
drousso@apple.com [Sun, 9 Aug 2015 01:22:06 +0000 (01:22 +0000)]
Web Inspector: Don't show "No Filter Results" when timeline is empty
https://bugs.webkit.org/show_bug.cgi?id=147662

Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.reset):
Now hides the empty content placeholder on timeline clear.

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

4 years agoUnreviewed, rolling out r179871.
commit-queue@webkit.org [Sat, 8 Aug 2015 18:40:38 +0000 (18:40 +0000)]
Unreviewed, rolling out r179871.
https://bugs.webkit.org/show_bug.cgi?id=147810

Breaks product images on http://www.apple.com/shop/buy-
mac/macbook (Requested by smfr on #webkit).

Reverted changeset:

"Render: properly update body's background image"
https://bugs.webkit.org/show_bug.cgi?id=140183
http://trac.webkit.org/changeset/179871

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

4 years agoWeb Inspector: Decrease the padding of each rule in the Rules sidebar to allow more...
drousso@apple.com [Sat, 8 Aug 2015 05:39:26 +0000 (05:39 +0000)]
Web Inspector: Decrease the padding of each rule in the Rules sidebar to allow more content to show
https://bugs.webkit.org/show_bug.cgi?id=147360

Reviewed by Timothy Hatcher.

Generally tightened the padding around each section in the rules panel, as well as the
content inside each section. Also moved the new rule button to be next to the filter bar.

* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section):
(.style-declaration-section.last-in-group):
(.style-declaration-section.last-in-group + .style-declaration-section): Deleted.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content > .pseudo-classes):
(.sidebar > .panel.details.css-style > .content + .options-container):
(.sidebar > .panel.details.css-style > .content:not(.supports-new-rule, .has-filter-bar) + .options-container):
(.sidebar > .panel.details.css-style > .content + .options-container > .new-rule):
(.sidebar > .panel.details.css-style > .content + .options-container > .filter-bar):
(.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .options-container > .filter-bar):
(.sidebar > .panel.details.css-style > .content.has-filter-bar + .filter-bar): Deleted.
(.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .filter-bar): Deleted.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._newRuleButtonClicked):
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton): Deleted.
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Deleted.
(WebInspector.RulesStyleDetailsPanel.prototype._newRuleClicked): Deleted.

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

4 years agoReduce uses of PassRefPtr in bindings
gyuyoung.kim@webkit.org [Sat, 8 Aug 2015 05:39:06 +0000 (05:39 +0000)]
Reduce uses of PassRefPtr in bindings
https://bugs.webkit.org/show_bug.cgi?id=147781

Reviewed by Chris Dumez.

Use RefPtr when function can return null or an instance. If not, Ref is used.

Source/JavaScriptCore:

* runtime/JSGenericTypedArrayView.h:
(JSC::toNativeTypedView):

Source/WebCore:

* bindings/gobject/GObjectNodeFilterCondition.h:
* bindings/gobject/GObjectXPathNSResolver.h:
* bindings/gobject/WebKitDOMNodeFilter.cpp:
(WebKit::core):
* bindings/gobject/WebKitDOMNodeFilterPrivate.h:
* bindings/gobject/WebKitDOMXPathNSResolver.cpp:
(WebKit::core):
* bindings/gobject/WebKitDOMXPathNSResolverPrivate.h:
* bindings/js/CallbackFunction.h:
(WebCore::createFunctionOnlyCallback):
* bindings/js/Dictionary.h:
(WebCore::Dictionary::getEventListener):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::scriptValueToIDBKey):
* bindings/js/IDBBindingUtilities.h:
* bindings/js/JSDOMBinding.h:
(WebCore::toInt8Array):
(WebCore::toInt16Array):
(WebCore::toInt32Array):
(WebCore::toUint8Array):
(WebCore::toUint8ClampedArray):
(WebCore::toUint16Array):
(WebCore::toUint32Array):
(WebCore::toFloat32Array):
(WebCore::toFloat64Array):
* bindings/js/JSDOMStringListCustom.cpp:
(WebCore::JSDOMStringList::toWrapped):
* bindings/js/JSDeviceMotionEventCustom.cpp:
(WebCore::readAccelerationArgument):
(WebCore::readRotationRateArgument):
* bindings/js/JSErrorHandler.h:
(WebCore::createJSErrorHandler):
* bindings/js/JSGeolocationCustom.cpp:
(WebCore::createPositionOptions):
* bindings/js/JSNodeCustom.cpp:
* bindings/js/JSNodeFilterCustom.cpp:
(WebCore::JSNodeFilter::toWrapped):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::createWorld):
(WebCore::ScriptController::createRootObject):
(WebCore::ScriptController::createScriptInstanceForWidget):
* bindings/js/ScriptController.h:
* bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::createScriptInstanceForWidget):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
* bindings/js/SerializedScriptValue.h:
* bindings/objc/DOMUIKitExtensions.mm:
(-[DOMNode rangeOfContainingParagraph]):
* bindings/objc/ObjCNodeFilterCondition.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):

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

4 years ago[El Capitan] Test Gardening
mmaxfield@apple.com [Sat, 8 Aug 2015 04:08:16 +0000 (04:08 +0000)]
[El Capitan] Test Gardening

Unreviewed.

* platform/mac/css3/font-feature-settings-preinstalled-fonts-expected.txt: Added.

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

4 years ago[OS X] Remove dead code from FontCache::createFontPlatformData()
mmaxfield@apple.com [Sat, 8 Aug 2015 03:54:44 +0000 (03:54 +0000)]
[OS X] Remove dead code from FontCache::createFontPlatformData()
https://bugs.webkit.org/show_bug.cgi?id=147804

Reviewed by Zalan Bujtas.

CTFontCreateForCSS() always returns the best font.

No new tests because there is no behavior change.

* platform/graphics/mac/FontCacheMac.mm:
(WebCore::fontWithFamily):

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

4 years agoWeb Inspector: Don't include zero-width space into a copied text from the console
drousso@apple.com [Sat, 8 Aug 2015 03:45:21 +0000 (03:45 +0000)]
Web Inspector: Don't include zero-width space into a copied text from the console
https://bugs.webkit.org/show_bug.cgi?id=147767

Reviewed by Timothy Hatcher.

Now removes work break characters in generated javascript text when copying
to the clipboard.  Also replaced var with let in the modified functions.

* UserInterface/Views/ConsoleCommandView.js:
(WebInspector.ConsoleCommandView.prototype.toClipboardString):
(WebInspector.ConsoleCommandView):
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype.toClipboardString):

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

4 years agoMove painting functions from RenderObject to RenderElement.
zalan@apple.com [Sat, 8 Aug 2015 03:06:52 +0000 (03:06 +0000)]
Move painting functions from RenderObject to RenderElement.
https://bugs.webkit.org/show_bug.cgi?id=147764

Reviewed by Simon Fraser.

Ideally they should live in RenderBoxModelObject, but the current SVG architecture makes is difficult
to move them there.

No change in functionality.

* platform/graphics/FloatRect.h:
(WebCore::FloatRect::FloatRect):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintOneBorderSide):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::drawLineForBoxSide):
(WebCore::RenderElement::paintFocusRing):
(WebCore::RenderElement::paintOutline):
* rendering/RenderElement.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutline):
(WebCore::RenderInline::paintOutlineForLine):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::paintColumnRules):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide): Deleted.
(WebCore::RenderObject::paintFocusRing): Deleted.
(WebCore::RenderObject::paintOutline): Deleted.
* rendering/RenderObject.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintCollapsedBorders):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paintRowGroupBorder):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintMenuListButtonDecorations):
* rendering/RenderThemeIOS.h:
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMenuListButtonDecorations):

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

4 years agoREGRESSION(r184722) AX: WebKit video playback toolbar removed from DOM; no longer...
jcraig@apple.com [Sat, 8 Aug 2015 02:14:43 +0000 (02:14 +0000)]
REGRESSION(r184722) AX: WebKit video playback toolbar removed from DOM; no longer accessible to VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=145684

Reviewed by Dean Jackson.

Source/WebCore:

Updated Apple Video controls to add an invisible but focusable button that allows VoiceOver
users (and when unblocked, keyboard users) to re-display the video controls.

Test: media/video-controls-show-on-kb-or-ax-event.html

* English.lproj/mediaControlsLocalizedStrings.js:
* Modules/mediacontrols/mediaControlsApple.css:
(audio::-webkit-media-show-controls):
(video::-webkit-media-show-controls):
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls):
(Controller.prototype.handleFullscreenChange):
(Controller.prototype.handleShowControlsClick):
(Controller.prototype.handleWrapperMouseMove):
(Controller.prototype.updateForShowingControls):
(Controller.prototype.showControls):
(Controller.prototype.hideControls):
(Controller.prototype.setNeedsUpdateForDisplayedWidth):
* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-show-controls):
(video::-webkit-media-show-controls):

LayoutTests:

* http/tests/contentextensions/text-track-blocked-expected.txt: Minor update to test case expectation.
* media/video-controls-show-on-kb-or-ax-event-expected.txt: Added.
* media/video-controls-show-on-kb-or-ax-event.html: New test validates video controls can be displayed without the need for a mouse.
* platform/mac/media/track/track-cue-rendering-horizontal-expected.txt: Minor update to test case expectation.

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

4 years ago[GTK] Another build fix after r188157.
achristensen@apple.com [Sat, 8 Aug 2015 00:21:26 +0000 (00:21 +0000)]
[GTK] Another build fix after r188157.

* WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
(WTR::PlatformWebView::viewSupportsOptions):
Name all the things correctly!

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

4 years ago[EFL, GTK] Build fix after r188176.
achristensen@apple.com [Sat, 8 Aug 2015 00:14:59 +0000 (00:14 +0000)]
[EFL, GTK] Build fix after r188176.

* DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
I moved forwarding headers out of a unix subdirectory because I am using them on Windows now.

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

4 years ago[GTK] Speculative build fix after r188157.
achristensen@apple.com [Sat, 8 Aug 2015 00:09:18 +0000 (00:09 +0000)]
[GTK] Speculative build fix after r188157.

* WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
(WTR::PlatformWebView::PlatformWebView):
Update parameter list.

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

4 years agoBuild more testing binaries with CMake on Windows
achristensen@apple.com [Fri, 7 Aug 2015 23:42:07 +0000 (23:42 +0000)]
Build more testing binaries with CMake on Windows
https://bugs.webkit.org/show_bug.cgi?id=147799

Reviewed by Brent Fulgham.

Source/JavaScriptCore:

* shell/PlatformWin.cmake: Added.
Build jsc.dll and jsc.exe to find Apple Application Support or WinCairo dlls before using them.

Source/WebCore:

* CMakeLists.txt:
MockCDM.cpp needs to be part of WebCoreTestSupport, not WebCore.
* PlatformWin.cmake:
Added files needed for AppleWin port.

Source/WebKit/win:

* WebKitDLL.cpp:
(loadResourceIntoBuffer):
AppleWin doesn't like exporting a function without a separate declaration.

Tools:

* DumpRenderTree/CMakeLists.txt:
Build TestNetscapePlugin.
* DumpRenderTree/PlatformWin.cmake:
Build ImageDiff and add files necessary for TestNetscapePlugin on Windows.
* DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders: Added.
* DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit: Added.
* DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npapi.h: Copied from DumpRenderTree/TestNetscapePlugIn/unix/ForwardingHeaders/WebKit/npapi.h.
* DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npfunctions.h: Copied from DumpRenderTree/TestNetscapePlugIn/unix/ForwardingHeaders/WebKit/npfunctions.h.
* DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npruntime.h: Copied from DumpRenderTree/TestNetscapePlugIn/unix/ForwardingHeaders/WebKit/npruntime.h.
* DumpRenderTree/TestNetscapePlugIn/unix/ForwardingHeaders/WebKit/npapi.h: Removed.
* DumpRenderTree/TestNetscapePlugIn/unix/ForwardingHeaders/WebKit/npfunctions.h: Removed.
* DumpRenderTree/TestNetscapePlugIn/unix/ForwardingHeaders/WebKit/npruntime.h: Removed.

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

4 years agoBeing moving away from using SQLTransactionStateMachine in SQLTransactionBackend
andersca@apple.com [Fri, 7 Aug 2015 23:39:53 +0000 (23:39 +0000)]
Being moving away from using SQLTransactionStateMachine in SQLTransactionBackend
https://bugs.webkit.org/show_bug.cgi?id=147798

Reviewed by Geoffrey Garen.

This is the first step towards getting rid of the state machine so we can ultimately merge SQLTransactionBackend
into SQLTransaction.

Instead of having the state machine run our functions, just run them ourselves where we can. For states that need
to be handled in the frontend, call SQLTransaction::requestTransitToState explicitly.

* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::stateFunctionFor):
(WebCore::SQLTransactionBackend::lockAcquired):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::runCurrentStatement):
(WebCore::SQLTransactionBackend::handleCurrentStatementError):
(WebCore::SQLTransactionBackend::handleTransactionError):
(WebCore::SQLTransactionBackend::postflightAndCommit):
(WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState): Deleted.
(WebCore::SQLTransactionBackend::nextStateForCurrentStatementError): Deleted.
(WebCore::SQLTransactionBackend::nextStateForTransactionError): Deleted.
(WebCore::SQLTransactionBackend::sendToFrontendState): Deleted.
* Modules/webdatabase/SQLTransactionBackend.h:

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

4 years ago[Mac] Test gardening
mmaxfield@apple.com [Fri, 7 Aug 2015 23:31:36 +0000 (23:31 +0000)]
[Mac] Test gardening

Unreviewed.

* platform/mac/TestExpectations:

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

4 years agoWeb Inspector: Simplify OS-specific CSS class names
nvasilyev@apple.com [Fri, 7 Aug 2015 23:25:38 +0000 (23:25 +0000)]
Web Inspector: Simplify OS-specific CSS class names
https://bugs.webkit.org/show_bug.cgi?id=147794

Replace "body:not(.el-capitan)" with ".legacy-mac".
Replace "body.el-capitan" with ".latest-mac".

Reviewed by Timothy Hatcher.

* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
* UserInterface/Views/Toolbar.css:
(body.legacy-mac .toolbar .dashboard-container):
(body.legacy-mac .toolbar .search-bar > input[type="search"]):
(body.legacy-mac .toolbar .search-bar > input[type="search"]:focus):
(body.legacy-mac .toolbar .item.button:active):
(body.window-inactive.legacy-mac .toolbar .dashboard-container):
(body.latest-mac .toolbar .dashboard-container):
(body.latest-mac .toolbar .search-bar > input[type="search"]):
(body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
(@media (-webkit-min-device-pixel-ratio: 2)):
(body.latest-mac .toolbar .item.button:active):
(body.latest-mac.window-inactive .toolbar .dashboard-container):
(body:not(.el-capitan) .toolbar .dashboard-container): Deleted.
(body:not(.el-capitan) .toolbar .search-bar > input[type="search"]): Deleted.
(body:not(.el-capitan) .toolbar .search-bar > input[type="search"]:focus): Deleted.
(body:not(.el-capitan) .toolbar .item.button:active): Deleted.
(body.window-inactive:not(.el-capitan) .toolbar .dashboard-container): Deleted.
(body.el-capitan .toolbar .dashboard-container): Deleted.
(body.el-capitan .toolbar .search-bar > input[type="search"]): Deleted.
(body.el-capitan .toolbar .search-bar > input[type="search"]:focus): Deleted.
(body.el-capitan .toolbar .item.button:active): Deleted.
(body.el-capitan.window-inactive .toolbar .dashboard-container): Deleted.

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

4 years agoRefactor BuildbotQueue.compareIterations and BuildbotQueue.compareIterationsByRevisio...
commit-queue@webkit.org [Fri, 7 Aug 2015 23:10:59 +0000 (23:10 +0000)]
Refactor BuildbotQueue.compareIterations and BuildbotQueue.compareIterationsByRevisions to be more generic
https://bugs.webkit.org/show_bug.cgi?id=147667

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

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:
(BuildbotQueue.prototype.compareIterations): Refactored to work more generically with repositories
other than "openSource" and "internal".
(BuildbotQueue.prototype.compareIterationsByRevisions): Ditto.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
(Dashboard.get sortedPlatforms): Added. Returns a sorted array of platforms.
(Dashboard.get sortedRepositories): Added. Returns a sorted array of repositories.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
(documentReady): Using Dashboard.sortedPlatforms instead of sortedPlatforms.
(sortedPlatforms): Deleted.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js:
(buildQueuesTable): Using Dashboard.sortedPlatforms instead of sortedPlatforms.
(sortedPlatforms): Deleted.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Utilities.js:
(sortDictionariesByOrder): Added. Takes an array of dictionaries that have an "order" property
and sorts them by this property returning the new sorted array.

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

4 years agoLightweight locks should be adaptive
fpizlo@apple.com [Fri, 7 Aug 2015 22:38:59 +0000 (22:38 +0000)]
Lightweight locks should be adaptive
https://bugs.webkit.org/show_bug.cgi?id=147545

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

* dfg/DFGCommon.cpp:
(JSC::DFG::startCrashing):
* heap/CopiedBlock.h:
(JSC::CopiedBlock::workListLock):
* heap/CopiedBlockInlines.h:
(JSC::CopiedBlock::shouldReportLiveBytes):
(JSC::CopiedBlock::reportLiveBytes):
* heap/CopiedSpace.cpp:
(JSC::CopiedSpace::doneFillingBlock):
* heap/CopiedSpace.h:
(JSC::CopiedSpace::CopiedGeneration::CopiedGeneration):
* heap/CopiedSpaceInlines.h:
(JSC::CopiedSpace::recycleEvacuatedBlock):
* heap/GCThreadSharedData.cpp:
(JSC::GCThreadSharedData::didStartCopying):
* heap/GCThreadSharedData.h:
(JSC::GCThreadSharedData::getNextBlocksToCopy):
* heap/ListableHandler.h:
(JSC::ListableHandler::List::addThreadSafe):
(JSC::ListableHandler::List::addNotThreadSafe):
* heap/MachineStackMarker.cpp:
(JSC::MachineThreads::tryCopyOtherThreadStacks):
* heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::copyLater):
* parser/SourceProvider.cpp:
(JSC::SourceProvider::~SourceProvider):
(JSC::SourceProvider::getID):
* profiler/ProfilerDatabase.cpp:
(JSC::Profiler::Database::addDatabaseToAtExit):
(JSC::Profiler::Database::removeDatabaseFromAtExit):
(JSC::Profiler::Database::removeFirstAtExitDatabase):
* runtime/TypeProfilerLog.h:

Source/WebCore:

* bindings/objc/WebScriptObject.mm:
(WebCore::getJSWrapper):
(WebCore::addJSWrapper):
(WebCore::removeJSWrapper):
(WebCore::removeJSWrapperIfRetainCountOne):
* platform/audio/mac/CARingBuffer.cpp:
(WebCore::CARingBuffer::setCurrentFrameBounds):
(WebCore::CARingBuffer::getCurrentFrameBounds):
* platform/audio/mac/CARingBuffer.h:
* platform/ios/wak/WAKWindow.mm:
(-[WAKWindow setExposedScrollViewRect:]):
(-[WAKWindow exposedScrollViewRect]):

Source/WebKit2:

* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::clearQueuedTouchEventsForPage):
(WebKit::EventDispatcher::getQueuedTouchEventsForPage):
(WebKit::EventDispatcher::touchEvent):
(WebKit::EventDispatcher::dispatchTouchEvents):
* WebProcess/WebPage/EventDispatcher.h:
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
(WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
* WebProcess/WebPage/ViewUpdateDispatcher.h:

Source/WTF:

A common idiom in WebKit is to use spinlocks. We use them because the lock acquisition
overhead is lower than system locks and because they take dramatically less space than system
locks. The speed and space advantages of spinlocks can be astonishing: an uncontended spinlock
acquire is up to 10x faster and under microcontention - short critical section with two or
more threads taking turns - spinlocks are up to 100x faster. Spinlocks take only 1 byte or 4
bytes depending on the flavor, while system locks take 64 bytes or more. Clearly, WebKit
should continue to avoid system locks - they are just far too slow and far too big.

But there is a problem with this idiom. System lock implementations will sleep a thread when
it attempts to acquire a lock that is held, while spinlocks will cause the thread to burn CPU.
In WebKit spinlocks, the thread will repeatedly call sched_yield(). This is awesome for
microcontention, but awful when the lock will not be released for a while. In fact, when
critical sections take tens of microseconds or more, the CPU time cost of our spinlocks is
almost 100x more than the CPU time cost of a system lock. This case doesn't arise too
frequently in our current uses of spinlocks, but that's probably because right now there are
places where we make a conscious decision to use system locks - even though they use more
memory and are slower - because we don't want to waste CPU cycles when a thread has to wait a
while to acquire the lock.

The solution is to just implement a modern adaptive mutex in WTF. Luckily, this isn't a new
concept. This patch implements a mutex that is reminiscent of the kinds of low-overhead locks
that JVMs use. The actual implementation here is inspired by some of the ideas from [1]. The
idea is simple: the fast path is an inlined CAS to immediately acquire a lock that isn't held,
the slow path tries some number of spins to acquire the lock, and if that fails, the thread is
put on a queue and put to sleep. The queue is made up of statically allocated thread nodes and
the lock itself is a tagged pointer: either it is just bits telling us the complete lock state
(not held or held) or it is a pointer to the head of a queue of threads waiting to acquire the
lock. This approach gives WTF::Lock three different levels of adaptation: an inlined fast path
if the lock is not contended, a short burst of spinning for microcontention, and a full-blown
queue for critical sections that are held for a long time.

On a locking microbenchmark, this new Lock exhibits the following performance
characteristics:

- Lock+unlock on an uncontended no-op critical section: 2x slower than SpinLock and 3x faster
  than a system mutex.

- Lock+unlock on a contended no-op critical section: 2x slower than SpinLock and 100x faster
  than a system mutex.

- CPU time spent in lock() on a lock held for a while: same as system mutex, 90x less than a
  SpinLock.

- Memory usage: sizeof(void*), so on 64-bit it's 8x less than a system mutex but 2x worse than
  a SpinLock.

This patch replaces all uses of SpinLock with Lock, since our critical sections are not
no-ops so if you do basically anything in your critical section, the Lock overhead will be
invisible. Also, in all places where we used SpinLock, we could tolerate 8 bytes of overhead
instead of 4. Performance benchmarking using JSC macrobenchmarks shows no difference, which is
as it should be: the purpose of this change is to reduce CPU time wasted, not wallclock time.
This patch doesn't replace any uses of ByteSpinLock, since we expect that the space benefits
of having a lock that just uses a byte are still better than the CPU wastage benefits of
Lock. But, this work will enable some future work to create locks that will fit in just 1.6
bits: https://bugs.webkit.org/show_bug.cgi?id=147665.

Rolling this back in after fixing Lock::unlockSlow() for architectures that have a truly weak
CAS. Since the Lock::unlock() fast path can go to slow path spuriously, it may go there even if
there aren't any threads on the Lock's queue. So, unlockSlow() must be able to deal with the
possibility of a null queue head.

[1] http://www.filpizlo.com/papers/pizlo-pppj2011-fable.pdf

* WTF.vcxproj/WTF.vcxproj:
* WTF.xcodeproj/project.pbxproj:
* benchmarks: Added.
* benchmarks/LockSpeedTest.cpp: Added.
(main):
* wtf/Atomics.h:
(WTF::Atomic::compareExchangeWeak):
(WTF::Atomic::compareExchangeStrong):
* wtf/CMakeLists.txt:
* wtf/Lock.cpp: Added.
(WTF::LockBase::lockSlow):
(WTF::LockBase::unlockSlow):
* wtf/Lock.h: Added.
(WTF::LockBase::lock):
(WTF::LockBase::unlock):
(WTF::LockBase::isHeld):
(WTF::LockBase::isLocked):
(WTF::Lock::Lock):
* wtf/MetaAllocator.cpp:
(WTF::MetaAllocator::release):
(WTF::MetaAllocatorHandle::shrink):
(WTF::MetaAllocator::allocate):
(WTF::MetaAllocator::currentStatistics):
(WTF::MetaAllocator::addFreshFreeSpace):
(WTF::MetaAllocator::debugFreeSpaceSize):
* wtf/MetaAllocator.h:
* wtf/SpinLock.h:
* wtf/ThreadingPthreads.cpp:
* wtf/ThreadingWin.cpp:
* wtf/text/AtomicString.cpp:
* wtf/text/AtomicStringImpl.cpp:
(WTF::AtomicStringTableLocker::AtomicStringTableLocker):

Tools:

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WTF/Lock.cpp: Added.
(TestWebKitAPI::runLockTest):
(TestWebKitAPI::TEST):

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

4 years agoPost-review comments on r188146
mmaxfield@apple.com [Fri, 7 Aug 2015 21:55:17 +0000 (21:55 +0000)]
Post-review comments on r188146
https://bugs.webkit.org/show_bug.cgi?id=147793

Reviewed by Daniel Bates.

No new tests because there is no behavior change.

* platform/graphics/FontCache.h:
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::appendTrueTypeFeature):
(WebCore::appendOpenTypeFeature):
(WebCore::applyFontFeatureSettings):
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::getSystemFontFallbackForCharacters):
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::fontWithFamily):
(WebCore::FontCache::systemFallbackForCharacters):
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::updateCachedSystemFontDescription):

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

4 years agoSource/WebCore:
mmaxfield@apple.com [Fri, 7 Aug 2015 21:49:42 +0000 (21:49 +0000)]
Source/WebCore:
[Cocoa] Font fallback is not language-sensitive
https://bugs.webkit.org/show_bug.cgi?id=147390

Reviewed by Dean Jackson.

We need to make our font fallback code sensitive to locale.

This patch rolls r187729 back in. However, only particular versions of iOS and OS X are
performant enough to enable this language-sensitivity.

This patch also applies to iOS.

Test: fast/text/fallback-language-han.html

* platform/graphics/mac/FontCacheMac.mm:
(WebCore::lookupCTFont):
(WebCore::FontCache::systemFallbackForCharacters):
* platform/graphics/mac/FontCacheIOS.mm:
(WebCore::FontCache::systemFallbackForCharacters):

LayoutTests:
[OS X] Font fallback is not language-sensitive
https://bugs.webkit.org/show_bug.cgi?id=147390

Reviewed by Dean Jackson.

This test is expected to fail most places.

* fast/text/fallback-language-han-expected.html: Added.
* fast/text/fallback-language-han.html: Added.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/win/TestExpectations:
* platform/mac/TestExpectations:
* platform/iOS/TestExpectations:

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

4 years agoRenderTheme::volumeSliderOffsetFromMuteButton should take const& RenderBox.
zalan@apple.com [Fri, 7 Aug 2015 21:44:56 +0000 (21:44 +0000)]
RenderTheme::volumeSliderOffsetFromMuteButton should take const& RenderBox.
https://bugs.webkit.org/show_bug.cgi?id=147731

Reviewed by Simon Fraser.

No change in functionality.

* rendering/RenderMediaControlElements.cpp:
(WebCore::RenderMediaVolumeSliderContainer::layout):
* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton): Deleted.
* rendering/RenderMediaControls.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
* rendering/RenderTheme.h:

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

4 years agoReplace RenderObject::isRooted() logic with isDescendantOf().
zalan@apple.com [Fri, 7 Aug 2015 21:30:35 +0000 (21:30 +0000)]
Replace RenderObject::isRooted() logic with isDescendantOf().
https://bugs.webkit.org/show_bug.cgi?id=147788

Reviewed by Simon Fraser.

And some related cleanups.

No change in functionality.

* page/FrameView.cpp:
(WebCore::FrameView::scheduleRelayoutOfSubtree):
(WebCore::FrameView::extendedBackgroundRectForPainting):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintRootBoxFillLayers):
* rendering/RenderElement.cpp:
(WebCore::shouldRepaintForImageAnimation):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::isDescendantOf):
(WebCore::scheduleRelayoutForSubtree):
(WebCore::RenderObject::repaint):
(WebCore::RenderObject::repaintRectangle):
(WebCore::RenderObject::repaintSlowRepaintObject):
(WebCore::RenderObject::isRooted):
* rendering/RenderObject.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::unextendedBackgroundRect):
(WebCore::RenderView::backgroundRect):
* rendering/RenderView.h:

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

4 years agoSubtree layout code should use RenderElement.
zalan@apple.com [Fri, 7 Aug 2015 21:25:34 +0000 (21:25 +0000)]
Subtree layout code should use RenderElement.
https://bugs.webkit.org/show_bug.cgi?id=147694

Reviewed by Simon Fraser.

Subtree layout will never begin at a RenderText, so tighten up
the code to operate on RenderElements instead of RenderObjects.
(This patch is based on webkit.org/b/126878)

No change in functionality.

* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willLayout):
* page/FrameView.cpp:
(WebCore::FrameView::FrameView): Deleted.
(WebCore::FrameView::layoutRoot): Deleted.
* page/FrameView.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalWidthInRegion):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::clearLayoutRootIfNeeded):
(WebCore::RenderElement::willBeDestroyed):
* rendering/RenderElement.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::clearLayoutRootIfNeeded): Deleted.
(WebCore::RenderObject::willBeDestroyed): Deleted.
* rendering/RenderObject.h:

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

4 years agoTemporarily allow programmatic input assistance for adding Gmail account
wenson_hsieh@apple.com [Fri, 7 Aug 2015 21:12:47 +0000 (21:12 +0000)]
Temporarily allow programmatic input assistance for adding Gmail account
https://bugs.webkit.org/show_bug.cgi?id=147792

Reviewed by Enrica Casucci.
<rdar://problem/22126518>

Temporary fix for keyboard input sliding out and immediately back in upon user interaction
in the Gmail 2-factor authentication page.

Source/WebCore:

* platform/RuntimeApplicationChecksIOS.h:
* platform/RuntimeApplicationChecksIOS.mm:
(WebCore::applicationIsGmailAddAccountOnIOS): Added bundle ID for Gmail settings.

Source/WebKit2:

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Early
    return no longer triggers due to lack of user interaction when adding a new Gmail account
    through Settings.

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

4 years agoFix a tyop.
andersca@apple.com [Fri, 7 Aug 2015 21:12:16 +0000 (21:12 +0000)]
Fix a tyop.

* WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::viewSupportsOptions):

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

4 years agoMove platform/mac/fast/scrolling/ tests into fast/scrolling/latching/
simon.fraser@apple.com [Fri, 7 Aug 2015 21:07:55 +0000 (21:07 +0000)]
Move platform/mac/fast/scrolling/ tests into fast/scrolling/latching/

* TestExpectations:
* fast/scrolling/latching/iframe_in_iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe-expected.txt.
* fast/scrolling/latching/iframe_in_iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe.html.
* fast/scrolling/latching/resources/background.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/background.html.
* fast/scrolling/latching/resources/inner_content.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/inner_content.html.
* fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_inner.html.
* fast/scrolling/latching/resources/scroll_nested_iframe_test_outer.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_outer.html.
* fast/scrolling/latching/resources/testContent.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/testContent.html.
* fast/scrolling/latching/resources/testImage.png: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/testImage.png.
* fast/scrolling/latching/scroll-div-latched-div-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt.
* fast/scrolling/latching/scroll-div-latched-div.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html.
* fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt.
* fast/scrolling/latching/scroll-div-latched-mainframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html.
* fast/scrolling/latching/scroll-div-no-latching-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching-expected.txt.
* fast/scrolling/latching/scroll-div-no-latching.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching.html.
* fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe-expected.txt.
* fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe.html.
* fast/scrolling/latching/scroll-iframe-fragment-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment-expected.txt.
* fast/scrolling/latching/scroll-iframe-fragment.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment.html.
* fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt.
* fast/scrolling/latching/scroll-iframe-latched-iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html.
* fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt.
* fast/scrolling/latching/scroll-iframe-latched-mainframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html.
* fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug-expected.txt.
* fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug.html.
* fast/scrolling/latching/scroll-latched-nested-div-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div-expected.txt.
* fast/scrolling/latching/scroll-latched-nested-div.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div.html.
* fast/scrolling/latching/scroll-nested-iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe-expected.txt.
* fast/scrolling/latching/scroll-nested-iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe.html.
* fast/scrolling/latching/scroll-select-bottom-test-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test-expected.txt.
* fast/scrolling/latching/scroll-select-bottom-test.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html.
* fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt.
* fast/scrolling/latching/scroll-select-latched-mainframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html.
* fast/scrolling/latching/scroll-select-latched-select-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt.
* fast/scrolling/latching/scroll-select-latched-select.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html.
* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:

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

4 years agoMove platform/mac/fast/forms/ tests to fast/forms/
simon.fraser@apple.com [Fri, 7 Aug 2015 21:07:40 +0000 (21:07 +0000)]
Move platform/mac/fast/forms/ tests to fast/forms/

* TestExpectations:
* fast/forms/attributed-strings-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/attributed-strings-expected.txt.
* fast/forms/attributed-strings.html: Renamed from LayoutTests/platform/mac/fast/forms/attributed-strings.html.
* fast/forms/focus-option-control-on-page-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/focus-option-control-on-page-expected.txt.
* fast/forms/focus-option-control-on-page.html: Renamed from LayoutTests/platform/mac/fast/forms/focus-option-control-on-page.html.
* fast/forms/indeterminate-progress-inline-height-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/indeterminate-progress-inline-height-expected.txt.
* fast/forms/indeterminate-progress-inline-height.html: Renamed from LayoutTests/platform/mac/fast/forms/indeterminate-progress-inline-height.html.
* fast/forms/input-appearance-spinbutton-expected.png: Renamed from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-expected.png.
* fast/forms/input-appearance-spinbutton-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-expected.txt.
* fast/forms/input-appearance-spinbutton-size-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-size-expected.txt.
* fast/forms/input-appearance-spinbutton-size.html: Renamed from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-size.html.
* fast/forms/input-appearance-spinbutton-up-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt.
* fast/forms/input-appearance-spinbutton-up.html: Renamed from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-up.html.
* fast/forms/input-appearance-spinbutton.html: Renamed from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton.html.
* fast/forms/input-number-click-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/input-number-click-expected.txt.
* fast/forms/input-number-click.html: Renamed from LayoutTests/platform/mac/fast/forms/input-number-click.html.
* fast/forms/listbox-scrollbar-hit-test-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/listbox-scrollbar-hit-test-expected.txt.
* fast/forms/listbox-scrollbar-hit-test.html: Renamed from LayoutTests/platform/mac/fast/forms/listbox-scrollbar-hit-test.html.
* fast/forms/script-tests/focus-option-control-on-page.js: Renamed from LayoutTests/platform/mac/fast/forms/script-tests/focus-option-control-on-page.js.
* platform/mac-wk1/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:
* platform/mac/fast/forms/input-appearance-spinbutton-up-expected.png: Removed.
* platform/wk2/TestExpectations:

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

4 years agoUpdate AppEngine app version numbers to the latest commit.
ap@apple.com [Fri, 7 Aug 2015 20:45:52 +0000 (20:45 +0000)]
Update AppEngine app version numbers to the latest commit.

* QueueStatusServer/app.yaml:
* TestResultServer/app.yaml:

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

4 years agoSimplify WKTR's view options
andersca@apple.com [Fri, 7 Aug 2015 20:35:24 +0000 (20:35 +0000)]
Simplify WKTR's view options
https://bugs.webkit.org/show_bug.cgi?id=147791

Reviewed by Sam Weinig.

Instead of using a WKDictionaryRef, just use a struct for the options.

* WebKitTestRunner/PlatformWebView.h:
(WTR::PlatformWebView::options):
(WTR::PlatformWebView::viewSupportsOptions): Deleted.
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize):
(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::ensureViewSupportsOptions):
(WTR::TestController::updateLayoutTypeForTest):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/ViewOptions.h: Added.
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
* WebKitTestRunner/efl/PlatformWebViewEfl.cpp:
(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::viewSupportsOptions):
* WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
(WTR::PlatformWebView::viewSupportsOptions):
* WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::viewSupportsOptions):
* WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::viewSupportsOptions):
* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformConfigureViewForTest):

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

4 years agoCrash when following a Google search link to Twitter with Limit Adult Content enabled
aestes@apple.com [Fri, 7 Aug 2015 20:10:42 +0000 (20:10 +0000)]
Crash when following a Google search link to Twitter with Limit Adult Content enabled
https://bugs.webkit.org/show_bug.cgi?id=147651

Reviewed by Brady Eidson.

When a loaded CachedRawResource gets a new client, it synthesizes the callbacks that the new client would have
received while the resource was loading. Unlike a real network load, it synthesizes these callbacks in a single
run loop iteration. When DocumentLoader receives a redirect, and finds substitute data in the app cache for the
redirect URL, it schedules a timer that removes DocumentLoader as a client of the CachedRawResource then
synthesizes its own set of CachedRawResourceClient callbacks. But since CachedRawResource has already delivered
client callbacks before the app cache timer fires, DocumentLoader unexpectedly ends up getting two sets of
client callbacks and badness ensues.

The fix is to let CachedRawResource detect if a redirect will trigger the client to load substitute data. If so,
stop delivering client callbacks.

Layout test to follow.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::syntheticRedirectReceived): If there is valid substitute data, do not continue.
* loader/DocumentLoader.h:
* loader/cache/CachedRawResource.cpp: Returned early if syntheticRedirectReceived() said not to continue.
(WebCore::CachedRawResource::didAddClient):
* loader/cache/CachedRawResourceClient.h:
(WebCore::CachedRawResourceClient::syntheticRedirectReceived):

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

4 years agoShadows don't draw on fillText when using a gradient fill
dino@apple.com [Fri, 7 Aug 2015 19:40:45 +0000 (19:40 +0000)]
Shadows don't draw on fillText when using a gradient fill
https://bugs.webkit.org/show_bug.cgi?id=147758
<rdar://problem/20860912>

Reviewed by Myles Maxfield.

Source/WebCore:

Since we use a mask to render a pattern or gradient
into text, any shadow was being clipped out. Change
this to draw the shadow before the mask + fill operation,
using a technique similar to text-shadow.

Test: fast/canvas/gradient-text-with-shadow.html

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawTextInternal): Get the current shadow
style, paint the text with a transformed shadow offset so that we only
see the shadow and not the text, then combine with the existing pattern/gradient
fill.

LayoutTests:

New test that exercises shadows on gradient fills. This really
should be a ref test, but there is a very small rendering difference
caused by masking, so instead it uses JS to look for pixels of
the correct color.

* fast/canvas/gradient-text-with-shadow-expected.txt: Added.
* fast/canvas/gradient-text-with-shadow.html: Added.

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

4 years agoRename some variables in the JSC watchdog implementation.
mark.lam@apple.com [Fri, 7 Aug 2015 19:34:13 +0000 (19:34 +0000)]
Rename some variables in the JSC watchdog implementation.
https://bugs.webkit.org/show_bug.cgi?id=147790

Rubber stamped by Benjamin Poulain.

This is just a refactoring patch to give the variable better names that describe their
intended use.  There is no behavior change.

* runtime/Watchdog.cpp:
(JSC::Watchdog::Watchdog):
(JSC::Watchdog::setTimeLimit):
(JSC::Watchdog::didFire):
(JSC::Watchdog::isEnabled):
(JSC::Watchdog::fire):
(JSC::Watchdog::startCountdownIfNeeded):
* runtime/Watchdog.h:

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

4 years agoImplement font-feature-settings
mmaxfield@apple.com [Fri, 7 Aug 2015 19:09:59 +0000 (19:09 +0000)]
Implement font-feature-settings
https://bugs.webkit.org/show_bug.cgi?id=147722

Reviewed by Simon Fraser.

Source/WebCore:

Fonts with features are simply modeled as new font objects. Font
feature information is contained within FontDescription, and our
caches are correctly sensitive to this information. Therefore,
we just need to make our font lookup code honor the request to
use certain features.

This patch creates a file, FontCacheCoreText.cpp, which will be the
new home of all shared OS X / iOS FontCache code. Over time, I will
be moving more and more source into this file, until there is
nothing left of FontCacheMac.mm and FontCacheIOS.mm. For now, the
only function in this file is the code which applies font features.

Test: css3/font-feature-settings-preinstalled-fonts.html

* WebCore.xcodeproj/project.pbxproj: Add FontCacheCoreText.cpp.
* platform/graphics/FontCache.h:
* platform/graphics/cocoa/FontCacheCoreText.cpp: Added.
(WebCore::appendTrueTypeFeature): What the name says.
(WebCore::appendOpenTypeFeature): Ditto.
(WebCore::applyFontFeatureSettings): Ditto.
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::getSystemFontFallbackForCharacters): Call
applyFontFeatureSettings().
(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.
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::updateCachedSystemFontDescription):
Ditto.

LayoutTests:

Until I can make a custom font for reference tests, use a simple dump-render-tree test.

* css3/font-feature-settings-preinstalled-fonts.html: Added.
* platform/mac-yosemite/css3/font-feature-settings-preinstalled-fonts-expected.txt: Added.

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