WebKit-https.git
4 years agoCSP: Fix parsing of 'host/path' source expressions
dbates@webkit.org [Tue, 16 Feb 2016 21:18:19 +0000 (21:18 +0000)]
CSP: Fix parsing of 'host/path' source expressions
https://bugs.webkit.org/show_bug.cgi?id=153170
<rdar://problem/24383407>

Reviewed by Brent Fulgham.

Source/WebCore:

Merged from Blink (patch by Mike West):
<https://src.chromium.org/viewvc/blink?revision=154875&view=revision>

Fixes an issue where a source of the form example.com/A/ was incorrectly considered
invalid and hence such a requested resource would be blocked. A source of this form
is valid by the definition of host-source in section Source List Syntax of the Content
Security Policy 2.0 spec., <http://www.w3.org/TR/2015/CR-CSP2-20150721/>.

* page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::parseSource):

LayoutTests:

Remove entry for test http/tests/security/contentSecurityPolicy/source-list-parsing-paths-03.html
as it now passes.

* TestExpectations:

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

4 years agoJSContext Inspector: Support for inline source maps
commit-queue@webkit.org [Tue, 16 Feb 2016 21:17:31 +0000 (21:17 +0000)]
JSContext Inspector: Support for inline source maps
https://bugs.webkit.org/show_bug.cgi?id=154303
<rdar://problem/24670392>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-02-16
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

* UserInterface/Base/URLUtilities.js:
(parseDataURL):
Break a data URL into components.

* UserInterface/Controllers/SourceMapManager.js:
(WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
Handle a data URL without using NetworkAgent. Also move references
to a main frame after checking for NetworkAgent.

* UserInterface/Models/SourceMap.js:
(WebInspector.SourceMap.prototype.get sourceMappingBasePathURLComponents):
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource.prototype.get sourceMapDisplaySubpath):
Handle JavaScript debuggable script URLs which may not be complete URLs.

(WebInspector.SourceMapResource.prototype.requestContentFromBackend):
Also handle if NetworkAgent does not exist.

* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
When connected to a JavaScript debuggable we were hiding disclosure
triangles as we did not expect resources to have subresources. If
a SourceMap is added, show them again.

LayoutTests:

* inspector/unit-tests/url-utilities-expected.txt: Added.
* inspector/unit-tests/url-utilities.html: Added.

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

4 years agoCSP: Disallow an empty host in a host-source source expression
dbates@webkit.org [Tue, 16 Feb 2016 21:16:18 +0000 (21:16 +0000)]
CSP: Disallow an empty host in a host-source source expression
https://bugs.webkit.org/show_bug.cgi?id=153168
<rdar://problem/24383366>

Reviewed by Brent Fulgham.

Source/WebCore:

Merged from Blink (patch by rob@robwu.nl):
<https://src.chromium.org/viewvc/blink?revision=180407&view=revision>

* page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::parseSource):

LayoutTests:

Remove entry for test http/tests/security/contentSecurityPolicy/source-list-parsing-07.html
as it now passes.

* TestExpectations:

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

4 years agoFTL should support NewTypedArray
fpizlo@apple.com [Tue, 16 Feb 2016 21:12:04 +0000 (21:12 +0000)]
FTL should support NewTypedArray
https://bugs.webkit.org/show_bug.cgi?id=154268

Reviewed by Saam Barati.

3% speed-up on pdfjs. This was already covered by many different tests.

* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToLLVM::compileAllocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorageAndGetEnd):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateObject):

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

4 years agoModern IDB: WK2 IPC Scaffolding.
beidson@apple.com [Tue, 16 Feb 2016 20:58:56 +0000 (20:58 +0000)]
Modern IDB: WK2 IPC Scaffolding.
https://bugs.webkit.org/show_bug.cgi?id=154296

Reviewed by Alex Christensen.

No change in behavior yet; Just laying the groundwork.

Source/WebCore:

* Modules/indexeddb/client/IDBConnectionToServer.h:
* Modules/indexeddb/server/IDBConnectionToClient.h:
* Modules/indexeddb/shared/IDBResourceIdentifier.h:

Source/WebKit2:

* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:

* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::establishIDBConnectionToServer):
(WebKit::DatabaseToWebProcessConnection::removeIDBConnectionToServer):
* DatabaseProcess/DatabaseToWebProcessConnection.h:
* DatabaseProcess/DatabaseToWebProcessConnection.messages.in:

* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: Added.
(WebKit::WebIDBConnectionToClient::create):
(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess):
(WebKit::WebIDBConnectionToClient::messageSenderConnection):
(WebKit::WebIDBConnectionToClient::connectionToClient):
(WebKit::WebIDBConnectionToClient::didDeleteDatabase):
(WebKit::WebIDBConnectionToClient::didOpenDatabase):
(WebKit::WebIDBConnectionToClient::didAbortTransaction):
(WebKit::WebIDBConnectionToClient::didCommitTransaction):
(WebKit::WebIDBConnectionToClient::didCreateObjectStore):
(WebKit::WebIDBConnectionToClient::didDeleteObjectStore):
(WebKit::WebIDBConnectionToClient::didClearObjectStore):
(WebKit::WebIDBConnectionToClient::didCreateIndex):
(WebKit::WebIDBConnectionToClient::didDeleteIndex):
(WebKit::WebIDBConnectionToClient::didPutOrAdd):
(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didGetCount):
(WebKit::WebIDBConnectionToClient::didDeleteRecord):
(WebKit::WebIDBConnectionToClient::didOpenCursor):
(WebKit::WebIDBConnectionToClient::didIterateCursor):
(WebKit::WebIDBConnectionToClient::fireVersionChangeEvent):
(WebKit::WebIDBConnectionToClient::didStartTransaction):
(WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: Added.

* Platform/Logging.h:

* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: Added.
(WebKit::generateConnectionToServerIdentifier):
(WebKit::WebIDBConnectionToServer::create):
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::messageSenderConnection):
(WebKit::WebIDBConnectionToServer::coreConnectionToServer):
(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::createObjectStore):
(WebKit::WebIDBConnectionToServer::deleteObjectStore):
(WebKit::WebIDBConnectionToServer::clearObjectStore):
(WebKit::WebIDBConnectionToServer::createIndex):
(WebKit::WebIDBConnectionToServer::deleteIndex):
(WebKit::WebIDBConnectionToServer::putOrAdd):
(WebKit::WebIDBConnectionToServer::getRecord):
(WebKit::WebIDBConnectionToServer::getCount):
(WebKit::WebIDBConnectionToServer::deleteRecord):
(WebKit::WebIDBConnectionToServer::openCursor):
(WebKit::WebIDBConnectionToServer::iterateCursor):
(WebKit::WebIDBConnectionToServer::establishTransaction):
(WebKit::WebIDBConnectionToServer::databaseConnectionClosed):
(WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: Added.

* WebProcess/Databases/WebDatabaseProvider.cpp:
(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):
* WebProcess/Databases/WebDatabaseProvider.h:

* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::idbConnectionToServerForSession):
* WebProcess/Databases/WebToDatabaseProcessConnection.h:

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

4 years agostress/sampling-profiler-deep-stack.js fails on ARM 32bit
sbarati@apple.com [Tue, 16 Feb 2016 20:50:46 +0000 (20:50 +0000)]
stress/sampling-profiler-deep-stack.js fails on ARM 32bit
https://bugs.webkit.org/show_bug.cgi?id=154255
<rdar://problem/24662996>

Reviewed by Mark Lam.

The bug here wasn't in the implementation of the sampling profiler
itself. Rather, it was a bug in the test. JSC wasn't spending a lot
of time in a function that the test assumed a lot of time was spent in.
That's because the DFG was doing a good job at optimizing the function
at the leaf of the recursion. Because of that, we often wouldn't sample it.
I fixed this by making the leaf function do more work.

* tests/stress/sampling-profiler-deep-stack.js:
(platformSupportsSamplingProfiler.foo):

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

4 years ago[Web IDL] Operations should be on the instance for global objects or if [Unforgeable]
cdumez@apple.com [Tue, 16 Feb 2016 20:23:02 +0000 (20:23 +0000)]
[Web IDL] Operations should be on the instance for global objects or if [Unforgeable]
https://bugs.webkit.org/show_bug.cgi?id=154120
<rdar://problem/24613231>

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/JavaScriptCore:

Have putEntry() take a thisValue parameter in addition to the base,
instead of relying on PropertySlot::thisValue() because this did not
always do the right thing. In particular, when JSDOMWindow::put() was
called to set a function, it would end up setting the new value on the
JSDOMWindowShell instead of the actual JSDOMWindow.
JSDOMWindow::getOwnPropertySlot() would then not be able to find it.
Therefore the following would fail:
$ window.open = "test"
$ console.log(window.open) // prints the native function instead of "test"

* runtime/JSObject.cpp:
(JSC::JSObject::putInlineSlow):
* runtime/Lookup.h:
(JSC::putEntry):
(JSC::lookupPut):

Source/WebCore:

Operations should be on the instance for global objects or if
[Unforgeable] as per the Web IDL specification:
- http://heycam.github.io/webidl/#es-operations
- http://heycam.github.io/webidl/#dfn-unforgeable-on-an-interface

This patch implements this behavior in order to align
with the specification and other browsers.

No new tests, already covered by existing tests.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
Update function names now that they have "Instance" in their
name instead of "Prototype".

(WebCore::JSDOMWindow::getOwnPropertySlot):
- Update function names now that they have "Instance" in their
  name instead of "Prototype".
- Move the functions hard-coding *before* the static table check
  now that these functions are in the static table to maintain
  the previous behavior.

* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertySlotDelegate):
Update function names now that they have "Instance" in their
name instead of "Prototype".

* bindings/scripts/CodeGeneratorJS.pm:
- Move functions to the instance if their interface is a global
  object or if they are marked as [Unforgeable]. Operations are
  now treated more like attributes, as they can now be either on
  the instance or the prototype. In a lot of places, I now use
  the naming "properties" instead of "attributes" as "properties"
  refer both "attributes" and "operations" / "functions".

* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
Rebaseline bindings tests.

LayoutTests:

* inspector/model/remote-object-get-properties-expected.txt:
Rebaseline test because the order of static properties has changed:
functions are now before constants instead of after.

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

4 years agoAdd a redirect for B3 documentation
jond@apple.com [Tue, 16 Feb 2016 20:18:11 +0000 (20:18 +0000)]
Add a redirect for B3 documentation
https://bugs.webkit.org/show_bug.cgi?id=154293

Reviewed by Timothy Hatcher.

* .htaccess:

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

4 years agoMarking webarchive/loading/missing-data.html as flaky on ios-simulator-wk2
ryanhaddad@apple.com [Tue, 16 Feb 2016 19:53:10 +0000 (19:53 +0000)]
Marking webarchive/loading/missing-data.html as flaky on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=153380

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

4 years agoRevert r195826.
weinig@apple.com [Tue, 16 Feb 2016 19:33:54 +0000 (19:33 +0000)]
Revert r195826.

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _createAndConfigureDoubleTapGestureRecognizer]):
(-[WKContentView _singleTapCommited:]):

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

4 years agoClonedArguments should not materialize its special properties unless they are being...
keith_miller@apple.com [Tue, 16 Feb 2016 19:28:09 +0000 (19:28 +0000)]
ClonedArguments should not materialize its special properties unless they are being changed or deleted
https://bugs.webkit.org/show_bug.cgi?id=154128

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Before we would materialize ClonedArguments whenever they were being accessed.
However this would cause the IC to miss every time as the structure for
the arguments object would change as we went to IC it. Thus on the next
function call we would miss the cache since the new arguments object
would not have materialized the value.

* runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::getOwnPropertySlot):
* tests/stress/cloned-arguments-modification.js: Added.
(foo):

LayoutTests:

Have argumnets-strict-mode test the speed of spreading the arguments object.

* js/regress/script-tests/arguments-strict-mode.js:
(foo):

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

4 years agoMarking fast/events/keydown-1.html as flaky on mac-wk1 debug
ryanhaddad@apple.com [Tue, 16 Feb 2016 19:13:17 +0000 (19:13 +0000)]
Marking fast/events/keydown-1.html as flaky on mac-wk1 debug
https://bugs.webkit.org/show_bug.cgi?id=154297

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

4 years agoFTL should support StringFromCharCode
fpizlo@apple.com [Tue, 16 Feb 2016 19:12:36 +0000 (19:12 +0000)]
FTL should support StringFromCharCode
https://bugs.webkit.org/show_bug.cgi?id=154267
Source/JavaScriptCore:

rdar://problem/24192536

Reviewed by Mark Lam.

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode): Fix a bug preventing the UntypedUse from being effective.
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStringFromCharCode): Implement the opcode.
* tests/stress/string-from-char-code-slow.js: Added.

LayoutTests:

Reviewed by Mark Lam.

* js/regress/script-tests/string-from-char-code.js: Added.
(result):
* js/regress/script-tests/untyped-string-from-char-code.js: Added.
(result):
* js/regress/string-from-char-code-expected.txt: Added.
* js/regress/string-from-char-code.html: Added.
* js/regress/untyped-string-from-char-code-expected.txt: Added.
* js/regress/untyped-string-from-char-code.html: Added.

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

4 years agoRollout r188659. This broke scrolling of iframes and overflow when
simon.fraser@apple.com [Tue, 16 Feb 2016 18:48:36 +0000 (18:48 +0000)]
Rollout r188659. This broke scrolling of iframes and overflow when
navigating back to a page in the page cache.

The fix was overly agressive and had no layout test. I will fix the original
issue a different way.

* history/CachedFrame.cpp:
(WebCore::CachedFrame::CachedFrame):
* page/FrameView.cpp:
(WebCore::FrameView::clearScrollableAreas): Deleted.
* page/FrameView.h:

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

4 years ago[GTK] No hover-horizontal scrolling available
carlosgc@webkit.org [Tue, 16 Feb 2016 18:15:37 +0000 (18:15 +0000)]
[GTK] No hover-horizontal scrolling available
https://bugs.webkit.org/show_bug.cgi?id=122859

Reviewed by Michael Catanzaro.

Source/WebCore:

This is a regression of WebKit2, because in WebKit1 we used native
widgets for frame scrollbars that handled this automatically. Now
we need to also check if the mouse is over frame scrollbars to
adjust the wheel event.

Test: platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll.html

* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent): Pass the adjusted wheel
event to platformCompleteWheelEvent().
* page/gtk/EventHandlerGtk.cpp:
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
Check also frame scrollbars.

LayoutTests:

* platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll-expected.html: Added.
* platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll.html: Added.

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

4 years agoFactor id mutation style invalidation code into a class
antti@apple.com [Tue, 16 Feb 2016 17:24:01 +0000 (17:24 +0000)]
Factor id mutation style invalidation code into a class
https://bugs.webkit.org/show_bug.cgi?id=154287

Reviewed by Andreas Kling.

Source/WebCore:

Also add a cheap basic optimization that avoids descendant invalidation if they can not be affected.

It would be easy to implement fine grained invalidation like with classes and attribute selectors.
However dynamic id changes are not common enough (nor recommended) to pay the memory cost of
the required data structures.

Test: fast/css/style-invalidation-id-change-descendants.html

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
* css/RuleFeature.h:
* dom/Element.cpp:
(WebCore::makeIdForStyleResolution):
(WebCore::Element::attributeChanged):
(WebCore::checkNeedsStyleInvalidationForIdChange): Deleted.
* style/IdChangeInvalidation.cpp: Added.
(WebCore::Style::IdChangeInvalidation::invalidateStyle):
* style/IdChangeInvalidation.h: Added.
(WebCore::Style::IdChangeInvalidation::IdChangeInvalidation):
(WebCore::Style::IdChangeInvalidation::~IdChangeInvalidation):

LayoutTests:

* fast/css/style-invalidation-id-change-descendants-expected.txt: Added.
* fast/css/style-invalidation-id-change-descendants.html: Added.

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

4 years agoRebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator...
ryanhaddad@apple.com [Tue, 16 Feb 2016 17:12:26 +0000 (17:12 +0000)]
Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196621

Unreviewed test gardening.

* platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:

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

4 years agoWeb Inspector: Increase the width of the find banner's search field
nvasilyev@apple.com [Tue, 16 Feb 2016 16:42:10 +0000 (16:42 +0000)]
Web Inspector: Increase the width of the find banner's search field
https://bugs.webkit.org/show_bug.cgi?id=154284

Reviewed by Timothy Hatcher.

* UserInterface/Views/FindBanner.css:
(.find-banner > input[type="search"]):
Keep the minimum width the same as the current width.

(body .find-banner.console-find-banner):
Overwrite ".navigation-bar .item {flex-wrap: nowrap}".

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

4 years agoDrop StyleResolver and SelectorQueryCache when entering PageCache.
akling@apple.com [Tue, 16 Feb 2016 10:00:15 +0000 (10:00 +0000)]
Drop StyleResolver and SelectorQueryCache when entering PageCache.
<https://webkit.org/b/154238>

Reviewed by Antti Koivisto.

Source/WebCore:

Stop keeping these around for cached pages to save lots of memory.
We can easily rebuild them if a cached navigation occurs, and this
way we also don't need to worry about invalidating style for cached
pages in all the right places.

Restoring a cached page will now lead to a forced style recalc.
We don't try to defer this (beyond a zero-timer) since it's going
to happen anyway, and it's nicer to front-load the cost rather than
stuttering on the first user content interaction.

* dom/Document.cpp:
(WebCore::Document::setInPageCache):
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
(WebCore::CachedPage::clear): Deleted.
* history/CachedPage.h:
(WebCore::CachedPage::markForVisitedLinkStyleRecalc): Deleted.
(WebCore::CachedPage::markForFullStyleRecalc): Deleted.
* history/PageCache.cpp:
(WebCore::PageCache::markPagesForVisitedLinkStyleRecalc): Deleted.
(WebCore::PageCache::markPagesForFullStyleRecalc): Deleted.
* history/PageCache.h:
* page/Frame.cpp:
(WebCore::Frame::setPageAndTextZoomFactors): Deleted.
* page/Page.cpp:
(WebCore::Page::setViewScaleFactor): Deleted.
(WebCore::Page::setDeviceScaleFactor): Deleted.
(WebCore::Page::setPagination): Deleted.
(WebCore::Page::setPaginationLineGridEnabled): Deleted.
(WebCore::Page::setVisitedLinkStore): Deleted.

Source/WebKit/win:

* WebCoreSupport/WebVisitedLinkStore.cpp:
(WebVisitedLinkStore::removeAllVisitedLinks): Deleted.
(WebVisitedLinkStore::addVisitedLinkHash): Deleted.

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

4 years ago[GTK] clicking on the scrollbar trough steps rather than jumps to the clicked position
carlosgc@webkit.org [Tue, 16 Feb 2016 09:50:26 +0000 (09:50 +0000)]
[GTK] clicking on the scrollbar trough steps rather than jumps to the clicked position
https://bugs.webkit.org/show_bug.cgi?id=115363

Reviewed by Michael Catanzaro.

Allow ScrollbarTheme to decide the behavior of a button press event,
instead of only deciding whether to center on thumb or not. This
way we can match the current GTK+ behavior in WebKit, without
affecting other ports.

* platform/ScrollTypes.h: Add ScrollbarButtonPressAction enum.
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::mouseDown): Ask ScrollbarTheme to handle the
event for the pressed part and do the requested action.
* platform/ScrollbarTheme.cpp:
(WebCore::ScrollbarTheme::handleMousePressEvent): Add default
implementation. It's equivalent to the previous default implementation.
* platform/ScrollbarTheme.h:
* platform/gtk/ScrollbarThemeGtk.cpp:
(WebCore::ScrollbarThemeGtk::handleMousePressEvent): Match current
GTK+ behavior: left click centers on thumb and right click
scrolls. Dragging the thumb works for left and middle buttons.
* platform/gtk/ScrollbarThemeGtk.h:
* platform/ios/ScrollbarThemeIOS.h: Remove shouldCenterOnThumb,
and don't override handleMousePressEvent since iOS wants the
default behavior.
* platform/ios/ScrollbarThemeIOS.mm:
* platform/mac/ScrollbarThemeMac.h: Override handleMousePressEvent
and remove shouldCenterOnThumb.
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::shouldCenterOnThumb): Same implementation just made it
static to be used as helper.
(WebCore::ScrollbarThemeMac::handleMousePressEvent): Return the
desired action keeping the same behavior.
* platform/win/ScrollbarThemeWin.cpp:
(WebCore::ScrollbarThemeWin::handleMousePressEvent): Ditto.
* platform/win/ScrollbarThemeWin.h:
* rendering/RenderScrollbarTheme.h:

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

4 years agoMouse cursor doesn't change when entering scrollbars
carlosgc@webkit.org [Tue, 16 Feb 2016 09:45:41 +0000 (09:45 +0000)]
Mouse cursor doesn't change when entering scrollbars
https://bugs.webkit.org/show_bug.cgi?id=154243

Reviewed by Simon Fraser.

If the scrollbar is over or very close to text or a link, when
entering the scrollbar the cursor is not changed, keeping the beam
or hand cursor when using the scrollbar. Same happens for image
documents where the magnifier cursor is used and it remains when
entering the scrollbars. We should use pointer cursor always for
scrollbars.

* page/EventHandler.cpp:
(WebCore::EventHandler::updateCursor): Request also to include
frame scrollbars in hit test result.
(WebCore::EventHandler::selectCursor): Use always pointer cursor
for scrollbars.

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

4 years ago[Mac][cmake] Unreviewed buildfix after r196488. Just for fun.
ossy@webkit.org [Tue, 16 Feb 2016 09:33:27 +0000 (09:33 +0000)]
[Mac][cmake] Unreviewed buildfix after r196488. Just for fun.

* PlatformMac.cmake:

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

4 years agoOptimize style invalidations for attribute selectors
antti@apple.com [Tue, 16 Feb 2016 08:20:58 +0000 (08:20 +0000)]
Optimize style invalidations for attribute selectors
https://bugs.webkit.org/show_bug.cgi?id=154242

Reviewed by Andreas Kling.

Source/WebCore:

Currently we invalidate the whole element subtree if there are any attribute selectors for the changed attribute.
This is slow as generally few if any elements are really affected. Using attribute selectors for dynamic styling
should be performant.

This patch implements optimization strategy for attributes similar to what we already have for classes:

- Collect a map of all rules that contains descendant-affecting attribute selectors for a given attribute.
- When an attribute value changes check if there are any such rules for it.
- Check if the value change affects the results of any of the attribute selectors.
- Only if it does invalidate the exact descendant elements affected by the rules.

Test: fast/css/style-invalidation-attribute-change-descendants.html

* WebCore.xcodeproj/project.pbxproj:
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::ancestorClassRules):
(WebCore::DocumentRuleSets::ancestorAttributeRulesForHTML):

    Create optimization RuleSets when needed.

* css/DocumentRuleSets.h:
(WebCore::DocumentRuleSets::uncommonAttribute):
(WebCore::DocumentRuleSets::features):
* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::makeAttributeSelectorKey):
(WebCore::RuleFeatureSet::collectFeatures):

    Collect rules with descendant affecting attribute selectors.

(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
(WebCore::RuleFeatureSet::shrinkToFit):
* css/RuleFeature.h:
* css/SelectorChecker.cpp:
(WebCore::anyAttributeMatches):
(WebCore::SelectorChecker::attributeSelectorMatches):

    Expose function for matching single attribute selectors.

(WebCore::canMatchHoverOrActiveInQuirksMode):
* css/SelectorChecker.h:
* dom/Attr.cpp:
(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):
* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
(WebCore::makeIdForStyleResolution):
(WebCore::Element::attributeChanged):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::addAttributeInternal):
(WebCore::Element::removeAttribute):

    Add AttributeChangeInvalidation where needed.

(WebCore::Element::needsStyleInvalidation):

    Move to Element from ClassChangeInvalidation.

(WebCore::Element::willModifyAttribute):

    No more full style invalidation on attribute change.

* style/AttributeChangeInvalidation.cpp: Added.
(WebCore::Style::AttributeChangeInvalidation::invalidateStyle):

    Invalidate local style.
    Check if we need to invalidate descendants by looking into ancestorAttributeRules.

(WebCore::Style::AttributeChangeInvalidation::invalidateDescendants):

    Use StyleInvalidationAnalysis to invalidate the subtree for the relevant rules.

* style/AttributeChangeInvalidation.h: Added.
(WebCore::Style::AttributeChangeInvalidation::needsInvalidation):
(WebCore::Style::AttributeChangeInvalidation::AttributeChangeInvalidation):
(WebCore::Style::AttributeChangeInvalidation::~AttributeChangeInvalidation):

    If needed, invalidate descendants before and after attribute change to catch rules that start and stop applying.

LayoutTests:

* fast/css/style-invalidation-attribute-change-descendants-expected.txt: Added.
* fast/css/style-invalidation-attribute-change-descendants.html: Added.

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

4 years agoDo security checks early in JSDOMWindow::put*()
cdumez@apple.com [Tue, 16 Feb 2016 08:11:47 +0000 (08:11 +0000)]
Do security checks early in JSDOMWindow::put*()
https://bugs.webkit.org/show_bug.cgi?id=154270

Reviewed by Gavin Barraclough.

Source/WebCore:

Do security checks early in JSDOMWindow::put() / JSDOMWindow::putByIndex()
and return as soon as possible. This makes it less error-prone as we need
to do the security check only once, at the top of the function.

Also lock down the security further by calling lookupPut() only if the
property name is "location". The "location" property is the only one that
can be set cross-origin. Previously, trying to set a property such as
"name" (which cannot be set cross-origin) relied on the attribute setter
doing the security check when getting called. The new check is less error
prone and will correctly prevent overriding window's method cross-origin
once these move down from the prototype (Bug 154120).

Finally, the previous code was failing to set the "location" property
cross-origin after the window has been reified. This patch fixes the
issue by always calling the original "location" property setter from the
static table in the cross-origin case.

Test: http/tests/security/cross-origin-reified-window-location-setting.html

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
(WebCore::JSDOMWindow::putByIndex):

LayoutTests:

* http/tests/security/cross-frame-access-put-expected.txt:
Rebaseline. The extra security warnings are for the following properties:
closed, crypto, frameElement, pageXOffset and pageYOffset.
All these properties are read-only and therefore cannot be set (cross-origin
or not). The previous code was not doing an explicit check and ended up
trying to set these properties. However, since they are read-only, we would
silently fail to set them. The new code does the explicit check and therefore
will warn and NOT attempt to set.

* http/tests/security/cross-origin-reified-window-location-setting-expected.txt: Added.
* http/tests/security/cross-origin-reified-window-location-setting.html: Added.
Add test to check that setting window.location cross-origin still works after the
window object has been reified.

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

4 years ago[ARMv7] Some JSC test fails due to exhausting the JIT code heap on the no LLINT test...
mark.lam@apple.com [Tue, 16 Feb 2016 07:10:11 +0000 (07:10 +0000)]
[ARMv7] Some JSC test fails due to exhausting the JIT code heap on the no LLINT test configuration.
https://bugs.webkit.org/show_bug.cgi?id=151611

Reviewed by Saam Barati.

These tests are only failing because they are compiling too much with the LLINT
disabled.  As a result, they are using more JIT code heap space than is allowed
by the OS.

This patch excludes these tests from the noLLINT configuration on 32-bit ARM.

* js/script-tests/dfg-float32array.js:
* js/script-tests/dfg-float64array.js:
* js/script-tests/dfg-int16array.js:
* js/script-tests/dfg-int32array-overflow-values.js:
* js/script-tests/dfg-int32array.js:
* js/script-tests/dfg-int8array.js:
* js/script-tests/dfg-osr-entry-hoisted-clobbered-structure-check.js:
* js/script-tests/dfg-uint16array.js:
* js/script-tests/dfg-uint32array-overflow-values.js:
* js/script-tests/dfg-uint32array.js:
* js/script-tests/dfg-uint8array.js:
* js/script-tests/dfg-uint8clampedarray.js:
* js/script-tests/regress-141098.js:

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

4 years agoRemoved unused files after r196478.
mitz@apple.com [Tue, 16 Feb 2016 06:42:59 +0000 (06:42 +0000)]
Removed unused files after r196478.

* Configurations/DatabaseProcess.xcconfig: Removed.
* Configurations/NetworkProcess.xcconfig: Removed.
* Configurations/PluginProcess.xcconfig: Removed.
* Configurations/WebContentProcess.xcconfig: Removed.
* WebKit2.xcodeproj/project.pbxproj:

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

4 years ago[ThreadedCompositor] position:fixed elements do not have their own layers when thread...
changseok.oh@collabora.com [Tue, 16 Feb 2016 05:39:57 +0000 (05:39 +0000)]
[ThreadedCompositor] position:fixed elements do not have their own layers when threaded compositor is enabled.
https://bugs.webkit.org/show_bug.cgi?id=154100

Reviewed by Carlos Garcia Campos.

Currently, fixed elements are redrawn to a backing store every time layout or scroll happens.
It results in the bad effect on performance-wise. Letting fixed element have separate layers is
necessary when threaded compositor is enabled at least. Because async scrolling requires it.

* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updatePreferences):

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

4 years ago[Mac] Gather some rudimentary statistics during resource load
bfulgham@apple.com [Tue, 16 Feb 2016 05:36:38 +0000 (05:36 +0000)]
[Mac] Gather some rudimentary statistics during resource load
https://bugs.webkit.org/show_bug.cgi?id=153575
<rdar://problem/24075254>

Reviewed by Brady Eidson.

Source/WebCore:

Tested by: http/tests/navigation/statistics.html

* CMakeLists.txt:
* PlatformWin.cmake:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::updateLastHandledUserGestureTimestamp): Log user interaction
with the ResourceLoadObserver.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest): Track load statistics if the
user interacted with the document.
* loader/ResourceLoadObserver.cpp: Added.
* loader/ResourceLoadObserver.h: Added.
* loader/ResourceLoadStatistics.cpp: Added.
* loader/ResourceLoadStatistics.h: Added.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequestInternal): Track load statistics.
* page/Settings.cpp:
(WebCore::Settings::setResourceLoadStatisticsEnabled): Added.
* page/Settings.h:
(WebCore::Settings::resourceLoadStatisticsEnabled): Added.
* platform/Logging.h:
* testing/Internals.cpp:
(WebCore::Internals::resourceLoadStatisticsForOrigin):
(WebCore::Internals::setResourceLoadStatisticsEnabled):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit/mac:

* Misc/WebKitNSStringExtras.h:
* Misc/WebKitNSStringExtras.mm:
(+[NSString _webkit_localStorageDirectoryWithBundleIdentifier:]): Added.
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences resourceLoadStatisticsEnabled]): Added.
(-[WebPreferences setResourceLoadStatisticsEnabled:]): Added.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(WebKitInitializeApplicationCachePathIfNecessary):
(WebKitInitializeApplicationStatisticsStoragePathIfNecessary): Added.
(-[WebView _commonInitializationWithFrameName:groupName:]): Add call to new
initialization method.
(-[WebView _preferencesChanged:]): Track changes in the user's desire to
monitor resource load statistics.
(+[WebView _applicationWillTerminate]): Write statistics to disk (if preferences
say to do so.)

Tools:

* MiniBrowser/mac/SettingsController.h:
* MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]): Add menu item for new debug flag.
(-[SettingsController toggleResourceLoadStatisticsEnabled:]): Added.
(-[SettingsController resourceLoadStatisticsEnabled]): Added.
* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController didChangeSettings]): React to changes in
users's desire to track resource load statistics.

LayoutTests:

* http/tests/navigation/resources/redirect-on-reload-updates-history-item-statistics.php: Added.
* http/tests/navigation/resources/redirect-updates-history-item-done-statistics.html: Added.
* http/tests/navigation/statistics-expected.txt: Added.
* http/tests/navigation/statistics.html: Added.

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

4 years agoThe following properties should exist on the global object: AudioTrackList, AudioTrac...
cdumez@apple.com [Tue, 16 Feb 2016 05:32:56 +0000 (05:32 +0000)]
The following properties should exist on the global object: AudioTrackList, AudioTrack, VideoTrackList, VideoTrack
https://bugs.webkit.org/show_bug.cgi?id=154250
<rdar://problem/24660829>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

The following properties should exist on the global object:
- AudioTrackList, AudioTrack, VideoTrackList, VideoTrack

These interfaces are not marked as [NoInterfaceObject] in:
- https://html.spec.whatwg.org/#audiotracklist-and-videotracklist-objects

No new tests, already covered by existing tests.

* html/track/AudioTrack.idl:
* html/track/AudioTrackList.idl:
* html/track/VideoTrack.idl:
* html/track/VideoTrackList.idl:

LayoutTests:

Rebaseline now that AudioTrackList, AudioTrack, VideoTrackList and VideoTrack
are exposed on the global Window object.

* js/dom/global-constructors-attributes-expected.txt:
* platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:

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

4 years agoWeb Inspector: Non-overlay scrollbars obscure the ends of lines in the console and...
nvasilyev@apple.com [Tue, 16 Feb 2016 05:15:22 +0000 (05:15 +0000)]
Web Inspector: Non-overlay scrollbars obscure the ends of lines in the console and sidebars
https://bugs.webkit.org/show_bug.cgi?id=154276

Reviewed by Timothy Hatcher.

* UserInterface/Views/DataGrid.css:
(.data-grid .data-container):
* UserInterface/Views/DatabaseContentView.css:
(.storage-view.query):
* UserInterface/Views/LogContentView.css:
(.content-view.log):
Replace all occurrences of "overflow-y: overlay" with "overflow-y: auto".

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

4 years ago[JSC] BranchAdd can override arguments of its stackmap
commit-queue@webkit.org [Tue, 16 Feb 2016 04:51:20 +0000 (04:51 +0000)]
[JSC] BranchAdd can override arguments of its stackmap
https://bugs.webkit.org/show_bug.cgi?id=154274

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

With the 3 operands BranchAdd added in r196513, we can run into
a register allocation such that the destination register is also
used by a value in the stack map.

It use to be that BranchAdd was a 2 operand instruction.
In that form, the destination is also one of the source and
can be recovered through Sub. There is no conflict between
destination and the stackmap.

After r196513, the destination has its own value. It is uncommon
on x86 because of the aggressive aliasing but that can happen.
On ARM, that's a standard form since there is no need for aliasing.

Since the arguments of the stackmap are of type EarlyUse,
they appeared as not interfering with the destination. When the register
allocator gives the same register to the destination and something in
the stack map, the result of BranchAdd destroys the value kept alive
for the stackmap.

In this patch, I introduce a concept very similar to ForceLateUse
to keep the argument of the stackmap live in CheckAdd. The new
role is "ForceLateUseUnlessRecoverable".

In this mode, anything that is not also an input argument becomes
LateUse. As such, it interferes with the destination of CheckAdd.
The arguments are recovered by the slow patch of CheckAdd. They
remain Early use.

This new modes ensure that destination can be aliased to the source
when that's useful, while making sure it is not aliased with another
value that needs to be live on exit.

* b3/B3CheckSpecial.cpp:
(JSC::B3::CheckSpecial::forEachArg):
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::lower):
* b3/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::forEachArg):
* b3/B3StackmapSpecial.cpp:
(JSC::B3::StackmapSpecial::forEachArgImpl):
(WTF::printInternal):
* b3/B3StackmapSpecial.h:
* b3/B3StackmapValue.h:

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

4 years ago[EFL] Rebaseline after r196244.
hs85.jeong@samsung.com [Tue, 16 Feb 2016 04:41:58 +0000 (04:41 +0000)]
[EFL] Rebaseline after r196244.

Unreviewed test gardening.

* platform/efl/compositing/geometry/clipping-foreground-expected.txt:
* platform/efl/compositing/geometry/root-layer-update-expected.txt:
* platform/efl/compositing/overflow/ancestor-overflow-expected.txt:
* platform/efl/compositing/overflow/nested-scrolling-expected.txt:
* platform/efl/compositing/overflow/overflow-scroll-expected.txt:
* platform/efl/compositing/overflow/parent-overflow-expected.txt:
* platform/efl/compositing/overflow/scrollbar-painting-expected.txt:
* platform/efl/compositing/reflections/nested-reflection-on-overflow-expected.txt:
* platform/efl/compositing/sibling-positioning-expected.txt:
* platform/efl/css3/unicode-bidi-isolate-basic-expected.txt:
* platform/efl/fast/block/positioning/auto/vertical-rl/007-expected.txt:
* platform/efl/fast/block/positioning/vertical-rl/fixed-positioning-expected.txt:
* platform/efl/fast/borders/border-antialiasing-expected.txt:
* platform/efl/fast/clip/001-expected.txt:
* platform/efl/fast/clip/013-expected.txt:
* platform/efl/fast/clip/014-expected.txt:
* platform/efl/fast/clip/016-expected.txt:
* platform/efl/fast/clip/outline-overflowClip-expected.txt:
* platform/efl/fast/css/clip-zooming-expected.txt:
* platform/efl/fast/forms/validation-message-appearance-expected.txt:
* platform/efl/fast/inline/left-right-center-inline-alignment-in-ltr-and-rtl-blocks-expected.txt:
* platform/efl/fast/line-grid/line-grid-inside-columns-expected.txt:
* platform/efl/fast/line-grid/line-grid-into-columns-expected.txt:
* platform/efl/fast/lists/scrolled-marker-paint-expected.txt:
* platform/efl/fast/multicol/client-rects-expected.txt:
* platform/efl/fast/multicol/column-break-with-balancing-expected.txt:
* platform/efl/fast/multicol/column-rules-expected.txt:
* platform/efl/fast/multicol/column-rules-stacking-expected.txt:
* platform/efl/fast/multicol/columns-shorthand-parsing-expected.txt:
* platform/efl/fast/multicol/float-paginate-complex-expected.txt:
* platform/efl/fast/multicol/float-paginate-empty-lines-expected.txt:
* platform/efl/fast/multicol/float-paginate-expected.txt:
* platform/efl/fast/multicol/layers-in-multicol-expected.txt:
* platform/efl/fast/multicol/layers-split-across-columns-expected.txt:
* platform/efl/fast/multicol/max-height-columns-block-expected.txt:
* platform/efl/fast/multicol/nested-columns-expected.txt:
* platform/efl/fast/multicol/newmulticol/client-rects-expected.txt:
* platform/efl/fast/multicol/overflow-across-columns-expected.txt:
* platform/efl/fast/multicol/overflow-across-columns-percent-height-expected.txt:
* platform/efl/fast/multicol/overflow-unsplittable-expected.txt:
* platform/efl/fast/multicol/paginate-block-replaced-expected.txt:
* platform/efl/fast/multicol/pagination/BottomToTop-bt-expected.txt:
* platform/efl/fast/multicol/pagination/BottomToTop-lr-expected.txt:
* platform/efl/fast/multicol/pagination/BottomToTop-rl-expected.txt:
* platform/efl/fast/multicol/pagination/BottomToTop-tb-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-bt-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-rl-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-tb-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-bt-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-lr-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-rl-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-tb-expected.txt:
* platform/efl/fast/multicol/pagination/TopToBottom-bt-expected.txt:
* platform/efl/fast/multicol/pagination/TopToBottom-lr-expected.txt:
* platform/efl/fast/multicol/pagination/TopToBottom-rl-expected.txt:
* platform/efl/fast/multicol/positive-leading-expected.txt:
* platform/efl/fast/multicol/scrolling-column-rules-expected.txt:
* platform/efl/fast/multicol/scrolling-overflow-expected.txt:
* platform/efl/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.txt:
* platform/efl/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
* platform/efl/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
* platform/efl/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
* platform/efl/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
* platform/efl/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
* platform/efl/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
* platform/efl/fast/multicol/span/span-as-nested-columns-child-expected.txt:
* platform/efl/fast/multicol/span/span-margin-collapsing-expected.txt:
* platform/efl/fast/multicol/table-vertical-align-expected.txt:
* platform/efl/fast/multicol/tall-image-behavior-expected.txt:
* platform/efl/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt:
* platform/efl/fast/multicol/vertical-lr/column-rules-expected.txt:
* platform/efl/fast/multicol/vertical-lr/float-multicol-expected.txt:
* platform/efl/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
* platform/efl/fast/multicol/vertical-lr/float-paginate-expected.txt:
* platform/efl/fast/multicol/vertical-lr/nested-columns-expected.txt:
* platform/efl/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
* platform/efl/fast/multicol/vertical-rl/column-rules-expected.txt:
* platform/efl/fast/multicol/vertical-rl/float-multicol-expected.txt:
* platform/efl/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
* platform/efl/fast/multicol/vertical-rl/float-paginate-expected.txt:
* platform/efl/fast/multicol/vertical-rl/nested-columns-expected.txt:
* platform/efl/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
* platform/efl/fast/overflow/float-in-relpositioned-expected.txt:
* platform/efl/fast/overflow/overflow-auto-position-absolute-expected.txt:
* platform/efl/fast/overflow/overflow-rtl-expected.txt:
* platform/efl/fast/overflow/paged-x-div-expected.txt:
* platform/efl/fast/overflow/paged-x-div-with-column-gap-expected.txt:
* platform/efl/fast/overflow/paged-x-on-root-expected.txt:
* platform/efl/fast/overflow/paged-x-with-column-gap-expected.txt:
* platform/efl/fast/overflow/paged-y-div-expected.txt:
* platform/efl/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
* platform/efl/fast/regions/repaint/region-painting-via-layout-expected.txt:
* platform/efl/fast/repaint/box-shadow-h-expected.txt:
* platform/efl/fast/repaint/box-shadow-v-expected.txt:
* platform/efl/fast/repaint/layer-outline-expected.txt:
* platform/efl/fast/repaint/layer-outline-horizontal-expected.txt:
* platform/efl/fast/table/edge-offsets-expected.txt:
* platform/efl/fast/transforms/overflow-with-transform-expected.txt:
* platform/efl/fast/transforms/rotated-transform-affects-scrolling-1-expected.txt: Added.
* platform/efl/fast/transforms/rotated-transform-affects-scrolling-2-expected.txt: Added.
* platform/efl/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
* platform/efl/scrollbars/scrollbars-on-positioned-content-expected.txt:
* platform/efl/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.txt: Added.
* platform/efl/svg/custom/image-rescale-clip-expected.txt: Added.

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

4 years agoStop using NSMapTable in places where we were only using it to be GC safe
weinig@apple.com [Tue, 16 Feb 2016 04:07:11 +0000 (04:07 +0000)]
Stop using NSMapTable in places where we were only using it to be GC safe
<rdar://problem/24063723>
https://bugs.webkit.org/show_bug.cgi?id=154264

Reviewed by Dan Bernstein.

Switch from NSMapTable to HashMap.

* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOMInternal.h:
* bindings/objc/DOMInternal.mm:
* bindings/objc/WebScriptObject.mm:
* bridge/objc/objc_instance.mm:
* platform/spi/cocoa/NSPointerFunctionsSPI.h: Removed. No longer used.

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

4 years agoRe-enable INTL on WinCairo
commit-queue@webkit.org [Tue, 16 Feb 2016 02:32:55 +0000 (02:32 +0000)]
Re-enable INTL on WinCairo
https://bugs.webkit.org/show_bug.cgi?id=154256

Patch by Alex Christensen <achristensen@webkit.org> on 2016-02-15
Reviewed by Michael Catanzaro.

* Source/cmake/OptionsWin.cmake:
Peavo updated icu and it works, so let's re-enable INTL on WinCairo to catch Windows build failures.

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

4 years agoRebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator...
ryanhaddad@apple.com [Tue, 16 Feb 2016 01:53:19 +0000 (01:53 +0000)]
Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196607

Unreviewed test gardening.

* platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:

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

4 years agoWeb Inspector: Visual sidebar minor regression fixes
commit-queue@webkit.org [Tue, 16 Feb 2016 00:50:21 +0000 (00:50 +0000)]
Web Inspector: Visual sidebar minor regression fixes
https://bugs.webkit.org/show_bug.cgi?id=154237
<rdar://problem/24653135>

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2016-02-15
Reviewed by Timothy Hatcher.

* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-special-property-placeholder):
Do not display the placeholder, as it is not used in comma separated value
property editors.

(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle::before):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle): Deleted.
Added ::before to get rid of the "-" on subtitle elements (r196266).

* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype.widthDidChange):
Recalculates the width for all comma separated value elements (r196266).

(WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
Only open/close sections with properties that have values when a new node
or selector item is selected.

(WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
Make copies of the default unit lists to prevent modifying the values used
later in other sections (r194728).

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

4 years agoImplement content sniffing check with NetworkSession
achristensen@apple.com [Tue, 16 Feb 2016 00:20:46 +0000 (00:20 +0000)]
Implement content sniffing check with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=154261

Reviewed by Andy Estes.

This fixes http/tests/xmlhttprequest/small-chunks-response-text.html when using NetworkSession.

* NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::create):
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::NetworkLoad):
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::NetworkDataTask):
Content sniffing is enabled by default.  Disable it if the NetworkLoadParameters say not to.
This is analogous to behavior in ResourceHandle::createNSURLConnection.

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

4 years agoRe-sync W3C web-platform-tests' html/dom/interfaces.html
cdumez@apple.com [Mon, 15 Feb 2016 23:58:25 +0000 (23:58 +0000)]
Re-sync W3C web-platform-tests' html/dom/interfaces.html
https://bugs.webkit.org/show_bug.cgi?id=154259

Reviewed by Ryosuke Niwa.

Re-sync W3C web-platform-tests' html/dom/interfaces.html after:
- https://github.com/w3c/web-platform-tests/pull/2580

* web-platform-tests/html/dom/interfaces-expected.txt:
* web-platform-tests/html/dom/interfaces.html:

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

4 years agoWeb Inspector: eliminate the linear and rendering frames TimelineOverview subclasses
mattbaker@apple.com [Mon, 15 Feb 2016 23:57:25 +0000 (23:57 +0000)]
Web Inspector: eliminate the linear and rendering frames TimelineOverview subclasses
https://bugs.webkit.org/show_bug.cgi?id=154000
<rdar://problem/24553105>

Reviewed by Timothy Hatcher.

This patch eliminates the TimelineOverview subclasses, and moves logic for switching between
a time-based or frame-based graph into the overview itself. The values of the overview's start
time, current time, and end time now match the values in the timeline recording regardless of the
current view mode. When viewing the rendering frames graph, the recording times are ignored and
all frames are included. The overview maintains separate zoom level and ruler selection settings
for each view mode.

* UserInterface/Main.html:
* UserInterface/Views/LinearTimelineOverview.js: Removed.
* UserInterface/Views/RenderingFrameTimelineOverview.js: Removed.
Removed TimelineOverview subclasses.

* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.get height):
Set FPS graph height to 108 pixels.

* UserInterface/Views/TimelineOverview.css:
(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:not(:first-child)):
(.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)): Deleted.
(.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)): Deleted.
Disable alternating graph styles when showing FPS instrument.

* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
Create separate settings for timelines and FPS view modes.
(WebInspector.TimelineOverview.prototype.get viewMode):
(WebInspector.TimelineOverview.prototype.set viewMode):
(WebInspector.TimelineOverview.prototype.set startTime):
Adjust the current ruler selection when start time changes. Not necessary
when showing the FPS instrument, which doesn't have a start time.
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
Now a wrapper around the corresponding view mode setting.
(WebInspector.TimelineOverview.prototype.set pixelAlignDuration):
(WebInspector.TimelineOverview.prototype.get scrollStartTime):
(WebInspector.TimelineOverview.prototype.set scrollStartTime):
Now a wrapper around the corresponding view mode setting.
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.get height):
Return the sum height of all visible overview graphs.
(WebInspector.TimelineOverview.prototype.shown):
Show overview graphs for the current view mode.
(WebInspector.TimelineOverview.prototype.hidden):
(WebInspector.TimelineOverview.prototype.reset):
(WebInspector.TimelineOverview.prototype.recordWasFiltered):
(WebInspector.TimelineOverview.prototype.selectRecord):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverview.prototype.layout):
Layout for both view modes is largely identical, and differs only in the treatment
of the overview's start time, current time, and end time. Time-based instruments
use time values from the recording, while the FPS instrument has a fixed start time
of zero, and a current and end time pinned to the last rendering frame.
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview._handleGestureStart):
(WebInspector.TimelineOverview.prototype._handleGestureChange):
(WebInspector.TimelineOverview.prototype._instrumentAdded):
(WebInspector.TimelineOverview.prototype._instrumentRemoved):
(WebInspector.TimelineOverview.prototype._timelineRulerMouseClicked):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
Save the selection for the current view mode.
(WebInspector.TimelineOverview.prototype._recordSelected):
(WebInspector.TimelineOverview.prototype._resetSelection.reset):
(WebInspector.TimelineOverview.prototype._resetSelection):
(WebInspector.TimelineOverview.prototype._canShowTimelineType):
(WebInspector.TimelineOverview.prototype._viewModeDidChange):
Sets zoom level, ruler selection, and graph visibility based on current view mode.
(WebInspector.TimelineOverview.prototype._createViewModeSettings):
Helper function for creating an object to track the zoom level and ruler
selection of each view mode.
(WebInspector.TimelineOverview.prototype.get _currentSettings):
Internal getter for retrieving the settings for the current view mode.
(WebInspector.TimelineOverview.prototype.canShowTimeline): Deleted.
Not needed now that the overview contains all timelines.

* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.shown):
(WebInspector.TimelineOverviewGraph.prototype.hidden):
Toggle CSS hidden class.

* UserInterface/Views/TimelineRecordFrame.js:
No need to query offsetHeight now that TimelineOverviewGraph has a height property.

* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
Create a single timeline overview.
(WebInspector.TimelineRecordingContentView.prototype.get timelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.recordWasFiltered):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
Update the timeline  overview's mode based on the current timeline view.
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
Removed special handling for the FPS overview.
Removed selection start time adjustment, which is now handled internally by TimelineOverview.
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):

* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
(WebInspector.TimelineSidebarPanel.prototype._renderingFrameTimelineTimesUpdated):
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
Refresh the view mode when the content view changes.
(WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
(WebInspector.TimelineSidebarPanel.prototype._viewModeSelected):
(WebInspector.TimelineSidebarPanel.prototype._viewModeForTimeline):
(WebInspector.TimelineSidebarPanel.prototype._updateViewModeIfNeeded):
Sync the tree outline, frames chart, and navigation bar with the current view mode.
(WebInspector.TimelineSidebarPanel.prototype.shown):
Refreshing the frame selection is unnecessary. It's updated by the recording content
view whenever the ruler selection changes.
(WebInspector.TimelineSidebarPanel.prototype.get viewMode): Deleted.
No longer public, since the timeline overview now owns the view mode. Internally the sidebar
still tracks the current state so it can determine when the value has changed.
(WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForTimeline):
The sidebar should only be synced to the overview after the content view has changed.
(WebInspector.TimelineSidebarPanel.prototype.updateFrameSelection):
Removed unnecessary assertion.
(WebInspector.TimelineSidebarPanel.prototype._changeViewMode): Deleted.
Replaced by _updateViewModeIfNeeded.

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

4 years agov1 UI and v2 UI should share statistics.js
rniwa@webkit.org [Mon, 15 Feb 2016 23:57:22 +0000 (23:57 +0000)]
v1 UI and v2 UI should share statistics.js
https://bugs.webkit.org/show_bug.cgi?id=154262

Reviewed by Chris Dumez.

Share statistics.js between v1 and v2 UI.

* public/index.html:
* public/js/shared.js: Deleted.
* public/js/statistics.js: Removed.
* public/shared: Added.
* public/shared/statistics.js: Moved from Websites/perf.webkit.org/public/v2/js/statistics.js.
* public/v2/index.html:
* public/v2/js/statistics.js: Removed.
* public/v3/index.html:
* tools/detect-changes.js:

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

4 years ago[Font Loading] Implement FontFace JavaScript object
mmaxfield@apple.com [Mon, 15 Feb 2016 23:39:02 +0000 (23:39 +0000)]
[Font Loading] Implement FontFace JavaScript object
https://bugs.webkit.org/show_bug.cgi?id=153345

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/text/font-face-javascript.html

This patch implements the FontFace Javascript object. This object mostly consists of
style getters / setters, which we implement by parsing input strings and generating
output strings similarly to getComputedStyle(). This object also has a load() function
which returns a promise which will be fulfilled or rejected depending on the load.
There is also a "loaded" attribute which exposes this promise directly. Also, a status
field is exposed so script knows what the state of the load is.

Currently, loading depends on our CachedResourceLoader which is part of the Document,
so this API is not available in a non-document context.

Another caveat is that immediate-mode font loading (where the content provides an
ArrayBuffer containing the bytes of the font file) is forthcoming. This requires
changing the relationship between CSSFontFaceSource and CachedFont.

CSSFontFace has been modified to keep a strong reference to the CSSFontSelector. This
is because the lifetime of the CSSFontFace can now outlive the CSSFontSelector. When
the CSSFontSelector is removed from the Document, it explicitly clears its constituent
CSSFontFaces, thereby breaking the reference cycle.

Test: fast/text/font-face-javascript-expected.html

* CMakeLists.txt: Add new files.
* DerivedSources.cpp: Ditto.
* DerivedSources.make: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSDOMPromise.cpp:
(WebCore::DeferredWrapper::globalObject): Remove whitespace.
(WebCore::DeferredWrapper::deferred): Allow access to the inner JSC object.
* bindings/js/JSDOMPromise.h:
(WebCore::DOMPromise::deferred): Ditto.
* bindings/js/JSFontFaceCustom.cpp: Copied from Source/WebCore/bindings/js/JSDOMPromise.cpp.
(WebCore::JSFontFace::loaded):
(WebCore::JSFontFace::load):
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::adoptSource):
(WebCore::CSSFontFace::updateStatus): Enforce the state machine's transitions.
(WebCore::CSSFontFace::fontLoaded):
(WebCore::CSSFontFace::pump):
(WebCore::CSSFontFace::load):
* css/CSSFontFace.h:
(WebCore::CSSFontFaceClient::~CSSFontFaceClient):
(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::status):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::appendSources): Update for new CSSFontFace API.
(WebCore::CSSFontSelector::registerLocalFontFacesForFamily): Ditto.
(WebCore::CSSFontSelector::addFontFaceRule): Ditto.
(WebCore::CSSFontSelector::kick): Ditto.
(WebCore::appendSources): Deleted.
(WebCore::registerLocalFontFacesForFamily): Deleted.
* css/CSSFontSelector.h:
* css/CSSUnicodeRangeValue.cpp: Use for serializing the "unicodeRange" property.
* css/FontFace.cpp:
(WebCore::createPromise): Implement the remaining Javascript API functions.
(WebCore::valueFromDictionary):
(WebCore::FontFace::create):
(WebCore::FontFace::FontFace):
(WebCore::FontFace::parseString):
(WebCore::FontFace::status):
(WebCore::FontFace::kick):
(WebCore::FontFace::load):
(WebCore::FontFace::fulfillPromise):
(WebCore::FontFace::rejectPromise):
(WebCore::parseString): Deleted.
* css/FontFace.h:
(WebCore::FontFace::promise):
(WebCore::FontFace::backing):
(WebCore::FontFace::create): Deleted.
* css/FontFace.idl: Copied from Source/WebCore/bindings/js/JSDOMPromise.cpp.

LayoutTests:

* fast/text/font-face-javascript-expected.txt: Added.
* fast/text/font-face-javascript.html: Added.
* js/dom/global-constructors-attributes-expected.txt:
* platform/efl/js/dom/global-constructors-attributes-expected.txt:
* platform/gtk/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:
* platform/win/js/dom/global-constructors-attributes-expected.txt:

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

4 years agoNull-deref crash in DefaultAudioDestinationNode::suspend()
jer.noble@apple.com [Mon, 15 Feb 2016 22:37:53 +0000 (22:37 +0000)]
Null-deref crash in DefaultAudioDestinationNode::suspend()
https://bugs.webkit.org/show_bug.cgi?id=154248

Reviewed by Alex Christensen.

Drive-by fix: AudioContext should be a reference, not a pointer.

* Modules/webaudio/AnalyserNode.cpp:
(WebCore::AnalyserNode::AnalyserNode):
* Modules/webaudio/AnalyserNode.h:
(WebCore::AnalyserNode::create):
* Modules/webaudio/AudioBasicInspectorNode.cpp:
(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
(WebCore::AudioBasicInspectorNode::connect):
(WebCore::AudioBasicInspectorNode::disconnect):
(WebCore::AudioBasicInspectorNode::checkNumberOfChannelsForInput):
(WebCore::AudioBasicInspectorNode::updatePullStatus):
* Modules/webaudio/AudioBasicInspectorNode.h:
* Modules/webaudio/AudioBasicProcessorNode.cpp:
(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
(WebCore::AudioBasicProcessorNode::checkNumberOfChannelsForInput):
* Modules/webaudio/AudioBasicProcessorNode.h:
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::create):
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::renderFromBuffer):
(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::startPlaying):
(WebCore::AudioBufferSourceNode::looping):
(WebCore::AudioBufferSourceNode::setLooping):
* Modules/webaudio/AudioBufferSourceNode.h:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::createBufferSource):
(WebCore::AudioContext::createMediaElementSource):
(WebCore::AudioContext::createMediaStreamDestination):
(WebCore::AudioContext::createScriptProcessor):
(WebCore::AudioContext::createBiquadFilter):
(WebCore::AudioContext::createWaveShaper):
(WebCore::AudioContext::createPanner):
(WebCore::AudioContext::createConvolver):
(WebCore::AudioContext::createDynamicsCompressor):
(WebCore::AudioContext::createAnalyser):
(WebCore::AudioContext::createGain):
(WebCore::AudioContext::createDelay):
(WebCore::AudioContext::createChannelSplitter):
(WebCore::AudioContext::createChannelMerger):
(WebCore::AudioContext::createOscillator):
* Modules/webaudio/AudioContext.h:
(WebCore::operator==):
(WebCore::operator!=):
* Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::AudioDestinationNode):
(WebCore::AudioDestinationNode::render):
(WebCore::AudioDestinationNode::updateIsEffectivelyPlayingAudio):
* Modules/webaudio/AudioDestinationNode.h:
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::connect):
(WebCore::AudioNode::disconnect):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::scriptExecutionContext):
(WebCore::AudioNode::processIfNecessary):
(WebCore::AudioNode::checkNumberOfChannelsForInput):
(WebCore::AudioNode::propagatesSilence):
(WebCore::AudioNode::pullInputs):
(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::deref):
(WebCore::AudioNode::finishDeref):
* Modules/webaudio/AudioNode.h:
(WebCore::AudioNode::context):
* Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::connect):
(WebCore::AudioNodeInput::disconnect):
(WebCore::AudioNodeInput::disable):
(WebCore::AudioNodeInput::enable):
(WebCore::AudioNodeInput::updateInternalBus):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::internalSummingBus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):
* Modules/webaudio/AudioNodeOutput.cpp:
(WebCore::AudioNodeOutput::setNumberOfChannels):
(WebCore::AudioNodeOutput::updateNumberOfChannels):
(WebCore::AudioNodeOutput::propagateChannelCount):
(WebCore::AudioNodeOutput::pull):
(WebCore::AudioNodeOutput::bus):
(WebCore::AudioNodeOutput::fanOutCount):
(WebCore::AudioNodeOutput::paramFanOutCount):
(WebCore::AudioNodeOutput::addInput):
(WebCore::AudioNodeOutput::removeInput):
(WebCore::AudioNodeOutput::disconnectAllInputs):
(WebCore::AudioNodeOutput::addParam):
(WebCore::AudioNodeOutput::removeParam):
(WebCore::AudioNodeOutput::disconnectAllParams):
(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):
* Modules/webaudio/AudioNodeOutput.h:
(WebCore::AudioNodeOutput::context):
* Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::value):
(WebCore::AudioParam::smooth):
(WebCore::AudioParam::calculateSampleAccurateValues):
(WebCore::AudioParam::calculateFinalValues):
(WebCore::AudioParam::calculateTimelineValues):
(WebCore::AudioParam::connect):
(WebCore::AudioParam::disconnect):
* Modules/webaudio/AudioParam.h:
(WebCore::AudioParam::create):
(WebCore::AudioParam::AudioParam):
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valueForContextTime):
* Modules/webaudio/AudioParamTimeline.h:
* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
(WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
(WebCore::AudioScheduledSourceNode::start):
(WebCore::AudioScheduledSourceNode::finish):
* Modules/webaudio/AudioScheduledSourceNode.h:
* Modules/webaudio/AudioSummingJunction.cpp:
(WebCore::AudioSummingJunction::AudioSummingJunction):
(WebCore::AudioSummingJunction::~AudioSummingJunction):
(WebCore::AudioSummingJunction::changedOutputs):
(WebCore::AudioSummingJunction::updateRenderingState):
* Modules/webaudio/AudioSummingJunction.h:
(WebCore::AudioSummingJunction::context):
* Modules/webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::BiquadFilterNode):
* Modules/webaudio/BiquadFilterNode.h:
(WebCore::BiquadFilterNode::create):
* Modules/webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::BiquadProcessor):
* Modules/webaudio/BiquadProcessor.h:
* Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::create):
(WebCore::ChannelMergerNode::ChannelMergerNode):
(WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):
* Modules/webaudio/ChannelMergerNode.h:
* Modules/webaudio/ChannelSplitterNode.cpp:
(WebCore::ChannelSplitterNode::create):
(WebCore::ChannelSplitterNode::ChannelSplitterNode):
* Modules/webaudio/ChannelSplitterNode.h:
* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::ConvolverNode):
(WebCore::ConvolverNode::setBuffer):
* Modules/webaudio/ConvolverNode.h:
(WebCore::ConvolverNode::create):
* Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):
* Modules/webaudio/DefaultAudioDestinationNode.h:
(WebCore::DefaultAudioDestinationNode::create):
* Modules/webaudio/DelayNode.cpp:
(WebCore::DelayNode::DelayNode):
* Modules/webaudio/DelayNode.h:
(WebCore::DelayNode::create):
* Modules/webaudio/DelayProcessor.cpp:
(WebCore::DelayProcessor::DelayProcessor):
* Modules/webaudio/DelayProcessor.h:
* Modules/webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
* Modules/webaudio/DynamicsCompressorNode.h:
(WebCore::DynamicsCompressorNode::create):
* Modules/webaudio/GainNode.cpp:
(WebCore::GainNode::GainNode):
(WebCore::GainNode::checkNumberOfChannelsForInput):
* Modules/webaudio/GainNode.h:
(WebCore::GainNode::create):
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::create):
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):
* Modules/webaudio/MediaElementAudioSourceNode.h:
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::create):
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
* Modules/webaudio/MediaStreamAudioDestinationNode.h:
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
(WebCore::MediaStreamAudioSourceNode::setFormat):
* Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::offlineRender):
(WebCore::OfflineAudioDestinationNode::notifyComplete):
* Modules/webaudio/OfflineAudioDestinationNode.h:
(WebCore::OfflineAudioDestinationNode::create):
* Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::create):
(WebCore::OscillatorNode::OscillatorNode):
* Modules/webaudio/OscillatorNode.h:
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::pullInputs):
(WebCore::PannerNode::process):
(WebCore::PannerNode::listener):
(WebCore::PannerNode::setPanningModel):
* Modules/webaudio/PannerNode.h:
(WebCore::PannerNode::create):
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::create):
(WebCore::ScriptProcessorNode::ScriptProcessorNode):
(WebCore::ScriptProcessorNode::initialize):
(WebCore::ScriptProcessorNode::fireProcessEvent):
* Modules/webaudio/ScriptProcessorNode.h:
* Modules/webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::WaveShaperNode):
(WebCore::WaveShaperNode::setOversample):
* Modules/webaudio/WaveShaperNode.h:
(WebCore::WaveShaperNode::create):

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

4 years agoNull-deref crash in DefaultAudioDestinationNode::suspend()
jer.noble@apple.com [Mon, 15 Feb 2016 22:36:00 +0000 (22:36 +0000)]
Null-deref crash in DefaultAudioDestinationNode::suspend()
https://bugs.webkit.org/show_bug.cgi?id=154248

Reviewed by Alex Christensen.

Null-check scriptExecutionContext() before deref.

* Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):

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

4 years ago[EFL] Update Tools/efl/install-dependencies
ossy@webkit.org [Mon, 15 Feb 2016 22:33:25 +0000 (22:33 +0000)]
[EFL] Update Tools/efl/install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=154239

Reviewed by Michael Catanzaro.

* efl/install-dependencies:

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

4 years agoMove Download authentication code to AuthenticationManager
achristensen@apple.com [Mon, 15 Feb 2016 22:25:49 +0000 (22:25 +0000)]
Move Download authentication code to AuthenticationManager
https://bugs.webkit.org/show_bug.cgi?id=154132

Reviewed by Sam Weinig.

When a video element makes a request that receives an authentication challenge, the
AuthenticationManager receives an AuthenticationChallenge without an AuthenticationClient.
As a result, Download::receivedCredential and other functions were being called, which
sent a message to the challenge's sender.  This functionality is not specific to downloads,
so I moved it from Download to AuthenticationManager.

This fixes http/tests/media/video-auth.html when using NetworkSession
because I use AuthenticationManager::receivedCredential if there is no AuthenticationClient
instead of improperly asserting that there is always an AuthenticationClient if there is no
completionHandler.

* NetworkProcess/Downloads/Download.h:
* NetworkProcess/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::platformDidFinish):
(WebKit::Download::receivedCredential): Deleted.
(WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted.
(WebKit::Download::receivedCancellation): Deleted.
(WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted.
(WebKit::Download::receivedChallengeRejection): Deleted.
* NetworkProcess/Downloads/mac/DownloadMac.mm:
(WebKit::Download::platformDidFinish):
(WebKit::Download::receivedCredential): Deleted.
(WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted.
(WebKit::Download::receivedCancellation): Deleted.
(WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted.
(WebKit::Download::receivedChallengeRejection): Deleted.
* NetworkProcess/Downloads/soup/DownloadSoup.cpp:
(WebKit::Download::platformDidFinish):
(WebKit::Download::receivedCredential): Deleted.
(WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted.
(WebKit::Download::receivedCancellation): Deleted.
(WebKit::Download::continueWithoutCredential): Deleted.
(WebKit::Download::useCredential): Deleted.
(WebKit::Download::cancelAuthenticationChallenge): Deleted.
(WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted.
(WebKit::Download::receivedChallengeRejection): Deleted.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformMac.cmake:
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge):
(WebKit::AuthenticationManager::cancelChallenge):
(WebKit::AuthenticationManager::cancelSingleChallenge):
(WebKit::AuthenticationManager::performDefaultHandling):
(WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge):
* Shared/Authentication/AuthenticationManager.h:
(WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount):
* Shared/Authentication/cocoa: Added.
* Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: Added.
(WebKit::AuthenticationManager::receivedCredential):
(WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential):
(WebKit::AuthenticationManager::receivedCancellation):
(WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling):
(WebKit::AuthenticationManager::receivedChallengeRejection):
* Shared/Authentication/soup: Added.
* Shared/Authentication/soup/AuthenticationManagerSoup.cpp: Added.
(WebKit::AuthenticationManager::receivedCredential):
(WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential):
(WebKit::AuthenticationManager::receivedCancellation):
(WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling):
(WebKit::AuthenticationManager::receivedChallengeRejection):
* WebKit2.xcodeproj/project.pbxproj:

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

4 years agoXMLHttpRequest / XMLHttpRequestUpload should inherit XMLHttpRequestEventTarget
cdumez@apple.com [Mon, 15 Feb 2016 22:03:04 +0000 (22:03 +0000)]
XMLHttpRequest / XMLHttpRequestUpload should inherit XMLHttpRequestEventTarget
https://bugs.webkit.org/show_bug.cgi?id=154230

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

* web-platform-tests/XMLHttpRequest/interfaces-expected.txt:

Source/WebCore:

MLHttpRequest / XMLHttpRequestUpload should inherit XMLHttpRequestEventTarget
as per:
https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget

Firefox and Chrome already match the specification.

No new tests, already covered by existing tests.

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequest.idl:
* xml/XMLHttpRequestEventTarget.h: Added.
* xml/XMLHttpRequestEventTarget.idl: Copied from Source/WebCore/xml/XMLHttpRequestUpload.idl.
* xml/XMLHttpRequestUpload.h:
* xml/XMLHttpRequestUpload.idl:

LayoutTests:

Rebaseline tests now that XMLHttpRequestEventTarget is exposed on the
global objects.

* js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
* js/dom/global-constructors-attributes-expected.txt:
* platform/efl/js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
* platform/efl/js/dom/global-constructors-attributes-expected.txt:
* platform/gtk/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:
* platform/win/js/dom/global-constructors-attributes-expected.txt:

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

4 years agoRefine SimulatedMouseEvent to support Event.isTrusted
jiewen_tan@apple.com [Mon, 15 Feb 2016 21:38:25 +0000 (21:38 +0000)]
Refine SimulatedMouseEvent to support Event.isTrusted
https://bugs.webkit.org/show_bug.cgi?id=154133
<rdar://problem/24616246>

Reviewed by Darin Adler.

Source/WebCore:

This patch extracts everything related to create/dispatch SimulatedMouseEvent from MouseEvent.h/cpp
and EventDispatcher.h/cpp, and produces SimulateClick.h/cpp which will handle simulated click solely.
After that, we hide the SimulatedMouseEvent and only expose simulateClick to be called. The reason is
that we both want to tell whether the call sites are from user agent/bindings and keep the
SimulatedMouseEvent intact.

Also, this patch separate Element::dispatchSimulatedClick into two: one for the user agent, and another
for the bindings. Therefore, HTMLElement.click will be treated as untrusted.

Some of the changes in this patch referred Blink r200401:
https://codereview.chromium.org/1285793004

Modified test:
LayoutTests/imported/blink/fast/events/event-trusted.html

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/Element.cpp:
(WebCore::Element::dispatchSimulatedClick):
(WebCore::Element::dispatchSimulatedClickForBindings):
* dom/Element.h:
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchSimulatedClick): Deleted.
* dom/EventDispatcher.h:
* dom/MouseEvent.cpp:
(WebCore::SimulatedMouseEvent::create): Deleted.
(WebCore::SimulatedMouseEvent::~SimulatedMouseEvent): Deleted.
(WebCore::SimulatedMouseEvent::SimulatedMouseEvent): Deleted.
* dom/MouseEvent.h:
* dom/SimulatedClick.cpp: Added.
(WebCore::simulateMouseEvent):
(WebCore::simulateClick):
* dom/SimulatedClick.h: Added.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::click):

LayoutTests:

* imported/blink/fast/events/event-trusted-expected.txt:
* imported/blink/fast/events/event-trusted.html:

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

4 years agoWeb Inspector: Show inherited CSS variables in the Style sidebar
timothy@apple.com [Mon, 15 Feb 2016 21:37:10 +0000 (21:37 +0000)]
Web Inspector: Show inherited CSS variables in the Style sidebar
https://bugs.webkit.org/show_bug.cgi?id=154215
rdar://problem/24644058

Reviewed by Joseph Pecoraro.

* UserInterface/Models/CSSProperty.js:
(WebInspector.CSSProperty.isInheritedPropertyName): Added.
(WebInspector.CSSProperty.prototype.update): Use WebInspector.CSSProperty.isInheritedPropertyName.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload): Use WebInspector.CSSProperty.isInheritedPropertyName.

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

4 years agoWeb Inspector: Sidebars are defaulting to their minimum width, instead of a good...
timothy@apple.com [Mon, 15 Feb 2016 21:30:00 +0000 (21:30 +0000)]
Web Inspector: Sidebars are defaulting to their minimum width, instead of a good width
https://bugs.webkit.org/show_bug.cgi?id=154218
rdar://problem/24644192

Reviewed by Joseph Pecoraro.

* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel): Default the setting value to 300 instead of 0, so the minimum isn't used.

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

4 years agoMarking animations/animation-delay-changed.html as flaky on ios-simulator
ryanhaddad@apple.com [Mon, 15 Feb 2016 21:25:01 +0000 (21:25 +0000)]
Marking animations/animation-delay-changed.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=154253

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:
* platform/ios-simulator/TestExpectations:

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

4 years agoWeb Inspector: Web Workers have no access to console for debugging
commit-queue@webkit.org [Mon, 15 Feb 2016 21:23:23 +0000 (21:23 +0000)]
Web Inspector: Web Workers have no access to console for debugging
https://bugs.webkit.org/show_bug.cgi?id=26237

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-02-15
Reviewed by Timothy Hatcher.

LayoutTests/imported/w3c:

* web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt:
Update test results for a console.warn message that the test produces from a Worker.

Source/JavaScriptCore:

* inspector/ConsoleMessage.h:
Add accessor for MessageLevel.

Source/WebCore:

This adds the most basic console message support to Workers.
Messages logged from workers get surfaced through the Page's console.
This lacks support for logging and interacting with arguments,
which would be addressed when adding more complete Worker
debugging tools.

Test: inspector/console/messageAdded-from-worker.html

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
Add new files.

* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::initScript):
Set the ConsoleClient for the Worker's global object. We route
the messages to the Page's console.

* bindings/js/WorkerScriptController.h:
* workers/WorkerConsoleClient.h: Added.
* workers/WorkerConsoleClient.cpp: Added.
(WebCore::WorkerConsoleClient::WorkerConsoleClient):
(WebCore::WorkerConsoleClient::~WorkerConsoleClient):
(WebCore::WorkerConsoleClient::profile):
(WebCore::WorkerConsoleClient::profileEnd):
(WebCore::WorkerConsoleClient::count):
(WebCore::WorkerConsoleClient::time):
(WebCore::WorkerConsoleClient::timeEnd):
(WebCore::WorkerConsoleClient::timeStamp):
Stub most console methods in a Worker.

(WebCore::WorkerConsoleClient::messageWithTypeAndLevel):
Send worker log messages to the global scope and on to the main page.

* workers/WorkerGlobalScope.h:
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessageToWorkerConsole):
Ideally we want to converge on simple addConsoleMessage
APIs that just take a ConsoleMessage, without a barrage
of parameters. Add these versions now.

LayoutTests:

* inspector/console/messageAdded-from-worker-expected.txt: Added.
* inspector/console/messageAdded-from-worker.html: Added.
* inspector/console/resources/worker-console-log.js: Added.

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

4 years agoWeb Inspector: CSS variables are not formatted correctly
timothy@apple.com [Mon, 15 Feb 2016 21:16:40 +0000 (21:16 +0000)]
Web Inspector: CSS variables are not formatted correctly
https://bugs.webkit.org/show_bug.cgi?id=154217
rdar://problem/24644154

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

* UserInterface/Views/CodeMirrorFormatters.js:
(newlineBeforeToken): Check for `variable-2` token in the `maybeprop` state.

LayoutTests:

* inspector/codemirror/prettyprinting-css-rules-expected.txt:
* inspector/codemirror/prettyprinting-css-rules.html:
* inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables-expected.css: Added.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables.css: Added.

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

4 years agoWeb Inspector: CodeMirror styles needs updated for CSS variables
timothy@apple.com [Mon, 15 Feb 2016 21:13:24 +0000 (21:13 +0000)]
Web Inspector: CodeMirror styles needs updated for CSS variables
https://bugs.webkit.org/show_bug.cgi?id=154216
rdar://problem/24644146

Reviewed by Joseph Pecoraro.

* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(.cm-s-default .cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Added .cm-variable-2.
(.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Ditto.

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

4 years ago[ARMv7] stress/op_rshift.js and stress/op_urshift.js are failing.
mark.lam@apple.com [Mon, 15 Feb 2016 21:08:47 +0000 (21:08 +0000)]
[ARMv7] stress/op_rshift.js and stress/op_urshift.js are failing.
https://bugs.webkit.org/show_bug.cgi?id=151514

Reviewed by Filip Pizlo.

The issue turns out to be trivial: on ARMv7 (and traditional ARM too), arithmetic
shift right (ASR) and logical shift right (LSR) takes an immediate shift amount
from 1-32.  See http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Cjacbgca.html.
An immediate shift amount of 0 is interpreted as a shift of 32 bits.

Meanwhile, our macro assembler is expecting the immediate shift value to be
between 0-31.  As a result, a shift amount of 0 is being wrongly encoded with 0
bits which means shift right by 32 bits.

The fix is to check if the shift amount is 0, and if so, emit a move.  Else,
emit the right shift as usual.

This issue does not affect left shifts, as the immediate shift amount for left
shifts is between 0-31 as our macro assembler expects.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::rshift32):
(JSC::MacroAssemblerARM::urshift32):
(JSC::MacroAssemblerARM::sub32):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::rshift32):
(JSC::MacroAssemblerARMv7::urshift32):

* tests/stress/op_rshift.js:
* tests/stress/op_urshift.js:
- Un-skip these tests.  They should always pass now.

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

4 years agoCMake build fix.
achristensen@apple.com [Mon, 15 Feb 2016 20:49:23 +0000 (20:49 +0000)]
CMake build fix.

* PlatformMac.cmake:

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

4 years agoFix internal Windows build of projects built after WebKit
achristensen@apple.com [Mon, 15 Feb 2016 20:30:52 +0000 (20:30 +0000)]
Fix internal Windows build of projects built after WebKit
https://bugs.webkit.org/show_bug.cgi?id=154249
rdar://problem/24644805

Reviewed by Chris Dumez.

Source/WebKit:

* PlatformWin.cmake:
Copy all generated headers to ForwardingHeaders/WebKit, not just WebKit.h.
This should fix problems related to not finding headers from other projects, such as AccessibleApplication.h.
WebKit.h, WebKitCOMAPI.h, and CFDictionaryPropertyBag.h were copied correctly, so this should copy the rest
of the needed headers.

Tools:

* DumpRenderTree/PlatformWin.cmake:
* MiniBrowser/win/CMakeLists.txt:
Don't include DerivedSources/WebKit/Interfaces to make MiniBrowser and DumpRenderTree
more like projects built internally after WebKit.  They should only need to use what
is in ForwardingHeaders/WebKit.

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

4 years agoRegression(r196563): It is no longer possible to call window.addEventListener without...
cdumez@apple.com [Mon, 15 Feb 2016 20:09:54 +0000 (20:09 +0000)]
Regression(r196563): It is no longer possible to call window.addEventListener without an explicit 'this'
https://bugs.webkit.org/show_bug.cgi?id=154245

Reviewed by Ryosuke Niwa.

Source/WebCore:

This patch adds support for calling the EventListener API without an
explicit 'this' value. If no explicit 'this' value is passed, then we
fall back to using the global object. This matches Chrome and Firefox's
behavior. It also fixes the Dromaeo/cssquery-dojo.html test.

Test: fast/dom/Window/addEventListener-implicit-this.html

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

LayoutTests:

Add a layout test to cover the use of the EventListener API without an
explicit 'this' value.

* fast/dom/Window/addEventListener-implicit-this-expected.txt: Added.
* fast/dom/Window/addEventListener-implicit-this.html: Added.

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

4 years agoParser::parseVariableDeclarationList should null check the node before attempting...
fpizlo@apple.com [Mon, 15 Feb 2016 20:09:07 +0000 (20:09 +0000)]
Parser::parseVariableDeclarationList should null check the node before attempting to create a new CommaExpr
https://bugs.webkit.org/show_bug.cgi?id=154244
rdar://problem/24290670

Reviewed by Michael Saboff.

* parser/ASTBuilder.h:
(JSC::ASTBuilder::appendToCommaExpr): Catch the bug sooner in debug.
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseVariableDeclarationList): Fix the bug.
* tests/stress/for-let-comma.js: Added. This used to crash in debug and release.

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

4 years agoOrganize, deduplicate & comment JSDOMWindowCustom getOwnPropertySlot
barraclough@apple.com [Mon, 15 Feb 2016 19:56:18 +0000 (19:56 +0000)]
Organize, deduplicate & comment JSDOMWindowCustom getOwnPropertySlot
https://bugs.webkit.org/show_bug.cgi?id=154224

Reviewed by Chris Dumez.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::jsDOMWindowGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
    - organized property access sequence into a more logical order, removed
      duplicated code & added comments.
(WebCore::namedItemGetter): Deleted.
    - there was no need for a custom callback here; merged functionality into
      jsDOMWindowGetOwnPropertySlotNamedItemGetter.
(WebCore::jsDOMWindowGetOwnPropertySlotCrossOrigin): Deleted.
    - renamed to jsDOMWindowGetOwnPropertySlotRestrictedAccess
      (this now also handles frameless access).

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

4 years agoCSP: 'sandbox' should be ignored in report-only mode
dbates@webkit.org [Mon, 15 Feb 2016 18:54:30 +0000 (18:54 +0000)]
CSP: 'sandbox' should be ignored in report-only mode
https://bugs.webkit.org/show_bug.cgi?id=153167
<rdar://problem/22708669>

Reviewed by Brent Fulgham.

Source/WebCore:

Merged from Blink (patch by Mike West):
<https://src.chromium.org/viewvc/blink?revision=165322&view=revision>

* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportInvalidDirectiveInReportOnlyMode): Added. Logs a
console message to the console to explain that the specified directive is invalid in
report-only mode.
* page/csp/ContentSecurityPolicy.h:
* page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::ContentSecurityPolicyDirectiveList::applySandboxPolicy): Do not apply sandbox
policy when in report-only mode and call ContentSecurityPolicy::reportInvalidDirectiveInReportOnlyMode()
to log a message to the console.

LayoutTests:

Remove the entry from the TestExpectations file for the test
http/tests/security/contentSecurityPolicy/sandbox-report-only.html as it now passes.

* TestExpectations:

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

4 years agoCSP: Allow schemeless source expressions to match an HTTP or HTTPS resource
dbates@webkit.org [Mon, 15 Feb 2016 18:53:59 +0000 (18:53 +0000)]
CSP: Allow schemeless source expressions to match an HTTP or HTTPS resource
https://bugs.webkit.org/show_bug.cgi?id=154177
<rdar://problem/22708772>

Reviewed by Brent Fulgham.

Source/WebCore:

Allow a schemeless source expression to match an HTTP or HTTPS subresource when the page is
delivered over HTTP as per section Matching Source Expressions of the Content Security Policy
2.0 spec., <https://www.w3.org/TR/2015/CR-CSP2-20150721/> (21 July 2015).

Currently we have logic that implements this functionality, but it is guarded behind the compile-
time macro ENABLE(CSP_NEXT) that is disabled by default. Instead we should always compile such
code. In subsequent commits we will move more code out from under the ENABLE(CSP_NEXT)-guard
towards removing the ENABLE_CSP_NEXT macro entirely.

* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::protocolMatchesSelf):

LayoutTests:

Update test case and expected result to test that a schemeless source expression
matches an HTTPS subresource (and does not trigger a Content Security Policy violation)
when the page is served over HTTP.

* http/tests/security/contentSecurityPolicy/source-list-parsing-10-expected.txt:
* http/tests/security/contentSecurityPolicy/source-list-parsing-10.html: Change "no" to "yes"
so that we consider it a success (and continue printing "PASS") when we load and execute the
script, <https://127.0.0.1:8443/security/contentSecurityPolicy/resources/script.js>.

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

4 years agoFix byline to avoid bumping into content sticks out.
timothy@apple.com [Mon, 15 Feb 2016 17:52:17 +0000 (17:52 +0000)]
Fix byline to avoid bumping into content sticks out.

* wp-content/themes/webkit/style.css:
(article .byline): Bump padding to avoid content with negative margins.

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

4 years agoRebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator...
ryanhaddad@apple.com [Mon, 15 Feb 2016 17:44:47 +0000 (17:44 +0000)]
Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196563

Unreviewed test gardening.

* platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:

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

4 years ago[cmake] Consolidated Linux-specific file lists.
commit-queue@webkit.org [Mon, 15 Feb 2016 15:53:53 +0000 (15:53 +0000)]
[cmake] Consolidated Linux-specific file lists.
https://bugs.webkit.org/show_bug.cgi?id=154219

Patch by Konstantin Tokarev <annulen@yandex.ru> on 2016-02-15
Reviewed by Gyuyoung Kim.

No new tests needed.

* PlatformEfl.cmake: Moved Linux files and include dir to Linux.cmake.
* PlatformGTK.cmake: Ditto.
* platform/Linux.cmake: Added.

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

4 years agoUnreviewed. EFL gardening after r195740.
hs85.jeong@samsung.com [Mon, 15 Feb 2016 13:30:33 +0000 (13:30 +0000)]
Unreviewed. EFL gardening after r195740.

* platform/efl/tables/mozilla/bugs/bug10269-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug10269-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug10296-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug103533-expected.txt:
* platform/efl/tables/mozilla/bugs/bug106158-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug108340-expected.txt:
* platform/efl/tables/mozilla/bugs/bug110566-expected.txt:
* platform/efl/tables/mozilla/bugs/bug11321-expected.txt:
* platform/efl/tables/mozilla/bugs/bug113235-3-expected.txt:
* platform/efl/tables/mozilla/bugs/bug11944-expected.txt:
* platform/efl/tables/mozilla/bugs/bug119786-expected.txt:
* platform/efl/tables/mozilla/bugs/bug12384-expected.txt:
* platform/efl/tables/mozilla/bugs/bug1261-expected.txt:
* platform/efl/tables/mozilla/bugs/bug12910-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug13105-expected.txt:
* platform/efl/tables/mozilla/bugs/bug13118-expected.txt:
* platform/efl/tables/mozilla/bugs/bug133756-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug133756-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug13484-expected.txt:
* platform/efl/tables/mozilla/bugs/bug13526-expected.txt:
* platform/efl/tables/mozilla/bugs/bug138725-expected.txt:
* platform/efl/tables/mozilla/bugs/bug14159-3-expected.txt:
* platform/efl/tables/mozilla/bugs/bug149275-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug17130-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug1828-expected.txt:
* platform/efl/tables/mozilla/bugs/bug18359-expected.txt:
* platform/efl/tables/mozilla/bugs/bug18558-expected.txt:
* platform/efl/tables/mozilla/bugs/bug2050-expected.txt:
* platform/efl/tables/mozilla/bugs/bug20579-expected.txt:
* platform/efl/tables/mozilla/bugs/bug21299-expected.txt:
* platform/efl/tables/mozilla/bugs/bug21918-expected.txt:
* platform/efl/tables/mozilla/bugs/bug221784-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug221784-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug22246-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug22246-2a-expected.txt:
* platform/efl/tables/mozilla/bugs/bug2267-expected.txt:
* platform/efl/tables/mozilla/bugs/bug23072-expected.txt:
* platform/efl/tables/mozilla/bugs/bug23151-expected.txt:
* platform/efl/tables/mozilla/bugs/bug23299-expected.txt:
* platform/efl/tables/mozilla/bugs/bug24503-expected.txt:
* platform/efl/tables/mozilla/bugs/bug24627-expected.txt:
* platform/efl/tables/mozilla/bugs/bug2469-expected.txt:
* platform/efl/tables/mozilla/bugs/bug2479-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug24880-expected.txt:
* platform/efl/tables/mozilla/bugs/bug25086-expected.txt:
* platform/efl/tables/mozilla/bugs/bug2516-expected.txt:
* platform/efl/tables/mozilla/bugs/bug25367-expected.txt:
* platform/efl/tables/mozilla/bugs/bug2585-expected.txt:
* platform/efl/tables/mozilla/bugs/bug26178-expected.txt:
* platform/efl/tables/mozilla/bugs/bug27038-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug27038-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug275625-expected.txt:
* platform/efl/tables/mozilla/bugs/bug2757-expected.txt:
* platform/efl/tables/mozilla/bugs/bug278266-expected.txt:
* platform/efl/tables/mozilla/bugs/bug278385-expected.txt:
* platform/efl/tables/mozilla/bugs/bug2886-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug28928-expected.txt:
* platform/efl/tables/mozilla/bugs/bug29157-expected.txt:
* platform/efl/tables/mozilla/bugs/bug2973-expected.txt:
* platform/efl/tables/mozilla/bugs/bug3037-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug3037-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug30418-expected.txt:
* platform/efl/tables/mozilla/bugs/bug30985-expected.txt:
* platform/efl/tables/mozilla/bugs/bug3191-expected.txt:
* platform/efl/tables/mozilla/bugs/bug32205-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug32205-5-expected.txt:
* platform/efl/tables/mozilla/bugs/bug32447-expected.txt:
* platform/efl/tables/mozilla/bugs/bug3263-expected.txt:
* platform/efl/tables/mozilla/bugs/bug3309-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug34538-expected.txt:
* platform/efl/tables/mozilla/bugs/bug35662-expected.txt:
* platform/efl/tables/mozilla/bugs/bug3718-expected.txt:
* platform/efl/tables/mozilla/bugs/bug39209-expected.txt:
* platform/efl/tables/mozilla/bugs/bug40828-expected.txt:
* platform/efl/tables/mozilla/bugs/bug4284-expected.txt:
* platform/efl/tables/mozilla/bugs/bug4429-expected.txt:
* platform/efl/tables/mozilla/bugs/bug44523-expected.txt:
* platform/efl/tables/mozilla/bugs/bug45055-expected.txt:
* platform/efl/tables/mozilla/bugs/bug4520-expected.txt:
* platform/efl/tables/mozilla/bugs/bug46268-3-expected.txt:
* platform/efl/tables/mozilla/bugs/bug46268-5-expected.txt:
* platform/efl/tables/mozilla/bugs/bug46268-expected.txt:
* platform/efl/tables/mozilla/bugs/bug46480-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug46480-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug4739-expected.txt:
* platform/efl/tables/mozilla/bugs/bug48028-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug48028-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug51037-expected.txt:
* platform/efl/tables/mozilla/bugs/bug51140-expected.txt:
* platform/efl/tables/mozilla/bugs/bug55527-expected.txt:
* platform/efl/tables/mozilla/bugs/bug55545-expected.txt:
* platform/efl/tables/mozilla/bugs/bug55694-expected.txt:
* platform/efl/tables/mozilla/bugs/bug56405-expected.txt:
* platform/efl/tables/mozilla/bugs/bug57300-expected.txt:
* platform/efl/tables/mozilla/bugs/bug57378-expected.txt:
* platform/efl/tables/mozilla/bugs/bug57828-expected.txt:
* platform/efl/tables/mozilla/bugs/bug5798-expected.txt:
* platform/efl/tables/mozilla/bugs/bug5799-expected.txt:
* platform/efl/tables/mozilla/bugs/bug5838-expected.txt:
* platform/efl/tables/mozilla/bugs/bug58402-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug59354-expected.txt:
* platform/efl/tables/mozilla/bugs/bug60013-expected.txt:
* platform/efl/tables/mozilla/bugs/bug60749-expected.txt:
* platform/efl/tables/mozilla/bugs/bug60992-expected.txt:
* platform/efl/tables/mozilla/bugs/bug63785-expected.txt:
* platform/efl/tables/mozilla/bugs/bug650-expected.txt:
* platform/efl/tables/mozilla/bugs/bug67864-expected.txt:
* platform/efl/tables/mozilla/bugs/bug67915-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug69187-expected.txt:
* platform/efl/tables/mozilla/bugs/bug709-expected.txt:
* platform/efl/tables/mozilla/bugs/bug7112-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug7112-2-expected.txt:
* platform/efl/tables/mozilla/bugs/bug75250-expected.txt:
* platform/efl/tables/mozilla/bugs/bug8032-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug82946-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug8361-expected.txt:
* platform/efl/tables/mozilla/bugs/bug83786-expected.txt:
* platform/efl/tables/mozilla/bugs/bug8381-expected.txt:
* platform/efl/tables/mozilla/bugs/bug9072-expected.txt:
* platform/efl/tables/mozilla/bugs/bug9271-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug93363-expected.txt:
* platform/efl/tables/mozilla/bugs/bug96343-expected.txt:
* platform/efl/tables/mozilla/bugs/bug965-expected.txt:
* platform/efl/tables/mozilla/bugs/bug97138-expected.txt:
* platform/efl/tables/mozilla/bugs/bug99923-expected.txt:
* platform/efl/tables/mozilla/bugs/bug99948-expected.txt:
* platform/efl/tables/mozilla/collapsing_borders/bug127040-expected.txt:
* platform/efl/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
* platform/efl/tables/mozilla/core/captions-expected.txt:
* platform/efl/tables/mozilla/core/col_widths_auto_auto-expected.txt:
* platform/efl/tables/mozilla/core/col_widths_auto_autoPer-expected.txt:
* platform/efl/tables/mozilla/core/col_widths_fix_autoPer-expected.txt:
* platform/efl/tables/mozilla/core/row_span-expected.txt:
* platform/efl/tables/mozilla/dom/appendCol2-expected.txt:
* platform/efl/tables/mozilla/dom/appendRowsExpand1-expected.txt:
* platform/efl/tables/mozilla/dom/appendTbodyExpand1-expected.txt:
* platform/efl/tables/mozilla/dom/deleteCellsRebuild1-expected.txt:
* platform/efl/tables/mozilla/dom/deleteCellsShrink1-expected.txt:
* platform/efl/tables/mozilla/dom/deleteCellsShrink2-expected.txt:
* platform/efl/tables/mozilla/dom/deleteCol1-expected.txt:
* platform/efl/tables/mozilla/dom/deleteCol2-expected.txt:
* platform/efl/tables/mozilla/dom/deleteCol3-expected.txt:
* platform/efl/tables/mozilla/dom/deleteColGroup1-expected.txt:
* platform/efl/tables/mozilla/dom/deleteColGroup2-expected.txt:
* platform/efl/tables/mozilla/dom/deleteRowsRebuild1-expected.txt:
* platform/efl/tables/mozilla/dom/deleteRowsShrink1-expected.txt:
* platform/efl/tables/mozilla/dom/deleteTbodyExpand1-expected.txt:
* platform/efl/tables/mozilla/dom/deleteTbodyRebuild1-expected.txt:
* platform/efl/tables/mozilla/dom/insertCellsExpand1-expected.txt:
* platform/efl/tables/mozilla/dom/insertCellsExpand2-expected.txt:
* platform/efl/tables/mozilla/dom/insertCellsRebuild1-expected.txt:
* platform/efl/tables/mozilla/dom/insertCellsRebuild2-expected.txt:
* platform/efl/tables/mozilla/dom/insertRowsExpand1-expected.txt:
* platform/efl/tables/mozilla/dom/insertRowsRebuild1-expected.txt:
* platform/efl/tables/mozilla/dom/tableDom-expected.txt:
* platform/efl/tables/mozilla/marvin/body_col-expected.txt:
* platform/efl/tables/mozilla/marvin/body_tbody-expected.txt:
* platform/efl/tables/mozilla/marvin/body_tfoot-expected.txt:
* platform/efl/tables/mozilla/marvin/body_thead-expected.txt:
* platform/efl/tables/mozilla/marvin/col_span-expected.txt:
* platform/efl/tables/mozilla/marvin/table_frame_border-expected.txt:
* platform/efl/tables/mozilla/marvin/table_frame_box-expected.txt:
* platform/efl/tables/mozilla/marvin/table_rules_all-expected.txt:
* platform/efl/tables/mozilla/marvin/table_rules_none-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_border_0-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_border_1-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_border_2-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_border_3-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_caption_align_bot-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_caption_align_top-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_cellspacing-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_default-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_id-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_row_th_nowrap-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_td_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_td_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_td_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_td_colspan-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_td_height-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_td_nowrap-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_td_rowspan-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_th_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_th_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_th_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_th_colspan-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_th_height-expected.txt:
* platform/efl/tables/mozilla/marvin/tables_th_rowspan-expected.txt:
* platform/efl/tables/mozilla/marvin/tbody_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/tbody_align_char-expected.txt:
* platform/efl/tables/mozilla/marvin/tbody_align_justify-expected.txt:
* platform/efl/tables/mozilla/marvin/tbody_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/tbody_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/tbody_char-expected.txt:
* platform/efl/tables/mozilla/marvin/tfoot_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/tfoot_align_char-expected.txt:
* platform/efl/tables/mozilla/marvin/tfoot_align_justify-expected.txt:
* platform/efl/tables/mozilla/marvin/tfoot_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/tfoot_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/tfoot_char-expected.txt:
* platform/efl/tables/mozilla/marvin/thead_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/thead_align_char-expected.txt:
* platform/efl/tables/mozilla/marvin/thead_align_justify-expected.txt:
* platform/efl/tables/mozilla/marvin/thead_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/thead_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/thead_char-expected.txt:
* platform/efl/tables/mozilla/marvin/x_caption_align_bottom-expected.txt:
* platform/efl/tables/mozilla/marvin/x_caption_align_top-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_bgcolor_name-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_border-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_border_none-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_border_px-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_cellpadding-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_cellpadding_pct-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_cellspacing-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_cellspacing_pct-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_frame_void-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_rules_groups-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_rules_none-expected.txt:
* platform/efl/tables/mozilla/marvin/x_table_style-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tbody_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tbody_align_char-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tbody_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tbody_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tbody_class-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tbody_id-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tbody_style-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_bgcolor_name-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_bgcolor_rgb-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_class-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_colspan-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_height-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_id-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_nowrap-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_rowspan-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_style-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tfoot_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tfoot_align_char-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tfoot_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tfoot_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tfoot_class-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tfoot_id-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tfoot_style-expected.txt:
* platform/efl/tables/mozilla/marvin/x_th_bgcolor_name-expected.txt:
* platform/efl/tables/mozilla/marvin/x_th_bgcolor_rgb-expected.txt:
* platform/efl/tables/mozilla/marvin/x_th_class-expected.txt:
* platform/efl/tables/mozilla/marvin/x_th_colspan-expected.txt:
* platform/efl/tables/mozilla/marvin/x_th_height-expected.txt:
* platform/efl/tables/mozilla/marvin/x_th_id-expected.txt:
* platform/efl/tables/mozilla/marvin/x_th_nowrap-expected.txt:
* platform/efl/tables/mozilla/marvin/x_th_style-expected.txt:
* platform/efl/tables/mozilla/marvin/x_thead_align_center-expected.txt:
* platform/efl/tables/mozilla/marvin/x_thead_align_char-expected.txt:
* platform/efl/tables/mozilla/marvin/x_thead_align_left-expected.txt:
* platform/efl/tables/mozilla/marvin/x_thead_align_right-expected.txt:
* platform/efl/tables/mozilla/marvin/x_thead_class-expected.txt:
* platform/efl/tables/mozilla/marvin/x_thead_id-expected.txt:
* platform/efl/tables/mozilla/marvin/x_thead_style-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tr_bgcolor_name-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tr_bgcolor_rgb-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tr_class-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tr_id-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tr_style-expected.txt:
* platform/efl/tables/mozilla/other/body_col-expected.txt:
* platform/efl/tables/mozilla/other/cellspacing-expected.txt:
* platform/efl/tables/mozilla/other/move_row-expected.txt:
* platform/efl/tables/mozilla/other/padding-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug10140-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug101759-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug10216-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug104898-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug106336-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug11945-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug131020-3-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug14159-2-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug178855-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug18770-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug24880-1-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug25707-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug3166-11-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug3166-12-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug3166-13-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug3166-14-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug3166-16-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug3166-17-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug3166-18-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug32205-1-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug32205-4-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug4294-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug46268-4-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug51000-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug65372-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug6933-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug7113-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug73629-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
* platform/efl/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt:
* platform/efl/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
* platform/efl/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
* platform/efl/tables/mozilla_expected_failures/core/backgrounds-expected.txt:
* platform/efl/tables/mozilla_expected_failures/core/captions3-expected.txt:
* platform/efl/tables/mozilla_expected_failures/core/conflicts-expected.txt:
* platform/efl/tables/mozilla_expected_failures/dom/appendCells1-expected.txt:
* platform/efl/tables/mozilla_expected_failures/dom/appendCellsRebuild1-expected.txt:
* platform/efl/tables/mozilla_expected_failures/dom/appendCol1-expected.txt:
* platform/efl/tables/mozilla_expected_failures/dom/insertTbodyExpand1-expected.txt:
* platform/efl/tables/mozilla_expected_failures/dom/insertTbodyRebuild1-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_frame_above-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_frame_below-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_frame_hsides-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_frame_lhs-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_frame_rhs-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_frame_void-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_frame_vsides-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_rules_cols-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/table_rules_rows-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/tables_caption_align_left-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/tables_caption_align_right-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_caption_align_left-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_caption_align_right-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_colgroup_width_px-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_above-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_below-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_border-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_box-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_hsides-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_lhs-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_rhs-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_vsides-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_rules_all-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_rules_cols-expected.txt:
* platform/efl/tables/mozilla_expected_failures/marvin/x_table_rules_rows-expected.txt:

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

4 years agoFix the !(ENABLE(SVG_FONTS) || ENABLE(SVG_OTF_CONVERTER)) build after r196322
ossy@webkit.org [Mon, 15 Feb 2016 12:28:20 +0000 (12:28 +0000)]
Fix the !(ENABLE(SVG_FONTS) || ENABLE(SVG_OTF_CONVERTER)) build after r196322
https://bugs.webkit.org/show_bug.cgi?id=154104

Reviewed by Myles C. Maxfield.

* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::CSSFontFaceSource):

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

4 years agoAdd test for class change style invalidation optimization
antti@apple.com [Mon, 15 Feb 2016 10:30:36 +0000 (10:30 +0000)]
Add test for class change style invalidation optimization
https://bugs.webkit.org/show_bug.cgi?id=154226

Reviewed by Myles Maxfield.

Test for https://trac.webkit.org/r196383

Source/WebCore:

Add internals.styleChangeType function.

Test: fast/css/style-invalidation-class-change-descendants.html

* testing/Internals.cpp:
(WebCore::Internals::nodeNeedsStyleRecalc):
(WebCore::asString):
(WebCore::Internals::styleChangeType):
(WebCore::Internals::description):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* fast/css/style-invalidation-class-change-descendants-expected.txt: Added.
* fast/css/style-invalidation-class-change-descendants.html: Added.

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

4 years agoUnreviewed. EFL gardening. Mark more video tests to failure.
hs85.jeong@samsung.com [Mon, 15 Feb 2016 09:50:29 +0000 (09:50 +0000)]
Unreviewed. EFL gardening. Mark more video tests to failure.

* platform/efl/TestExpectations: Added more crash tests and moved the tests to upper position.

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

4 years ago[JSC] Improve the interface of Inst::shouldTryAliasingDef()
commit-queue@webkit.org [Mon, 15 Feb 2016 09:12:45 +0000 (09:12 +0000)]
[JSC] Improve the interface of Inst::shouldTryAliasingDef()
https://bugs.webkit.org/show_bug.cgi?id=154227

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-02-15
Reviewed by Andreas Kling.

Using Optional<> instead of a bool+reference looks cleaner
at the call sites.

* b3/B3CheckSpecial.cpp:
(JSC::B3::CheckSpecial::shouldTryAliasingDef):
* b3/B3CheckSpecial.h:
* b3/air/AirCustom.h:
(JSC::B3::Air::PatchCustom::shouldTryAliasingDef):
* b3/air/AirInst.h:
* b3/air/AirInstInlines.h:
(JSC::B3::Air::Inst::shouldTryAliasingDef):
* b3/air/AirIteratedRegisterCoalescing.cpp:
* b3/air/AirSpecial.cpp:
(JSC::B3::Air::Special::shouldTryAliasingDef):
* b3/air/AirSpecial.h:

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

4 years ago[CMake][Mac] Remove WKNPAPIPlugInContainer.mm in WebKit2/PlatformMac.cmake
gyuyoung.kim@webkit.org [Mon, 15 Feb 2016 08:39:58 +0000 (08:39 +0000)]
[CMake][Mac] Remove WKNPAPIPlugInContainer.mm in WebKit2/PlatformMac.cmake
https://bugs.webkit.org/show_bug.cgi?id=154234

Reviewed by Csaba Osztrogon√°c.

* PlatformMac.cmake: Remove WKNPAPIPlugInContainer.mm.

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

4 years ago[CSS Filters] When applying an SVG filter on a composited image using CSS the image...
simon.fraser@apple.com [Mon, 15 Feb 2016 05:10:58 +0000 (05:10 +0000)]
[CSS Filters] When applying an SVG filter on a composited image using CSS the image is rendered without the filter
https://bugs.webkit.org/show_bug.cgi?id=154108

Reviewed by Sam Weinig.
Source/WebCore:

When checking whether we can directly composite an image, we need to check for software-rendered
filters.

Test: compositing/filters/simple-image-with-svg-filter.html

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isDirectlyCompositedImage):

LayoutTests:

* compositing/filters/simple-image-with-svg-filter-expected.html: Added.
* compositing/filters/simple-image-with-svg-filter.html: Added.

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

4 years agoUnreviewed, land an additional Mac CMake build fix.
cdumez@apple.com [Mon, 15 Feb 2016 04:49:31 +0000 (04:49 +0000)]
Unreviewed, land an additional Mac CMake build fix.

* PlatformMac.cmake:

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

4 years agoUnreviewed Window build fix.
cdumez@apple.com [Mon, 15 Feb 2016 04:47:03 +0000 (04:47 +0000)]
Unreviewed Window build fix.

* WebCoreStatistics.cpp:
* WebJavaScriptCollector.cpp:

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

4 years agoDrop the [EventTarget] WebKit-specific IDL extended attribute
cdumez@apple.com [Mon, 15 Feb 2016 04:43:54 +0000 (04:43 +0000)]
Drop the [EventTarget] WebKit-specific IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=154171

Reviewed by Sam Weinig.

Drop the [EventTarget] WebKit-specific IDL extended attribute now that
all interfaces inherit EventTarget when they should.

No new tests, no Web-Exposed behavior change.

* Modules/battery/BatteryManager.idl:
* Modules/encryptedmedia/MediaKeySession.idl:
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBOpenDBRequest.idl:
* Modules/indexeddb/IDBRequest.idl:
* Modules/indexeddb/IDBTransaction.idl:
* Modules/mediasession/MediaRemoteControls.idl:
* Modules/mediasource/MediaSource.idl:
* Modules/mediasource/SourceBuffer.idl:
* Modules/mediasource/SourceBufferList.idl:
* Modules/mediastream/MediaStream.idl:
* Modules/mediastream/MediaStreamTrack.idl:
* Modules/mediastream/RTCDTMFSender.idl:
* Modules/mediastream/RTCDataChannel.idl:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/notifications/Notification.idl:
* Modules/speech/SpeechSynthesisUtterance.idl:
* Modules/webaudio/AudioContext.idl:
* Modules/webaudio/AudioNode.idl:
* Modules/webaudio/OfflineAudioContext.idl:
* Modules/websockets/WebSocket.idl:
* bindings/scripts/CodeGeneratorGObject.pm:
(ImplementsInterface):
(SkipFunction): Deleted.
(GenerateCFile): Deleted.
* bindings/scripts/CodeGeneratorJS.pm:
(InstanceNeedsVisitChildren):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/TestEventTarget.idl:
* bindings/scripts/test/TestNode.idl:
* css/FontLoader.idl:
* dom/EventTarget.idl:
* dom/MessagePort.idl:
* dom/Node.idl:
* dom/WebKitNamedFlow.idl:
* fileapi/FileReader.idl:
* html/MediaController.idl:
* html/track/AudioTrackList.idl:
* html/track/TextTrack.idl:
* html/track/TextTrackCue.idl:
* html/track/TextTrackList.idl:
* html/track/VideoTrackList.idl:
* loader/appcache/DOMApplicationCache.idl:
* page/DOMWindow.idl:
* page/EventSource.idl:
* page/Performance.idl:
* workers/WorkerGlobalScope.idl:
* xml/XMLHttpRequest.idl:
* xml/XMLHttpRequestUpload.idl:

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

4 years agoUnreviewed attempt to fix the Mac CMake build after r196136
cdumez@apple.com [Mon, 15 Feb 2016 03:53:09 +0000 (03:53 +0000)]
Unreviewed attempt to fix the Mac CMake build after r196136

* PlatformMac.cmake:

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

4 years agoUnreviewed attempt to fix the Windows build.
cdumez@apple.com [Mon, 15 Feb 2016 03:47:42 +0000 (03:47 +0000)]
Unreviewed attempt to fix the Windows build.

* Modules/webdatabase/Database.cpp:
* bridge/c/c_utility.cpp:
* platform/MemoryPressureHandler.cpp:

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

4 years agoWindow and WorkerGlobalScope should inherit EventTarget
cdumez@apple.com [Mon, 15 Feb 2016 02:17:33 +0000 (02:17 +0000)]
Window and WorkerGlobalScope should inherit EventTarget
https://bugs.webkit.org/show_bug.cgi?id=154170
<rdar://problem/24642377>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline now that a couple of checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Window and WorkerGlobalScope should inherit EventTarget instead of
duplicating the EventTarget API in their IDL. These were the last
interfaces that needed fixing. The next step will be to get rid
of the [EventTarget] IDL extended attribute and rely entirely
on the EventTarget inheritance.

Test:
- fast/frames/detached-frame-eventListener.html
- Covered by existing tests.

* WebCore.xcodeproj/project.pbxproj:
Add JSEventTargetCustom.h header to the project.

* bindings/js/JSDOMWindowCustom.cpp:
Drop custom bindings for Window's addEventListener() and
removeEventListener(). The only reason these needed custom
code was to add a check for frameless windows. The frameless
Window checks was moved to the respective methods in the
JSEventTarget generated bindings.

* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::setWindow):
Set WindowPrototype's prototype to EventTarget's prototype.

* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSDictionary.cpp:
Include "DOMWindow.h" to fix the build.

* bindings/js/JSEventTargetCustom.cpp:
(WebCore::JSEventTarget::toWrapped):
Handle DOMWindow and WorkerGlobalScope explicitely in toWrapped()
and get rid of the DOM_EVENT_TARGET_INTERFACES_FOR_EACH(TRY_TO_UNWRAP_WITH_INTERFACE)
now that all interfaces inherit EventTarget when they should.
The reason DOMWindow and WorkerGlobalScope still need special
handling is because their wrappers (JSDOMWindow /
JSWorkerGlobalScope) do not subclass JSEventTarget.

(WebCore::JSEventTargetOrGlobalScope::create):
* bindings/js/JSEventTargetCustom.h: Added.
(WebCore::JSEventTargetOrGlobalScope::wrapped):
(WebCore::JSEventTargetOrGlobalScope::operator JSC::JSObject&):
(WebCore::JSEventTargetOrGlobalScope::JSEventTargetOrGlobalScope):
Add a wrapper type for JSEventTarget / JSDOMWindow and
JSWorkerGlobalScope for use in the generated bindings. This is
needed because JSDOMWindow and JSWorkerGlobalScope do not
subclass JSEventTarget. Subclassing JSEventTarget would be
complicated for them because they already subclass
JSDOMWindowBase / JSWorkerGlobalScopeBase, which subclasses
JSDOMGlobalObject.

* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):
Set WorkerGlobalScopePrototype's prototype to EventTarget's prototype.

* bindings/scripts/CodeGeneratorJS.pm:
(ShouldGenerateToJSDeclaration):
Do not generate to toJS() implementation for interfaces that use
the [CustomProxyToJSObject] IDL extended attribute, even if they
inherit EventTarget.

(GetCastingHelperForThisObject):
To initialize castedThis from thisValue JSValue, we now use the
JSEventTargetOrGlobalScope wrapper for the EventTarget
implementation. This is to work around the fact that JSDOMWindow
and JSWorkerGlobalScope do not subclass JSEventTarget.

(GenerateFunctionCastedThis):
- Drop code handling [WorkerGlobalScope] IDL extended attribute
  as there is no such attribute.
- Use auto instead of auto* type for castedThis because
  JSEventTargetOrGlobalScope::create() returns a unique_ptr.
- Do not check that castedThis inherits JSEventTarget in the
  EventTarget bindings code as this no longer holds true.

(GenerateImplementation):
Generate frameless window() and security checks for EventTarget
methods when thisValue is a JSDOMWindow.

* dom/EventTarget.idl:
Add [JSCustomHeader] IDL Extended attribute as we need a header
to expose JSEventTargetOrGlobalScope class.

* page/DOMWindow.idl:
* workers/WorkerGlobalScope.idl:
Inherit EventTarget and stop duplicating the EventTarget API.
This matches the HTML specification.

LayoutTests:

* fast/frames/detached-frame-eventListener-expected.txt: Added.
* fast/frames/detached-frame-eventListener.html: Added.
Add test case to cover the use of the EventListener API on a detached
frame.

* fast/loader/window-clearing-expected.txt:
Rebaseline now that window has one more object in its prototype chain.

* http/tests/security/cross-frame-access-call-expected.txt:
* http/tests/security/cross-frame-access-call.html:
Add test coverage for cross-origin access to window.dispatchEvent() which
should not be allowed, in addition to window.addEventListener() and
window.removeEventListener() which were already tested.

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

4 years agoWKAutomationDelegate's requestAutomationSession should take a suggested session ident...
bburg@apple.com [Mon, 15 Feb 2016 01:42:31 +0000 (01:42 +0000)]
WKAutomationDelegate's requestAutomationSession should take a suggested session identifier
https://bugs.webkit.org/show_bug.cgi?id=154012
<rdar://problem/24557697>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Add a string parameter to the client method for requesting a new session.

* inspector/remote/RemoteInspector.h:

Source/WebKit2:

Add a string parameter to the delegate method for requesting a new session.

* UIProcess/API/APIAutomationClient.h:
(API::AutomationClient::didRequestAutomationSession):
(API::AutomationClient::requestAutomationSession): Deleted.
Rename the client method to better match the delegate method's name.

* UIProcess/API/Cocoa/_WKAutomationDelegate.h:
* UIProcess/Cocoa/AutomationClient.h:
* UIProcess/Cocoa/AutomationClient.mm:
(WebKit::AutomationClient::AutomationClient):
(WebKit::AutomationClient::requestAutomationSession):

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

4 years agoSmall tweaks to some SimpleLineLayout code
darin@apple.com [Mon, 15 Feb 2016 01:26:05 +0000 (01:26 +0000)]
Small tweaks to some SimpleLineLayout code
https://bugs.webkit.org/show_bug.cgi?id=154229

Reviewed by Zalan Bujtas.

* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow): Use std::ceil instead of ceilf.
Use auto instead of const auto& for a for loop where the local object is
copied and not a reference.
(WebCore::SimpleLineLayout::hitTestFlow): Use modern for loop.
(WebCore::SimpleLineLayout::collectFlowOverflow): Use std::ceil instead of
ceilf. Use a modern for loop, and use slightly more descriptive local
variable names.
(WebCore::SimpleLineLayout::computeBoundingBox): Use auto instead of
const auto& as above.
(WebCore::SimpleLineLayout::computeFirstRunLocation): Use auto and use
the name "range" for the range rather than the name "it", since the range
is not an iterator.
(WebCore::SimpleLineLayout::collectAbsoluteRects): Use auto instead of
const auto& as above.
(WebCore::SimpleLineLayout::collectAbsoluteQuads): Ditto.
(WebCore::SimpleLineLayout::showLineLayoutForFlow): Use modern for loop.

* rendering/SimpleLineLayoutResolver.cpp:
(WebCore::SimpleLineLayout::RunResolver::Run::text): Convert from a String
to a StringView using the StringView constructor instead of writing out
explicit 8-bit and 16-bit cases.

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

4 years agoFactor class change style invalidation code into a class
antti@apple.com [Sun, 14 Feb 2016 09:57:23 +0000 (09:57 +0000)]
Factor class change style invalidation code into a class
https://bugs.webkit.org/show_bug.cgi?id=154163

Reviewed by Andreas Kling.

Factor this piece of functionality out of Element and into ClassChangeInvalidation class.

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Element.cpp:
(WebCore::classStringHasClassName):
(WebCore::Element::classAttributeChanged):
(WebCore::collectClasses): Deleted.
(WebCore::computeClassChange): Deleted.
(WebCore::invalidateStyleForClassChange): Deleted.
* style/ClassChangeInvalidation.cpp: Added.
(WebCore::Style::ClassChangeInvalidation::computeClassChange):
(WebCore::Style::ClassChangeInvalidation::invalidateStyle):
* style/ClassChangeInvalidation.h: Added.
(WebCore::Style::ClassChangeInvalidation::needsInvalidation):
(WebCore::Style::ClassChangeInvalidation::ClassChangeInvalidation):
(WebCore::Style::ClassChangeInvalidation::~ClassChangeInvalidation):

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

4 years ago[Win] [SVG -> OTF Converter] SVG fonts drawn into ImageBuffers are invisible
mmaxfield@apple.com [Sun, 14 Feb 2016 02:20:14 +0000 (02:20 +0000)]
[Win] [SVG -> OTF Converter] SVG fonts drawn into ImageBuffers are invisible
https://bugs.webkit.org/show_bug.cgi?id=154222

Reviewed by Antti Koivisto.

Windows ImageBuffer code is sensitive to broken bounding box and
descent code.

Covered by existing tests.

* svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::appendHHEATable):
(WebCore::SVGToOTFFontConverter::appendOS2Table):
(WebCore::SVGToOTFFontConverter::processGlyphElement):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

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

4 years agoRemoved the unused Frameworks group.
mitz@apple.com [Sun, 14 Feb 2016 02:17:22 +0000 (02:17 +0000)]
Removed the unused Frameworks group.

Rubber-stamped by Sam Weinig.

* WebInspectorUI.xcodeproj/project.pbxproj:

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

4 years agoAdjust the appearance of mattewhite figures that are not widescreen.
timothy@apple.com [Sun, 14 Feb 2016 01:47:47 +0000 (01:47 +0000)]
Adjust the appearance of mattewhite figures that are not widescreen.

* wp-content/themes/webkit/style.css:
(article .mattewhite:not(.widescreen):

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

4 years agov3 UI sometimes shows same dates twice on the x-axis of time series charts
rniwa@webkit.org [Sat, 13 Feb 2016 22:48:32 +0000 (22:48 +0000)]
v3 UI sometimes shows same dates twice on the x-axis of time series charts
https://bugs.webkit.org/show_bug.cgi?id=154210

Reviewed by Chris Dumez.

The bug was caused by the label generation code in TimeSeriesChart.computeTimeGrid never emitting hours.

Use hours instead of dates as labels when the current time's date is same as the previous label's date.
Always include dates before entering this mode to avoid just having hours as labels on the entire x-axis.

* public/v3/components/time-series-chart.js:
(TimeSeriesChart.prototype._renderXAxis): Slightly increase the "average" width of x-axis label.
(TimeSeriesChart.computeTimeGrid): See above. Also assert that the number of labels we generate never
exceeds maxLabels as a sanity check.
(TimeSeriesChart._timeIterators): Added an iterator that increments by two hours for zoomed graphs.

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

4 years agoAdd version number for default stylesheet
antti@apple.com [Sat, 13 Feb 2016 22:45:34 +0000 (22:45 +0000)]
Add version number for default stylesheet
https://bugs.webkit.org/show_bug.cgi?id=154220

Reviewed by Ryosuke Niwa.

We currently fail to update RuleFeatureSets for shadow trees when the default stylesheet grows
(for example when media controls stylesheet is initialized).

No test since this is not causing known bugs. It is blocking optimizations in shadow trees that
rely on rule features being up-to-date.

* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):

    Increment version number when the default stylesheet changes.

* css/CSSDefaultStyleSheets.h:
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::appendAuthorStyleSheets):
(WebCore::DocumentRuleSets::collectFeatures):

    Store the current default stylesheet version number.

* css/DocumentRuleSets.h:
(WebCore::DocumentRuleSets::features):

    Collect features again if the default stylesheet has changed.

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

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

4 years agoEliminate the need for WTFCrashImpl().
mark.lam@apple.com [Sat, 13 Feb 2016 22:39:52 +0000 (22:39 +0000)]
Eliminate the need for WTFCrashImpl().
https://bugs.webkit.org/show_bug.cgi?id=154202

Reviewed by Alexey Proskuryakov.

* wtf/Assertions.cpp:
* wtf/Assertions.h:

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

4 years agov3 UI should show status and associated bugs on analysis task pages
rniwa@webkit.org [Sat, 13 Feb 2016 21:30:10 +0000 (21:30 +0000)]
v3 UI should show status and associated bugs on analysis task pages
https://bugs.webkit.org/show_bug.cgi?id=154212

Reviewed by Chris Dumez.

Added the capability to see and modify the status and the list of associated of bugs on analysis task pages.

Also added the list of related tasks, which are analysis tasks associated with the same bug or have
overlapping time ranges with the same test metric but on a potentially different platform.

In addition, categorize analysis tasks with the status of "no change" or "inconclusive" as "closed" as no
further action can be taken (users can bring them back to non-closed state without any restrictions).

* public/api/analysis-tasks.php:
(format_task): Categorize 'unchanged' and 'inconclusive' analysis tasks as closed.

* public/privileged-api/associate-bug.php:
(main): Added shouldDelete as a new mechanism to disassociate a bug since v3 UI shares a single Bug object
between multiple analysis tasks (as it should have been in the first place).

* public/v3/components/chart-pane-base.js:
(ChartPaneBase):
(ChartPaneBase.prototype._fetchAnalysisTasks): Since each analysis task's change type (status/result) could
change, we need to create annotation objects during each render() call.
(ChartPaneBase.prototype.render):
(ChartPaneBase.prototype._renderAnnotations): Extracted from ChartPaneBase.prototype._fetchAnalysisTasks to
do that. I was afraid of the perf impact of this but it doesn't seem to be an issue in my testing.
(ChartPaneBase.cssTemplate): Removed superfluous margins (moved to ChartPane.cssTemplate) around the charts
since they are only useful in the charts page.

* public/v3/models/analysis-task.js:
(AnalysisTask):
(AnalysisTask.prototype.updateSingleton): Added a comment as to why object.result cannot be renamed to
object.changeType in the JSON API.
(AnalysisTask.prototype.updateName): Added.
(AnalysisTask.prototype.updateChangeType): Added.
(AnalysisTask.prototype._updateRemoteState): Added.
(AnalysisTask.prototype.associateBug): Added.
(AnalysisTask.prototype.disassociateBug): Added.
(AnalysisTask.fetchRelatedTasks): Added. See above for the criteria of related-ness.

* public/v3/pages/analysis-task-page.js:
(AnalysisTaskPage):
(AnalysisTaskPage.prototype.updateFromSerializedState):
(AnalysisTaskPage.prototype._fetchRelatedInfoForTaskId): Extracted from updateFromSerializedState.
(AnalysisTaskPage.prototype._didFetchRelatedAnalysisTasks): Added.
(AnalysisTaskPage.prototype.render): Render the list of associated bugs, the list of bug trackers (so that
users can use it to associate with a new bug), and the list of related analysis tasks.
(AnalysisTaskPage.prototype._renderTestGroupList): Extracted from render since it was getting too long.
(AnalysisTaskPage.prototype._renderTestGroupDetails): Ditto.
(AnalysisTaskPage.prototype._updateChangeType): Added.
(AnalysisTaskPage.prototype._associateBug): Added.
(AnalysisTaskPage.prototype._disassociateBug): Added.
(AnalysisTaskPage.htmlTemplate): Added various elements to show and modify the status, associate bugs,
and a list of related analysis tasks.
(AnalysisTaskPage.cssTemplate): Added various styles for those form controls.

* public/v3/pages/chart-pane.js:
(ChartPane.cssTemplate): Moved the margins from ChartPaneBase.cssTemplate.

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

4 years ago[cmake] Consolidate building of GStreamer and OpenWebRTC code.
commit-queue@webkit.org [Sat, 13 Feb 2016 19:12:28 +0000 (19:12 +0000)]
[cmake] Consolidate building of GStreamer and OpenWebRTC code.
https://bugs.webkit.org/show_bug.cgi?id=154116

Patch by Konstantin Tokarev <annulen@yandex.ru> on 2016-02-13
Reviewed by Michael Catanzaro.

No new tests needed.

* PlatformEfl.cmake: Migrated shared code to GStreamer.cmake.
* PlatformGTK.cmake: Ditto.
* platform/GStreamer.cmake: Added.

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

4 years agoAdd thread violation checks to WebView public APIs.
mark.lam@apple.com [Sat, 13 Feb 2016 17:41:12 +0000 (17:41 +0000)]
Add thread violation checks to WebView public APIs.
https://bugs.webkit.org/show_bug.cgi?id=154183

Reviewed by Timothy Hatcher.

Source/WebCore:

No new tests.  Just adding a new thread violation round.

* platform/ThreadCheck.h:
* platform/mac/ThreadCheck.mm:
- Adding WebCoreThreadViolationCheckRoundThree().

Source/WebKit/mac:

Re-landing r196527 with a newly added WebCoreThreadViolationCheckRoundThree().
Previously was using WebCoreThreadViolationCheckRoundTwo().

* Misc/WebKitVersionChecks.h:
* WebView/WebFrameView.mm:
(-[WebFrameView initWithFrame:]):
* WebView/WebView.mm:
(-[WebView setCustomTextEncodingName:]):
(-[WebView stringByEvaluatingJavaScriptFromString:]):
(-[WebView windowScriptObject]):
(-[WebView setGroupName:]):
(-[WebView setMainFrameURL:]):
(-[WebView mainFrameTitle]):
(-[WebView mainFrameIcon]):
(-[WebView setDrawsBackground:]):
(-[WebView setShouldUpdateWhileOffscreen:]):

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

4 years agoFix WebAssembly bug URL in the feature list.
timothy@apple.com [Sat, 13 Feb 2016 13:38:48 +0000 (13:38 +0000)]
Fix WebAssembly bug URL in the feature list.

* features.json:

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

4 years agoWeb Inspector: DataGrid Header Cells should have Context Menu for Sorting
commit-queue@webkit.org [Sat, 13 Feb 2016 09:23:40 +0000 (09:23 +0000)]
Web Inspector: DataGrid Header Cells should have Context Menu for Sorting
https://bugs.webkit.org/show_bug.cgi?id=154050

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2016-02-13
Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.set sortOrder):
(WebInspector.DataGrid.prototype._toggledSortOrder):
Returns the opposite sort order from the current order.

(WebInspector.DataGrid.prototype._selectSortColumnAndSetOrder):
Changes the selected column to the one with the specified identifier and
then switches the sort order to the given order.

(WebInspector.DataGrid.prototype._headerCellClicked):
Moved logic for switching cells/sort-order to a separate function for
better reusability.

(WebInspector.DataGrid.prototype._contextMenuInHeader):
Adds context menu items on DataGrid header items to change the current
sort order to the specified order. If the context menu is on the selected
header item, only show the sort order that is not currently applied.

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

4 years agoUnreviewed. Fix GTK+ and hopefully EFL build after r196499.
carlosgc@webkit.org [Sat, 13 Feb 2016 08:49:22 +0000 (08:49 +0000)]
Unreviewed. Fix GTK+ and hopefully EFL build after r196499.

* UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::PluginProcessProxy::platformGetLaunchOptions):

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

4 years agoChange the last RefPtr::get() to release() in String.prototype.normalize
sukolsak@gmail.com [Sat, 13 Feb 2016 07:21:59 +0000 (07:21 +0000)]
Change the last RefPtr::get() to release() in String.prototype.normalize
https://bugs.webkit.org/show_bug.cgi?id=154211

Reviewed by Ryosuke Niwa.

Change the last RefPtr::get() to release() in String.prototype.normalize.

* runtime/StringPrototype.cpp:
(JSC::normalize):

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

4 years agoAX: Implement paragraph related text marker functions using TextIterator
n_wang@apple.com [Sat, 13 Feb 2016 05:24:24 +0000 (05:24 +0000)]
AX: Implement paragraph related text marker functions using TextIterator
https://bugs.webkit.org/show_bug.cgi?id=154098
<rdar://problem/24269675>

Reviewed by Chris Fleizach.

Source/WebCore:

Using CharacterOffset to implement paragraph related text marker calls. Reused
logic from VisibleUnits class. And refactored textMarkerForCharacterOffset method
to get better performance. Also fixed an issue where we can't navigate through a text
node with line breaks in it using next/previousCharacterOffset call.

Test: accessibility/mac/text-marker-paragraph-nav.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::startOrEndTextMarkerDataForRange):
(WebCore::AXObjectCache::characterOffsetForNodeAndOffset):
(WebCore::AXObjectCache::textMarkerDataForCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForNextCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForPreviousCharacterOffset):
(WebCore::AXObjectCache::nextNode):
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
(WebCore::AXObjectCache::nextCharacterOffset):
(WebCore::AXObjectCache::previousCharacterOffset):
(WebCore::startWordBoundary):
(WebCore::AXObjectCache::startCharacterOffsetOfWord):
(WebCore::AXObjectCache::endCharacterOffsetOfWord):
(WebCore::AXObjectCache::previousWordStartCharacterOffset):
(WebCore::AXObjectCache::previousWordBoundary):
(WebCore::AXObjectCache::startCharacterOffsetOfParagraph):
(WebCore::AXObjectCache::endCharacterOffsetOfParagraph):
(WebCore::AXObjectCache::paragraphForCharacterOffset):
(WebCore::AXObjectCache::nextParagraphEndCharacterOffset):
(WebCore::AXObjectCache::previousParagraphStartCharacterOffset):
(WebCore::AXObjectCache::rootAXEditableElement):
* accessibility/AXObjectCache.h:
(WebCore::CharacterOffset::remaining):
(WebCore::CharacterOffset::isNull):
(WebCore::CharacterOffset::isEqual):
(WebCore::AXObjectCache::isNodeInUse):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(+[WebAccessibilityTextMarker textMarkerWithCharacterOffset:cache:]):
(-[WebAccessibilityObjectWrapper nextMarkerForCharacterOffset:]):
(-[WebAccessibilityObjectWrapper previousMarkerForCharacterOffset:]):
(-[WebAccessibilityObjectWrapper rangeForTextMarkers:]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(startOrEndTextmarkerForRange):
(nextTextMarkerForCharacterOffset):
(previousTextMarkerForCharacterOffset):
(-[WebAccessibilityObjectWrapper nextTextMarkerForCharacterOffset:]):
(-[WebAccessibilityObjectWrapper previousTextMarkerForCharacterOffset:]):
(-[WebAccessibilityObjectWrapper textMarkerForCharacterOffset:]):
(textMarkerForCharacterOffset):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper nextTextMarkerForNode:offset:]): Deleted.
(-[WebAccessibilityObjectWrapper previousTextMarkerForNode:offset:]): Deleted.
(-[WebAccessibilityObjectWrapper textMarkerForNode:offset:ignoreStart:]): Deleted.
(-[WebAccessibilityObjectWrapper textMarkerForNode:offset:]): Deleted.
* editing/VisibleUnits.cpp:
(WebCore::nextSentencePosition):
(WebCore::findStartOfParagraph):
(WebCore::findEndOfParagraph):
(WebCore::startOfParagraph):
(WebCore::endOfParagraph):
* editing/VisibleUnits.h:

Tools:

* DumpRenderTree/AccessibilityUIElement.cpp:
(nextWordEndTextMarkerForTextMarkerCallback):
(paragraphTextMarkerRangeForTextMarkerCallback):
(previousParagraphStartTextMarkerForTextMarkerCallback):
(nextParagraphEndTextMarkerForTextMarkerCallback):
(setSelectedVisibleTextRangeCallback):
(AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(AccessibilityUIElement::getJSClass):
* DumpRenderTree/AccessibilityUIElement.h:
* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
* DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(AccessibilityUIElement::supportedActions):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::rightWordTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::previousWordStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::mathPostscriptsDescription):
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(WTR::_convertMathMultiscriptPairsToString):

LayoutTests:

* accessibility/mac/text-marker-paragraph-nav-expected.txt: Added.
* accessibility/mac/text-marker-paragraph-nav.html: Added.
* accessibility/text-marker/text-marker-previous-next-expected.txt:
* accessibility/text-marker/text-marker-previous-next.html:

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

4 years ago[ES6] we have an incorrect syntax error when a callee of a function expression has...
sbarati@apple.com [Sat, 13 Feb 2016 04:52:01 +0000 (04:52 +0000)]
[ES6] we have an incorrect syntax error when a callee of a function expression has the same name as a top-level lexical declaration
https://bugs.webkit.org/show_bug.cgi?id=154143

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

We were raising syntax errors on the following type of programs when
we shouldn't have been.
```
(function foo() { const foo = 20; });
```

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionInfo):
* parser/Parser.h:
(JSC::Scope::computeLexicallyCapturedVariablesAndPurgeCandidates):
(JSC::Scope::declareCallee):
(JSC::Scope::declareVariable):
(JSC::Scope::hasDeclaredVariable):
(JSC::Scope::hasLexicallyDeclaredVariable):
(JSC::Scope::hasDeclaredParameter):
(JSC::Scope::declareWrite):
(JSC::Scope::getCapturedVars):

LayoutTests:

* js/basic-strict-mode-expected.txt:
* js/let-syntax-expected.txt:
* js/script-tests/let-syntax.js:

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

4 years ago[JSC] ZeroExtend and SignExtend use incorrect addressing on ARM64
commit-queue@webkit.org [Sat, 13 Feb 2016 04:48:40 +0000 (04:48 +0000)]
[JSC] ZeroExtend and SignExtend use incorrect addressing on ARM64
https://bugs.webkit.org/show_bug.cgi?id=154208

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-02-12
Reviewed by Filip Pizlo.

When lowering:
    @1 = Load32(@x)
    @2 = SExt8(@1)

LowerToAir would see there is a form of SignExtend8To32 (an alias for Load8S)
and use that.

There are two problems with that:
1) If we have an Addr, it went through legalizeMemoryOffsets() for a 32bits
   load. If used on an other kind of load, there is no guarantee the addressing
   is still valid.
2) If we have an Index, it is computed for the 32bits MemoryValue.
   The computed index is not valid for the 8bits load.

(2) could be fixed by changing LowerToAir to use the current instruction width
instead of the B3ValueWidth but that's a bit tricky. We should just embrace
that one of our target is a Load-Store architecture.

In this patch, I just disabled the faulty forms on ARM64. We still need those operations
to be fast, this will be addressed in: https://bugs.webkit.org/show_bug.cgi?id=154207

I also strengthened the m_allowScratchRegister assertion. The instructions that do not
invalidate the temporary did not run the assertion, making this harder to debug.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store32):
(JSC::MacroAssemblerARM64::loadDouble):
(JSC::MacroAssemblerARM64::storeDouble):
(JSC::MacroAssemblerARM64::branch32):
(JSC::MacroAssemblerARM64::branch64):
(JSC::MacroAssemblerARM64::getCachedDataTempRegisterIDAndInvalidate):
(JSC::MacroAssemblerARM64::getCachedMemoryTempRegisterIDAndInvalidate):
(JSC::MacroAssemblerARM64::dataMemoryTempRegister):
(JSC::MacroAssemblerARM64::cachedMemoryTempRegister):
(JSC::MacroAssemblerARM64::load):
(JSC::MacroAssemblerARM64::store):
* b3/air/AirOpcode.opcodes:

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

4 years agoAdd a CSS class to remove padding when using mattewhite class for figures
jond@apple.com [Sat, 13 Feb 2016 03:13:49 +0000 (03:13 +0000)]
Add a CSS class to remove padding when using mattewhite class for figures
https://bugs.webkit.org/show_bug.cgi?id=154206

Reviewed by Filip Pizlo.

* wp-content/themes/webkit/style.css:
(article .two-columns):
(article .two-columns h6):
(article .two-columns p):
(article .mattewhite):
(article .mattewhite.tightwad):
(article figure):

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

4 years agoofflineasm: Emit Dwarf2 file and location directives to allow for debugging .asm...
msaboff@apple.com [Sat, 13 Feb 2016 02:37:19 +0000 (02:37 +0000)]
offlineasm: Emit Dwarf2 file and location directives to allow for debugging .asm files
https://bugs.webkit.org/show_bug.cgi?id=152703

Reviewed by Mark Lam.

Added support to output Dwarf2 .file and .loc assembler directives to provide the debugging
information needed to correlate the offline assembler generated code with the source lines
in the .asm files.

Changed the tracking of file data to include a file index that was provided to the .file
directive.  That index is used when emitting the .loc directives.

* offlineasm/arm.rb:
* offlineasm/arm64.rb:
* offlineasm/asm.rb:
* offlineasm/backends.rb:
* offlineasm/config.rb:
* offlineasm/parser.rb:
* offlineasm/x86.rb:

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

4 years agoUnreviewed, upload some blog files.
fpizlo@apple.com [Sat, 13 Feb 2016 02:00:02 +0000 (02:00 +0000)]
Unreviewed, upload some blog files.

* blog-files/compile-times.png: Added.
* blog-files/fast-isel.png: Added.
* blog-files/jetstream-latency.png: Added.
* blog-files/jetstream-throughput.png: Added.
* blog-files/jetstream.png: Added.
* blog-files/kraken.png: Added.
* blog-files/low-compile-times.png: Added.
* blog-files/low-fast-isel.png: Added.
* blog-files/low-jetstream-latency.png: Added.
* blog-files/low-jetstream-throughput.png: Added.
* blog-files/low-jetstream.png: Added.
* blog-files/low-kraken.png: Added.
* blog-files/low-octane.png: Added.
* blog-files/octane.png: Added.

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

4 years agoUnreviewed, build fix after r196520
jiewen_tan@apple.com [Sat, 13 Feb 2016 01:49:52 +0000 (01:49 +0000)]
Unreviewed, build fix after r196520

* inspector/model/remote-object-get-properties-expected.txt:
* platform/mac/inspector/model/remote-object-expected.txt:

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