WebKit-https.git
2 years agoRebaseline WebKit1 results after r211006.
joepeck@webkit.org [Mon, 23 Jan 2017 06:21:07 +0000 (06:21 +0000)]
Rebaseline WebKit1 results after r211006.

Unreviewed test gardening.

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

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

2 years ago[Cocoa] Unify FontPlatformData's hashing and equality operators
mmaxfield@apple.com [Mon, 23 Jan 2017 03:52:39 +0000 (03:52 +0000)]
[Cocoa] Unify FontPlatformData's hashing and equality operators
https://bugs.webkit.org/show_bug.cgi?id=167061

Reviewed by Darin Adler.

On iOS, we were using CFEqual() and CFHash(), while on macOS
we were using pointer hashing and pointer equality. Instead,
we should be consistent about these operators.

Right now, FontPlatformData holds two internal CTFontRefs, and
switching to these higher-level CFEqual() and CFHash()
functions is required for eliminating one of these two
internal font objects.

No new tests because there is no behavior change.

* platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::hash): Deleted.
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::hash):
(WebCore::FontPlatformData::platformIsEqual):
(WebCore::cascadeToLastResortAttributesDictionary):
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::hash):
* platform/graphics/win/FontPlatformDataCGWin.cpp:
(WebCore::FontPlatformData::hash):
* platform/graphics/win/FontPlatformDataCairoWin.cpp:
(WebCore::FontPlatformData::hash):
* platform/graphics/win/FontPlatformDataDirect2D.cpp:
(WebCore::FontPlatformData::hash):

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

2 years ago[WebGL] Do not allow GPU muxing on some old Mac hardware
dino@apple.com [Sun, 22 Jan 2017 18:51:09 +0000 (18:51 +0000)]
[WebGL] Do not allow GPU muxing on some old Mac hardware
https://bugs.webkit.org/show_bug.cgi?id=167259
<rdar://problem/30060378>

Reviewed by Simon Fraser and Darin Adler.

Some old Macbook Pro models should never use the
integrated GPU for WebGL, because they are unstable
when swapping between that and the discrete GPU.

Unfortunately this hardware configuration isn't in our
testing infrastructure, so it was confirmed manually.
Meanwhile, our existing tests make sure this patch
doesn't break anything elsewhere.

* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::attachToAppleGraphicsControl): Helper function
to get a mach port that talks to Apple's Graphics Control
system.
(WebCore::hasMuxCapability): Decides whether a system
can do live GPU switching, based on whether or not it
has a muxable GPU, and if that GPU is not the old hardware
we know is problematic.
(WebCore::hasMuxableGPU): Helper to return the static hasMuxCapability value.
(WebCore::setPixelFormat): Only request the integrated card when the
GPU is muxable.

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

2 years agoIntroducing the Platform Abstraction Layer (PAL)
mmaxfield@apple.com [Sun, 22 Jan 2017 17:24:51 +0000 (17:24 +0000)]
Introducing the Platform Abstraction Layer (PAL)
https://bugs.webkit.org/show_bug.cgi?id=143358

Reviewed by Alex Christensen.

.:

* CMakeLists.txt:
* Source/CMakeLists.txt:
* Source/cmake/WebKitFS.cmake:

Source/WebCore:

In order to enforce layering and promote testability, WebCore/platform files
should be compiled in their own project. This new project can enforce layering
and can be tested with unit tests in addition to layout tests.

The name of this new project is the Platform Abstraction Layer, or "PAL."
This comprises of a new directory in WebCore which will be the destination
for files migrated from WebCore/platform. This new folder, and its associated
project, will maintain layering invariants. These invariants are enforced at
build-time by setting the #include path for PAL to not include the rest of
WebCore (which is the same layering enforcement mechanism for WTF). Files will
be migrated into this new target/directory piece-by-piece, and the migration
of a file will be performed as soon as it can be migrated without violating
layering.

Within WebCore, files should include PAL files using the convention
#include <pal/foo.h>. Symbols within PAL are placed within a new top-level
namespace, "PAL," and therefore when used should be referred to as PAL::Foo.

The first set of files to move into the new platform is the crypto/ subdirectory
because it is both simple but also includes platform-dependent files.

No new tests because there is no behavior change.

* CMakeLists.txt:
* Configurations/WebCore.xcconfig: Add PAL to the include path
* PAL/Configurations/Base.xcconfig: Added.
* PAL/Configurations/DebugRelease.xcconfig: Added.
* PAL/Configurations/PAL.xcconfig: Added. Sets up some PAL-specific
variables.
* PAL/Configurations/FeatureDefines.xcconfig: Added.
* PAL/Configurations/Version.xcconfig: Added.
* PAL/PAL.xcodeproj/project.pbxproj: Added. New project file.
* PAL/config.h: Added. Simplified from WebCore/config.h.
* PAL/pal/CMakeLists.txt: Added.
* PAL/pal/PlatformEfl.cmake: Added.
* PAL/pal/PlatformGTK.cmake: Added.
* PAL/pal/PlatformMac.cmake: Added.
* PAL/pal/PlatformWin.cmake: Added.
* PAL/pal/crypto/CryptoDigest.h: Renamed from Source/WebCore/platform/crypto/CryptoDigest.h.
* PAL/pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp: Renamed from Source/WebCore/platform/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp.
* PAL/pal/crypto/gcrypt/CryptoDigestGCrypt.cpp: Renamed from Source/WebCore/platform/crypto/gcrypt/CryptoDigestGCrypt.cpp.
* PAL/pal/crypto/gnutls/CryptoDigestGnuTLS.cpp: Renamed from Source/WebCore/platform/crypto/gnutls/CryptoDigestGnuTLS.cpp.
* PAL/pal/crypto/win/CryptoDigestWin.cpp: Renamed from Source/WebCore/platform/crypto/win/CryptoDigestWin.cpp.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformMac.cmake:
* PlatformWin.cmake:
* WebCore.xcodeproj/project.pbxproj: Create a project link so WebCore
knows that it needs to build PAL as a dependency.
* crypto/algorithms/CryptoAlgorithmSHA1.cpp:
(WebCore::CryptoAlgorithmSHA1::digest): Update #include and namespace.
* crypto/algorithms/CryptoAlgorithmSHA224.cpp:
(WebCore::CryptoAlgorithmSHA224::digest): Ditto.
* crypto/algorithms/CryptoAlgorithmSHA256.cpp:
(WebCore::CryptoAlgorithmSHA256::digest): Ditto.
* crypto/algorithms/CryptoAlgorithmSHA384.cpp:
(WebCore::CryptoAlgorithmSHA384::digest): Ditto.
* crypto/algorithms/CryptoAlgorithmSHA512.cpp:
(WebCore::CryptoAlgorithmSHA512::digest): Ditto.
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::cryptoDigestAlgorithm): Ditto.
(WebCore::signRSASSA_PKCS1_v1_5): Ditto.
(WebCore::verifyRSASSA_PKCS1_v1_5): Ditto.
* inspector/InspectorDOMAgent.cpp:
(WebCore::computeContentSecurityPolicySHA256Hash): Ditto.
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::toCryptoDigestAlgorithm): Ditto.
(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies): Ditto.
* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::HostTLSCertificateSet::computeCertificateHash): Ditto.

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

2 years ago[GStreamer] Clear out m_appsinkCaps in AppendPipeline::appsinkCapsChanged() before...
zandobersek@gmail.com [Sun, 22 Jan 2017 08:29:30 +0000 (08:29 +0000)]
[GStreamer] Clear out m_appsinkCaps in AppendPipeline::appsinkCapsChanged() before using outPtr()
https://bugs.webkit.org/show_bug.cgi?id=167165

Reviewed by Carlos Garcia Campos.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkCapsChanged): Replace the gst_caps_replace() call
with a simple comparison and, in case the current appsink caps differ from the caps
on the sink's pad, move the reference to the latter into the m_appsinkCaps member
variable. This removes the use of GRefPtr<>::outPtr() which asserted in debug
configurations in the case of m_appsinkCaps not being null.

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

2 years agoREGRESSION (r210959): LayoutTest fast/mediastream/MediaStream-video-element-video...
commit-queue@webkit.org [Sun, 22 Jan 2017 06:44:49 +0000 (06:44 +0000)]
REGRESSION (r210959): LayoutTest fast/mediastream/MediaStream-video-element-video-tracks-disabled.html is failing
https://bugs.webkit.org/show_bug.cgi?id=167260

Unreviewed test gardening.

Since this test checks against a black frame as its expected output, we need to use the legacy
media controls so that there is no start button.

Patch by Antoine Quint <graouts@apple.com> on 2017-01-21

* fast/mediastream/MediaStream-video-element-video-tracks-disabled.html:
* platform/mac-wk2/TestExpectations:

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

2 years agoJavaScript for-of does not work on a lot of collection types (e.g. HTMLCollection)
cdumez@apple.com [Sun, 22 Jan 2017 05:48:28 +0000 (05:48 +0000)]
JavaScript for-of does not work on a lot of collection types (e.g. HTMLCollection)
https://bugs.webkit.org/show_bug.cgi?id=167091

Reviewed by Darin Adler.

Source/JavaScriptCore:

Update Array methods to throw a TypeError when (this === null || this === undefined)
instead of when (this == null). This is because (this == null) returns true for types
that masquerades as undefined (such as document.all) and this prevented use of the
Array API on such types. The specification only stays to use ToObject(), which throws
when the input is undefined or null.

The corresponding specification is at:
- https://www.ecma-international.org/ecma-262/7.0/index.html#sec-array.prototype.values
- https://www.ecma-international.org/ecma-262/7.0/index.html#sec-toobject

* builtins/ArrayPrototype.js:
(values):
(keys):
(entries):
(reduce):
(reduceRight):
(every):
(forEach):
(filter):
(map):
(some):
(fill):
(find):
(findIndex):
(includes):
(sort):
(concatSlowPath):
(copyWithin):

Source/WebCore:

As per the Web IDL specification [1], https://heycam.github.io/webidl/#es-iterator
an interface should get an iterator if it has:
- an indexed property getter and an integer-typed attribute named "length".

We now comply with this part of the Web IDL specification. This adds an iterator
to the following interfaces:
- AudioTrackList, ClientRectList, CSSRuleList, CSSStyleDeclaration, CSSValueList,
  MimeTypeArray, WebKitNamedFlowCollection, Plugin, PluginArray, DOMStringList,
  FileList, HTMLAllCollection, HTMLCollection, HTMLFormElement, HTMLOptionsCollection,
  HTMLSelectElement, MediaList, NamedNodeMap, SourceBufferList, StyleSheetList,
  TextTrackCueList, TextTrackList, TouchList, VideoTrackList, VTTRegionList.

As a result, it is now possible to use `for ... of` for those types.

Tests: fast/dom/FileList-iterator.html
       fast/dom/collection-iterators.html
       fast/dom/document-all-undefined.html
       fast/events/touch/ios/touchlist-iterator.html

* bindings/scripts/CodeGeneratorJS.pm:
(GetAttributeWithName):
(InterfaceNeedsIterator):
(GenerateImplementation):
(addIterableProperties):

LayoutTests:

* fast/dom/FileList-iterator-expected.txt: Added.
* fast/dom/FileList-iterator.html: Added.
* fast/dom/collection-iterators-expected.txt: Added.
* fast/dom/collection-iterators.html: Added.
* fast/events/touch/ios/touchlist-iterator-expected.txt: Added.
* fast/events/touch/ios/touchlist-iterator.html: Added.
Add layout test coverage for all types that gained an iterator.

* fast/dom/document-all-undefined-expected.txt: Added.
* fast/dom/document-all-undefined.html: Added.
Add layout test to cover the fact that HTMLAllCollection masquerades as
undefined, as per:
- https://html.spec.whatwg.org/multipage/obsolete.html#dom-document-all

* inspector/model/remote-object-get-properties-expected.txt:
Rebaseline now that there is an extra Symbol.iterator property.

* platform/wk2/TestExpectations:
Skip that requires beginDragWithFiles() as this is unimplemented in
WebKitTestRunner.

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

2 years agoinnerText should replace existing text node
cdumez@apple.com [Sun, 22 Jan 2017 05:19:17 +0000 (05:19 +0000)]
innerText should replace existing text node
https://bugs.webkit.org/show_bug.cgi?id=167116

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline existing test now that one more check is passing.

* web-platform-tests/innerText/setter-expected.txt:

Source/WebCore:

Update setInnerText() to use ContainerNode::replaceAllChildren()
instead of replaceChildrenWithText(). replaceAllChildren() is
implemented as per specification:
- https://html.spec.whatwg.org/multipage/dom.html#the-innertext-idl-attribute
- https://dom.spec.whatwg.org/#concept-node-replace-all

As a result, we now correctly remove existing children before
inserting the new one.

No new tests, updated existing one.

* editing/markup.cpp:
(WebCore::replaceChildrenWithText): Deleted.
* editing/markup.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setInnerText):

LayoutTests:

* accessibility/mac/aria-liveregions-changedtext.html:
The text is using innerText and changed behavior now that we stopped
reusing the existing Text child. Code in RenderObject::willBeDestroyed()
is supposed to call AXObjectCache::childrenChanged(parent()) to fire
the AXLiveRegionChanged notification. However, it did not because the
parent renderer did not have an associated AccessibilityObject.

* fast/dom/HTMLElement/set-inner-outer-optimization.html:
Update existing test which expected the non spec-compliant Text child
optimization.

* fast/repaint/vertical-text-repaint-expected.txt:
* fast/repaint/vertical-text-repaint.html:
Update / rebaseline test. We now repaint each 80x80 rectangle instead of
only repainting the text rects because we remove the Text node then add
a new one instead of only updating the existing Text node's test. The
output looks exactly the same otherwise.

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

2 years agoAccessibilityRenderObject::textChanged() bypasses AXLiveRegionChanged notification...
cdumez@apple.com [Sun, 22 Jan 2017 02:29:15 +0000 (02:29 +0000)]
AccessibilityRenderObject::textChanged() bypasses AXLiveRegionChanged notification coalescing
https://bugs.webkit.org/show_bug.cgi?id=167286
<rdar://problem/30133211>

Reviewed by Ryosuke Niwa.

Source/WebCore:

AccessibilityRenderObject::textChanged() bypasses AXLiveRegionChanged notification
coalescing. This patch fixes the issue.

No new tests, updated existing test.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textChanged):

LayoutTests:

Update test to use a longer timer delay. When using this longer delay, we were getting 4
AXLiveRegionChanged notifications instead of the expected 2 because
AccessibilityRenderObject::textChanged() was bypassing AXLiveRegionChanged notification
coalescing.

* accessibility/mac/aria-multiple-liveregions-notification-expected.txt:
* accessibility/mac/aria-multiple-liveregions-notification.html:

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

2 years agoRemove -[WebFrame sendOrientationChangeEvent:] which is unused
simon.fraser@apple.com [Sun, 22 Jan 2017 02:16:33 +0000 (02:16 +0000)]
Remove -[WebFrame sendOrientationChangeEvent:] which is unused
https://bugs.webkit.org/show_bug.cgi?id=167276

Reviewed by Alex Christensen.

It was usurped by -deviceOrientationChanged in 2014.

* WebView/WebFrame.mm:
(-[WebFrame sendOrientationChangeEvent:]): Deleted.
* WebView/WebFramePrivate.h:

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

2 years agoRemove -[WebView _contentsSizeRespectingOverflow] which is no longer needed
simon.fraser@apple.com [Sun, 22 Jan 2017 01:52:24 +0000 (01:52 +0000)]
Remove -[WebView _contentsSizeRespectingOverflow] which is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=167271

Reviewed by Alex Christensen.

-_contentsSizeRespectingOverflow was added to try to make viewport sizing on iOS respect
overflow:hidden on the body (webkit.org/b/146924) but that was reverted (webkit.org/b/152803),

* WebView/WebView.mm:
(-[WebView _contentsSizeRespectingOverflow]): Deleted.
* WebView/WebViewPrivate.h:

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

2 years agoRemove the unused -[WebFixedPositionContent minimumOffsetFromFixedPositionLayersToAnc...
simon.fraser@apple.com [Sun, 22 Jan 2017 01:52:04 +0000 (01:52 +0000)]
Remove the unused -[WebFixedPositionContent minimumOffsetFromFixedPositionLayersToAnchorEdge:ofRect:inLayer:]
https://bugs.webkit.org/show_bug.cgi?id=167273

Reviewed by Alex Christensen.

This function was added for an experiment, but is no longer used, so remove it.

* WebCoreSupport/WebFixedPositionContent.h:
* WebCoreSupport/WebFixedPositionContent.mm:
(anchorEdgeFlagsForAnchorEdge): Deleted.
(-[WebFixedPositionContent minimumOffsetFromFixedPositionLayersToAnchorEdge:ofRect:inLayer:]): Deleted.

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

2 years ago[JSC] export JSC::importModule API for WebCore dynamic import
utatane.tea@gmail.com [Sat, 21 Jan 2017 22:22:54 +0000 (22:22 +0000)]
[JSC] export JSC::importModule API for WebCore dynamic import
https://bugs.webkit.org/show_bug.cgi?id=167099

Reviewed by Darin Adler.

We newly expose JSC::importModule API. This can be used later
from WebCore to implement WebCore side dynamic import.
And JSC shell also uses this API.

And this patch also cleans up module loader a bit:
Dropping requestInstantiateAll.

* builtins/BuiltinNames.h:
* builtins/ModuleLoaderPrototype.js:
(requestLink):
(requestImportModule):
(requestInstantiateAll): Deleted.
(importModule): Deleted.
* jsc.cpp:
(GlobalObject::moduleLoaderImportModule):
* runtime/Completion.cpp:
(JSC::importModule):
* runtime/Completion.h:
* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::requestImportModule):
* runtime/JSModuleLoader.h:
* runtime/ModuleLoaderPrototype.cpp:

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

2 years agodynamic import is ambiguous with import declaration at module code
utatane.tea@gmail.com [Sat, 21 Jan 2017 22:10:54 +0000 (22:10 +0000)]
dynamic import is ambiguous with import declaration at module code
https://bugs.webkit.org/show_bug.cgi?id=167098

Reviewed by Darin Adler.

JSTests:

* modules/import-call.js: Added.
(from.string_appeared_here.import.string_appeared_here.then):
* modules/import-call/main.js: Added.
* stress/import-syntax.js:
(async):

Source/JavaScriptCore:

This patch fixes two syntax issues related to dynamic import.

1. Fix member expression parsing with dynamic import results

We should not return import expression immediately after parsing
it in parseMemberExpression. This prohibits us to parse the following
code,

    import("...").then(function () {
    });

2. dynamic import with import declaration under the module context

Before this patch, we always attempt to parse IMPORT as import declaration
under the module context. It means that import call in the top level
expression statement fails to be parsed since the parser attempts to parse
it as import declaration.

    import("...")  // module top level statement.

In this patch, we check the condition `[lookahead != (]` before starting
parsing import declaration. This allows us to put import call in the module
top level statement.

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

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

2 years agoREGRESSION (r210959): LayoutTest inspector/css/pseudo-element-matches.html timing out
commit-queue@webkit.org [Sat, 21 Jan 2017 20:46:29 +0000 (20:46 +0000)]
REGRESSION (r210959): LayoutTest inspector/css/pseudo-element-matches.html timing out
https://bugs.webkit.org/show_bug.cgi?id=167246

Unreviewed test gardening.

This test expects elements with legacy media controls pseudo classes so we turn off
modern media controls for it and stop expecting a timeout.

Patch by Antoine Quint <graouts@apple.com> on 2017-01-21

* inspector/css/pseudo-element-matches.html:
* platform/mac/TestExpectations:

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

2 years agoUnreviewed. Bring back gtk-doc error messages after r209981.
carlosgc@webkit.org [Sat, 21 Jan 2017 10:21:33 +0000 (10:21 +0000)]
Unreviewed. Bring back gtk-doc error messages after r209981.

Since r209981, if gtk-doc shows warnings the build fails but those warnings are not printed to stdout so it's
impossible to know what's wrong.

* gtk/gtkdoc.py:
(GTKDoc._run_command): Make print_output True by default again and use debug instead of info to log "Running" messages.

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

2 years agoUnreviewed, rolling out r211012.
carlosgc@webkit.org [Sat, 21 Jan 2017 09:22:39 +0000 (09:22 +0000)]
Unreviewed, rolling out r211012.

It caused a lot of crashes in the network process

Reverted changeset:

"[SOUP] Custom protocols don't work in private browsing mode"
https://bugs.webkit.org/show_bug.cgi?id=167236
http://trac.webkit.org/changeset/211012

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

2 years agoRemove never changing IndexedDB RuntimeEnabledFeature
commit-queue@webkit.org [Sat, 21 Jan 2017 07:52:20 +0000 (07:52 +0000)]
Remove never changing IndexedDB RuntimeEnabledFeature
https://bugs.webkit.org/show_bug.cgi?id=167278

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

Source/WebCore:

This RuntimeEnabledFeature flag is always true and there are
no existing ways to change it. So lets just remove it.

* Modules/indexeddb/DOMWindowIndexedDatabase.idl:
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBCursorWithValue.idl:
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBKeyRange.idl:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/indexeddb/IDBOpenDBRequest.idl:
* Modules/indexeddb/IDBRequest.idl:
* Modules/indexeddb/IDBTransaction.idl:
* Modules/indexeddb/IDBVersionChangeEvent.idl:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setIndexedDBEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::indexedDBEnabled): Deleted.

Source/WebKit/mac:

* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit/win:

* WebView.cpp:
(WebView::notifyPreferencesChanged):

Source/WebKit2:

* WebProcess/WebProcess.cpp:
(WebKit::m_resourceLoadStatisticsStorage):

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

2 years ago[SOUP] Custom protocols don't work in private browsing mode
carlosgc@webkit.org [Sat, 21 Jan 2017 07:40:19 +0000 (07:40 +0000)]
[SOUP] Custom protocols don't work in private browsing mode
https://bugs.webkit.org/show_bug.cgi?id=167236

Reviewed by Sergio Villar Senin.

Source/WebCore:

Add static method to set the global custom protocols request type and setup method to add the feature to the session.

* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::SoupNetworkSession):
(WebCore::SoupNetworkSession::setCustomProtocolRequestType):
(WebCore::SoupNetworkSession::setupCustomProtocols):
* platform/network/soup/SoupNetworkSession.h:

Source/WebKit2:

We only register them in the default session.

* NetworkProcess/CustomProtocols/soup/CustomProtocolManagerSoup.cpp:
(WebKit::CustomProtocolManager::registerProtocolClass): Set the WEBKIT_TYPE_SOUP_REQUEST_GENERIC as type for
custom protocols, and setup custom protocols in all existing sessions.
(WebKit::CustomProtocolManager::registerScheme): Use g_type_class_peek instead of g_type_class_ref since we know
the class was already created in registerProtocolClass().

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

2 years agoUnreviewed, rebaseline html/dom/interfaces.html.
cdumez@apple.com [Sat, 21 Jan 2017 06:36:25 +0000 (06:36 +0000)]
Unreviewed, rebaseline html/dom/interfaces.html.

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

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

2 years agoWeb Inspector: Search Tab should display search results immediately when closing...
commit-queue@webkit.org [Sat, 21 Jan 2017 04:51:39 +0000 (04:51 +0000)]
Web Inspector: Search Tab should display search results immediately when closing and reopening Inspector
https://bugs.webkit.org/show_bug.cgi?id=167073

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2017-01-20
Reviewed by Timothy Hatcher.

* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.focusSearchField):
Add parameter that will trigger a search with the current input value when true.

* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView):
(WebInspector.SearchTabContentView.prototype.focusSearchField):
(WebInspector.SearchTabContentView.prototype.initialLayout):

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

2 years ago[WebRTC] Update build system to make G711 optional in libwebrtc
commit-queue@webkit.org [Sat, 21 Jan 2017 02:36:03 +0000 (02:36 +0000)]
[WebRTC] Update build system to make G711 optional in libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=167256

Patch by Youenn Fablet <youennf@gmail.com> on 2017-01-20
Reviewed by Alex Christensen.

Source/ThirdParty/libwebrtc:

* CMakeLists.txt: Updating to add compilation of generic pcm encoder functions.

Tools:

* Scripts/webkitpy/libwebrtc/generate_cmake.py:
(CMakeGenerator.remove_webrtc_g711): Adding a missing file to the build system as this file includes generic pcm encoder functions.

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

2 years agoRecord whether a media element was prevented from playing without user interaction
commit-queue@webkit.org [Sat, 21 Jan 2017 02:31:33 +0000 (02:31 +0000)]
Record whether a media element was prevented from playing without user interaction
https://bugs.webkit.org/show_bug.cgi?id=167214

Patch by Matt Rajca <mrajca@apple.com> on 2017-01-20
Reviewed by Eric Carlson.

This state will be used to notify clients when a user explicitly starts playback
of a media element that was prevented from autoplaying.

Tests will be added after a WebKit callback API is added.

* WebCore.xcodeproj/project.pbxproj:
* dom/SuccessOr.h: Added.
(WebCore::SuccessOr::SuccessOr):
(WebCore::SuccessOr::operator bool):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canTransitionFromAutoplayToPlay):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::playInternal):
* html/HTMLMediaElement.h:
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackPermitted):
* html/MediaElementSession.h:

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

2 years agoRequire a button press on a gamepad for them to be exposed to the DOM.
beidson@apple.com [Sat, 21 Jan 2017 02:24:17 +0000 (02:24 +0000)]
Require a button press on a gamepad for them to be exposed to the DOM.
<rdar://problem/28620919> and https://bugs.webkit.org/show_bug.cgi?id=167272

Reviewed by Alex Christensen.

Source/WebCore:

Test: gamepad/gamepad-visibility-1.html

* Modules/gamepad/GamepadManager.cpp:
(WebCore::GamepadManager::platformGamepadInputActivity):
* Modules/gamepad/GamepadManager.h:

* platform/gamepad/GamepadProvider.cpp:
(WebCore::GamepadProvider::dispatchPlatformGamepadInputActivity):
* platform/gamepad/GamepadProvider.h:
(WebCore::GamepadProvider::~GamepadProvider): Deleted.
(WebCore::GamepadProvider::isMockGamepadProvider): Deleted.

* platform/gamepad/GamepadProviderClient.h:

* platform/gamepad/cocoa/GameControllerGamepad.h:
* platform/gamepad/cocoa/GameControllerGamepad.mm:
(WebCore::GameControllerGamepad::setupAsExtendedGamepad):
(WebCore::GameControllerGamepad::setupAsGamepad):

* platform/gamepad/cocoa/GameControllerGamepadProvider.h:
* platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
(WebCore::GameControllerGamepadProvider::gamepadHadInput):
(WebCore::GameControllerGamepadProvider::inputNotificationTimerFired):

* platform/gamepad/mac/HIDGamepad.cpp:
(WebCore::HIDGamepad::valueChanged):
* platform/gamepad/mac/HIDGamepad.h:

* platform/gamepad/mac/HIDGamepadProvider.cpp:
(WebCore::HIDGamepadProvider::valuesChanged):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):
* platform/gamepad/mac/HIDGamepadProvider.h:

* testing/MockGamepadProvider.cpp:
(WebCore::MockGamepadProvider::setMockGamepadButtonValue):
(WebCore::MockGamepadProvider::gamepadInputActivity):
* testing/MockGamepadProvider.h:

Source/WebKit2:

* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::gamepadSyncTimerFired):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
* UIProcess/Gamepad/UIGamepadProvider.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::gamepadActivity):
* UIProcess/WebPageProxy.h:

* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::gamepadActivity):
* WebProcess/Gamepad/WebGamepadProvider.h:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::gamepadActivity):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

LayoutTests:

* gamepad/gamepad-visibility-1-expected.txt: Added.
* gamepad/gamepad-visibility-1.html: Added.

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

2 years agoCleanup RuntimeEnabledFeatures
joepeck@webkit.org [Sat, 21 Jan 2017 02:23:47 +0000 (02:23 +0000)]
Cleanup RuntimeEnabledFeatures
https://bugs.webkit.org/show_bug.cgi?id=167228

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

* web-platform-tests/resource-timing/resource_cached-expected.txt:
* web-platform-tests/resource-timing/resource_connection_reuse-expected.txt:
* web-platform-tests/resource-timing/resource_dynamic_insertion-expected.txt:
The previous internals API didn't appear to be working. Making it work
improved these results.

Source/WebCore:

RuntimeEnabledFeatures::reset() is bad for tests. It was getting called
after the TestRunners had set up all the Settings and RuntimeEnabledFeatures
they expected, so it was clearing the "consistent state" set by TestRunners.

Cleanup within RuntimeEnabledFeatures:

  - Initialize all members.
  - Remove unused features.
  - Remove reset() no longer used.
  - Document features that do not change (potentially removable).
  - Document features that are not used but have APIs (use or remove later).
  - Drop webkit prefix for these internal only apis.
  - Move things around a bit to make it more readable.
  - Enable the Fetch API by default (WebKit levels all were enabling it).

Cleanup within Internals:

  - Move all RuntimeEnabledFeature toggling to InternalSettings
  - Save and restore these RuntimeEnabledFeatures in InternalSettings

* Modules/mediastream/MediaStreamEvent.idl:
* Modules/mediastream/NavigatorMediaDevices.idl:
* Modules/mediastream/NavigatorUserMedia.idl:
* Modules/mediastream/RTCDTMFToneChangeEvent.idl:
* Modules/mediastream/RTCIceCandidate.idl:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCRtpReceiver.idl:
* Modules/mediastream/RTCRtpSender.idl:
* Modules/mediastream/RTCRtpTransceiver.idl:
* Modules/mediastream/RTCSessionDescription.idl:
* Modules/mediastream/RTCTrackEvent.idl:
Canonical usage is to start with a capital letter.

* dom/EventNames.in:
No port has API/SPI to disable this feature at runtime and the default is
to have the feature enabled, so this is no different from the runtime flag.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
These features were always enabled and not toggleable. So drop the runtime
feature check.

* page/csp/ContentSecurityPolicy.h:
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::experimentalFeaturesEnabled): Deleted.
Nobody calls this method. Drop it.

* page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::reset):
(WebCore::RuntimeEnabledFeatures::javaScriptI18NAPIEnabled): Deleted.
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::langAttributeAwareFormControlUIEnabled):
(WebCore::RuntimeEnabledFeatures::setLangAttributeAwareFormControlUIEnabled):
(WebCore::RuntimeEnabledFeatures::setLinkPreloadEnabled):
(WebCore::RuntimeEnabledFeatures::linkPreloadEnabled):
(WebCore::RuntimeEnabledFeatures::setResourceTimingEnabled):
(WebCore::RuntimeEnabledFeatures::resourceTimingEnabled):
(WebCore::RuntimeEnabledFeatures::setShadowDOMEnabled):
(WebCore::RuntimeEnabledFeatures::shadowDOMEnabled):
(WebCore::RuntimeEnabledFeatures::setInputEventsEnabled):
(WebCore::RuntimeEnabledFeatures::inputEventsEnabled):
(WebCore::RuntimeEnabledFeatures::setInteractiveFormValidationEnabled):
(WebCore::RuntimeEnabledFeatures::interactiveFormValidationEnabled):
(WebCore::RuntimeEnabledFeatures::setCustomElementsEnabled):
(WebCore::RuntimeEnabledFeatures::customElementsEnabled):
(WebCore::RuntimeEnabledFeatures::setModernMediaControlsEnabled):
(WebCore::RuntimeEnabledFeatures::modernMediaControlsEnabled):
(WebCore::RuntimeEnabledFeatures::setIndexedDBEnabled):
(WebCore::RuntimeEnabledFeatures::fontLoadEventsEnabled):
(WebCore::RuntimeEnabledFeatures::setMediaStreamEnabled):
(WebCore::RuntimeEnabledFeatures::setPeerConnectionEnabled):
(WebCore::RuntimeEnabledFeatures::setLocalStorageEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::localStorageEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setSessionStorageEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::sessionStorageEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebkitNotificationsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitNotificationsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setApplicationCacheEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::applicationCacheEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setDataTransferItemsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::dataTransferItemsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebkitIndexedDBEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitIndexedDBEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::touchEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setTouchEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setDeviceMotionEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::deviceMotionEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::deviceMotionEventEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::ondevicemotionEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setDeviceOrientationEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::deviceOrientationEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::deviceOrientationEventEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::ondeviceorientationEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setJavaScriptI18NAPIEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitGetUserMediaEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitMediaStreamEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitRTCPeerConnectionEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::experimentalContentSecurityPolicyFeaturesEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setExperimentalContentSecurityPolicyFeaturesEnabled): Deleted.

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
(WebCore::InternalSettings::setResourceTimingEnabled):
(WebCore::InternalSettings::setLinkPreloadEnabled):
(WebCore::InternalSettings::setCSSGridLayoutEnabled):
(WebCore::InternalSettings::setWebGL2Enabled):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
* testing/Internals.cpp:
(WebCore::Internals::Internals):
(WebCore::Internals::setLinkPreloadSupport): Deleted.
(WebCore::Internals::setCSSGridLayoutEnabled): Deleted.
(WebCore::Internals::webGL2Enabled): Deleted.
(WebCore::Internals::setWebGL2Enabled): Deleted.
(WebCore::Internals::setResourceTimingSupport): Deleted.
* testing/Internals.h:
* testing/Internals.idl:
Move toggling of RuntimeEnabledFeatures to InternalSettings and
properly remember to save and restore them in Internals.

Source/WebKit/mac:

* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit/win:

* WebView.cpp:
(WebView::notifyPreferencesChanged):

Source/WebKit2:

* WebProcess/WebProcess.cpp:
(WebKit::m_resourceLoadStatisticsStorage):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
(setWebPreferencesForTestOptions):
(resetWebViewToConsistentStateBeforeTesting):
* DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
More closely match WebKitTestRunner initialization of preferences
for experimental features.

LayoutTests:

Update tests that toggle runtime enabled features to use
consistently named internals.settings.setFooEnabled setters.

* css3/flexbox/flexbox-lines-must-be-stretched-by-default.html:
* css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled.html:
* fast/canvas/webgl/bufferData-offset-length.html:
* fast/canvas/webgl/copyBufferSubData.html:
* fast/canvas/webgl/getBufferSubData-webgl1.html:
* fast/canvas/webgl/webgl2-buffer-targets.html:
* fast/canvas/webgl/webgl2-buffers.html:
* fast/canvas/webgl/webgl2-context-creation.html:
* fast/canvas/webgl/webgl2-runtime-flag.html:
* fast/canvas/webgl/webgl2-texStorage.html:
* fast/canvas/webgl/webgl2-texture-upload-enums.html:
* fast/css-grid-layout/grid-disable.html:
* fast/css/ensure-flexbox-compatibility-with-initial-values.html:
* fast/dom/Window/window-properties-performance-resource-timing.html:
* http/tests/fetch/redirectmode-and-preload.html:
* http/tests/misc/resource-timing-resolution.html:
* http/tests/performance/performance-resource-timing-cached-entries.html:
* http/tests/performance/performance-resource-timing-entries-iterable.html:
* http/tests/performance/performance-resource-timing-entries.html:
* http/tests/performance/performance-resource-timing-initiator-css.html:
* http/tests/performance/performance-resource-timing-initiator-no-override.html:
* http/tests/performance/performance-resource-timing-xhr-single-entry.html:
* http/tests/preload/delaying_onload_link_preload_after_discovery.html:
* http/tests/preload/delaying_onload_link_preload_after_discovery_image.html:
* http/tests/preload/download_resources.html:
* http/tests/preload/download_resources_from_header_iframe.html:
* http/tests/preload/download_resources_from_invalid_headers.html:
* http/tests/preload/dynamic_adding_preload.html:
* http/tests/preload/dynamic_remove_preload_href.html:
* http/tests/preload/not_delaying_window_onload_before_discovery.html:
* http/tests/preload/onerror_event.html:
* http/tests/preload/onload_event.html:
* http/tests/preload/resources/download_resources_from_header.php:
* http/tests/preload/resources/invalid_resources_from_header.php:
* http/tests/preload/single_download_preload_runner.html:
* http/tests/security/cached-cross-origin-preloading-css-stylesheet.html:
* resources/testharnessreport.js:

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

2 years ago[WebRTC] Update libwertc AudioRtpSender::SetAudioSend
commit-queue@webkit.org [Sat, 21 Jan 2017 01:21:11 +0000 (01:21 +0000)]
[WebRTC] Update libwertc AudioRtpSender::SetAudioSend
https://bugs.webkit.org/show_bug.cgi?id=167243

Patch by Youenn Fablet <youennf@gmail.com> on 2017-01-20
Reviewed by Alex Christensen.

Introducing  WEBRTC_WEBKIT_BUILD macro to match existing WEBRTC_CHROMIUM_BUILD.
WEBRTC_WEBKIT_BUILD is defined by current WebKit libwebrtc build system.

* Source/webrtc/api/rtpsender.cc:

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

2 years agoREGRESSION (r210941): LayoutTest scrollingcoordinator/ios/sync-layer-positions-after...
megan_gardner@apple.com [Sat, 21 Jan 2017 01:05:45 +0000 (01:05 +0000)]
REGRESSION (r210941): LayoutTest scrollingcoordinator/ios/sync-layer-positions-after-scroll.html failing
https://bugs.webkit.org/show_bug.cgi?id=167262

Updating Tests to comply with change in bug 167171.
Change is correct, but causes the results for this test to be different.

Unreviewed test gardening.

* scrollingcoordinator/ios/sync-layer-positions-after-scroll-expected.txt:

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

2 years agoAdd debugging code to compare URLParser with URL::parse
achristensen@apple.com [Sat, 21 Jan 2017 00:44:48 +0000 (00:44 +0000)]
Add debugging code to compare URLParser with URL::parse
https://bugs.webkit.org/show_bug.cgi?id=167267

Reviewed by Brady Eidson.

* platform/URLParser.cpp:
(WebCore::URLParser::URLParser):
(WebCore::URLParser::parse):

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

2 years agoMarking media/modern-media-controls/media-controller/media-controller-auto-hide-mouse...
ryanhaddad@apple.com [Sat, 21 Jan 2017 00:35:51 +0000 (00:35 +0000)]
Marking media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-over-controls-bar.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=167266

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years agoMarking inspector/network/client-blocked-load.html as a flaky timeout.
ryanhaddad@apple.com [Sat, 21 Jan 2017 00:28:14 +0000 (00:28 +0000)]
Marking inspector/network/client-blocked-load.html as a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=167265

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 years agoUnreviewed, rolling out r210778.
ryanhaddad@apple.com [Sat, 21 Jan 2017 00:21:29 +0000 (00:21 +0000)]
Unreviewed, rolling out r210778.

This change caused multiple LayoutTests to crash.

Reverted changeset:

"[Cocoa] Unify FontPlatformData's hashing and equality
operators"
https://bugs.webkit.org/show_bug.cgi?id=167061
http://trac.webkit.org/changeset/210778

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

2 years agoMarking media/modern-media-controls/pip-support/pip-support-enabled.html as crashing...
ryanhaddad@apple.com [Sat, 21 Jan 2017 00:08:03 +0000 (00:08 +0000)]
Marking media/modern-media-controls/pip-support/pip-support-enabled.html as crashing on macOS WK1.
https://bugs.webkit.org/show_bug.cgi?id=164336

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

2 years agoMore media test gardening.
ryanhaddad@apple.com [Sat, 21 Jan 2017 00:00:37 +0000 (00:00 +0000)]
More media test gardening.

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:

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

2 years agoBuild Fix for Windows DumpRenderTree after r210976
achristensen@apple.com [Fri, 20 Jan 2017 23:33:23 +0000 (23:33 +0000)]
Build Fix for Windows DumpRenderTree after r210976
https://bugs.webkit.org/show_bug.cgi?id=167115

Source/WebKit/win:

* WebPreferences.h:
Remove extra space.
* IWebPreferencesPrivate.idl:
Add new interface functions.
* WebView.cpp:
We use new functions that are only in IWebPreferencesPrivate4,
so instantiate that COM object instead of version 3.

Tools:

* DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):

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

2 years agoRemove outdated ENABLE(CSP_NEXT) build flag
commit-queue@webkit.org [Fri, 20 Jan 2017 23:23:56 +0000 (23:23 +0000)]
Remove outdated ENABLE(CSP_NEXT) build flag
https://bugs.webkit.org/show_bug.cgi?id=167252

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-01-20
Reviewed by Brent Fulgham.

.:

* Source/cmake/OptionsMac.cmake:
* Source/cmake/OptionsWin.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmake/tools/vsprops/FeatureDefines.props:
* Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:
* dom/Document.idl:
* page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::reset):
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::experimentalContentSecurityPolicyFeaturesEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setExperimentalContentSecurityPolicyFeaturesEnabled): Deleted.
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::experimentalFeaturesEnabled): Deleted.
* page/csp/ContentSecurityPolicy.h:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

* wtf/FeatureDefines.h:

Tools:

* Scripts/webkitperl/FeatureList.pm:
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

* fast/dom/event-handler-attributes.html:
* http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics.html:

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

2 years agoBuild Fix for Windows DumpRenderTree after r210976
joepeck@webkit.org [Fri, 20 Jan 2017 22:54:49 +0000 (22:54 +0000)]
Build Fix for Windows DumpRenderTree after r210976

Source/WebKit/win:

* WebPreferenceKeysPrivate.h:
* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::setWebAnimationsEnabled):
(WebPreferences::webAnimationsEnabled):
* WebPreferences.h:
* WebView.cpp:
Add toggle APIs for WebAnimations.

Tools:

* DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):

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

2 years agoCleaning up TestExpectations for inspector/css/pseudo-element-matches.html.
ryanhaddad@apple.com [Fri, 20 Jan 2017 22:53:19 +0000 (22:53 +0000)]
Cleaning up TestExpectations for inspector/css/pseudo-element-matches.html.

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:

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

2 years agoMarking media/modern-media-controls/audio/audio-controls-metrics.html as failing...
ryanhaddad@apple.com [Fri, 20 Jan 2017 22:48:31 +0000 (22:48 +0000)]
Marking media/modern-media-controls/audio/audio-controls-metrics.html as failing on iOS.
https://bugs.webkit.org/show_bug.cgi?id=167258

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

2 years agoBuild fix after r210783. Didn't mean to require custom elements API.
rniwa@webkit.org [Fri, 20 Jan 2017 22:40:01 +0000 (22:40 +0000)]
Build fix after r210783. Didn't mean to require custom elements API.

* public/v3/main.js:
(main):

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

2 years ago[WebRTC] libwebrtc headers are incompatible with WebKit compilation flags
commit-queue@webkit.org [Fri, 20 Jan 2017 22:30:24 +0000 (22:30 +0000)]
[WebRTC] libwebrtc headers are incompatible with WebKit compilation flags
https://bugs.webkit.org/show_bug.cgi?id=167242

Patch by Youenn Fablet <youenn@apple.com> on 2017-01-20
Reviewed by Alex Christensen.

WebKit is enforcing -Wunused-parameter and -Wunused-variable which conflict with some included libwertc headers.
Removed unused parameter names for inlined functions.

* Source/webrtc/api/jsep.h:
(webrtc::SessionDescriptionInterface::RemoveCandidates):
* Source/webrtc/api/mediastreaminterface.h:
(webrtc::AudioSourceInterface::SetVolume):
(webrtc::AudioSourceInterface::RegisterAudioObserver):
(webrtc::AudioSourceInterface::UnregisterAudioObserver):
(webrtc::AudioSourceInterface::AddSink):
(webrtc::AudioSourceInterface::RemoveSink):
(webrtc::AudioTrackInterface::GetSignalLevel):
* Source/webrtc/api/peerconnectionfactory.h:
* Source/webrtc/api/peerconnectioninterface.h:
(webrtc::MetricsObserverInterface::IncrementEnumCounter):
(webrtc::PeerConnectionInterface::AddTrack):
(webrtc::PeerConnectionInterface::RemoveTrack):
(webrtc::PeerConnectionInterface::CreateSender):
(webrtc::PeerConnectionInterface::GetStats):
(webrtc::PeerConnectionInterface::CreateOffer):
(webrtc::PeerConnectionInterface::CreateAnswer):
(webrtc::PeerConnectionInterface::UpdateIce):
(webrtc::PeerConnectionInterface::SetConfiguration):
(webrtc::PeerConnectionInterface::RemoveIceCandidates):
(webrtc::PeerConnectionInterface::StartRtcEventLog):
(webrtc::PeerConnectionObserver::OnAddStream):
(webrtc::PeerConnectionObserver::OnRemoveStream):
(webrtc::PeerConnectionObserver::OnDataChannel):
(webrtc::PeerConnectionObserver::OnIceCandidatesRemoved):
(webrtc::PeerConnectionObserver::OnIceConnectionReceivingChange):
* Source/webrtc/api/rtpsender.cc:
* Source/webrtc/base/messagehandler.h:
(rtc::FunctorMessageHandler::OnMessage):
* Source/webrtc/base/sanitizer.h:
(rtc_AsanPoison):
(rtc_AsanUnpoison):
(rtc_MsanMarkUninitialized):
(rtc_MsanCheckInitialized):
* Source/webrtc/base/stream.h:
(rtc::StreamInterface::ConsumeReadData):
(rtc::StreamInterface::ConsumeWriteBuffer):
* Source/webrtc/media/base/mediachannel.h:
(cricket::DataMediaChannel::GetStats):
(cricket::DataMediaChannel::OnNetworkRouteChanged):
* Source/webrtc/media/engine/webrtcvideodecoderfactory.h:
(cricket::WebRtcVideoDecoderFactory::CreateVideoDecoderWithParams):
* Source/webrtc/media/engine/webrtcvideoencoderfactory.h:
(cricket::WebRtcVideoEncoderFactory::VideoCodec::VideoCodec):
(cricket::WebRtcVideoEncoderFactory::EncoderTypeHasInternalSource):
* Source/webrtc/media/engine/webrtcvideoengine2.cc:
* Source/webrtc/modules/include/module.h:
(webrtc::Module::ProcessThreadAttached):
* Source/webrtc/modules/video_coding/codecs/vp9/vp9_noop.cc:
* Source/webrtc/p2p/base/port.h:
(cricket::Port::HandleIncomingPacket):
(cricket::Port::HandleConnectionDestroyed):
(cricket::Connection::set_receiving_timeout):
* Source/webrtc/p2p/base/stun.h:
(cricket::StunAttribute::SetOwner):
* Source/webrtc/p2p/base/stunrequest.h:
(cricket::StunRequest::Prepare):
(cricket::StunRequest::OnResponse):
(cricket::StunRequest::OnErrorResponse):
* Source/webrtc/p2p/base/transport.h:
(cricket::Transport::SetLocalCertificate):
(cricket::Transport::GetLocalCertificate):
(cricket::Transport::GetSslRole):
(cricket::Transport::SetSslMaxProtocolVersion):
* Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc:
* Source/webrtc/typedefs.h:

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

2 years agoMarking media/modern-media-controls/media-controller/media-controller-auto-hide-mouse...
ryanhaddad@apple.com [Fri, 20 Jan 2017 22:19:40 +0000 (22:19 +0000)]
Marking media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-leave-after-play.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=167254

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 years agoSimple line layout: Add support for non-breaking space character.
zalan@apple.com [Fri, 20 Jan 2017 22:12:02 +0000 (22:12 +0000)]
Simple line layout: Add support for non-breaking space character.
https://bugs.webkit.org/show_bug.cgi?id=167250
<rdar://problem/30119638>

Reviewed by Antti Koivisto.
Source/WebCore:

Do not bail out on noBreakSpace character.
The line breaking logic already takes noBreakSpace characters into account.
(except the peculiar "-webkit-nbsp-mode: space" mode)

Covered by existing test cases.

* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForText):
(WebCore::SimpleLineLayout::canUseForStyle):
(WebCore::SimpleLineLayout::printReason):

LayoutTests:

These are output progressions (they do not reflect changes in functionality).

* fast/block/float/br-with-clear-2-expected.txt:
* platform/mac/css1/text_properties/text_transform-expected.txt:
* platform/mac/tables/mozilla/bugs/bug4427-expected.txt:

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

2 years agoMarking macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-conta...
ryanhaddad@apple.com [Fri, 20 Jan 2017 22:07:28 +0000 (22:07 +0000)]
Marking macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html as flaky on mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=167253

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

2 years agoMarking inspector/css/pseudo-element-matches.html as a timeout on macOS.
ryanhaddad@apple.com [Fri, 20 Jan 2017 22:07:26 +0000 (22:07 +0000)]
Marking inspector/css/pseudo-element-matches.html as a timeout on macOS.
https://bugs.webkit.org/show_bug.cgi?id=167246

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 years agoMake sync-commits.py robust against missing Subversion authors and missing parent...
rniwa@webkit.org [Fri, 20 Jan 2017 22:04:23 +0000 (22:04 +0000)]
Make sync-commits.py robust against missing Subversion authors and missing parent Git commits
https://bugs.webkit.org/show_bug.cgi?id=167231

Reviewed by Antti Koivisto.

Fixed a bug that a subversion commit that's missing author name (anonymous commit) results in an out of bound
exception, and a bug that syncing a git repository starts failing once there was a merge commit which pulled
in a commit data earlier than that of the last reported commit.

For the latter fix, added --max-ancestor-fetch-count to specify the number of maximum commits to look back.

* tools/sync-commits.py:
(main): Added --max-ancestor-fetch-count.
(Repository.fetch_commits_and_submit): If submit_commits fails with FailedToFindParentCommit, fetch the parent
commit's information until we've resolved them all.
(Repository.fetch_next_commit): Renamed from fetch_commit.
(SVNRepository.fetch_next_commit): Renamed from fetch_commit. Don't try to get the author name if it's missing
due to an anonymous commit. It's important to never include the "author" field in the JSON submitted to
a dashboard since it rejects when "author" field is not an array (e.g. null).
(GitRepository.fetch_next_commit): Renamed from fetch_commit.
(GitRepository.fetch_commit): Added. Fetches the commit information for a given git hash. Used to retrieve
missing parent commits.
(GitRepository._revision_from_tokens): Extracted from fetch_commit.

* tools/util.py:
(submit_commits): Optionally takes status_to_accept to avoid throwing in the case of FailedToFindParentCommit
and returns the response JSON.

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

2 years agoREGRESSION(r198234): /api/commits/%revision% always fails
rniwa@webkit.org [Fri, 20 Jan 2017 22:02:09 +0000 (22:02 +0000)]
REGRESSION(r198234): /api/commits/%revision% always fails
https://bugs.webkit.org/show_bug.cgi?id=167235

Reviewed by Antti Koivisto.

The bug was caused by a typo in CommitLogFetcher::fetch_revision, which was calling commit_for_revision on
$this->db instead of $this. This had been monkey-patched in the internal dashboard so it was working there.

Also fixed a bug that /latest wasn't doing what it claimed to do, and a bug that /oldest /latest,
and /last-reported would return a commit with all values set to null instead of an empty list.

Finally, added server API tests for /api/commits.

* public/api/commits.php:
(main): Add a comment for APIs that only exist for v2 UI.

* public/include/commit-log-fetcher.php:
(CommitLogFetcher::fetch_latest): Fixed the bug that this function was returning the oldest commit, not the
the latest commit as desired.
(CommitLogFetcher::fetch_revision): Fixed the bug that this function would always encounter an exception
because commit_for_revision is defined on $this, not $this->db.
(CommitLogFetcher::format_single_commit): Return an empty list instead of an array with a single commit with
all values set to null.

* server-tests/api-commits.js: Added. Added tests for the JSON API at /api/commits.
(.assertCommitIsSameAsOneSubmitted): Added. A helper function to compare a commit returned by /api/commits
to one sent to /api/report-commits.

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

2 years agoFix Mac CMake build.
achristensen@apple.com [Fri, 20 Jan 2017 21:50:26 +0000 (21:50 +0000)]
Fix Mac CMake build.

* CMakeLists.txt:
* PlatformMac.cmake:

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

2 years agoMarking media/modern-media-controls/placard-support/placard-support-airplay.html...
ryanhaddad@apple.com [Fri, 20 Jan 2017 21:35:09 +0000 (21:35 +0000)]
Marking media/modern-media-controls/placard-support/placard-support-airplay.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=164298

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 years agoMarking media/modern-media-controls/tracks-panel/tracks-panel-hide-click-outside...
ryanhaddad@apple.com [Fri, 20 Jan 2017 21:35:07 +0000 (21:35 +0000)]
Marking media/modern-media-controls/tracks-panel/tracks-panel-hide-click-outside.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=165290

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 years ago[WebRTC] Update libwertc AudioRtpSender::SetAudioSend
commit-queue@webkit.org [Fri, 20 Jan 2017 21:25:08 +0000 (21:25 +0000)]
[WebRTC] Update libwertc AudioRtpSender::SetAudioSend
https://bugs.webkit.org/show_bug.cgi?id=167243

Patch by Youenn Fablet <youennf@gmail.com> on 2017-01-20
Reviewed by Alex Christensen.

Introducing  WEBRTC_WEBKIT_BUILD macro to match existing WEBRTC_CHROMIUM_BUILD.
WEBRTC_WEBKIT_BUILD is defined by current WebKit libwebrtc build system.

* Source/webrtc/api/rtpsender.cc:

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

2 years agoWeb Animations should be off by default and enabled as an experimental feature
commit-queue@webkit.org [Fri, 20 Jan 2017 21:04:24 +0000 (21:04 +0000)]
Web Animations should be off by default and enabled as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=167115
<rdar://problem/30048963>

Patch by Antoine Quint <graouts@apple.com> on 2017-01-20
Reviewed by Joseph Pecoraro.

Source/WebCore:

Conditionalize the existing parts of the Web Animations API so that they may be
toggled at runtime.

* animation/Animatable.idl:
* animation/AnimationEffect.idl:
* animation/AnimationTimeline.idl:
* animation/DocumentAnimation.idl:
* animation/DocumentTimeline.idl:
* animation/KeyframeEffect.idl:
* animation/WebAnimation.idl:
* page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::reset):
* page/RuntimeEnabledFeatures.h:

Source/WebKit2:

Promote, or relegate depending on how you see things, the Web Animations preference
to an experimental feature.

* Shared/WebPreferencesDefinitions.h:

Tools:

Turn Web Animations on in DRT.

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
* DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):

Websites/webkit.org:

Add a test for Web Animations feature detection.

* experimental-features.html:

LayoutTests:

No need for an explicit preference anymore.

* webanimations/script-tests/Document.js:

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

2 years agoSkipping pointer-lock tests on macOS WK2.
ryanhaddad@apple.com [Fri, 20 Jan 2017 20:44:47 +0000 (20:44 +0000)]
Skipping pointer-lock tests on macOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=167246

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years ago[WebRTC] libwebrtc H.264 codec is using VTB only for IOS
commit-queue@webkit.org [Fri, 20 Jan 2017 19:41:55 +0000 (19:41 +0000)]
[WebRTC] libwebrtc H.264 codec is using VTB only for IOS
https://bugs.webkit.org/show_bug.cgi?id=167245

Patch by Youenn Fablet <youennf@gmail.com> on 2017-01-20
Reviewed by Alex Christensen.

* Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc: Removing WEBRTC_IOS flag.

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

2 years ago[WebRTC] Add libwebrtc build infrastructure
commit-queue@webkit.org [Fri, 20 Jan 2017 18:43:44 +0000 (18:43 +0000)]
[WebRTC] Add libwebrtc build infrastructure
https://bugs.webkit.org/show_bug.cgi?id=167207

Patch by Youenn Fablet <youenn@apple.com> on 2017-01-20
Reviewed by Alex Christensen.

.:

* WebKit.xcworkspace/contents.xcworkspacedata:

Source/ThirdParty:

Checking-in files used for building libwebrtc.
The principle is the following:
- Select a revision of libwebrtc
- Ask libwebrtc build system to generate the project.json (something like gn gen --ide json ...)
- Copy project.json here and the libwebrtc selected revision in a libwebrtc/libwebrtc folder.
- Call Tools/Scripts/generate-libwebrtc-cmake which will update CMakeLists.txt
- Build libwebrtc with CMake

* libwebrtc/CMakeLists.txt: Added (Generated by Tools/Scripts/generate-libwebrtc-cmake using project.json as input).
* libwebrtc/Makefile: Added.
* libwebrtc/WebKit/project.json: Added (Generated by libwebrtc build system).
* libwebrtc/WebKit/rtc_sdk_framework_objc_info_plist.plist: Added.
* libwebrtc/libwebrtc.xcodeproj/project.pbxproj: Added.

Tools:

Adding a script doing the libwebrtc project json to CMake file conversion.

* Scripts/generate-libwebrtc-cmake: Added.
* Scripts/webkitpy/libwebrtc/__init__.py: Added.
* Scripts/webkitpy/libwebrtc/generate_cmake.py: Added.

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

2 years agoUnreviewed, unskip innerText/ folder in ImportExpectations
cdumez@apple.com [Fri, 20 Jan 2017 18:21:35 +0000 (18:21 +0000)]
Unreviewed, unskip innerText/ folder in ImportExpectations

This is needed so that the tests in this folder gets re-sync'ed
from upstream next time.

* resources/ImportExpectations:

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

2 years agoWe should flash a safepoint before each DFG/FTL phase
sbarati@apple.com [Fri, 20 Jan 2017 18:10:55 +0000 (18:10 +0000)]
We should flash a safepoint before each DFG/FTL phase
https://bugs.webkit.org/show_bug.cgi?id=167234

Reviewed by Filip Pizlo.

The recent GC changes caused us to regress Kraken because of a
longstanding issue that happened to be hit with higher frequency because
of a change in timing between when a particular GC was happening and
when a particular FTL compilation was happening. The regression is caused
by the GC was waiting for a large function to make it through the DFG portion
of an FTL compilation. This was taking 20ms-30ms and started happened during a
particular test with much higher frequency.

This means that anytime the GC waits for this compilation, the test ran at least
~20ms slower because the GC waits for the compiler threads the mutator is stopped.

It's good that we have such an easily reproducible case of this performance
issue because it will effect many real JS programs, especially ones with
large functions that get hot.

The most straight forward solution to fix this is to flash a safepoint before
each phase, allowing the GC to suspend the compiler if needed. In my testing,
this progresses Kraken in the browser, and doesn't regress anything else. This
solution also makes the most sense. I did some analysis on the compilation time
of this function that took ~20-30ms to pass through the DFG phases, and
the phase times were mostly evenly distributed. Some took longer than others,
but no phase was longer than 3ms. Most were in the 0.25ms to 1.5ms range.

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
* dfg/DFGSafepoint.cpp:
(JSC::DFG::Safepoint::begin):
* runtime/Options.h:

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

2 years agoMini Browser: Show tooltip for Experimental Features
commit-queue@webkit.org [Fri, 20 Jan 2017 17:59:22 +0000 (17:59 +0000)]
Mini Browser: Show tooltip for Experimental Features
https://bugs.webkit.org/show_bug.cgi?id=167225

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-01-20
Reviewed by Alex Christensen.

* MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
Include the full details string as a tooltip.

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

2 years ago[Win] Test output results should not be written twice.
pvollan@apple.com [Fri, 20 Jan 2017 17:50:22 +0000 (17:50 +0000)]
[Win] Test output results should not be written twice.
https://bugs.webkit.org/show_bug.cgi?id=167197

Reviewed by Brent Fulgham.

Prevent test output from being written twice by returning early from
the dump() function, if it already has been called.
This patch also adds a missing newline to a test output line.

* DumpRenderTree/win/DumpRenderTree.cpp:
(dump):

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

2 years ago[Modern Media Controls] Turn modern media controls on by default
graouts@webkit.org [Fri, 20 Jan 2017 12:17:50 +0000 (12:17 +0000)]
[Modern Media Controls] Turn modern media controls on by default
https://bugs.webkit.org/show_bug.cgi?id=165668

Reviewed by Dean Jackson.

Source/WebCore:

Tests: media/modern-media-controls/fullscreen-support/ipad/fullscreen-support-tap.html
       media/modern-media-controls/pip-support/ipad/pip-support-enabled.html
       media/modern-media-controls/pip-support/ipad/pip-support-tap.html
       media/modern-media-controls/placard-support/ipad/placard-support-pip.html
       media/modern-media-controls/scrubber-support/ipad/scrubber-support-drag.html

Fix an error which may be triggered prior to Sierra where we would assume the presentation
mode API was avaiable when it might not be, which caused a few tests to fail.

We also ensure that we always inject the UA styles for legacy media controls as otherwise
toggling from modern media controls to legacy media controls would not inject those styles.
To facilitate this we add a dedicated method for modern media controls styles in RenderTheme
that is only used in the case of modern media controls when the shadow root asks for the styles
to inject in the shadow root.

* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::shadowRootCSSText):
* Modules/modern-media-controls/media/pip-support.js:
(PiPSupport.prototype.syncControl):
(PiPSupport):
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::modernMediaControlsStyleSheet):
* rendering/RenderThemeIOS.h:
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::mediaControlsStyleSheet):
(WebCore::RenderThemeIOS::modernMediaControlsStyleSheet):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::mediaControlsStyleSheet):
(WebCore::RenderThemeMac::modernMediaControlsStyleSheet):

Source/WebKit/mac:

Enabled modern media controls by default in WK1.

* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):

Source/WebKit2:

Use DEFAULT_EXPERIMENTAL_FEATURES_ENABLED as the default value for modern media controls, which is true.

* Shared/WebPreferencesDefinitions.h:

Tools:

Enabled modern media controls by default in test runners.

* DumpRenderTree/TestOptions.h:
* WebKitTestRunner/TestOptions.h:

LayoutTests:

Turn modern media controls off for a majority of pre-existing tests that made assumptions on the implementation
of media controls.

For tests designed for modern media controls, we don't need to opt out since modern media controls are now on
by default, and we turn them back on since they were skipped. But we make these tests more resilient by:

    1. adding iPad-specific tests
    2. adding platform-agnostic ways to press an element, using either eventSender or uiController
    3. checking that elements that are sized asynchronously are indeed sized before making assumptions to that effect
    4. ensuring that we don't have additional scheduler.frameDidFire callbacks after we no longer need them

* TestExpectations:
* accessibility/mac/video-tag-hit-test.html:
* accessibility/mac/video-volume-slider-accessibility.html:
* accessibility/media-element.html:
* accessibility/media-emits-object-replacement.html:
* compositing/video/poster-expected.html:
* compositing/video/poster.html:
* fast/hidpi/video-controls-in-hidpi.html:
* fast/layers/video-layer.html:
* fullscreen/video-controls-drag.html:
* fullscreen/video-controls-override.html:
* fullscreen/video-controls-rtl.html:
* fullscreen/video-controls-timeline.html:
* http/tests/media/hls/video-controls-live-stream.html:
* http/tests/media/hls/video-duration-accessibility.html:
* http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed.html:
* http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked.html:
* http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2.html:
* http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed.html:
* media/accessibility-closed-captions-has-aria-owns.html:
* media/adopt-node-crash.html:
* media/airplay-autoplay.html:
* media/audio-as-video-fullscreen.html:
* media/audio-controls-do-not-fade-out.html:
* media/audio-controls-rendering.html:
* media/audio-controls-timeline-in-media-document.html:
* media/audio-delete-while-slider-thumb-clicked.html:
* media/audio-repaint.html:
* media/click-placeholder-not-pausing.html:
* media/click-volume-bar-not-pausing.html:
* media/controls-after-reload.html:
* media/controls-drag-timebar.html:
* media/controls-right-click-on-timebar.html:
* media/controls-strict.html:
* media/controls-styling.html:
* media/controls-without-preload.html:
* media/controls/airplay-controls.html:
* media/controls/airplay-picker.html:
* media/controls/basic.html:
* media/controls/elementOrder.html:
* media/controls/forced-tracks-only.html:
* media/controls/fullscreen-button-inline-layout.html:
* media/controls/inline-elements-dropoff-order.html:
* media/controls/picture-in-picture.html:
* media/controls/pip-placeholder-without-video-controls.html:
* media/controls/showControlsButton.html:
* media/controls/statusDisplay.html:
* media/controls/statusDisplayBad.html:
* media/controls/track-menu.html:
* media/mac/controls-panel-not-clipped-out-expected.html:
* media/mac/controls-panel-not-clipped-out.html:
* media/media-captions-no-controls.html:
* media/media-controller-drag-crash.html:
* media/media-controls-accessibility.html:
* media/media-controls-cancel-events.html:
* media/media-controls-clone.html:
* media/media-controls-drag-timeline-set-controls-property.html:
* media/media-controls-timeline-updates-after-playing.html:
* media/media-controls-timeline-updates-when-hovered.html:
* media/media-controls-timeline-updates.html:
* media/media-document-audio-controls-visible.html:
* media/media-document-audio-repaint.html:
* media/media-fullscreen-return-to-inline.html:
* media/modern-media-controls/airplay-button/airplay-button-on.html:
* media/modern-media-controls/airplay-button/airplay-button.html:
* media/modern-media-controls/airplay-placard/airplay-placard-text-section.html:
* media/modern-media-controls/audio/audio-controls-buttons-expected.txt:
* media/modern-media-controls/audio/audio-controls-buttons.html:
* media/modern-media-controls/audio/audio-controls-metrics.html:
* media/modern-media-controls/button/button.html:
* media/modern-media-controls/buttons-container/buttons-container-buttons-property.html:
* media/modern-media-controls/forward-button/forward-button.html:
* media/modern-media-controls/fullscreen-button/fullscreen-button.html:
* media/modern-media-controls/fullscreen-support/fullscreen-support-click.html:
* media/modern-media-controls/fullscreen-support/ipad/fullscreen-support-tap-expected.txt: Added.
* media/modern-media-controls/fullscreen-support/ipad/fullscreen-support-tap.html: Added.
* media/modern-media-controls/icon-button/icon-button-active-state.html:
* media/modern-media-controls/icon-button/icon-button-on.html:
* media/modern-media-controls/icon-button/icon-button.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-controls-bar-styles.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-time-control-styles.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html:
* media/modern-media-controls/layout-node/addChild.html:
* media/modern-media-controls/layout-node/children.html:
* media/modern-media-controls/layout-node/height.html:
* media/modern-media-controls/layout-node/insertAfter.html:
* media/modern-media-controls/layout-node/insertBefore.html:
* media/modern-media-controls/layout-node/node-made-dirty-during-layout.html:
* media/modern-media-controls/layout-node/remove.html:
* media/modern-media-controls/layout-node/removeChild.html:
* media/modern-media-controls/layout-node/subclassing.html:
* media/modern-media-controls/layout-node/visible.html:
* media/modern-media-controls/layout-node/width.html:
* media/modern-media-controls/layout-node/x.html:
* media/modern-media-controls/layout-node/y.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-status-label.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-and-mouse-leave.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-over-controls-bar.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-leave-after-play.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide-pause.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide-rewind-with-mouse-enter.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide.html:
* media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen.html:
* media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html:
* media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline.html:
* media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline.html:
* media/modern-media-controls/media-controller/media-controller-resize.html:
* media/modern-media-controls/media-controller/media-controller-scale-factor.html:
* media/modern-media-controls/media-controller/media-controller-single-container.html:
* media/modern-media-controls/mute-button/mute-button.html:
* media/modern-media-controls/pip-button/pip-button.html:
* media/modern-media-controls/pip-placard/pip-placard-text-section.html:
* media/modern-media-controls/pip-support/ipad/pip-support-enabled-expected.txt: Added.
* media/modern-media-controls/pip-support/ipad/pip-support-enabled.html: Copied from LayoutTests/media/modern-media-controls/pip-support/pip-support-enabled.html.
* media/modern-media-controls/pip-support/ipad/pip-support-tap-expected.txt: Added.
* media/modern-media-controls/pip-support/ipad/pip-support-tap.html: Copied from LayoutTests/media/modern-media-controls/pip-support/pip-support-click.html.
* media/modern-media-controls/pip-support/pip-support-click.html:
* media/modern-media-controls/pip-support/pip-support-enabled.html:
* media/modern-media-controls/placard-support/ipad/placard-support-pip-expected.txt: Copied from LayoutTests/media/modern-media-controls/placard-support/placard-support-airplay-expected.txt.
* media/modern-media-controls/placard-support/ipad/placard-support-pip.html: Added.
* media/modern-media-controls/placard-support/placard-support-airplay-expected.txt:
* media/modern-media-controls/play-pause-button/play-pause-button.html:
* media/modern-media-controls/playback-support/playback-support-button-click-expected.txt:
* media/modern-media-controls/playback-support/playback-support-button-click.html:
* media/modern-media-controls/resources/media-controls-utils.js:
(pressOnElement):
(finishMediaControlsTest):
* media/modern-media-controls/rewind-button/rewind-button.html:
* media/modern-media-controls/scheduler/not-reentrant.html:
* media/modern-media-controls/scheduler/single-callback-when-registered-multiple-times.html:
* media/modern-media-controls/scrubber-support/ipad/scrubber-support-drag-expected.txt: Copied from LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt.
* media/modern-media-controls/scrubber-support/ipad/scrubber-support-drag.html: Added.
* media/modern-media-controls/scrubber-support/scrubber-support-click.html:
* media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt:
* media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
* media/modern-media-controls/seek-backward-support/seek-backward-support.html:
* media/modern-media-controls/seek-forward-support/seek-forward-support.html:
* media/modern-media-controls/skip-back-button/skip-back-button.html:
* media/modern-media-controls/slider/slider-fill.html:
* media/modern-media-controls/slider/slider-styles.html:
* media/modern-media-controls/start-support/start-support-click-to-start-expected.txt:
* media/modern-media-controls/start-support/start-support-click-to-start.html:
* media/modern-media-controls/status-label/status-label-font.html:
* media/modern-media-controls/status-label/status-label-text-selection.html:
* media/modern-media-controls/status-label/status-label.html:
* media/modern-media-controls/time-label/time-label.html:
* media/modern-media-controls/tracks-button/tracks-button.html:
* media/modern-media-controls/tracks-panel/tracks-panel-right-x.html:
* media/modern-media-controls/tracks-panel/tracks-panel-select-track-with-keyboard.html:
* media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel.html:
* media/modern-media-controls/tracks-support/tracks-support-show-and-populate-panel.html:
* media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls-expected.txt:
* media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html:
* media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
* media/modern-media-controls/volume-slider/volume-slider-value.html:
* media/modern-media-controls/volume-support/volume-support-click.html:
* media/modern-media-controls/volume-support/volume-support-drag.html:
* media/nodesFromRect-shadowContent.html:
* media/progress-events-generated-correctly.html:
* media/require-user-gesture-to-load-video.html:
* media/tab-focus-inside-media-elements.html:
* media/track/track-cue-rendering-horizontal.html:
* media/track/track-cue-rendering-vertical.html:
* media/track/track-cues-cuechange.html:
* media/track/track-cues-enter-exit.html:
* media/track/track-in-band-duplicate-tracks-when-source-changes.html:
* media/track/track-manual-mode.html:
* media/video-controls-audiotracks-trackmenu.html:
* media/video-controls-captions-trackmenu-localized.html:
* media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles.html:
* media/video-controls-captions-trackmenu-sorted.html:
* media/video-controls-captions-trackmenu.html:
* media/video-controls-drop-and-restore-timeline.html:
* media/video-controls-in-media-document.html:
* media/video-controls-no-display-with-text-track.html:
* media/video-controls-rendering.html:
* media/video-controls-show-on-kb-or-ax-event.html:
* media/video-controls-toggling.html:
* media/video-controls-transformed.html:
* media/video-controls-visible-audio-only.html:
* media/video-controls-visible-exiting-fullscreen.html:
* media/video-controls-zoomed.html:
* media/video-display-toggle.html:
* media/video-empty-source.html:
* media/video-fullscreeen-only-controls.html:
* media/video-fullscreeen-only-playback.html:
* media/video-initially-hidden-volume-slider-up.html:
* media/video-no-audio.html:
* media/video-play-audio-require-user-gesture.html:
* media/video-play-require-user-gesture.html:
* media/video-trackmenu-selection.html:
* media/video-volume-slider-drag.html:
* media/video-volume-slider.html:
* media/video-zoom-controls.html:
* media/volume-bar-empty-when-muted.html:
* platform/gtk/TestExpectations:
* platform/ios-simulator/TestExpectations:
* platform/ios-simulator/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html:
* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:

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

2 years agoSuper property access in base class constructor doesn't work
gskachkov@gmail.com [Fri, 20 Jan 2017 11:43:24 +0000 (11:43 +0000)]
Super property access in base class constructor doesn't work
https://bugs.webkit.org/show_bug.cgi?id=166665

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

Allow to use super inside of the constructor for classes
without parent class.
Parser checks if super used within the constructor and
add this information to function metedata, and later it is used
during byte code generation.

* bytecompiler/NodesCodegen.cpp:
(JSC::ClassExprNode::emitBytecode):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::Parser<LexerType>::parseFunctionInfo):
* parser/Parser.h:
(JSC::Scope::usesEval):
(JSC::Scope::fillParametersForSourceProviderCache):
(JSC::Scope::restoreFromSourceProviderCache):
(JSC::Parser::adjustSuperBindingForBaseConstructor):
* parser/SourceProviderCacheItem.h:
(JSC::SourceProviderCacheItem::SourceProviderCacheItem):

LayoutTests:

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

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

2 years agoRe-sync innerText web-platform-tests from upstream
cdumez@apple.com [Fri, 20 Jan 2017 09:28:09 +0000 (09:28 +0000)]
Re-sync innerText web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=167229

Reviewed by Alex Christensen.

Re-sync innerText web-platform-tests from upstream 1a36aa52.

* web-platform-tests/innerText/setter-expected.txt:
* web-platform-tests/innerText/setter-tests.js:
* web-platform-tests/innerText/setter.html:

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

2 years agoUnreviewed. Update OptionsGTK.cmake and NEWS for 2.15.3 release.
carlosgc@webkit.org [Fri, 20 Jan 2017 08:09:17 +0000 (08:09 +0000)]
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.15.3 release.

.:

* Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

* gtk/NEWS: Add release notes for 2.15.3.

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

2 years ago[Threaded Compositor] Initialize the threaded compositor with the current size
carlosgc@webkit.org [Fri, 20 Jan 2017 06:55:46 +0000 (06:55 +0000)]
[Threaded Compositor] Initialize the threaded compositor with the current size
https://bugs.webkit.org/show_bug.cgi?id=167196

Reviewed by Žan Doberšek.

We are always creating the threaded compositor with an empty size and then a sizeDidChange always happen when
the backing store state changes. This is always happening because the threaded compositor is created before the
first backing store state, but if we wanted to create it later, for example to enter/leave AC mode on demand,
the threaded compositor will not have the viewport size unless the window is resized, or sizeDidChange is called
manually when entering AC mode. Creating the threaded compositor is sync and changing the size too, so it's
better to do both things at the same time using the same sync operation.

* Shared/CoordinatedGraphics/SimpleViewportController.cpp:
(WebKit::SimpleViewportController::SimpleViewportController): Pass an initial size to the constructor.
* Shared/CoordinatedGraphics/SimpleViewportController.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::create): Add viewportSize and scaleFactor construction parameters,
(WebKit::ThreadedCompositor::ThreadedCompositor): Ditto. Also mark as needs resize if the given size is not empty.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Initialize the threaded compositor
with an initial viewport size and scale factor.

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

2 years agomeasurement-sets API can incorrectly order points with OS version without commit...
rniwa@webkit.org [Fri, 20 Jan 2017 06:42:43 +0000 (06:42 +0000)]
measurement-sets API can incorrectly order points with OS version without commit time
https://bugs.webkit.org/show_bug.cgi?id=167227

Reviewed by Chris Dumez.

Ignore revision_order for the purpose of ordering data points in /api/measurement-sets.

These orderings are used in some UI (e.g A/B testing) to order OS build numbers which do not have a timestamp
associated with each "revision".

The baseline measurements made in our internal dashboard were using these ordering numbers before ordering
results with build time. Because those data points don't have an associated Webkit revisions, all data points
were ordered first by macOS's revision_order, then build time. Because v3 UI completely ignores revision_order
for the purpose of plotting data points, this resulted in some data points being plotted in a wrong order
with some lines going backwards in time.

This patch addresses this discrepancy by stop ordering data points with revision_order in the JSON API.

* public/api/measurement-set.php:
(MeasurementSetFetcher::execute_query): Fixed the bug.
* server-tests/api-measurement-set-tests.js: Added a test.

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

2 years agoBuild fix after r210626. We need to clear Triggerable's static map in each iteration.
rniwa@webkit.org [Fri, 20 Jan 2017 05:11:01 +0000 (05:11 +0000)]
Build fix after r210626. We need to clear Triggerable's static map in each iteration.

* tools/sync-buildbot.js:
(syncLoop):

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

2 years agoREGRESSION(r206156): Animated images are repeated one extra iteration than the value...
commit-queue@webkit.org [Fri, 20 Jan 2017 03:56:20 +0000 (03:56 +0000)]
REGRESSION(r206156): Animated images are repeated one extra iteration than the value which is saved in the image file
https://bugs.webkit.org/show_bug.cgi?id=167174

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-01-19
Reviewed by Simon Fraser.

Source/WebCore:

Before r206156, BitmapImage::repetitionCount() used to return zero for
the case loopCount = 1, -1 for loopCount = Infinity and loopCount for
all other cases. Having repetitionCount() return zero for loopCount = 1
makes the condition if (++m_repetitionsComplete > repetitionCount())
break the animation loop after one iteration. But it was wrong for all
loopCount > 1. It was causing an extra iteration to be played for the
animated image. After r206156, BitmapImage::repetitionCount() returns
loopCount for all cases loopCount != Infinity. Keeping the same condition
causes the extra iteration to be played even for loopCount = 1.

Test: fast/images/animated-image-loop-count.html

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::internalStartAnimation):

LayoutTests:

* fast/images/animated-image-loop-count-expected.html: Added.
* fast/images/animated-image-loop-count.html: Added.
* fast/images/resources/animated-red-green-blue-repeat-1.gif: Added.
* fast/images/resources/animated-red-green-blue-repeat-2.gif: Added.
Ensure the animated image stops animating after loopCount iterations.

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

2 years agoInclude SubtleCrypto test on experimental-features test page
commit-queue@webkit.org [Fri, 20 Jan 2017 03:49:37 +0000 (03:49 +0000)]
Include SubtleCrypto test on experimental-features test page
https://bugs.webkit.org/show_bug.cgi?id=167226

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-01-19
Reviewed by Yusuke Suzuki.

* experimental-features.html:
Add a test for SubtleCrypto and make the test resilient against exceptions.

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

2 years agoiterable<> should be enabled on WK1
cdumez@apple.com [Fri, 20 Jan 2017 03:23:50 +0000 (03:23 +0000)]
iterable<> should be enabled on WK1
https://bugs.webkit.org/show_bug.cgi?id=167221
<rdar://problem/30108531>

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

* runtime/CommonIdentifiers.h:

Source/WebCore:

* Modules/fetch/FetchHeaders.idl:
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodePrototype::finishCreation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjPrototype::finishCreation):
* bindings/scripts/test/TestNode.idl:
* bindings/scripts/test/TestObj.idl:
* css/FontFaceSet.idl:
* dom/NodeList.idl:

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences setCustomElementsEnabled:]):
(-[WebPreferences DOMIteratorEnabled]): Deleted.
(-[WebPreferences setDOMIteratorEnabled:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit/win:

* Interfaces/IWebPreferencesPrivate.idl:
* WebPreferenceKeysPrivate.h:
* WebPreferences.cpp:
(WebPreferences::setDOMIteratorEnabled): Deleted.
(WebPreferences::domIteratorEnabled): Deleted.
* WebPreferences.h:
* WebView.cpp:
(WebView::notifyPreferencesChanged):

Source/WebKit2:

* Shared/WebPreferencesDefinitions.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
* DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setDOMIteratorEnabled): Deleted.
* WebKitTestRunner/InjectedBundle/TestRunner.h:

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

2 years agoSimple line layout: Extend coverage for justified content.
zalan@apple.com [Fri, 20 Jan 2017 02:52:34 +0000 (02:52 +0000)]
Simple line layout: Extend coverage for justified content.
https://bugs.webkit.org/show_bug.cgi?id=167219
<rdar://problem/30108391>

Reviewed by Antti Koivisto.

Source/WebCore:

Add support for general punctuation characters (0x2010, 0x2027) and latin characters including Extended-B.

Test: fast/text/simple-line-layout-with-justified-punctuation.html

* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForText):
(WebCore::SimpleLineLayout::canUseForFontAndText):

LayoutTests:

* fast/text/simple-line-layout-with-justified-punctuation-expected.html: Added.
* fast/text/simple-line-layout-with-justified-punctuation.html: Added.

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

2 years agoStructure::pin() needs to be called while holding a lock
fpizlo@apple.com [Fri, 20 Jan 2017 02:38:45 +0000 (02:38 +0000)]
Structure::pin() needs to be called while holding a lock
https://bugs.webkit.org/show_bug.cgi?id=167220

Reviewed by Saam Barati.

Imagine this race: the mutator calls pin() and the collector calls visitChildren(),
on the same Structure at the same time. In trunk pin() does not require a lock to be
held and it doesn't grab any locks. Meanwhile visitChildren() grabs the lock, checks
if the structure is pinned, and if not, it removes it by overwriting with zero. Now
imagine how this plays out when pin() runs. Since pin() grabs no locks, it is
irrelevant that visitChildren() grabs any locks. So, visitChildren() might check if
the table is pinned before pin() pins it, and then clear the table after it was
already pinned.

The problem here is that pin() should be holding a lock. We could either make pin()
grab that lock by itself, or what this patch does is makes the caller grab the lock.
This is great because it means that sometimes we don't have to introduce any new
locking.

This fixes a materializePropertyTable() checkOffsetConsistency() crash that happens
very rarely, but I was able to get it to reproduce with run-webkit-tests and
aggressive GC settings.

* runtime/ConcurrentJSLock.h:
* runtime/Structure.cpp:
(JSC::Structure::materializePropertyTable):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::pin):
(JSC::Structure::pinForCaching):
(JSC::Structure::add):
* runtime/Structure.h:
* runtime/StructureInlines.h:
(JSC::Structure::checkOffsetConsistency):
(JSC::Structure::add):
(JSC::Structure::addPropertyWithoutTransition):

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

2 years agoConstruct URLSearchParams from array or object
achristensen@apple.com [Fri, 20 Jan 2017 01:35:58 +0000 (01:35 +0000)]
Construct URLSearchParams from array or object
https://bugs.webkit.org/show_bug.cgi?id=166973

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

* web-platform-tests/url/urlsearchparams-constructor-expected.txt:

Source/WebCore:

Covered by newly passing web platform tests.

* html/URLSearchParams.cpp:
(WebCore::URLSearchParams::URLSearchParams):
(WebCore::URLSearchParams::create):
(WebCore::URLSearchParams::get):
(WebCore::URLSearchParams::has):
(WebCore::URLSearchParams::sort):
(WebCore::URLSearchParams::set):
(WebCore::URLSearchParams::getAll):
(WebCore::URLSearchParams::remove):
(WebCore::URLSearchParams::Iterator::next):
* html/URLSearchParams.h:
(WebCore::URLSearchParams::create):
(WebCore::URLSearchParams::pairs):
(WebCore::URLSearchParams::operator const Vector<std::pair<String, String>>&): Deleted.
* html/URLSearchParams.idl:
* platform/URLParser.cpp:
(WebCore::URLParser::serialize):
* platform/URLParser.h:

Source/WebKit2:

* NetworkProcess/capture/NetworkCaptureManager.cpp:
(WebKit::NetworkCapture::Manager::fuzzyMatchURLs):
Change std::pair's first/second to WTF::KeyValuePair's key/value.

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

2 years agoCRASH at WebCore::TrackListBase::remove
jer.noble@apple.com [Fri, 20 Jan 2017 01:09:20 +0000 (01:09 +0000)]
CRASH at WebCore::TrackListBase::remove
https://bugs.webkit.org/show_bug.cgi?id=167217

Reviewed by Brent Fulgham.

Source/WebCore:

Test: media/media-source/media-source-error-crash.html

In very specific conditions, a HTMLMediaElement backed by a MediaSource can try to remove
the same track from its track list twice. If there are two SourceBuffers attached to a
HTMLMediaElement, and one has not yet been initialized, when the second fails to parse an
appended buffer after receiving an initialization segment, the HTMLMediaElement will remove
all its tracks in mediaLoadingFailed(), then MediaSource object itself will attempt remove
the same track in removeSourceBuffer().

Solving this the safest way possible: bail early from TrackListBase if asked to remove a
track which the list does not contain.

* html/track/TrackListBase.cpp:
(TrackListBase::remove):

LayoutTests:

* media/media-source/media-source-error-crash-expected.txt: Added.
* media/media-source/media-source-error-crash.html: Added.

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

2 years agoEnsure status server logs go to log file
aakash_jain@apple.com [Fri, 20 Jan 2017 00:56:28 +0000 (00:56 +0000)]
Ensure status server logs go to log file
https://bugs.webkit.org/show_bug.cgi?id=167210

Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/common/net/statusserver.py:
(StatusServer.next_work_item): Change log level from debug to info in
order to facilitate deubgging issues.
(StatusServer.update_work_items): Same.

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

2 years agoSource/WebCore:
aestes@apple.com [Fri, 20 Jan 2017 00:23:54 +0000 (00:23 +0000)]
Source/WebCore:
[iOS] Move the PDF password view into its own class for reuse
https://bugs.webkit.org/show_bug.cgi?id=167192

Reviewed by Tim Horton.

* English.lproj/Localizable.strings: Updated the failure alert strings to not be specific to PDFs.

Source/WebKit2:
[iOS] Move the PDF password view into its own class for possible reuse
https://bugs.webkit.org/show_bug.cgi?id=167192

Reviewed by Tim Horton.

* UIProcess/ios/WKPDFView.h: Stopped conforming to UIDocumentPasswordViewDelegate.
* UIProcess/ios/WKPDFView.mm: Changed _passwordView to a WKPasswordView.
(-[WKPDFView _passwordViewFrame]): Returns the frame to set on _passwordView.
(-[WKPDFView _updatePasswordEntryField]): Removed.
(-[WKPDFView _showPasswordEntryField]): Created a WKPasswordView, set a lambda on its
userDidEnterPassword property to do the work previously done in -_tryToUnlockWithPassword:,
and showed the password view.
(-[WKPDFView _keyboardDidShow:]): Moved to WKPasswordView.
(-[WKPDFView _hidePasswordEntryField]): Deleted. The userDidEnterPassword lambda now calls
-[WKPasswordView hide] when the document is unlocked.
(-[WKPDFView userDidEnterPassword:forPasswordView:]): Moved to WKPasswordView.
(-[WKPDFView didBeginEditingPassword:inView:]): Ditto.
(-[WKPDFView didEndEditingPassword:inView:]): Ditto.
(-[WKPDFView _didFailToUnlock]): Ditto.
(-[WKPDFView _tryToUnlockWithPassword:]): Moved into _passwordView's userDidEnterPassword lambda.
* UIProcess/ios/WKPasswordView.h: Added.
* UIProcess/ios/WKPasswordView.mm: Added.
(-[WKPasswordView initWithFrame:documentName:]): Created a UIDocumentPasswordView with
documentName, set self as its passwordDelegate, and added it as a subview.
(-[WKPasswordView layoutSubviews]): Updated _scrollView's contentSize if we are displaying
the view.
(-[WKPasswordView displayInContentView:]): Saved the scroll view's previous minimum/maximum
zoom scale and color, set new values for minimum/maximum zoom scale and color, and added
self as a subview of contentView.
(-[WKPasswordView hide]): Restored the saved minimum/maximum zoom scale and color on the
scroll view and removed self from its superview.
(-[WKPasswordView displayPasswordFailureAlert]): Displayed the alert previously shown by
-[WKPDFView _didFailToUnlock].
(-[WKPasswordView _keyboardDidShow:]): Moved from WKPDFView.
(-[WKPasswordView userDidEnterPassword:forPasswordView:]): Retained self and called the
_userDidEnterPassword block with the password.
(-[WKPasswordView didBeginEditingPassword:inView:]): Moved from WKPDFView.
(-[WKPasswordView didEndEditingPassword:inView:]): Ditto.
* WebKit2.xcodeproj/project.pbxproj:

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

2 years agoSource/ThirdParty/libwebrtc:
achristensen@apple.com [Thu, 19 Jan 2017 23:43:51 +0000 (23:43 +0000)]
Source/ThirdParty/libwebrtc:
[WebRTC] Upload libwebrtc code base
https://bugs.webkit.org/show_bug.cgi?id=167205

Patch by Youenn Fablet <youenn@apple.com> on 2017-01-19
Reviewed by Alex Christensen and Jon Lee.

Add initial libwebrtc source from branch 56. Here's how to get what we committed:
git clone https://chromium.googlesource.com/external/webrtc.git && cd webrtc && git checkout 7bf536976366443ea59153ff3d22da0ec32badc1

Source/ThirdParty/libwebrtc/Source/third_party/opus/src:

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

2 years agoAdditional selection tests and interpolation fix
megan_gardner@apple.com [Thu, 19 Jan 2017 23:30:33 +0000 (23:30 +0000)]
Additional selection tests and interpolation fix
https://bugs.webkit.org/show_bug.cgi?id=167171

Reviewed by Simon Fraser.

Tools:

We weren't adding the final event when interpolating event streams.

* WebKitTestRunner/ios/HIDEventGenerator.mm:
(-[HIDEventGenerator interpolatedEvents:]):

LayoutTests:

Selections tests for dragging left and right.
Factored out common functions used across tests.

* fast/events/touch/ios/long-press-then-drag-left-to-change-selected-text-expected.txt: Added.
* fast/events/touch/ios/long-press-then-drag-left-to-change-selected-text.html: Added.
* fast/events/touch/ios/long-press-then-drag-right-to-change-selected-text-expected.txt: Added.
* fast/events/touch/ios/long-press-then-drag-right-to-change-selected-text.html: Added.
* fast/events/touch/ios/resources: Added.
* fast/events/touch/ios/resources/basic-gestures.js: Added.
(pressAtPoint):
(dragFromPointToPoint):

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

2 years agoVersioning.
jmarcell@apple.com [Thu, 19 Jan 2017 23:09:38 +0000 (23:09 +0000)]
Versioning.

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

2 years agoMake sure HTML validation bubble gets dismissed when its associated element's frame...
cdumez@apple.com [Thu, 19 Jan 2017 23:04:37 +0000 (23:04 +0000)]
Make sure HTML validation bubble gets dismissed when its associated element's frame gets detached
https://bugs.webkit.org/show_bug.cgi?id=167215
<rdar://problem/29885052>

Reviewed by Andreas Kling.

Source/WebCore:

Make sure HTML validation bubble gets dismissed when its associated
element's frame gets detached and that we do not crash.

Tests: fast/forms/validation-message-detached-iframe.html
       fast/forms/validation-message-detached-iframe2.html

* dom/Document.cpp:
(WebCore::Document::prepareForDestruction):
* page/ValidationMessageClient.h:

Source/WebKit/mac:

Make sure HTML validation bubble gets dismissed when its associated
element's frame gets detached and that we do not crash.

* WebCoreSupport/WebValidationMessageClient.h:
* WebCoreSupport/WebValidationMessageClient.mm:
(WebValidationMessageClient::documentDetached):

Source/WebKit2:

Make sure HTML validation bubble gets dismissed when its associated
element's frame gets detached and that we do not crash.

* WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:
(WebKit::WebValidationMessageClient::documentDetached):
* WebProcess/WebCoreSupport/WebValidationMessageClient.h:

LayoutTests:

Add layout test coverage.

* fast/forms/resources/form-validation-iframe.html: Added.
* fast/forms/validation-message-detached-iframe-expected.txt: Added.
* fast/forms/validation-message-detached-iframe.html: Added.
* fast/forms/validation-message-detached-iframe2-expected.txt: Added.
* fast/forms/validation-message-detached-iframe2.html: Added.

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

2 years agoAdd a mechanism to dispatch and listen to an action
rniwa@webkit.org [Thu, 19 Jan 2017 22:58:46 +0000 (22:58 +0000)]
Add a mechanism to dispatch and listen to an action
https://bugs.webkit.org/show_bug.cgi?id=167191

Reviewed by Antti Koivisto.

Added the notion of an action to components. Like DOM events, it can be dispatched or listen to.

Also added ComponentBase.prototype.part which finds a sub-component inside a component's shadow tree,
and made ComponentBase.prototype.content take an id to find an element that matches it.

* browser-tests/close-button-tests.js: Added. Tests for CloseButton.
* browser-tests/component-base-tests.js: Added tests for ComponentBase's part(~), content(id), dispatchEvent.
* browser-tests/index.html:
* public/v3/components/base.js:
(ComponentBase): Added this._actionCallbacks, which is a map of an action name to a callback to be invoked.
(ComponentBase.prototype.content): Return an element of the given id if one is specified.
(ComponentBase.prototype.part): Find a component whose element has the matching id.
(ComponentBase.prototype.dispatchAction): Added.
(ComponentBase.prototype.listenToAction): Added.
(ComponentBase.prototype._ensureShadowTree): Call didConstructShadowTree.
(ComponentBase.prototype.didConstructShadowTree): Added.
(ComponentBase.prototype._recursivelyReplaceUnknownElementsByComponents): Copy attributes when instantiating
an element for a component when the browser doesn't support custom elements API.
(ComponentBase.createLink):
(ComponentBase.prototype.createEventHandler): Added.
(ComponentBase.createEventHandler): Renamed from createActionHandler.
* public/v3/components/button-base.js:
(ButtonBase.prototype.didConstructShadowTree): Added. Dispatch "activate" action when the button is clicked.
(ButtonBase.prototype.setCallback): Deleted.
(ButtonBase.htmlTemplate): Use id instead of class so that this.content() can find it.
(ButtonBase.cssTemplate): Updated style rules.
* public/v3/pages/chart-pane.js:
(ChartPane):
(ChartPane.prototype.didConstructShadowTree): Added. Listen to "activate" action on the close button.
(ChartPane.prototype.render): Fixed a bug that we were never calling enqueueToRender on the close button.
(ChartPane.htmlTemplate): Add the id on the close button.

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

2 years agoSkipping three crashing pointer lock tests.
ryanhaddad@apple.com [Thu, 19 Jan 2017 21:35:10 +0000 (21:35 +0000)]
Skipping three crashing pointer lock tests.
https://bugs.webkit.org/show_bug.cgi?id=166765

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years agoImplement per activity state CPU usage reporting using diagnostic logging
cdumez@apple.com [Thu, 19 Jan 2017 21:33:36 +0000 (21:33 +0000)]
Implement per activity state CPU usage reporting using diagnostic logging
https://bugs.webkit.org/show_bug.cgi?id=167163
<rdar://problem/30058349>

Reviewed by Andreas Kling.

Implement per activity state CPU usage reporting using diagnostic logging.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* page/ActivityState.h:
* page/ChromeClient.h:
* page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::nonVisibleStateKey):
(WebCore::DiagnosticLoggingKeys::visibleNonActiveStateKey):
(WebCore::DiagnosticLoggingKeys::visibleAndActiveStateKey):
(WebCore::DiagnosticLoggingKeys::foregroundCPUUsageToDiagnosticLogginKey):
(WebCore::DiagnosticLoggingKeys::backgroundCPUUsageToDiagnosticLogginKey):
* page/DiagnosticLoggingKeys.h:
* page/Page.cpp:
(WebCore::isUtilityPageChromeClient):
(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::didStartProvisionalLoad):
(WebCore::Page::didFinishLoad):
(WebCore::Page::isUtilityPage):
(WebCore::Page::setActivityState):
(WebCore::Page::setIsVisibleInternal):
* page/Page.h:
(WebCore::Page::activityState):
(WebCore::Page::isUtilityPage):
* page/PerformanceMonitor.cpp: Added.
(WebCore::activityStateForCPUSampling):
(WebCore::PerformanceMonitor::PerformanceMonitor):
(WebCore::PerformanceMonitor::didStartProvisionalLoad):
(WebCore::PerformanceMonitor::didFinishLoad):
(WebCore::PerformanceMonitor::activityStateChanged):
(WebCore::PerformanceMonitor::measurePostLoadCPUUsage):
(WebCore::PerformanceMonitor::measurePostBackgroundingCPUUsage):
(WebCore::PerformanceMonitor::measurePerActivityStateCPUUsage):
(WebCore::stringForCPUSamplingActivityState):
(WebCore::PerformanceMonitor::measureCPUUsageInActivityState):
* page/PerformanceMonitor.h: Copied from Source/WebCore/page/ActivityState.h.
* page/Settings.cpp:
* page/Settings.h:
(WebCore::Settings::isPostLoadCPUUsageMeasurementEnabled):
(WebCore::Settings::isPostBackgroundingCPUUsageMeasurementEnabled):
(WebCore::Settings::isPerActivityStateCPUUsageMeasurementEnabled):

Source/WebKit2:

* Platform/Logging.h:
* UIProcess/PerActivityStateCPUUsageSampler.cpp: Added.
(WebKit::PerActivityStateCPUUsageSampler::PerActivityStateCPUUsageSampler):
(WebKit::PerActivityStateCPUUsageSampler::~PerActivityStateCPUUsageSampler):
(WebKit::PerActivityStateCPUUsageSampler::reportWebContentCPUTime):
(WebKit::loggingKeyForActivityState):
(WebKit::loggingKeyForCPUUsage):
(WebKit::PerActivityStateCPUUsageSampler::loggingTimerFired):
(WebKit::PerActivityStateCPUUsageSampler::pageForLogging):
* UIProcess/PerActivityStateCPUUsageSampler.h: Copied from Source/WebCore/page/ActivityState.h.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::reportWebContentCPUTime):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::reportProcessCPUTime):
* WebProcess/WebCoreSupport/WebChromeClient.h:

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

2 years agoThe mutator needs to fire a barrier after memmoving stuff around in an object that...
fpizlo@apple.com [Thu, 19 Jan 2017 20:53:42 +0000 (20:53 +0000)]
The mutator needs to fire a barrier after memmoving stuff around in an object that the GC scans
https://bugs.webkit.org/show_bug.cgi?id=167208

Reviewed by Saam Barati.

It used to be that if you moved a value from one place to another in the same object
then there is no need for a barrier because the generational GC would have no need to
know that some old object still continues to refer to the same other old object.

But the concurrent GC might scan that object as the mutator moves pointers around in
it. If the ordering is right, this could mean that the collector never sees some of
those pointers. This can be fixed by adding a barrier.

This fixes the most obvious cases I found. There may be more and I'll continue to
audit. Most of the other memmove users seem to already use some kind of synchronization
to prevent this. For example, this can also be fixed by just holding the cell lock
around the memmove since we're dealing with indexing storage and the GC reads that
under the cell lock.

* runtime/JSArray.cpp:
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithAnyIndexingType):

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

2 years agoAdd Tesla to the domain associations on the team page
timothy@hatcher.name [Thu, 19 Jan 2017 20:21:14 +0000 (20:21 +0000)]
Add Tesla to the domain associations on the team page
https://bugs.webkit.org/show_bug.cgi?id=167202

Reviewed by Brian Burg.

* wp-content/themes/webkit/team.php:

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

2 years agoBuild fix.
mitz@apple.com [Thu, 19 Jan 2017 19:25:56 +0000 (19:25 +0000)]
Build fix.

Rubber-stamped by Anders Carlsson.

* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKPaymentAuthorizationStatus): Suppressed deprecation warnings.

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

2 years ago[Cocoa] Variation fonts are erroneously disabled on iOS
mmaxfield@apple.com [Thu, 19 Jan 2017 19:24:12 +0000 (19:24 +0000)]
[Cocoa] Variation fonts are erroneously disabled on iOS
https://bugs.webkit.org/show_bug.cgi?id=167172

Reviewed by Simon Fraser.

OpenSource builders don't seem to understand sdk=embedded*.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

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

2 years agoBugzilla email autocomplete does not work on third email field of advanced search...
timothy@hatcher.name [Thu, 19 Jan 2017 19:16:22 +0000 (19:16 +0000)]
Bugzilla email autocomplete does not work on third email field of advanced search page
https://bugs.webkit.org/show_bug.cgi?id=167204

Reviewed by Alexey Proskuryakov.

* committers-autocomplete.js: Added email3 to SINGLE_EMAIL_INPUTS list.

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

2 years agoWeb Inspector: Network Tab's "Clear Network Items" button should have keyboard shortcuts
commit-queue@webkit.org [Thu, 19 Jan 2017 18:31:08 +0000 (18:31 +0000)]
Web Inspector: Network Tab's "Clear Network Items" button should have keyboard shortcuts
https://bugs.webkit.org/show_bug.cgi?id=166943

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2017-01-19
Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:

* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._clear):
Move clear keyboard shortcut to main object and call _handleClearShortcut on the visible
content view if able.

* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.requestClearMessages):
(WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut): Deleted.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype.handleClearShortcut):
Move logic for requesting to clear messages from the LogManager to a better named function.

* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.handleClearShortcut):

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

2 years agoInstall WebKit.apinotes with the public headers of WebKit framework
andersca@apple.com [Thu, 19 Jan 2017 18:20:30 +0000 (18:20 +0000)]
Install WebKit.apinotes with the public headers of WebKit framework
https://bugs.webkit.org/show_bug.cgi?id=167182
rdar://problem/29008989

Reviewed by Sam Weinig.

* Shared/API/Cocoa/WebKit.apinotes: Added.
* WebKit2.xcodeproj/project.pbxproj:

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

2 years agoWeb Inspector: Dashboard's log/error/warning help tag says "click to show the Console...
commit-queue@webkit.org [Thu, 19 Jan 2017 17:59:12 +0000 (17:59 +0000)]
Web Inspector: Dashboard's log/error/warning help tag says "click to show the Console" even when clicking does nothing
https://bugs.webkit.org/show_bug.cgi?id=167102

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2017-01-19
Reviewed by Brian Burg.

* UserInterface/Base/Main.js:
(WebInspector.showConsoleTab):
Don't revert to the All scopes if the requested scope is already selected.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem):
(WebInspector.DefaultDashboardView.prototype._setItemEnabled):
Only apply a title to the element when it is enabled.

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

2 years agoWeb Inspector: move Mac-specific automation commands to a separate implementation...
bburg@apple.com [Thu, 19 Jan 2017 17:52:36 +0000 (17:52 +0000)]
Web Inspector: move Mac-specific automation commands to a separate implementation file
https://bugs.webkit.org/show_bug.cgi?id=163297
<rdar://problem/28718990>

Reviewed by Timothy Hatcher.

Not all Automation commands are available on all platforms. Start splitting out
command declarations and implementations based on the target platform.

* DerivedSources.make:
Set an appropriate --platform so the correct backend interface is generated.

* UIProcess/Automation/Automation.json:
Guard commands that should not be available on iOS:
    - resizeWindowOfBrowsingContext
    - moveWindowOfBrowsingContext
    - inspectBrowsingContext

* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::platformSimulateKeySequence): Deleted.
- Move shared convenience macros to header file.
- Move out Cocoa-only or Mac-only command implementations.

* UIProcess/Automation/WebAutomationSession.h:
Rearrange some declarations and switch from USE(APPKIT) to PLATFORM(MAC).

* UIProcess/Automation/WebAutomationSessionMacros.h: Added.

* UIProcess/Automation/cocoa/WebAutomationSessionCocoa.mm: Added.
(WebKit::WebAutomationSession::platformGetBase64EncodedPNGData):
Moved from WebAutomationSessionCocoa.mm. Add iOS-specific header includes.

* UIProcess/Automation/mac/WebAutomationSessionMac.mm: Renamed from Source/WebKit2/UIProcess/Cocoa/WebAutomationSessionCocoa.mm.
(WebKit::WebAutomationSession::resizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::moveWindowOfBrowsingContext):
(WebKit::WebAutomationSession::inspectBrowsingContext):
Move macOS platform command implementations to here. If other desktop ports want
to use these commands, we can move them somewhere else later.

(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
(WebKit::WebAutomationSession::markEventAsSynthesizedForAutomation):
(WebKit::WebAutomationSession::wasEventSynthesizedForAutomation):
Move out AppKit-specific event simulation code to here.

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
(WebKit::WebAutomationSession::platformSimulateKeyStroke):
(WebKit::WebAutomationSession::platformSimulateKeySequence):
Move out Mac platformFoo implementations to here.

* WebKit2.xcodeproj/project.pbxproj:
- Added UIProcess/Automation/{mac,cocoa} groups.
- Add new platform-specific implementation files.

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

2 years agoRebaseline bindings tests after r210918.
ryanhaddad@apple.com [Thu, 19 Jan 2017 17:28:24 +0000 (17:28 +0000)]
Rebaseline bindings tests after r210918.

Unreviewed test gardening.

* bindings/scripts/test/JS/JSTestObj.cpp:

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

2 years ago"this" missing after await in async arrow function
gskachkov@gmail.com [Thu, 19 Jan 2017 17:10:31 +0000 (17:10 +0000)]
"this" missing after await in async arrow function
https://bugs.webkit.org/show_bug.cgi?id=166919

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch fixed issue in async arrow function. Issue appears because in arrow
function _this_ is loaded from arrow function virtual scope.
Async arrow function can be suspended and when resuming should be used _this_ from
virtual scope, to allow this we load _this_ from virtual scope before store it to
generator.generatorThis property

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

JSTests:

* stress/async-arrow-functions-lexical-binding-in-class.js:
(ChildClass.prototype.asyncThisPropWithAwaitBody):
(ChildClass.prototype.asyncThisPropInEvalWithAwaitBody):
(ChildClass.prototype.asyncThisValueBodyWithAwait):
(ChildClass.prototype.asyncThisValueInEvalWithAwaitBody):
(ChildClass):
(ChildClass3):
(ChildClass3.prototype.classValue):
(ChildClass3.prototype.get classProperty):
* stress/async-arrow-functions-lexical-new.target-binding.js:
(C2WithAwait):

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

2 years agoScriptExecutionContext::topOrigin() should return a reference.
akling@apple.com [Thu, 19 Jan 2017 15:56:13 +0000 (15:56 +0000)]
ScriptExecutionContext::topOrigin() should return a reference.
<https://webkit.org/b/167190>

Reviewed by Sam Weinig.

Source/WebCore:

There is always a topOrigin() SecurityOrigin, so make it return a reference
and remove some unnecessary null-checks exposed by this change.

* Modules/applepay/ApplePaySession.cpp:
(WebCore::canCallApplePaySessionAPIs):
* Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::getSupportedConfiguration):
(WebCore::CDM::getConsentStatus):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/mediastream/MediaDevicesEnumerationRequest.cpp:
(WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin):
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::topLevelDocumentOrigin):
(WebCore::canCallGetUserMedia):
* dom/Document.h:
* dom/ScriptExecutionContext.h:
* html/DOMURL.cpp:
(WebCore::DOMURL::revokeObjectURL):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResource):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
(WebCore::ApplicationCacheGroup::update):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::setDomainForCachePartition):
* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::canAccessDatabase):
(WebCore::SecurityOrigin::canAccessSessionStorage):
(WebCore::SecurityOrigin::canAccessPluginStorage):
(WebCore::SecurityOrigin::canAccessApplicationCache):
* storage/StorageNamespaceProvider.cpp:
(WebCore::StorageNamespaceProvider::localStorageArea):
* testing/Internals.cpp:
(WebCore::Internals::isLoadingFromMemoryCache):
* workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
* workers/DedicatedWorkerGlobalScope.h:
* workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
* workers/DedicatedWorkerThread.h:
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
* workers/WorkerGlobalScope.h:
* workers/WorkerThread.cpp:
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread):
* workers/WorkerThread.h:

Source/WebKit/mac:

* Misc/WebCache.mm:
(+[WebCache addImageToCache:forURL:forFrame:]):
(+[WebCache removeImageFromCacheForURL:forFrame:]):

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

2 years agoUnreviewed. Fix GTK+ unit tests failing since r210531.
carlosgc@webkit.org [Thu, 19 Jan 2017 11:50:31 +0000 (11:50 +0000)]
Unreviewed. Fix GTK+ unit tests failing since r210531.

Avoid using paths to files that don't actually exist.

* TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp:
(testWebKitConsoleMessageNetworkError):
* TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp:
(testContextMenuDefaultMenu):
* TestWebKitAPI/Tests/WebKit2Gtk/resources/silence.mpg: Added.
* TestWebKitAPI/Tests/WebKit2Gtk/resources/simple.json: Added.
* TestWebKitAPI/Tests/WebKit2Gtk/resources/tracks.ogg: Added.

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

2 years ago[GTK] Provide API to set proxy settings
carlosgc@webkit.org [Thu, 19 Jan 2017 09:03:25 +0000 (09:03 +0000)]
[GTK] Provide API to set proxy settings
https://bugs.webkit.org/show_bug.cgi?id=128674

Reviewed by Michael Catanzaro.

Source/WebCore:

Add SoupNetworkProxySettings struct to store proxy settings.

* platform/network/soup/SoupNetworkProxySettings.h: Added.
(WebCore::SoupNetworkProxySettings::SoupNetworkProxySettings):
(WebCore::SoupNetworkProxySettings::operator=):
(WebCore::SoupNetworkProxySettings::isEmpty):
* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::SoupNetworkSession): Setup the proxy if user provided proxy settings.
(WebCore::SoupNetworkSession::setupProxy): Set the proxy-resolver property of the SoupSession according to the
global SoupNetworkProxySettings.
(WebCore::SoupNetworkSession::setProxySettingsFromEnvironment): Update the global SoupNetworkProxySettings with
values from environment.
(WebCore::SoupNetworkSession::setProxySettings): Set the global SoupNetworkProxySettings.
* platform/network/soup/SoupNetworkSession.h:

Source/WebKit2:

Add new method webkit_web_context_set_network_proxy_settings() that allows to set proxy settings in a
WebKitWebContext. It receives an enum WebKitNetworkProxyMode with modes Default, NoProxy and Custom, and an
optional WebKitNetworkProxySettings that is used when mode is Custom. WebKitNetworkProxySettings is a simple
boxed type that user can create to set proxy settins with a similar API to GSimpleProxyResolver.

* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in: Add SetNetworkProxySettings message.
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode): Encode proxy settings.
(WebKit::NetworkProcessCreationParameters::decode): Decode proxy settings.
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/efl/NetworkProcessMainEfl.cpp: Use SoupNetworkSession::setProxySettingsFromEnvironment().
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess): Set proxy settings if provided by the user.
(WebKit::NetworkProcess::setNetworkProxySettings): Set global proxy settings and setup the proxy for all
existing contexts.
* PlatformGTK.cmake: Add new files to compilation.
* Shared/WebCoreArgumentCoders.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Encode proxy settings.
(WebKit::WebProcessCreationParameters::decode): Decode proxy settings.
* Shared/WebProcessCreationParameters.h:
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<SoupNetworkProxySettings>::encode): Add encoder implementation for SoupNetworkProxySettings.
(IPC::ArgumentCoder<SoupNetworkProxySettings>::decode): add decoder implementation for SoupNetworkProxySettings.
* UIProcess/API/gtk/WebKitNetworkProxySettings.cpp: Added.
(_WebKitNetworkProxySettings::_WebKitNetworkProxySettings):
(webkitNetworkProxySettingsGetNetworkProxySettings):
(webkit_network_proxy_settings_new): Create a new WebKitNetworkProxySettings with optional default proxy uri and
ignore hosts list.
(webkit_network_proxy_settings_copy):
(webkit_network_proxy_settings_free):
(webkit_network_proxy_settings_add_proxy): Add a proxy uri for a given uri scheme.
* UIProcess/API/gtk/WebKitNetworkProxySettings.h: Added.
* UIProcess/API/gtk/WebKitNetworkProxySettingsPrivate.h: Added.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_set_network_proxy_settings): Set proxy settings.
* UIProcess/API/gtk/WebKitWebContext.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols to the documentation.
* UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for WebKitNetworkProxySettings.
* UIProcess/API/gtk/webkit2.h: Include WebKitNetworkProxySettings.h.
* UIProcess/WebProcessPool.h: Add m_networkProxySettings and a setter for soup.
* UIProcess/efl/WebProcessPoolEfl.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess): Set m_networkProxySettings to parameters.
* UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess): Ditto.
* UIProcess/soup/WebProcessPoolSoup.cpp:
(WebKit::WebProcessPool::platformInitializeNetworkProcess): Ditto.
(WebKit::WebProcessPool::setNetworkProxySettings): Update m_networkProxySettings and notify all processes.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in: Add SetNetworkProxySettings message.
* WebProcess/efl/WebProcessMainEfl.cpp: Use SoupNetworkSession::setProxySettingsFromEnvironment().
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformSetCacheModel): Remove comment that is no longer true.
(WebKit::WebProcess::platformInitializeWebProcess): Set proxy settings if provided by the user.
(WebKit::WebProcess::setNetworkProxySettings): Set global proxy settings and setup the proxy for all
existing contexts.

Tools:

Add tests for new proxy settings API.

* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:
(serverCallback):
(ProxyTest::ProxyTest):
(ProxyTest::~ProxyTest):
(ProxyTest::loadURIAndGetMainResourceData):
(ProxyTest::proxyServerPortAsString):
(testWebContextProxySettings):
(beforeAll):

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

2 years ago[GTK] Do not update the backing store state unnecessarily when page visibility changes
carlosgc@webkit.org [Thu, 19 Jan 2017 08:59:42 +0000 (08:59 +0000)]
[GTK] Do not update the backing store state unnecessarily when page visibility changes
https://bugs.webkit.org/show_bug.cgi?id=167195

Reviewed by Sergio Villar Senin.

I've noticed that we are receiving UpdateBackingStoreState messages in the web process even when size and scale
factor didn't change. That's quite unfortunate because we do a lot of work unnecessarily and we tell the
threaded compositor that the size changed. This is not only a problem because it's not true, but also because
changing the size is a sync operation in the threaded compositor, so we block the compositing thread for
nothing. This is happening because the WebPageProxy notifies the drawing area that the backing store is
discardable when the page is not visible, and that always produces a new backing store state. In accelerating
compositing mode we don't even have a backing store to discard, so we should check we have something to discard
and also make sure we only generate a new backing store state if we really discarded the backing store.

* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon):
(WebKit::DrawingAreaProxyImpl::discardBackingStore):

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

2 years ago[B3] B3 strength reduction could encounter Value without owner in PureCSE
utatane.tea@gmail.com [Thu, 19 Jan 2017 08:40:05 +0000 (08:40 +0000)]
[B3] B3 strength reduction could encounter Value without owner in PureCSE
https://bugs.webkit.org/show_bug.cgi?id=167161

Reviewed by Filip Pizlo.

PureCSE relies on the fact that all the stored Values have owner member.
This assumption is broken when you execute specializeSelect in B3ReduceStrength phase.
It clears owner of Values which are in between Select and Check to clone them to then/else
blocks. If these cleared Values are already stored in PureCSE map, this map poses a Value
with nullptr owner in PureCSE.

This patch changes PureCSE to ignore stored Values tha have nullptr owner. This even means
that a client of PureCSE could deliberately null the owner if they wanted to signal the
Value should be ignored.

While PureCSE ignores chance for optimization if Value's owner is nullptr, in the current
strength reduction algorithm, this does not hurt optimization because CSE will be eventually
applied since the strength reduction phase want to reach fixed point. But even without
this iterations, our result itself is valid since PureCSE is allowed to be conservative.

* b3/B3PureCSE.cpp:
(JSC::B3::PureCSE::findMatch):
(JSC::B3::PureCSE::process):
* b3/testb3.cpp:
(JSC::B3::testCheckSelectAndCSE):
(JSC::B3::run):

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

2 years ago[WebIDL] Records should preserve javascript object order
achristensen@apple.com [Thu, 19 Jan 2017 08:21:37 +0000 (08:21 +0000)]
[WebIDL] Records should preserve javascript object order
https://bugs.webkit.org/show_bug.cgi?id=167189

Patch by Sam Weinig <sam@webkit.org> on 2017-01-18
Reviewed by Alex Christensen.

Source/WebCore:

Instead of modeling IDL records as HashMaps, use a Vector
of KeyValuePairs, to all preserving the iteration order.

* Modules/webdatabase/SQLResultSetRowList.cpp:
(WebCore::SQLResultSetRowList::item):
* Modules/webdatabase/SQLResultSetRowList.h:
Return a Vector rather than a HashMap.

* bindings/IDLTypes.h:
Change underlying type to be a Vector<KeyValuePair<K, V>>.

* bindings/js/JSDOMConvert.h:
Update conversion for new implementation type. For conversion
to JSValue, allow any type that can has an iterator of keyValuePairs.

* testing/TypeConversions.h:
(WebCore::TypeConversions::testLongRecord):
(WebCore::TypeConversions::setTestLongRecord):
(WebCore::TypeConversions::testNodeRecord):
(WebCore::TypeConversions::setTestNodeRecord):
(WebCore::TypeConversions::testSequenceRecord):
(WebCore::TypeConversions::setTestSequenceRecord):
* testing/TypeConversions.idl:
Update test IDL to use functions, since the spec mandates that
records can't be used with attributes.

LayoutTests:

* js/dom/webidl-type-mapping-expected.txt:
* js/dom/webidl-type-mapping.html:
Update test to reflect changes to TypeConversions.idl

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

2 years agoAdd back my old email address so old commits will still match it.
timothy@apple.com [Thu, 19 Jan 2017 08:08:38 +0000 (08:08 +0000)]
Add back my old email address so old commits will still match it.

Patch by Timothy Hatcher <timothy@hatcher.name> on 2017-01-19

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

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

2 years agoRemove my old email address from contributors.json and watchlist.
timothy@apple.com [Thu, 19 Jan 2017 08:04:55 +0000 (08:04 +0000)]
Remove my old email address from contributors.json and watchlist.

Patch by Timothy Hatcher <timothy@hatcher.name> on 2017-01-19

* Scripts/validate-committer-lists:
(CommitterListFromGit): Change the mapping to the correct email.
* Scripts/webkitpy/common/config/contributors.json:
* Scripts/webkitpy/common/config/watchlist:

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