WebKit-https.git
5 years agoTag WebGL layers with sRGB colorspace
dino@apple.com [Thu, 16 Jul 2015 01:13:10 +0000 (01:13 +0000)]
Tag WebGL layers with sRGB colorspace
https://bugs.webkit.org/show_bug.cgi?id=146986
<rdar://problem/21758704>

Fix the build on older El Capitan releases.

* platform/graphics/mac/WebGLLayer.mm:
(-[WebGLLayer initWithGraphicsContext3D:]):
* platform/spi/cocoa/QuartzCoreSPI.h:

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

5 years agoColor match plug-ins
weinig@apple.com [Thu, 16 Jul 2015 01:00:22 +0000 (01:00 +0000)]
Color match plug-ins
<rdar://problem/21758722>
https://bugs.webkit.org/show_bug.cgi?id=146987

Reviewed by Dean Jackson.

Source/WebCore:

* platform/spi/cocoa/QuartzCoreSPI.h:
Add colorMatchUntaggedContent property.

Source/WebKit2:

* Platform/mac/LayerHostingContext.h:
* Platform/mac/LayerHostingContext.mm:
(WebKit::LayerHostingContext::setColorMatchUntaggedContent):
(WebKit::LayerHostingContext::colorMatchUntaggedContent):
Add setter/getter for color matching untagged content.

* PluginProcess/mac/PluginControllerProxyMac.mm:
(WebKit::PluginControllerProxy::updateLayerHostingContext):
Have plug-ins CAContext's color match untagged colors into sRGB.

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

5 years agoWeb Inspector: Resizing TimelineRuler selection on both sides doesn't work with snapp...
mattbaker@apple.com [Thu, 16 Jul 2015 00:33:33 +0000 (00:33 +0000)]
Web Inspector: Resizing TimelineRuler selection on both sides doesn't work with snapping enabled
https://bugs.webkit.org/show_bug.cgi?id=146970

Reviewed by Brian Burg.

* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
Use snapped current time value when setting selection bounds.

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

5 years ago[Win] 64-bit Build Failure
bfulgham@apple.com [Thu, 16 Jul 2015 00:31:19 +0000 (00:31 +0000)]
[Win] 64-bit Build Failure
https://bugs.webkit.org/show_bug.cgi?id=146989

Reviewed by Mark Lam.

* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState): Add missing
declaration for 64-bit type on 4-argument register machines (like
Windows).

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

5 years ago[Win] Another build fix after r186858.
bfulgham@apple.com [Thu, 16 Jul 2015 00:29:31 +0000 (00:29 +0000)]
[Win] Another build fix after r186858.

* html/canvas/DOMPath.h: Don't use WEBCORE_EXPORT on the
overall class and the destructor declaration.

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

5 years agoMany test failures in scm_unittest.py
commit-queue@webkit.org [Wed, 15 Jul 2015 23:13:56 +0000 (23:13 +0000)]
Many test failures in scm_unittest.py
https://bugs.webkit.org/show_bug.cgi?id=143967

Patch by Dean Johnson <dean_johnson@apple.com> on 2015-07-15
Reviewed by Daniel Bates.

* Scripts/webkitpy/common/checkout/scm/detection.py:
(SCMDetector.detect_scm_system): Paths with symlinks are now resolved to
absolute canonical file paths. Two mutually exclusive issues cause this
to be a problem.
    1) Python's os.path.relpath() function does not return correct relative
    paths between two filepaths that point to the same file, if symlinks are
    involved.
        On Mac, /tmp points to /private/tmp
        ex. os.path.relpath('/tmp', '/private/tmp')
            returns '../../tmp'
    What we want is actually just '.'
    2) Git does not allow file paths to trace outside of
    the Git repository. This means that if you have a repository in
    /tmp and you refer to that repository when invoking a git command as
    ../tmp, Git will produce errors about working outside of the repository.
* Scripts/webkitpy/common/checkout/scm/git.py: Over time Git has changed
its default behavior and such, needed to be updated.
(Git.changed_files): '--' was added into the command so that patch_directories
were taken as positional arguments.
* Scripts/webkitpy/common/checkout/scm/scm_unittest.py: Changed tests and setup
in the GitSVNTest class to more closely emulate the version of Git that the tests
assumed a system had. Also fixed a small side-effect from the absolute canonical
path fix in SCMDetector.detect_scm_system
(SVNTestRepository.setup): A relative filepath was previously passed as the
checkout root to SCMDetector.detect_scm_system, but is now cleaned to
an absolute canonical path before being passed in. The failing test
was a "sanity check" that the svn.checkout_root and scm.checkout_root
were the same.
(GitSVNTest._setup_git_checkout):
    1) Added "--prefix ''" option to `git clone` since Git changed its default
    behavior in version 2.0.
    2) The branch master was renamed to trunk to more closely emulate what
    tests expected when they were written.
(GitSVNTest.test_changed_files_local_plus_working_copy): Two of the three
original tests failed because the tests expected the trunk branch
to produce its parent's commit, whereas Git merely provides the HEAD commit
for a given branch (trunk in this case). Based on other tests written
in the same commit, it appears these tests were failing from the point they
were written.

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

5 years agoTag WebGL layers with sRGB colorspace
dino@apple.com [Wed, 15 Jul 2015 23:00:30 +0000 (23:00 +0000)]
Tag WebGL layers with sRGB colorspace
https://bugs.webkit.org/show_bug.cgi?id=146986
<rdar://problem/21758704>

Reviewed by Simon Fraser.

Source/WebCore:

Label a CAOpenGLLayer as using the sRGB colorspace,
like the rest of our page content.

Test: fast/canvas/webgl/match-page-color-space.html

* platform/graphics/mac/WebGLLayer.mm:
(-[WebGLLayer initWithGraphicsContext3D:]): Set the colorspace property on the layer.
(-[WebGLLayer copyCGLPixelFormatForDisplayMask:]):
(-[WebGLLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]):
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):

LayoutTests:

Add a test that embeds a WebGL canvas inside a solid div. Since both
have the same color, the canvas should seemlessly disappear into
the surrounding div.

* fast/canvas/webgl/match-page-color-space-expected.html: Added.
* fast/canvas/webgl/match-page-color-space.html: Added.
* platform/mac-mavericks/TestExpectations: Skip this test.
* platform/mac-yosemite/TestExpectations: Added. Skip this test.

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

5 years ago[Win] Unreviewed build fix after r186858.
bfulgham@apple.com [Wed, 15 Jul 2015 22:42:57 +0000 (22:42 +0000)]
[Win] Unreviewed build fix after r186858.

Add missing DOMPath and PathUtilities files to project.

* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:

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

5 years agoHeaders that look for NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES should import NSGeome...
andersca@apple.com [Wed, 15 Jul 2015 22:39:50 +0000 (22:39 +0000)]
Headers that look for NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES should import NSGeometry.h
https://bugs.webkit.org/show_bug.cgi?id=146982

Reviewed by Tim Horton.

* platform/graphics/FloatPoint.h:
* platform/graphics/IntPoint.h:
* platform/graphics/IntSize.h:

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

5 years agoScroll snapping to elements is broken for main frame scrolling
commit-queue@webkit.org [Wed, 15 Jul 2015 22:33:44 +0000 (22:33 +0000)]
Scroll snapping to elements is broken for main frame scrolling
https://bugs.webkit.org/show_bug.cgi?id=146957

Patch by Wenson Hsieh <wenson_hsieh@apple.com> on 2015-07-15
Reviewed by Brent Fulgham.

Source/WebCore:

Fixes the case of elements with scroll snap coordinates in a scroll snapping mainframe by changing
RenderBox::findEnclosingScrollableContainer to return the body's RenderBox when all enclosing elements
are not overflow scrollable but the mainframe can scroll.

Test: css3/scroll-snap/scroll-snap-coordinate-mainframe.html

* page/FrameView.h: Export isScrollable so that the Internals API can use it.
* rendering/RenderBox.cpp: Include MainFrame.h.
(WebCore::RenderBox::findEnclosingScrollableContainer): Changed to return the body's RenderBox if
    none of its parent elements are overflow scrolling.
* testing/Internals.cpp:
(WebCore::Internals::scrollSnapOffsets): Updated to return snap offsets for the body element,
    allowing us to call window.internals.scrollSnapOffsets(document.body).

LayoutTests:

Tests that basic scroll snap coordinates in the mainframe works.

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

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

5 years agoWebKit document.cookie mis-parsing.
beidson@apple.com [Wed, 15 Jul 2015 22:22:58 +0000 (22:22 +0000)]
WebKit document.cookie mis-parsing.
rdar://problem/21715050 and https://bugs.webkit.org/show_bug.cgi?id=146976

Reviewed by Sam Weinig.

* platform/network/mac/CookieJarMac.mm:
(WebCore::setCookiesFromDOM): Use new CFNetwork SPI when available.

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

5 years ago[WinCairo] font fallback not working
commit-queue@webkit.org [Wed, 15 Jul 2015 21:54:44 +0000 (21:54 +0000)]
[WinCairo] font fallback not working
https://bugs.webkit.org/show_bug.cgi?id=146595

Patch by Jinyoung Hur <hur.ims@navercorp.com> on 2015-07-15
Reviewed by Myles C. Maxfield.

A Win32 API, GetGlyphIndices(), is not used properly, so any glyphs are considered existing in a font and it prevents the font fall back mechanism from working.

I think a specific font should be newly installed on the test machine to test this case but I have no idea how can it be done.

* platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
(WebCore::GlyphPage::fill):

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

5 years ago[GTK] Rename PACKAGE_LOCALE_DIR to LOCALEDIR
mcatanzaro@igalia.com [Wed, 15 Jul 2015 21:46:07 +0000 (21:46 +0000)]
[GTK] Rename PACKAGE_LOCALE_DIR to LOCALEDIR
https://bugs.webkit.org/show_bug.cgi?id=146975

Reviewed by Martin Robinson.

* PlatformGTK.cmake:
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_class_init):
* WebProcess/gtk/WebProcessMainGtk.cpp:

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

5 years ago[ES6] implement block scoping to enable 'let'
saambarati1@gmail.com [Wed, 15 Jul 2015 21:41:08 +0000 (21:41 +0000)]
[ES6] implement block scoping to enable 'let'
https://bugs.webkit.org/show_bug.cgi?id=142944

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createExecutableInternal):
* bytecode/BytecodeList.json:
This patch adds a new opcode and removes op_pop_scope:
1) op_get_parent_scope returns the parent scope but doesn't
implicitly write that scope into the scope register. op_pop_scope
is now reduced to op_get_parent_scope followed by op_mov.

* bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::stronglyVisitStrongReferences):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::addStringSwitchJumpTable):
(JSC::CodeBlock::stringSwitchJumpTable):
(JSC::CodeBlock::symbolTable):
(JSC::CodeBlock::evalCodeCache):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::replaceConstant):
op_put_to_scope for LocalClosureVar now takes as an argument
the constant index for the Symbol Table it will be putting into.
This argument is only used to communicate from the BytecodeGenerator
to CodeBlock linking time and it is not present in the linked bytecode.

op_put_to_scope for non LocalClosureVar takes, at the same index, an
argument that represents the local scope depth which it uses for
JSScope::abstractResolve to know how many scopes it needs to skip.
Again, this is not in the linked code.
op_get_from_scope and op_resolve_scope also take as an argument
the local scope depth to use in JSScope::abstractResolve. Again,
this is not used in the linked code.

* bytecode/EvalCodeCache.h:
(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):
(JSC::EvalCodeCache::clear):
(JSC::EvalCodeCache::isCacheable):
When direct eval is called and passed a scope that
corresponds to a lexical scope, we can't safely cache
that code because we won't be able to guarantee
that the cached code is always executed in the same scope.
Consider this example:
function foo() {
    let x = 20;
    eval("x;");
    if (b) {
        let x = 30;
        if (b) {
            let y = 40;
            eval("x;")
        }
    }
}

We can't reuse resolution depth when linking get_from_scope in evals.

* bytecode/UnlinkedCodeBlock.cpp:
(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::parameterCount):
* bytecode/UnlinkedCodeBlock.h:
Unlinked functions now know the variables that were under TDZ in their parent
scope.

(JSC::UnlinkedCodeBlock::symbolTable):
(JSC::UnlinkedCodeBlock::setSymbolTable):
(JSC::UnlinkedCodeBlock::setSymbolTableConstantIndex):
(JSC::UnlinkedCodeBlock::symbolTableConstantIndex):
(JSC::UnlinkedCodeBlock::vm):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::~BytecodeGenerator):
(JSC::BytecodeGenerator::newRegister):
(JSC::BytecodeGenerator::reclaimFreeRegisters):
(JSC::BytecodeGenerator::newBlockScopeVariable):
(JSC::BytecodeGenerator::newTemporary):
(JSC::BytecodeGenerator::emitProfileType):
(JSC::BytecodeGenerator::emitLoadGlobalObject):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::popLexicalScope):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::variablePerSymbolTable):
(JSC::BytecodeGenerator::variableForLocalEntry):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::initializeVariable):
(JSC::BytecodeGenerator::emitTDZCheck):
(JSC::BytecodeGenerator::needsTDZCheck):
(JSC::BytecodeGenerator::emitTDZCheckIfNecessary):
(JSC::BytecodeGenerator::liftTDZCheckIfPossible):
(JSC::BytecodeGenerator::getVariablesUnderTDZ):
(JSC::BytecodeGenerator::emitNewObject):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitGetParentScope):
(JSC::BytecodeGenerator::emitPopScope):
(JSC::BytecodeGenerator::emitDebugHook):
(JSC::BytecodeGenerator::pushFinallyContext):
(JSC::BytecodeGenerator::pushIteratorCloseContext):
(JSC::BytecodeGenerator::emitComplexPopScopes):
(JSC::BytecodeGenerator::emitPopScopes):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::calculateTargetScopeDepthForExceptionHandler):
(JSC::BytecodeGenerator::currentScopeDepth):
(JSC::BytecodeGenerator::emitThrowReferenceError):
(JSC::BytecodeGenerator::emitPushCatchScope):
(JSC::BytecodeGenerator::beginSwitch):
(JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded):
(JSC::BytecodeGenerator::emitEnumeration):
* bytecompiler/BytecodeGenerator.h:
(JSC::Variable::Variable):
(JSC::Variable::isResolved):
(JSC::Variable::symbolTableConstantIndex):
(JSC::Variable::ident):
(JSC::BytecodeGenerator::ignoredResult):
(JSC::BytecodeGenerator::tempDestination):
(JSC::BytecodeGenerator::lastOpcodeID):
(JSC::BytecodeGenerator::makeFunction):
(JSC::BytecodeGenerator::symbolTable):
(JSC::BytecodeGenerator::shouldOptimizeLocals): Deleted.
(JSC::BytecodeGenerator::canOptimizeNonLocals): Deleted.
The heart of the changes in this patch are in the bytecode generator.
The bytecode generator now keeps a stack of tuples of
{symbol table, scope register, flag indicating catch or with scope, symbol table index in constant pool}
that models the runtime scope stack. This symbol table stack is used
in resolving local variables.

Also, the bytecode generator handles pushing and popping of lexical scopes.
This is relatively straight forward:
Captured 'let' variables end up in the JSLexicalEnvironment scope and non-captured
variables end up on the stack. Some trickiness is involved in generating
code for 'for' loops that have captured variables (I'm talking about variables in the loop
header, not the loop body). Each iteration of the for loop ends up with
its own JSLexicalEnvironment. Static code must be generated in such a way
to create this runtime behavior. This is done by emitting instructions to
push and pop a lexical scope at the end of each loop and copying values
from the previous loop's scope into the new scope. This code must also
ensure that each loop iteration's scope refers to the same underlying
SymbolTable so that no scope is accidentally mistaken as being a singleton scope.

When the debugger is enabled, all lexically defined variables will end up in the
JSLexicalEnvironment.

* bytecompiler/NodesCodegen.cpp:
(JSC::ResolveNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::PostfixNode::emitResolve):
(JSC::DeleteResolveNode::emitBytecode):
(JSC::TypeOfResolveNode::emitBytecode):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::BlockNode::emitBytecode):
(JSC::ExprStatementNode::emitBytecode):
(JSC::DeclarationStatement::emitBytecode):
(JSC::EmptyVarExpression::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForNode::emitBytecode):
(JSC::ForInNode::emitMultiLoopBytecode):
(JSC::ForOfNode::emitBytecode):
(JSC::SwitchNode::emitBytecode):
(JSC::BindingNode::bindValue):
(JSC::VarStatementNode::emitBytecode): Deleted.
* debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluate):
* debugger/DebuggerScope.cpp:
(JSC::DebuggerScope::getOwnPropertySlot):
(JSC::DebuggerScope::put):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* dfg/DFGNode.h:
(JSC::DFG::Node::castConstant):
(JSC::DFG::Node::initializationValueForActivation):
(JSC::DFG::Node::containsMovHint):
* dfg/DFGObjectAllocationSinkingPhase.cpp:
CreateActivation nodes now have a second OpInfo that tracks the
initial value that needs to be placed in the activation. This initial value
is also used in allocation sinking to create proper bottom values for all
scope variables.

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToLLVM::compileMaterializeCreateActivation):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::callOperation):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_push_with_scope):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_create_lexical_environment):
(JSC::JIT::emit_op_get_parent_scope):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_enter):
(JSC::JIT::emit_op_get_scope):
(JSC::JIT::emit_op_pop_scope): Deleted.
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_push_with_scope):
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_create_lexical_environment):
(JSC::JIT::emit_op_get_parent_scope):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_enter):
(JSC::JIT::emit_op_get_scope):
(JSC::JIT::emit_op_pop_scope): Deleted.
* jit/JITOperations.cpp:
(JSC::canAccessArgumentIndexQuickly):
* jit/JITOperations.h:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LLIntSlowPaths.h:
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createSourceElements):
(JSC::ASTBuilder::funcDeclarations):
(JSC::ASTBuilder::features):
(JSC::ASTBuilder::numConstants):
(JSC::ASTBuilder::createConditionalExpr):
(JSC::ASTBuilder::createAssignResolve):
(JSC::ASTBuilder::createClassDeclStatement):
(JSC::ASTBuilder::createBlockStatement):
(JSC::ASTBuilder::createIfStatement):
(JSC::ASTBuilder::createForLoop):
(JSC::ASTBuilder::createForInLoop):
(JSC::ASTBuilder::createForOfLoop):
(JSC::ASTBuilder::isBindingNode):
(JSC::ASTBuilder::createEmptyStatement):
(JSC::ASTBuilder::createDeclarationStatement):
(JSC::ASTBuilder::createVarStatement):
(JSC::ASTBuilder::createLetStatement):
(JSC::ASTBuilder::createEmptyVarExpression):
(JSC::ASTBuilder::createEmptyLetExpression):
(JSC::ASTBuilder::createReturnStatement):
(JSC::ASTBuilder::createTryStatement):
(JSC::ASTBuilder::createSwitchStatement):
(JSC::ASTBuilder::appendStatement):
(JSC::ASTBuilder::createCommaExpr):
(JSC::ASTBuilder::appendObjectPatternEntry):
(JSC::ASTBuilder::createBindingLocation):
(JSC::ASTBuilder::setEndOffset):
(JSC::ASTBuilder::Scope::Scope):
(JSC::ASTBuilder::makeAssignNode):
(JSC::ASTBuilder::varDeclarations): Deleted.
(JSC::ASTBuilder::addVar): Deleted.
* parser/Keywords.table:
* parser/NodeConstructors.h:
(JSC::ReadModifyResolveNode::ReadModifyResolveNode):
(JSC::AssignResolveNode::AssignResolveNode):
(JSC::ExprStatementNode::ExprStatementNode):
(JSC::DeclarationStatement::DeclarationStatement):
(JSC::EmptyVarExpression::EmptyVarExpression):
(JSC::EmptyLetExpression::EmptyLetExpression):
(JSC::IfElseNode::IfElseNode):
(JSC::WhileNode::WhileNode):
(JSC::ForNode::ForNode):
(JSC::CaseBlockNode::CaseBlockNode):
(JSC::SwitchNode::SwitchNode):
(JSC::ConstDeclNode::ConstDeclNode):
(JSC::BlockNode::BlockNode):
(JSC::EnumerationNode::EnumerationNode):
(JSC::ForInNode::ForInNode):
(JSC::ForOfNode::ForOfNode):
(JSC::ObjectPatternNode::create):
(JSC::BindingNode::create):
(JSC::BindingNode::BindingNode):
(JSC::VarStatementNode::VarStatementNode): Deleted.
* parser/Nodes.cpp:
(JSC::ScopeNode::ScopeNode):
(JSC::ScopeNode::singleStatement):
(JSC::ProgramNode::ProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):
(JSC::FunctionNode::finishParsing):
(JSC::VariableEnvironmentNode::VariableEnvironmentNode):
* parser/Nodes.h:
(JSC::VariableEnvironmentNode::VariableEnvironmentNode):
(JSC::VariableEnvironmentNode::lexicalVariables):
(JSC::ScopeNode::usesThis):
(JSC::ScopeNode::needsActivationForMoreThanVariables):
(JSC::ScopeNode::needsActivation):
(JSC::ScopeNode::hasCapturedVariables):
(JSC::ScopeNode::captures):
(JSC::ScopeNode::varDeclarations):
(JSC::ScopeNode::functionStack):
(JSC::ScopeNode::neededConstants):
(JSC::ProgramNode::startColumn):
(JSC::ProgramNode::endColumn):
(JSC::EvalNode::startColumn):
(JSC::EvalNode::endColumn):
(JSC::BindingNode::boundProperty):
(JSC::BindingNode::divotStart):
(JSC::BindingNode::divotEnd):
(JSC::ScopeNode::capturedVariableCount): Deleted.
(JSC::ScopeNode::capturedVariables): Deleted.
(JSC::ScopeNode::varStack): Deleted.
There is a new class called 'VariableEnvironmentNode' that has the
necessary fields to model a lexical scope. Multiple AST nodes now
also inherit from VariableEnvironmentNode.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::didFinishParsing):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseVariableDeclaration):
(JSC::Parser<LexerType>::parseWhileStatement):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::tryParseDestructuringPatternExpression):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseConstDeclarationList):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseBreakStatement):
(JSC::Parser<LexerType>::parseContinueStatement):
(JSC::Parser<LexerType>::parseSwitchStatement):
(JSC::Parser<LexerType>::parseTryStatement):
(JSC::Parser<LexerType>::parseBlockStatement):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClassDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseVarDeclaration): Deleted.
(JSC::Parser<LexerType>::parseVarDeclarationList): Deleted.
* parser/Parser.h:
(JSC::Scope::Scope):
(JSC::Scope::setIsFunction):
(JSC::Scope::isFunction):
(JSC::Scope::isFunctionBoundary):
(JSC::Scope::setIsLexicalScope):
(JSC::Scope::isLexicalScope):
(JSC::Scope::declaredVariables):
(JSC::Scope::finalizeLexicalEnvironment):
(JSC::Scope::computeLexicallyCapturedVariablesAndPurgeCandidates):
(JSC::Scope::declareCallee):
(JSC::Scope::declareVariable):
(JSC::Scope::declareLexicalVariable):
(JSC::Scope::hasDeclaredVariable):
(JSC::Scope::hasLexicallyDeclaredVariable):
(JSC::Scope::hasDeclaredParameter):
(JSC::Scope::declareWrite):
(JSC::Scope::preventAllVariableDeclarations):
(JSC::Scope::preventVarDeclarations):
(JSC::Scope::allowsVarDeclarations):
(JSC::Scope::allowsLexicalDeclarations):
(JSC::Scope::declareParameter):
(JSC::Scope::declareBoundParameter):
(JSC::Scope::useVariable):
(JSC::Scope::setNeedsFullActivation):
(JSC::Scope::needsFullActivation):
(JSC::Scope::hasDirectSuper):
(JSC::Scope::setNeedsSuperBinding):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::getCapturedVars):
(JSC::Scope::copyCapturedVariablesToVector):
(JSC::Parser::AutoCleanupLexicalScope::AutoCleanupLexicalScope):
(JSC::Parser::AutoCleanupLexicalScope::~AutoCleanupLexicalScope):
(JSC::Parser::AutoCleanupLexicalScope::setIsValid):
(JSC::Parser::AutoCleanupLexicalScope::isValid):
(JSC::Parser::AutoCleanupLexicalScope::setPopped):
(JSC::Parser::AutoCleanupLexicalScope::scope):
(JSC::Parser::currentScope):
(JSC::Parser::pushScope):
(JSC::Parser::popScopeInternal):
(JSC::Parser::popScope):
(JSC::Parser::declareVariable):
(JSC::Parser::hasDeclaredVariable):
(JSC::Parser::hasDeclaredParameter):
(JSC::Parser::declareWrite):
(JSC::Parser::findCachedFunctionInfo):
(JSC::Parser::isFunctionBodyNode):
(JSC::Parser::continueIsValid):
(JSC::Parser::pushLabel):
(JSC::Parser::popLabel):
(JSC::Parser::getLabel):
(JSC::Parser::isLETMaskedAsIDENT):
(JSC::Parser<LexerType>::parse):
(JSC::Scope::preventNewDecls): Deleted.
(JSC::Scope::allowsNewDecls): Deleted.
(JSC::Scope::getCapturedVariables): Deleted.
There are basic parser changes that now allow for the 'let'
keyword. The trickiest change is how we will still treat 'let'
as an identifier for sloppy-mode code sometimes. For example,
"var let = ..." is allowed but "let let" or "const let" is not.

The most significant change to the parser made for this patch
is appropriating the Scope struct to also also model a lexical
scope. Changes were made in how we track captured variables to
account for this. In general, I think some of this code could
benefit from a slight refactoring to make things cleaner.

* parser/ParserTokens.h:
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createNewExpr):
(JSC::SyntaxChecker::createConditionalExpr):
(JSC::SyntaxChecker::createAssignResolve):
(JSC::SyntaxChecker::createEmptyVarExpression):
(JSC::SyntaxChecker::createEmptyLetExpression):
(JSC::SyntaxChecker::createClassExpr):
(JSC::SyntaxChecker::createClassDeclStatement):
(JSC::SyntaxChecker::createBlockStatement):
(JSC::SyntaxChecker::createExprStatement):
(JSC::SyntaxChecker::createIfStatement):
(JSC::SyntaxChecker::createForLoop):
(JSC::SyntaxChecker::createForInLoop):
(JSC::SyntaxChecker::createForOfLoop):
(JSC::SyntaxChecker::createEmptyStatement):
(JSC::SyntaxChecker::createVarStatement):
(JSC::SyntaxChecker::createLetStatement):
(JSC::SyntaxChecker::createReturnStatement):
(JSC::SyntaxChecker::createBreakStatement):
(JSC::SyntaxChecker::createContinueStatement):
(JSC::SyntaxChecker::createTryStatement):
(JSC::SyntaxChecker::createSwitchStatement):
(JSC::SyntaxChecker::createWhileStatement):
(JSC::SyntaxChecker::createWithStatement):
(JSC::SyntaxChecker::createDoWhileStatement):
(JSC::SyntaxChecker::createGetterOrSetterProperty):
(JSC::SyntaxChecker::appendStatement):
(JSC::SyntaxChecker::combineCommaNodes):
(JSC::SyntaxChecker::evalCount):
(JSC::SyntaxChecker::appendBinaryExpressionInfo):
(JSC::SyntaxChecker::operatorStackPop):
(JSC::SyntaxChecker::addVar): Deleted.
* parser/VariableEnvironment.cpp: Added.
(JSC::VariableEnvironment::markVariableAsCapturedIfDefined):
(JSC::VariableEnvironment::markVariableAsCaptured):
(JSC::VariableEnvironment::markAllVariablesAsCaptured):
(JSC::VariableEnvironment::hasCapturedVariables):
(JSC::VariableEnvironment::captures):
(JSC::VariableEnvironment::swap):
* parser/VariableEnvironment.h: Added.
(JSC::VariableEnvironmentEntry::isCaptured):
(JSC::VariableEnvironmentEntry::isConstant):
(JSC::VariableEnvironmentEntry::isVar):
(JSC::VariableEnvironmentEntry::isLet):
(JSC::VariableEnvironmentEntry::setIsCaptured):
(JSC::VariableEnvironmentEntry::setIsConstant):
(JSC::VariableEnvironmentEntry::setIsVar):
(JSC::VariableEnvironmentEntry::setIsLet):
(JSC::VariableEnvironmentEntry::clearIsVar):
(JSC::VariableEnvironment::begin):
(JSC::VariableEnvironment::end):
(JSC::VariableEnvironment::add):
(JSC::VariableEnvironment::size):
(JSC::VariableEnvironment::contains):
(JSC::VariableEnvironment::remove):
VariableEnvironment is a new class that keeps track
of the static environment in the parser and the bytecode generator.
VariableEnvironment behaves like SymbolTable but for the bytecode generator.
It keeps track of variable types, i.e, if a variable is a "var", "let", "const"
and whether or not its captured.

* runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
* runtime/CodeCache.h:
(JSC::CodeCache::clear):
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/CommonSlowPaths.h:
* runtime/ExceptionHelpers.cpp:
(JSC::createErrorForInvalidGlobalAssignment):
(JSC::createTDZError):
(JSC::throwOutOfMemoryError):
* runtime/ExceptionHelpers.h:
* runtime/Executable.cpp:
(JSC::EvalExecutable::create):
(JSC::ProgramExecutable::initializeGlobalProperties):
* runtime/Executable.h:
* runtime/JSCJSValue.h:
(JSC::jsUndefined):
(JSC::jsTDZValue):
(JSC::jsBoolean):
* runtime/JSEnvironmentRecord.h:
(JSC::JSEnvironmentRecord::finishCreationUninitialized):
(JSC::JSEnvironmentRecord::finishCreation):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::weakRandomInteger):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
* runtime/JSLexicalEnvironment.cpp:
(JSC::JSLexicalEnvironment::symbolTableGet):
* runtime/JSLexicalEnvironment.h:
(JSC::JSLexicalEnvironment::create):
* runtime/JSScope.cpp:
(JSC::JSScope::resolve):
(JSC::JSScope::abstractResolve):
(JSC::JSScope::collectVariablesUnderTDZ):
(JSC::JSScope::isLexicalScope):
(JSC::resolveModeName):
* runtime/JSScope.h:
* runtime/PropertySlot.h:
(JSC::PropertySlot::setValue):
* runtime/SymbolTable.cpp:
(JSC::SymbolTable::SymbolTable):
(JSC::SymbolTable::cloneScopePart):
* runtime/SymbolTable.h:
SymbolTable now uses an extra bit to know if it corresponds
to a "let"-like environment or not.

* runtime/WriteBarrier.h:
(JSC::WriteBarrierBase<Unknown>::get):
(JSC::WriteBarrierBase<Unknown>::clear):
(JSC::WriteBarrierBase<Unknown>::setUndefined):
(JSC::WriteBarrierBase<Unknown>::setStartingValue):
(JSC::WriteBarrierBase<Unknown>::isNumber):
(JSC::WriteBarrierBase<Unknown>::isObject):
(JSC::WriteBarrierBase<Unknown>::isNull):
* tests/stress/activation-sink-default-value-tdz-error.js: Added.
(shouldThrowTDZ):
(bar):
(foo.cap):
* tests/stress/activation-sink-osrexit-default-value-tdz-error.js: Added.
(shouldThrowTDZ):
(bar):
* tests/stress/lexical-let-and-with-statement.js: Added.
(truth):
(assert):
(.):
* tests/stress/lexical-let-exception-handling.js: Added.
(truth):
(assert):
(.):
* tests/stress/lexical-let-global-not-captured-variables.js: Added.
(truth):
(assert):
(foo):
(.let.capY):
* tests/stress/lexical-let-loop-semantics.js: Added.
(truth):
(assert):
(shouldThrowTDZ):
(.):
* tests/stress/lexical-let-not-strict-mode.js: Added.
(truth):
(assert):
(shouldThrowTDZ):
(.):
* tests/stress/lexical-let-semantics.js: Added.
(truth):
(assert):
(let.globalFunction):
(let.retGlobalNumberCaptured):
(let.setGlobalNumberCaptured):
(.):
* tests/stress/lexical-let-tdz.js: Added.
(truth):
(assert):
(shouldThrowTDZ):
(.):

LayoutTests:

* js/dom/reserved-words-as-property-expected.txt:
* js/keywords-and-reserved_words-expected.txt:
* js/let-syntax-expected.txt: Added.
* js/let-syntax.html: Added.
* js/reserved-words-strict-expected.txt:
* js/script-tests/keywords-and-reserved_words.js:
* js/script-tests/let-syntax.js: Added.
(truth):
(assert):
(hasSyntaxError):
(shouldHaveSyntaxError):
(shouldNotHaveSyntaxError):
(shouldHaveSyntaxErrorStrictOnly):
* js/script-tests/reserved-words-strict.js:
* js/script-tests/statement-list-item-syntax-errors.js:
(testSyntax):
(runTests):
* js/statement-list-item-syntax-errors-expected.txt:

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

5 years agoMake JavaScriptCore SPI headers used by WebCore SPI headers self-contained
andersca@apple.com [Wed, 15 Jul 2015 21:29:34 +0000 (21:29 +0000)]
Make JavaScriptCore SPI headers used by WebCore SPI headers self-contained
https://bugs.webkit.org/show_bug.cgi?id=146978

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

* debugger/DebuggerPrimitives.h:
* disassembler/Disassembler.h:
* heap/Weak.h:
* inspector/InspectorValues.h:
* runtime/JSCJSValue.h:

Source/WTF:

* wtf/ExportMacros.h:

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

5 years agoFactor rect shrink-wrapping code out of RenderThemeMac for future reuse
timothy_horton@apple.com [Wed, 15 Jul 2015 21:19:29 +0000 (21:19 +0000)]
Factor rect shrink-wrapping code out of RenderThemeMac for future reuse
https://bugs.webkit.org/show_bug.cgi?id=146973
<rdar://problem/21643094>

Reviewed by Anders Carlsson.

Test: fast/shrink-wrap/rect-shrink-wrap.html

* WebCore.xcodeproj/project.pbxproj:
Add DOMPath.cpp and PathUtilities.{h, cpp}.

* bindings/js/JSDOMBinding.h:
(WebCore::NativeValueTraits<double>::nativeValue):
Make it possible to use sequence<double> in IDL files.

* bindings/scripts/CodeGeneratorJS.pm:
Export JSDOMPath for use in Internals.

* html/canvas/DOMPath.cpp: Added.
(WebCore::DOMPath::~DOMPath):
* html/canvas/DOMPath.h:
Out-of-line the DOMPath destructor so as not to anger the bindings
integrity checker (otherwise, the address of the DOMPath destructor
is different in WebCoreTestSupport and WebCore, causing us to fail
the vtable equality test).

* platform/graphics/Path.h:
Forward declare FloatRect instead of including it unnecessarily.
Export ensurePlatformPath().

* platform/graphics/PathUtilities.cpp: Added.
(WebCore::addShrinkWrapRightCorner):
(WebCore::addShrinkWrapLeftCorner):
(WebCore::addShrinkWrappedPathForRects):
These parts are extracted from RenderThemeMac, with two changes:
    + support for arbitrarily-aligned rects
      (the other version assumed they were horizontally center-aligned)
    + support for overlapping rects
      (the other version assumed they touched but did not overlap)

There are still things missing:
    + support for a fallback when the shape is too hard to shrink-wrap

And things broken:
    + if the distance between two edges is smaller than the corner radius,
      we'll end up with a sharp edge in the path

Both of these cases are covered in the layout test and can be improved.

(WebCore::rectsIntersectOrTouch):
Rect intersection with <= instead of <.

(WebCore::contiguousRectGroupsFromRects):
Given a set of rects, find all of the contiguous regions. We'll
shrink-wrap each region independently.

(WebCore::PathUtilities::pathWithShrinkWrappedRects):
* platform/graphics/PathUtilities.h: Added.
Add PathUtilities, where the shrink-wrapping code lives.

* rendering/RenderThemeMac.mm:
(WebCore::paintAttachmentTitleBackground):
(WebCore::addAttachmentTitleBackgroundRightCorner): Deleted.
(WebCore::addAttachmentTitleBackgroundLeftCorner): Deleted.
Remove shrink-wrapping implementation and make use of the one in PathUtilities.

* testing/Internals.cpp:
(WebCore::Internals::pathWithShrinkWrappedRects):
* testing/Internals.h:
* testing/Internals.idl:
Expose pathWithShrinkWrappedRects to tests via Internals.
It takes a sequence<double> where every four values are the x, y, w, h
of a rect, and returns a DOMPath which can be used with Canvas.

* fast/shrink-wrap/rect-shrink-wrap-expected.png: Added.
* fast/shrink-wrap/rect-shrink-wrap-expected.txt: Added.
* fast/shrink-wrap/rect-shrink-wrap.html: Added.
Add a test of both working and broken (indicated by comments in the test)
shrink-wrapping cases.

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

5 years ago[iOS] Should look for RTF and RTFD pasteboard types before plain text.
enrica@apple.com [Wed, 15 Jul 2015 21:07:01 +0000 (21:07 +0000)]
[iOS] Should look for RTF and RTFD pasteboard types before plain text.
https://bugs.webkit.org/show_bug.cgi?id=146971
rdar://problem/21840845

Reviewed by Sam Weinig.

The list of pasteboard types returned by supportedPasteboardTypes
determines the order in which WebKit looks for data in the pasteboard
to create a fragment. The incorrect order could make plain text to
be preferred over rich format.

* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::supportedPasteboardTypes):

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

5 years agoPrivate headers that include project headers should also be project headers
andersca@apple.com [Wed, 15 Jul 2015 21:06:16 +0000 (21:06 +0000)]
Private headers that include project headers should also be project headers
https://bugs.webkit.org/show_bug.cgi?id=146974

Reviewed by Dan Bernstein.

Since these headers can't be included by WebKit anyway they shouldn't be installed.

* WebCore.xcodeproj/project.pbxproj:

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

5 years ago[Mac] AirPlay route is not always set automatically
eric.carlson@apple.com [Wed, 15 Jul 2015 20:49:48 +0000 (20:49 +0000)]
[Mac] AirPlay route is not always set automatically
https://bugs.webkit.org/show_bug.cgi?id=146969

Reviewed by Jer Noble.

* Modules/mediasession/WebMediaSessionManager.cpp:
(WebCore::WebMediaSessionManager::configurePlaybackTargetClients): Return early if there are
  no clients. Make the first client in the vector automatically play to the target if there
  is no other match and there is an active route.
(WebCore::WebMediaSessionManager::watchdogTimerFired): Call picker.invalidatePlaybackTargets,
  not stopMonitoringPlaybackTargets.

* platform/graphics/MediaPlaybackTargetPicker.cpp:
(WebCore::MediaPlaybackTargetPicker::invalidatePlaybackTargets): New.
* platform/graphics/MediaPlaybackTargetPicker.h:

* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(WebCore::MediaPlaybackTargetPickerMac::stopMonitoringPlaybackTargets): Do nothing, AirPlay
  automatically stops monitoring when appropriate and release the picker also releases
  the output context, which drops the route.
(WebCore::MediaPlaybackTargetPickerMac::invalidatePlaybackTargets): New.

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

5 years agoRemove forwarding headers that no longer point to valid headers
andersca@apple.com [Wed, 15 Jul 2015 20:36:01 +0000 (20:36 +0000)]
Remove forwarding headers that no longer point to valid headers
https://bugs.webkit.org/show_bug.cgi?id=146972

Reviewed by Tim Horton.

* ForwardingHeaders/heap/AllocationSpace.h: Removed.
* ForwardingHeaders/runtime/IntegralTypedArrayBase.h: Removed.
* ForwardingHeaders/runtime/PrototypeFunction.h: Removed.
* ForwardingHeaders/runtime/StorageBarrier.h: Removed.
* ForwardingHeaders/runtime/TypedArrayBase.h: Removed.

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

5 years ago[GTK] Rename LIBEXECDIR to PKGLIBEXECDIR
mcatanzaro@igalia.com [Wed, 15 Jul 2015 20:34:17 +0000 (20:34 +0000)]
[GTK] Rename LIBEXECDIR to PKGLIBEXECDIR
https://bugs.webkit.org/show_bug.cgi?id=140070

Reviewed by Martin Robinson.

The path that's currently stored in LIBEXECDIR is one level lower than
the real LIBEXECDIR, which we are going to need. Introduce PKGLIBEXECDIR
so that we can use LIBEXECDIR for the real LIBEXECDIR in the future.

* PlatformGTK.cmake:
* Shared/gtk/ProcessExecutablePathGtk.cpp:
(WebKit::findWebKitProcess):

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

5 years ago[Mac][WK2] Videos should only have access to cookies when -[NSURLRequest HTTPShouldHa...
dbates@webkit.org [Wed, 15 Jul 2015 18:02:50 +0000 (18:02 +0000)]
[Mac][WK2] Videos should only have access to cookies when -[NSURLRequest HTTPShouldHandleCookies] is YES
https://bugs.webkit.org/show_bug.cgi?id=146763
<rdar://problem/21736994>

Reviewed by Darin Adler.

We should only fetch cookies from the Network process when -[NSURLRequest HTTPShouldHandleCookies] is YES.
This makes us more closely match the behavior of the CFNetwork implementation of
-[__NSURLSessionLocal {_copyCookiesForRequestUsingAllAppropriateStorageSemantics, _getCookieHeadersForTask:completionHandler}].

* Shared/mac/CookieStorageShim.mm:
(-[WKNSURLSessionLocal _copyCookiesForRequestUsingAllAppropriateStorageSemantics:]):
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

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

5 years ago[iOS] Add support for updateSelectionWithExtentPoint:withBoundary.
enrica@apple.com [Wed, 15 Jul 2015 17:52:11 +0000 (17:52 +0000)]
[iOS] Add support for updateSelectionWithExtentPoint:withBoundary.
https://bugs.webkit.org/show_bug.cgi?id=146951
rdar://problem/20864286

Reviewed by Tim Horton.

Add implementation for new method used by text selection
engine on iOS. The new function modifies the selection near the given point
and snaps it at the boundary of the specified granularity.

* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):
(-[WKContentView _characterBeforeCaretSelection]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
(WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPageProxy::requestDictationContext):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForGranularityAtPoint):
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary):

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

5 years agoNegative scroll snap repeat values cause web process to hang indefinitely
commit-queue@webkit.org [Wed, 15 Jul 2015 16:02:39 +0000 (16:02 +0000)]
Negative scroll snap repeat values cause web process to hang indefinitely
https://bugs.webkit.org/show_bug.cgi?id=146953
Source/WebCore:

<rdar://problem/21823681>

Patch by Wenson Hsieh <wenson_hsieh@apple.com> on 2015-07-15
Reviewed by Simon Fraser.

Fixed dangerous behavior caused by setting -scroll-snap-points-x or -y to negative or very small
positive values. In the case of negative or 0 repeats, the web process would hang indefinitely. In
the case of very small positive values, a massive amount of memory could potentially be allocated
just to store snap offsets.

Tests: css3/scroll-snap/scroll-snap-negative-repeat.html
       css3/scroll-snap/scroll-snap-subpixel-repeat.html

* css/CSSParser.cpp:
(WebCore::CSSParser::parseNonElementSnapPoints): Changed to consider negative snap repeat values as invalid CSS.
* page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::updateFromStyle): Changed to threshold non-negative snap repeat values to 1px.

LayoutTests:

Patch by Wenson Hsieh <wenson_hsieh@apple.com> on 2015-07-15
Reviewed by Simon Fraser.

The first test case checks that setting -scroll-snap-points-x or -y to a negative value
will not cause the web process to hang. The second test case (in a similar vein) checks
that tiny subpixel snap repeats generate a reasonable number of snap offsets.

* css3/scroll-snap/scroll-snap-negative-repeat-expected.txt: Added.
* css3/scroll-snap/scroll-snap-negative-repeat.html: Added.
* css3/scroll-snap/scroll-snap-subpixel-repeat-expected.txt: Added.
* css3/scroll-snap/scroll-snap-subpixel-repeat.html: Added.

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

5 years ago[Linux] SeccompBrokerClient should cache arbitrary file descriptors
mcatanzaro@igalia.com [Wed, 15 Jul 2015 16:01:32 +0000 (16:01 +0000)]
[Linux] SeccompBrokerClient should cache arbitrary file descriptors
https://bugs.webkit.org/show_bug.cgi?id=140068

Reviewed by Žan Doberšek.

If malloc() attempts to open /proc/sys/vm/overcommit_memory in a SIGSYS
signal handler, the SeccompBroker will attempt to recursively broker the
open() syscall. Generalize the existing code that already handles the
similar case where malloc() opens /sys/devices/system/cpu/online to
handle this situation as well.

* Shared/linux/SeccompFilters/SeccompBroker.cpp:
(WebKit::SIGSYSHandler):
(WebKit::SeccompBrokerClient::SeccompBrokerClient):
(WebKit::SeccompBrokerClient::~SeccompBrokerClient):
(WebKit::SeccompBrokerClient::handleIfOpeningCachedFile):
(WebKit::SeccompBrokerClient::cacheFile):
(WebKit::SeccompBrokerClient::handleIfOpeningOnlineCPUCount): Deleted.

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

5 years agoPlaceholder colors should be system grays
dino@apple.com [Wed, 15 Jul 2015 14:22:50 +0000 (14:22 +0000)]
Placeholder colors should be system grays
https://bugs.webkit.org/show_bug.cgi?id=146955
<rdar://problem/21774358>

Reviewed by Sam Weinig.

Update the PiP and Airplay placards to use the correct shades
of gray.

* Modules/mediacontrols/mediaControlsApple.css: No need to specify the
font here, nor have rules for Picture in Picture, which isn't available
on OS X.
(audio::-webkit-media-controls-time-remaining-display): We should specify
font style here.
(video:-webkit-full-screen::-webkit-media-controls-panel): Drive-by cleanup.
(audio::-webkit-media-controls-wireless-playback-status): Use a gray background
and system gray for text and artwork.
(audio::-webkit-media-controls-wireless-playback-status.small): Ditto.
(audio::-webkit-media-controls-picture-in-picture-button): Deleted (not on OS X).
(audio::-webkit-media-controls-wireless-playback-text-top): Deleted use of background color.
(audio::-webkit-media-controls-wireless-playback-text-bottom): Ditto..

* Modules/mediacontrols/mediaControlsiOS.css: Use a gray background
and system gray for text and artwork.
(audio::-webkit-media-controls-wireless-playback-status):
(audio::-webkit-media-controls-wireless-playback-text-top):
(audio::-webkit-media-controls-wireless-playback-status.picture-in-picture):

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

5 years agohttp/tests/misc/large-js-program.php crashes slowly in Debug builds on Windows
ddkilzer@apple.com [Wed, 15 Jul 2015 14:15:33 +0000 (14:15 +0000)]
http/tests/misc/large-js-program.php crashes slowly in Debug builds on Windows

Fix is tracked by <rdar://problem/21816197>.

After r186813, the test was found to also crash in Debug builds
on Windows; it just needed more time to do so:

<https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fmisc%2Flarge-js-program.php>

* platform/win/TestExpectations: Mark test as slow and crashing:
- http/tests/misc/large-js-program.php

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

5 years ago[GTK] Accelerated compositing is enabled by MiniBrowser in Wayland
changseok.oh@collabora.com [Wed, 15 Jul 2015 13:34:19 +0000 (13:34 +0000)]
[GTK] Accelerated compositing is enabled by MiniBrowser in Wayland
https://bugs.webkit.org/show_bug.cgi?id=146827

Reviewed by Žan Doberšek.

WebKit2Gtk+ does not currently support accelerated compositing. For the reason,
we forcedly disable it in webkitWebViewBaseCreateWebPage. However, when we launch
MiniBrowser in wayland, the unsupported feature is re-enabled since the existing
setting is overwritten by a newly created one. Here the default value for
accelerated compositing is true. We can fix this by moving the code disabling
accelerated composition to WebPreferences::platformInitializeStore() so that
we make sure the accelerated compositing is always disabled for wayland.

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseCreateWebPage): Deleted.
* UIProcess/gtk/WebPreferencesGtk.cpp:
(WebKit::WebPreferences::platformInitializeStore):

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

5 years agoFixed build fix.
mitz@apple.com [Wed, 15 Jul 2015 08:33:31 +0000 (08:33 +0000)]
Fixed build fix.

* Platform/spi/ios/SafariServicesSPI.h:

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

5 years ago[CoordinatedGraphics] Possible wrong rendering with scrolling
ryuan.choi@navercorp.com [Wed, 15 Jul 2015 06:43:31 +0000 (06:43 +0000)]
[CoordinatedGraphics] Possible wrong rendering with scrolling
https://bugs.webkit.org/show_bug.cgi?id=146958

Reviewed by Gyuyoung Kim.

While r174261 fixing build break, there is some mistake that flushes contents layer
instead of overlay layer.

* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):

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

5 years agoAttempted build fixes.
mitz@apple.com [Wed, 15 Jul 2015 06:29:29 +0000 (06:29 +0000)]
Attempted build fixes.

* Platform/spi/ios/SafariServicesSPI.h:

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

5 years agoREGRESSION (r186698): Web Inspector: Frame selector is monospace again
nvasilyev@apple.com [Wed, 15 Jul 2015 05:04:45 +0000 (05:04 +0000)]
REGRESSION (r186698): Web Inspector: Frame selector is monospace again
https://bugs.webkit.org/show_bug.cgi?id=146954

Reviewed by Joseph Pecoraro.

* UserInterface/Views/HierarchicalPathComponent.css:
(.hierarchical-path-component):

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

5 years agoAttempted build fixes.
mitz@apple.com [Wed, 15 Jul 2015 04:42:05 +0000 (04:42 +0000)]
Attempted build fixes.

* Platform/spi/ios/SafariServicesSPI.h:

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

5 years ago[EFL] Scrollbar is not drawn on MiniBrowser.
commit-queue@webkit.org [Wed, 15 Jul 2015 04:16:27 +0000 (04:16 +0000)]
[EFL] Scrollbar is not drawn on MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=143566

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

Implement the ScrollbarThemeEfl to draw the scrollbar on EFL port.

* PlatformEfl.cmake: Removed the ScrollbarEfl.cpp.

* platform/Scrollbar.cpp: Removed the !PLATFORM(EFL) guard to use the createNativeScrollbar().

* platform/efl/DefaultTheme/CMakeLists.txt: Replaced the image files with new ones.

* platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc:
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_horizontal.png: Added.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_vertical.png: Added.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png: Removed.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png: Removed.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png: Removed.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_horizontal.png: Added.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_vertical.png: Added.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png: Removed.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::toEdjeGroup):
(WebCore::RenderThemeEfl::paintThemePart): Added the new function to draw the scrollbar
  using the RenderThemeEfl.

* platform/efl/RenderThemeEfl.h:
* platform/efl/ScrollbarEfl.cpp: Removed.
* platform/efl/ScrollbarEfl.h: Removed.
* platform/efl/ScrollbarThemeEfl.cpp: Implemented the default functions to draw the
  scrollbar.
(WebCore::scrollbarMap):
(WebCore::ScrollbarThemeEfl::~ScrollbarThemeEfl):
(WebCore::ScrollbarThemeEfl::scrollbarThickness):
(WebCore::ScrollbarThemeEfl::hasThumb):
(WebCore::ScrollbarThemeEfl::backButtonRect):
(WebCore::ScrollbarThemeEfl::forwardButtonRect):
(WebCore::ScrollbarThemeEfl::trackRect):
(WebCore::ScrollbarThemeEfl::minimumThumbLength):
(WebCore::ScrollbarThemeEfl::paintTrackBackground):
(WebCore::ScrollbarThemeEfl::paintThumb):
(WebCore::ScrollbarThemeEfl::registerScrollbar):
(WebCore::ScrollbarThemeEfl::unregisterScrollbar):
(WebCore::ScrollbarThemeEfl::loadThemeIfNeeded):
* platform/efl/ScrollbarThemeEfl.h:
(WebCore::ScrollbarThemeEfl::usesOverlayScrollbars):

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

5 years agoDon't persist history item tree for subframes across reloads.
akling@apple.com [Wed, 15 Jul 2015 02:12:16 +0000 (02:12 +0000)]
Don't persist history item tree for subframes across reloads.
<https://webkit.org/b/146937>
<rdar://problem/19925709>

Reviewed by Brady Eidson.

Throw away the subframe history items when reloading a page. This ensures that we
don't accumulate outdated frame metadata when subframes change name across page loads.
Since the history item tree is encoded in the UA session state and gets serialized to
disk, it's important that we don't let it grow unbounded.

* loader/HistoryController.cpp:
(WebCore::HistoryController::updateForReload):

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

5 years agoREGRESSION (r177876): store.apple.com profile and cart icons are missing
mmaxfield@apple.com [Wed, 15 Jul 2015 00:23:41 +0000 (00:23 +0000)]
REGRESSION (r177876): store.apple.com profile and cart icons are missing
https://bugs.webkit.org/show_bug.cgi?id=146894

Patch by Antti Koivisto <antti@apple.com> on 2015-07-14
Reviewed by Myles C. Maxfield.

Source/WebCore:

If we had several @font-face rules for the same face covering overlapping ranges we
would only try to get glyphs from the first one. If it didn't have the glyph we wouldn't
try the other ones.

Test: fast/css/font-face-multiple-missing-glyphs.html

* platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::glyphDataForVariant):
(WebCore::FontCascadeFonts::glyphDataForNormalVariant):

    Get GlyphData with one call.

* platform/graphics/FontRanges.cpp:
(WebCore::FontRanges::~FontRanges):
(WebCore::FontRanges::glyphDataForCharacter):

    Check that we actually have a glyph in the font for the character before returning it.

(WebCore::FontRanges::fontForCharacter):
(WebCore::FontRanges::fontForFirstRange):
* platform/graphics/FontRanges.h:
(WebCore::FontRanges::size):
(WebCore::FontRanges::rangeAt):

LayoutTests:

* fast/css/font-face-multiple-missing-glyphs-expected.html: Added.
* fast/css/font-face-multiple-missing-glyphs.html: Added.

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

5 years agoAssertions.h should include ExportMacros.h
andersca@apple.com [Tue, 14 Jul 2015 23:50:39 +0000 (23:50 +0000)]
Assertions.h should include ExportMacros.h
https://bugs.webkit.org/show_bug.cgi?id=146948

Reviewed by Tim Horton.

Source/JavaScriptCore:

Remove now unneeded WTF_EXPORT_PRIVATE define.

* API/JSBase.h:

Source/WTF:

* wtf/Assertions.h:

Tools:

Remove now unneeded WTF_EXPORT_PRIVATE define.

* DumpRenderTree/cg/ImageDiffCG.cpp:

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

5 years agoFix the 32 bit build after r186817
commit-queue@webkit.org [Tue, 14 Jul 2015 23:50:16 +0000 (23:50 +0000)]
Fix the 32 bit build after r186817
https://bugs.webkit.org/show_bug.cgi?id=146947

Changed CGRect to NSRect.

Patch by Wenson Hsieh <wenson_hsieh@apple.com> on 2015-07-14
Reviewed by Simon Fraser.

* platform/mac/ThemeMac.mm:
(WebCore::paintButton):

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

5 years agoWeb Inspector: TimelineRuler minimum selection time range should be configurable
mattbaker@apple.com [Tue, 14 Jul 2015 23:38:02 +0000 (23:38 +0000)]
Web Inspector: TimelineRuler minimum selection time range should be configurable
https://bugs.webkit.org/show_bug.cgi?id=146944

Reviewed by Joseph Pecoraro.

* UserInterface/Views/RenderingFrameTimelineOverview.js:
Set minimum selection to 1 frame.

* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.set selectionDuration):
Use ruler's minimum duration.

* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.get minimumSelectionDuration):
(WebInspector.TimelineRuler.prototype.set minimumSelectionDuration):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
Added property for setting minimum selection duration. Default minimum duration is 0.01, which is
equal to the old hard-coded minimum selection time range.

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

5 years agoTeach platformMac.cmake about El Capitan WKSI.
lforschler@apple.com [Tue, 14 Jul 2015 23:13:34 +0000 (23:13 +0000)]
Teach platformMac.cmake about El Capitan WKSI.
<rdar://problem/21822469>

Reviewed by Alex Christensen.

* PlatformMac.cmake:

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

5 years agoRemove wkPopupMenu from WebCoreSystemInterface; it's not called from WebCore
andersca@apple.com [Tue, 14 Jul 2015 22:24:54 +0000 (22:24 +0000)]
Remove wkPopupMenu from WebCoreSystemInterface; it's not called from WebCore
https://bugs.webkit.org/show_bug.cgi?id=146945

Reviewed by Tim Horton.

Source/WebCore:

* platform/mac/WebCoreSystemInterface.h:

Source/WebKit/mac:

* WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::show):
* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.

Source/WebKit2:

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.

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

5 years agoRepatch. Makes compileArithSub in the DFG ensure that the constant is an int32.
mmirman@apple.com [Tue, 14 Jul 2015 21:56:14 +0000 (21:56 +0000)]
Repatch. Makes compileArithSub in the DFG ensure that the constant is an int32.
https://bugs.webkit.org/show_bug.cgi?id=146910
rdar://problem/21729083

Reviewed by Filip Pizlo.

Also fixes the debug build problem where all edges are assumed to
have UntypedUse before the fixup phase.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithSub):
* dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validateEdgeWithDoubleResultIfNecessary):
* tests/stress/arith-add-with-constants.js: Added some tests for this case.
(arithAdd42WrittenAsInteger):
(testArithAdd42WrittenAsInteger):
(arithSub42WrittenAsDouble):
(testArithSub42WrittenAsDouble):
(doubleConstant):
(testDoubleConstant): Added test for the case of +0.0 and Math.min(0.0)
(arithAdd42WrittenAsDouble): Deleted.
(testArithAdd42WrittenAsDouble): Deleted.

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

5 years agoInput buttons rendered at the wrong size when pinching-to-zoom
commit-queue@webkit.org [Tue, 14 Jul 2015 21:39:34 +0000 (21:39 +0000)]
Input buttons rendered at the wrong size when pinching-to-zoom
https://bugs.webkit.org/show_bug.cgi?id=146916

Patch by Wenson Hsieh <wenson_hsieh@apple.com> on 2015-07-14
Reviewed by Dean Jackson.

Scales buttons and their focus rects up when pinching to zoom by painting to an offscreen ImageBuffer which is
then scaled and painted onto the display.

* platform/Theme.h: Modified signature of Theme::paint.
(WebCore::Theme::paint): Added plumbing necessary to send the device and page scale factors to paintButton.
* platform/mac/ThemeMac.h: Modified signature of paintButton.
* platform/mac/ThemeMac.mm: Added ImageBuffer.h header.
(WebCore::buttonFocusRectOutlineWidth): Represents the width of the focus rect of a button. Used by paintButton
    to determine the size of the ImageBuffer required to draw a focus rect.
(WebCore::paintButton): Changed to paint button cells and the focus rect, if applicable, to a temporary ImageBuffer
    before painting the ImageBuffer onto the view. Refactored to receive a deviceScaleFactor and page scale factor,
    used when painting to the ImageBuffer.
(WebCore::ThemeMac::paint): Added plumbing necessary to send the device and page scale factors to paintButton.
* rendering/RenderTheme.cpp: Modified signature of RenderTheme::paint.
(WebCore::RenderTheme::paint): Added plumbing necessary to send the device and page scale factors to paintButton.

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

5 years agoUnreviewed, rolling out r186809.
commit-queue@webkit.org [Tue, 14 Jul 2015 21:19:50 +0000 (21:19 +0000)]
Unreviewed, rolling out r186809.
https://bugs.webkit.org/show_bug.cgi?id=146943

Caused about 190 layout test failures. (Requested by mlam_ on
#webkit).

Reverted changeset:

"REGRESSION (r177876): store.apple.com profile and cart icons
are missing"
https://bugs.webkit.org/show_bug.cgi?id=146894
http://trac.webkit.org/changeset/186809

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

5 years agoRelease assert under StyleResolver::loadPendingImages() caused by MemoryPressureHandler
andersca@apple.com [Tue, 14 Jul 2015 21:06:56 +0000 (21:06 +0000)]
Release assert under StyleResolver::loadPendingImages() caused by MemoryPressureHandler
https://bugs.webkit.org/show_bug.cgi?id=146940
rdar://problem/21605505

Reviewed by Sam Weinig.

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

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

5 years agohttp/tests/misc/large-js-program.php crashes in Release, times out in Debug, on Windows
ddkilzer@apple.com [Tue, 14 Jul 2015 21:05:06 +0000 (21:05 +0000)]
http/tests/misc/large-js-program.php crashes in Release, times out in Debug, on Windows

Fix is tracked by <rdar://problem/21816197>.

* platform/win/TestExpectations: Mark test as crashing in
Release and timing out on Debug:
- http/tests/misc/large-js-program.php

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

5 years agoWebKit needs to serialize numeric values in NSError userInfo
weinig@apple.com [Tue, 14 Jul 2015 20:39:59 +0000 (20:39 +0000)]
WebKit needs to serialize numeric values in NSError userInfo
<rdar://problem/21818117>
https://bugs.webkit.org/show_bug.cgi?id=146936

Reviewed by Anders Carlsson.

* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
Encode userInfo values that are NSNumbers in addition to NSStrings and NSURLs. Decoding
is already handled.

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

5 years agoUnreviewed, rolling out r186805.
mmirman@apple.com [Tue, 14 Jul 2015 20:18:02 +0000 (20:18 +0000)]
Unreviewed, rolling out r186805.

Made raytracer on octane 80% slower

Reverted changeset:

"Makes compileArithSub in the DFG ensure that the constant is
an int32."
https://bugs.webkit.org/show_bug.cgi?id=146910
http://trac.webkit.org/changeset/186805

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

5 years ago[Linux] SeccompFilters: whitelist all NPAPI plugin directories
mcatanzaro@igalia.com [Tue, 14 Jul 2015 20:06:10 +0000 (20:06 +0000)]
[Linux] SeccompFilters: whitelist all NPAPI plugin directories
https://bugs.webkit.org/show_bug.cgi?id=140067

Reviewed by Žan Doberšek.

* PlatformEfl.cmake: Build PluginSearchPath.cpp
* PlatformGTK.cmake: Build PluginSearchPath.cpp
* Shared/Plugins/unix/PluginSearchPath.cpp: Added.
(WebKit::pluginsDirectories): Moved from PluginInfoStoreUnix.cpp.
* Shared/Plugins/unix/PluginSearchPath.h: Added.
* Shared/linux/SeccompFilters/SyscallPolicy.cpp:
(WebKit::SyscallPolicy::addDefaultWebProcessPolicy): Add the entire
plugin search path to the whitelist.
* UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
(WebKit::PluginInfoStore::pluginsDirectories): Now gets plugins
directories from PluginSearchPath.cpp

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

5 years agoREGRESSION (r177876): store.apple.com profile and cart icons are missing
mmaxfield@apple.com [Tue, 14 Jul 2015 19:50:37 +0000 (19:50 +0000)]
REGRESSION (r177876): store.apple.com profile and cart icons are missing
https://bugs.webkit.org/show_bug.cgi?id=146894

Patch by Antti Koivisto <antti@apple.com> on 2015-07-14
Reviewed by Myles C. Maxfield.

Source/WebCore:

If we had several @font-face rules for the same face covering overlapping ranges we
would only try to get glyphs from the first one. If it didn't have the glyph we wouldn't
try the other ones.

Test: fast/css/font-face-multiple-missing-glyphs.html

* platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::glyphDataForVariant):
(WebCore::FontCascadeFonts::glyphDataForNormalVariant):

    Get GlyphData with one call.

* platform/graphics/FontRanges.cpp:
(WebCore::FontRanges::~FontRanges):
(WebCore::FontRanges::glyphDataForCharacter):

    Check that we actually have a glyph in the font for the character before returning it.

(WebCore::FontRanges::fontForCharacter):
(WebCore::FontRanges::fontForFirstRange):
* platform/graphics/FontRanges.h:
(WebCore::FontRanges::size):
(WebCore::FontRanges::rangeAt):

LayoutTests:

* fast/css/font-face-multiple-missing-glyphs-expected.html: Added.
* fast/css/font-face-multiple-missing-glyphs.html: Added.

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

5 years agohttps://bugs.webkit.org/show_bug.cgi?id=146917
commit-queue@webkit.org [Tue, 14 Jul 2015 17:37:55 +0000 (17:37 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=146917
iOS WebKit doesn't build.
rdar://problem/21801544

Fix the build - don't use deprecated methods.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-14
Reviewed by Dan Bernstein.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _registerPreviewInWindow:]):
(-[WKContentView _unregisterPreviewInWindow:]):

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

5 years ago[Content Extensions] Fix if-domain and unless-domain when loading main documents.
commit-queue@webkit.org [Tue, 14 Jul 2015 17:36:54 +0000 (17:36 +0000)]
[Content Extensions] Fix if-domain and unless-domain when loading main documents.
https://bugs.webkit.org/show_bug.cgi?id=146868

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

Source/WebCore:

Tests: http/tests/contentextensions/block-everything-if-domain.html
       http/tests/contentextensions/block-everything-unless-domain-iframe.html
       http/tests/contentextensions/block-everything-unless-domain-redirect.php
       http/tests/contentextensions/block-everything-unless-domain.html

* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
If we are loading a new main document, use that main document url as the main document url for domain comparison.

LayoutTests:

* http/tests/contentextensions/block-everything-if-domain-expected.txt: Added.
* http/tests/contentextensions/block-everything-if-domain.html: Added.
* http/tests/contentextensions/block-everything-if-domain.html.json: Added.
* http/tests/contentextensions/block-everything-unless-domain-expected.txt: Added.
* http/tests/contentextensions/block-everything-unless-domain-iframe-expected.txt: Added.
* http/tests/contentextensions/block-everything-unless-domain-iframe.html: Added.
* http/tests/contentextensions/block-everything-unless-domain-iframe.html.json: Added.
* http/tests/contentextensions/block-everything-unless-domain-redirect-expected.txt: Added.
* http/tests/contentextensions/block-everything-unless-domain-redirect.php: Added.
* http/tests/contentextensions/block-everything-unless-domain-redirect.php.json: Added.
* http/tests/contentextensions/block-everything-unless-domain.html: Added.
* http/tests/contentextensions/block-everything-unless-domain.html.json: Added.
* http/tests/contentextensions/main-resource-redirect-blocked-expected.txt:
* http/tests/contentextensions/resources/block-everything-unless-domain-helper.html: Added.
* http/tests/contentextensions/resources/should-load.html: Added.
* http/tests/contentextensions/resources/should-not-load.html: Added.

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

5 years agohttps://bugs.webkit.org/show_bug.cgi?id=146909
commit-queue@webkit.org [Tue, 14 Jul 2015 17:26:11 +0000 (17:26 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=146909
Add actions for default link preview that uses SFSafariViewController.

Use the new private properties to prepare actions for the default link preview controller.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-14
Reviewed by Dan Bernstein.

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

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

5 years agoMakes compileArithSub in the DFG ensure that the constant is an int32.
mmirman@apple.com [Tue, 14 Jul 2015 17:24:29 +0000 (17:24 +0000)]
Makes compileArithSub in the DFG ensure that the constant is an int32.
https://bugs.webkit.org/show_bug.cgi?id=146910
rdar://problem/21729083

Reviewed by Filip Pizlo.

Also fixes the debug build problem where all edges are assumed to
have UntypedUse before the fixup phase.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithSub):
* dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validateEdgeWithDoubleResultIfNecessary):
* tests/stress/arith-add-with-constants.js: Added some tests for this case.
(arithAdd42WrittenAsInteger):
(testArithAdd42WrittenAsInteger):
(arithSub42WrittenAsDouble):
(testArithSub42WrittenAsDouble):
(doubleConstant):
(testDoubleConstant): Added test for the case of +0.0 and Math.min(0.0)
(arithAdd42WrittenAsDouble): Deleted.
(testArithAdd42WrittenAsDouble): Deleted.

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

5 years agoDOM4: prepend, append, before, after & replace
weinig@apple.com [Tue, 14 Jul 2015 15:58:05 +0000 (15:58 +0000)]
DOM4: prepend, append, before, after & replace
https://bugs.webkit.org/show_bug.cgi?id=74648

Reviewed by Darin Adler.

Source/WebCore:

- Adds support for ChildNode.before/after/replaceWith and ParentNode.prepend/append
  which are new functions in https://dom.spec.whatwg.org
- Uses custom bindings rather than implementing support for union types in the code
  generator as their uses seems isolated to just this spec at the moment. If more
  uses come along, we should implement proper support for them in the generator and
  remove the custom bindings added here.

Tests: fast/dom/ChildNode-after.html
       fast/dom/ChildNode-before.html
       fast/dom/ChildNode-replaceWith.html
       fast/dom/ParentNode-append.html
       fast/dom/ParentNode-prepend.html

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
Add new files.

* bindings/js/JSCharacterDataCustom.cpp: Added.
(WebCore::JSCharacterData::before):
(WebCore::JSCharacterData::after):
(WebCore::JSCharacterData::replaceWith):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::prepend):
(WebCore::JSDocument::append):
(WebCore::JSDocument::createTouchList):
* bindings/js/JSDocumentFragmentCustom.cpp: Added.
(WebCore::JSDocumentFragment::prepend):
(WebCore::JSDocumentFragment::append):
* bindings/js/JSDocumentTypeCustom.cpp: Added.
(WebCore::JSDocumentType::before):
(WebCore::JSDocumentType::after):
(WebCore::JSDocumentType::replaceWith):
* bindings/js/JSElementCustom.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::JSElement::before):
(WebCore::JSElement::after):
(WebCore::JSElement::replaceWith):
(WebCore::JSElement::prepend):
(WebCore::JSElement::append):
Add custom bindings to implement the use of variadic union types.

* bindings/js/JSNodeOrString.cpp: Added.
(WebCore::toNodeOrStringVector):
* bindings/js/JSNodeOrString.h: Added.
Adds a help function for converting an JS argument list into a Vector
of NodeOrString objects.

* dom/ChildNode.idl:
Expose before/after/replaceWith to JavaScript.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):
* dom/ContainerNode.h:
Add implementations of append and prepend.

* dom/Node.h:
* dom/Node.cpp:
(WebCore::nodeSetPreTransformedFromNodeOrStringVector):
(WebCore::firstPrecedingSiblingNotInNodeSet):
(WebCore::firstFollowingSiblingNotInNodeSet):
Helper functions for before, after and removeWith.

(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):
Add implementations of before, after and removeWith.

* dom/NodeOrString.cpp: Added.
(WebCore::convertNodesOrStringsIntoNode):
* dom/NodeOrString.h: Added.
(WebCore::NodeOrString::NodeOrString):
(WebCore::NodeOrString::~NodeOrString):
(WebCore::NodeOrString::type):
(WebCore::NodeOrString::node):
(WebCore::NodeOrString::string):
Custom union type representing the (Node or DOMString) IDL type.

* dom/ParentNode.idl:
Expose append/prepend to JavaScript.

LayoutTests:

* fast/dom/ChildNode-after-expected.txt: Added.
* fast/dom/ChildNode-after.html: Added.
* fast/dom/ChildNode-before-expected.txt: Added.
* fast/dom/ChildNode-before.html: Added.
* fast/dom/ChildNode-replaceWith-expected.txt: Added.
* fast/dom/ChildNode-replaceWith.html: Added.
* fast/dom/ParentNode-append-expected.txt: Added.
* fast/dom/ParentNode-append.html: Added.
* fast/dom/ParentNode-prepend-expected.txt: Added.
* fast/dom/ParentNode-prepend.html: Added.

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

5 years ago[Linux] SeccompFilters: whitelist source directory on all ports
mcatanzaro@igalia.com [Tue, 14 Jul 2015 15:35:48 +0000 (15:35 +0000)]
[Linux] SeccompFilters: whitelist source directory on all ports
https://bugs.webkit.org/show_bug.cgi?id=140066

Reviewed by Žan Doberšek.

Move this from EFL to port-independent code.

* Shared/linux/SeccompFilters/SyscallPolicy.cpp:
(WebKit::SyscallPolicy::addDefaultWebProcessPolicy):
* WebProcess/efl/SeccompFiltersWebProcessEfl.cpp:
(WebKit::SeccompFiltersWebProcessEfl::platformInitialize):

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

5 years ago[GTK] Add a runtime check for X11 display in webkitWebViewBaseExitAcceleratedComposit...
zandobersek@gmail.com [Tue, 14 Jul 2015 08:53:30 +0000 (08:53 +0000)]
[GTK] Add a runtime check for X11 display in webkitWebViewBaseExitAcceleratedCompositingMode()
https://bugs.webkit.org/show_bug.cgi?id=146711

Reviewed by Carlos Garcia Campos.

webkitWebViewBaseExitAcceleratedCompositingMode() is already guarded with
X11 build guards, but it should also do a runtime check that the program
is running under an X11 display before proceeding.

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDidRelaunchWebProcess):

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

5 years ago[GTK] [Wayland] Build by default the X11 and Wayland targets.
clopez@igalia.com [Tue, 14 Jul 2015 08:46:01 +0000 (08:46 +0000)]
[GTK] [Wayland] Build by default the X11 and Wayland targets.
https://bugs.webkit.org/show_bug.cgi?id=146057

Reviewed by Carlos Garcia Campos.

.:

* Source/cmake/OptionsGTK.cmake:

Tools:

* gtk/install-dependencies:

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

5 years ago[Win] Unreviewed build fix.
bfulgham@apple.com [Tue, 14 Jul 2015 01:58:28 +0000 (01:58 +0000)]
[Win] Unreviewed build fix.

* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
(WebCore::InbandTextTrackPrivateAVCF::readNativeSampleBuffer): Don't try to build
the new Legible Output API features if they aren't available in the build
environment.

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

5 years ago[Win] Update Media Player logic for new Legible Output API
bfulgham@apple.com [Tue, 14 Jul 2015 01:11:12 +0000 (01:11 +0000)]
[Win] Update Media Player logic for new Legible Output API
https://bugs.webkit.org/show_bug.cgi?id=146922
<rdar://problem/20542574>

Reviewed by Eric Carlson.

* AVFoundationSupport.py: Check for updated AVFCF feature.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Update to call the
new 'readNativeSampleBuffer' method.
(WebCore::InbandTextTrackPrivateAVF::readNativeSampleBuffer): Added. This is a no-op
on Windows if it has the new AVCF API. Otherwise, it contains the same implementation
that has always been used in 'processNativeSamples'.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
(WebCore::InbandTextTrackPrivateAVCF::readNativeSampleBuffer): Added. Use the new
Legible Output API instead of the old CoreMedia solution if it is available.
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:
(WebCore::InbandTextTrackPrivateAVCF::mediaSelectionOption):
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp:
(WebCore::InbandTextTrackPrivateLegacyAVCF::readNativeSampleBuffer): Add a stub implementation.
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::createPlayerItem): Use the new Legible Output API if it is available.

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

5 years agoFix a typo.
rniwa@webkit.org [Tue, 14 Jul 2015 00:10:32 +0000 (00:10 +0000)]
Fix a typo.

* public/js/helper-classes.js:

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

5 years agoWeb Inspector: Uncaught exception in inspector for some ConsoleMessages
commit-queue@webkit.org [Mon, 13 Jul 2015 23:53:14 +0000 (23:53 +0000)]
Web Inspector: Uncaught exception in inspector for some ConsoleMessages
https://bugs.webkit.org/show_bug.cgi?id=146919

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

* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
The parameters list may not exist, so null check it before use.

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

5 years agoObject cycles should not prevent allocation elimination/sinking
basile_clement@apple.com [Mon, 13 Jul 2015 23:27:30 +0000 (23:27 +0000)]
Object cycles should not prevent allocation elimination/sinking
https://bugs.webkit.org/show_bug.cgi?id=143073

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch introduces a new allocation sinking phase that is able to
sink cycles, in DFGAllocationCycleSinkingPhase.cpp. This phase
supersedes the old allocation sinking phase in
DFGObjectAllocationSinkingPhase.cpp, as that previous phase was never
able to sink allocation cycles while the new phase sometimes can; see
DFGAllocationCycleSinkingPhase.cpp for details.

For now, the new sinking phase is kept behind a
JSC_enableAllocationCycleSinking flag that reverts to the old sinking
phase when false (i.e., by default). This also removes the old
JSC_enableObjectAllocationSinking flag. run-javascriptcore-tests
defaults to using the new sinking phase.

* dfg/DFGGraph.h:
(JSC::DFG::Graph::addStructureSet): Allow empty structure sets
* dfg/DFGLazyNode.cpp:
(JSC::DFG::LazyNode::dump): Prettier dump
* dfg/DFGNode.h:
(JSC::DFG::Node::cellOperand): Move to opInfo for MaterializeCreateActivation
(JSC::DFG::Node::hasStructureSet): Add MaterializeNewObject
(JSC::DFG::Node::objectMaterializationData): Move to opInfo2
* dfg/DFGOSRAvailabilityAnalysisPhase.cpp: Remove unused header
* dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::ObjectAllocationSinkingPhase): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::run): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::performSinking): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::determineMaterializationPoints): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::promoteSunkenFields): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::resolve): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::createMaterialize): Deleted.
(JSC::DFG::ObjectAllocationSinkingPhase::populateMaterialize): Deleted.
* dfg/DFGObjectAllocationSinkingPhase.h:
* dfg/DFGPromotedHeapLocation.h: Add a hash and a helper function to PromotedLocationDescriptor
(JSC::DFG::PromotedLocationDescriptor::PromotedLocationDescriptor):
(JSC::DFG::PromotedLocationDescriptor::operator bool):
(JSC::DFG::PromotedLocationDescriptor::neededForMaterialization):
(JSC::DFG::PromotedLocationDescriptorHash::hash):
(JSC::DFG::PromotedLocationDescriptorHash::equal):
* dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validateSSA): Assert that most nodes never see a phantom allocation
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileMaterializeNewObject): Use the new structureSet() operand
(JSC::FTL::DFG::LowerDFGToLLVM::compileMaterializeCreateActivation): Node has a new child
* ftl/FTLOSRExitCompiler.cpp: Handle materialization cycles
(JSC::FTL::compileStub):
* ftl/FTLOperations.cpp: Handle materialization cycles
(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):
* ftl/FTLOperations.h: Handle materialization cycles
* tests/stress/correctly-sink-object-even-though-it-dies.js: Added.
(clobber):
(foo):
* tests/stress/eliminate-object-read-over-call.js: Added.
(clobber):
(foo):
* tests/stress/materialize-object-on-edge.js: Added.
(call):
(foo):
* tests/stress/object-sinking-stress.js: Added.
(foo):
* tests/stress/sink-object-cycle.js: Added.
(clobber):
(foo):
* tests/stress/sink-object-past-put.js: Added.
(clobber):
(foo):
* tests/stress/sinkable-new-object-in-loop.js: Added.
(foo):

LayoutTests:

Add a few microbenchmarks that show performance improvement when
sinking or elimininating object cycles.

* js/regress/elidable-new-object-cycle-expected.txt: Added.
* js/regress/elidable-new-object-cycle.html: Added.
* js/regress/script-tests/elidable-new-object-cycle.js: Added.
(sumOfArithSeries):
(foo):
* js/regress/script-tests/sinkable-closure-cycle.js: Added.
(factorial.f):
(factorial):
* js/regress/script-tests/sinkable-new-object-cycle.js: Added.
(sumOfArithSeries):
(verify):
(foo):
* js/regress/sinkable-closure-cycle-expected.txt: Added.
* js/regress/sinkable-closure-cycle.html: Added.
* js/regress/sinkable-new-object-cycle-expected.txt: Added.
* js/regress/sinkable-new-object-cycle.html: Added.

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

5 years agoCleanup: Avoid extraneous increment and decrement of reference count of ScriptArgumen...
dbates@webkit.org [Mon, 13 Jul 2015 23:11:05 +0000 (23:11 +0000)]
Cleanup: Avoid extraneous increment and decrement of reference count of ScriptArguments in ConsoleClient
https://bugs.webkit.org/show_bug.cgi?id=146920

Reviewed by Brian Burg.

Remove local variable RefPtr<ScriptArguments> and copy constructor call with an argument that
was initialized with an rvalue reference. The argument itself is an lvalue reference.

* runtime/ConsoleClient.cpp:
(JSC::ConsoleClient::printConsoleMessageWithArguments):
(JSC::ConsoleClient::internalMessageWithTypeAndLevel):

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

5 years agoMedia Session: add plumbing for delivering start/end-of-interruption events
mrajca@apple.com [Mon, 13 Jul 2015 22:51:15 +0000 (22:51 +0000)]
Media Session: add plumbing for delivering start/end-of-interruption events
https://bugs.webkit.org/show_bug.cgi?id=146837

Reviewed by Tim Horton.

WebCore:
* Modules/mediasession/MediaSessionEvents.h: Renamed from MediaEventTypes.h and added new constants for
  interruption events.
* WebCore.xcodeproj/project.pbxproj: Renamed MediaEventTypes.h.
* page/Page.h: Added stub.
* page/Page.cpp: Added stub.

WebKit2: Added plumbing.
* UIProcess/API/C/WKPage.cpp:
(WKPageHandleMediaSessionInterruptionEvent):
* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleMediaSessionInterruptionEvent):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::handleMediaSessionInterruptionEvent):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

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

5 years ago[iOS WK2] When choosing an initial viewport scale, take overflow on the <body> into...
simon.fraser@apple.com [Mon, 13 Jul 2015 22:24:10 +0000 (22:24 +0000)]
[iOS WK2] When choosing an initial viewport scale, take overflow on the <body> into account
https://bugs.webkit.org/show_bug.cgi?id=146918
rdar://problem/9222837

Reviewed by Tim Horton.

Use as input to the viewport scaling algorithm a contents size from the FrameView
that takes overflow on the viewport renderer into account. This prevents unexpected
viewports scaling on pages that have content that overflows their expressed contents size,
but apply overflow to the <body>.

Source/WebCore:

* page/FrameView.cpp:
(WebCore::FrameView::contentsSizeRespectingOverflow): Look for overflow:hidden on each axis of
the m_viewportRenderer, which is computed post-layout by calculateScrollbarModesForLayout()
and is used for scrollbar logic on OS X. Clip unscaledDocumentRect on each axis, and then
apply page scale.
* page/FrameView.h:

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mainFrameDidLayout): Use contentsSizeRespectingOverflow(),
rather than raw contentsSize(), to determine scaling.

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

5 years agoUpdate JetStream version number to 1.1.
fpizlo@apple.com [Mon, 13 Jul 2015 22:09:48 +0000 (22:09 +0000)]
Update JetStream version number to 1.1.

Rubber stamped by Ryosuke Niwa.

* JetStream/create.rb:

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

5 years agoUpdate WebCore Features.json
bfulgham@apple.com [Mon, 13 Jul 2015 21:40:47 +0000 (21:40 +0000)]
Update WebCore Features.json
https://bugs.webkit.org/show_bug.cgi?id=146914

Reviewed by Benjamin Poulain.

* features.json: Update with notes for CSS Scroll Snap Points, Filter Effects,
backdrop-filters, and initial-letter.

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

5 years agoFixed the build.
mitz@apple.com [Mon, 13 Jul 2015 21:38:01 +0000 (21:38 +0000)]
Fixed the build.

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

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

5 years agoRemoved now-unused SPI -[WKWebView _loadRequest:withOptions:].
mitz@apple.com [Mon, 13 Jul 2015 20:50:34 +0000 (20:50 +0000)]
Removed now-unused SPI -[WKWebView _loadRequest:withOptions:].

Rubber-stamped by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _loadRequest:withOptions:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

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

5 years agoApps linked with a deployment target of iOS 7.x or earlier crash when using modern...
andersca@apple.com [Mon, 13 Jul 2015 20:44:35 +0000 (20:44 +0000)]
Apps linked with a deployment target of iOS 7.x or earlier crash when using modern WebKit API
https://bugs.webkit.org/show_bug.cgi?id=146913
rdar://problem/21789252

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

Make a top-level symlink from /System/Library/PrivateFrameworks/JavaScriptCore.framework to
/System/Library/Frameworks/JavaScriptCore.framework.

* JavaScriptCore.xcodeproj/project.pbxproj:

Source/WebKit2:

Make a top-level symlink from /System/Library/PrivateFrameworks/WebKit.framework to
/System/Library/Frameworks/WebKit.framework.

* WebKit2.xcodeproj/project.pbxproj:

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

5 years agoIf Watchpoint::fire() looks at the state of the world, it should definitely see its...
fpizlo@apple.com [Mon, 13 Jul 2015 20:10:02 +0000 (20:10 +0000)]
If Watchpoint::fire() looks at the state of the world, it should definitely see its set invalidated, and maybe it should see the object of interest in the transitioned-to state
https://bugs.webkit.org/show_bug.cgi?id=146897

Reviewed by Mark Lam.

The idea is to eventually support adaptive watchpoints. An adaptive watchpoint will be
able to watch for a condition that is more fine-grained than any one watchpoint set. For
example, we might watch a singleton object to see if it ever acquires a property called
"foo". So long as it doesn't have such a property, we don't want to invalidate any code.
But if it gets that property, then we should deoptimize. Current watchpoints will
invalidate code as soon as any property is added (or deleted), because they will use the
transition watchpoint set of the singleton object's structure, and that fires anytime
there is any transition.

An adaptive watchpoint would remember the singleton object, and when it got fired, it
would check if the object's new structure has the property "foo". If not, it would check
if the object's new structure is watchable (i.e. has a valid transition watchpoint set).
If the property is missing and the structure is watchable, it would add itself to the
watchpoint set of the new structure. Otherwise, it would deoptimize.

There are two problems with this idea, and this patch fixes these problems. First, we
usually fire the transition watchpoint before we do the structure transition. This means
that if the fire() method looked at the singleton object's structure, it would see the old
structure, not the new one. It would have no way of knowing what the new structure is.
Second, inside the fire() method, the watchpoint set being invalidated still appears
valid, since we change the state after we fire all watchpoints.

This patch addresses both issues. Now, in the most important case (addPropertyTransition),
we fire the watchpoint set after we have modified the object. This is accomplished using
a deferral scope called DeferredStructureTransitionWatchpointFire. In cases where there is
no deferral, the adaptive watchpoint will conservatively resort to deoptimization because
it would find that the singleton object's structure is no longer watchable. This is
because in the absence of deferral, the singleton object would still have the original
structure, but that structure's watchpoint set would now report itself as having been
invalidated.

* bytecode/Watchpoint.cpp:
(JSC::WatchpointSet::fireAllSlow): Change the state of the set before firing all watchpoints.
(JSC::WatchpointSet::fireAllWatchpoints):
* runtime/JSObject.h:
(JSC::JSObject::putDirectInternal): Use the deferral scope.
* runtime/Structure.cpp:
(JSC::Structure::Structure): Pass the deferral scope to didTransitionFromThisStructure.
(JSC::Structure::addPropertyTransition): Pass the deferral scope to create().
(JSC::StructureFireDetail::dump): This is no longer anonymous.
(JSC::DeferredStructureTransitionWatchpointFire::DeferredStructureTransitionWatchpointFire): Start with a null structure.
(JSC::DeferredStructureTransitionWatchpointFire::~DeferredStructureTransitionWatchpointFire): Fire the watchpoint if there is a structure.
(JSC::DeferredStructureTransitionWatchpointFire::add): Add a structure. Logically this is a list of deferred things, but we assert that there only will be one (happens to be true now).
(JSC::Structure::didTransitionFromThisStructure): Defer the watchpoint firing if there is a deferral scope.
* runtime/Structure.h:
(JSC::StructureFireDetail::StructureFireDetail): Move this to the header.
* runtime/StructureInlines.h:
(JSC::Structure::create): Pass the deferral scope to the constructor.

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

5 years agoSilverlight causes tabs to hang
andersca@apple.com [Mon, 13 Jul 2015 19:54:19 +0000 (19:54 +0000)]
Silverlight causes tabs to hang
https://bugs.webkit.org/show_bug.cgi?id=146912
rdar://problem/21686508

Reviewed by Sam Weinig.

Make sure to link production builds of the legacy plug-in process against the shim on 10.11 and newer.

* Configurations/PluginProcess.xcconfig:

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

5 years agoChange MediaPlayer Media Stream method signatures to use references
bfulgham@apple.com [Mon, 13 Jul 2015 19:50:44 +0000 (19:50 +0000)]
Change MediaPlayer Media Stream method signatures to use references
https://bugs.webkit.org/show_bug.cgi?id=146839
<rdar://problem/21769035>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-13
Reviewed by Darin Adler.

* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::loadWithNextMediaEngine):
* platform/graphics/MediaPlayerPrivate.h: Changed to references
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Ditto
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load): Ditto
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:

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

5 years agoGTK] Build race with -DENABLE_WAYLAND_TARGET=ON
clopez@igalia.com [Mon, 13 Jul 2015 19:11:42 +0000 (19:11 +0000)]
GTK] Build race with -DENABLE_WAYLAND_TARGET=ON
https://bugs.webkit.org/show_bug.cgi?id=146740

Reviewed by Martin Robinson.

No new tests, no behavior changes.

* PlatformGTK.cmake: platform/graphics/wayland sources should be
included into WebCore source list instead of WebCorePlatformGTK.
Also move the add_custom_command() block into if(ENABLE_WAYLAND_TARGET),
this is not strictly needed to fix this bug, but it seems cleaner.

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

5 years agoWeb Inspector: Use -apple-system-monospaced-numbers for line numbers
nvasilyev@apple.com [Mon, 13 Jul 2015 19:03:33 +0000 (19:03 +0000)]
Web Inspector: Use -apple-system-monospaced-numbers for line numbers
https://bugs.webkit.org/show_bug.cgi?id=146898

Reviewed by Timothy Hatcher.

* UserInterface/Views/CodeMirrorOverrides.css:
(.CodeMirror .CodeMirror-linenumber): Decrease font-size by 1px to make 4 digit numbers fit.

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

5 years agoAdding MediaStream Engine building blocks to the code repo
commit-queue@webkit.org [Mon, 13 Jul 2015 17:59:16 +0000 (17:59 +0000)]
Adding MediaStream Engine building blocks to the code repo
https://bugs.webkit.org/show_bug.cgi?id=146789
<rdar://problem/21747025>

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

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: Added.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setLoadingProgresssed):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setHasAvailableVideoFrame):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createWeakPtr):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: Added.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable):
(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::getSupportedTypes):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsType):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::cancelLoad):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::prepareToPlay):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformMedia):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::playInternal):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pauseInternal):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paused):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVolume):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsScanning):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setMuted):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::naturalSize):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasVideo):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasAudio):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVisible):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::durationMediaTime):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::seeking):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setRateDouble):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setPreservesPitch):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::networkState):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::readyState):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::seekable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::maxMediaTimeSeekable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::minMediaTimeSeekable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::buffered):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::didLoadingProgress):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setSize):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasAvailableVideoFrame):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsAcceleratedRendering):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::movieLoadType):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::prepareForRendering):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::engineDescription):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::languageOfPrimaryAudioTrack):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::shouldBePlaying):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::addDisplayLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::removeDisplayLayer):
* platform/graphics/avfoundation/objc/MediaStreamPrivateAVFObjC.h: Added.
* platform/graphics/avfoundation/objc/MediaStreamPrivateAVFObjC.mm: Added.
(WebCore::MediaStreamPrivateAVFObjC::create):
(WebCore::MediaStreamPrivateAVFObjC::MediaStreamPrivateAVFObjC):
(WebCore::MediaStreamPrivateAVFObjC::~MediaStreamPrivateAVFObjC):
(WebCore::MediaStreamPrivateAVFObjC::duration):
(WebCore::MediaStreamPrivateAVFObjC::buffered):
(WebCore::MediaStreamPrivateAVFObjC::readyState):
(WebCore::MediaStreamPrivateAVFObjC::hasAudio):
(WebCore::MediaStreamPrivateAVFObjC::hasVideo):
(WebCore::MediaStreamPrivateAVFObjC::naturalSize):
* platform/mediastream/MediaStreamPrivate.h:
(WebCore::MediaStreamPrivate::MediaStreamPrivate): Added constructor.

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

5 years ago[Win] Skip failing table-related AX tests
bfulgham@apple.com [Mon, 13 Jul 2015 17:17:02 +0000 (17:17 +0000)]
[Win] Skip failing table-related AX tests
https://bugs.webkit.org/show_bug.cgi?id=146903

* platform/win/TestExpectations:

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

5 years ago[iOS] Cancel AirPlay explicitly when exiting from full screen
eric.carlson@apple.com [Mon, 13 Jul 2015 16:54:53 +0000 (16:54 +0000)]
[iOS] Cancel AirPlay explicitly when exiting from full screen
https://bugs.webkit.org/show_bug.cgi?id=146902
<rdar://problem/20923632>

Reviewed by Brent Fulgham.

* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::~WebVideoFullscreenInterfaceAVKit): Call setExternalPlayback(false)
  if playing to an external screen.

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

5 years ago[Linux] SeccompFilters: handle alternate install prefixes
mcatanzaro@igalia.com [Mon, 13 Jul 2015 15:42:11 +0000 (15:42 +0000)]
[Linux] SeccompFilters: handle alternate install prefixes
https://bugs.webkit.org/show_bug.cgi?id=140065

Reviewed by Žan Doberšek.

If the install prefix is something other than /usr, e.g. /usr/local or
~/jhbuild/install, then we want to make sure to allow libraries and data
from that prefix.

* PlatformEfl.cmake:
* Shared/linux/SeccompFilters/SyscallPolicy.cpp:
(WebKit::SyscallPolicy::addDefaultWebProcessPolicy):

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

5 years ago[GTK] Contents not correctly laid out when the web view is not realized
carlosgc@webkit.org [Mon, 13 Jul 2015 07:44:18 +0000 (07:44 +0000)]
[GTK] Contents not correctly laid out when the web view is not realized
https://bugs.webkit.org/show_bug.cgi?id=142532

Reviewed by Darin Adler.

The problem is that we are not reporting any size until the web
view is realized, so any web view loaded in a separate tab in the
browser, will report 0x0 as the window.innerWidth,
window.innerHeight until the view is realized. Websites that use
the window.innerWidth/innerHeight during the page load to decide
how to lay out the contents will be rendered wrongly.
I haven't been able to reproduce this with unit tests, as this
requires the particular case of same window but different web
views using tabs for example.

* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::viewSize): Always report the drawing area
size to make usre it's in sync with the WebProcess page size.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseSizeAllocate): Remove the optimization of only
report the size when it has changed, since both the redirected
window and the drawing area already do that check. Also remove the
optimization of waiting until the view is mapped to report its
size, since that's often too late for websites using the window
size during load.
(webkitWebViewBaseMap): Never report size on map, it should have
already been reported by size-allocate.

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

5 years agoWeb Inspector: Add -apple-system-monospaced-numbers to font and font-family autocomplete
timothy@apple.com [Mon, 13 Jul 2015 05:24:09 +0000 (05:24 +0000)]
Web Inspector: Add -apple-system-monospaced-numbers to font and font-family autocomplete
https://bugs.webkit.org/show_bug.cgi?id=146865

Reviewed by Daniel Bates.

* UserInterface/Models/CSSKeywordCompletions.js:

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

5 years agoWatchpoints should be removed from their owning WatchpointSet before they are fired
fpizlo@apple.com [Mon, 13 Jul 2015 02:16:17 +0000 (02:16 +0000)]
Watchpoints should be removed from their owning WatchpointSet before they are fired
https://bugs.webkit.org/show_bug.cgi?id=146895

Reviewed by Sam Weinig.

This simplifies the WatchpointSet API by making it so that when Watchpoint::fire() is
called, the Watchpoint is no longer in the set. This means that you don't have to remember
to remove it from the set's list (currently we do that implicitly as part of whatever
any particular Watchpoint::fireInternal() does), and you can now write adaptive
watchpoints that re-add themselves to a different set if they determine that the thing
they are actually watching is still intact but now needs to be watched in a different way
(like watching for whether some singleton object has a property of some name).

* bytecode/Watchpoint.cpp:
(JSC::Watchpoint::~Watchpoint): Add a comment about why this is necessary.
(JSC::Watchpoint::fire): Make this out-of-line, private, and make it assert that we're no longer on the list.
(JSC::WatchpointSet::fireAllWatchpoints): Make this remove the watchpoint from the list before firing it.
* bytecode/Watchpoint.h:
(JSC::Watchpoint::fire): Deleted. I moved this to Watchpoint.cpp.

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

5 years agoAX: WEB: VoiceOver for iOS does not read <iframe> elements during linear (swipe)...
cfleizach@apple.com [Sun, 12 Jul 2015 19:41:30 +0000 (19:41 +0000)]
AX: WEB: VoiceOver for iOS does not read <iframe> elements during linear (swipe) navigation.
https://bugs.webkit.org/show_bug.cgi?id=146861

Reviewed by Darin Adler.

Source/WebCore:

AttachmentViews exist only on WK1 so we need account for both platforms.

Test: platform/ios-simulator/accessibility/iframe-access.html

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):

LayoutTests:

* platform/ios-simulator/accessibility/iframe-access-expected.txt: Added.
* platform/ios-simulator/accessibility/iframe-access.html: Added.

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

5 years ago[Streams API] Templating ReadableJSStream
youenn.fablet@crf.canon.fr [Sun, 12 Jul 2015 16:28:11 +0000 (16:28 +0000)]
[Streams API] Templating ReadableJSStream
https://bugs.webkit.org/show_bug.cgi?id=146802

Reviewed by Darin Adler.

Introducing ReadableStream::clearValues to clear queued values when cancelling and going into error state.

Introducing ReadableEnqueuingStream to handle the stream queue, as a class template.
Specialized ReadableEnqueuingStream for the purpose of ReadableJSStream (storage of JSValue with variable size).

Updated some static functions to accept a ReadableStream in lieu of the more specialized ReadableJSStream.

Covered by existing tests.

* Modules/streams/ReadableStream.cpp:
(WebCore::ReadableStream::changeStateToErrored):
(WebCore::ReadableStream::cancelNoCheck):
* Modules/streams/ReadableStream.h:
(WebCore::ReadableEnqueuingStream::ReadableEnqueuingStream):
(WebCore::ReadableEnqueuingStream::enqueueChunk):
(WebCore::ReadableEnqueuingStream<ChunkType>::read):
* bindings/js/ReadableJSStream.cpp:
(WebCore::ReadableEnqueuingStream<ReadableJSStreamValue>::read):
(WebCore::ReadableEnqueuingStream<ReadableJSStreamValue>::enqueueChunk):
(WebCore::createPullResultFulfilledFunction):
(WebCore::createCancelResultFulfilledFunction):
(WebCore::ReadableJSStream::ReadableJSStream):
(WebCore::ReadableJSStream::enqueue):
* bindings/js/ReadableJSStream.h:
(WebCore::ReadableJSStreamValue::create):
(WebCore::ReadableEnqueuingStream<ReadableJSStreamValue>::desiredSize):
(WebCore::ReadableEnqueuingStream<ReadableJSStreamValue>::ReadableEnqueuingStream):

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

5 years ago[EFL] Unreviewed, EFL gardening on 12th Jul.
gyuyoung.kim@webkit.org [Sun, 12 Jul 2015 06:43:52 +0000 (06:43 +0000)]
[EFL] Unreviewed, EFL gardening on 12th Jul.

Mark some ax tests and editing tests to failure since r186694 and r185692.

* platform/efl/TestExpectations:

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

5 years agoUnreviewed build fix.
bshafiei@apple.com [Sun, 12 Jul 2015 05:37:28 +0000 (05:37 +0000)]
Unreviewed build fix.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cancelLoad):

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

5 years agoWeb Inspector: Inspector should be able to be docked to the bottom of a narrow window
nvasilyev@apple.com [Sun, 12 Jul 2015 04:23:21 +0000 (04:23 +0000)]
Web Inspector: Inspector should be able to be docked to the bottom of a narrow window
https://bugs.webkit.org/show_bug.cgi?id=146871

Reviewed by Timothy Hatcher.

Source/WebCore:

* inspector/InspectorFrontendClientLocal.cpp:

Source/WebInspectorUI:

* UserInterface/Views/Toolbar.css:
(@media (max-width: 539px)): Hide download button to fit search field into the screen.

Source/WebKit/mac:

* WebCoreSupport/WebInspectorClient.mm:

Source/WebKit2:

* UIProcess/WebInspectorProxy.cpp:
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCanAttach):
* WebProcess/WebPage/WebInspector.cpp:

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

5 years agoVersioning.
bshafiei@apple.com [Sun, 12 Jul 2015 04:14:29 +0000 (04:14 +0000)]
Versioning.

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

5 years agoAdd some images for a blog post.
timothy@apple.com [Sun, 12 Jul 2015 02:59:28 +0000 (02:59 +0000)]
Add some images for a blog post.

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

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

5 years agoUnreviewed build fix, restrict APP_LINKS to just iOS.
joepeck@webkit.org [Sun, 12 Jul 2015 01:54:01 +0000 (01:54 +0000)]
Unreviewed build fix, restrict APP_LINKS to just iOS.

* wtf/Platform.h:

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

5 years agoAllow clients to opt-out of default app link link actions
joepeck@webkit.org [Sat, 11 Jul 2015 22:58:13 +0000 (22:58 +0000)]
Allow clients to opt-out of default app link link actions
https://bugs.webkit.org/show_bug.cgi?id=146883
<rdar://problem/21221902>

Reviewed by Dan Bernstein.

* UIProcess/API/APIUIClient.h:
(API::UIClient::shouldIncludeAppLinkActionsForElement):
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::shouldIncludeAppLinkActionsForElement):
Plumbing for a new delegate message to ask the client if they
would like app link actions or not. Default is yes.

* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
Pass elementInfo into methods generating default actions.

(-[WKActionSheetAssistant _appendOpenActionsForURL:actions:elementInfo:]):
When generating open actions, if the process has AppLink capabilities
ask the client if they want to include AppLink actions or fall back
to the basic Open action.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView actionSheetAssistant:shouldIncludeAppLinkActionsForElement:]):
(-[WKContentView previewViewControllerForPosition:inSourceView:]):
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView actionSheetAssistant:shouldIncludeAppLinkActionsForElement:]):
Assistant delegate implementations forward to the UIDelegate.

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

5 years agoUpdate default link action sheets for app links
joepeck@webkit.org [Sat, 11 Jul 2015 22:58:08 +0000 (22:58 +0000)]
Update default link action sheets for app links
https://bugs.webkit.org/show_bug.cgi?id=146658
<rdar://problem/21221902>

Reviewed by Dan Bernstein.

Source/WebCore:

* English.lproj/Localizable.strings:
* platform/spi/ios/LaunchServicesSPI.h:

Source/WebKit2:

* Shared/mac/SandboxUtilities.h:
* Shared/mac/SandboxUtilities.mm: Renamed from Source/WebKit2/Shared/mac/SandboxUtilities.cpp.
(WebKit::processHasEntitlement):
* UIProcess/ApplicationStateTracker.mm:
(WebKit::applicationType):
(WebKit::hasEntitlement): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
Share a helper for checking if the current process has an entitlement.

* UIProcess/API/Cocoa/_WKElementAction.h:
* UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction _elementActionWithType:title:actionHandler:]):
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):
* UIProcess/API/Cocoa/_WKElementActionInternal.h:
Add an internal way to make an element action with a standard type and regular handler.
We use this for the new standard types that don't have a default implementation.

* UIProcess/ios/WKActionSheetAssistant.mm:
(applicationHasAppLinkEntitlements):
(appLinkForURL):
Helpers checking access to app links and fetching app links.

(-[WKActionSheetAssistant _appendOpenActionsForURL:actions:]):
(-[WKActionSheetAssistant defaultActionsForLinkSheet]):
(-[WKActionSheetAssistant defaultActionsForImageSheet]):
Create "Open in Safari" and "Open in 'App'" default actions for AppLinks,
otherwise add the normal default "Open" action.

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

5 years agoWeb Inspector: Improve runtime of pseudo-element sidebar style ordering
drousso@apple.com [Sat, 11 Jul 2015 22:29:55 +0000 (22:29 +0000)]
Web Inspector: Improve runtime of pseudo-element sidebar style ordering
https://bugs.webkit.org/show_bug.cgi?id=146866

Reviewed by Timothy Hatcher.

* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.update): Determines the most specific selector and saves it to a variable.
(WebInspector.CSSRule.prototype.get mostSpecificSelector): Returns the most specific selector.
(WebInspector.CSSRule.prototype.selectorIsGreater): Compares the most specific selector to a given selector.
(WebInspector.CSSRule.prototype._determineMostSpecificSelector):
Searches through the selector list to find and return the selector that is the most specific.
(WebInspector.CSSRule):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):

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

5 years agoRemove incorrect overriding of inputAssistantItem in WKContentView.
enrica@apple.com [Sat, 11 Jul 2015 21:30:33 +0000 (21:30 +0000)]
Remove incorrect overriding of inputAssistantItem in WKContentView.
https://bugs.webkit.org/show_bug.cgi?id=146863
rdar://problem/21507154

Reviewed by Sam Weinig.

Correction to the patch in r186713.
We need to provide the inputAssistantItem from the responder.

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

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

5 years agoFix CONTENT_EXTENSIONS_STATE_MACHINE_DEBUGGING
benjamin@webkit.org [Sat, 11 Jul 2015 20:35:45 +0000 (20:35 +0000)]
Fix CONTENT_EXTENSIONS_STATE_MACHINE_DEBUGGING
https://bugs.webkit.org/show_bug.cgi?id=146879

Reviewed by Andreas Kling.

Some of my recent changes broke CONTENT_EXTENSIONS_STATE_MACHINE_DEBUGGING :(

* contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::prefixTreeVertexToString):
(WebCore::ContentExtensions::recursivePrint):
(WebCore::ContentExtensions::CombinedURLFilters::print):
* contentextensions/ContentExtensionsDebugging.h:
* contentextensions/DFA.cpp:
(WebCore::ContentExtensions::DFA::debugPrintDot):

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

5 years agoUnreviewed, rolling out r186689 and r186710.
cdumez@apple.com [Sat, 11 Jul 2015 20:15:39 +0000 (20:15 +0000)]
Unreviewed, rolling out r186689 and r186710.
https://bugs.webkit.org/show_bug.cgi?id=146880

May have caused a PLT regression and broken a layout test
(Requested by cdumez on #webkit).

Reverted changesets:

"[WK2] Increase the QoS of some of our WorkQueues to match the
one of our processes"
https://bugs.webkit.org/show_bug.cgi?id=146855
http://trac.webkit.org/changeset/186689

"REGRESSION (r186689?): fast/frames/frame-limit.html timeout
on Mavericks {Release,Debug} WK2 bots"
https://bugs.webkit.org/show_bug.cgi?id=146876
http://trac.webkit.org/changeset/186710

Patch by Commit Queue <commit-queue@webkit.org> on 2015-07-11

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

5 years agoRemove incorrect overriding of inputAssistantItem in WKContentView.
enrica@apple.com [Sat, 11 Jul 2015 19:02:25 +0000 (19:02 +0000)]
Remove incorrect overriding of inputAssistantItem in WKContentView.
https://bugs.webkit.org/show_bug.cgi?id=146863
rdar://problem/21507154

Reviewed by Dan Bernstein.

Removing implementation of inputAssistantItem and moving initialization
of formAccessoryView to inputAccessoryView to avoid interfering with
the keyboard handling of the assistant bar.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView inputAccessoryView]):
(-[WKContentView inputAssistantItem]): Deleted.
(-[WKContentView _inputAssistantItem]): Deleted.

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

5 years ago[iOS WK2] Scrolling issues on horizontally scrollable RTL pages
simon.fraser@apple.com [Sat, 11 Jul 2015 18:19:46 +0000 (18:19 +0000)]
[iOS WK2] Scrolling issues on horizontally scrollable RTL pages
https://bugs.webkit.org/show_bug.cgi?id=146872
rdar://problem/7569416

Reviewed by Sam Weinig.

Horizontally scrollable RTL pages in WebKit2 had a variety of issues: they had
a gap down the right edge, and unreachable content on the left side, focussing
form fields scrolled to the wrong location, and programmatic scrolls scrolled
to the wrong place.

Fix by plumbing the WebCore notion of scrollOrigin through to the UI process,
and using it in various places. There are three main aspects to the patch:

1. scroll origin is included in RemoteLayerTreeTransaction, and plumbed through
   to -[WKWebView _scrollToContentOffset:] for correct programmatic scrolling,
Source/WebCore:

   including zooming to focussed form elements.
2. WebPageProxy::computeCustomFixedPositionRect() uses the actual documentRect()
   rather than just conjuring up a rect with a zero origin, which makes position:fixed
   work correctly.
3. _interactionViewsContainerView (which hosts tap highlights) is positioned to
   coincide with the origin of the documentRect (i.e. at the scroll origin, which
   may not be top-left). This allows tap highlights to show in the correct location.
4. ScrollView::unobscuredContentRect() is fixed to take scroll origin into account;
   if the returned rect is wrong, RenderLayer::hitTest() incorrectly clips the hit
   testing area.

* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::unobscuredContentRect):

Source/WebKit2:

   including zooming to focused form elements. The WKContentView's boundsOrigin
   is set to the scroll origin so that the view coordinates match document coordinates.
2. WebPageProxy::computeCustomFixedPositionRect() uses the actual documentRect()
   rather than just conjuring up a rect with a zero origin, which makes position:fixed
   work correctly.
3. _interactionViewsContainerView (which hosts tap highlights) is positioned to
   coincide with the origin of the documentRect (i.e. at the scroll origin, which
   may not be top-left). This allows tap highlights to show in the correct location.
4. ScrollView::unobscuredContentRect() is fixed to take scroll origin into account;
   if the returned rect is wrong, RenderLayer::hitTest() incorrectly clips the hit
   testing area.

* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::scrollOrigin):
(WebKit::RemoteLayerTreeTransaction::setScrollOrigin):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::description): Dump some more info.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:scrollOrigin:]):
(-[WKWebView _scrollToContentOffset:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestScroll):
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::requestScroll):
* UIProcess/CoordinatedGraphics/WebView.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestScroll):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::requestScroll):
(WebKit::PageClientImpl::documentRect):
(WebKit::PageClientImpl::contentsSize): Deleted.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _didCommitLayerTree:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computeCustomFixedPositionRect):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::requestScroll):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):

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

5 years agohttp/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin...
ddkilzer@apple.com [Sat, 11 Jul 2015 15:44:13 +0000 (15:44 +0000)]
http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html crashes on Windows

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fsecurity%2FXFrameOptions%2Fx-frame-options-deny-meta-tag-parent-same-origin-deny.html>

* platform/win/TestExpectations: Mark tests as crashing:
- http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html

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