WebKit-https.git
3 years agoRemove LegacyProfiler
commit-queue@webkit.org [Sat, 14 May 2016 22:17:13 +0000 (22:17 +0000)]
Remove LegacyProfiler
https://bugs.webkit.org/show_bug.cgi?id=153565

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-14
Reviewed by Mark Lam.

.:

* ManualTests/inspector/profiler-test-call.html: Removed.
* ManualTests/inspector/profiler-test-many-calls-in-the-same-scope.html: Removed.

Source/JavaScriptCore:

JavaScriptCore now provides a sampling profiler and it is enabled
by all ports. Web Inspector switched months ago to using the
sampling profiler and displaying its data. Remove the legacy
profiler, as it is no longer being used by anything other then
console.profile and tests. We will update console.profile's
behavior soon to have new behavior and use the sampling data.

* API/JSProfilerPrivate.cpp: Removed.
* API/JSProfilerPrivate.h: Removed.
* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/BytecodeList.json:
* bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset): Deleted.
(JSC::computeDefsForBytecodeOffset): Deleted.
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode): Deleted.
* bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
* bytecode/UnlinkedFunctionExecutable.h:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitCallVarargs):
(JSC::BytecodeGenerator::emitCallVarargsInTailPosition):
(JSC::BytecodeGenerator::emitConstructVarargs):
(JSC::BytecodeGenerator::emitConstruct):
* bytecompiler/BytecodeGenerator.h:
(JSC::CallArguments::profileHookRegister): Deleted.
(JSC::BytecodeGenerator::shouldEmitProfileHooks): Deleted.
* bytecompiler/NodesCodegen.cpp:
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::CallArguments::CallArguments): Deleted.
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): Deleted.
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock): Deleted.
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel): Deleted.
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize): Deleted.
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC): Deleted.
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode): Deleted.
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute): Deleted.
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile): Deleted.
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile): Deleted.
* inspector/InjectedScriptBase.cpp:
(Inspector::InjectedScriptBase::callFunctionWithEvalEnabled):
* inspector/protocol/Timeline.json:
* interpreter/Interpreter.cpp:
(JSC::UnwindFunctor::operator()): Deleted.
(JSC::Interpreter::execute): Deleted.
(JSC::Interpreter::executeCall): Deleted.
(JSC::Interpreter::executeConstruct): Deleted.
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass): Deleted.
* jit/JIT.h:
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_profile_will_call): Deleted.
(JSC::JIT::emit_op_profile_did_call): Deleted.
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_profile_will_call): Deleted.
(JSC::JIT::emit_op_profile_did_call): Deleted.
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* jsc.cpp:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL): Deleted.
* llint/LLIntSlowPaths.h:
* llint/LowLevelInterpreter.asm:
* parser/ParserModes.h:
* profiler/CallIdentifier.h: Removed.
* profiler/LegacyProfiler.cpp: Removed.
* profiler/LegacyProfiler.h: Removed.
* profiler/Profile.cpp: Removed.
* profiler/Profile.h: Removed.
* profiler/ProfileGenerator.cpp: Removed.
* profiler/ProfileGenerator.h: Removed.
* profiler/ProfileNode.cpp: Removed.
* profiler/ProfileNode.h: Removed.
* profiler/ProfilerJettisonReason.cpp:
(WTF::printInternal): Deleted.
* profiler/ProfilerJettisonReason.h:
* runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
* runtime/CodeCache.h:
* runtime/Executable.cpp:
(JSC::ScriptExecutable::newCodeBlockFor):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
(JSC::JSGlobalObject::~JSGlobalObject): Deleted.
(JSC::JSGlobalObject::hasLegacyProfiler): Deleted.
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::supportsLegacyProfiling): Deleted.
* runtime/Options.h:
* runtime/VM.cpp:
(JSC::VM::VM): Deleted.
(JSC::SetEnabledProfilerFunctor::operator()): Deleted.
(JSC::VM::setEnabledProfiler): Deleted.
* runtime/VM.h:
(JSC::VM::enabledProfiler): Deleted.
(JSC::VM::enabledProfilerAddress): Deleted.

Source/WebCore:

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* ForwardingHeaders/profiler/LegacyProfiler.h: Removed.
* ForwardingHeaders/profiler/Profile.h: Removed.
* ForwardingHeaders/profiler/ProfileNode.h: Removed.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCustomXPathNSResolver.cpp:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::supportsLegacyProfiling): Deleted.
(WebCore::JSDOMWindowBase::supportsRichSourceInfo): Deleted.
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::supportsLegacyProfiling): Deleted.
* bindings/js/JSWorkerGlobalScopeBase.h:
* bindings/js/ScriptCachedFrameData.cpp:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::clearWindowShell): Deleted.
* bindings/js/ScriptProfile.h: Removed.
* bindings/js/ScriptProfileNode.h: Removed.
* bindings/scripts/CodeGeneratorJS.pm:
(AddClassForwardIfNeeded): Deleted.
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/TestObj.idl:
* css/CSSParser.cpp:
* dom/Document.cpp:
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::stopProfiling):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::legacyProfilerEnabled): Deleted.
(WebCore::InspectorController::setLegacyProfilerEnabled): Deleted.
* inspector/InspectorController.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::stopProfilingImpl):
* inspector/InspectorInstrumentation.h:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
* inspector/InspectorTimelineAgent.h:
* inspector/PageDebuggerAgent.cpp:
* inspector/PageRuntimeAgent.cpp:
* inspector/ScriptProfile.idl: Removed.
* inspector/ScriptProfileNode.idl: Removed.
* inspector/TimelineRecordFactory.cpp:
(WebCore::buildAggregateCallInfoInspectorObject): Deleted.
(WebCore::buildInspectorObject): Deleted.
(WebCore::buildProfileInspectorObject): Deleted.
(WebCore::TimelineRecordFactory::appendProfile): Deleted.
* page/DOMWindow.cpp:
* page/Page.cpp:
* page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::profileEnd):
(WebCore::PageConsoleClient::clearProfiles): Deleted.
* page/PageConsoleClient.h:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Deleted.
(WebCore::Internals::consoleProfiles): Deleted.
(WebCore::Internals::setLegacyJavaScriptProfilingEnabled): Deleted.
* testing/Internals.h:
* testing/Internals.idl:
* testing/js/WebCoreTestSupport.cpp:
* xml/XSLStyleSheetLibxslt.cpp:
* xml/XSLTProcessorLibxslt.cpp:

Source/WebKit/win:

* Interfaces/IWebInspector.idl:
* WebView.cpp:
* WebInspector.cpp:
(WebInspector::isJavaScriptProfilingEnabled): Deleted.
(WebInspector::setJavaScriptProfilingEnabled): Deleted.
* WebInspector.h:

LayoutTests:

* fast/profiler/anonymous-event-handler-expected.txt: Removed.
* fast/profiler/anonymous-event-handler.html: Removed.
* fast/profiler/anonymous-function-called-from-different-contexts-expected.txt: Removed.
* fast/profiler/anonymous-function-called-from-different-contexts.html: Removed.
* fast/profiler/anonymous-function-calls-built-in-functions-expected.txt: Removed.
* fast/profiler/anonymous-function-calls-built-in-functions.html: Removed.
* fast/profiler/anonymous-function-calls-eval-expected.txt: Removed.
* fast/profiler/anonymous-function-calls-eval.html: Removed.
* fast/profiler/anonymous-functions-with-display-names-expected.txt: Removed.
* fast/profiler/anonymous-functions-with-display-names.html: Removed.
* fast/profiler/apply-expected.txt: Removed.
* fast/profiler/apply.html: Removed.
* fast/profiler/built-in-function-calls-anonymous-expected.txt: Removed.
* fast/profiler/built-in-function-calls-anonymous.html: Removed.
* fast/profiler/built-in-function-calls-user-defined-function-expected.txt: Removed.
* fast/profiler/built-in-function-calls-user-defined-function.html: Removed.
* fast/profiler/call-expected.txt: Removed.
* fast/profiler/call-register-leak-expected.txt: Removed.
* fast/profiler/call-register-leak.html: Removed.
* fast/profiler/call.html: Removed.
* fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope-expected.txt: Removed.
* fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope.html: Removed.
* fast/profiler/compare-multiple-profiles-expected.txt: Removed.
* fast/profiler/compare-multiple-profiles.html: Removed.
* fast/profiler/constructor-expected.txt: Removed.
* fast/profiler/constructor.html: Removed.
* fast/profiler/dead-time-expected.txt: Removed.
* fast/profiler/dead-time.html: Removed.
* fast/profiler/document-dot-write-expected.txt: Removed.
* fast/profiler/document-dot-write.html: Removed.
* fast/profiler/event-handler-expected.txt: Removed.
* fast/profiler/event-handler.html: Removed.
* fast/profiler/execution-context-and-eval-on-same-line-expected.txt: Removed.
* fast/profiler/execution-context-and-eval-on-same-line.html: Removed.
* fast/profiler/inline-event-handler-expected.txt: Removed.
* fast/profiler/inline-event-handler.html: Removed.
* fast/profiler/many-calls-in-the-same-scope-expected.txt: Removed.
* fast/profiler/many-calls-in-the-same-scope.html: Removed.
* fast/profiler/multiple-and-different-scoped-anonymous-function-calls-expected.txt: Removed.
* fast/profiler/multiple-and-different-scoped-anonymous-function-calls.html: Removed.
* fast/profiler/multiple-and-different-scoped-function-calls-expected.txt: Removed.
* fast/profiler/multiple-and-different-scoped-function-calls.html: Removed.
* fast/profiler/multiple-anonymous-functions-called-from-the-same-function-expected.txt: Removed.
* fast/profiler/multiple-anonymous-functions-called-from-the-same-function.html: Removed.
* fast/profiler/multiple-frames-expected.txt: Removed.
* fast/profiler/multiple-frames.html: Removed.
* fast/profiler/named-functions-with-display-names-expected.txt: Removed.
* fast/profiler/named-functions-with-display-names.html: Removed.
* fast/profiler/nested-anonymous-functon-expected.txt: Removed.
* fast/profiler/nested-anonymous-functon.html: Removed.
* fast/profiler/nested-start-and-stop-profiler-expected.txt: Removed.
* fast/profiler/nested-start-and-stop-profiler.html: Removed.
* fast/profiler/no-execution-context-expected.txt: Removed.
* fast/profiler/no-execution-context.html: Removed.
* fast/profiler/one-execution-context-expected.txt: Removed.
* fast/profiler/one-execution-context.html: Removed.
* fast/profiler/profile-calls-in-included-file-expected.txt: Removed.
* fast/profiler/profile-calls-in-included-file.html: Removed.
* fast/profiler/profile-with-no-title-expected.txt: Removed.
* fast/profiler/profile-with-no-title.html: Removed.
* fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting-expected.txt: Removed.
* fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Removed.
* fast/profiler/profiling-from-a-nested-location-expected.txt: Removed.
* fast/profiler/profiling-from-a-nested-location.html: Removed.
* fast/profiler/resources/other-frame.html: Removed.
* fast/profiler/resources/other-window.html: Removed.
* fast/profiler/resources/profiler-test-JS-resources.js: Removed.
* fast/profiler/simple-event-call-expected.txt: Removed.
* fast/profiler/simple-event-call.html: Removed.
* fast/profiler/simple-no-level-change-expected.txt: Removed.
* fast/profiler/simple-no-level-change.html: Removed.
* fast/profiler/start-and-stop-profiler-multiple-times-expected.txt: Removed.
* fast/profiler/start-and-stop-profiler-multiple-times.html: Removed.
* fast/profiler/start-and-stop-profiling-in-the-same-function-expected.txt: Removed.
* fast/profiler/start-and-stop-profiling-in-the-same-function.html: Removed.
* fast/profiler/start-but-dont-stop-profiling-expected.txt: Removed.
* fast/profiler/start-but-dont-stop-profiling.html: Removed.
* fast/profiler/stop-profiling-after-setTimeout-expected.txt: Removed.
* fast/profiler/stop-profiling-after-setTimeout.html: Removed.
* fast/profiler/stop-then-function-call-expected.txt: Removed.
* fast/profiler/stop-then-function-call.html: Removed.
* fast/profiler/throw-exception-from-eval-expected.txt: Removed.
* fast/profiler/throw-exception-from-eval.html-disabled: Removed.
* fast/profiler/two-execution-contexts-expected.txt: Removed.
* fast/profiler/two-execution-contexts.html: Removed.
* fast/profiler/user-defined-function-calls-built-in-functions-expected.txt: Removed.
* fast/profiler/user-defined-function-calls-built-in-functions.html: Removed.
* fast/profiler/window-dot-eval-expected.txt: Removed.
* fast/profiler/window-dot-eval.html: Removed.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/ios-simulator/TestExpectations:

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

3 years agoToT WebKit doesn't show tooltip on perf dashboard's summary page
rniwa@webkit.org [Sat, 14 May 2016 21:07:28 +0000 (21:07 +0000)]
ToT WebKit doesn't show tooltip on perf dashboard's summary page
https://bugs.webkit.org/show_bug.cgi?id=157705

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by WebKit doesn't look for the title attribute across shadow boundaries.
Fixed it by using a newly added Node::parentNodeInComposedTree in HitTestResult::title.

Test: fast/shadow-dom/tooltip-on-composed-tree.html

* dom/Node.cpp:
(WebCore::Node::parentInComposedTree): Added.
* dom/Node.h:
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::title): Fixed the bug.
(WebCore::HitTestResult::innerTextIfTruncated): Fixed a related bug when ShowsToolTipOverTruncatedText
is enabled. Unfortunately, there is no machinery to test this feature yet.

LayoutTests:

Added a regression test for finding a tooltip across shadow boundaries.

* fast/shadow-dom/tooltip-on-composed-tree-expected.txt: Added.
* fast/shadow-dom/tooltip-on-composed-tree.html: Added.

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

3 years agoCTTE for the HTML editing header
darin@apple.com [Sat, 14 May 2016 20:09:50 +0000 (20:09 +0000)]
CTTE for the HTML editing header
https://bugs.webkit.org/show_bug.cgi?id=157676

Reviewed by Chris Dumez.

Source/WebCore:

* accessibility/AXObjectCache.cpp:
(WebCore::AccessibilityReplacedText::postTextStateChangeNotification): Use auto so we have a
change to compile more efficient code using the more specific types returned, rather than
explicitly using a less specific type like Node.
(WebCore::AXObjectCache::startCharacterOffsetOfParagraph): Ditto.
* accessibility/atk/WebKitAccessibleInterfaceText.cpp: Update for deprecatedIsEditingWhitespace name.
* dom/Position.cpp:
(WebCore::Position::offsetForPositionAfterAnchor): Update to use a reference instead of a pointer.
(WebCore::Position::next): Ditto.
(WebCore::Position::atFirstEditingPositionForNode): Ditto.
(WebCore::Position::atLastEditingPositionForNode): Ditto.
(WebCore::Position::atStartOfTree): Ditto.
(WebCore::Position::atEndOfTree): Ditto.
(WebCore::Position::upstream): Ditto.
(WebCore::Position::downstream): Ditto.
(WebCore::Position::rendersInDifferentPosition): Ditto.
* dom/PositionIterator.cpp:
(WebCore::PositionIterator::increment): Ditto.
(WebCore::PositionIterator::decrement): Ditto.
(WebCore::PositionIterator::atEnd): Ditto.
(WebCore::PositionIterator::atEndOfNode): Ditto.
* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand):
Use new name, deprecatedIsEditingWhitespace.
* editing/ApplyBlockElementCommand.cpp:
(WebCore::ApplyBlockElementCommand::formatSelection): Use auto (see rationale above).
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle): More of the same.
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Ditto.
(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle): Ditto.
(WebCore::ApplyStyleCommand::isValidCaretPositionInTextNode): Ditto.
(WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical): Ditto.
(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical): Ditto.
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Ditto.
* editing/BreakBlockquoteCommand.cpp:
(WebCore::BreakBlockquoteCommand::doApply): Ditto.
* editing/CompositeEditCommand.cpp:
(WebCore::postTextStateChangeNotification): Ditto.
(WebCore::CompositeEditCommand::insertNodeAt): Ditto.
(WebCore::CompositeEditCommand::positionOutsideTabSpan): Ditto.
(WebCore::containsOnlyDeprecatedEditingWhitespace): Ditto.
(WebCore::CompositeEditCommand::shouldRebalanceLeadingWhitespaceFor): Ditto.
(WebCore::CompositeEditCommand::rebalanceWhitespaceAt): Ditto.
(WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring): Ditto.
(WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): Ditto.
(WebCore::CompositeEditCommand::moveParagraphWithClones): Ditto.
(WebCore::CompositeEditCommand::moveParagraphs): Ditto.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::initializeStartEnd): Ditto.
(WebCore::DeleteSelectionCommand::handleGeneralDelete): Ditto.
(WebCore::DeleteSelectionCommand::mergeParagraphs): Ditto.
(WebCore::DeleteSelectionCommand::doApply): Ditto.
* editing/EditCommand.cpp:
(WebCore::EditCommand::postTextStateChangeNotification): Ditto.
* editing/EditingStyle.cpp: Ditto.
* editing/Editor.cpp:
(WebCore::Editor::advanceToNextMisspelling): Ditto.
* editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::formatRange): Ditto.
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::outdentParagraph): Ditto.
* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply): Ditto.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::fixOrphanedListChild): Ditto.
(WebCore::InsertListCommand::doApplyForSingleParagraph): Ditto.
(WebCore::InsertListCommand::unlistifyParagraph): Ditto.
(WebCore::InsertListCommand::listifyParagraph): Ditto.
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply): Ditto.
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::insertTab): Ditto.
* editing/ModifySelectionListLevel.cpp:
(WebCore::IncreaseSelectionListLevelCommand::doApply): Ditto.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeUnrenderedNodes): Ditto.
(WebCore::ReplaceSelectionCommand::shouldMerge): Ditto.
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): Ditto.
(WebCore::ReplaceSelectionCommand::mergeEndIfNeeded): Ditto.
(WebCore::enclosingInline): Ditto.
(WebCore::ReplaceSelectionCommand::doApply): Ditto.
* editing/TextIterator.cpp:
(WebCore::maxOffsetIncludingCollapsedSpaces): Ditto.
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::honorEditingBoundaryAtOrBefore): Ditto.
(WebCore::VisiblePosition::honorEditingBoundaryAtOrAfter): Ditto.
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity): Ditto.
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Ditto.
* editing/VisibleUnits.cpp:
(WebCore::previousRootInlineBoxCandidatePosition): Ditto.
(WebCore::nextRootInlineBoxCandidatePosition): Ditto.
(WebCore::startOfParagraph): Ditto.
(WebCore::endOfParagraph): Ditto.
(WebCore::startOfEditableContent): Ditto.
(WebCore::endOfEditableContent): Ditto.

* editing/htmlediting.cpp:
(WebCore::highestEditableRoot): Changed return type to ContainerNode. Maybe later could
change it to Element.
(WebCore::lowestEditableAncestor): Changed return type to Element.
(WebCore::isEditableToAccessibility): Use auto.
(WebCore::isRichlyEditablePosition): Ditto.
(WebCore::editableRootForPosition): Ditto.
(WebCore::unsplittableElementForPosition):Ditto.
(WebCore::nextCandidate): Streamline.
(WebCore::nextVisuallyDistinctCandidate): Ditto.
(WebCore::previousCandidate): Ditto.
(WebCore::previousVisuallyDistinctCandidate): Ditto.
(WebCore::firstEditablePositionAfterPositionInRoot): Changed arugment type to
ContainerNode.
(WebCore::lastEditablePositionBeforePositionInRoot): Ditto.
(WebCore::lastOffsetForEditing): Changed argument type to reference.
(WebCore::stringWithRebalancedWhitespace): Optimized the case where the function does
not need to change the string, so it just returns the passed string rather than a copy.
(WebCore::isTableStructureNode): Use auto.
(WebCore::isSpecialElement): Made this function private to the file. Use auto.
(WebCore::firstInSpecialElement): Return an HTMLElement.
(WebCore::lastInSpecialElement): Ditto.
(WebCore::isFirstVisiblePositionInSpecialElement): Made this function private to the file.
(WebCore::positionBeforeContainingSpecialElement): Changed out argument to HTMLElement.
(WebCore::isLastVisiblePositionInSpecialElement): Ditto.
(WebCore::positionAfterContainingSpecialElement): Ditto.
(WebCore::positionOutsideContainingSpecialElement): Ditto.
(WebCore::isFirstPositionAfterTable): Changed return type to Element.
(WebCore::isLastPositionBeforeTable): Ditto.
(WebCore::visiblePositionBeforeNode): Changed argument type to reference.
(WebCore::visiblePositionAfterNode): Ditto.
(WebCore::enclosingElementWithTag): Use auto. Removed special case for null since the
algorithm already handles null correctly.
(WebCore::enclosingNodeOfType): Use auto.
(WebCore::highestEnclosingNodeOfType): Ditto.
(WebCore::highestNodeToRemoveInPruning): Ditto.
(WebCore::enclosingTableCell): Changed return type to Element.
(WebCore::enclosingAnchorElement): Removed special case for null since the algorithm
already handles null correctly.
(WebCore::enclosingList): Use auto.
(WebCore::enclosingListChild): Use auto.
(WebCore::enclosingEmptyListItem): Use auto.
(WebCore::outermostEnclosingList): Use auto.
(WebCore::canMergeLists): Use references and more specific type. Since both elements are
known to be HTMLElement, compare local names instead of using hasTagName.
(WebCore::isRenderedTable): Use auto.
(WebCore::isTableCell): Ditto.
(WebCore::isEmptyTableCell): Ditto.
(WebCore::createBreakElement): Deleted. Callers can use HTMLBRElement directly.
(WebCore::createOrderedListElement): Deleted. Callers can use HTMLOListElement directly.
(WebCore::createUnorderedListElement): Deleted. Callers can use HTMLUListElement directly.
(WebCore::createListItemElement): Deleted. Callers can use HTMLLIElement directly.
(WebCore::isTabSpanNode): Remove redundant checks and did more specific typecast.
(WebCore::isTabSpanTextNode): Removed redundant null checks.
(WebCore::tabSpanNode): Changed return type to HTMLSpanElement.
(WebCore::positionOutsideTabSpan): Deleted. Unused function.
(WebCore::createTabSpanElement): Made one of the overloads private to this file. Use auto.
Changed argument type since we don't need to support null. Moved createEditingTextNode code,
specific to the version without a string into that function rather than the helper function.
(WebCore::isNodeRendered): Changed argument type to a reference.
(WebCore::numEnclosingMailBlockquotes): Streamlined.
(WebCore::isMailBlockquote): Use downcast instead of static_cast.
(WebCore::caretMinOffset): Take a reference instead of a pointer.
(WebCore::caretMaxOffset): Ditto.
(WebCore::selectionForParagraphIteration): Use auto.
(WebCore::indexForVisiblePosition): Ditto.
(WebCore::visiblePositionForIndex): Ditto.
(WebCore::visiblePositionForIndexUsingCharacterIterator): Ditto.
(WebCore::isVisiblyAdjacent): Made this private to this file.
(WebCore::isNodeVisiblyContainedWithin): Changed argument type to a reference.
(WebCore::areIdenticalElements): Changed argument types to references.
(WebCore::adjustedSelectionStartForStyleComputation): Use auto.
(WebCore::isBlockFlowElement): Changed argument type to a reference. Use auto.
(WebCore::deprecatedEnclosingBlockFlowElement): Updated for reference changes.
(WebCore::rendererForCaretPainting): Use auto.

* editing/htmlediting.h: Use pragma once. Removed unneeded includes and forward declarations.
Removed various non-helpful comments (the sections still don't make sense; not really good to
group functions by their return types). Moved inline functoin bodies to the bottom of the file.
Renamed isWhitespace to deprecatedIsEditingWhitespace.

* editing/markup.cpp:
(WebCore::createFragmentFromText): Use HTMLBRElement.
* page/DOMSelection.cpp:
(WebCore::DOMSelection::extend): Updated since caretMaxOffset takes a reference.

Source/WebKit/ios:

* WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame previousUnperturbedDictationResultBoundaryFromPosition:]): Update since
lastOffsetForEditing takes a reference now. Seems like this code should be in WebCore.
(-[WebFrame nextUnperturbedDictationResultBoundaryFromPosition:]): Ditto.

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

3 years agoSupport ArrayBufferViews in the CSS Font Loading API
mmaxfield@apple.com [Sat, 14 May 2016 19:18:34 +0000 (19:18 +0000)]
Support ArrayBufferViews in the CSS Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=157694
<rdar://problem/25554267>

Source/WebCore:

This patch adds a new mode to CSSFontFaceSource for immediate (ArrayBuffer) data.
Then, FontFace can simply be hooked up to this new mode.

Reviewed by Darin Adler.

Test: fast/text/css-font-loading-arraybuffer.html

* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::font):
* css/CSSFontFaceSource.h:
* css/FontFace.cpp:
(WebCore::FontFace::create):
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::ensureCustomFontData):
(WebCore::CachedFont::createCustomFontData):
(WebCore::CachedFont::createFont):
(WebCore::CachedFont::platformDataFromCustomData):
* loader/cache/CachedFont.h:

LayoutTests:

Reviewed by Darin Adler.

* fast/text/css-font-loading-arraybuffer-expected.txt: Added.
* fast/text/css-font-loading-arraybuffer.html: Added.

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

3 years ago[WebIDL] Add support for dictionary members of integer types
cdumez@apple.com [Sat, 14 May 2016 17:56:01 +0000 (17:56 +0000)]
[WebIDL] Add support for dictionary members of integer types
https://bugs.webkit.org/show_bug.cgi?id=157703

Reviewed by Darin Adler.

Add support for dictionary members of integer types, including support
for the [Clamp] and [EnforceRange] IDL extended attributes on such
members.

* bindings/js/JSDOMConvert.h:
(WebCore::convert):
(WebCore::convertOptional):
- Add the needed template specializations so we can use convertOptional()
  with integral types.
- Use std::enable_if so the template specializations meants to be used
  for floating point types or integral types can only be instantiated
  for such types.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConversionRuleWithLeadingComma):
(GetIntegerConversionConfiguration):
(JSValueToNative):
Generate the right IntegerConversionConfiguration parameter for convert()
and convertOptional() when converting dictionary members of integral
types

* bindings/scripts/IDLParser.pm:
(parseDictionaryMember):
Fix bug in the IDL parser where we weren't initializing the extended
attributes for dictionary members.

* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/TestObj.idl:
Add bindings tests coverage.

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

3 years agoAllocate MacGlyphToPathTranslator / CairoGlyphToPathTranslator on the stack
cdumez@apple.com [Sat, 14 May 2016 16:54:07 +0000 (16:54 +0000)]
Allocate MacGlyphToPathTranslator / CairoGlyphToPathTranslator on the stack
https://bugs.webkit.org/show_bug.cgi?id=157690

Reviewed by Myles C. Maxfield.

Allocate MacGlyphToPathTranslator / CairoGlyphToPathTranslator on the
stack. We also now use the subclass type for the local variable so it
will bypass the vtable for various virtual function calls (if the compiler
was not already smart enough to figure this out).

* platform/graphics/cairo/FontCairo.cpp:
(WebCore::FontCascade::dashesForIntersectionsWithRect):
* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::FontCascade::dashesForIntersectionsWithRect):

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

3 years agoWeb Inspector: Empty line shows arrow when hovering over Animation Frame Requested...
nvasilyev@apple.com [Sat, 14 May 2016 14:59:55 +0000 (14:59 +0000)]
Web Inspector: Empty line shows arrow when hovering over Animation Frame Requested in timeline recording
https://bugs.webkit.org/show_bug.cgi?id=157707

Reviewed by Timothy Hatcher.

* UserInterface/Views/DataGrid.css:
(.data-grid:not(.variable-height-rows) > .data-container > table.data > tbody > tr > td > div):

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

3 years agoUnreviewed attempt to fix the iOS build after the protector variables renaming.
cdumez@apple.com [Sat, 14 May 2016 06:31:51 +0000 (06:31 +0000)]
Unreviewed attempt to fix the iOS build after the protector variables renaming.

* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):

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

3 years agojsc: samplingProfilerStackTraces() without starting sampling should not cause jsc...
commit-queue@webkit.org [Sat, 14 May 2016 05:51:38 +0000 (05:51 +0000)]
jsc: samplingProfilerStackTraces() without starting sampling should not cause jsc to crash
https://bugs.webkit.org/show_bug.cgi?id=157704

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-13
Reviewed by Saam Barati.

* jsc.cpp:
(functionStartSamplingProfiler):
(functionSamplingProfilerStackTraces):
Throw an exception instead of crashing if we haven't started sampling.

* inspector/agents/InspectorScriptProfilerAgent.cpp:
(Inspector::InspectorScriptProfilerAgent::startTracking):
* runtime/VM.h:
* runtime/VM.cpp:
(JSC::VM::ensureSamplingProfiler):
Switch ensure to returning a reference, like most other ensures.

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

3 years agoAll scrolling height/width values should be integral rounded.
zalan@apple.com [Sat, 14 May 2016 05:14:08 +0000 (05:14 +0000)]
All scrolling height/width values should be integral rounded.
https://bugs.webkit.org/show_bug.cgi?id=157687

Reviewed by Simon Fraser.

Both clientHeight(Width) and scrollHeight(width) need to be explicitly integral
rounded in order to ensure that scrollable content is computed properly.
This will evolve into subpixel snapping once we apply subpixel arithmetics on scrolling.

Source/WebCore:

Not testable.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::scrollWidth):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::horizontalScrollbarStart):
(WebCore::RenderLayer::scrollWidth):
(WebCore::RenderLayer::scrollHeight):
(WebCore::RenderLayer::computeScrollDimensions):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):
* rendering/RenderLayer.h:

LayoutTests:

* platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
* platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt:
* platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
* platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
* platform/mac/fast/css/text-overflow-input-expected.txt:
* platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
* platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt:
* platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt:
* platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:

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

3 years agoFix JSBench which causes math domain error in run-benchmark script.
dewei_zhu@apple.com [Sat, 14 May 2016 04:58:41 +0000 (04:58 +0000)]
Fix JSBench which causes math domain error in run-benchmark script.
https://bugs.webkit.org/show_bug.cgi?id=157697
<rdar://problem/26279292>

Reviewed by Ryosuke Niwa.

Some tests of JSBench give time usage to be 0 ms which will causes error while calculating geometric mean.
Also fix a round-off error while calculating stdev.

* Scripts/webkitpy/benchmark_runner/benchmark_results.py:
(BenchmarkResults._format_values):
* Scripts/webkitpy/benchmark_runner/data/patches/JSBench.patch:

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

3 years agoExtend protector naming code style guideline to cover operator= assignment.
beidson@apple.com [Sat, 14 May 2016 04:45:42 +0000 (04:45 +0000)]
Extend protector naming code style guideline to cover operator= assignment.
https://bugs.webkit.org/show_bug.cgi?id=157693

Reviewed by Darin Adler.

Tools:

* Scripts/webkitpy/style/checkers/cpp.py:
(check_identifier_name_in_declaration):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_names):

Websites/webkit.org:

* code-style.md:

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

3 years agoFix iOS Build.
dino@apple.com [Sat, 14 May 2016 02:40:57 +0000 (02:40 +0000)]
Fix iOS Build.

* Shared/AssistedNodeInformation.h:
(WebKit::OptionItem::OptionItem):

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

3 years agoREGRESSION (r200463): Autofill Credit Card expected but got Autofill Contact
weinig@apple.com [Sat, 14 May 2016 02:29:04 +0000 (02:29 +0000)]
REGRESSION (r200463): Autofill Credit Card expected but got Autofill Contact
<rdar://problem/26251538>
https://bugs.webkit.org/show_bug.cgi?id=157701

Reviewed by Dan Bernstein.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame _certificateChain]):
We need to do a retain-autorelease here now because the CertificateInfo's that contain the
cached certificate chain, are being destroyed, and therefore destroying the chain, before this
function returns. This used to work when the chain wasn't just a cache, because there was still
a strong reference to it being held by the ResourceResponse's CertificateInfo copy, but now
there is none.

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

3 years ago[iOS] <select> elements popover should render right-aligned when in RTL mode
dino@apple.com [Sat, 14 May 2016 02:27:50 +0000 (02:27 +0000)]
[iOS] <select> elements popover should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157699
<rdar://problem/26282319>

Reviewed by Simon Fraser.

Some follow-up changes as suggested by Darin in review.

* Shared/AssistedNodeInformation.h: Use initializers so we can
remove the constructors.
(WebKit::OptionItem::OptionItem): Deleted.
(WebKit::AssistedNodeInformation::AssistedNodeInformation): Deleted.
* UIProcess/ios/forms/WKFormSelectPopover.mm: Add a comment to explain
why we are explicitly setting the language.
(-[WKSelectTableViewController initWithView:hasGroups:]):

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

3 years ago[NetworkCache] Avoid having to re-parse URLs after deserializing them
cdumez@apple.com [Sat, 14 May 2016 02:26:23 +0000 (02:26 +0000)]
[NetworkCache] Avoid having to re-parse URLs after deserializing them
https://bugs.webkit.org/show_bug.cgi?id=157660

Reviewed by Darin Adler.

Source/WebCore:

Avoid having to re-parse URLs after deserializing them in the WebKit2
network cache storage implementation.

We previously serialized URLs as Strings, which meant that we had the
re-parse them upon deserialization. We now serialize all of the URL
data members to avoid having to parse the String again.

* platform/URL.h:
(WebCore::URL::encode):
(WebCore::URL::decode):
* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::encodeWithoutPlatformData):
(WebCore::ResourceRequestBase::decodeWithoutPlatformData):
* platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):

Source/WebKit2:

* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Deleted.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Deleted.
* NetworkProcess/cache/NetworkCacheCoders.h:
Drop template specializations used by our network cache for encoding
/ decoding URLs as Strings. This causes us to now rely on
URL::encode() / URL::decode() instead.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<BlobPart>::decode):
Fix bug in BlobPart encoding / decoding. It was encoding the url member
as a URL but decoding it as a String.

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

3 years agoScriptController::processingUserGesture should propagate across postMessage boundaries
weinig@apple.com [Sat, 14 May 2016 02:17:31 +0000 (02:17 +0000)]
ScriptController::processingUserGesture should propagate across postMessage boundaries
<rdar://problem/26273173>
https://bugs.webkit.org/show_bug.cgi?id=157686

Reviewed by Anders Carlsson.

Source/WebCore:

Test: fast/dom/Window/post-message-user-action.html

* dom/UserGestureIndicator.h:
Export processingUserGesture() for testing.

* page/DOMWindow.cpp:
(WebCore::PostMessageTimer::PostMessageTimer):
(WebCore::PostMessageTimer::event):
Maintain the processingUserGesture bit through postMessage.

* testing/Internals.cpp:
(WebCore::Internals::setResourceTimingSupport):
(WebCore::Internals::isProcessingUserGesture):
* testing/Internals.h:
* testing/Internals.idl:
Add new internals function to get the current state of the UseGestureIndicator for testing.

LayoutTests:

* fast/dom/Window/post-message-user-action-expected.txt: Added.
* fast/dom/Window/post-message-user-action.html: Added.

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

3 years agoAlign window.scroll() / scrollTo() / scrollBy() with the CSSOM specification
cdumez@apple.com [Sat, 14 May 2016 02:10:27 +0000 (02:10 +0000)]
Align window.scroll() / scrollTo() / scrollBy() with the CSSOM specification
https://bugs.webkit.org/show_bug.cgi?id=157666

Reviewed by Darin Adler.

Source/WebCore:

Align window.scroll() / scrollTo() / scrollBy() with Firefox and the CSSOM
specification:
https://drafts.csswg.org/cssom-view/#extensions-to-the-window-interface

In particular, the following changes were made:
1. Make parameters to scroll() / scrollTo() / scrollBy() mandatory.
2. Add overloads for scroll() / scrollTo() / scrollBy() that take an
   optional ScrollToOptions dictionary.
3. Update API to use "unrestricted double" typing for x/y instead of
   "long". This matches the specification but it does not really change
   our behavior at this point because the values are still casted to
   int in our implementation.

Web-Exposed behavior changes:
1. JS can now pass a dictionary to scroll() / scrollTo() / scrollBy().
   This a new feature that Firefox already supports (Chrome does not).
2. Passing only 1 parameter to scroll() / scrollTo() / scrollBy() that
   is not a dictionary will now throw a TypeError. The compatibility
   risky should be low because Firefox and Chrome already throw in this
   case (Chrome has been throwing for 2 years and a half).
3. Calling scrollTo() / scroll() without any parameter no longer
   scrolls to 0. Instead we use the current viewport's x/y which means
   we don't scroll at all. The new behavior matches Firefox, Chrome and
   IE 11. This fixes scrolling on the following Website:
   https://members.chosun.com/cms_subscribe/application/index.jsp

No new tests, extended existing testing.

* bindings/js/JSDOMConvert.h:
(WebCore::convert):
(WebCore::convertOptional):
* bindings/scripts/CodeGeneratorJS.pm:
(ShouldAllowNonFiniteForFloatingPointType):
(GenerateConversionRuleWithLeadingComma):
(GenerateDictionaryImplementationContent):
(JSValueToNative):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convert<TestObj::Dictionary>):
* bindings/scripts/test/TestObj.idl:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::scrollBy):
(WebCore::DOMWindow::scrollTo):
* page/DOMWindow.h:
* page/DOMWindow.idl:

LayoutTests:

Update / improve testing coverage for the API.

* fast/dom/Window/window-scroll-arguments-expected.txt:
* fast/dom/Window/window-scroll-arguments.html:
* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

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

3 years agoDFG/FTL have a few bugs in their reasoning about the scope
sbarati@apple.com [Sat, 14 May 2016 02:03:10 +0000 (02:03 +0000)]
DFG/FTL have a few bugs in their reasoning about the scope
https://bugs.webkit.org/show_bug.cgi?id=157696

Reviewed by Benjamin Poulain.

1. When the debugger is enabled, it is easier for the DFG to reason
about the scope register by simply claiming all nodes read the scope
register. This prevents us from ever entering the runtime where we
may take a stack trace but there isn't a scope on the stack.

2. This patch fixes a bug where the FTL compilation wasn't properly
setting the CodeBlock register. It was only doing this when there
was inline data, but when the debugger is enabled, we never inline.
So this code just needed to be removed from that loop. It was never
right for it to be inside the loop.

* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* ftl/FTLCompile.cpp:
(JSC::FTL::compile):

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

3 years agoUnreviewed, rolling out r200894.
ryanhaddad@apple.com [Sat, 14 May 2016 00:03:43 +0000 (00:03 +0000)]
Unreviewed, rolling out r200894.
https://bugs.webkit.org/show_bug.cgi?id=157695

This change broke the iOS build (Requested by ryanhaddad on
#webkit).

Reverted changeset:

"Remove unused initializer for WebEvent on iOS."
https://bugs.webkit.org/show_bug.cgi?id=157689
http://trac.webkit.org/changeset/200894

Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-13

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

3 years agov3 UI shows full git hash instead of the first 8 characters for a blame range
rniwa@webkit.org [Sat, 14 May 2016 00:01:21 +0000 (00:01 +0000)]
v3 UI shows full git hash instead of the first 8 characters for a blame range
https://bugs.webkit.org/show_bug.cgi?id=157691

Reviewed by Stephanie Lewis.

Fixed the bug that v3 UI shows the full 40 character git hash instead of the first 8 character as done in v2 UI.

* public/v3/models/commit-log.js:
(CommitLog.prototype.diff): Fixed the bug.
* tools/run-tests.py:
(main): Add the support for running a subset of tests as mocha does.
* unit-tests/commit-log-tests.js: Added.

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

3 years ago[JSC] SetLocal without exit do not need phantoms
benjamin@webkit.org [Fri, 13 May 2016 23:45:44 +0000 (23:45 +0000)]
[JSC] SetLocal without exit do not need phantoms
https://bugs.webkit.org/show_bug.cgi?id=157653

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

I made a mistake in r200498.

If a SetLocal cannot possibly exit, we were not clearing
the source of the operand. As a result, we sometime kept
a value alive up to the end of the block.

That's uncommon because SetLocal typically appear
toward the end of blocks. That's probably why there was
no perf impact with that fix.

* dfg/DFGPhantomInsertionPhase.cpp:

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

3 years ago[JSC] Move the CheckTierUp function calls out of the main path
benjamin@webkit.org [Fri, 13 May 2016 23:45:15 +0000 (23:45 +0000)]
[JSC] Move the CheckTierUp function calls out of the main path
https://bugs.webkit.org/show_bug.cgi?id=157668

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-13
Reviewed by Mark Lam.

If you have a tiny tiny loop (for example, Sunspider's bits-in-byte),
the size of CheckTierUp is a problem.

On multi-issue CPUs, the node is so big that we do not
get to run anything from the loop in the instruction fetch.

On x86, having a bigger loop also pushes us out of the LSD.

This is a 6% improvement on bits-in-byte. Other Sunspider tests
only improves marginally.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::addSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::silentSpill):
(JSC::DFG::SpeculativeJIT::silentFill):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

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

3 years ago[JSC] Emit the loads of emitLoadWithStructureCheck() in the order they are used
benjamin@webkit.org [Fri, 13 May 2016 23:44:31 +0000 (23:44 +0000)]
[JSC] Emit the loads of emitLoadWithStructureCheck() in the order they are used
https://bugs.webkit.org/show_bug.cgi?id=157671

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-13
Reviewed by Mark Lam.

This improves the chances of having a value
when issuing the TEST.

* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitLoadWithStructureCheck):

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

3 years agoRename all protector variables that should be called `protectedThis`
beidson@apple.com [Fri, 13 May 2016 23:42:17 +0000 (23:42 +0000)]
Rename all protector variables that should be called `protectedThis`
https://bugs.webkit.org/show_bug.cgi?id=157610

Reviewed by Alex Christensen.

No new tests (Renaming, no behavior change).

WebCore has so many instances of these protectors as well as so much variance in naming them,
that I think it deserved a new style pass.

* Modules/fetch/FetchResponse.cpp:
* Modules/geolocation/GeoNotifier.cpp:
* Modules/geolocation/Geolocation.cpp:
* Modules/indexeddb/IDBTransaction.cpp:
* Modules/indexeddb/client/TransactionOperation.h:
* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
* Modules/indexeddb/shared/InProcessIDBServer.cpp:
* Modules/mediastream/UserMediaRequest.cpp:
* Modules/notifications/NotificationCenter.cpp:
* Modules/webaudio/AudioContext.cpp:
* Modules/webdatabase/Database.cpp:
* Modules/websockets/WebSocket.cpp:
* Modules/websockets/WebSocketChannel.cpp:
* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
* accessibility/AccessibilityObject.cpp:
* accessibility/AccessibilityRenderObject.cpp:
* bindings/gobject/GObjectEventListener.cpp:
* bindings/js/JSCustomElementInterface.cpp:
* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
* bindings/js/JSCustomXPathNSResolver.cpp:
* bindings/js/JSDOMGlobalObjectTask.cpp:
* bindings/js/JSDOMWindowBase.cpp:
* bindings/js/JSErrorHandler.cpp:
* bindings/js/JSEventListener.cpp:
* bindings/js/JSMutationCallback.cpp:
* bindings/js/JSNodeFilterCustom.cpp:
* bindings/js/SerializedScriptValue.cpp:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/test/JS/JSTestCallback.cpp:
* bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
* bridge/runtime_root.cpp:
* css/CSSFontSelector.cpp:
* css/StyleSheetContents.cpp:
* dom/CharacterData.cpp:
* dom/ContainerNode.cpp:
* dom/Document.cpp:
* dom/EventTarget.cpp:
* dom/Node.cpp:
* dom/ScriptExecutionContext.cpp:
* dom/ScriptedAnimationController.cpp:
* dom/StringCallback.cpp:
* html/HTMLEmbedElement.cpp:
* html/HTMLFormControlElement.cpp:
* html/HTMLFormElement.cpp:
* html/HTMLInputElement.cpp:
* html/HTMLLinkElement.cpp:
* html/HTMLMediaElement.cpp:
* html/HTMLObjectElement.cpp:
* html/HTMLOptionElement.cpp:
* html/HTMLScriptElement.cpp:
* html/HTMLTableElement.cpp:
* html/HTMLTextAreaElement.cpp:
* html/HTMLTitleElement.cpp:
* html/parser/HTMLDocumentParser.cpp:
* html/shadow/SliderThumbElement.cpp:
* html/shadow/SpinButtonElement.cpp:
* inspector/InspectorFrontendClientLocal.cpp:
* loader/DocumentLoader.cpp:
* loader/DocumentThreadableLoader.cpp:
* loader/MediaResourceLoader.cpp:
* loader/NetscapePlugInStreamLoader.cpp:
* loader/ResourceLoader.cpp:
* loader/SubresourceLoader.cpp:
* loader/cache/CachedRawResource.cpp:
* loader/cf/SubresourceLoaderCF.cpp:
* loader/mac/ResourceLoaderMac.mm:
* page/DOMWindow.cpp:
* page/DOMWindowExtension.cpp:
* page/FrameView.cpp:
* page/animation/AnimationBase.cpp:
* page/scrolling/ThreadedScrollingTree.cpp:
* platform/ScrollView.cpp:
* platform/graphics/DisplayRefreshMonitor.cpp:
* platform/graphics/ca/win/CACFLayerTreeHost.cpp:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
* platform/mac/WidgetMac.mm:
* platform/network/BlobResourceHandle.cpp:
* platform/network/cf/ResourceHandleCFNet.cpp:
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
* platform/network/curl/CurlDownload.cpp:
* platform/network/mac/ResourceHandleMac.mm:
* platform/network/soup/SocketStreamHandleSoup.cpp:
* platform/win/PopupMenuWin.cpp:
* workers/WorkerScriptLoader.cpp:
* xml/XMLHttpRequest.cpp:
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParserLibxml2.cpp:

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

3 years agoRemove unused initializer for WebEvent on iOS.
enrica@apple.com [Fri, 13 May 2016 23:39:00 +0000 (23:39 +0000)]
Remove unused initializer for WebEvent on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157689

Reviewed by Anders Carlsson.

Source/WebCore:

This is no longer used and can be removed.
The logic tied to isPopupVariant has been incorporated
in keyboard flags. The characterSet property is no longer needed too.

* platform/ios/WebEvent.h:
* platform/ios/WebEvent.mm:
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]):
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:isPopupVariant:keyCode:isTabKey:characterSet:]): Deleted.
(-[WebEvent _characterSetDescription]): Deleted.
(-[WebEvent isPopupVariant]): Deleted.
(-[WebEvent characterSet]): Deleted.

Source/WebKit/mac:

Removing use of characterSet property.

* WebView/WebHTMLView.mm:
(-[WebHTMLView _handleEditingKeyEvent:]):

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

3 years agoWeb Inspector: Inform augmenting client when inspector controller is destroyed
joepeck@webkit.org [Fri, 13 May 2016 23:29:13 +0000 (23:29 +0000)]
Web Inspector: Inform augmenting client when inspector controller is destroyed
https://bugs.webkit.org/show_bug.cgi?id=157688
<rdar://problem/25832724>

Reviewed by Timothy Hatcher.

* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::~JSGlobalObjectInspectorController):
* inspector/augmentable/AugmentableInspectorControllerClient.h:
There is a weak relationship between the InspectorController and the
AugmentingClient. Let the augmenting client know when the controller
is destroyed so it doesn't try to use us anymore.

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

3 years agoTry to fix some non-iOS builds.
mitz@apple.com [Fri, 13 May 2016 23:26:59 +0000 (23:26 +0000)]
Try to fix some non-iOS builds.

* mac/postprocess-framework-headers.sh:

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

3 years agoUnreviewed. Added the missing executable bits.
rniwa@webkit.org [Fri, 13 May 2016 23:15:38 +0000 (23:15 +0000)]
Unreviewed. Added the missing executable bits.

* tools/bundle-v3-scripts.py: Added property svn:executable.
* tools/detect-changes.js: Added property svn:executable.
* tools/process-maintenance-backlog.py: Added property svn:executable.

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

3 years agocross-fade() rendering doesn't match expectation
simon.fraser@apple.com [Fri, 13 May 2016 22:40:57 +0000 (22:40 +0000)]
cross-fade() rendering doesn't match expectation
https://bugs.webkit.org/show_bug.cgi?id=157665
rdar://problem/17917708

Reviewed by Dean Jackson.

Source/WebCore:

Cross-fading two opaque images would result in a non-opaque result in between the endpoints,
probably because r157045 caused both images to be drawn with srcOver, since drawImage()
clobbers the composite operation in the context.

Fix by passing the composite operation to the drawImage() calls for the non-transparency layer
code path.

Converted css3/images/cross-fade-blending.html into a ref test to test this.

* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::drawCrossfadeSubimage):

LayoutTests:

Make css3/images/cross-fade-blending.html a ref test.

* css3/images/cross-fade-blending-expected.html: Added.
* css3/images/cross-fade-blending-expected.png: Removed.
* css3/images/cross-fade-blending-expected.txt: Removed.
* css3/images/cross-fade-blending.html:
* platform/mac/css3/images/cross-fade-blending-expected.png: Removed.

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

3 years agoUnprefix -webkit-cross-fade()
simon.fraser@apple.com [Fri, 13 May 2016 22:40:52 +0000 (22:40 +0000)]
Unprefix -webkit-cross-fade()
https://bugs.webkit.org/show_bug.cgi?id=157632

Reviewed by Darin Adler.
Source/WebCore:

Support unprefixed cross-fade() in addition to the prefixed value when parsing,
and have computed style round-trip the correct one.

If computed style is queried during an image transition, return an unprefixed
cross-fade(). If blending cross-fade values, only return the prefixed function if
both inputs are prefixed.

Tested by modified and existing tests.

* css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::customCSSText):
(WebCore::CSSCrossfadeValue::blend):
* css/CSSCrossfadeValue.h:
(WebCore::CSSCrossfadeValue::create):
(WebCore::CSSCrossfadeValue::isPrefixed):
(WebCore::CSSCrossfadeValue::CSSCrossfadeValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::isGeneratedImageValue):
(WebCore::CSSParser::parseGeneratedImage):
(WebCore::CSSParser::parseCrossfade):
* css/CSSParser.h:

Source/WebInspectorUI:

* UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

* animations/cross-fade-background-image-expected.html:
* animations/cross-fade-background-image.html:
* animations/cross-fade-border-image-source.html:
* animations/cross-fade-list-style-image.html:
* animations/cross-fade-webkit-mask-box-image.html:
* animations/cross-fade-webkit-mask-image.html:
* animations/resources/animation-test-helpers.js:
(parseCSSImage):
(parseCrossFade):
(compareCSSImages):
* fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:
* fast/css/getComputedStyle/computed-style-cross-fade.html:
* transitions/resources/transition-test-helpers.js:
(parseCrossFade):

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

3 years agoResourceTiming entries for cached resources and XHR
yoav@yoav.ws [Fri, 13 May 2016 22:34:29 +0000 (22:34 +0000)]
ResourceTiming entries for cached resources and XHR
https://bugs.webkit.org/show_bug.cgi?id=157669

Reviewed by Alex Christensen.

Source/WebCore:

 - Moves the ResourceTiming storage and addition logic into its own class, so that it
   can be accessed by both CachedResourceLoader and DocumentThreadableLoader.
 - Using the above, adds ResourceTiming collection into DocumentThreadableLoader,
   in order to support ResourceTiming entries for XHR based requests.
 - Adds ResourceTiming entries for resources that are reused from the memory cache.

Test: http/tests/performance/performance-resource-timing-cached-entries.html

* CMakeLists.txt: Add ResourceTimingInformation.
* WebCore.xcodeproj/project.pbxproj: Add ResourceTimingInformation.
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::didFinishLoading): Add a call to addResourceTiming.
(WebCore::DocumentThreadableLoader::loadRequest): Store the initiator information.
* loader/DocumentThreadableLoader.h:
* loader/ResourceTimingInformation.cpp: Added.
(WebCore::ResourceTimingInformation::addResourceTiming): Moved addResourceTiming logic from CachedResourceLoader.
(WebCore::ResourceTimingInformation::storeResourceTimingInitiatorInformation): Moved addResourceTiming logic from
CachedResourceLoader. Removed reliance on the committingFirstRealLoad bool when storing initiator info, as I don't
see why it is required, and it made no sense in the context of DocumentThreadableLoader.
* loader/ResourceTimingInformation.h: Added.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource): Add a ResourceTiming entry when a resource is reused from MemoryCache.
(WebCore::CachedResourceLoader::revalidateResource): Use ResourceTimingInformation::storeResourceTimingInitiatorInformation.
(WebCore::CachedResourceLoader::loadResource): Use ResourceTimingInformation::storeResourceTimingInitiatorInformation.
(WebCore::CachedResourceLoader::loadDone): Use ResourceTimingInformation::addResourceTiming.
(WebCore::CachedResourceLoader::storeResourceTimingInitiatorInformation): Deleted.
* loader/cache/CachedResourceLoader.h:

LayoutTests:

These tests make sure that cacheable resources as well as XHR based resources
have ResourceTiming entries.

* http/tests/performance/performance-resource-timing-cached-entries-expected.txt: Added.
* http/tests/performance/performance-resource-timing-cached-entries.html: Added.

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

3 years agoWeb Inspector: Typing "layout" in filter for Layout and Rendering Timeline matches...
mattbaker@apple.com [Fri, 13 May 2016 22:22:45 +0000 (22:22 +0000)]
Web Inspector: Typing "layout" in filter for Layout and Rendering Timeline matches everything
https://bugs.webkit.org/show_bug.cgi?id=157684
<rdar://problem/26276588>

Reviewed by Joseph Pecoraro.

Hidden columns should not participate in built-in grid filtering
using DataGrid.filterText. Hidden columns can still be custom filtered,
which is how TimelineDataGrid filters scopebar columns.

* UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode.prototype.get filterableData):
Skip hidden columns.

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

3 years agoRunaway malloc memory usage in this simple JSC program
ggaren@apple.com [Fri, 13 May 2016 21:24:34 +0000 (21:24 +0000)]
Runaway malloc memory usage in this simple JSC program
https://bugs.webkit.org/show_bug.cgi?id=157682

Reviewed by Mark Lam.

* heap/WeakSet.cpp:
(JSC::WeakSet::sweep): Whenever we might add a block to
m_logicallyEmptyWeakBlocks, be sure also to sweep a block in
m_logicallyEmptyWeakBlocks. Otherwise, additions might outpace removals
even when all memory is freed.

We do this whenever we *might* add a block and not just whenever we *do*
add a block because we'd like to sweep the entries in
m_logicallyEmptyWeakBlocks promptly even when it's not growing, and this
is a reasonably rate-limited opportunity to do so.

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

3 years agoDashboard code restructuring
aakash_jain@apple.com [Fri, 13 May 2016 20:35:58 +0000 (20:35 +0000)]
Dashboard code restructuring
https://bugs.webkit.org/show_bug.cgi?id=157680
<rdar://problem/14736888>

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueView.js:
(BubbleQueueView.prototype.addLinkToRow): Moved to base class.
(BubbleQueueView.prototype.addTextToRow): Moved to base class.
(BubbleQueueView.prototype._addDividerToPopover): Moved to base class.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotBuilderQueueView.js:
(BuildbotBuilderQueueView.prototype.update): Passing additional argument to _appendPendingRevisionCount.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:
(BuildbotCombinedQueueView.prototype.update): Passing additional argument to _appendPendingRevisionCount.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.update): Passing additional argument to _appendPendingRevisionCount.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._appendPendingRevisionCount): Moved to base class and modified to take
additional argument.
(BuildbotQueueView.prototype._popoverLinesForCommitRange): Moved to base class.
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Moved to base class.
(BuildbotQueueView.prototype._addDividerToPopover): Moved to base class.
(BuildbotQueueView.prototype._formatRevisionForDisplay): Moved to base class.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
(documentReady): Display any customView if available.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/QueueView.js:
(QueueView.prototype.addLinkToRow): Moved from child class, no changes.
(QueueView.prototype.addTextToRow): Moved from child class, no changes.
(QueueView.prototype._addDividerToPopover): Moved from child class, no changes.
(QueueView.prototype._appendPendingRevisionCount): Moved from child class, made it more generic
by taking latestIterationGetter method as an argument.
(QueueView.prototype._popoverLinesForCommitRange): Moved from child class, no changes.
(QueueView.prototype._presentPopoverForPendingCommits): Moved from child class, no changes.
(QueueView.prototype._formatRevisionForDisplay): Moved from child class, no changes.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(a:hover:link): Underline only when there is a link.

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

3 years agoWe should have one calleeSaveRegistersBuffer per VMEntryFrame, not one per VM.
mark.lam@apple.com [Fri, 13 May 2016 20:16:29 +0000 (20:16 +0000)]
We should have one calleeSaveRegistersBuffer per VMEntryFrame, not one per VM.
https://bugs.webkit.org/show_bug.cgi?id=157537
<rdar://problem/24794845>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

The pre-existing code behaves this way:

1. When JS code throws an exception, it saves callee save registers in
   the VM calleeSaveRegistersBuffer.  These values are meant to be restored
   to the callee save registers later either at the catch handler or at the
   uncaught exception handler.

2. If the Inspector is enable, the VM will invoke inspector C++ code to inspect
   the exception.  That C++ code can change the values of the callee save
   registers.

   The inspector code in turn re-enters the VM to execute JS inspector code.

   The JS inspector code can run hot enough that we do an enterOptimizationCheck
   on it.  The enterOptimizationCheck first saves all callee save registers
   into the VM calleeSaveRegistersBuffer.

   This effectively overwrites the values in the VM calleeSaveRegistersBuffer
   from (1).

3. Eventually, execution returns to the catch handler or the uncaught exception
   handler which restores the overwritten values in the VM
   calleeSaveRegistersBuffer to the callee save registers.

   When execution returns to the C++ code that entered the VM before (1), the
   values in the callee registers are not what that code expects, and badness
   and/or crashes ensues.

This patch applies the following fix:

1. Allocate space in the VMEntryFrame for the calleeSaveRegistersBuffer.
   This ensures that each VM entry session has its own buffer to use, and will
   not corrupt the one from the previous VM entry session.

   Delete the VM calleeSaveRegistersBuffer.

2. Change all locations that uses the VM calleeSaveRegistersBuffer to use the
   calleeSaveRegistersBuffer in the current VMEntryFrame.

3. Renamed all uses of the term "VMCalleeSavesBuffer" to
   "VMEntryFrameCalleeSavesBuffer".

This fix has been tested on the following configurations:
1. JSC and layout tests on a debug ASan build for 64-bit x86_64.
2. JSC tests on a release ASan build for 32-bit x86.
3. JSC tests on a release normal (non-ASan) build for ARM64.
4. JSC tests on a release normal (non-ASan) build for ARMv7 and ARMv7s.
5. JSC tests on a release ASan CLOOP build for x86_64.

These test runs did not produce any new crashes.  The ASan CLOOP has some
pre-existing crashes which are not due to this patch.

This bug can be tested by running the inspector/debugger/regress-133182.html test
on an ASan build.

* bytecode/PolymorphicAccess.cpp:
(JSC::AccessGenerationState::emitExplicitExceptionHandler):
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compileExceptionHandlers):
* dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
* dfg/DFGOSRExitCompiler.cpp:
* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGThunks.cpp:
(JSC::DFG::osrEntryThunkGenerator):
* ftl/FTLCompile.cpp:
(JSC::FTL::compile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::lower):
* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
* interpreter/Interpreter.cpp:
(JSC::UnwindFunctor::operator()):
(JSC::UnwindFunctor::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):
(JSC::UnwindFunctor::copyCalleeSavesToVMCalleeSavesBuffer): Deleted.
* interpreter/Interpreter.h:
(JSC::NativeCallFrameTracer::NativeCallFrameTracer):
* interpreter/VMEntryRecord.h:
(JSC::VMEntryRecord::calleeSaveRegistersBufferOffset):
(JSC::VMEntryRecord::prevTopCallFrame):
(JSC::VMEntryRecord::unsafePrevTopCallFrame):
(JSC::VMEntryFrame::vmEntryRecordOffset):
(JSC::VMEntryFrame::calleeSaveRegistersBufferOffset):
* jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitRandomThunk):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMCalleeSavesBuffer): Deleted.
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitRestoreSavedTagRegisters):
(JSC::AssemblyHelpers::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesToVMCalleeSavesBuffer): Deleted.
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToVMCalleeSavesBuffer): Deleted.
* jit/JIT.cpp:
(JSC::JIT::emitEnterOptimizationCheck):
(JSC::JIT::privateCompileExceptionHandlers):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emitSlow_op_loop_hint):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):
* jit/ThunkGenerators.cpp:
(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::nativeForGenerator):
* llint/LLIntThunks.cpp:
(JSC::vmEntryRecord):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/VM.h:
(JSC::VM::getCTIStub):
(JSC::VM::calleeSaveRegistersBufferOffset): Deleted.
* wasm/WASMFunctionCompiler.h:
(JSC::WASMFunctionCompiler::endFunction):

LayoutTests:

* inspector/debugger/regress-133182-expected.txt:
- Rebased test results to update line numbers.
* platform/mac/TestExpectations:
- Unskip the test.

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

3 years agoSummary page doesn't report some missing platforms
rniwa@webkit.org [Fri, 13 May 2016 19:42:38 +0000 (19:42 +0000)]
Summary page doesn't report some missing platforms
https://bugs.webkit.org/show_bug.cgi?id=157670

Reviewed by Darin Adler.

This patch improves the warning text for missing platforms and fixes the bug that platforms that don't have
any data reported for a given test would not be reported as missing.

* public/v3/pages/summary-page.js:
(SummaryPage.prototype.render): Added instrumentations.
(SummaryPage.prototype._constructRatioGraph): Always create both the ratio bar graph and the spinner icon.
(SummaryPage.prototype._renderCell): Extracted from _constructRatioGraph. Toggle the displayed-ness of the
spinner and the ratio bar graph in the cell by CSS for better performance.
(SummaryPage.prototype._warningTextForGroup): Extracted from _constructRatioGraph. Rephrased warning text
for clarity and adopted new API of SummaryPageConfigurationGroup.
(SummaryPage.prototype._warningTextForGroup.mapAndSortByName): Added.
(SummaryPage.prototype._warningTextForGroup.pluralizeIfNeeded): Added.
(SummaryPage.cssTemplate): Added rules to toggle the visibility of spinner icons and bar graphs.
(SummaryPageConfigurationGroup): Replaced this._warnings by more explicitly named this._missingPlatforms
and this._platformsWithoutBaseline. Also add a platform to this._missingPlatforms if it didn't appear in
any metrics. Note that adding a platform whenever it doesn't in any one metric would be incorrect since
some tests uses a different test name on different platforms: e.g. PLT-Mac and PLT-iPhone.
(SummaryPageConfigurationGroup.prototype.missingPlatforms): Added.
(SummaryPageConfigurationGroup.prototype.platformsWithoutBaseline): Added.
(SummaryPageConfigurationGroup.prototype._fetchAndComputeRatio):

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

3 years agoAttempt to fix the iOS build after r200874
ryanhaddad@apple.com [Fri, 13 May 2016 19:42:22 +0000 (19:42 +0000)]
Attempt to fix the iOS build after r200874

Unreviewed build fix.

* UIProcess/API/Cocoa/WKWebViewConfiguration.h:

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

3 years agoAX: Regressions in undo/redo accessibility from Bug 153361
d_russell@apple.com [Fri, 13 May 2016 19:34:48 +0000 (19:34 +0000)]
AX: Regressions in undo/redo accessibility from Bug 153361
https://bugs.webkit.org/show_bug.cgi?id=157652

Reviewed by Darin Adler.

Use indexForVisiblePosition & visiblePositionForIndex to store selection data
so that AccessibilityUndoReplacedText can build valid selection ranges and
retrieve strings for AT notifications.

Source/WebCore:

Tests: accessibility/mac/value-change/value-change-user-info-contenteditable-expected.txt:
       accessibility/mac/value-change/value-change-user-info-contenteditable.html:
       accessibility/mac/value-change/value-change-user-info-textarea-expected.txt:
       accessibility/mac/value-change/value-change-user-info-textarea.html:
       accessibility/mac/value-change/value-change-user-info-textfield-expected.txt:
       accessibility/mac/value-change/value-change-user-info-textfield.html:

* accessibility/AXObjectCache.cpp:
(WebCore::AccessibilityReplacedText::AccessibilityReplacedText):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):
* editing/CompositeEditCommand.cpp:
(WebCore::AccessibilityUndoReplacedText::configureRangeDeletedByReapplyWithEndingSelection):
(WebCore::AccessibilityUndoReplacedText::configureRangeDeletedByReapplyWithStartingSelection):
(WebCore::AccessibilityUndoReplacedText::setRangeDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::captureTextForUnapply):
(WebCore::AccessibilityUndoReplacedText::captureTextForReapply):
(WebCore::AccessibilityUndoReplacedText::textDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::textDeletedByReapply):
(WebCore::AccessibilityUndoReplacedText::postTextStateChangeNotificationForUnapply):
(WebCore::AccessibilityUndoReplacedText::postTextStateChangeNotificationForReapply):
(WebCore::EditCommandComposition::EditCommandComposition):
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::EditCommandComposition::setStartingSelection):
(WebCore::EditCommandComposition::setEndingSelection):
(WebCore::EditCommandComposition::setRangeDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::confgureTextToBeDeletedByUnapplyIndexesWithEditCommandEndingSelection): Deleted.
(WebCore::AccessibilityUndoReplacedText::confgureTextToBeDeletedByUnapplyStartIndexWithEditCommandStartingSelection): Deleted.
(WebCore::AccessibilityUndoReplacedText::setTextInsertedByUnapplyRange): Deleted.
(WebCore::AccessibilityUndoReplacedText::captureTextToBeDeletedByUnapply): Deleted.
(WebCore::AccessibilityUndoReplacedText::captureTextToBeDeletedByReapply): Deleted.
(WebCore::AccessibilityUndoReplacedText::textInsertedByUnapply): Deleted.
(WebCore::AccessibilityUndoReplacedText::textInsertedByReapply): Deleted.
(WebCore::EditCommandComposition::setTextInsertedByUnapplyRange): Deleted.
* editing/CompositeEditCommand.h:
* editing/Editor.cpp:
(WebCore::Editor::replaceSelectionWithFragment):
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::postTextStateChangeNotificationForDeletion):
(WebCore::TypingCommand::insertTextAndNotifyAccessibility):
(WebCore::TypingCommand::insertLineBreakAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContentAndNotifyAccessibility):

LayoutTests:

* accessibility/mac/value-change/value-change-user-info-contenteditable-expected.txt:
* accessibility/mac/value-change/value-change-user-info-contenteditable.html:
* accessibility/mac/value-change/value-change-user-info-textarea-expected.txt:
* accessibility/mac/value-change/value-change-user-info-textarea.html:
* accessibility/mac/value-change/value-change-user-info-textfield-expected.txt:
* accessibility/mac/value-change/value-change-user-info-textfield.html:

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

3 years agoUnreviewed, rolling out r200837.
cdumez@apple.com [Fri, 13 May 2016 19:19:01 +0000 (19:19 +0000)]
Unreviewed, rolling out r200837.

Seems to have regressed Speedometer and JetStream on iOS

Reverted changeset:

"DOMPromise should only restrict the resolution type"
https://bugs.webkit.org/show_bug.cgi?id=157307
http://trac.webkit.org/changeset/200837

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

3 years agoRename WKDataDetectorTypeSpotlightSuggestion to WKDataDetectorTypeLookupSuggestion
weinig@apple.com [Fri, 13 May 2016 19:14:32 +0000 (19:14 +0000)]
Rename WKDataDetectorTypeSpotlightSuggestion to WKDataDetectorTypeLookupSuggestion
<rdar://problem/26269611>

Reviewed by Dan Bernstein and Enrica Casucci.

Source/WebCore:

* editing/cocoa/DataDetection.h:
* editing/cocoa/DataDetection.mm:
(WebCore::constructURLStringForResult):
(WebCore::DataDetection::detectContentInRange):

Source/WebKit2:

* Shared/API/Cocoa/WKFoundation.h:
* Shared/API/c/WKDeclarationSpecifiers.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(fromWKDataDetectorTypes):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* mac/postprocess-framework-headers.sh:

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

3 years agoWeb Inspector: Script ProfileViews should be searchable
mattbaker@apple.com [Fri, 13 May 2016 19:01:34 +0000 (19:01 +0000)]
Web Inspector: Script ProfileViews should be searchable
https://bugs.webkit.org/show_bug.cgi?id=157581
<rdar://problem/26228530>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.get filterText):
Make filterText readable.

* UserInterface/Views/ProfileDataGridNode.js:
(WebInspector.ProfileDataGridNode.prototype.get callingContextTreeNode):
(WebInspector.ProfileDataGridNode.prototype.filterableDataForColumn):
Add filterable data for the "function" column.
(WebInspector.ProfileDataGridNode.prototype._updateChildrenForModifiers):
(WebInspector.ProfileDataGridNode.prototype.get node): Deleted.
Renamed callingContextTreeNode to be less ambiguous.

* UserInterface/Views/ProfileDataGridTree.js:
(WebInspector.ProfileDataGridTree.prototype._updateCurrentFocusDetails):

* UserInterface/Views/ProfileView.js:
(WebInspector.ProfileView.prototype.get dataGrid):
Expose data grid for use in parent view.

* UserInterface/Views/ScriptClusterTimelineView.js:
(WebInspector.ScriptClusterTimelineView.prototype.selectRecord):
Drive-by fix: forward property to current child TimelineView.

* UserInterface/Views/ScriptProfileTimelineView.js:
(WebInspector.ScriptProfileTimelineView):
(WebInspector.ScriptProfileTimelineView.prototype._scopeBarSelectionDidChange):
(WebInspector.ScriptProfileTimelineView.prototype._showProfileViewForOrientation):
Helper function to switch profile views. Persist filter text when
switching to the new profile view.

(WebInspector.ScriptProfileTimelineView.prototype.get showsFilterBar): Deleted.
Remove FIXME and show filter bar.

* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.setupDataGrid):
Support switching to a new data grid.
(WebInspector.TimelineView.prototype.dataGridMatchNodeAgainstCustomFilters):
Hooking up filtering causes data grid nodes to be filtered based on the
ruler selection. Although ScriptProfileTimelineView performs its own
time-based filtering, this is necessary to prevent an assert.

(WebInspector.TimelineView.prototype._timelineDataGridSelectedNodeChanged):
(WebInspector.TimelineView.prototype._timelineDataGridNodeWasFiltered):
Converted arrow functions to member functions to allow unregistering
event listeners on outgoing data grid when swapping grids.

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

3 years agoAX: Wrong CharacterOffset from an upstream VisiblePosition
n_wang@apple.com [Fri, 13 May 2016 18:57:38 +0000 (18:57 +0000)]
AX: Wrong CharacterOffset from an upstream VisiblePosition
https://bugs.webkit.org/show_bug.cgi?id=157644

Reviewed by Chris Fleizach.

Source/WebCore:

We should adjust the text marker's CharacterOffset if its corresponding
VisiblePosition has upstream affinity.

Test: accessibility/mac/character-offset-from-upstream-position.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::characterOffsetForTextMarkerData):
(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::localCaretRectForCharacterOffset):

LayoutTests:

* accessibility/mac/character-offset-from-upstream-position-expected.txt: Added.
* accessibility/mac/character-offset-from-upstream-position.html: Added.

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

3 years agoBuild fix.
bdakin@apple.com [Fri, 13 May 2016 18:45:25 +0000 (18:45 +0000)]
Build fix.

* WebView/WebView.mm:

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

3 years agoSource/JavaScriptCore:
bdakin@apple.com [Fri, 13 May 2016 18:29:52 +0000 (18:29 +0000)]
Source/JavaScriptCore:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

Import #import <wtf/spi/darwin/dyldSPI.h> which now declares all of the
needed dyld code.
* API/JSWrapperMap.mm:

Source/WebCore:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

This patch removes DynamicLinkerSPI.h and replaces it with
wtf/spi/darwin/dyldSPI.h

* WebCore.xcodeproj/project.pbxproj:
* html/HTMLObjectElement.cpp:
* platform/graphics/ios/FontServicesIOS.mm:
* platform/spi/cocoa/DynamicLinkerSPI.h: Removed.

Source/WebKit/ios:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

This patch removes DynamicLinkerSPI.h and replaces it with
wtf/spi/darwin/dyldSPI.h

* Misc/WebUIKitSupport.mm:

Source/WebKit/mac:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

This patch removes DynamicLinkerSPI.h and replaces it with
wtf/spi/darwin/dyldSPI.h

* WebView/WebView.mm:

Source/WebKit2:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401

Reviewed by Darin Adler.

Set _allowsLinkPreview to YES for programs linked on or after
firstSDKVersionWithLinkPreviewEnabledByDefault.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):

Source/WTF:
Add dyldSPI.h
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

New header for dyld spi.
* WTF.xcodeproj/project.pbxproj:
* wtf/spi/darwin/dyldSPI.h: Added.

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

3 years agoTurn on WEB_TIMING for all ports
yoav@yoav.ws [Fri, 13 May 2016 18:06:43 +0000 (18:06 +0000)]
Turn on WEB_TIMING for all ports
https://bugs.webkit.org/show_bug.cgi?id=157673

Reviewed by Alex Christensen.

.:

Turn on WEB_TIMING by default on the cmake Mac port, to match it with all other ports,
and make sure that the flag will be on by default for all ports.

* Source/cmake/OptionsGTK.cmake: Remove the specific private flag for WEB_TIMING.
* Source/cmake/OptionsMac.cmake: Remove the specific private flag for WEB_TIMING.
* Source/cmake/WebKitFeatures.cmake: Turn on WEB_TIMING for all ports by default.

Tools:

* Scripts/webkitperl/FeatureList.pm: Make sure that WEB_TIMING is on by default.

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

3 years agoFullscreen view attempts to resize when in 2-up mode
jer.noble@apple.com [Fri, 13 May 2016 17:42:18 +0000 (17:42 +0000)]
Fullscreen view attempts to resize when in 2-up mode
https://bugs.webkit.org/show_bug.cgi?id=157558

Reviewed by Darin Adler.

No need to react to NSApplicationDidChangeScreenParametersNotification to resize the
fullscreen window when the screen parameters change; the NSWindow fullscreen machinery
will do that on our behalf.

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController windowDidLoad]): Deleted.
(-[WKFullScreenWindowController applicationDidChangeScreenParameters:]): Deleted.

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

3 years agoGive CrossThreadCopier a default specialization for Vectors of objects.
beidson@apple.com [Fri, 13 May 2016 17:37:23 +0000 (17:37 +0000)]
Give CrossThreadCopier a default specialization for Vectors of objects.
https://bugs.webkit.org/show_bug.cgi?id=157675

Reviewed by Darin Adler.

No new tests (Refactor, no change in behavior).

* platform/CrossThreadCopier.cpp:
(WebCore::Vector<String>>::copy): Deleted.
* platform/CrossThreadCopier.h: Add a default specialization for Vector<T> where T is a type
  that is CrossThreadCopyable itself.

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

3 years agoMarking fast/text-autosizing/ios/text-autosizing-after-back.html as a flaky timeout
ryanhaddad@apple.com [Fri, 13 May 2016 17:29:22 +0000 (17:29 +0000)]
Marking fast/text-autosizing/ios/text-autosizing-after-back.html as a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=157589

Unreviewed test gardening.

* TestExpectations:

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

3 years agoProtector Ref/RefPtrs should have a specified naming style.
beidson@apple.com [Fri, 13 May 2016 16:16:51 +0000 (16:16 +0000)]
Protector Ref/RefPtrs should have a specified naming style.
https://bugs.webkit.org/show_bug.cgi?id=157591

Reviewed by Darin Adler.

Tools:

* Scripts/webkitpy/style/checkers/cpp.py:
(check_identifier_name_in_declaration):
(CppChecker):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_names):

Websites/webkit.org:

* code-style.md:

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

3 years ago[iOS] <select> elements popover should render right-aligned when in RTL mode
commit-queue@webkit.org [Fri, 13 May 2016 16:06:03 +0000 (16:06 +0000)]
[iOS] <select> elements popover should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157672
<rdar://problem/26193442>

Patch by Antoine Quint <graouts@apple.com> on 2016-05-13
Reviewed by Darin Adler.

Add a new isRTL field to the AssistedNodeInformation as specified by the assisted
node's render style and account for it when displaying the table view shown in the
popover attached to the assisted node using the UIView semanticContentAttribute
property.

* Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h:
(WebKit::AssistedNodeInformation::AssistedNodeInformation):
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectTableViewController initWithView:hasGroups:]):
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):

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

3 years agoHave the WorkerGlobalScope API return more references
cdumez@apple.com [Fri, 13 May 2016 14:58:53 +0000 (14:58 +0000)]
Have the WorkerGlobalScope API return more references
https://bugs.webkit.org/show_bug.cgi?id=157663

Reviewed by Alexey Proskuryakov.

Have the WorkerGlobalScope API return more references instead of
pointers.

* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::location):
(WebCore::WorkerGlobalScope::navigator):
* workers/WorkerGlobalScope.h:
(WebCore::WorkerGlobalScope::self):

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

3 years agoAssertion failure for direct eval in non-class method
utatane.tea@gmail.com [Fri, 13 May 2016 14:28:30 +0000 (14:28 +0000)]
Assertion failure for direct eval in non-class method
https://bugs.webkit.org/show_bug.cgi?id=157138

Reviewed by Saam Barati.

This assertion was incorrect. In method definitions in object literals,
it can be sloppy mode, but its DerivedContextType may not be DerivedContextType::None.

* bytecode/EvalCodeCache.h:
(JSC::EvalCodeCache::CacheKey::CacheKey):
(JSC::EvalCodeCache::CacheKey::operator==):
(JSC::EvalCodeCache::CacheKey::Hash::equal):
(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):
* interpreter/Interpreter.cpp:
(JSC::eval):
* tests/stress/direct-eval-in-object-literal-methods.js: Added.
(shouldBe):
(throw.new.Error):
(shouldBe.Parent.prototype.l):
(shouldBe.Parent):
(shouldBe.Derived.prototype.m):
(shouldBe.Derived):

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

3 years agoDOMPromise should only restrict the resolution type
youenn.fablet@crf.canon.fr [Fri, 13 May 2016 11:03:00 +0000 (11:03 +0000)]
DOMPromise should only restrict the resolution type
https://bugs.webkit.org/show_bug.cgi?id=157307

Reviewed by Darin Adler.

Source/WebCore:

Removing from DOMPromise the rejection template parameter.
Supported rejection types are integers (Exception codes) and DOM objects (DOMError typically).

Updated toJS and DeferredWrapper to accept Ref<>&& and RefPtr<>&&.
Previously Ref<>&& were not accepted and only "const RefPtr<>&" was accepted.
This in turn created an unecessary churn count when calling toJS.

Changes also allow in most cases to remove the need for explictly declaring the
rejection/resolution type.

Minor refactoring of FontFaceSet promise handling to use DOMPromise in lieu of DeferredWrapper.

Covered by existing tests.
Changes should not be visible from user scripts.

* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeText):
(WebCore::blobFromArrayBuffer):
(WebCore::FetchBody::loadingFailed):
* Modules/fetch/FetchBody.h:
(WebCore::FetchBody::formData):
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::BodyLoader::didReceiveResponse):
* Modules/fetch/FetchResponse.h:
* Modules/mediastream/MediaDevices.h:
* Modules/mediastream/PeerConnectionBackend.h:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::didCreateStream):
* Modules/streams/ReadableStreamSource.h:
* Modules/webaudio/AudioContext.h:
* bindings/js/JSDOMBinding.h:
(WebCore::toJS):
(WebCore::jsPair):
* bindings/js/JSDOMPromise.cpp:
(WebCore::fulfillPromiseWithJSON):
* bindings/js/JSDOMPromise.h:
(WebCore::TypeInspector::decltype):
(WebCore::TypeInspector::testIsVector):
(WebCore::TypeInspector::testIsRefOrRefPtr):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):
(WebCore::DeferredWrapper::resolveWithValue):
(WebCore::DeferredWrapper::rejectWithValue):
(WebCore::callPromiseFunction):
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::unwrapKey):
* css/FontFace.h:
* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::PendingPromise::PendingPromise):
(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::registerReady):
* css/FontFaceSet.h:
* html/HTMLMediaElement.h:

Source/WTF:

* wtf/Ref.h: Adding static constexpr to ease detection of Ref for templates.
* wtf/RefPtr.h: Ditto.

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

3 years agoAssertion failure for super() call in arrow function default parameters
gskachkov@gmail.com [Fri, 13 May 2016 08:22:21 +0000 (08:22 +0000)]
Assertion failure for super() call in arrow function default parameters
https://bugs.webkit.org/show_bug.cgi?id=157079

Reviewed by Saam Barati.

Source/JavaScriptCore:

Root of the issue that in arrow function we load bounded variables this/super/new.target just after
input parameters were initialized, and did not covered case of default values for function parameters.
Current patch tried to fix issue and allow to load bounded variables earlier, before the input
parameters are assigned by default values.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
* tests/stress/arrowfunction-lexical-bind-this-2.js:

LayoutTests:

* js/arrowfunction-lexical-bind-arguments-non-strict-expected.txt:
* js/arrowfunction-lexical-bind-this-expected.txt:
* js/arrowfunction-supercall-expected.txt:
* js/arrowfunction-superproperty-expected.txt:
* js/script-tests/arrowfunction-lexical-bind-arguments-non-strict.js:
* js/script-tests/arrowfunction-lexical-bind-this.js:
* js/script-tests/arrowfunction-supercall.js:
* js/script-tests/arrowfunction-superproperty.js:

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

3 years ago[css-grid] Show auto-repeat line names in ComputedStyle
svillar@igalia.com [Fri, 13 May 2016 07:41:49 +0000 (07:41 +0000)]
[css-grid] Show auto-repeat line names in ComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=157622

Reviewed by Darin Adler.

Source/WebCore:

Add the necessary machinery to show the named lines from auto-repeat tracks in
getComputedStyle(). A new class OrderedNamedLinesCollector was added to abstract the
retrieval of line names no matter where they come from (explicit or auto-repeat tracks).

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::OrderedNamedLinesCollector::OrderedNamedLinesCollector):
(WebCore::OrderedNamedLinesCollector::isEmpty): TRUE if we don't have named lines neither on
explicit nor auto-repeat tracks.
(WebCore::OrderedNamedLinesCollector::appendLines): Add the named lines found for a given
index to the CSSGridLineNamesValue.
(WebCore::OrderedNamedLinesCollector::collectLineNamesForIndex): Collects named lines found
for a given index.
(WebCore::addValuesForNamedGridLinesAtIndex): Use the collector to gather named lines.
(WebCore::valueForGridTrackList): Ditto.

LayoutTests:

* fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:

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

3 years agoAlways use v3 UI for dashboards and analysis task pages
rniwa@webkit.org [Fri, 13 May 2016 07:33:28 +0000 (07:33 +0000)]
Always use v3 UI for dashboards and analysis task pages
https://bugs.webkit.org/show_bug.cgi?id=157647

Reviewed by Darin Adler.

Redirect dashboard pages from v1 and v2 to v3's summary page. Also redirect v1 UI's charts page and v2 UI's
analysis task pages to the corresponding v3 pages.

Keep v2's charts page accessible since some features such as segmentation is still only available on v2 UI.

* public/index.html:
(init.showCharts): Redirect to v3 UI once the chart list has been parsed.
(init.redirectChartsToV3): Added.
* public/v2/index.html:

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

3 years agoRevert r199691.
commit-queue@webkit.org [Fri, 13 May 2016 07:31:59 +0000 (07:31 +0000)]
Revert r199691.
https://bugs.webkit.org/show_bug.cgi?id=157645
<rdar://problem/26235373>

Patch by Tina Liu <iting_liu@apple.com> on 2016-05-13
Reviewed by Darin Adler.

Source/WebCore:

* plugins/PluginStrategy.h:

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy): Deleted.

Source/WebKit2:

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextSetPrivateBrowsingPluginLoadClientPolicy): Deleted.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setPluginLoadClientPolicy):
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
(WebKit::WebProcessPool::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebProcessPool::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebProcessPool::clearPluginClientPolicies): Deleted.
* UIProcess/WebProcessPool.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost):
(WebKit::WebPlatformStrategies::populatePluginCache):
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies): Deleted.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHostForPrivateBrowsing): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setPluginLoadClientPolicies): Deleted.
(WebKit::WebProcess::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

3 years agoShow a spinner while fetching data on summary page
rniwa@webkit.org [Fri, 13 May 2016 07:31:58 +0000 (07:31 +0000)]
Show a spinner while fetching data on summary page
https://bugs.webkit.org/show_bug.cgi?id=157658

Reviewed by Darin Adler.

Show a spinner while fetching JSON files on the summary page.

* public/v3/components/base.js:
(ComponentBase.prototype.renderReplace): Added a new implementation that simply calls the static version.
(ComponentBase.renderReplace): Made this static.

* public/v3/pages/summary-page.js:
(SummaryPage.prototype._constructRatioGraph): Show a spinner icon when SummaryPageConfigurationGroup's
isFetching returns true.
(SummaryPage.cssTemplate): Force the height of each cell to be 2.5rem so that the height of cell doesn't
change when a spinner is replaced by a ratio bar graph.

(SummaryPageConfigurationGroup): Added this._isFetching as an instance variable.
(SummaryPageConfigurationGroup.prototype.isFetching): Added.
(SummaryPageConfigurationGroup.prototype.fetchAndComputeSummary): Set this._isFetching while waiting for
the promises to resolve after 50ms. We don't immediately set this._isFetching to avoid FOC when all JSON
files have been cached.

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

3 years agoDrop WorkerGlobalScope's custom GetOwnPropertySlot() implementation
cdumez@apple.com [Fri, 13 May 2016 06:28:36 +0000 (06:28 +0000)]
Drop WorkerGlobalScope's custom GetOwnPropertySlot() implementation
https://bugs.webkit.org/show_bug.cgi?id=157662

Reviewed by Darin Adler.

Drop WorkerGlobalScope's custom GetOwnPropertySlot() implementation as
it is no longer needed after <http://trac.webkit.org/changeset/196678>.

JSC::getStaticPropertySlot() now properly checks for overrides *before*
checking the static table.

No new tests, no web-exposed behavior change.

* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::getOwnPropertySlotDelegate): Deleted.
* workers/WorkerGlobalScope.idl:

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

3 years agoCoordinatedGraphicsLayer::syncLayerState() should set the m_layerState.contentsOpaque...
zandobersek@gmail.com [Fri, 13 May 2016 05:52:11 +0000 (05:52 +0000)]
CoordinatedGraphicsLayer::syncLayerState() should set the m_layerState.contentsOpaque flag
https://bugs.webkit.org/show_bug.cgi?id=157575

Reviewed by Darin Adler.

* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::syncLayerState): The contentsOpaque flag in the
layer's CoordinatedGraphicsLayerState object should also be set to the current value
of the layer. This is the only flag in the union of 9 members that's not being updated
in this method.

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

3 years ago[TexMap] Handle TextureMapperShaderProgram objects through references
zandobersek@gmail.com [Fri, 13 May 2016 05:48:23 +0000 (05:48 +0000)]
[TexMap] Handle TextureMapperShaderProgram objects through references
https://bugs.webkit.org/show_bug.cgi?id=157619

Reviewed by Antonio Gomes.

TextureMapper code always expects valid TextureMapperShaderProgram
objects to be created, so it doesn't make sense to access these
objects through raw pointers or RefPtr<>s.

* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawBorder):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::drawEdgeTriangles):
(WebCore::TextureMapperGL::drawUnitRect):
(WebCore::TextureMapperGL::draw):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::TextureMapperGL::beginClip):
* platform/graphics/texmap/TextureMapperGL.h:

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

3 years agoVideoSinkGStreamer: plug a GstBuffer leak in webkitVideoSinkRequestRender()
zandobersek@gmail.com [Fri, 13 May 2016 05:46:21 +0000 (05:46 +0000)]
VideoSinkGStreamer: plug a GstBuffer leak in webkitVideoSinkRequestRender()
https://bugs.webkit.org/show_bug.cgi?id=157617

Reviewed by Darin Adler.

Unref the newly-created GstBuffer object after creating the new GstSample
that's based on it. gst_sample_new() doesn't take the ownership of it.

Also, don't unref the GstBuffer object that's passed in to the
webkitVideoSinkRequestRender() function in case the allocation of the
replacement buffer fails. We don't have any ownership over that buffer
and it's not unreffed anywhere else in this function.

* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRequestRender):

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

3 years agoWeb Inspector: Remove "Extra Scripts" folder from Resources sidebar if all children...
mattbaker@apple.com [Fri, 13 May 2016 04:20:37 +0000 (04:20 +0000)]
Web Inspector: Remove "Extra Scripts" folder from Resources sidebar if all children removed
https://bugs.webkit.org/show_bug.cgi?id=157656

Reviewed by Timothy Hatcher.

* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasRemoved):
Remove parent folder after last script tree element removed.

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

3 years agoWeb Inspector: Can't filter Rendering Frames by duration
mattbaker@apple.com [Fri, 13 May 2016 04:19:21 +0000 (04:19 +0000)]
Web Inspector: Can't filter Rendering Frames by duration
https://bugs.webkit.org/show_bug.cgi?id=157654

Reviewed by Timothy Hatcher.

* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype._scopeBarSelectionDidChange):
Call filterDidChange on the grid, not the base class.
TimelineView.filterDidChange exists to let TimelineViews perform
additional work when the grid filter changes (see LayoutTimelineView).
(WebInspector.RenderingFrameTimelineView):

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

3 years agoWeb Inspector: Deleting nodes in DOM Tree sometimes changes selection to parent inste...
commit-queue@webkit.org [Fri, 13 May 2016 04:15:56 +0000 (04:15 +0000)]
Web Inspector: Deleting nodes in DOM Tree sometimes changes selection to parent instead of sibling
https://bugs.webkit.org/show_bug.cgi?id=157649

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

* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._updateChildren): Deleted.
When pressing delete, we remove the node via DOM.removeNode()
and remove the DOMTreeElement when we receive a successful response.
However, the backend could send a DOM.childNodeRemoved event before
the response from DOM.removeNode, and the frontend would have a race
between DOMTreeUpdater's timeout and the removeNode callback.

In DOMTreeUpdater's path, DOMTreeElement updateChildren would notice
a removed node and set the selection to the parent node.

In the DOM.removeNode path, TreeOutline would update the selection
based on availability of a previousSibling/nextSibling/parent.

Remove the custom code in DOMTreeElement updateChildren, so that it
can just do the normal TreeOutline behavior via removeChildAtIndex.

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

3 years agoSource/WebCore:
mmaxfield@apple.com [Fri, 13 May 2016 01:55:40 +0000 (01:55 +0000)]
Source/WebCore:
[Cocoa] Text shadow sometimes clipped unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=108929

Reviewed by Dean Jackson.

CoreGraphics can only draw one text shadow at a time. We work around that by drawing
the text multiple times, one for each shadow. However, we want to make sure that the
original text isn't also drawn multiple times, so we bump up the shadow offsets so
the text and the shadow don't intersect, and then we clip out the original text (so
only the shadow remains).

Unfortunately, this clipping requires knowing where the visual extent of the text is,
which WebKit currently has trouble with. In particular, we often use layout extents
in lieu of visual extents, which is a problem when the glyphs draw outside of their
layout boxes. In this case, it causes us to think the text shadow is much smaller
than it really is, so our clipping operation clips to an area which is too small.

A quick solution to this is to inflate the clip rect by an amount proportional to the
font size, and offset the text shadow accordingly. If this amount is large enough,
this bug will occur on few enough sites that it is reasonable to consider this bug
fixed without the real solution of educating WebKit properly about the difference
between text layout rects and text visual extent rects.

Test: fast/text/multiple-text-shadow-overflow-layout-rect.html

* rendering/TextPainter.cpp:
(WebCore::ShadowApplier::ShadowApplier):

LayoutTests:
Text shadow sometimes clipped unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=108929

Reviewed by Dean Jackson.

Add a font which draws dramatically far outside of its layout rect.

* fast/text/multiple-text-shadow-overflow-layout-rect-expected.html: Added.
* fast/text/multiple-text-shadow-overflow-layout-rect.html: Added.
* fast/text/resources/font-overflow-layout-rect.svg: Added.

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

3 years agoREGRESSION: Web Inspector: Fails to load sourceMappingURL with relative URL
commit-queue@webkit.org [Fri, 13 May 2016 01:24:50 +0000 (01:24 +0000)]
REGRESSION: Web Inspector: Fails to load sourceMappingURL with relative URL
https://bugs.webkit.org/show_bug.cgi?id=157650
<rdar://problem/26133763>

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

* UserInterface/Controllers/SourceMapManager.js:
Wrong order of arguments. The intent was to pass the incoming
baseURL as the partialURL, because if it was not absolute by
that point we could make it relative to the main resource.
However we accidentally put the main resource as the partial
portion, which would just always return the main resource url.
Swap the order, so that if the incoming base is absolute
(such as a resource.url) that will be used, but if the
incoming base is relative (e.g. an incomplete sourceURL) we
can make it absolute with the main resource.

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

3 years agoWeb Inspector: Uncaught exception when removing selected Timeline instrument
mattbaker@apple.com [Fri, 13 May 2016 00:55:57 +0000 (00:55 +0000)]
Web Inspector: Uncaught exception when removing selected Timeline instrument
https://bugs.webkit.org/show_bug.cgi?id=157639
<rdar://problem/26252938>

Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype._instrumentRemoved):
Remove timeline tree element before modifying state. Removing the tree
element triggers a SelectionDidChange event, which can have side effects.

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

3 years agoMarking inspector/debugger/command-line-api-exception-nested-catch.html as a flaky...
ryanhaddad@apple.com [Fri, 13 May 2016 00:48:00 +0000 (00:48 +0000)]
Marking inspector/debugger/command-line-api-exception-nested-catch.html as a flaky timeout on mac
https://bugs.webkit.org/show_bug.cgi?id=152487

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:

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

3 years agoREGRESSION(r200601): Crash when using local() and unicode-range in @font-face blocks
mmaxfield@apple.com [Fri, 13 May 2016 00:24:03 +0000 (00:24 +0000)]
REGRESSION(r200601): Crash when using local() and unicode-range in @font-face blocks
https://bugs.webkit.org/show_bug.cgi?id=157646

Reviewed by Geoffrey Garen.

Source/WebCore:

I simply forgot a null check.

Test: fast/text/isLoading-crash-failed-font.html

* css/CSSSegmentedFontFace.cpp:

LayoutTests:

* fast/text/isLoading-crash-failed-font-expected.txt: Added.
* fast/text/isLoading-crash-failed-font.html: Added.

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

3 years agoUnreviewed build fix for r200799.
jiewen_tan@apple.com [Thu, 12 May 2016 23:40:15 +0000 (23:40 +0000)]
Unreviewed build fix for r200799.

* WebView/WebView.mm:

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

3 years agoREGRESSION (r199313): ICBC app: text field In the webview is not tappable
jiewen_tan@apple.com [Thu, 12 May 2016 23:22:47 +0000 (23:22 +0000)]
REGRESSION (r199313): ICBC app: text field In the webview is not tappable
https://bugs.webkit.org/show_bug.cgi?id=157396
<rdar://problem/25931513>

Reviewed by David Kilzer.

Source/WebCore:

Add a quirk for WebKit1 apps.

* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestFrame):
Even though the HTML spec suggests that we should navigate to about:blank
for subframes/iframes, of which the src cannot be resolved to an valid URL,
many existing WebKit1 apps are relying on invalid URLs to bridge their WebView
codes and their native Objective-C codes. Therefore, a quirk is added to
escape the URL validation for existing WebKit1 apps.
(WebCore::SubframeLoader::shouldConvertInvalidURLsToBlank):
* loader/SubframeLoader.h:
* page/Settings.in:

Source/WebKit/mac:

Add a quirk for WebKit1 apps.

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

LayoutTests:

The previous test is actually bogus, and therefore modify it to do the
real task.

* fast/loader/iframe-src-invalid-url-expected.txt:
* fast/loader/iframe-src-invalid-url.html:
* platform/ios-simulator-wk1/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:

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

3 years agoBaseline and DFG's JSC_report...CompileTimes needs CodeBlock hashes.
mark.lam@apple.com [Thu, 12 May 2016 22:55:39 +0000 (22:55 +0000)]
Baseline and DFG's JSC_report...CompileTimes needs CodeBlock hashes.
https://bugs.webkit.org/show_bug.cgi?id=157643

Reviewed by Keith Miller.

* runtime/Options.cpp:
(JSC::recomputeDependentOptions):

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

3 years agoUnreviewed, fix ChangeLog title for r199634
mattbaker@apple.com [Thu, 12 May 2016 22:51:22 +0000 (22:51 +0000)]
Unreviewed, fix ChangeLog title for r199634

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

3 years agoPrevent clicks in the placeholder from playing or pausing the video in a MediaDocument.
adachan@apple.com [Thu, 12 May 2016 22:13:10 +0000 (22:13 +0000)]
Prevent clicks in the placeholder from playing or pausing the video in a MediaDocument.
https://bugs.webkit.org/show_bug.cgi?id=157625

Reviewed by Jer Noble.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls):
(Controller.prototype.handlePlaceholderClick):

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

3 years agoWeb Inspector: Timeline Reset button only resets the one active Script TimelineView
commit-queue@webkit.org [Thu, 12 May 2016 22:09:03 +0000 (22:09 +0000)]
Web Inspector: Timeline Reset button only resets the one active Script TimelineView
https://bugs.webkit.org/show_bug.cgi?id=157638

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

* UserInterface/Views/ScriptClusterTimelineView.js:
(WebInspector.ScriptClusterTimelineView.prototype.reset):
Reset should reset all the views.

(WebInspector.ScriptClusterTimelineView.prototype.get navigationSidebarTreeOutline): Deleted.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView.prototype.get navigationSidebarTreeOutline): Deleted.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineScopeBar): Deleted.
Remove dead code. Nobody calls these getters.

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

3 years agoWeb Inspector: Layout timeline popovers are inconsistently shown
commit-queue@webkit.org [Thu, 12 May 2016 22:08:28 +0000 (22:08 +0000)]
Web Inspector: Layout timeline popovers are inconsistently shown
https://bugs.webkit.org/show_bug.cgi?id=157640
<rdar://problem/26253394>

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

* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._showPopoverForSelectedNodeSoon):
Fix the bug by clearing _showPopoverTimeout when we show the popover.

(WebInspector.TimelineDataGrid.prototype._hidePopover):
Modernize the code to use arrow functions and avoid binds.

(WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
Updating with presentNewContentWithFrame animates the popover to the correct
position instead of jumping and ending up at the wrong location.

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

3 years agoWeb Inspector: Remove forced layouts caused by DOMTreeElement during Timeline recording
commit-queue@webkit.org [Thu, 12 May 2016 22:06:57 +0000 (22:06 +0000)]
Web Inspector: Remove forced layouts caused by DOMTreeElement during Timeline recording
https://bugs.webkit.org/show_bug.cgi?id=157641

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

* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.updateSelection): Deleted.
This triggers forced layout and I could never actually get it to trigger anyways.
Its history is from the original import, so I don't know why it was added to begin with.
Just remove it.

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

3 years agoUnreviewed, rolling out r200718.
commit-queue@webkit.org [Thu, 12 May 2016 21:52:46 +0000 (21:52 +0000)]
Unreviewed, rolling out r200718.
https://bugs.webkit.org/show_bug.cgi?id=157637

Data grid column dividers are misaligned (Requested by NVI on
#webkit).

Reverted changeset:

"Web Inspector: Contents of Duration column are covered by
always on (legacy) scroll bars"
https://bugs.webkit.org/show_bug.cgi?id=157590
http://trac.webkit.org/changeset/200718

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

3 years agoDrop toJS() overload taking a PassRefPtr<> parameter
cdumez@apple.com [Thu, 12 May 2016 21:13:13 +0000 (21:13 +0000)]
Drop toJS() overload taking a PassRefPtr<> parameter
https://bugs.webkit.org/show_bug.cgi?id=157627

Reviewed by Alex Christensen.

Update our implementation stop stop returning PassRefPtrs to the
JS bindings and drop the toJS() overload taking a PassRefPtr<>
parameter

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::buffered):
* Modules/mediasource/SourceBuffer.h:
* Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::getChannelData):
* Modules/webaudio/AudioBuffer.h:
* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::create):
* animation/DocumentTimeline.h:
* bindings/js/JSDOMBinding.h:
(WebCore::toJS): Deleted.
(WebCore::toJSNewlyCreated): Deleted.
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::getRGBColorValue):
* css/CSSPrimitiveValue.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::error):
* html/HTMLMediaElement.h:
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelableElement.h:
* html/canvas/WebGLGetInfo.cpp:
(WebCore::WebGLGetInfo::getWebGLBuffer):
(WebCore::WebGLGetInfo::getWebGLFloatArray):
(WebCore::WebGLGetInfo::getWebGLFramebuffer):
(WebCore::WebGLGetInfo::getWebGLIntArray):
(WebCore::WebGLGetInfo::getWebGLProgram):
(WebCore::WebGLGetInfo::getWebGLRenderbuffer):
(WebCore::WebGLGetInfo::getWebGLTexture):
(WebCore::WebGLGetInfo::getWebGLUnsignedByteArray):
(WebCore::WebGLGetInfo::getWebGLUnsignedIntArray):
(WebCore::WebGLGetInfo::getWebGLVertexArrayObjectOES):
(WebCore::WebGLGetInfo::getWebGLVertexArrayObject):
* html/canvas/WebGLGetInfo.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToImageData):
(WebCore::WebGLRenderingContextBase::createBuffer):
(WebCore::WebGLRenderingContextBase::createFramebuffer):
(WebCore::WebGLRenderingContextBase::createTexture):
(WebCore::WebGLRenderingContextBase::createProgram):
(WebCore::WebGLRenderingContextBase::createRenderbuffer):
(WebCore::WebGLRenderingContextBase::createShader):
(WebCore::WebGLRenderingContextBase::getActiveAttrib):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getShaderPrecisionFormat):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):
(WebCore::WebGLRenderingContextBase::videoFrameToImage):
* html/canvas/WebGLRenderingContextBase.h:
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::create):
* html/track/TextTrackCue.h:
* html/track/VTTCue.cpp:
(WebCore::VTTCueBox::create):
* html/track/VTTCue.h:
* page/DOMSelection.cpp:
(WebCore::DOMSelection::getRangeAt):
* page/DOMSelection.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::matchMedia):
(WebCore::DOMWindow::styleMedia):
(WebCore::DOMWindow::getComputedStyle):
(WebCore::DOMWindow::getMatchedCSSRules):
(WebCore::DOMWindow::webkitConvertPointFromNodeToPage):
(WebCore::DOMWindow::webkitConvertPointFromPageToNode):
(WebCore::DOMWindow::open):
* page/DOMWindow.h:
* page/Location.cpp:
(WebCore::Location::ancestorOrigins):
* page/Location.h:

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

3 years agoTouch.prototype is undefined on iOS
rniwa@webkit.org [Thu, 12 May 2016 19:54:51 +0000 (19:54 +0000)]
Touch.prototype is undefined on iOS
https://bugs.webkit.org/show_bug.cgi?id=157560
<rdar://problem/26143008>

Reviewed by Chris Dumez.

Remove Touch and TouchList attributes from DOMWindow.
These attributes should be exposed via generated binding code (JSDOMWindow.cpp).

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::touch): Deleted.
(WebCore::JSDOMWindow::touchList): Deleted.
* bindings/js/ios/TouchConstructors.cpp:
* page/DOMWindow.idl:

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

3 years agoindexForVisiblePosition should use the root editable element as the scope
rniwa@webkit.org [Thu, 12 May 2016 19:51:14 +0000 (19:51 +0000)]
indexForVisiblePosition should use the root editable element as the scope
https://bugs.webkit.org/show_bug.cgi?id=157611

Reviewed by Darin Adler.

Source/WebCore:

Use the highest editing host instead of the document node as the scope in indexForVisiblePosition
when it's called inside an editable region. This refactoring is necessary to unblock the work to support
undo/redo in VoiceOver after r199030.

We have to workaround a bug in indexForVisiblePosition that it could return a slightly higher index than
the expected value because TextIterator emits an extra new line after a block element with a large margin
at the bottom. Unfortunately, fixing this requires a lot of code changes since the rest of the editing
code assumes this behavior and/or happens to cancel it out with some other quirks.

* editing/ApplyBlockElementCommand.cpp:
(WebCore::ApplyBlockElementCommand::doApply):
* editing/htmlediting.cpp:
(WebCore::indexForVisiblePosition):

LayoutTests:

Rebaselined tests with progressions.

* editing/execCommand/crash-indenting-list-item-expected.txt: Now preseves the selection at the beginning of
the editable region instead of moving it to the end.
* editing/execCommand/format-block-multiple-paragraphs-in-pre-expected.txt: Now preserves selection in more test
cases. This test is the one that required the workaround in ApplyBlockElementCommand::doApply. One of the test
cases would regress and clear the selection without it.
* editing/execCommand/indent-pre-list-expected.txt: Now preserves the selection instead of clearing it.

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

3 years agoWebKitAdditions needs to be notified before the WebView is dealloc'd
bdakin@apple.com [Thu, 12 May 2016 19:29:48 +0000 (19:29 +0000)]
WebKitAdditions needs to be notified before the WebView is dealloc'd
https://bugs.webkit.org/show_bug.cgi?id=157633
-and corresponding-
rdar://problem/26134539

Reviewed by Anders Carlsson.

* WebView/WebView.mm:
(-[WebView dealloc]):
* WebView/WebViewInternal.h:

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

3 years agoUse SecTask SPI to retrieve code signing identifier for user directory suffix
dbates@webkit.org [Thu, 12 May 2016 19:14:48 +0000 (19:14 +0000)]
Use SecTask SPI to retrieve code signing identifier for user directory suffix
https://bugs.webkit.org/show_bug.cgi?id=157570
Source/WebKit2:

<rdar://problem/25706517>

Reviewed by Darin Adler.

It is sufficient to make use of the SecTask SPI to retrieve the code signing
identifier of the embedding client for use in the user directory suffix. This
avoids the need to allow Code Signing Services to have access to the bundle
of the embedding client.

* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox): Use the code signing identifier of the
embedding client as part of the user directory suffix if available.
* Shared/mac/CodeSigning.h: Update comment and include header wtf/spi/darwin/XPCSPI.h
for the definition of xpc_connection_t. Renamed codeSigningIdentifier() to codeSigningIdentifierForCurrentProcess()
to convey that it returns the code signing identifier for the current process. Repurposed
the name codeSigningIdentifier for the variant of this function that takes a xpc_connection_t.
* Shared/mac/CodeSigning.mm:
(WebKit::codeSigningIdentifier): Added. Uses the audit token associated with the specified
XPC connection to get the code signing identifier for the embedding client.
(WebKit::codeSigningIdentifierForCurrentProcess): Renamed; formerly named codeSigningIdentifier.
Implemented in terms of the SecTask API.
(WebKit::secCodeForCurrentProcess): Deleted.
(WebKit::secCodeForProcess): Deleted.
(WebKit::secCodeSigningInformation): Deleted.
(WebKit::appleSignedOrMacAppStoreSignedOrAppleDeveloperSignedRequirement): Deleted.
(WebKit::secCodeSigningIdentifier): Deleted.
(WebKit::codeSigningIdentifierForProcess): Deleted.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService): Update code due to renaming.

Source/WTF:

Reviewed by Darin Adler.
<rdar://problem/25706517>

Forward declare SPI SecTaskCopySigningIdentifier().

* wtf/spi/cocoa/SecuritySPI.h:

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

3 years agoCleanup RenderObject::containingBlock.
zalan@apple.com [Thu, 12 May 2016 18:44:24 +0000 (18:44 +0000)]
Cleanup RenderObject::containingBlock.
https://bugs.webkit.org/show_bug.cgi?id=157628

Reviewed by Chris Dumez.

No change in functionality.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):

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

3 years agoWeb Inspector: 11% of time in TimelineRecording spent updating DataGrid that is not...
mattbaker@apple.com [Thu, 12 May 2016 17:57:32 +0000 (17:57 +0000)]
Web Inspector: 11% of time in TimelineRecording spent updating DataGrid that is not visible
https://bugs.webkit.org/show_bug.cgi?id=157612
<rdar://problem/26239051>

Reviewed by Timothy Hatcher.

During recording, a timeline view is constantly having its cached time
values updated. These updates should only trigger forced layouts if the
view supports live data.

* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.set zeroTime):
Drive-by fix, add call to _filterTimesDidChange.
(WebInspector.TimelineView.prototype.set startTime):
(WebInspector.TimelineView.prototype.set endTime):
(WebInspector.TimelineView.prototype.set currentTime):
Don't update layout directly.
(WebInspector.TimelineView.prototype._timesDidChange):
Force a layout if the view supports live data. When not recording,
a layout is always performed.
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype._filterTimesDidChange.delayedWork): Deleted.
Changed to an arrow function.
(WebInspector.TimelineView.prototype._filterTimesDidChange): Deleted.
Renamed _timesDidChange, since the method now does more than throttle
a filterDidChange call.

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

3 years agoAdjust "main content" video heuristic
eric.carlson@apple.com [Thu, 12 May 2016 17:53:38 +0000 (17:53 +0000)]
Adjust "main content" video heuristic
https://bugs.webkit.org/show_bug.cgi?id=157532
Source/WebCore:

<rdar://problem/25840861>

Reviewed by Darin Adler.

Test: media/video-main-content-autoplay.html, plus existing tests updated.

* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canControlControlsManager): Use isElementLargeEnoughForMainContent.
(WebCore::isMainContent): Ditto.
(WebCore::isElementLargeEnoughForMainContent): Check video area and aspect ratio.
(WebCore::MediaElementSession::mainContentCheckTimerFired): Call result.setToNonUserAgentShadowAncestor
  so it doesn't hit test the video controls in the shadow DOM.

LayoutTests:

Reviewed by Darin Adler.

* media/video-main-content-allow.html:
* media/video-main-content-autoplay-expected.txt: Added.
* media/video-main-content-autoplay.html: Added.
* media/video-main-content-deny-too-small.html:

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

3 years ago[curl] ASSERTION FAILED: isLocalFile() || url == m_string in fast/dom/34176.html
commit-queue@webkit.org [Thu, 12 May 2016 16:21:07 +0000 (16:21 +0000)]
[curl] ASSERTION FAILED: isLocalFile() || url == m_string in fast/dom/34176.html
https://bugs.webkit.org/show_bug.cgi?id=157059

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2016-05-12
Reviewed by Darin Adler.

Fix incorrect usage of URL constructor. CURLINFO_EFFECTIVE_URL
does not conform to URL's ParsedURLString.  Created a new utility
function to convert CURLINFO_EFFECTIVE_URL to a URL, and replaced
all codes converting CURLINFO_EFFECTIVE_URL with it.

Test: fast/dom/34176.html

* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::didReceiveHeader): Use getCurlEffectiveURL
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::getCurlEffectiveURL): Added.
(WebCore::handleLocalReceiveResponse): Use getCurlEffectiveURL
(WebCore::getProtectionSpace): Ditto.
(WebCore::headerCallback): Ditto.
(WebCore::ResourceHandleManager::downloadTimerCallback): Ditto.
* platform/network/curl/ResourceHandleManager.h: Add a declaration
of getCurlEffectiveURL.

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

3 years agoAvoid unnecessary null checks in toJS() when the implementation returns a reference...
cdumez@apple.com [Thu, 12 May 2016 16:07:13 +0000 (16:07 +0000)]
Avoid unnecessary null checks in toJS() when the implementation returns a reference or Ref<>
https://bugs.webkit.org/show_bug.cgi?id=157604

Reviewed by Darin Adler.

Avoid unnecessary null checks in toJS() when the implementation returns
a C++ reference or Ref<>. To achieve this, the following changes were
made:
1. Have toJS() overload that takes a raw pointer call the one that
   takes in a C++ reference, instead of the other way around. This way,
   we only do the null check when passing a raw pointer in.
2. Stop calling WTF::getPtr() on the value returned by the
   implementation because this causes us to call toJS() with a raw
   pointer every time.
3. Add an toJS() overload in JSDOMBinding.h that takes a Ref<T> in and
   that calls toJS() with a C++ reference internally. This way, we
   bypass the null check if the implementation returns a Ref<T>.

Further refactoring could be done but I try to keep the size of this
patch as small as possible. toJS() should probably take the ExecState
and the globalObject by reference, for e.g.

* bindings/js/JSAnimationTimelineCustom.cpp:
(WebCore::toJS):
* bindings/js/JSBlobCustom.cpp:
(WebCore::toJS):
(WebCore::constructJSBlob): Deleted.
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCanvasRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCustomElementInterface.cpp:
(WebCore::JSCustomElementInterface::attributeChanged):
* bindings/js/JSDOMBinding.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/js/JSDOMFormDataCustom.cpp:
(WebCore::constructJSDOMFormData):
* bindings/js/JSDOMMimeTypeArrayCustom.cpp:
(WebCore::JSDOMMimeTypeArray::nameGetter):
* bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
(WebCore::JSDOMNamedFlowCollection::nameGetter):
* bindings/js/JSDOMPluginArrayCustom.cpp:
(WebCore::JSDOMPluginArray::nameGetter):
* bindings/js/JSDOMPluginCustom.cpp:
(WebCore::JSDOMPlugin::nameGetter):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::toJS):
* bindings/js/JSDOMWindowBase.h:
(WebCore::toJS):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowGetOwnPropertySlotNamedItemGetter):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
(WebCore::JSDocument::createTouchList):
(WebCore::JSDocument::prepend): Deleted.
* bindings/js/JSDocumentFragmentCustom.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/js/JSEventTargetCustom.cpp:
(WebCore::toJS):
* bindings/js/JSFileReaderCustom.cpp:
(WebCore::JSFileReader::result):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::namedItems):
(WebCore::callHTMLAllCollection):
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::JSHTMLCollection::nameGetter):
(WebCore::toJS):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::nameGetter):
* bindings/js/JSHTMLElementCustom.cpp:
(WebCore::constructJSHTMLElement):
(WebCore::JSHTMLElement::pushEventHandlerScope):
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
(WebCore::namedItems):
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::nameGetter):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::nameGetter):
* bindings/js/JSIDBCursorCustom.cpp:
(WebCore::JSIDBCursor::source):
(WebCore::toJS):
* bindings/js/JSIDBDatabaseCustom.cpp:
(WebCore::JSIDBDatabase::createObjectStore):
(WebCore::JSIDBDatabase::transaction):
* bindings/js/JSIDBRequestCustom.cpp:
(WebCore::JSIDBRequest::result):
(WebCore::JSIDBRequest::source):
* bindings/js/JSImageConstructor.cpp:
(WebCore::JSImageConstructor::construct):
* bindings/js/JSImageDataCustom.cpp:
(WebCore::toJS):
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::initializeJSFunction):
* bindings/js/JSMediaSessionCustom.cpp:
(WebCore::constructJSMediaSession):
* bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
(WebCore::toJS):
* bindings/js/JSNamedNodeMapCustom.cpp:
(WebCore::JSNamedNodeMap::nameGetter):
* bindings/js/JSNodeCustom.cpp:
(WebCore::createWrapperInline):
(WebCore::toJSNewlyCreated):
(WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase):
(WebCore::getOutOfLineCachedWrapper): Deleted.
* bindings/js/JSNodeCustom.h:
(WebCore::toJS):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSNodeListCustom.h:
(WebCore::toJS):
* bindings/js/JSPerformanceEntryCustom.cpp:
(WebCore::toJS):
* bindings/js/JSPopStateEventCustom.cpp:
(WebCore::JSPopStateEvent::state):
* bindings/js/JSRTCStatsResponseCustom.cpp:
(WebCore::JSRTCStatsResponse::nameGetter):
* bindings/js/JSSVGPathSegCustom.cpp:
(WebCore::toJS):
* bindings/js/JSStyleSheetCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTrackCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTrackCustom.h:
* bindings/js/JSTrackEventCustom.cpp:
(WebCore::JSTrackEvent::track):
* bindings/js/JSUserMessageHandlersNamespaceCustom.cpp:
(WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
* bindings/js/JSWorkerCustom.cpp:
(WebCore::constructJSWorker):
* bindings/js/ReadableStreamController.cpp:
(WebCore::createReadableStream):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
(NativeToJSValue):
(GenerateConstructorDefinition):
(ceilingToPowerOf2): Deleted.
(ConstructorHasProperties): Deleted.
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestActiveDOMObject::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestCallback.cpp:
(WebCore::JSTestCallback::callbackWithArrayParam):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackRequiresThisToPass):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestCallback.h:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
(WebCore::JSTestCallbackFunction::callbackWithArrayParam):
(WebCore::JSTestCallbackFunction::callbackWithStringList):
(WebCore::JSTestCallbackFunction::callbackRequiresThisToPass):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestCallbackFunction.h:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestClassWithJSBuiltinConstructor::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestCustomNamedGetter::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::construct):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestEventConstructor::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestEventConstructor.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestEventTarget::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestEventTarget.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestException::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestException.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestGenerateIsReachable::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestGlobalObject::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestGlobalObject.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestInterface::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestInterface.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestMediaQueryListListener::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestNamedConstructor::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodeConstructor::construct):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestNondeterministic::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestNondeterministic.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::construct):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjTestNullableObjAttr):
(WebCore::jsTestObjLenientTestObjAttr):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjStrictTypeCheckingAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjPutForwardsAttribute):
(WebCore::jsTestObjPutForwardsNullableAttribute):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionGetElementById):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestObj::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestObj.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
(WebCore::constructJSTestOverloadedConstructors5):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestOverloadedConstructors::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItem):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestOverrideBuiltins::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestSerializedScriptValueInterface::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestTypedefs::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestTypedefs.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSattribute::toWrapped): Deleted.
* bindings/scripts/test/JS/JSattribute.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSreadonly::toWrapped): Deleted.
* bindings/scripts/test/JS/JSreadonly.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* html/HTMLMediaElement.cpp:
(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):

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

3 years agoWeb Inspector: Windows Perl fails to run copy-user-interface-resources.pl
commit-queue@webkit.org [Thu, 12 May 2016 15:47:45 +0000 (15:47 +0000)]
Web Inspector: Windows Perl fails to run copy-user-interface-resources.pl
https://bugs.webkit.org/show_bug.cgi?id=157620
<rdar://problem/26241548>

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2016-05-12
Reviewed by Timothy Hatcher.

There are two problems on Windows platform. 'cat' command is
missing and can not execute shebang.

* Scripts/copy-user-interface-resources.pl: Invoke Perl scripts
with explicitly specifying Perl command instead of relying on
shebang.  Add a new subroutine 'appendFile' to concatenate files
instread of 'cat' command.

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

3 years agoWeb Inspector: 3.8% of timeline recording spent in NavigationSidebarPanel _updateCont...
commit-queue@webkit.org [Thu, 12 May 2016 15:43:43 +0000 (15:43 +0000)]
Web Inspector: 3.8% of timeline recording spent in NavigationSidebarPanel _updateContentOverflowShadowVisibility for background tab
https://bugs.webkit.org/show_bug.cgi?id=157616

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

* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Don't update or schedule and update if we aren't visible.
When we are shown we will force an update.

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

3 years agoWeb Inspector: Reduce rAF churn in DefaultDashboardView on pages with lots of resources
commit-queue@webkit.org [Thu, 12 May 2016 15:42:37 +0000 (15:42 +0000)]
Web Inspector: Reduce rAF churn in DefaultDashboardView on pages with lots of resources
https://bugs.webkit.org/show_bug.cgi?id=157618

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

* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._updateDisplaySoon):
(WebInspector.DefaultDashboardView.prototype._updateDisplay):
Previously we were scheduling multiple rAFs that would all fire with
the same data, each time a resource was added. Coalesce into one.

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

3 years agoUse reference instead of pointer in FrameLoaderClient::saveViewStateToItem.
annulen@yandex.ru [Thu, 12 May 2016 14:48:03 +0000 (14:48 +0000)]
Use reference instead of pointer in FrameLoaderClient::saveViewStateToItem.
https://bugs.webkit.org/show_bug.cgi?id=157624

Reviewed by Darin Adler.

Source/WebCore:

No new tests needed.

* loader/EmptyClients.h:
* loader/FrameLoaderClient.h:
* loader/HistoryController.cpp:
(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::saveViewStateToItem):
* WebView/WebFrame.mm:
(-[WebFrame _saveViewState]):

Source/WebKit/win:

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::saveViewStateToItem):
* WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::saveViewStateToItem):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

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

3 years agoCorrectly handle prefixed and unprefixed variants in CSSStyleDeclaration
commit-queue@webkit.org [Thu, 12 May 2016 12:47:21 +0000 (12:47 +0000)]
Correctly handle prefixed and unprefixed variants in CSSStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=157569
<rdar://problem/26223115>

Patch by Antoine Quint <graouts@apple.com> on 2016-05-12
Reviewed by Dean Jackson.

Source/WebCore:

Tests: fast/css/prefixed-unprefixed-variant-style-declaration.html
       fast/css/shorthand-omitted-initial-value-overrides-shorthand.html

We essentially revert the code added with https://bugs.webkit.org/show_bug.cgi?id=110011
which duplicated properties that had a prefixed or unprefixed variant. What we do now is
to return the value of the prefixed or unprefixed variant through a CSSStyleDeclaration,
but only return the properties specified by the author when reading from the `cssText` property.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTransitionShorthand):
(WebCore::CSSParser::addPropertyWithPrefixingVariant): Deleted.
* css/CSSParser.h:
Remove all code adding duplicated properties for the prefixed or unprefixed
variant of properties that exist in both forms.

* css/CSSPropertyNames.in:
Treat transition properties as we do animation properties.

* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
Make these two methods call into the matching getXXXInternal() variant instead
of going through the property set directly so that they would correctly pick up
on the prefixed or unprefixed variant should there be one when the specified property
is not specified directly.

(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
We used to simply return the value for the given property from the property set, which
we still do but now also check if there is prefixed or unprefixed variant for the provided
property in case it was absent.

* css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::removeShorthandProperty):
Remove all code adding duplicated properties for the prefixed or unprefixed
variant of properties that exist in both forms.

(WebCore::StyleProperties::asText):
Drive-by fix to also handle the animation-play-state and -webkit-animation-play-state properties
when serializing to the shorthand.

(WebCore::MutableStyleProperties::removeProperty): Deleted.
(WebCore::MutableStyleProperties::removePrefixedOrUnprefixedProperty): Deleted.
(WebCore::MutableStyleProperties::setProperty): Deleted.
(WebCore::getIndexInShorthandVectorForPrefixingVariant): Deleted.
(WebCore::MutableStyleProperties::appendPrefixingVariantProperty): Deleted.
(WebCore::MutableStyleProperties::setPrefixingVariantProperty): Deleted.
* css/StyleProperties.h:
Remove all code adding duplicated properties for the prefixed or unprefixed
variant of properties that exist in both forms.

LayoutTests:

* animations/fill-mode-forwards-zero-duration.html:
* animations/play-state-start-paused.html:
These two tests incorrectly expected a shorthand property not to reset
longhand properties that it covers to their initial values even if left
out of the shorthand.

* animations/unprefixed-properties-expected.txt:
* animations/unprefixed-properties.html:
This test incorrectly expected that setting an unprefixed property only would
lead to reading the prefixed property through the CSSOM return the empty string,
rather than the value set on the unprefixed property.

* fast/css/prefixed-unprefixed-variant-style-declaration-expected.txt: Added.
* fast/css/prefixed-unprefixed-variant-style-declaration.html: Added.
New test checking that setting one of two of a property's unprefixed and prefixed
variants correctly allows to read the style through the CSS OM for both variants,
while only serializing the property that was set through cssText.

* fast/css/shorthand-omitted-initial-value-overrides-shorthand-expected.txt: Added.
* fast/css/shorthand-omitted-initial-value-overrides-shorthand.html: Added.
New test checking that setting a longhand property and then the shorthand for that
longhand correctly resets the initial values, even if they were omitted in the shorthand.

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

3 years agoUnreviewed, rolling out r200766.
commit-queue@webkit.org [Thu, 12 May 2016 12:26:55 +0000 (12:26 +0000)]
Unreviewed, rolling out r200766.
https://bugs.webkit.org/show_bug.cgi?id=157623

it is breaking yosemite builds (Requested by youenn on
#webkit).

Reverted changeset:

"DOMPromise should only restrict the resolution type"
https://bugs.webkit.org/show_bug.cgi?id=157307
http://trac.webkit.org/changeset/200766

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

3 years agoWeb Inspector: Improve snapshot selection in heap allocations overview graph
mattbaker@apple.com [Thu, 12 May 2016 10:34:16 +0000 (10:34 +0000)]
Web Inspector: Improve snapshot selection in heap allocations overview graph
https://bugs.webkit.org/show_bug.cgi?id=157588
<rdar://problem/26231245>

Reviewed by Joseph Pecoraro.

Heap snapshot icon selection now uses the built-in record selection
behavior provided by TimelineOverview/TimelineOverviewGraph. The marker
representing the selected heap snapshot now has a "selected" style, and
clicking an icon when the HeapAllocationsTimeline is not selected causes
the timeline to become selected.

* UserInterface/Images/HeapSnapshotSelected.svg: Added.
New art for selected snapshot icon.

* UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:
(.timeline-overview-graph.heap-allocations > img.snapshot.selected):
(.timeline-overview-graph.heap-allocations:not(.selected) > img.snapshot.selected):
Selected icon styles for selected/unselected overview graph.

* UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
(WebInspector.HeapAllocationsTimelineOverviewGraph):
Track selected image element.

(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout):
Associate image elements with their snapshot record, and reuse image
elements between layouts. Image element click handler can just set the
selectedRecord in the TimelineOverviewGraph base class.

(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.updateSelectedRecord):
(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._updateSnapshotMarkers):
Refresh snapshot icon styles when selected record changes.

* UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView.prototype.selectRecord):
Show snapshot list if no record selected.
(WebInspector.HeapAllocationsTimelineView.prototype.userSelectedRecordFromOverview): Deleted.
No longer needed.

* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateFrameMarker):
No need to call dispatchSelectedRecordChangedEvent manually anymore,
method has been removed from base class.

* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.dispatchSelectedRecordChangedEvent): Deleted.
No longer needed. Event dispatched automatically by the rAF callback.

* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._recordSelected):
Allow switching to another timeline, if the selected record does not
belong to the current timeline.

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

3 years agoDOMPromise should only restrict the resolution type
youenn.fablet@crf.canon.fr [Thu, 12 May 2016 09:36:00 +0000 (09:36 +0000)]
DOMPromise should only restrict the resolution type
https://bugs.webkit.org/show_bug.cgi?id=157307

Reviewed by Darin Adler.

Removing from DOMPromise the rejection template parameter.
Supported rejection types are integers (Exception codes) and DOM objects (DOMError typically).

Updated toJS and DeferredWrapper to accept Ref<>&& and RefPtr<>&&.
Previously Ref<>&& were not accepted and only "const RefPtr<>&" was accepted.
This in turn created an unecessary churn count when calling toJS.

Changes also allow in most cases to remove the need for explictly declaring the
rejection/resolution type.

Minor refactoring of FontFaceSet promise handling to use DOMPromise in lieu of DeferredWrapper.

Covered by existing tests.
Changes should not be visible from user scripts.

* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeText):
(WebCore::blobFromArrayBuffer):
(WebCore::FetchBody::loadingFailed):
* Modules/fetch/FetchBody.h:
(WebCore::FetchBody::formData):
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::BodyLoader::didReceiveResponse):
* Modules/fetch/FetchResponse.h:
* Modules/mediastream/MediaDevices.h:
* Modules/mediastream/PeerConnectionBackend.h:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::didCreateStream):
* Modules/streams/ReadableStreamSource.h:
* Modules/webaudio/AudioContext.h:
* bindings/js/JSDOMBinding.h:
(WebCore::toJS):
(WebCore::jsPair):
* bindings/js/JSDOMPromise.cpp:
(WebCore::fulfillPromiseWithJSON):
* bindings/js/JSDOMPromise.h:
(WebCore::TypeInspector::decltype):
(WebCore::TypeInspector::testIsVector):
(WebCore::TypeInspector::testIsRefOrRefPtr):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):
(WebCore::DeferredWrapper::resolveWithValue):
(WebCore::DeferredWrapper::rejectWithValue):
(WebCore::callPromiseFunction):
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::unwrapKey):
* css/FontFace.h:
* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::PendingPromise::PendingPromise):
(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::registerReady):
* css/FontFaceSet.h:
* html/HTMLMediaElement.h:

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

3 years ago[css-grid] Incorrect parsing when using just 'span" as grid-line value
rego@igalia.com [Thu, 12 May 2016 09:12:13 +0000 (09:12 +0000)]
[css-grid] Incorrect parsing when using just 'span" as grid-line value
https://bugs.webkit.org/show_bug.cgi?id=157615

Reviewed by Sergio Villar Senin.

Source/WebCore:

The spec is pretty clear about this:
https://drafts.csswg.org/css-grid/#typedef-grid-row-start-grid-line

The possible options when using "span" to reference a grid line are:
  [ span && [ <integer> || <custom-ident> ] ]

Thus, "span" keyword alone produces an invalid declaration.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridPosition):

LayoutTests:

Add new test case in grid-item-column-row-get-set.html.

Updated other tests that were using "span" alone, with 2 approaches:
- In some of them changing "span" by "span 1" making it valid.
- In other changing the expected result to "auto", as it's invalid now.

* fast/css-grid-layout/grid-item-area-get-set.html:
* fast/css-grid-layout/grid-item-bad-named-area-auto-placement.html:
* fast/css-grid-layout/grid-item-column-row-get-set-expected.txt:
* fast/css-grid-layout/grid-item-column-row-get-set.html:
* fast/css-grid-layout/grid-item-end-after-get-set-expected.txt:
* fast/css-grid-layout/grid-item-end-after-get-set.html:
* fast/css-grid-layout/grid-item-negative-position-resolution.html:
* fast/css-grid-layout/grid-item-start-before-get-set-expected.txt:
* fast/css-grid-layout/grid-item-start-before-get-set.html:

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

3 years agoRemove ENABLE(ES6_ARROWFUNCTION_SYNTAX) guards
ossy@webkit.org [Thu, 12 May 2016 09:03:19 +0000 (09:03 +0000)]
Remove ENABLE(ES6_ARROWFUNCTION_SYNTAX) guards
https://bugs.webkit.org/show_bug.cgi?id=157564

Reviewed by Darin Adler.

.:

* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:
* parser/Parser.cpp:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

* wtf/FeatureDefines.h:

Tools:

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

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