WebKit-https.git
4 years agovmmap crash at JavaScriptCore: 0x31cd12f6 (the JavaScript malloc zone enumerator)
ggaren@apple.com [Fri, 24 Jul 2015 21:29:07 +0000 (21:29 +0000)]
vmmap crash at JavaScriptCore: 0x31cd12f6 (the JavaScript malloc zone enumerator)
https://bugs.webkit.org/show_bug.cgi?id=147274

Reviewed by Anders Carlsson.

It's not really clear why vmmap sometimes fails to read the target
process, but we can avoid a crash when it does. This is useful because
you'll still get all the non-bmalloc data out of the target process,
and bmalloc might not even be relevant to your investigation.

* bmalloc/Zone.cpp:
(bmalloc::remoteRead): Check for failure.

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

4 years agoJavaScriptCore bmalloc should not register its malloc zone more than once
ggaren@apple.com [Fri, 24 Jul 2015 21:03:09 +0000 (21:03 +0000)]
JavaScriptCore bmalloc should not register its malloc zone more than once
https://bugs.webkit.org/show_bug.cgi?id=147273

Reviewed by Andreas Kling.

This was a goof: The Zone constructor, by virtue of running automatically,
was registering a Zone inside the analysis process.

* bmalloc/Zone.cpp:
(bmalloc::remoteRead): Clarify that the pointer is remote.

(bmalloc::enumerator):
(bmalloc::Zone::Zone):
* bmalloc/Zone.h: Separate the normal constructor and the remote constructor.
The remote constructor skips zone registration since its goal is not
to register a zone in the current process or do any allocation but rather
to mirror the bytes of the zone from the target process.

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

4 years agoRemove WEBCORE_EXPORT from Page::allowsMediaDocumentInlinePlayback()
ap@apple.com [Fri, 24 Jul 2015 20:31:59 +0000 (20:31 +0000)]
Remove WEBCORE_EXPORT from Page::allowsMediaDocumentInlinePlayback()
https://bugs.webkit.org/show_bug.cgi?id=147260

Reviewed by Daniel Bates.

* page/Page.h:
(WebCore::Page::allowsMediaDocumentInlinePlayback):

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

4 years agoCall fixChangeLogPatch when generating patches from webkit-patch
basile_clement@apple.com [Fri, 24 Jul 2015 20:22:58 +0000 (20:22 +0000)]
Call fixChangeLogPatch when generating patches from webkit-patch
https://bugs.webkit.org/show_bug.cgi?id=147248

Reviewed by Geoffrey Garen.

When two consecutive patches are from the same author, diff tools
create wrong-looking diffs for ChangeLog files where the apparent added
author is actually the previous patch's author line, making it awkward
to read - and things only get worse when committing a patch and a
followup fix for the same bug shortly after.

We have a perl function in VCSUtils.pm, fixChangeLogPatch, to corrects
this, which we use in perl scripts (svn-create-patch et al). But it is
not used by webkit-patch, which is a python script, and thus creates
"bad" diffs.

In the long term, we should probably port fixChangeLogPatch to python -
but in the short term, let's make webkit-patch call perl to run
fixChangeLogPatch. We are already making various external calls there
anyway.

* Scripts/webkitpy/common/checkout/scm/git.py:
(Git.create_patch):
* Scripts/webkitpy/common/checkout/scm/scm.py:
(SCM.fix_changelog_patch):
* Scripts/webkitpy/common/checkout/scm/svn.py:
(SVN.create_patch):

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

4 years agoRemove runtime flags for symbols
utatane.tea@gmail.com [Fri, 24 Jul 2015 19:48:26 +0000 (19:48 +0000)]
Remove runtime flags for symbols
https://bugs.webkit.org/show_bug.cgi?id=147246

Reviewed by Alex Christensen.

Source/JavaScriptCore:

* runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::finishCreation):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init): Deleted.
* runtime/JSGlobalObject.h:
* runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::finishCreation):
* runtime/RuntimeFlags.h:

Source/WebKit/mac:

* WebView/WebPreferencesPrivate.h:

Source/WebKit/win:

* Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:

* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:

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

4 years agoObject.getOwnPropertySymbols on large list takes very long
utatane.tea@gmail.com [Fri, 24 Jul 2015 19:31:16 +0000 (19:31 +0000)]
Object.getOwnPropertySymbols on large list takes very long
https://bugs.webkit.org/show_bug.cgi?id=146137

Reviewed by Mark Lam.

Source/JavaScriptCore:

Before this patch, Object.getOwnPropertySymbols collects all the names including strings.
And after it's done, filter the names to only retrieve the symbols.
But it's so time consuming if the given object is a large non-holed array since it has
many indexed properties and all the indexes have to be converted to uniqued_strings and
added to the collection of property names (though they may not be of the requested type
and will be filtered out later)

This patch introduces PropertyNameMode.
We leverage this mode in 2 places.

1. PropertyNameArray side
It is set in PropertyNameArray and it filters the incoming added identifiers based on the mode.
It ensures that PropertyNameArray doesn't become so large in the pathological case.
And it ensures that non-expected typed keys by the filter (Symbols or Strings) are never added
to the property name array collections.
However it does not solve the whole problem because the huge array still incurs the many
"indexed property to uniqued string" conversion and the large iteration before adding the keys
to the property name array.

2. getOwnPropertyNames side
So we can use the PropertyNameMode in the caller side (getOwnPropertyNames) as a **hint**.
When the large iteration may occur, the caller side can use the PropertyNameMode as a hint to
avoid the iteration.
But we cannot exclusively rely on these caller side checks because it would require that we
exhaustively add the checks to all custom implementations of getOwnPropertyNames as well.
This process requires manual inspection of many pieces of code, and is error prone. Instead,
we only apply the caller side check in a few strategic places where it is known to yield
performance benefits; and we rely on the filter in PropertyNameArray::add() to reject the wrong
types of properties for all other calls to PropertyNameArray::add().

In this patch, there's a concept in use that is not clear just from reading the code, and hence
should be documented here. When selecting the PropertyNameMode for the PropertyNameArray to be
instantiated, we apply the following logic:

1. Only JavaScriptCore code is aware of ES6 Symbols.
We can assume that pre-existing external code that interfaces JSC are only looking for string named properties. This includes:
    a. WebCore bindings
    b. Serializer bindings
    c. NPAPI bindings
    d. Objective C bindings
2. In JSC, code that compute object storage space needs to iterate both Symbol and String named properties. Hence, use PropertyNameMode::Both.
3. In JSC, ES6 APIs that work with Symbols should use PropertyNameMode::Symbols.
4. In JSC, ES6 APIs that work with String named properties should use PropertyNameMode::Strings.

* API/JSObjectRef.cpp:
(JSObjectCopyPropertyNames):
* bindings/ScriptValue.cpp:
(Deprecated::jsToInspectorValue):
* bytecode/ObjectAllocationProfile.h:
(JSC::ObjectAllocationProfile::possibleDefaultPropertyCount):
* runtime/EnumerationMode.h:
(JSC::EnumerationMode::EnumerationMode):
(JSC::EnumerationMode::includeSymbolProperties): Deleted.
* runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments<Type>::getOwnPropertyNames):
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertyNames):
* runtime/JSLexicalEnvironment.cpp:
(JSC::JSLexicalEnvironment::getOwnNonIndexPropertyNames):
* runtime/JSONObject.cpp:
(JSC::Stringifier::Stringifier):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):
* runtime/JSObject.cpp:
(JSC::JSObject::getOwnPropertyNames):
* runtime/JSPropertyNameEnumerator.cpp:
(JSC::JSPropertyNameEnumerator::create):
* runtime/JSPropertyNameEnumerator.h:
(JSC::propertyNameEnumerator):
* runtime/JSSymbolTableObject.cpp:
(JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorGetOwnPropertyNames):
(JSC::objectConstructorGetOwnPropertySymbols):
(JSC::objectConstructorKeys):
(JSC::defineProperties):
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):
* runtime/PropertyNameArray.h:
(JSC::PropertyNameArray::PropertyNameArray):
(JSC::PropertyNameArray::mode):
(JSC::PropertyNameArray::addKnownUnique):
(JSC::PropertyNameArray::add):
(JSC::PropertyNameArray::isUidMatchedToTypeMode):
(JSC::PropertyNameArray::includeSymbolProperties):
(JSC::PropertyNameArray::includeStringProperties):
* runtime/StringObject.cpp:
(JSC::StringObject::getOwnPropertyNames):
* runtime/Structure.cpp:
(JSC::Structure::getPropertyNamesFromStructure):

Source/WebCore:

* bindings/js/Dictionary.cpp:
(WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
(WebCore::Dictionary::getOwnPropertyNames):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
* bridge/NP_jsobject.cpp:
(_NPN_Enumerate):

Source/WebKit/mac:

* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::enumerate):

Source/WebKit2:

* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::enumerate):

LayoutTests:

* js/regress/object-get-own-property-symbols-on-large-array-expected.txt: Added.
* js/regress/object-get-own-property-symbols-on-large-array.html: Added.
* js/regress/script-tests/object-get-own-property-symbols-on-large-array.js: Added.
(trial):

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

4 years agoREGRESSION (r187149): Build fails when CSS_SELECTORS_LEVEL4 is disabled
ddkilzer@apple.com [Fri, 24 Jul 2015 18:51:48 +0000 (18:51 +0000)]
REGRESSION (r187149): Build fails when CSS_SELECTORS_LEVEL4 is disabled

This is a follow-up fix to:
    [CSS Selectors Level 4] Add #ifdefs to the new '>>' descendant combinator
    <https://bugs.webkit.org/show_bug.cgi?id=147184>

* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::appendTagHistory):
* css/CSSParserValues.h:
* css/CSSSelector.h:
- Change ENABLE_CSS_SELECTORS_LEVEL4 to
  ENABLE(CSS_SELECTORS_LEVEL4).

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

4 years agoWeb Inspector: Editing non-inspector-stylesheet rule selectors fails after the first...
drousso@apple.com [Fri, 24 Jul 2015 18:48:17 +0000 (18:48 +0000)]
Web Inspector: Editing non-inspector-stylesheet rule selectors fails after the first change
https://bugs.webkit.org/show_bug.cgi?id=147229

Reviewed by Timothy Hatcher.

Source/WebCore:

Test: inspector/css/modify-rule-selector.html

* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::setRuleSelector):
Now checks to see if the stylesheet is not mutated before making the change to the
rule's selector, and if so mark it as not mutated to allow future edits.

LayoutTests:

* inspector/css/modify-rule-selector-expected.txt: Added.
* inspector/css/modify-rule-selector.html: Added.

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

4 years ago[ES6] Add support for default parameters
saambarati1@gmail.com [Fri, 24 Jul 2015 18:40:58 +0000 (18:40 +0000)]
[ES6] Add support for default parameters
https://bugs.webkit.org/show_bug.cgi?id=38409

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch implements ES6 default parameters according to the ES6
specification. This patch builds off the components introduced with
"let" scoping and parsing function parameters in the same parser
arena as the function itself. "let" scoping allows functions with default
parameter values to place their parameters under the TDZ. Parsing function
parameters in the same parser arena allows the FunctionParameters AST node
refer to ExpressionNodes.

The most subtle part of this patch is how we allocate lexical environments
when functions have default parameter values. If a function has default
parameter values then there must be a separate lexical environment for
its parameters. Then, the function's "var" lexical environment must have
the parameter lexical environment as its parent. The BytecodeGenerator
takes great care to not allocate the "var" lexical environment before its
really needed.

The "arguments" object for a function with default parameters will never be
a mapped arugments object. It will always be a cloned arugments object.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::~BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeNextParameter):
(JSC::BytecodeGenerator::initializeVarLexicalEnvironment):
(JSC::BytecodeGenerator::visibleNameForParameter):
(JSC::BytecodeGenerator::emitLoadGlobalObject):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::popLexicalScope):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::lastOpcodeID):
* bytecompiler/NodesCodegen.cpp:
(JSC::FunctionNode::emitBytecode):
* jit/JITOperations.cpp:
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createElementList):
(JSC::ASTBuilder::createFormalParameterList):
(JSC::ASTBuilder::appendParameter):
(JSC::ASTBuilder::createClause):
(JSC::ASTBuilder::createClauseList):
* parser/Nodes.h:
(JSC::FunctionParameters::size):
(JSC::FunctionParameters::at):
(JSC::FunctionParameters::hasDefaultParameterValues):
(JSC::FunctionParameters::append):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::tryParseDestructuringPatternExpression):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::Parser<LexerType>::parseFunctionParameters):
* parser/Parser.h:
(JSC::Scope::declareParameter):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createElementList):
(JSC::SyntaxChecker::createFormalParameterList):
(JSC::SyntaxChecker::appendParameter):
(JSC::SyntaxChecker::createClause):
(JSC::SyntaxChecker::createClauseList):
* tests/stress/es6-default-parameters.js: Added.
(assert):
(shouldThrow):
(shouldThrowSyntaxError):
(shouldThrowTDZ):
(basic):
(basicFunctionCaptureInDefault.basicFunctionCaptureInDefault.basicCaptured):
(basicCaptured.basicCaptured.tricky):
(strict):
(playground):
(scoping):
(augmentsArguments1):
(augmentsArguments2):
(augmentsArguments3):
(augmentsArguments4):
(augmentsArguments5):

LayoutTests:

* js/destructuring-assignment-default-values-expected.txt:
* js/parser-syntax-check-expected.txt:
* js/script-tests/destructuring-assignment-default-values.js:
(shouldThrow): Deleted.
* js/script-tests/parser-syntax-check.js:

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

4 years agoWeb Inspector: Add custom parameter lists for new DOM append/prepend/before/after...
commit-queue@webkit.org [Fri, 24 Jul 2015 18:39:41 +0000 (18:39 +0000)]
Web Inspector: Add custom parameter lists for new DOM append/prepend/before/after/replaceWith methods
https://bugs.webkit.org/show_bug.cgi?id=147257

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

* UserInterface/Models/NativeFunctionParameters.js:

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

4 years agoRemove JS Promise constructor unused piece of code
calvaris@igalia.com [Fri, 24 Jul 2015 18:36:03 +0000 (18:36 +0000)]
Remove JS Promise constructor unused piece of code
https://bugs.webkit.org/show_bug.cgi?id=147262

Reviewed by Geoffrey Garen.

* runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise): Deleted.
* runtime/JSPromiseConstructor.h: Removed JSC::constructPromise.

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

4 years agoAdd WASM files to vcxproj files.
mark.lam@apple.com [Fri, 24 Jul 2015 18:32:18 +0000 (18:32 +0000)]
Add WASM files to vcxproj files.
https://bugs.webkit.org/show_bug.cgi?id=147264

Reviewed by Geoffrey Garen.

This is a follow up to http://trac.webkit.org/changeset/187254 where WASM files
were introduced but were not able to be added to the vcxproj files yet.

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:

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

4 years agoDFG::safeToExecute() is wrong for MultiGetByOffset, doesn't consider the structures...
fpizlo@apple.com [Fri, 24 Jul 2015 18:23:13 +0000 (18:23 +0000)]
DFG::safeToExecute() is wrong for MultiGetByOffset, doesn't consider the structures of the prototypes that get loaded from
https://bugs.webkit.org/show_bug.cgi?id=147250

Reviewed by Geoffrey Garen.

This fixes a nasty - but currently benign - bug in DFG::safeToExecute(). That function
will tell you if hoisting a node to some point is safe in the sense that the node will
not crash the VM if it executes at that point. A node may be unsafe to execute if we
cannot prove that at that point, the memory it is loading is not garbage. This is a
necessarily loose notion - for example it's OK to hoist a load if we haven't proved
that the load makes semantic sense at that point, since anyway the place where the node
did get used will still be guarded by any such semantic checks. But because we may also
hoist uses of the load, we need to make sure that it doesn't produce a garbage value.
Also, we need to ensure that the load won't trap. Hence safeToExecute() returns true
anytime we can be sure that a node will not produce a garbage result (i.e. a malformed
JSValue or object pointer) and will not trap when executed at the point in question.

The bug is that this verification isn't performed for the loads from prototypes inside
MultiGetByOffset. DFG::ByteCodeParser will guard MultiGetByOffset with CheckStructure's
on the prototypes. So, hypothetically, you might end up hoisting a MultiGetByOffset
above those structure checks, which would mean that we might load a value from a memory
location without knowing that the location is valid. It might then return the value
loaded.

This never happens in practice. Those structure checks are more hoistable that the
MultiGetByOffset, since they read a strict subset of the MultiGetByOffset's abstract
heap reads. Also, we hoist in program order. So, those CheckStructure's will always be
hoisted before the MultiGetByOffset gets hoisted.

But we should fix this anyway. DFG::safeToExecute() has a clear definition of what a
"true" return means for IR transformations, and it fails in satisfying that definition
for MultiGetByOffset.

There are various approaches we can use for making this safe. I considered two:

1) Have MultiGetByOffset refer to the prototypes it is loading from in IR, so that we
   can check if it's safe to load from them.

2) Turn off MultiGetByOffset hoisting when it will emit loads from prototypes, and the
   prototype structure isn't being watched.

I ended up using (2), because it will be the most natural solution once I finish
https://bugs.webkit.org/show_bug.cgi?id=146929. Already now, it's somewhat more natural
than (1) since that requires more extensive IR changes. Also, (2) will give us what we
want in *most* cases: we will usually watch the prototype structure, and we will
usually constant-fold loads from prototypes. Both of these usually-true things would
have to become false for MultiGetByOffset hoisting to be disabled by this change.

This change also adds my attempt at a test, though it's not really a test of this bug.
This bug is currently benign. But, the test does at least trigger the logic to run,
which is better than nothing.

* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* tests/stress/multi-get-by-offset-hoist-around-structure-check.js: Added.
(foo):

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

4 years agoRecode.net gets into a continual resize loop in split fullscreen
simon.fraser@apple.com [Fri, 24 Jul 2015 17:51:05 +0000 (17:51 +0000)]
Recode.net gets into a continual resize loop in split fullscreen
https://bugs.webkit.org/show_bug.cgi?id=147266
rdar://problem/21409047

Reviewed by Tim Horton.

In split fullscreen, we use fixed layout and scale to shrink pages down to
fit a given width. This is re-evaluated every time the document width changes.
However some pages, like recode.net, end up continually resizing because
when laid out unconstrained they use a narrower width than when laid out with
a fixed layout size. In fixed layout, they actually use more width than the fixed
layout size.

Detect and break this cycle by just not re-scaling when we've done one fixed layout,
and the document is now taking more width than the fixed layout width.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded):

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

4 years agoCSS "content" property is missing in getComputedStyles
commit-queue@webkit.org [Fri, 24 Jul 2015 16:07:30 +0000 (16:07 +0000)]
CSS "content" property is missing in getComputedStyles
https://bugs.webkit.org/show_bug.cgi?id=147255

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-07-24
Reviewed by Simon Fraser.

Source/WebCore:

* css/CSSComputedStyleDeclaration.cpp:

LayoutTests:

* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/css/getComputedStyle/resources/property-names.js:
* svg/css/getComputedStyle-basic-expected.txt:

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

4 years ago[EFL] many fast tests are flaky
ossy@webkit.org [Fri, 24 Jul 2015 14:49:18 +0000 (14:49 +0000)]
[EFL] many fast tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=145835

Unreviewed gardening. These tests aren't flakey now, let's unskip them.

* platform/efl/TestExpectations:

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

4 years ago[EFL] Multi-column tests have been failed since r167808
ossy@webkit.org [Fri, 24 Jul 2015 14:17:14 +0000 (14:17 +0000)]
[EFL] Multi-column tests have been failed since r167808
https://bugs.webkit.org/show_bug.cgi?id=141496

Unreviewed gardening, updated expected results.

* platform/efl/TestExpectations:
* platform/efl/fast/multicol/client-rects-expected.png:
* platform/efl/fast/multicol/client-rects-expected.txt:
* platform/efl/fast/multicol/client-rects-spanners-complex-expected.png: Added.
* platform/efl/fast/multicol/client-rects-spanners-complex-expected.txt:
* platform/efl/fast/multicol/client-rects-spanners-expected.png: Added.
* platform/efl/fast/multicol/client-rects-spanners-expected.txt:
* platform/efl/fast/multicol/layers-split-across-columns-expected.png:
* platform/efl/fast/multicol/layers-split-across-columns-expected.txt:
* platform/efl/fast/multicol/newmulticol/client-rects-expected.png: Added.
* platform/efl/fast/multicol/newmulticol/client-rects-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-tb-hittest-expected.png: Added.
* platform/efl/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt: Added.
* platform/efl/fast/multicol/pagination/RightToLeft-rl-hittest-expected.png: Added.
* platform/efl/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt: Added.

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

4 years ago[EFL] Unreviewed gardening, unskip now passing tests.
ossy@webkit.org [Fri, 24 Jul 2015 14:06:53 +0000 (14:06 +0000)]
[EFL] Unreviewed gardening, unskip now passing tests.

* platform/efl/TestExpectations:

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

4 years ago[EFL] Unreviewed gardening. Updated since MEDIA_STREAM is enabled.
ossy@webkit.org [Fri, 24 Jul 2015 12:59:50 +0000 (12:59 +0000)]
[EFL] Unreviewed gardening. Updated since MEDIA_STREAM is enabled.

* platform/efl/js/dom/constructor-length-expected.txt:

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

4 years agoRemove the unused GCC workaround - std::is_trivially_destructible
ossy@webkit.org [Fri, 24 Jul 2015 12:51:49 +0000 (12:51 +0000)]
Remove the unused GCC workaround - std::is_trivially_destructible
https://bugs.webkit.org/show_bug.cgi?id=147226

Reviewed by Darin Adler.

* wtf/StdLibExtras.h:

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

4 years ago[GStreamer] Crashes during plugin installation
carlosgc@webkit.org [Fri, 24 Jul 2015 12:06:34 +0000 (12:06 +0000)]
[GStreamer] Crashes during plugin installation
https://bugs.webkit.org/show_bug.cgi?id=144099

Reviewed by Philippe Normand.

Source/WebCore:

Add new methods to MediaPlayerClient and ChromeClient to request
the API layer to start the installer when there are missing media
plugins.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::requestInstallMissingPlugins): Pass
the request to the ChromeClient.
* html/HTMLMediaElement.h:
* page/ChromeClient.h:
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::requestInstallMissingPlugins):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
Invalidate any pending request to install missing media plugins.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): In case of
missing plugins message, start a request to install them if
supported by GST.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::create):
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::MediaPlayerRequestInstallMissingPluginsCallback):
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::invalidate):
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::complete):

Source/WebKit2:

Move the missing plugins installation to the UI process, ensuring
there's a single installer running and cancelling the request when
the page is closed or the media player is deleted.

* PlatformEfl.cmake: Add new files to compilation.
* PlatformGTK.cmake: Ditto.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Add
RequestInstallMissingMediaPlugins message.
* UIProcess/gstreamer/WebPageProxyGStreamer.cpp: Added.
(WebKit::WebPageProxy::requestInstallMissingMediaPlugins): Call
gst_install_plugins_async() and send
DidEndRequestInstallMissingMediaPlugins message back to the web
process when done.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::requestInstallMissingMediaPlugins): Call
WebPage::requestInstallMissingMediaPlugins().
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close): Invalidate the install missing plugins
request callback.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Add
DidEndRequestInstallMissingMediaPlugins message.
* WebProcess/WebPage/gstreamer/WebPageGStreamer.cpp: Added.
(WebKit::WebPage::requestInstallMissingMediaPlugins): Send
RequestInstallMissingMediaPlugins to the UI process or complete
the request early if there's already a request in progress.
(WebKit::WebPage::didEndRequestInstallMissingMediaPlugins):
Complete the request.

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

4 years agoUnreviewed. Fix the build with MEDIA_STREAM disabled after r187282.
carlosgc@webkit.org [Fri, 24 Jul 2015 11:58:52 +0000 (11:58 +0000)]
Unreviewed. Fix the build with MEDIA_STREAM disabled after r187282.

RealtimeMediaSource is only defined when MEDIA_STREAM is enabled.

* UIProcess/UserMediaPermissionRequestProxy.cpp:
* UIProcess/UserMediaPermissionRequestProxy.h:

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

4 years agoREGRESSION(r187100): [GTK] ASSERTION FAILED: Attempt to access post layout data befor...
carlosgc@webkit.org [Fri, 24 Jul 2015 11:27:32 +0000 (11:27 +0000)]
REGRESSION(r187100): [GTK] ASSERTION FAILED: Attempt to access post layout data before receiving it when typing backspace
https://bugs.webkit.org/show_bug.cgi?id=147196

Reviewed by Žan Doberšek.

Do not try to use the PostLayoutData from EditorState when
isMissingPostLayoutData is true. That happens when there's a
layout pending, and EditorStateChanged is sent again after that
layout with the post layout data. So we can just return early and
wait until the second message.

* UIProcess/API/gtk/WebKitEditorState.cpp:
(webkitEditorStateChanged):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseUpdateTextInputState):

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

4 years agocommit-queue flags in webkit-patch are confusing
commit-queue@webkit.org [Fri, 24 Jul 2015 08:03:51 +0000 (08:03 +0000)]
commit-queue flags in webkit-patch are confusing
https://bugs.webkit.org/show_bug.cgi?id=88694

Patch by Dean Johnson <dean_johnson@apple.com> on 2015-07-24
Reviewed by Csaba Osztrogonác.

* Scripts/webkitpy/tool/steps/options.py:
(Options): Updated help string to be more descriptive.

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

4 years agoFix 32-bit build after r187272.
achristensen@apple.com [Fri, 24 Jul 2015 04:58:43 +0000 (04:58 +0000)]
Fix 32-bit build after r187272.

* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged):
Added some WK_API_ENABLED.

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

4 years ago<rdar://problem/21929532> REGRESSION (r184026): Safari AutoFill with Contact info...
mitz@apple.com [Fri, 24 Jul 2015 04:53:26 +0000 (04:53 +0000)]
<rdar://problem/21929532> REGRESSION (r184026): Safari AutoFill with Contact info for phone number is broken
https://bugs.webkit.org/show_bug.cgi?id=147249

Reviewed by Sam Weinig.

* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeObject): Use encodeString only for strings that encode as NSString or
NSMutableString. It can’t encode arbitrary NSString subclasses.
(decodeObject): Use decodeString for NSMutableString as well.

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

4 years ago[Win] Unreviewed build fix after r187245.
achristensen@apple.com [Fri, 24 Jul 2015 04:38:54 +0000 (04:38 +0000)]
[Win] Unreviewed build fix after r187245.

* PlatformWin.cmake:
Add GDIUtilities.cpp to CMake build.

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

4 years ago[iOS] REGRESSION (187131): Loading CuteOverload zooms in to the top left corner.
zalan@apple.com [Fri, 24 Jul 2015 04:16:02 +0000 (04:16 +0000)]
[iOS] REGRESSION (187131): Loading CuteOverload zooms in to the top left corner.
https://bugs.webkit.org/show_bug.cgi?id=147251
rdar://problem/21953359

Calling zoomToRect() should result in essentially the same zoom scale as if we
called setZoomScale with the new page scale factor.

Reviewed by Benjamin Poulain.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):

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

4 years agoImplement WebAssembly modules
commit-queue@webkit.org [Fri, 24 Jul 2015 02:35:37 +0000 (02:35 +0000)]
Implement WebAssembly modules
https://bugs.webkit.org/show_bug.cgi?id=147222

Patch by Sukolsak Sakshuwong <sukolsak@gmail.com> on 2015-07-23
Reviewed by Filip Pizlo.

Make JSWASMModule inherit from JSDestructibleObject so that the destructor is called.

* wasm/JSWASMModule.h:

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

4 years agoLinking WebKit2 to be able to grab media sources from a UID
commit-queue@webkit.org [Fri, 24 Jul 2015 02:23:38 +0000 (02:23 +0000)]
Linking WebKit2 to be able to grab media sources from a UID
https://bugs.webkit.org/show_bug.cgi?id=147202
<rdar://problem/21947608>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-23
Reviewed by Brent Fulgham.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/RealtimeMediaSourceCenter.h:
* platform/mediastream/mac/AVCaptureDeviceManager.h:
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::sourceWithUID):
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::sourceWithUID):
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::sourceWithUID):
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
* platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::sourceWithUID):
* platform/mock/MockRealtimeMediaSourceCenter.h:

Source/WebKit2:

* UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::getDeviceNameForUID):
* UIProcess/UserMediaPermissionRequestProxy.h:

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

4 years agoUnreviewed build fix after r187245.
achristensen@apple.com [Fri, 24 Jul 2015 01:22:28 +0000 (01:22 +0000)]
Unreviewed build fix after r187245.

* WebView.cpp:
WM_DPICHANGED is #defined, which causes problems if we try to use it as a variable name.

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

4 years agoWeb Inspector: jittery cursor when adjusting time interval using timeline grabbers
mattbaker@apple.com [Fri, 24 Jul 2015 01:00:01 +0000 (01:00 +0000)]
Web Inspector: jittery cursor when adjusting time interval using timeline grabbers
https://bugs.webkit.org/show_bug.cgi?id=147095

Reviewed by Brian Burg.

* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler.resizing-selection > .selection-drag):
Override selection-drag element's cursor when "resizing-selection" selector is applied.
(.timeline-ruler.allows-time-range-selection.creating-selection): Deleted.
Renamed "creating-selection" selector to "resizing-selection" to reflect its new role.

* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseUp):
Toggle cursor styles.

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

4 years agoRemove compile and runtime flags for promises.
achristensen@apple.com [Fri, 24 Jul 2015 00:55:10 +0000 (00:55 +0000)]
Remove compile and runtime flags for promises.
https://bugs.webkit.org/show_bug.cgi?id=147244

Reviewed by Yusuke Suzuki.

.:

* Source/cmake/OptionsMac.cmake:
* Source/cmake/OptionsWindows.cmake:
* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

* API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::JSCallbackObject):
* API/JSContextRef.cpp:
(JSGlobalContextCreateInGroup):
* Configurations/FeatureDefines.xcconfig:
* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::getInternalProperties):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::create):
(JSC::JSGlobalObject::syntaxErrorConstructor):
(JSC::JSGlobalObject::typeErrorConstructor):
(JSC::JSGlobalObject::URIErrorConstructor):
(JSC::JSGlobalObject::promiseConstructor):
(JSC::JSGlobalObject::nullGetterFunction):
(JSC::JSGlobalObject::nullSetterFunction):
(JSC::JSGlobalObject::applyFunction):
(JSC::JSGlobalObject::definePropertyFunction):
(JSC::JSGlobalObject::arrayProtoValuesFunction):
(JSC::JSGlobalObject::initializePromiseFunction):
(JSC::JSGlobalObject::newPromiseDeferredFunction):
(JSC::JSGlobalObject::throwTypeErrorGetterSetter):
(JSC::JSGlobalObject::regExpPrototype):
(JSC::JSGlobalObject::errorPrototype):
(JSC::JSGlobalObject::iteratorPrototype):
(JSC::JSGlobalObject::promisePrototype):
(JSC::JSGlobalObject::debuggerScopeStructure):
(JSC::JSGlobalObject::withScopeStructure):
(JSC::JSGlobalObject::iteratorResultStructure):
(JSC::JSGlobalObject::iteratorResultStructureOffset):
(JSC::JSGlobalObject::regExpMatchesArrayStructure):
(JSC::JSGlobalObject::promiseStructure):
* runtime/JSPromise.cpp:
(JSC::JSPromise::result):
* runtime/JSPromise.h:
* runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise):
* runtime/JSPromiseConstructor.h:
* runtime/JSPromiseDeferred.cpp:
(JSC::JSPromiseDeferred::visitChildren):
* runtime/JSPromiseDeferred.h:
* runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototype::getOwnPropertySlot):
* runtime/JSPromisePrototype.h:
* runtime/RuntimeFlags.h:
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:
* bindings/js/JSDOMPromise.cpp:
(WebCore::rejectPromiseWithExceptionIfAny):
* bindings/js/JSDOMPromise.h:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:
* WebView/WebPreferencesPrivate.h:

Source/WebKit/win:

* Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WTF:

* wtf/FeatureDefines.h:

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

4 years agoAX: AccessibilityNodeObject::childrenChanged() generates too many AXLiveRegionChanged...
commit-queue@webkit.org [Fri, 24 Jul 2015 00:32:32 +0000 (00:32 +0000)]
AX: AccessibilityNodeObject::childrenChanged() generates too many AXLiveRegionChanged notifications
https://bugs.webkit.org/show_bug.cgi?id=147211
<rdar://problem/19908029>

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

Source/WebCore:

AccessibilityNodeObject::childrenChanged() can be called repeatedly, generating a live region
change notification each time. Sometimes, so many happen that VoiceOver hangs. We can use a timer
to make sure that we coalesce these notifications.

Test: platform/mac/accessibility/aria-multiple-liveregions-notification.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXComputedObjectAttributeCache::getIgnored):
(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::frameLoadingEventNotification):
(WebCore::AXObjectCache::postLiveRegionChangeNotification):
(WebCore::AXObjectCache::liveRegionChangedNotificationPostTimerFired):
(WebCore::AXObjectCache::handleScrollbarUpdate):
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::childrenChanged):

LayoutTests:

* platform/mac/accessibility/aria-liveregions-notifications-always-sent-expected.txt:
* platform/mac/accessibility/aria-liveregions-notifications-always-sent.html:
* platform/mac/accessibility/aria-liveregions-notifications-expected.txt:
* platform/mac/accessibility/aria-liveregions-notifications.html:
* platform/mac/accessibility/aria-multiple-liveregions-notification-expected.txt: Added.
* platform/mac/accessibility/aria-multiple-liveregions-notification.html: Added.

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

4 years ago[iOS] Frame snapshots don't factor in page scale
timothy_horton@apple.com [Fri, 24 Jul 2015 00:19:58 +0000 (00:19 +0000)]
[iOS] Frame snapshots don't factor in page scale
https://bugs.webkit.org/show_bug.cgi?id=147239
<rdar://problem/21905756>

Reviewed by Simon Fraser.

* page/FrameSnapshotting.cpp:
(WebCore::snapshotFrameRect):
Apply page scale when determining the backing store size and setting up the context.

* page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithSelectionInFrame):
Don't assume snapshotFrameRect gave us an image with scale=deviceScale, because it
will factor in the pageScale too.

* platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::resolutionScale):
Expose resolutionScale.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMap):
This has been true for a long time.

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

4 years agoAdding Web Components to feature status page.
jond@apple.com [Fri, 24 Jul 2015 00:08:54 +0000 (00:08 +0000)]
Adding Web Components to feature status page.
https://bugs.webkit.org/show_bug.cgi?id=147209

Reviewed by Timothy Hatcher.

* features.json:

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

4 years agoNotify the UI delegate when a MediaDocument's natural size changes
jer.noble@apple.com [Thu, 23 Jul 2015 23:46:59 +0000 (23:46 +0000)]
Notify the UI delegate when a MediaDocument's natural size changes
https://bugs.webkit.org/show_bug.cgi?id=147182

Reviewed by Simon Fraser.

Source/WebCore:

Notify the MediaDocument that it's underlying media element has changed its natural size, either when
the media engine notifies us that the size changed, or when the ready state progresses to HAVE_METADATA.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState): Notify the media document.
(WebCore::HTMLMediaElement::mediaPlayerSizeChanged): Ditto.
* html/MediaDocument.cpp:
(WebCore::MediaDocument::mediaElementNaturalSizeChanged): Pass to the chrome client.
* html/MediaDocument.h:
* page/ChromeClient.h:

Source/WebKit2:

Pipe notifications of media document natural size changes up from the chrome client, through
to the UIProcess,  through the page client, through the WKWebView, to the UIDelegate.

* UIProcess/API/APIUIClient.h:
(API::UIClient::mediaDocumentNaturalSizeChanged):
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mediaDocumentNaturalSizeChanged:]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::mediaDocumentNaturalSizeChanged):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::mediaDocumentNaturalSizeChanged):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::mediaDocumentNaturalSizeChanged):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mediaDocumentNaturalSizeChanged):
* WebProcess/WebPage/WebPage.h:
* UIProcess/API/gtk/PageClientImpl.h: Add default, empty implementation of new pure-virtual method.
* UIProcess/efl/WebViewEfl.h: Ditto.

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

4 years agoLayer z-ordering is incorrect when scrolling on page witih position:fixed
simon.fraser@apple.com [Thu, 23 Jul 2015 23:43:35 +0000 (23:43 +0000)]
Layer z-ordering is incorrect when scrolling on page witih position:fixed
https://bugs.webkit.org/show_bug.cgi?id=147220
rdar://problem/15849697&21929247

Reviewed by Dean Jackson.

Source/WebCore:

Overlap testing for compositing uses the currently laid out position of fixed
elements, without taking into account the fact that async scrolling can move
them around, and possibly under other non-composited elements. This manifested
as position:fixed elements moving over other elements on some pages when
scrolling, when they should have moved behind.

Fix by expanding the overlap map entry for position:fixed elements to create
an rect for the area they cover at all scroll locations, taking min and max
scroll offsets into account.

Also add a couple more LOG(Compositing) statements.

Tests: compositing/layer-creation/fixed-overlap-extent-rtl.html
       compositing/layer-creation/fixed-overlap-extent.html

* rendering/RenderLayerCompositor.cpp:
(WebCore::fixedPositionOffset):
(WebCore::RenderLayerCompositor::computeExtent):
(WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer):
(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged):

LayoutTests:

Tests that reveal the overlap area by creating lots of small layers, and dumping
the layer tree.

* compositing/layer-creation/fixed-overlap-extent-expected.txt: Added.
* compositing/layer-creation/fixed-overlap-extent-rtl-expected.txt: Added.
* compositing/layer-creation/fixed-overlap-extent-rtl.html: Added.
* compositing/layer-creation/fixed-overlap-extent.html: Added.

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

4 years agobmalloc: Shrink the super chunk size (again)
ggaren@apple.com [Thu, 23 Jul 2015 23:33:05 +0000 (23:33 +0000)]
bmalloc: Shrink the super chunk size (again)
https://bugs.webkit.org/show_bug.cgi?id=147240

Reviewed by Andreas Kling.

Shrinking to 8MB reduced VM exhaustion crashes but did not eliminate them.
Let's try 4MB.

(My previous comment was that the maximum fast object was 2MB. But it
was 4MB! Now it's 2MB for realsies.)

* bmalloc/Sizes.h:

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

4 years agoWeb Inspector: rewrite inspector-protocol/console tests to use new testing patterns
burg@cs.washington.edu [Thu, 23 Jul 2015 23:20:31 +0000 (23:20 +0000)]
Web Inspector: rewrite inspector-protocol/console tests to use new testing patterns
https://bugs.webkit.org/show_bug.cgi?id=147231

Reviewed by Joseph Pecoraro.

Restructure existing protocol tests for Console.messageAdded to use Promises and
modern event listener test interfaces. Add some new functionality to make it easier
install multiple protocol event listeners without clobbering.

This test also splits warnings-errors.html into two tests, one to cover CSS parser
warnings and one for JavaScript parser and runtime errors.

* http/tests/inspector-protocol/resources/InspectorTest.js:
(InspectorTest.sendCommand): Support arguments packaged in an object. This style is preferable
in tests because it is very explicit about what functionality and messages are covered.

(InspectorTest.awaitEvent): Added. This is a single-shot event listener that resolves a
promise when the desired protocol event is dispatched.

(InspectorTest.addEventListener): Reimplemented, based on code from WebInspector.Object.
Allows multiple listeners to be registered for a single protocol event.

(InspectorTest.AsyncTestSuite.prototype.runTestCases):
(InspectorTest.AsyncTestSuite):
(InspectorTest.SyncTestSuite.prototype.runTestCases):
(InspectorTest.SyncTestSuite):
(InspectorTest.log): Improve the formatting of test suite/test case output.

(InspectorFrontendAPI.dispatchMessageAsync): Dispatch to an array of listeners if available.
(InspectorTest.importScript): Clarify that this method performs a synchronous load.
(.InspectorTest.eventHandler.eventName): Deleted.
* inspector-protocol/async-test-suite-expected.txt: Rebaseline whitespace.
* inspector-protocol/sync-test-suite-expected.txt: Rebaseline whitespace.
* inspector-protocol/console/console-message-expected.txt:
* inspector-protocol/console/console-message.html:
* inspector-protocol/console/css-source-locations-expected.txt: Added.
* inspector-protocol/console/css-source-locations.html: Added.
* inspector-protocol/console/js-source-locations-expected.txt: Added.
* inspector-protocol/console/js-source-locations.html: Added.
* inspector-protocol/console/warnings-errors-expected.txt: Removed.
* inspector-protocol/console/warnings-errors.html: Removed.
* inspector-protocol/runtime/getProperties-expected.txt: Rebaseline whitespace.

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

4 years agoRemoving one incorrect annotation from the previous change.
enrica@apple.com [Thu, 23 Jul 2015 23:16:07 +0000 (23:16 +0000)]
Removing one incorrect annotation from the previous change.

Unreviewed.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:

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

4 years ago[iOS] Add another preview delegate for didDismissPreview.
enrica@apple.com [Thu, 23 Jul 2015 23:08:11 +0000 (23:08 +0000)]
[iOS] Add another preview delegate for didDismissPreview.
https://bugs.webkit.org/show_bug.cgi?id=147241
rdar://problem/21664211

Reviewed by Tim Horton and Yongjun Zhang.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _previewItemController:didDismissPreview:committing:]):

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

4 years ago<rdar://problem/21910578> Second pass at [iOS] Keyboard shortcuts that take focus...
mitz@apple.com [Thu, 23 Jul 2015 23:06:44 +0000 (23:06 +0000)]
<rdar://problem/21910578> Second pass at [iOS] Keyboard shortcuts that take focus away from the web view end up typing a letter into the newly focused field
https://bugs.webkit.org/show_bug.cgi?id=146732

Reviewed by Darin Adler.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _interpretKeyEvent:isCharEvent:]): Rather than checking if the view is
first responder, which it might still be when the Web Content processes invokes this
callback, check if we are in editable content before forwarding the event to the keyboard.

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

4 years agoWindows test result gardening after Mac libxml changes.
ap@apple.com [Thu, 23 Jul 2015 22:53:12 +0000 (22:53 +0000)]
Windows test result gardening after Mac libxml changes.

* platform/win/fast/dom/adopt-attribute-crash-expected.txt: Added.
* platform/win/fast/parser/xml-colon-entity-expected.txt: Added.
* platform/win/fast/parser/xml-declaration-missing-ending-mark-expected.txt: Added.
* platform/win/svg/custom/bug78807-expected.txt: Added.

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

4 years agoUnreviewed build fix after r187251; rename flag -> allows.
jer.noble@apple.com [Thu, 23 Jul 2015 22:32:51 +0000 (22:32 +0000)]
Unreviewed build fix after r187251; rename flag -> allows.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback):

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

4 years ago[iOS] Unreviewed build fix after r187251.
achristensen@apple.com [Thu, 23 Jul 2015 22:29:51 +0000 (22:29 +0000)]
[iOS] Unreviewed build fix after r187251.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback):
Use the correct name for the boolean to pass along to SetAllowsMediaDocumentInlinePlayback.

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

4 years agoRelax media playback restrictions if the allowsMediaDocumentInlinePlayback property...
jer.noble@apple.com [Thu, 23 Jul 2015 22:23:28 +0000 (22:23 +0000)]
Relax media playback restrictions if the allowsMediaDocumentInlinePlayback property is set.
https://bugs.webkit.org/show_bug.cgi?id=147234

Reviewed by Darin Adler.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad): Moved restriction check into MediaElementSession.
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackPermitted): Check if is a top-level media document and if
    allowsMediaDocumentInilnePlayback is set, and return early.
(WebCore::MediaElementSession::effectivePreloadForElement): Ditto.
(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading): Ditto.
* html/MediaElementSession.h:

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

4 years agoOne more iOS build fix.
enrica@apple.com [Thu, 23 Jul 2015 22:16:18 +0000 (22:16 +0000)]
One more iOS build fix.

Unreviewed.

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/ios/WKContentViewInteraction.h:

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

4 years agoBridged passing lists of devices between the UIProcess and the WebProcess
commit-queue@webkit.org [Thu, 23 Jul 2015 22:15:22 +0000 (22:15 +0000)]
Bridged passing lists of devices between the UIProcess and the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=147056
<rdar://problem/21883094>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-23
Reviewed by Brent Fulgham.

Source/WebCore:

* Modules/mediastream/UserMediaRequest.h: Added fields to store and
retrieve lists of devices
(WebCore::UserMediaRequest::deviceUIDsVideo):
(WebCore::UserMediaRequest::deviceUIDsAudio):

Source/WebKit2:

* UIProcess/UserMediaPermissionRequestManagerProxy.cpp: Modified file
to reflect changes made to the header in the .messages.in file
(WebKit::UserMediaPermissionRequestManagerProxy::createRequest): Ditto
(WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision):
* UIProcess/UserMediaPermissionRequestManagerProxy.h: Ditto
* UIProcess/UserMediaPermissionRequestProxy.cpp: Ditto
(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
* UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::deviceUIDsVideo):
(WebKit::UserMediaPermissionRequestProxy::deviceUIDsAudio):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Changed heading
* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::startRequest):
(WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision):
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveUserMediaPermissionDecision):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Changed heading

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

4 years agoMedia Session: add support for ducking media elements https://bugs.webkit.org/show_bu...
mrajca@apple.com [Thu, 23 Jul 2015 22:06:56 +0000 (22:06 +0000)]
Media Session: add support for ducking media elements https://bugs.webkit.org/show_bug.cgi?id=147089

Reviewed by Eric Carlson.

Test: media/session/transient-interruptions.html

* Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::handleDuckInterruption): Duck the active media elements.
(WebCore::MediaSession::handleUnduckInterruption): Unduck the active media elements.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateVolume): Lower the volume of media elements to 25% when ducked (constant determined empirically).
(WebCore::HTMLMediaElement::setShouldDuck): Call updateVolume to change the volume of the underlying media player.
* html/HTMLMediaElement.h:

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

4 years agoMedia Session: add infrastructure for testing ducking https://bugs.webkit.org/show_bu...
mrajca@apple.com [Thu, 23 Jul 2015 22:02:07 +0000 (22:02 +0000)]
Media Session: add infrastructure for testing ducking https://bugs.webkit.org/show_bug.cgi?id=147080

Reviewed by Jer Noble.

We need to expose a media element's underlying media player's volume to tests so we can test ducking.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::playerVolume):
* html/HTMLMediaElement.h:
* testing/Internals.cpp:
(WebCore::Internals::mediaElementPlayerVolume):
* testing/Internals.h:
* testing/Internals.idl:

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

4 years agoAdopt the new _previewItemControllerDidCancelPreview delegate method.
commit-queue@webkit.org [Thu, 23 Jul 2015 22:00:16 +0000 (22:00 +0000)]
Adopt the new _previewItemControllerDidCancelPreview delegate method.
https://bugs.webkit.org/show_bug.cgi?id=147238

Don't allow hightlight long press to trigger tap if the link preview is cancelled because
the link is not preview-able.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-23
Reviewed by Beth Dakin.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _previewItemControllerDidCancelPreview:]):

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

4 years agoImplement WebAssembly modules
commit-queue@webkit.org [Thu, 23 Jul 2015 21:26:42 +0000 (21:26 +0000)]
Implement WebAssembly modules
https://bugs.webkit.org/show_bug.cgi?id=147222

Patch by Sukolsak Sakshuwong <sukolsak@gmail.com> on 2015-07-23
Reviewed by Mark Lam.

Introducing the boilerplate data structure for the WebAssembly module.
WebAssembly functionality will be added in a subsequent patch.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* wasm/JSWASMModule.cpp: Added.
(JSC::JSWASMModule::visitChildren):
* wasm/JSWASMModule.h: Added.
(JSC::JSWASMModule::create):
(JSC::JSWASMModule::createStructure):
(JSC::JSWASMModule::JSWASMModule):

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

4 years agoiOS build fix after http://trac.webkit.org/changeset/187238.
enrica@apple.com [Thu, 23 Jul 2015 21:19:28 +0000 (21:19 +0000)]
iOS build fix after trac.webkit.org/changeset/187238.

Unreviewed.

* Platform/spi/ios/UIKitSPI.h:

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

4 years ago[WK2] Add a WKWebView property for whether the view is displaying a media document
jer.noble@apple.com [Thu, 23 Jul 2015 21:17:38 +0000 (21:17 +0000)]
[WK2] Add a WKWebView property for whether the view is displaying a media document
https://bugs.webkit.org/show_bug.cgi?id=147233

Reviewed by Beth Dakin.

Add a _isDisplayingStandaloneMediaDocument property, which queries the frame for whether
the current MIME type is one which our media engines support.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isDisplayingStandaloneMediaDocument]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::isDisplayingStandaloneMediaDocument):
* UIProcess/WebFrameProxy.h:

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

4 years ago[iOS] Add an explicit API to allow media documents to (temporarily) play inline
jer.noble@apple.com [Thu, 23 Jul 2015 21:15:28 +0000 (21:15 +0000)]
[iOS] Add an explicit API to allow media documents to (temporarily) play inline
https://bugs.webkit.org/show_bug.cgi?id=147181

Reviewed by Beth Dakin.

Source/WebCore:

Add listeners for the new allowsMediaDocumentInlinePlayback API. When this value becomes
NO, force any playing MediaDocuments to enter fullscreen mode.

* dom/Document.cpp:
(WebCore::Document::registerForAllowsMediaDocumentInlinePlaybackChangedCallbacks): Added registration method.
(WebCore::Document::unregisterForAllowsMediaDocumentInlinePlaybackChangedCallbacks): Added deregistration method.
(WebCore::Document::allowsMediaDocumentInlinePlaybackChanged): Notify all listeners.
* dom/Document.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument): Listen for allowsMediaDocumentInlinePlayback changes.
(WebCore::HTMLMediaElement::unregisterWithDocument): Stop listening to same.
(WebCore::HTMLMediaElement::allowsMediaDocumentInlinePlaybackChanged): Enter fullscreen mode if the value
    changes to false during playback.
* html/HTMLMediaElement.h:
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback): Early true if the override value is set.
* page/Page.cpp:
(WebCore::Page::setAllowsMediaDocumentInlinePlayback): Notify all documents of the changed value.
* page/Page.h:
(WebCore::Page::allowsMediaDocumentInlinePlayback): Simple getter.

Source/WebKit2:

Add a WKWebView(Private) API which allows MediaDocuments loaded by the view to play their contents inline, regardless
of whether inline playback is restricted on the current device.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setRequiresUserActionForMediaPlayback:]): Added. Pass through to WebPageProxy.
(-[WKWebView _allowsMediaDocumentInlinePlayback]): Ditto.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::allowsMediaDocumentInlinePlayback): Simple getter.
(WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): Set, and conditionally pass the new value to WebPage.
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setAllowsMediaDocumentInlinePlayback): Set, and conditionally notify WebCore page of the change.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::allowsMediaDocumentInlinePlayback): Simple getter.
* WebProcess/WebPage/WebPage.messages.in: Add new messages.

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

4 years agoShould not allow previews of 1x1 images
bdakin@apple.com [Thu, 23 Jul 2015 20:53:47 +0000 (20:53 +0000)]
Should not allow previews of 1x1 images
https://bugs.webkit.org/show_bug.cgi?id=147237
-and corresponding-
rdar://problem/21968460

Reviewed by Tim Horton.

1x1 images are used on some sites to cover actual images, which leads to a
misleading preview experience. There is not any reason why you would really
want to preview an image this small nor any reason to believe that the
preview would result in anything useful.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):

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

4 years agoWeb Inspector: Add a function to CSSCompletions to get a list of supported system...
drousso@apple.com [Thu, 23 Jul 2015 20:24:08 +0000 (20:24 +0000)]
Web Inspector: Add a function to CSSCompletions to get a list of supported system fonts
https://bugs.webkit.org/show_bug.cgi?id=147009

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/protocol/CSS.json: Added getSupportedSystemFontFamilyNames function.

Source/WebCore:

Test: inspector/css/get-system-fonts.html

* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::getSupportedSystemFontFamilyNames):
Gets the list of system fonts (implemented in each platform) and returns that list.
* inspector/InspectorCSSAgent.h:
* platform/graphics/FontCache.h:
* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::systemFontFamilies):
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::systemFontFamilies):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::systemFontFamilies):
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::systemFontFamilies):

Source/WebInspectorUI:

* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.activateExtraDomains):
* UserInterface/Base/Test.js:
(WebInspector.loaded):
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.requestCSSCompletions.fontFamilyNamesCallback):
(WebInspector.CSSCompletions.requestCSSCompletions):
Now also grabs the list of system font family names and adds that list to the existing completion
list for both font and font-family in CSSKeywordCompletions.
(WebInspector.CSSCompletions.requestCSSNameCompletions): Deleted.

LayoutTests:

Skip the get-system-fonts test until it is implemented.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/win/TestExpectations:

Added the get-system-fonts test that returns the list of system fonts.
* inspector/css/get-system-fonts-expected.html:
* inspector/css/get-system-fonts.html:

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

4 years agoCrash in WebPlatformStrategies::createPingHandle - Deref a null NetworkingContext.
beidson@apple.com [Thu, 23 Jul 2015 20:18:41 +0000 (20:18 +0000)]
Crash in WebPlatformStrategies::createPingHandle - Deref a null NetworkingContext.
<rdar://problem/21949735> and https://bugs.webkit.org/show_bug.cgi?id=147227

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createPingHandle): Skip it if there's a null NetworkingContext.

LayoutTests:

* http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher.html: Added.

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

4 years agoChange some images for a blog post and add 2x images.
timothy@apple.com [Thu, 23 Jul 2015 20:05:12 +0000 (20:05 +0000)]
Change some images for a blog post and add 2x images.

* blog-files/inspector-elements-tab-2x.png: Added.
* blog-files/inspector-elements-tab.png: Updated.
* blog-files/inspector-network-tab-2x.png: Added.
* blog-files/inspector-network-tab.png: Updated.
* blog-files/inspector-tab-bar-2x.png: Added.
* blog-files/inspector-tab-bar.png: Updated.

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

4 years agoSource/WebCore:
bfulgham@apple.com [Thu, 23 Jul 2015 19:30:02 +0000 (19:30 +0000)]
Source/WebCore:
[Win] Implement High DPI support features
https://bugs.webkit.org/show_bug.cgi?id=146335
<rdar://problem/21558269>

Reviewed by Alex Christensen.

* platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
(WebCore::PlatformCALayerWinInternal::drawTile): Don't translate the CGContext to the position
of the CACFLayerRef; the underlying context is already in the right position.
* platform/win/PlatformMouseEventWin.cpp: Update class to adjust mouse
event coordinates based on scaling factor.
(WebCore::deviceScaleFactor):
(WebCore::positionForEvent):
* platform/win/ScrollbarThemeWin.cpp:
(WebCore::scrollbarThicknessInPixels):
(WebCore::ScrollbarThemeWin::scrollbarThickness):
(WebCore::ScrollbarThemeWin::themeChanged):
* platform/win/WheelEventWin.cpp: Update class to adjust wheel event
coordinates based on scaling factor.
(WebCore::deviceScaleFactor):
(WebCore::positionForEvent):
(WebCore::globalPositionForEvent):
(WebCore::PlatformWheelEvent::PlatformWheelEvent):

Source/WebKit/win:
[Win] Implement High DPI support features
https://bugs.webkit.org/show_bug.cgi?id=146335
<rdar://problem/21558269>

Reviewed by Alex Christensen.

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::transitionToCommittedForNewPage): Size
page for current device scale factor.
* WebFrame.cpp:
(WebFrame::paintDocumentRectToContext): Account for device scale factor.
(WebFrame::paintScrollViewRectToContextAtPoint): Ditto.
* WebView.cpp:
(WebView::repaint): Adjust paint rect for device scale factor.
(WebView::scrollBackingStore): Adjust coordinates for scale factor.
(WebView::sizeChanged): Ditto.
(WebView::updateBackingStore): Ditto.
(WebView::paint): Ditto.
(WebView::paintIntoBackingStore): Ditto.
(WebView::handleContextMenuEvent): Ditto.
(WebView::gestureNotify): Ditto.
(WebView::gesture): Ditto.
(WebView::initializeToolTipWindow): Adjust max tool tip width
for device scale factor.
(WebView::selectionRect): Adjust coordinates for scale factor.
(WebView::elementAtPoint): Ditto.
(WebView::scrollOffset): Ditto.
(WebView::scrollBy): Ditto.
(WebView::visibleContentRect): Ditto.
(WebView::paintContents): Ditto.
* WebView.h:

Tools:
[Win] Implement proper High DPI support features
https://bugs.webkit.org/show_bug.cgi?id=146335
<rdar://problem/21558269>

Reviewed by Alex Christensen.

Update WinLauncher to take device scaling factor into account.

* WinLauncher/Common.cpp:
(resizeSubViews): Make sure toolbars and URL bar are properly sized and using
a valid font.
(computeFullDesktopFrame): Handle high DPI desktops.
(WndProc): Make comments more precise.
* WinLauncher/WinLauncher.cpp:
(WinLauncher::init): Determine device scale factor at launch.
(WinLauncher::updateDeviceScaleFactor): Added.
* WinLauncher/WinLauncher.h:
* WinLauncher/WinLauncherWebHost.h: Use C++11 initialization.
* WinLauncher/WinMain.cpp: Size interface based on scaling factor.
(wWinMain): Ditto.
* win/DLLLauncher/DLLLauncherMain.cpp:
(wWinMain): Tell Windows we understand high DPI.

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

4 years agoREGRESSION(r182236): Justified Arabic text does not expand
mmaxfield@apple.com [Thu, 23 Jul 2015 19:15:16 +0000 (19:15 +0000)]
REGRESSION(r182236): Justified Arabic text does not expand
https://bugs.webkit.org/show_bug.cgi?id=147217

Reviewed by Simon Fraser.

When I was writing r182236, I got confused between the levels of the string hierarchy in ComplexTextController.
I've added a comment in the header which should make it easier to get it right.

Test: fast/text/international/arabic-justify.html

* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
* platform/graphics/mac/ComplexTextController.h:

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

4 years agoRemove some files that should have been removed with WebKit2 Windows
timothy_horton@apple.com [Thu, 23 Jul 2015 18:34:51 +0000 (18:34 +0000)]
Remove some files that should have been removed with WebKit2 Windows
https://bugs.webkit.org/show_bug.cgi?id=147223

Reviewed by Csaba Osztrogonác.

* Shared/API/c/cf/WKURLRequestCF.cpp: Removed.
* Shared/API/c/cf/WKURLRequestCF.h: Removed.
* Shared/API/c/cf/WKURLResponseCF.cpp: Removed.
* Shared/API/c/cf/WKURLResponseCF.h: Removed.

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

4 years agoChange some images for a blog post.
timothy@apple.com [Thu, 23 Jul 2015 18:21:00 +0000 (18:21 +0000)]
Change some images for a blog post.

* blog-files/inspector-elements-tab.png:
* blog-files/inspector-network-tab.png:

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

4 years agoFix the build
timothy_horton@apple.com [Thu, 23 Jul 2015 18:04:55 +0000 (18:04 +0000)]
Fix the build

* Platform/spi/ios/UIKitSPI.h:

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

4 years agoAdd and change some images for a blog post.
timothy@apple.com [Thu, 23 Jul 2015 18:03:03 +0000 (18:03 +0000)]
Add and change some images for a blog post.

* blog-files/inspector-elements-network-tabs.png: Removed.
* blog-files/inspector-elements-tab.png: Added.
* blog-files/inspector-network-tab.png: Added.
* blog-files/inspector-tab-bar.png:

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

4 years agoCorrect rest of the images to match.
bfulgham@apple.com [Thu, 23 Jul 2015 17:30:13 +0000 (17:30 +0000)]
Correct rest of the images to match.

* blog-files/backdrop-filters/backdrop_correct_1x.jpg:
* blog-files/backdrop-filters/backdrop_correct_2x.jpg:
* blog-files/backdrop-filters/backdrop_invert_1x.jpg:
* blog-files/backdrop-filters/backdrop_invert_2x.jpg:
* blog-files/backdrop-filters/backdrop_mixed_1x.jpg:

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

4 years ago[Win] Unreviewed build fix after r187169.
achristensen@apple.com [Thu, 23 Jul 2015 17:26:58 +0000 (17:26 +0000)]
[Win] Unreviewed build fix after r187169.

* Scripts/build-webkit:
Correctly find WebKit.sln.

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

4 years agoAdjust image sizes to avoid page scaling.
bfulgham@apple.com [Thu, 23 Jul 2015 17:21:50 +0000 (17:21 +0000)]
Adjust image sizes to avoid page scaling.

* blog-files/backdrop-filters/Screen_OSX_Yosemite_Finder-iCloud-WaterBg_1x.jpg:
* blog-files/backdrop-filters/Screen_OSX_Yosemite_Finder-iCloud-WaterBg_2x.jpg:
* blog-files/backdrop-filters/Screen_V_iOS8_ControlCenter_BlueGradient_1x.jpg:
* blog-files/backdrop-filters/Screen_V_iOS8_ControlCenter_BlueGradient_2x.jpg:
* blog-files/backdrop-filters/backdrop_mixed_2x.jpg:

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

4 years agoApplication cache abort() tests are flaky
msaboff@apple.com [Thu, 23 Jul 2015 14:02:24 +0000 (14:02 +0000)]
Application cache abort() tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=87633

These AppCache tests are flakey:
http/tests/appcache/deferred-events-delete-while-raising-timer.html
http/tests/appcache/deferred-events-delete-while-raising.html
http/tests/appcache/deferred-events.html
http/tests/appcache/fail-on-update-2.html

* TestExpectations:

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

4 years agoWeb Inspector: wrong cursor shown when selecting time interval from timeline overview
mattbaker@apple.com [Thu, 23 Jul 2015 14:00:00 +0000 (14:00 +0000)]
Web Inspector: wrong cursor shown when selecting time interval from timeline overview
https://bugs.webkit.org/show_bug.cgi?id=147094

Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler.allows-time-range-selection.creating-selection):
New cursor style for entire ruler element.

* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
Toggle cursor style when dragging to create a new selection in the overview.

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

4 years ago[Win] Fix typos in PluginViewWin.cpp: kWebPluginViewdowClassName -> kWebPluginViewCla...
commit-queue@webkit.org [Thu, 23 Jul 2015 12:21:33 +0000 (12:21 +0000)]
[Win] Fix typos in PluginViewWin.cpp: kWebPluginViewdowClassName -> kWebPluginViewClassName
https://bugs.webkit.org/show_bug.cgi?id=147214

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-07-23
Reviewed by Csaba Osztrogonác.

* Plugins/PluginViewWin.cpp:
(WebCore::registerPluginView):
(WebCore::PluginView::platformStart):

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

4 years agoFix the build for __IPHONE_OS_VERSION_MIN_REQUIRED <= 80200 || !HAVE(AVKIT)
timothy_horton@apple.com [Thu, 23 Jul 2015 10:11:28 +0000 (10:11 +0000)]
Fix the build for __IPHONE_OS_VERSION_MIN_REQUIRED <= 80200 || !HAVE(AVKIT)

* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(elementRectInWindow):
This helper is only used in the #else block, so move it there.

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

4 years agoRemove files that were meant to be removed in r173929
timothy_horton@apple.com [Thu, 23 Jul 2015 10:05:22 +0000 (10:05 +0000)]
Remove files that were meant to be removed in r173929

* WebProcess/WebPage/mac/WebInspectorMac.mm: Removed.

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

4 years agoRemove files that were meant to be removed in r168213
timothy_horton@apple.com [Thu, 23 Jul 2015 09:58:01 +0000 (09:58 +0000)]
Remove files that were meant to be removed in r168213

* UIProcess/API/Cocoa/WKErrorRecoveryAttempting.h: Removed.

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

4 years agoRemove files that were meant to be removed in r168229
timothy_horton@apple.com [Thu, 23 Jul 2015 09:50:37 +0000 (09:50 +0000)]
Remove files that were meant to be removed in r168229

* UIProcess/API/Cocoa/WKSession.h: Removed.
* UIProcess/API/Cocoa/WKSession.mm: Removed.
* UIProcess/API/Cocoa/WKSessionInternal.h: Removed.

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

4 years agoRemove files that were meant to be removed in r165014
timothy_horton@apple.com [Thu, 23 Jul 2015 09:18:01 +0000 (09:18 +0000)]
Remove files that were meant to be removed in r165014

* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.h: Removed.
* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm: Removed.

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

4 years ago[GTK] Add API to allow executing editing commands that require an argument
carlosgc@webkit.org [Thu, 23 Jul 2015 08:23:25 +0000 (08:23 +0000)]
[GTK] Add API to allow executing editing commands that require an argument
https://bugs.webkit.org/show_bug.cgi?id=146781

Reviewed by Gustavo Noronha Silva.

Source/WebKit2:

Commands like InsertImage or CreateLink receive an argument, but
we only have webkit_web_view_execute_editing_command() that
doesn't receive any argument. This patch adds
webkit_web_view_execute_editing_command_with_argument() for those
commands. It also adds WEBKIT_EDITING_COMMAND_INSERT_IMAGE and
WEBKIT_EDITING_COMMAND_CREATE_LINK to the predefined editing commands.

* UIProcess/API/gtk/WebKitEditingCommands.h: Add
WEBKIT_EDITING_COMMAND_INSERT_IMAGE and WEBKIT_EDITING_COMMAND_CREATE_LINK.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_execute_editing_command_with_argument):
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::executeEditCommand): Pass also the argument
to the message.
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::executeEditCommand): Add the argument parameter
to the message handler.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Add argument parameter
to ExecuteEditCommand message.

Tools:

Add buttons to insert image/link to the MiniBrowser edit toolbar,
and test cases for insert image/link commands too.

* MiniBrowser/gtk/BrowserWindow.c:
(insertImageCommandCallback):
(insertLinkCommandCallback):
(browserWindowSetupEditorToolbar):
(browserWindowConstructed):
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:
(testWebViewEditorInsertImage):
(testWebViewEditorCreateLink):
(beforeAll):

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

4 years agoTry to fix the build
timothy_horton@apple.com [Thu, 23 Jul 2015 07:58:15 +0000 (07:58 +0000)]
Try to fix the build

* platform/spi/cocoa/QuartzCoreSPI.h:

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

4 years agoUnregistering and re-registering a user message handler does not work
carlosgc@webkit.org [Thu, 23 Jul 2015 07:31:14 +0000 (07:31 +0000)]
Unregistering and re-registering a user message handler does not work
https://bugs.webkit.org/show_bug.cgi?id=138142

Reviewed by Martin Robinson.

This has probably been fixed in r184846, enable the test case
blocked on it.

* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:
(testUserContentManagerScriptMessageReceived):

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

4 years agoAdd ENABLE_WEBASSEMBLY feature flag for WebAssembly
commit-queue@webkit.org [Thu, 23 Jul 2015 05:44:15 +0000 (05:44 +0000)]
Add ENABLE_WEBASSEMBLY feature flag for WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=147212

Patch by Sukolsak Sakshuwong <sukolsak@gmail.com> on 2015-07-22
Reviewed by Filip Pizlo.

.:

* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No new tests.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

* wtf/FeatureDefines.h:

Tools:

* Scripts/webkitperl/FeatureList.pm:

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

4 years agoTry to fix the build
timothy_horton@apple.com [Thu, 23 Jul 2015 05:31:32 +0000 (05:31 +0000)]
Try to fix the build

* platform/spi/cocoa/QuartzCoreSPI.h:

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

4 years agoUse updated CoreAnimation snapshot SPI.
timothy_horton@apple.com [Thu, 23 Jul 2015 05:09:16 +0000 (05:09 +0000)]
Use updated CoreAnimation snapshot SPI.
https://bugs.webkit.org/show_bug.cgi?id=147197
<rdar://problem/21032083>

Reviewed by Tim Horton.
Patch by James Savage.

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

* platform/spi/cocoa/QuartzCoreSPI.h:

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

4 years agoSimplify DFG::DesiredIdentifiers and make it possible to turn a UniquedStringImpl...
fpizlo@apple.com [Thu, 23 Jul 2015 04:58:34 +0000 (04:58 +0000)]
Simplify DFG::DesiredIdentifiers and make it possible to turn a UniquedStringImpl* into an identifierNumber at any time
https://bugs.webkit.org/show_bug.cgi?id=147218

Reviewed by Sam Weinig.

I want to be able to take a UniquedStringImpl* and turn it into an identifierNumber at
various points in my work on https://bugs.webkit.org/show_bug.cgi?id=146929. Currently,
most Nodes that deal with identifiers use identifierNumbers and you can only create an
identifierNumber in BytecodeGenerator. DFG::ByteCodeParser does sort of have the
ability to create new identifierNumbers when inlining - it takes the inlined code's
identifiers and either gives them new numbers or reuses numbers from the enclosing
code.

This patch takes that basic functionality and puts it in
DFG::DesiredIdentifiers::ensure(). Anyone can call this at any time to turn a
UniquedStringImpl* into an identifierNumber. This data structure is already used by
Plan to properly install any newly created identifier table entries into the CodeBlock.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::ByteCodeParser):
(JSC::DFG::ByteCodeParser::noticeArgumentsUse):
(JSC::DFG::ByteCodeParser::linkBlocks):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
(JSC::DFG::ByteCodeParser::buildOperandMapsIfNecessary): Deleted.
* dfg/DFGDesiredIdentifiers.cpp:
(JSC::DFG::DesiredIdentifiers::DesiredIdentifiers):
(JSC::DFG::DesiredIdentifiers::numberOfIdentifiers):
(JSC::DFG::DesiredIdentifiers::ensure):
(JSC::DFG::DesiredIdentifiers::at):
(JSC::DFG::DesiredIdentifiers::addLazily): Deleted.
* dfg/DFGDesiredIdentifiers.h:

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

4 years agoSimplify things like CompareEq(@x,@x)
fpizlo@apple.com [Thu, 23 Jul 2015 04:51:48 +0000 (04:51 +0000)]
Simplify things like CompareEq(@x,@x)
https://bugs.webkit.org/show_bug.cgi?id=145850

Reviewed by Sam Weinig.

This simplifies x==x to true, except in cases where x might be a double (in which case this
might still be false if x is NaN).

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* tests/stress/nan-equal-untyped.js: Added.
(foo):
(test):
* tests/stress/nan-equal.js: Added.
(foo):

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

4 years agoFix the build
timothy_horton@apple.com [Thu, 23 Jul 2015 04:47:33 +0000 (04:47 +0000)]
Fix the build

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):

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

4 years agoWeb Inspector: Timeline should immediately start moving play head when starting a...
commit-queue@webkit.org [Thu, 23 Jul 2015 04:45:52 +0000 (04:45 +0000)]
Web Inspector: Timeline should immediately start moving play head when starting a new recording
https://bugs.webkit.org/show_bug.cgi?id=147210

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

Source/JavaScriptCore:

* inspector/protocol/Timeline.json:
Add timestamps to recordingStarted and recordingStopped events.

Source/WebCore:

Test: inspector/timeline/recording-start-stop-timestamps.html

* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::internalStop):
Include the current timestamp when starting / stopping a recording.

Source/WebInspectorUI:

* UserInterface/Protocol/TimelineObserver.js:
(WebInspector.TimelineObserver.prototype.recordingStarted):
(WebInspector.TimelineObserver.prototype.recordingStopped):
Pass on the new timestamps.

* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype.capturingStopped):
Pass on the new timestamps in the events.

* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
Pass on the new timestamp from the event as it can be used to update the currentTime.

(WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
If provided a startTime we can use that as the new currentTime. Otherwise fallback
to determining a good currentTime from the next incoming record for legacy backends.

(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
Update the comment, as there is now a solution but this is required for legacy backends.

LayoutTests:

* inspector/timeline/recording-start-stop-timestamps-expected.txt: Added.
* inspector/timeline/recording-start-stop-timestamps.html: Added.
Add a test for Timeline.recordingStarted and Timeline.recordingStopped events.

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

4 years agoCoordinates-based snap offsets don't update correctly when container is scrolled
wenson_hsieh@apple.com [Thu, 23 Jul 2015 04:24:12 +0000 (04:24 +0000)]
Coordinates-based snap offsets don't update correctly when container is scrolled
https://bugs.webkit.org/show_bug.cgi?id=147215

Reviewed by Brent Fulgham.

Source/WebCore:

Fixes the way we append the snap offsets of child elements with coordinates. We
now consider the scroll offset of the parent scroll snapping container, so snap
offset recomputations don't fail on scroll snapping containers.

Test: css3/scroll-snap/scroll-snap-coordinate-overflow-resize.html

* page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::appendChildSnapOffsets): Fixed to consider the scroll offset of the
    parent container.

LayoutTests:

Tests that snap offsets update properly on scrolled containers.

* css3/scroll-snap/scroll-snap-coordinate-overflow-resize-expected.txt: Added.
* css3/scroll-snap/scroll-snap-coordinate-overflow-resize.html: Added.

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

4 years agoWeb Inspector: Timeline's Current Time does not jump forward to new start time when...
commit-queue@webkit.org [Thu, 23 Jul 2015 04:18:38 +0000 (04:18 +0000)]
Web Inspector: Timeline's Current Time does not jump forward to new start time when starting a new recording, causes timeline to appear delayed and broken
https://bugs.webkit.org/show_bug.cgi?id=147204

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

* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
We were skipping a timeline, but it might have a new event record with
a new start time. This ensures we get an updated current time which makes
sense, and we jump forward to that time in the main timeline.

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

4 years agoNeeded to add methods to get PreviewCaptureLayers from Video
commit-queue@webkit.org [Thu, 23 Jul 2015 04:15:15 +0000 (04:15 +0000)]
Needed to add methods to get PreviewCaptureLayers from Video
https://bugs.webkit.org/show_bug.cgi?id=147011
<rdar://problem/21861999>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-22
Reviewed by Jer Noble.

* platform/mediastream/mac/AVVideoCaptureSource.h: Added in preview
layer to class
(WebCore::AVVideoCaptureSource::previewLayer):
* platform/mediastream/mac/AVVideoCaptureSource.mm: Instantiate
previewLayer on load
(WebCore::AVVideoCaptureSource::setupCaptureSession):

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

4 years agoWeb Inspector: TimelineRuler shouldn't dispatch selection changed event unless it...
mattbaker@apple.com [Thu, 23 Jul 2015 03:54:33 +0000 (03:54 +0000)]
Web Inspector: TimelineRuler shouldn't dispatch selection changed event unless it actually changes
https://bugs.webkit.org/show_bug.cgi?id=147219

Reviewed by Timothy Hatcher.

Moved to a "suppress next" model for suppressing dispatch of TimelineRuler's selection changed event. The
ruler's _timeRangeSelectionChanged flag is now reset only when an event is finally dispatched.

* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype._updateSelection):
(WebInspector.TimelineRuler.prototype._dispatchTimeRangeSelectionChangedEvent):
Check for this._timeRangeSelectionChanged moved into dispatch function.
(WebInspector.TimelineRuler.prototype._handleMouseDown):
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
We now suppress the next dispatch only, rather than a toggle.

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

4 years ago[EFL] The "Missing Plug-in" buttons are not showing up on some flash contents
commit-queue@webkit.org [Thu, 23 Jul 2015 03:36:31 +0000 (03:36 +0000)]
[EFL] The "Missing Plug-in" buttons are not showing up on some flash contents
https://bugs.webkit.org/show_bug.cgi?id=147191

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-07-22
Reviewed by Gyuyoung Kim.

Currently, WebKitEFL doesn't show the "Missing Plug-in" buttons if the plugin-related tags
don't have a "type" attribute. In such a case, WebCore tries to guess the MIME type from
the extensions by using MIMETypeRegistry::getMIMETypeForExtension(). For WebKitEFL,
MIMETypeRegistry::getMIMETypeForExtension() goes through |extensionMap|, which is a simple
array of <extension, mime type>, looking for the mime type for the given extension.
But |extensionMap| in MIMETypeRegistryEfl.cpp doesn't have the information for ".swf",
so WebCore fails to guess the MIME type and regard the content type as ObjectContentFrame,
not ObjectContentNetscapePlugin.

* platform/efl/MIMETypeRegistryEfl.cpp:

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

4 years agoIntroducing construct ability into JS executables
utatane.tea@gmail.com [Thu, 23 Jul 2015 02:36:20 +0000 (02:36 +0000)]
Introducing construct ability into JS executables
https://bugs.webkit.org/show_bug.cgi?id=147183

Reviewed by Geoffrey Garen.

Decouple the construct ability from the builtin functions.
Currently, all builtin functions are not constructors after r182995.
In that patch, when the given function is builtin JS function, we recognize it as the non-constructor function.

But, we need to relax it to implement some constructors in builtins JS.
By decoupling the construct ability from whether the function is builtin or not, we can provide

1. constructors written in builtin JS
2. non-constructors in normal JS functions

(1) is needed for Promise constructor.
And (2) is needed for method functions and arrow functions.

This patch introduces ConstructAbility into the unlinked function executables.
It holds whether the given JS function has the construct ability or not.
By leveraging this, this patch disables the construct ability of the method definitions, setters, getters and arrow functions.

And at the same time, this patch introduces the annotation for constructor in builtin JS.
We can define the function as follows,

    constructor Promise(executor)
    {
        ...
    }

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createDefaultConstructor):
(JSC::BuiltinExecutables::createExecutableInternal):
* builtins/BuiltinExecutables.h:
* builtins/Iterator.prototype.js:
(symbolIterator):
(SymbolIterator): Deleted.
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
* bytecode/UnlinkedCodeBlock.h:
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::makeFunction):
* generate-js-builtins:
(getCopyright):
(Function):
(Function.__init__):
(Function.mangleName):
(getFunctions):
(mangleName): Deleted.
* jit/JITOperations.cpp:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setUpCall):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseClass):
* runtime/CodeCache.cpp:
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
* runtime/CommonIdentifiers.h:
* runtime/ConstructAbility.h: Copied from Source/JavaScriptCore/builtins/Iterator.prototype.js.
* runtime/Executable.h:
* runtime/JSFunction.cpp:
(JSC::JSFunction::getConstructData):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* tests/stress/non-constructors.js: Added.
(shouldThrow):
(.prototype.method):
(.prototype.get getter):
(.prototype.set setter):
(.method):
(.get shouldThrow):
(.set shouldThrow):
(set var.test.get getter):
(set var.test.set setter):
(set var.test.normal):
(.set var):
(.set new):

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

4 years agoRank sources for fitness for UIDs in bestSourcesForTypeAndConstraints
commit-queue@webkit.org [Thu, 23 Jul 2015 01:54:54 +0000 (01:54 +0000)]
Rank sources for fitness for UIDs in bestSourcesForTypeAndConstraints
https://bugs.webkit.org/show_bug.cgi?id=147206
<rdar://problem/21950653>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-22
Reviewed by Jer Noble.

* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::RealtimeMediaSource):
* platform/mediastream/RealtimeMediaSource.h:
(WebCore::RealtimeMediaSource::fitnessScore):
(WebCore::RealtimeMediaSource::setFitnessScore):
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::bestSourcesForTypeAndConstraints):

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

4 years agoVideo controls, though hidden, are still interactive when in PiP
dino@apple.com [Thu, 23 Jul 2015 01:47:00 +0000 (01:47 +0000)]
Video controls, though hidden, are still interactive when in PiP
https://bugs.webkit.org/show_bug.cgi?id=147216
<rdar://problem/21012688>

Reviewed by Simon Fraser.

Explicitly add the PiP class to the controls container so that
we can hang a pointer-events: none off it.

* Modules/mediacontrols/mediaControlsiOS.css:
(video::-webkit-media-controls-panel.picture-in-picture): Add a pointer-events: none.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.handlePresentationModeChange): Add/remove a PiP class
to the controls panel when necessary.

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

4 years agoUnreviewed, rolling out r187196.
commit-queue@webkit.org [Thu, 23 Jul 2015 01:21:12 +0000 (01:21 +0000)]
Unreviewed, rolling out r187196.
https://bugs.webkit.org/show_bug.cgi?id=147213

broke all the iOS builds (Requested by thorton on #webkit).

Reverted changeset:

"Use updated CoreAnimation snapshot SPI."
https://bugs.webkit.org/show_bug.cgi?id=147197
http://trac.webkit.org/changeset/187196

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

4 years agoFix the build
timothy_horton@apple.com [Thu, 23 Jul 2015 01:19:41 +0000 (01:19 +0000)]
Fix the build

* UIProcess/ios/WKContentViewInteraction.h:

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

4 years ago[iOS] Adjust the preview architecture
timothy_horton@apple.com [Thu, 23 Jul 2015 01:08:30 +0000 (01:08 +0000)]
[iOS] Adjust the preview architecture
https://bugs.webkit.org/show_bug.cgi?id=147203
<rdar://problem/21945775>

Reviewed by Simon Fraser.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
Link previews should win over image previews if both are possible.

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

4 years agoUse updated CoreAnimation snapshot SPI.
commit-queue@webkit.org [Thu, 23 Jul 2015 00:53:36 +0000 (00:53 +0000)]
Use updated CoreAnimation snapshot SPI.
https://bugs.webkit.org/show_bug.cgi?id=147197

Patch by James Savage <james.savage@apple.com> on 2015-07-22
Reviewed by Tim Horton.

Source/WebCore:

* platform/spi/cocoa/QuartzCoreSPI.h:

Source/WebKit2:

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

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

4 years agoWeb Inspector: REGRESSION (Safari 7): Pseudo element rules are not labelled with...
drousso@apple.com [Thu, 23 Jul 2015 00:44:09 +0000 (00:44 +0000)]
Web Inspector: REGRESSION (Safari 7): Pseudo element rules are not labelled with media queries in Styles panel
https://bugs.webkit.org/show_bug.cgi?id=147207

Reviewed by Timothy Hatcher.

* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertAllMatchingPseudoStyles):
Now inserts pseudo-styles based on whether their selector specificity is greater than
the previous style's selector specificity.
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):

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