WebKit.git
4 years agoAdd horizontal between categories of tests
rniwa@webkit.org [Sun, 8 May 2016 04:57:09 +0000 (04:57 +0000)]
Add horizontal between categories of tests
https://bugs.webkit.org/show_bug.cgi?id=157386

Reviewed by Darin Adler.

Wrap tests in each category by tbody and add a horizontal bar between each category.

* public/v3/pages/summary-page.js:
(SummaryPage.prototype._constructTable):
(SummaryPage.cssTemplate):

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

4 years agoReduce special handling of XPathNSResolver type in the bindings
cdumez@apple.com [Sun, 8 May 2016 04:39:13 +0000 (04:39 +0000)]
Reduce special handling of XPathNSResolver type in the bindings
https://bugs.webkit.org/show_bug.cgi?id=157454

Reviewed by Darin Adler.

Reduce special handling of XPathNSResolver type in the bindings.

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

* bindings/js/JSDOMStringListCustom.cpp:
(WebCore::JSDOMStringList::toWrapped):
Take the ExecState by reference instead of pointer.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::toWrapped):
Update to take an ExecState& parameter. The bindings now pass
an ExecState to all custom toWrapped() methods for consistency
and flexibility.

* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
Pass an ExecState now that those toWrapped() methods expect
it.

* bindings/js/JSEventTargetCustom.cpp:
(WebCore::JSEventTarget::toWrapped):
Update to take an ExecState& parameter.

* bindings/js/JSIDBDatabaseCustom.cpp:
(WebCore::JSIDBDatabase::transaction):
Pass ExecState by reference instead of pointer.

* bindings/js/JSMessageEventCustom.cpp:
(WebCore::handleInitMessageEvent):
Pass ExecState to JSDOMWindow::toWrapped().

* bindings/js/JSXPathNSResolverCustom.cpp: Added.
(WebCore::JSXPathNSResolver::toWrapped):
Provide a custom implementation of JSXPathNSResolver::toWrapped()
instead of having the custom code in the bindings generator.

* bindings/scripts/CodeGeneratorJS.pm:
(AddIncludesForType):
Drop special includes for XPathNSResolver as they are no longer needed.

(GenerateHeader):
Drop special casing of certain types for generating the toWrapped()
declaration by:
1. Relying on GetNativeType() for the return value as certain types
   return a RefPtr instead of a raw pointer.
2. Adding an extra ExecState parameter when a custom implementation of
   toWrapped() is provided, given that some of them need it.

(GenerateParametersCheck):
Drop custom code for XPathNSResolver and use the normal code path for
this type now. The custom code now resides in the custom implementation
of JSXPathNSResolver::toWrapped(), in custom bindings.

(JSValueToNative):
- Drop NodeFilter from the nativeType hash map as it was updated to
  be a callback interface a while back.
- Add XPathNSResolver to nativeType hash map so that we now to use
  a RefPtr<> instead of a raw pointer in the bindings. We should
  probably add an IDL extended attribute for this at some point.
- Drop special casing for DOMStringList which was outdated since there
  is no toDOMStringList() function. DOMStringList has a custom
  toWrapped() function instead nowadays so we now call this one
  instead. We apparently do not have any DOMStringList parameters
  outside our bindings tests at the moment, which is why no one
  noticed.
- Pass an ExecState to toWrapped() if the interface has the
  JSCustomToNativeObject IDL extended attribute.

* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
* bindings/scripts/test/TestObj.idl:
Add bindings test coverage for having an operation with an
XPathNSResolver parameter.

* dom/Document.idl:
* xml/XPathEvaluator.idl:
Drop some unnecessary default parameter values.

* xml/XPathNSResolver.idl:
Add JSCustomToNativeObject IDL extended attribute so that we can
provide our own custom implementation of JSXPathNSResolver::toWrapped(),
instead of having the custom code in the bindings generator.

* dom/Document.cpp:
(WebCore::Document::createExpression):
(WebCore::Document::evaluate):
* dom/Document.h:
* inspector/InspectorNodeFinder.cpp:
* xml/XPathEvaluator.cpp:
(WebCore::XPathEvaluator::createExpression):
(WebCore::XPathEvaluator::evaluate):
* xml/XPathEvaluator.h:
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::createExpression):
* xml/XPathExpression.h:
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::Parser):
(WebCore::XPath::Parser::parseStatement):
* xml/XPathParser.h:
Take XPathNSResolver parameter as a Ref<XPathNSResolver>&& as this is
what the generated bindings now provide us, given that this sometimes
have to create a wrapper around a JSObject.

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

4 years agoFix crash introduced by the last patch.
darin@apple.com [Sat, 7 May 2016 22:29:01 +0000 (22:29 +0000)]
Fix crash introduced by the last patch.

Fix suggested by Chris Dumez.

* css/FontFace.cpp:
(WebCore::FontFace::FontFace): Roll out incorrect change. Things were getting
initialized in the wrong order in a change I had made to the FontFace constructor
that takes a CSSFontSelector.

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

4 years agoUnreviewed, rebaseline bindings tests after r200547.
cdumez@apple.com [Sat, 7 May 2016 21:36:39 +0000 (21:36 +0000)]
Unreviewed, rebaseline bindings tests after r200547.

* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convert<TestObj::FontFaceDescriptors>):

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

4 years agoNext step on dictionary bindings, along with other bindings refinements
darin@apple.com [Sat, 7 May 2016 21:14:20 +0000 (21:14 +0000)]
Next step on dictionary bindings, along with other bindings refinements
https://bugs.webkit.org/show_bug.cgi?id=157451

Reviewed by Chris Dumez.

Source/WebCore:

Converted one dictionary, the one passed to the constructor in FontFace.

* WebCore.xcodeproj/project.pbxproj: Updated for name change of JSDOMBuild.h to
JSDOMConvert.h and also let Xcode update a file type.

* bindings/js/JSDOMBinding.cpp:
(WebCore::propertyValue): Added.
* bindings/js/JSDOMBinding.h: Use pragma once. Remove unnecessary forward declaration.
Move all declarations to the top of the file, separating them from definitions. This
is a small step toward better overview of what's in this file and paves the way for
future simplifications and improvements we can make after we observe patterns.
Also removed a couple unused functions.

* bindings/js/JSDOMConvert.h: Renamed from JSDOMBuild.h.
Renamed function templates from build to convert. Added convertOptional.

* bindings/js/ReadableStreamController.cpp:
(WebCore::callFunction): Use auto and remove some unneeded namespacing.
(WebCore::ReadableStreamController::invoke): Ditto. Also remove use of helper function
getPropertyFromObject, since this was the only call site and it was not very helpful.
(WebCore::ReadableStreamController::isControlledReadableStreamLocked): Ditto.
(WebCore::createReadableStream): Ditto.
(WebCore::getReadableStreamReader): Ditto.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateEnumerationImplementationContent): Updated for name change from build to
convert and JSDOMBuild.h to JSDOMConvert.h.
(GenerateDictionaryImplementationContent): Ditto. Also added code to handle optional
and added explicit exception checking, using local variables. Not clear longer term
if the local variable approach is OK since this will unnecessarily change types like
const String& to String.
(GenerateParametersCheck): Removed local variable $optional and use $parameter->isOptional
directly consistently. This is slightly clearer because the old code used a mix of the
two, and also is a better pattern for when we refactor this into smaller functions.
Note that this function name is not good any more--this is a lot more then parameter checks.
(GetNativeType): Return appropriate name for dictionary types.
(JSValueToNative): Updated for name change from build to convert and JSDOMBuild.h to
JSDOMConvert.h.

* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
Regenerated results.

* bindings/scripts/test/TestObj.idl: Added another dictionary test case, just a copy
of the current state of the one in FontFace.idl.

* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::setUnicodeRange): Update for simplified UnicodeRange struct.
(WebCore::CSSFontFace::setFeatureSettings): Fix to correctly handle being called
with "normal". Also fix so it doesn't call fontPropertyChanged if nothing changed.
Also got rid of return value, which had no real value: it was returning false for
some bad inputs, but others would just lead to assertions, and the real reason this
was OK is that this function is only passed known-valid values.

* css/CSSFontFace.h: Used prama once. Tweaked formatting. Removed return value from
the setFeatureSettings function. Changed UnicodeRange to be struct with public data
members instead a struct with a constructor and getter functions.

* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule): Updated since setFeatureSettings no
longer has a boolean return value.

* css/CSSSegmentedFontFace.cpp:
(WebCore::appendFontWithInvalidUnicodeRangeIfLoading): Updated for simplified
UnicodeRange struct.

* css/FontFace.cpp:
(WebCore::valueFromDictionary): Deleted.
(WebCore::FontFace::create): Updated to take the descriptors as a struct instead of
a WebCore::Dictionary. Also made that argument optional as specified in the current
specification draft.
(WebCore::FontFace::setFeatureSettings): Updated since setFeatureSettings no longer
has a boolean return value.
(WebCore::FontFace::unicodeRange): Updated for simplified UnicodeRange struct.

* css/FontFace.h: Used pragma once. Removed unneeded includes and forward declarations.
Derived privately from CSSFontFace::Client. Added a FontFace::Descriptors struct and
used it as an argument to the create function as described above.

* css/FontFace.idl: Added FontFaceDescriptors and changed the argument to the
constructor to be an optional FontFaceDescriptors instead of a Dictionary.

Tools:

* Scripts/do-webcore-rename: Use this to rename JSDOMBuild.h to JSDOMConvert.h.
Also skip test expectations in a directory that this was modifying unnecessarily.

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

4 years agoRework FontFace promise attribute handling
youenn.fablet@crf.canon.fr [Sat, 7 May 2016 20:04:27 +0000 (20:04 +0000)]
Rework FontFace promise attribute handling
https://bugs.webkit.org/show_bug.cgi?id=157310

Reviewed by Myles C. Maxfield.

Making promise attributes cached attributes, so that they are created only once.
They are created in the custom binding code and passed to DOM class as needed.

Removed usage of ExecState& from DOM iterators.

No change should be visible from user scripts.

* Modules/fetch/FetchHeaders.cpp:
(WebCore::FetchHeaders::Iterator::next): Removing ExecState parameter.
* Modules/fetch/FetchHeaders.h:
* bindings/js/JSDOMIterator.h:
(WebCore::keyValueIteratorForEach):
(WebCore::JSDOMIterator<JSWrapper>::next): Ditto.
* bindings/js/JSDOMPromise.cpp:
(WebCore::DeferredWrapper::promise): Removed deferred() and added access to promise directly.
* bindings/js/JSDOMPromise.h:
* bindings/js/JSFontFaceCustom.cpp:
(WebCore::JSFontFace::loaded): Using cached attribute to call FontFace::loaded only once.
* bindings/js/JSFontFaceSetCustom.cpp:
(WebCore::JSFontFaceSet::ready): Using cached attribute to call FontFaceSet::ready only once.
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::wrapper): Removing ExecState parameter.
* css/CSSFontFace.h:
* css/FontFace.cpp:
(WebCore::FontFace::create): Ditto.
(WebCore::FontFace::FontFace): Ditto.
(WebCore::FontFace::fontStateChanged): Updating promise handling.
(WebCore::FontFace::registerLoaded): Resolving/rejecting promise if backing CSSFontFace loading is ended.
(WebCore::FontFace::load): Calling backing load.
* css/FontFace.h:
* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::Iterator::next): Removing ExecState parameter.
(WebCore::FontFaceSet::load): Removing ExecState and ExceptionCode parameter.
(WebCore::FontFaceSet::registerReady): Resolving promise if ready otherwise storing it for resolving it later.
(WebCore::FontFaceSet::completedLoading): Resolving promise if any is stored.
(WebCore::FontFaceSet::create): Deleted.
* css/FontFaceSet.h:
* css/FontFaceSet.idl:

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

4 years agoFix an incorrect usage of OS(DARWIN) with PLATFORM(COCOA)
commit-queue@webkit.org [Sat, 7 May 2016 20:02:44 +0000 (20:02 +0000)]
Fix an incorrect usage of OS(DARWIN) with PLATFORM(COCOA)
https://bugs.webkit.org/show_bug.cgi?id=157167

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-05-07
Reviewed by Myles C. Maxfield.

* platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::hash):

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

4 years agoUpdate Animometer design
timothy@apple.com [Sat, 7 May 2016 16:51:58 +0000 (16:51 +0000)]
Update Animometer design
https://bugs.webkit.org/show_bug.cgi?id=157449

Reviewed by Darin Adler.

* Animometer/developer.html: Stop including runner/animometer.css.
* Animometer/index.html: Udpated elements to fit new styles.

* Animometer/resources/debug-runner/animometer.css:
Copy the old runner/animometer.css to here so the debug runner is unaffected.

* Animometer/resources/runner/animometer.css:
New styles for the design. Drop flex box for broad browser support.

* Animometer/resources/runner/animometer.js:
(ResultsTable.clear): Use textContent.
(window.sectionsManager.showSection): Add class to the body.
(window.sectionsManager.setSectionScore): Use textContent, not innerHTML.

* Animometer/resources/runner/crystal.svg: Added.
* Animometer/resources/runner/lines.svg: Added.
* Animometer/resources/runner/logo.svg: Added.

* Animometer/resources/runner/tests.js: Shorten test name and title case them.

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

4 years agoAdd JSC options bytecodeRangeToJITCompile and jitWhitelist.
mark.lam@apple.com [Sat, 7 May 2016 16:20:16 +0000 (16:20 +0000)]
Add JSC options bytecodeRangeToJITCompile and jitWhitelist.
https://bugs.webkit.org/show_bug.cgi?id=157428

Reviewed by Michael Saboff.

1. Added Options::bytecodeRangeToJITCompile and Options::jitWhitelist options.

2. Moved DFGFunctionWhitelist* to FunctionWhitelist* and made it generic so that
   it can be used for more than one whitelist instance.  In this case, we now have
   two: the dfgWhitelist and the jitWhitelist.

3. Added "can compile" checks in LLInt::shouldJIT() to check
   Options::bytecodeRangeToJITCompile and Options::jitWhitelist.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* dfg/DFGDriver.cpp:
(JSC::DFG::getNumCompilations):
(JSC::DFG::ensureGlobalDFGWhitelist):
(JSC::DFG::compileImpl):
* dfg/DFGFunctionWhitelist.cpp: Removed.
* dfg/DFGFunctionWhitelist.h: Removed.

* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::ensureGlobalJITWhitelist):
(JSC::LLInt::shouldJIT):

* runtime/Options.h:

* tools/FunctionWhitelist.cpp: Copied from Source/JavaScriptCore/dfg/DFGFunctionWhitelist.cpp.
(JSC::FunctionWhitelist::FunctionWhitelist):
(JSC::FunctionWhitelist::contains):
(JSC::DFG::FunctionWhitelist::ensureGlobalWhitelist): Deleted.
(JSC::DFG::FunctionWhitelist::FunctionWhitelist): Deleted.
(JSC::DFG::FunctionWhitelist::parseFunctionNamesInFile): Deleted.
(JSC::DFG::FunctionWhitelist::contains): Deleted.
* tools/FunctionWhitelist.h: Copied from Source/JavaScriptCore/dfg/DFGFunctionWhitelist.h.

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

4 years agoREGRESSION(r196222): [AX][GTK] accessibility/gtk/caret-offsets.html failing
jdiggs@igalia.com [Sat, 7 May 2016 13:03:58 +0000 (13:03 +0000)]
REGRESSION(r196222): [AX][GTK] accessibility/gtk/caret-offsets.html failing
https://bugs.webkit.org/show_bug.cgi?id=153956

Reviewed by Chris Fleizach.

Source/WebCore:

The reason the test began failing is that it was checking the new caret offset
synchronously. For most of the test cases, this was not a problem. But when the
caret was moved out of a focused link, the focus change (and associated repainting)
delayed the caret-moved event long enough to cause the associated test case to fail.
The test now uses shouldBecomeEqualToString() instead of shouldBeEqualToString().

The test also had a supposedly-correct expectation which was wrong: When moving the
caret to a valid accessible offset, the caret-moved event should be for that offset.
This was not the case for the list item test case because emitTextSelectionChange()
was not adjusting the offset for the RenderListMarker, the text of which is exposed
as part of the ATK_ROLE_LIST_ITEM object. This bug was also fixed and the test case
updated accordingly.

No new tests are needed. The previously-failing test is now passing.

* editing/atk/FrameSelectionAtk.cpp:
(WebCore::emitTextSelectionChange):

LayoutTests:

Change the test to run asynchronously and update the expectations.

* accessibility/gtk/caret-offsets-expected.txt: Updated.
* accessibility/gtk/caret-offsets.html: Updated.
* platform/gtk/TestExpectations: Unskipped the previously-failing test.

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

4 years ago[JSC][32bit] stress/tagged-templates-template-object.js fails in debug
commit-queue@webkit.org [Sat, 7 May 2016 08:19:49 +0000 (08:19 +0000)]
[JSC][32bit] stress/tagged-templates-template-object.js fails in debug
https://bugs.webkit.org/show_bug.cgi?id=157436

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

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
The node OverridesHasInstance had a speculation after a jump.

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

4 years agoRename HitTestRequest DisallowShadowContent to DisallowUserAgentShadowContent
joepeck@webkit.org [Sat, 7 May 2016 06:03:50 +0000 (06:03 +0000)]
Rename HitTestRequest DisallowShadowContent to DisallowUserAgentShadowContent
https://bugs.webkit.org/show_bug.cgi?id=157447

Reviewed by Ryosuke Niwa.

Source/WebCore:

HitTesting is intended to reach nodes inside shadow content. This property
on the HitTestRequest is intended to avoid hit testing in UserAgent shadow
content. Rename the enum value, and cascading methods for clarity.

* html/MediaElementSession.cpp:
(WebCore::isMainContent):
* page/EventHandler.cpp:
(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::hitTestResultAtPoint):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleMouseForceEvent):
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::isInsideScrollbar):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::hoverTimerFired):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
* page/EventHandler.h:
* page/FocusController.cpp:
(WebCore::updateFocusCandidateIfNeeded):
* rendering/HitTestRequest.h:
(WebCore::HitTestRequest::HitTestRequest):
(WebCore::HitTestRequest::disallowsUserAgentShadowContent):
(WebCore::HitTestRequest::disallowsShadowContent): Deleted.
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::setToNonUserAgentShadowAncestor):
(WebCore::HitTestResult::addNodeToRectBasedTestResult):
(WebCore::HitTestResult::setToNonShadowAncestor): Deleted.
* rendering/HitTestResult.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::isReplacementObscured):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* testing/Internals.cpp:
(WebCore::Internals::nodesFromRect):

Source/WebKit/mac:

* WebView/WebFrame.mm:
(-[WebFrame elementAtPoint:]):
* WebView/WebHTMLView.mm:
(-[WebHTMLView elementAtPoint:allowShadowContent:]):

Source/WebKit/win:

* WebView.cpp:
(WebView::gestureNotify):

Source/WebKit2:

* WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:
(WebKit::WebPage::findZoomableAreaForPoint):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::hitTest):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::rangeForBlockAtPoint):
(WebKit::WebPage::getPositionInformation):

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

4 years agoWeb Inspector: Inspect Element and Element Selection searching should work with Shado...
joepeck@webkit.org [Sat, 7 May 2016 05:52:01 +0000 (05:52 +0000)]
Web Inspector: Inspect Element and Element Selection searching should work with Shadow DOM Nodes
https://bugs.webkit.org/show_bug.cgi?id=157446
<rdar://problem/24688447>

Reviewed by Ryosuke Niwa.

Source/WebCore:

* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::innerParentNode):
The Inspector backend was informing the frontend that all ShadowRoots
were floating and had no parent. Get the host element for ShadowRoots.

* rendering/HitTestResult.cpp:
(WebCore::moveOutOfUserAgentShadowTree):
(WebCore::HitTestResult::setToNonShadowAncestor):
EventHandler::mouseMoved is calling setToNonShadowAncestor before
notifying Page::chrome / Inspector about the moused over element.
This should be the deepest non-user-agent-shadow node.

Source/WebInspectorUI:

* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode):
Shadow DOM nodes did not have a parent, and so when attempting
to create DOM Tree elements up the chain, we were failing at
shadow boundaries. Create the parent relationship, the parent
already treats it as a child.

* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._revealAndSelectNode):
Whenever we try to reveal and select an element in a shadow tree
but the setting to show shadow DOM is disabled, walk up until
we are out of the shadow tree.

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

4 years agoWeb Inspector: Misc CommandLineAPI cleanup
joepeck@webkit.org [Sat, 7 May 2016 05:44:40 +0000 (05:44 +0000)]
Web Inspector: Misc CommandLineAPI cleanup
https://bugs.webkit.org/show_bug.cgi?id=157450

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

* inspector/InjectedScriptSource.js:
(BasicCommandLineAPI):
Fix mistake in r200533, and modernize related code.

Source/WebCore:

* inspector/CommandLineAPIModuleSource.js:
(bind):

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

4 years ago[Win] Skip failing INTL test.
peavo@outlook.com [Sat, 7 May 2016 04:25:49 +0000 (04:25 +0000)]
[Win] Skip failing INTL test.
https://bugs.webkit.org/show_bug.cgi?id=157418

Reviewed by Alex Christensen.

Temporarily skip string-localeCompare.js, because AppleWin currently does not have INTL enabled.

* js/script-tests/string-localeCompare.js:
* platform/win/TestExpectations:

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

4 years agoMouseEvent's offsetX and offsetY should be based on relative target
rniwa@webkit.org [Sat, 7 May 2016 03:51:46 +0000 (03:51 +0000)]
MouseEvent's offsetX and offsetY should be based on relative target
https://bugs.webkit.org/show_bug.cgi?id=157444
<rdar://problem/24396408>

Reviewed by Darin Adler.

Add a W3C style testharness.js test for adjusting offsetX and offsetY to the adjusted target
since our existing behavior matches the spec as well as Chrome's behavior:
http://w3c.github.io/webcomponents/spec/shadow/#event-dispatch

* fast/shadow-dom/MouseEvent-prototype-offsetX-offsetY-expected.txt: Added.
* fast/shadow-dom/MouseEvent-prototype-offsetX-offsetY.html: Added.

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

4 years agoWeb Inspector: Improve console.count()
commit-queue@webkit.org [Sat, 7 May 2016 03:08:18 +0000 (03:08 +0000)]
Web Inspector: Improve console.count()
https://bugs.webkit.org/show_bug.cgi?id=157439
<rdar://problem/26152654>

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

Source/JavaScriptCore:

  - make console.count() increment an unnamed global counter.
  - make console.count(label) increment a counter with that label name.

* inspector/agents/InspectorConsoleAgent.cpp:
(Inspector::InspectorConsoleAgent::count):

LayoutTests:

* inspector/console/console-api-expected.txt:
* inspector/console/console-count-expected.txt: Added.
* inspector/console/console-count.html: Added.
* inspector/console/console-time.html:

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

4 years agoEnable IOS_TEXT_AUTOSIZING on Mac and make it testable
simon.fraser@apple.com [Sat, 7 May 2016 00:05:58 +0000 (00:05 +0000)]
Enable IOS_TEXT_AUTOSIZING on Mac and make it testable
https://bugs.webkit.org/show_bug.cgi?id=157432
rdar://problem/16406720

Reviewed by Dean Jackson.

Source/JavaScriptCore:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

Test: fast/text-autosizing/ios/autosize-width.html

* Configurations/FeatureDefines.xcconfig:
* dom/Document.cpp:
(WebCore::Document::addAutoSizingNode):
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* page/Settings.cpp:
(WebCore::Settings::Settings): Deleted.
(WebCore::Settings::setTextAutosizingEnabled): Deleted.
(WebCore::Settings::setTextAutosizingWindowSizeOverride): Deleted.
* page/Settings.h:
(WebCore::Settings::textAutosizingEnabled): Deleted.
(WebCore::Settings::textAutosizingWindowSizeOverride): Deleted.
* page/Settings.in:
* page/cocoa/SettingsCocoa.mm:
(WebCore::Settings::defaultMinimumZoomFontSize):
(WebCore::Settings::defaultTextAutosizingEnabled):
* platform/Logging.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustComputedFontSizes):
* rendering/RenderElement.cpp:
(WebCore::includeNonFixedHeight):
(WebCore::RenderElement::adjustComputedFontSizesOnBlocks):
(WebCore::RenderElement::resetTextAutosizing):
* rendering/RenderElement.h:
* rendering/RenderObject.cpp:
(WebCore::includeNonFixedHeight): Deleted.
(WebCore::RenderObject::adjustComputedFontSizesOnBlocks): Deleted.
(WebCore::RenderObject::resetTextAutosizing): Deleted.
* rendering/RenderObject.h:
* rendering/TextAutoSizing.cpp:
(WebCore::TextAutoSizingValue::adjustNodeSizes):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setTextAutosizingEnabled):
(WebCore::InternalSettings::setTextAutosizingWindowSizeOverride):
* testing/InternalSettings.h:

Source/WebKit/ios:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

* Misc/WebUIKitSupport.mm:
(WebKitGetMinimumZoomFontSize):

Source/WebKit/mac:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

* Configurations/FeatureDefines.xcconfig:
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences _setTextAutosizingEnabled:]):
(-[WebPreferences _textAutosizingEnabled]):
* WebView/WebPreferencesPrivate.h:

Source/WebKit2:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

* Configurations/FeatureDefines.xcconfig:
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _textAutosizingEnabled]):
(-[WKPreferences _setTextAutosizingEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
* DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setTextAutosizingEnabled):
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetPreferencesToConsistentValues):

LayoutTests:

Enable fast/text-autosizing/ios/ on Mac and iOS

* fast/text-autosizing/ios/autosize-width-expected.html: Added.
* fast/text-autosizing/ios/autosize-width.html: Added.
* platform/ios-simulator/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:

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

4 years agoWeb Inspector: Console: Variables defined with let/const aren't accessible outside...
commit-queue@webkit.org [Fri, 6 May 2016 23:32:28 +0000 (23:32 +0000)]
Web Inspector: Console: Variables defined with let/const aren't accessible outside of console's scope
https://bugs.webkit.org/show_bug.cgi?id=150752
<rdar://problem/23343385>

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

Source/JavaScriptCore:

This approach allows Web Inspector to hang a "Scope Extension", a
WithObjectScope, off the GlobalObject. When resolving identifiers
in fails to resolve anything in the normal scope chain, consult
the scope extension.

This allows us to eliminate the `with (commandLineAPI) { ... }`
block in global console evaluations, and instead makes it a full
program evaluation, with the commandLineAPI available and safely
shadowed by actual variables as expected.

* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._evaluateOn):
Use the new evaluateWithScopeExtension and provide the CommandLineAPI
object as the scope extension object.

(BasicCommandLineAPI):
(BasicCommandLineAPI.inScopeVariables): Deleted.
Simplify now that we don't need to check for variable shadowing ourselves.

* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
* inspector/JSInjectedScriptHost.h:
* inspector/JSInjectedScriptHostPrototype.cpp:
(Inspector::JSInjectedScriptHostPrototype::finishCreation):
(Inspector::jsInjectedScriptHostPrototypeFunctionEvaluateWithScopeExtension):
Provide a new InjectedScriptHost method to evaluate a program
with a scope extension.

* runtime/Completion.cpp:
(JSC::evaluateWithScopeExtension):
* runtime/Completion.h:
General JSC::evaluate function to evaluate a program with a scope extension.

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::setGlobalScopeExtension):
(JSC::JSGlobalObject::clearGlobalScopeExtension):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::globalScopeExtension):
Hang a scope extension off the global object.

* runtime/JSScope.cpp:
(JSC::JSScope::resolve):
Consult the scope extension when resolve fails to find anything normally.

Source/WebCore:

Test: inspector/runtime/evaluate-CommandLineAPI.html

* inspector/CommandLineAPIModuleSource.js:
(bind):
(this.member.toString):
(CommandLineAPI):
(CommandLineAPIImpl.prototype):
(slice): Deleted.
(bound): Deleted.
(bound.toString): Deleted.
(inScopeVariables): Deleted.
(customToStringMethod): Deleted.
Simplify now that we don't need to do our own variable shadow checking.

LayoutTests:

* inspector/runtime/evaluate-CommandLineAPI-expected.txt: Added.
* inspector/runtime/evaluate-CommandLineAPI.html: Added.
New test covering the different cases of global evaluation with the
CommandLineAPI as a scope extension.

* http/tests/inspector/console/cross-domain-inspected-node-access-expected.txt:
* inspector/console/command-line-api-expected.txt:
* inspector/debugger/js-stacktrace-expected.txt:
* inspector/debugger/js-stacktrace.html:
* inspector/model/stack-trace-expected.txt:
* platform/mac/inspector/model/remote-object-expected.txt:
Update expectations now that global evaluations are treated as
program's [global code] and not evals [eval code]. Also some
line number changes.

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

4 years agoUnreviewed IDB test gardening.
beidson@apple.com [Fri, 6 May 2016 23:21:16 +0000 (23:21 +0000)]
Unreviewed IDB test gardening.

* TestExpectations:
* storage/indexeddb/pending-activity-workers-expected.txt: Updated expectations.

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

4 years agoAdd JSC options reportBaselineCompileTimes and reportDFGCompileTimes.
mark.lam@apple.com [Fri, 6 May 2016 22:57:32 +0000 (22:57 +0000)]
Add JSC options reportBaselineCompileTimes and reportDFGCompileTimes.
https://bugs.webkit.org/show_bug.cgi?id=157427

Reviewed by Filip Pizlo and Keith Miller.

The compile times reporting options are now:
    reportCompileTimes         -> report compile times in all tiers.
    reportBaselineCompileTimes -> report compile times in baseline JIT.
    reportDFGCompileTimes      -> report compile times in DFG and FTL.
    reportFTLCompileTimes      -> report compile times in FTL.

Also updated reportTotalCompileTimes() to collect stats that include the baseline
JIT.  compileTimeStats() is now moved into JIT.cpp (from DFGPlan.cpp).

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::reportCompileTimes):
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::cancel):
(JSC::DFG::Plan::compileTimeStats): Deleted.
* dfg/DFGPlan.h:
(JSC::DFG::Plan::compileTimeStats): Deleted.
* jit/JIT.cpp:
(JSC::ctiPatchCallByReturnAddress):
(JSC::JIT::privateCompile):
(JSC::JIT::stackPointerOffsetFor):
(JSC::JIT::reportCompileTimes):
(JSC::JIT::computeCompileTimes):
(JSC::JIT::compileTimeStats):
* jit/JIT.h:
(JSC::JIT::shouldEmitProfiling):
* jsc.cpp:
(runJSC):
* runtime/Options.h:

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

4 years ago<attachment> element should understand UTIs
timothy_horton@apple.com [Fri, 6 May 2016 22:47:16 +0000 (22:47 +0000)]
<attachment> element should understand UTIs
https://bugs.webkit.org/show_bug.cgi?id=157425
<rdar://problem/25585401>

Reviewed by Anders Carlsson.

UTIs are often much more specific than MIME types, so we should allow
clients of <attachment> to use them to get more accurate icons.

Test: fast/attachment/attachment-uti.html

* platform/graphics/Icon.h:
* platform/graphics/mac/IconMac.mm:
(WebCore::Icon::createIconForMIMEType): Deleted.
Remove the now-unused createIconForMIMEType.

* platform/network/mac/UTIUtilities.h:
* platform/network/mac/UTIUtilities.mm:
(WebCore::isDeclaredUTI):
Expose UTTypeIsDeclared as isDeclaredUTI.

* rendering/RenderThemeIOS.mm:
(WebCore::iconForAttachment):
* rendering/RenderThemeMac.mm:
(WebCore::iconForAttachment):
If the attachment's type is a UTI, request the icon for it directly.
If it's a MIME type, convert to a UTI before requesting.

* fast/attachment/attachment-uti-expected.html: Added.
* fast/attachment/attachment-uti.html: Added.
Add a test that UTIs render the same as their corresponding MIME types.

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

4 years agoWeb Inspector: Unexpected white border at the bottom of Debugger filter bar
nvasilyev@apple.com [Fri, 6 May 2016 22:39:07 +0000 (22:39 +0000)]
Web Inspector: Unexpected white border at the bottom of Debugger filter bar
https://bugs.webkit.org/show_bug.cgi?id=157430
<rdar://problem/26146602>

Reviewed by Timothy Hatcher.

Remove the semi-transparent white borders.

* UserInterface/Views/NavigationBar.css:
(.navigation-bar): Deleted.
* UserInterface/Views/SearchSidebarPanel.css:
(.sidebar > .panel.navigation.search > .search-bar): Deleted.

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

4 years agoClean up converting from JSValue to float / double in the bindings generator
cdumez@apple.com [Fri, 6 May 2016 22:23:29 +0000 (22:23 +0000)]
Clean up converting from JSValue to float / double in the bindings generator
https://bugs.webkit.org/show_bug.cgi?id=157407

Reviewed by Darin Adler.

Source/WebCore:

Clean up converting from JSValue to float / double in the bindings generator:
- Handle all aspects of converting to float / double inside JSValueToNative()
  instead of relying partly on the call sites.
- Add a build<>() template function to JSDOMBuild.h that is now
  called from the bindings to convert to float / double and deal with
  non-finite values.
- Provide a better message with the TypeError that is thrown for non-finite
  values.

No new tests, rebaselined existing tests.

* bindings/js/JSDOMBinding.cpp:
(WebCore::throwSequenceTypeError):
(WebCore::throwNonFiniteTypeError):
* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMBuild.h:
(WebCore::build):
* bindings/scripts/CodeGenerator.pm:
(IsFloatingPointType):
* bindings/scripts/CodeGeneratorJS.pm:
(JSValueToNative):
(GenerateImplementation): Deleted.
(GenerateParametersCheck): Deleted.
(GenerateReturnParameters): Deleted.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjStrictFloat):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaN):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaN):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionAny):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Promise):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):

LayoutTests:

Rebaseline the tests now that we provide a more useful exception message.

* fast/canvas/canvas-2d-imageData-create-nonfinite-expected.txt:
* fast/canvas/canvas-getImageData-invalid-expected.txt:
* fast/canvas/canvas-putImageData-expected.txt:
* fast/canvas/canvas-putImageData.js:
* fast/canvas/linearGradient-infinite-values-expected.txt:
* fast/canvas/radialGradient-infinite-values-expected.txt:
* fast/canvas/resources/canvas-2d-imageData-create-nonfinite.js:
* fast/canvas/script-tests/canvas-getImageData-invalid.js:
* fast/canvas/script-tests/linearGradient-infinite-values.js:
* fast/canvas/script-tests/radialGradient-infinite-values.js:

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

4 years agoUnreviewed IDB test gardening.
beidson@apple.com [Fri, 6 May 2016 22:06:29 +0000 (22:06 +0000)]
Unreviewed IDB test gardening.

Fix a failing test, and add better classification/comments to a different failing test.

* TestExpectations:
* storage/indexeddb/dont-commit-on-blocked-expected.txt:
* storage/indexeddb/dont-commit-on-blocked.html:

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

4 years agoUnreviewed IDB test gardening.
beidson@apple.com [Fri, 6 May 2016 21:38:10 +0000 (21:38 +0000)]
Unreviewed IDB test gardening.

Update the workers variant of "deletedatabase-delayed-by-open-and-versionchange" to the modern expected results.

* TestExpectations:
* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers-expected.txt:

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

4 years agoUnreviewed IDB test gardening.
beidson@apple.com [Fri, 6 May 2016 21:22:55 +0000 (21:22 +0000)]
Unreviewed IDB test gardening.

Finish removing unsupported lines from the "unprefix" test.

* storage/indexeddb/unprefix-private-expected.txt:

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

4 years agoRegions, Shapes and Tracks don't need runtime features
dino@apple.com [Fri, 6 May 2016 21:21:20 +0000 (21:21 +0000)]
Regions, Shapes and Tracks don't need runtime features
https://bugs.webkit.org/show_bug.cgi?id=157426
<rdar://problem/26146262>

Reviewed by Simon Fraser.

Source/WebCore:

The following RuntimeEnabledFeatures can be removed since
we have no need to disable them (they are stable and have
shipped for a while):
- CSS Regions
- CSS Shapes
- Media tracks

* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures): Deleted.
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setCSSShapesEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssShapesEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssRegionsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setCSSCompositingEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssCompositingEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitVideoTrackEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebkitVideoTrackEnabled): Deleted.
* css/CSSParser.cpp:
(WebCore::isSimpleLengthPropertyID):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::createRegionRule):
(WebCore::CSSParserContext::CSSParserContext): Deleted.
(WebCore::operator==): Deleted.
(WebCore::CSSParser::parseShapeProperty): Deleted.
(WebCore::CSSParser::cssRegionsEnabled): Deleted.
(WebCore::CSSParser::cssCompositingEnabled): Deleted.
(WebCore::CSSParser::parseFlowThread): Deleted.
(WebCore::CSSParser::parseRegionThread): Deleted.
* css/CSSParser.h:
* css/CSSParserMode.h:
* dom/Document.cpp:
(WebCore::Document::webkitGetNamedFlows):
(WebCore::Document::cssRegionsEnabled): Deleted.
(WebCore::Document::cssCompositingEnabled): Deleted.
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::unregisterNamedFlowContentElement):
(WebCore::Element::webkitRegionOverset):
(WebCore::Element::webkitGetRegionFlowRanges): Deleted.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::scheduleDelayedAction):
(WebCore::HTMLMediaElement::pendingActionTimerFired):
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::loadInternal):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::playbackProgressTimerFired):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::userCancelledLoad):
(WebCore::HTMLMediaElement::setVideoFullscreenLayer):
(WebCore::HTMLMediaElement::hasClosedCaptions):
(WebCore::HTMLMediaElement::setClosedCaptionsVisible):
(WebCore::HTMLMediaElement::configureTextTrackDisplay):
(WebCore::HTMLMediaElement::finishParsingChildren): Deleted.
(WebCore::HTMLMediaElement::audioTrackEnabledChanged): Deleted.
(WebCore::HTMLMediaElement::videoTrackSelectedChanged): Deleted.
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Deleted.
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): Deleted.
(WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack): Deleted.
(WebCore::HTMLMediaElement::addAudioTrack): Deleted.
(WebCore::HTMLMediaElement::addTextTrack): Deleted.
(WebCore::HTMLMediaElement::addVideoTrack): Deleted.
(WebCore::HTMLMediaElement::removeAudioTrack): Deleted.
(WebCore::HTMLMediaElement::removeTextTrack): Deleted.
(WebCore::HTMLMediaElement::removeVideoTrack): Deleted.
(WebCore::HTMLMediaElement::audioTracks): Deleted.
(WebCore::HTMLMediaElement::textTracks): Deleted.
(WebCore::HTMLMediaElement::videoTracks): Deleted.
(WebCore::HTMLMediaElement::didAddTextTrack): Deleted.
(WebCore::HTMLMediaElement::didRemoveTextTrack): Deleted.
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::parseAttribute):
(WebCore::HTMLTrackElement::scheduleLoad): Deleted.
(WebCore::HTMLTrackElement::canLoadURL): Deleted.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo): Deleted.
(WebCore::InternalSettings::setCSSShapesEnabled): Deleted.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit/mac:

The following RuntimeEnabledFeatures can be removed since
we have no need to disable them (they are stable and have
shipped for a while):
- CSS Regions
- CSS Shapes
- Media tracks

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Deleted.
(-[WebPreferences cssRegionsEnabled]): Deleted.
(-[WebPreferences setCSSRegionsEnabled:]): Deleted.
(-[WebPreferences cssCompositingEnabled]): Deleted.
(-[WebPreferences setCSSCompositingEnabled:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Deleted.

Source/WebKit2:

The following RuntimeEnabledFeatures can be removed since
we have no need to disable them (they are stable and have
shipped for a while):
- CSS Regions
- CSS Shapes
- Media tracks

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCSSRegionsEnabled): Deleted.
(WKPreferencesGetCSSRegionsEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Deleted.
(WebKit::InjectedBundle::setCSSRegionsEnabled): Deleted.
(WebKit::InjectedBundle::setCSSCompositingEnabled): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Deleted.

Tools:

The following RuntimeEnabledFeatures can be removed since
we have no need to disable them (they are stable and have
shipped for a while):
- CSS Regions
- CSS Shapes
- Media tracks

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues): Deleted.

LayoutTests:

Remove these tests since their runtime flags no longer exist.

* fast/regions/css-regions-disabled-expected.txt: Removed.
* fast/regions/css-regions-disabled.html: Removed.
* fast/shapes/css-shapes-disabled-expected.txt: Removed.
* fast/shapes/css-shapes-disabled.html: Removed.

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

4 years agoUnreviewed IDB test gardening.
beidson@apple.com [Fri, 6 May 2016 21:16:42 +0000 (21:16 +0000)]
Unreviewed IDB test gardening.

Remove unsupported lines from the "unprefix" test.

* TestExpectations:
* storage/indexeddb/resources/unprefix.js:
* storage/indexeddb/unprefix-expected.txt:
* storage/indexeddb/unprefix-workers-expected.txt:

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

4 years agoUnreviewed IDB test gardening.
beidson@apple.com [Fri, 6 May 2016 21:11:58 +0000 (21:11 +0000)]
Unreviewed IDB test gardening.

Remove the Workers variant of a test that had been removed for being irrelevant.

* TestExpectations:
* storage/indexeddb/factory-basics-workers-expected.txt: Removed.
* storage/indexeddb/factory-basics-workers.html: Removed.

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

4 years agoModern IDB (Workers): Start running a lot of the workers tests.
beidson@apple.com [Fri, 6 May 2016 21:04:25 +0000 (21:04 +0000)]
Modern IDB (Workers): Start running a lot of the workers tests.
https://bugs.webkit.org/show_bug.cgi?id=157424

Reviewed by Sam Weinig.

Source/WebCore:

No new tests (Covered by enabling a whole bunch of existing tests).

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::stop): Call removeAllEventListeners() to clean up the Worker VM
  before it shuts down.

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::stop): Call removeAllEventListeners()

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::IDBTransaction): Initialize with the correct VM.
(WebCore::IDBTransaction::stop): Call removeAllEventListeners()
(WebCore::IDBTransaction::operationDidComplete):

* Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::takeIDBOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest): Don't take the request from
  the map, but rather let the request take itself from its appropriate thread.
* Modules/indexeddb/client/IDBConnectionProxy.h:

* Modules/indexeddb/client/TransactionOperation.h:
(WebCore::IDBClient::TransactionOperation::completed): Rework clearing out the completion
  handler, as the handler itself might hold the last reference to `this`.

* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::hasUniversalAccess):

* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope): If the parent context's SecurityOrigin had
  universal access, grant it to this one.

LayoutTests:

Many tests that obviously pass need updated expectations for the details of error messages.

Others just work right out of the box.

* TestExpectations: Enable some tests, and categorize remaining failures.

* http/tests/security/cross-origin-worker-indexeddb-allowed-expected.txt:
* http/tests/security/cross-origin-worker-indexeddb-allowed.html:
* http/tests/security/cross-origin-worker-indexeddb-expected.txt:
* http/tests/security/cross-origin-worker-indexeddb.html:
* http/tests/security/resources/cross-origin-iframe-for-worker-indexeddb.html:
* http/tests/security/resources/document-for-cross-origin-worker-indexeddb.html:
* http/tests/security/resources/worker-for-indexeddb.js:
* storage/indexeddb/basics-workers.html:
* storage/indexeddb/cursor-advance-workers-expected.txt:
* storage/indexeddb/cursor-advance-workers.html:
* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers.html:
* storage/indexeddb/dont-commit-on-blocked-private.html:
* storage/indexeddb/dont-commit-on-blocked.html:
* storage/indexeddb/factory-basics-workers.html:
* storage/indexeddb/index-basics-workers-expected.txt:
* storage/indexeddb/index-basics-workers.html:
* storage/indexeddb/modern/workers-disabled.html:
* storage/indexeddb/objectstore-basics-workers-expected.txt:
* storage/indexeddb/objectstore-basics-workers.html:
* storage/indexeddb/open-twice-workers.html:
* storage/indexeddb/pending-activity-workers.html:
* storage/indexeddb/pending-version-change-on-exit-private.html:
* storage/indexeddb/pending-version-change-on-exit.html:
* storage/indexeddb/pending-version-change-stuck-private.html:
* storage/indexeddb/pending-version-change-stuck-works-with-terminate-private.html:
* storage/indexeddb/pending-version-change-stuck-works-with-terminate.html:
* storage/indexeddb/pending-version-change-stuck.html:
* storage/indexeddb/transaction-complete-workers-expected.txt:
* storage/indexeddb/transaction-complete-workers-private-expected.txt:
* storage/indexeddb/transaction-complete-workers-private.html:
* storage/indexeddb/transaction-complete-workers.html:
* storage/indexeddb/unprefix-workers.html:

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

4 years agoFKA: No way to get focus from DOM to shadow DOM components (Was: HTML5 media controls...
rniwa@webkit.org [Fri, 6 May 2016 21:01:32 +0000 (21:01 +0000)]
FKA: No way to get focus from DOM to shadow DOM components (Was: HTML5 media controls not keyboard accessible)
https://bugs.webkit.org/show_bug.cgi?id=117857

Reviewed by Jer Noble.

Source/WebCore:

The bug was caused by hasCustomFocusLogic returning true on media elements.

Fix the bug by removing this function so that FocusController will walk into the shadow tree of media elements
to look for focusable elements. This will allow AT such as Voice Over to iterate through controls.

We don't seem to draw focus rings inside the media elements but that could be tweaked in a separate patch.

Test: media/tab-focus-inside-media-elements.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::hasCustomFocusLogic): Deleted.
* html/HTMLMediaElement.h:

LayoutTests:

Added a regression test for moving focus into media elements by pressing tab key.

* media/tab-focus-inside-media-elements-expected.txt: Added.
* media/tab-focus-inside-media-elements.html: Added.

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

4 years agoTidy up the LinkRelAttribute code
andersca@apple.com [Fri, 6 May 2016 20:38:55 +0000 (20:38 +0000)]
Tidy up the LinkRelAttribute code
https://bugs.webkit.org/show_bug.cgi?id=157429

Reviewed by Sam Weinig.

Get rid of IconURL.h and move the IconType enumeration inside LinkRelAttribute.
Remove the InvalidIcon enum declaration and use WTF::Optional instead.

* WebCore.xcodeproj/project.pbxproj:
* dom/IconURL.h: Removed.
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::iconType):
(WebCore::HTMLLinkElement::addSubresourceAttributeURLs):
* html/HTMLLinkElement.h:
* html/LinkRelAttribute.cpp:
(WebCore::LinkRelAttribute::LinkRelAttribute):
* html/LinkRelAttribute.h:
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::relAttributeIsStyleSheet):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/icon/IconController.cpp:
(WebCore::iconFromLinkElements):

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

4 years agoJS Function removed after parsing
fpizlo@apple.com [Fri, 6 May 2016 20:37:16 +0000 (20:37 +0000)]
JS Function removed after parsing
https://bugs.webkit.org/show_bug.cgi?id=149175

Reviewed by Mark Lam.

This bug doesn't happen anymore, but the test case is still useful. This test will fail 1/5 of
the time if we regress.

* js/dom/function-removed-after-parsing-expected.txt: Added.
* js/dom/function-removed-after-parsing.html: Added.

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

4 years agoWeb Inspector: Remove HeapSnapshot Summary View
commit-queue@webkit.org [Fri, 6 May 2016 19:54:32 +0000 (19:54 +0000)]
Web Inspector: Remove HeapSnapshot Summary View
https://bugs.webkit.org/show_bug.cgi?id=157385

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

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Views/HeapSnapshotClusterContentView.js:
(WebInspector.HeapSnapshotClusterContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype.get summaryContentView): Deleted.
(WebInspector.HeapSnapshotClusterContentView.prototype.showSummary): Deleted.
(WebInspector.HeapSnapshotClusterContentView.prototype._pathComponentForContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype._identifierForContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype._showContentViewForIdentifier):
* UserInterface/Views/HeapSnapshotSummaryContentView.css: Removed.
* UserInterface/Views/HeapSnapshotSummaryContentView.js: Removed.
* UserInterface/Views/Variables.css:
(:root):

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

4 years agoMuted media elements should be allowed to autoplay, even if RequireUserGestureForAudi...
jer.noble@apple.com [Fri, 6 May 2016 19:54:15 +0000 (19:54 +0000)]
Muted media elements should be allowed to autoplay, even if RequireUserGestureForAudioRateChange is set.
https://bugs.webkit.org/show_bug.cgi?id=157404
<rdar://problem/26016802>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/audio-playback-restriction-play-muted.html

Add element.muted() as a critera of whether playback is permitted when
RequireUserGestureForAudioRateChange is set. Also, make sure to re-evaluate whether the
element should be playing when muted is changed without a user gesture.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setMuted):
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackPermitted):

LayoutTests:

* media/audio-playback-restriction-play-muted-expected.txt: Added.
* media/audio-playback-restriction-play-muted.html: Added.

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

4 years agoIncrease delay when launching multiple ios-simulators in parallel
ryanhaddad@apple.com [Fri, 6 May 2016 19:25:41 +0000 (19:25 +0000)]
Increase delay when launching multiple ios-simulators in parallel
https://bugs.webkit.org/show_bug.cgi?id=157422

Reviewed by Alexey Proskuryakov.

Tests are intermittently failing when launching multiple simulators in parallel due to "You are opening
this application for the first time" confirmation dialogs. Increasing the delay to alleviate this issue.

* Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.setup_test_run):

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

4 years agoCreate a fence in WebVideoFullscreenManagerProxy::setVideoLayerFrame() to pass to...
adachan@apple.com [Fri, 6 May 2016 18:17:24 +0000 (18:17 +0000)]
Create a fence in WebVideoFullscreenManagerProxy::setVideoLayerFrame() to pass to the web process
https://bugs.webkit.org/show_bug.cgi?id=157409

Reviewed by Tim Horton.

* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):
Create a fence by calling DrawingAreaProxy::createFence() and pass it when sending the
WebVideoFullscreenManager::SetVideoLayerFrameFenced message.

* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::createFence):
Stub implementation. Assert not to be reached here since it's only implemented on Mac so far.
* UIProcess/DrawingAreaProxy.h:

* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):
Renamed from createFenceForGeometryUpdate() since we are using it for more than just updating geometry.
(WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
Update due to method rename.

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

4 years agoRemove workaround for Apple Internal bots
dbates@webkit.org [Fri, 6 May 2016 16:57:09 +0000 (16:57 +0000)]
Remove workaround for Apple Internal bots
<rdar://problem/25989808>

Reverts the workaround added in r200211 as it is no longer needed.

* WebView/WebPDFView.h:

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

4 years ago[Win] Remove WinXP support.
peavo@outlook.com [Fri, 6 May 2016 16:18:01 +0000 (16:18 +0000)]
[Win] Remove WinXP support.
https://bugs.webkit.org/show_bug.cgi?id=157416

Reviewed by Brent Fulgham.

* win/DLLLauncher/DLLLauncherMain.cpp:
(enableTerminationOnHeapCorruption):

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

4 years agoDon't use invalidated ResourceLoadStatistics iterators
bfulgham@apple.com [Fri, 6 May 2016 15:53:10 +0000 (15:53 +0000)]
Don't use invalidated ResourceLoadStatistics iterators
https://bugs.webkit.org/show_bug.cgi?id=157412
<rdar://problem/26133153>

Reviewed by Chris Dumez.

ResourceLoadObserver::logFrameNavigation was using references bound to the 'value'
member of iterators from the ResourceLoadStatistics HashMap. When new entries were
added, these iterators were invalidated causing the references to refer to invalid
memory.

Renamed 'resourceStatisticsForPrimaryDomain' to 'ensureResourceStatisticsForPrimaryDomain'
to clarify that it may mutate the underlying HashMap, thereby invalidating any
existing iterators.

* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::logFrameNavigation): Protect against HashMap
elements being copied/moved when new intries are added.
* loader/ResourceLoadStatisticsStore.cpp:
(WebCore::ResourceLoadStatisticsStore::setResourceStatisticsForPrimaryDomain): Added.
* loader/ResourceLoadStatisticsStore.h:

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

4 years ago[css-grid] Unprefix CSS Grid Layout properties
rego@igalia.com [Fri, 6 May 2016 08:17:12 +0000 (08:17 +0000)]
[css-grid] Unprefix CSS Grid Layout properties
https://bugs.webkit.org/show_bug.cgi?id=157137

Reviewed by Simon Fraser.

Remove "-webkit" prefix from all the grid layout properties,
including the display value.
Update the source code to remove the prefix where it was used too.

.:

* ManualTests/css-grid-layout-item-with-huge-span-crash.html:

PerformanceTests:

* Layout/auto-grid-lots-of-data.html:
* Layout/fixed-grid-lots-of-data.html:
* Layout/fixed-grid-lots-of-stretched-data.html:

Source/WebCore:

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isSimpleLengthPropertyID):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridGapShorthand):
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns):
(WebCore::CSSParser::parseGridTemplateShorthand):
(WebCore::CSSParser::parseGridShorthand):
(WebCore::CSSParser::parseGridAreaShorthand):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas):
(WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas):
(WebCore::StyleBuilderCustom::applyValueGridTemplateAreas):
(WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns):
(WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns):
(WebCore::StyleBuilderCustom::applyValueGridTemplateColumns):
(WebCore::StyleBuilderCustom::applyInitialGridTemplateRows):
(WebCore::StyleBuilderCustom::applyInheritGridTemplateRows):
(WebCore::StyleBuilderCustom::applyValueGridTemplateRows):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):

Source/WebInspectorUI:

* UserInterface/Models/CSSKeywordCompletions.js:

Tools:

* TestWebKitAPI/Tests/WebCore/CSSParser.cpp:
(TestWebKitAPI::TEST):

LayoutTests:

* css3/parse-align-content.html:
* css3/parse-align-items.html:
* css3/parse-align-self.html:
* css3/parse-justify-content.html:
* fast/css-grid-layout/absolute-positioning-definite-sizes.html:
* fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html:
* fast/css-grid-layout/absolute-positioning-grid-container-parent.html:
* fast/css-grid-layout/anonymous-grid-items-expected.html:
* fast/css-grid-layout/anonymous-grid-items.html:
* fast/css-grid-layout/auto-content-resolution-columns.html:
* fast/css-grid-layout/auto-content-resolution-rows.html:
* fast/css-grid-layout/breadth-size-resolution-grid.html:
* fast/css-grid-layout/calc-resolution-grid-item.html:
* fast/css-grid-layout/compute-intrinsic-widths-scrollbar.html:
* fast/css-grid-layout/display-grid-set-get-expected.txt:
* fast/css-grid-layout/explicit-grid-size.html:
* fast/css-grid-layout/flex-and-content-sized-resolution-columns-expected.txt:
* fast/css-grid-layout/flex-and-content-sized-resolution-columns.html:
* fast/css-grid-layout/flex-and-intrinsic-sizes.html:
* fast/css-grid-layout/flex-and-minmax-content-resolution-columns.html:
* fast/css-grid-layout/flex-and-minmax-content-resolution-rows.html:
* fast/css-grid-layout/flex-content-distribution.html:
* fast/css-grid-layout/flex-content-resolution-columns.html:
* fast/css-grid-layout/flex-content-resolution-rows.html:
* fast/css-grid-layout/flex-content-sized-column-use-available-width.html:
* fast/css-grid-layout/flex-content-sized-columns-resize.html:
* fast/css-grid-layout/flex-factor-sum-less-than-1.html:
* fast/css-grid-layout/float-not-protruding-into-next-grid-item.html:
* fast/css-grid-layout/floating-empty-grids.html:
* fast/css-grid-layout/grid-align-content-distribution-vertical-lr.html:
* fast/css-grid-layout/grid-align-content-distribution-vertical-rl.html:
* fast/css-grid-layout/grid-align-content-distribution.html:
* fast/css-grid-layout/grid-align-content-vertical-lr.html:
* fast/css-grid-layout/grid-align-content-vertical-rl.html:
* fast/css-grid-layout/grid-align-content.html:
* fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html:
* fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html:
* fast/css-grid-layout/grid-align-justify-margin-border-padding.html:
* fast/css-grid-layout/grid-align-justify-overflow.html:
* fast/css-grid-layout/grid-align-justify-stretch.html:
* fast/css-grid-layout/grid-align-stretching-replaced-items.html:
* fast/css-grid-layout/grid-align.html:
* fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html:
* fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
* fast/css-grid-layout/grid-auto-columns-rows-resolution.html:
* fast/css-grid-layout/grid-auto-columns-rows-update.html:
* fast/css-grid-layout/grid-auto-flow-get-set-expected.txt:
* fast/css-grid-layout/grid-auto-flow-get-set.html:
* fast/css-grid-layout/grid-auto-flow-resolution.html:
* fast/css-grid-layout/grid-auto-flow-sparse.html:
* fast/css-grid-layout/grid-auto-flow-update.html:
* fast/css-grid-layout/grid-automatic-minimum-for-auto-columns-expected.txt:
* fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html:
* fast/css-grid-layout/grid-automatic-minimum-for-auto-rows-expected.txt:
* fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html:
* fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
* fast/css-grid-layout/grid-columns-rows-get-set.html:
* fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html:
* fast/css-grid-layout/grid-container-ignore-first-letter.html:
* fast/css-grid-layout/grid-content-alignment-and-self-alignment-spanning.html:
* fast/css-grid-layout/grid-content-alignment-and-self-alignment.html:
* fast/css-grid-layout/grid-content-alignment-overflow.html:
* fast/css-grid-layout/grid-content-alignment-stretch-only-valid-for-auto-sized-tracks.html:
* fast/css-grid-layout/grid-content-alignment-stretch-with-different-sized-tracks.html:
* fast/css-grid-layout/grid-content-alignment-with-span-vertical-lr.html:
* fast/css-grid-layout/grid-content-alignment-with-span-vertical-rl.html:
* fast/css-grid-layout/grid-content-alignment-with-span.html:
* fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:
* fast/css-grid-layout/grid-content-sized-columns-resolution.html:
* fast/css-grid-layout/grid-disable.html:
* fast/css-grid-layout/grid-dynamic-updates-relayout.html:
* fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
* fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
* fast/css-grid-layout/grid-element-border-grid-item.html:
* fast/css-grid-layout/grid-element-border-padding-grid-item.html:
* fast/css-grid-layout/grid-element-change-columns-repaint.html:
* fast/css-grid-layout/grid-element-change-rows-repaint.html:
* fast/css-grid-layout/grid-element-empty-row-column.html:
* fast/css-grid-layout/grid-element-min-max-height.html:
* fast/css-grid-layout/grid-element-min-max-width.html:
* fast/css-grid-layout/grid-element-padding-grid-item.html:
* fast/css-grid-layout/grid-element-padding-margin.html:
* fast/css-grid-layout/grid-element-repeat-get-set-expected.txt:
* fast/css-grid-layout/grid-element-repeat-get-set.html:
* fast/css-grid-layout/grid-element-shrink-to-fit.html:
* fast/css-grid-layout/grid-grow-tracks-to-their-max-expected.txt:
* fast/css-grid-layout/grid-grow-tracks-to-their-max.html:
* fast/css-grid-layout/grid-gutters-and-alignment.html:
* fast/css-grid-layout/grid-gutters-and-flex-content.html:
* fast/css-grid-layout/grid-gutters-and-tracks.html:
* fast/css-grid-layout/grid-gutters-get-set-expected.txt:
* fast/css-grid-layout/grid-gutters-get-set.html:
* fast/css-grid-layout/grid-indefinite-calculated-height-crash-expected.txt:
* fast/css-grid-layout/grid-indefinite-calculated-height-crash.html:
* fast/css-grid-layout/grid-initialize-span-one-items-expected.txt:
* fast/css-grid-layout/grid-initialize-span-one-items.html:
* fast/css-grid-layout/grid-item-addition-auto-placement-update.html:
* fast/css-grid-layout/grid-item-addition-track-breadth-update.html:
* fast/css-grid-layout/grid-item-area-get-set-expected.txt:
* fast/css-grid-layout/grid-item-area-get-set.html:
* fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr.html:
* fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl.html:
* fast/css-grid-layout/grid-item-auto-margins-alignment.html:
* fast/css-grid-layout/grid-item-auto-margins-and-stretch.html:
* fast/css-grid-layout/grid-item-auto-margins-must-respect-specified-margins.html:
* fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
* fast/css-grid-layout/grid-item-auto-placement-definite-span.html:
* fast/css-grid-layout/grid-item-auto-placement-fixed-row-column.html:
* fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html:
* fast/css-grid-layout/grid-item-bad-named-area-auto-placement.html:
* fast/css-grid-layout/grid-item-bad-resolution-double-span.html:
* fast/css-grid-layout/grid-item-change-column-repaint.html:
* fast/css-grid-layout/grid-item-change-row-repaint.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-display.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-margin-auto-columns-rows-horizontal-ltr.html:
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl.html:
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr.html:
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl.html:
* fast/css-grid-layout/grid-item-margin-resolution.html:
* fast/css-grid-layout/grid-item-margins-not-collapse.html:
* fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html:
* fast/css-grid-layout/grid-item-named-grid-area-resolution.html:
* fast/css-grid-layout/grid-item-named-grid-line-resolution.html:
* fast/css-grid-layout/grid-item-negative-indexes.html:
* fast/css-grid-layout/grid-item-negative-integer-explicit-grid-resolution.html:
* fast/css-grid-layout/grid-item-negative-position-resolution.html:
* fast/css-grid-layout/grid-item-order-auto-flow-resolution.html:
* fast/css-grid-layout/grid-item-order-in-content-sized-columns-resolution.html:
* fast/css-grid-layout/grid-item-order-paint-order.html:
* fast/css-grid-layout/grid-item-position-changed-dynamic.html:
* fast/css-grid-layout/grid-item-removal-auto-placement-update.html:
* fast/css-grid-layout/grid-item-removal-track-breadth-update.html:
* fast/css-grid-layout/grid-item-spanning-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:
* fast/css-grid-layout/grid-item-stretch-with-margins-borders-padding-vertical-lr.html:
* fast/css-grid-layout/grid-item-stretch-with-margins-borders-padding-vertical-rl.html:
* fast/css-grid-layout/grid-item-stretch-with-margins-borders-padding.html:
* fast/css-grid-layout/grid-item-text-background-not-interleaved.html:
* fast/css-grid-layout/grid-item-unknown-named-grid-line-resolution.html:
* fast/css-grid-layout/grid-item-with-border-in-fr.html:
* fast/css-grid-layout/grid-item-with-border-in-intrinsic.html:
* fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html:
* fast/css-grid-layout/grid-item-with-percent-min-max-height-dynamic.html:
* fast/css-grid-layout/grid-item-z-index-change-repaint-expected.html:
* fast/css-grid-layout/grid-item-z-index-change-repaint.html:
* fast/css-grid-layout/grid-item-z-index-stacking-context-expected.html:
* fast/css-grid-layout/grid-item-z-index-stacking-context.html:
* fast/css-grid-layout/grid-item-z-index-support.html:
* fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html:
* fast/css-grid-layout/grid-justify-content-distribution-vertical-lr.html:
* fast/css-grid-layout/grid-justify-content-distribution-vertical-rl.html:
* fast/css-grid-layout/grid-justify-content-distribution.html:
* fast/css-grid-layout/grid-justify-content-vertical-lr.html:
* fast/css-grid-layout/grid-justify-content-vertical-rl.html:
* fast/css-grid-layout/grid-justify-content.html:
* fast/css-grid-layout/grid-percent-track-margin-border-padding.html:
* fast/css-grid-layout/grid-percent-track-scrollbar.html:
* fast/css-grid-layout/grid-positioned-children-writing-modes.html:
* fast/css-grid-layout/grid-positioned-items-background-rtl.html:
* fast/css-grid-layout/grid-positioned-items-background.html:
* fast/css-grid-layout/grid-positioned-items-content-alignment-rtl.html:
* fast/css-grid-layout/grid-positioned-items-content-alignment.html:
* fast/css-grid-layout/grid-positioned-items-gaps-rtl.html:
* fast/css-grid-layout/grid-positioned-items-gaps.html:
* fast/css-grid-layout/grid-positioned-items-implicit-grid-line.html:
* fast/css-grid-layout/grid-positioned-items-implicit-grid.html:
* fast/css-grid-layout/grid-positioned-items-padding.html:
* fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line.html:
* fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html:
* fast/css-grid-layout/grid-preferred-logical-widths.html:
* fast/css-grid-layout/grid-repeat-calc-expected.txt:
* fast/css-grid-layout/grid-repeat-calc.html:
* fast/css-grid-layout/grid-shorthand-computed-style-crash.html:
* fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
* fast/css-grid-layout/grid-shorthand-get-set.html:
* fast/css-grid-layout/grid-sizing-positioned-items.html:
* fast/css-grid-layout/grid-strict-ordering-crash.html:
* fast/css-grid-layout/grid-template-areas-empty-string-crash.html:
* fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
* fast/css-grid-layout/grid-template-areas-get-set.html:
* fast/css-grid-layout/grid-template-areas-infinite-loop.html:
* fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment-expected.txt:
* fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html:
* fast/css-grid-layout/grid-template-shorthand-computed-style-crash.html:
* fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
* fast/css-grid-layout/grid-template-shorthand-get-set.html:
* fast/css-grid-layout/grid-update-sizes-after-distributing-all-expected.txt:
* fast/css-grid-layout/grid-update-sizes-after-distributing-all.html:
* fast/css-grid-layout/grid-was-populated-assert.html:
* fast/css-grid-layout/grid-with-relative-font-length-crash.html:
* fast/css-grid-layout/implicit-columns-auto-resolution.html:
* fast/css-grid-layout/implicit-position-dynamic-change-expected.txt:
* fast/css-grid-layout/implicit-position-dynamic-change.html:
* fast/css-grid-layout/implicit-rows-auto-resolution.html:
* fast/css-grid-layout/implicit-tracks-before-explicit.html:
* fast/css-grid-layout/justify-self-cell.html:
* fast/css-grid-layout/mark-as-infinitely-growable-expected.txt:
* fast/css-grid-layout/mark-as-infinitely-growable.html:
* fast/css-grid-layout/maximize-tracks-definite-indefinite-height.html:
* fast/css-grid-layout/min-content-row-must-shrink-when-column-grows.html:
* fast/css-grid-layout/min-height-border-box.html:
* fast/css-grid-layout/min-width-height-auto-and-margins.html:
* fast/css-grid-layout/min-width-height-auto-overflow.html:
* fast/css-grid-layout/min-width-height-auto.html:
* fast/css-grid-layout/min-width-margin-box.html:
* fast/css-grid-layout/minmax-fixed-logical-height-only.html:
* fast/css-grid-layout/minmax-fixed-logical-width-only.html:
* fast/css-grid-layout/minmax-max-content-resolution-columns.html:
* fast/css-grid-layout/minmax-max-content-resolution-rows.html:
* fast/css-grid-layout/minmax-min-content-column-resolution-columns.html:
* fast/css-grid-layout/minmax-min-content-column-resolution-rows.html:
* fast/css-grid-layout/minmax-spanning-resolution-columns.html:
* fast/css-grid-layout/minmax-spanning-resolution-rows.html:
* fast/css-grid-layout/named-grid-line-get-set-expected.txt:
* fast/css-grid-layout/named-grid-line-get-set.html:
* fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt:
* fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set-expected.txt:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
* fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html:
* fast/css-grid-layout/non-grid-columns-rows-get-set.html:
* fast/css-grid-layout/non-grid-element-repeat-get-set-expected.txt:
* fast/css-grid-layout/non-grid-element-repeat-get-set.html:
* fast/css-grid-layout/non-named-grid-line-get-set-expected.txt:
* fast/css-grid-layout/non-named-grid-line-get-set.html:
* fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid.html:
* fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update.html:
* fast/css-grid-layout/percent-grid-item-in-percent-grid-track.html:
* fast/css-grid-layout/percent-intrinsic-track-breadth.html:
* fast/css-grid-layout/percent-of-indefinite-track-size-in-auto.html:
* fast/css-grid-layout/percent-of-indefinite-track-size-in-minmax-crash.html:
* fast/css-grid-layout/percent-of-indefinite-track-size.html:
* fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update.html:
* fast/css-grid-layout/percent-padding-margin-resolution-grid-item.html:
* fast/css-grid-layout/percent-resolution-grid-item.html:
* fast/css-grid-layout/percent-track-breadths-regarding-container-size.html:
* fast/css-grid-layout/place-cell-by-index.html:
* fast/css-grid-layout/positioned-grid-items-should-not-create-implicit-tracks.html:
* fast/css-grid-layout/positioned-grid-items-should-not-take-up-space.html:
* fast/css-grid-layout/relayout-align-items-changed.html:
* fast/css-grid-layout/relayout-align-self-changed.html:
* fast/css-grid-layout/relayout-indefinite-heights.html:
* fast/css-grid-layout/relayout-justify-items-changed.html:
* fast/css-grid-layout/relayout-justify-self-changed.html:
* fast/css-grid-layout/resources/display-grid-set-get.js:
* fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
(testInherit):
(testInitial):
* fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
(testInherit):
(testInitial):
* fast/css-grid-layout/resources/grid-definitions-parsing-utils.js:
(testGridTemplatesValues):
(checkGridTemplatesSetJSValues):
(testGridTemplatesSetBadJSValues):
(checkGridAutoFlowSetCSSValue):
(checkGridAutoFlowSetJSValue):
(testGridAutoDefinitionsValues):
(testGridGapDefinitionsValues):
* fast/css-grid-layout/resources/grid-item-column-row-parsing-utils.js:
(checkColumnRowValues):
(window.testColumnRowJSParsing):
(window.testColumnRowInvalidJSParsing):
(window.testColumnStartRowStartJSParsing):
(window.testColumnEndRowEndJSParsing):
(setupInheritTest):
(setupInitialTest):
(window.testColumnRowInheritJSParsing):
(window.testStartBeforeInheritJSParsing):
(window.testEndAfterInheritJSParsing):
(window.testColumnRowInitialJSParsing):
(window.testStartBeforeInitialJSParsing):
(window.testEndAfterInitialJSParsing):
* fast/css-grid-layout/resources/grid-shorthand-parsing-utils.js:
(testGridDefinitionsValues):
(checkGridDefinitionsSetJSValues):
(testGridDefinitionsSetBadJSValues):
* fast/css-grid-layout/resources/grid-template-shorthand-parsing-utils.js:
(testGridDefinitionsValues):
(checkGridDefinitionsSetJSValues):
(testGridDefinitionsSetBadJSValues):
* fast/css-grid-layout/resources/grid.css:
(.grid):
(.inline-grid):
(.firstRowFirstColumn):
(.onlyFirstRowOnlyFirstColumn):
(.firstRowSecondColumn):
(.onlyFirstRowOnlySecondColumn):
(.firstRowThirdColumn):
(.firstRowFourthColumn):
(.secondRowFirstColumn):
(.onlySecondRowOnlyFirstColumn):
(.secondRowSecondColumn):
(.onlySecondRowOnlySecondColumn):
(.endSecondRowEndSecondColumn):
(.secondRowThirdColumn):
(.secondRowFourthColumn):
(.thirdRowFirstColumn):
(.thirdRowSecondColumn):
(.thirdRowThirdColumn):
(.fourthRowFirstColumn):
(.fourthRowSecondColumn):
(.firstAutoRowSecondAutoColumn):
(.autoLastRowAutoLastColumn):
(.autoSecondRowAutoFirstColumn):
(.firstRowBothColumn):
(.secondRowBothColumn):
(.bothRowFirstColumn):
(.bothRowSecondColumn):
(.bothRowBothColumn):
(.autoRowAutoColumn):
(.firstRowAutoColumn):
(.secondRowAutoColumn):
(.thirdRowAutoColumn):
(.autoRowFirstColumn):
(.autoRowSecondColumn):
(.autoRowThirdColumn):
(.autoRowAutoColumnSpanning2):
(.autoRowSpanning2AutoColumn):
(.autoRowSpanning2AutoColumnSpanning3):
(.autoRowSpanning3AutoColumnSpanning2):
(.autoRowFirstColumnSpanning2):
(.autoRowSecondColumnSpanning2):
(.firstRowSpanning2AutoColumn):
(.secondRowSpanning2AutoColumn):
(.gridAutoFlowColumnSparse):
(.gridAutoFlowColumnDense):
(.gridAutoFlowRowSparse):
(.gridAutoFlowRowDense):
* fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js:
(testInherit):
(testInitial):
* fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:
(testInherit):
(testInitial):
* fast/css-grid-layout/should-not-collapse-anonymous-blocks.html:
* fast/css-grid-layout/swap-lines-if-start-is-further-endward-than-end-line-expected.html:
* fast/css-grid-layout/swap-lines-if-start-is-further-endward-than-end-line.html:
* fast/css-grid-layout/tracks-number-greatly-exceeding-available-size-crash.html:
* fast/css/auto-min-size.html:
* fast/css/first-letter-ignores-display-property.html:
* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/css/getComputedStyle/resources/property-names.js:
* fast/css/parse-justify-items.html:
* fast/events/key-events-in-editable-gridbox.html:
* fast/repaint/align-items-overflow-change.html:
* fast/repaint/align-self-change.html:
* fast/repaint/align-self-overflow-change.html:
* fast/repaint/justify-items-change.html:
* fast/repaint/justify-items-legacy-change.html:
* fast/repaint/justify-items-overflow-change.html:
* fast/repaint/justify-self-change.html:
* fast/repaint/justify-self-overflow-change.html:
* fast/text-autosizing/cluster-inline-grid-flex-box-expected.html:
* fast/text-autosizing/cluster-inline-grid-flex-box.html:
* ietestcenter/css3/grid/display-grid-001-expected.htm:
* ietestcenter/css3/grid/display-grid-001.htm:
* ietestcenter/css3/grid/display-grid-002-expected.htm:
* ietestcenter/css3/grid/display-grid-002.htm:
* ietestcenter/css3/grid/grid-column-001-expected.htm:
* ietestcenter/css3/grid/grid-column-001.htm:
* ietestcenter/css3/grid/grid-column-002-expected.htm:
* ietestcenter/css3/grid/grid-column-002.htm:
* ietestcenter/css3/grid/grid-column-003-expected.htm:
* ietestcenter/css3/grid/grid-column-003.htm:
* ietestcenter/css3/grid/grid-columns-001-expected.htm:
* ietestcenter/css3/grid/grid-columns-001.htm:
* ietestcenter/css3/grid/grid-items-001-expected.htm:
* ietestcenter/css3/grid/grid-items-001.htm:
* ietestcenter/css3/grid/grid-items-002-expected.htm:
* ietestcenter/css3/grid/grid-items-002.htm:
* ietestcenter/css3/grid/grid-items-003-expected.htm:
* ietestcenter/css3/grid/grid-items-003.htm:
* ietestcenter/css3/grid/grid-items-004-expected.htm:
* ietestcenter/css3/grid/grid-items-004.htm:
* ietestcenter/css3/grid/grid-items-005-expected.htm:
* ietestcenter/css3/grid/grid-items-005.htm:
* svg/css/getComputedStyle-basic-expected.txt:

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

4 years agoAX: <attachment> element should have a replacement character
n_wang@apple.com [Fri, 6 May 2016 07:45:04 +0000 (07:45 +0000)]
AX: <attachment> element should have a replacement character
https://bugs.webkit.org/show_bug.cgi?id=157406

Reviewed by Chris Fleizach.

Source/WebCore:

Make sure attachment element is considered as a replaced node.

Test: accessibility/mac/attachment-element-replacement-character.html

* editing/TextIterator.cpp:
(WebCore::isRendererReplacedElement):

LayoutTests:

* accessibility/attachment-element-expected.txt:
* accessibility/mac/attachment-element-replacement-character-expected.txt: Added.
* accessibility/mac/attachment-element-replacement-character.html: Added.
* editing/pasteboard/drag-and-drop-attachment-contenteditable-expected.txt:

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

4 years agoAX: String for document range is empty if end visible position anchors to a ignored...
n_wang@apple.com [Fri, 6 May 2016 07:27:22 +0000 (07:27 +0000)]
AX: String for document range is empty if end visible position anchors to a ignored replaced node
https://bugs.webkit.org/show_bug.cgi?id=157403

Reviewed by Chris Fleizach.

Source/WebCore:

The CharacterOffset that is converted from VisiblePositon is wrong when the VisiblePostion anchors
to an ignored replaced node. Fixed it by adjusting the offset of the CharacterOffset correctly in
such case.

Test: accessibility/mac/text-marker-string-for-document-end-replaced-node.html

* accessibility/AXObjectCache.cpp:
(WebCore::characterOffsetsInOrder):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::accessibilityObjectForTextMarkerData):

LayoutTests:

* accessibility/mac/text-marker-string-for-document-end-replaced-node-expected.txt: Added.
* accessibility/mac/text-marker-string-for-document-end-replaced-node.html: Added.

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

4 years ago[iOS] WebCore does not need to link to CoreAudio, GraphicsServices, SystemConfigurati...
ddkilzer@apple.com [Fri, 6 May 2016 06:25:30 +0000 (06:25 +0000)]
[iOS] WebCore does not need to link to CoreAudio, GraphicsServices, SystemConfiguration frameworks
<https://webkit.org/b/157413>
<rdar://problem/26104189>

Reviewed by Gavin Barraclough.

* Configurations/WebCore.xcconfig:
(OTHER_LDFLAGS_BASE_ios): Remove "-framework GraphicsServices".
(OTHER_LDFLAGS_PLATFORM[sdk=macosx*]): Add "-framework CoreAudio"
and "-framework SystemConfiguration".
* WebCore.xcodeproj/project.pbxproj: Remove CoreAudio.framework
and SystemConfiguration.framework from the project file.

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

4 years agoPartially revert http://trac.webkit.org/r200504
ap@apple.com [Fri, 6 May 2016 06:07:25 +0000 (06:07 +0000)]
Partially revert http://trac.webkit.org/r200504
Improve HTTP test names in WebKitTestRunner's crash report information
https://bugs.webkit.org/show_bug.cgi?id=157389

* WebKitTestRunner/cocoa/CrashReporterInfo.mm: Turns out that we can't have URLs
in crash reporter information.

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

4 years agoREGRESSION(r200474): Exception in autocompletion - `getCompletions` not found
commit-queue@webkit.org [Fri, 6 May 2016 03:14:48 +0000 (03:14 +0000)]
REGRESSION(r200474): Exception in autocompletion - `getCompletions` not found
https://bugs.webkit.org/show_bug.cgi?id=157408

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

* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):
This function was renamed, but this instance was missed.

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

4 years agoImprove HTTP test names in WebKitTestRunner's crash report information
ap@apple.com [Fri, 6 May 2016 02:40:50 +0000 (02:40 +0000)]
Improve HTTP test names in WebKitTestRunner's crash report information
https://bugs.webkit.org/show_bug.cgi?id=157389

Reviewed by Alex Christensen.

* WebKitTestRunner/InjectedBundle/cocoa/InjectedBundlePageCocoa.mm:
(WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame): Added a FIXME.

* WebKitTestRunner/cocoa/CrashReporterInfo.mm:
(WTR::testDescription): Don't bail out if the port is neither 8000 nor 8443; we
use other port numbers too. For http tests, return the complete URL string, not
just the path.

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

4 years agoModern IDB (Workers): Get everything to the right threads.
beidson@apple.com [Fri, 6 May 2016 02:33:20 +0000 (02:33 +0000)]
Modern IDB (Workers): Get everything to the right threads.
https://bugs.webkit.org/show_bug.cgi?id=157398

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No current change in behavior, will be tested as bug 149953 is resolved, enabling IDB in workers).

* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::postCrossThreadTask): Add a helper to post a CrossThreadTask to a context.

* Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::performCallbackOnCorrectThread): Helper to perform an IDB callback on either the main thread
  or Worker thread as necessary.
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::createObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::deleteObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::clearObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::createIndex):
(WebCore::IDBClient::IDBConnectionProxy::deleteIndex):
(WebCore::IDBClient::IDBConnectionProxy::putOrAdd):
(WebCore::IDBClient::IDBConnectionProxy::getRecord):
(WebCore::IDBClient::IDBConnectionProxy::getCount):
(WebCore::IDBClient::IDBConnectionProxy::deleteRecord):
(WebCore::IDBClient::IDBConnectionProxy::openCursor):
(WebCore::IDBClient::IDBConnectionProxy::iterateCursor):
(WebCore::IDBClient::IDBConnectionProxy::completeOperation):
(WebCore::IDBClient::IDBConnectionProxy::abortOpenAndUpgradeNeeded):
(WebCore::IDBClient::IDBConnectionProxy::fireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionProxy::didFireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionProxy::notifyOpenDBRequestBlocked):
(WebCore::IDBClient::IDBConnectionProxy::establishTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didStartTransaction):
(WebCore::IDBClient::IDBConnectionProxy::commitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didCommitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::abortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didAbortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBClient::IDBConnectionProxy::databaseConnectionClosed):
(WebCore::IDBClient::IDBConnectionProxy::scheduleMainThreadTasks):
(WebCore::IDBClient::IDBConnectionProxy::handleMainThreadTasks):
* Modules/indexeddb/client/IDBConnectionProxy.h:
(WebCore::IDBClient::IDBConnectionProxy::callConnectionOnMainThread): Helper to marshall IDB operations from the
  Worker thread to the main thread.
(WebCore::IDBClient::IDBConnectionProxy::postMainThreadTask):

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::originThreadID):
* Modules/indexeddb/IDBTransaction.h:

* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::putOrAdd):
* Modules/indexeddb/client/IDBConnectionToServer.h:

* Modules/indexeddb/client/IDBConnectionToServerDelegate.h:

* Modules/indexeddb/client/TransactionOperation.cpp:
(WebCore::IDBClient::TransactionOperation::scriptExecutionContext):
* Modules/indexeddb/client/TransactionOperation.h:

* Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
(WebCore::nextClientResourceNumber):

* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::putOrAdd):
* Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit2:

* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::putOrAdd):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:

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

4 years ago[JSC] Get rid of NonNegZeroDouble, it is broken
commit-queue@webkit.org [Fri, 6 May 2016 02:30:51 +0000 (02:30 +0000)]
[JSC] Get rid of NonNegZeroDouble, it is broken
https://bugs.webkit.org/show_bug.cgi?id=157399
rdar://problem/25339647

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

The profile "NonNegZeroDouble" is fundamentally broken.

It is used by DFG to predict the result of ArithMul as being a Double
or Int32.
The problem is you are likely to mispredict, and when you do, you are
guaranteed to end up in a recompile loop.

The compile loops usually happen like this:
-We speculate you have Int32 despite producing doubles.
-We OSR exit on another node (ValueToInt32 for example) from the result of this ArithMul.
-When we compile this block again, ArithMul will do the same misprediction
 because it unconditionally predicts Int32.

The flag NonNegZeroDouble was very unlikely to be set correctly
in the first place.

In LLINT, the flag is only set on the slow path.
Since double*double is on the fast path, those cases are ignored.

In Baseline, the flag is set for any case that falls back on double
multiplication. BUT, the DFG flag was only set for nodes that spend
many iteration in slow path, which obviously does not apply to double*double.

Given the perf drawbacks and the recompile loops, I removed
the whole flag for now.

* bytecode/ValueProfile.cpp:
(WTF::printInternal):
* bytecode/ValueProfile.h:
(JSC::ResultProfile::didObserveNonInt32): Deleted.
(JSC::ResultProfile::didObserveDouble): Deleted.
(JSC::ResultProfile::didObserveNonNegZeroDouble): Deleted.
(JSC::ResultProfile::setObservedNonNegZeroDouble): Deleted.
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::makeSafe): Deleted.
* dfg/DFGNode.h:
(JSC::DFG::Node::mayHaveNonIntResult): Deleted.
* dfg/DFGNodeFlags.cpp:
(JSC::DFG::dumpNodeFlags): Deleted.
* dfg/DFGNodeFlags.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* jit/JITMulGenerator.cpp:
(JSC::JITMulGenerator::generateFastPath): Deleted.
* runtime/CommonSlowPaths.cpp:
(JSC::updateResultProfileForBinaryArithOp): Deleted.

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

4 years ago4 and 8 digit color attributes should use the crazypants algorithm, not the CSS one.
dino@apple.com [Fri, 6 May 2016 01:26:26 +0000 (01:26 +0000)]
4 and 8 digit color attributes should use the crazypants algorithm, not the CSS one.
https://bugs.webkit.org/show_bug.cgi?id=157402
<rdar://problem/26131142>

Reviewed by Simon Fraser.

Source/WebCore:

Noel and Tab from Google alerted me to the fact I broke some legacy
HTML color attributes when I added support for 4 and 8 digit hex colors
in CSS. The fix is to favor the "crazy" parsing unless we know it is a 3 or 6
digit hex value (in which case we try the CSS algorithm first).

Covered by reverting an existing test.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::addHTMLColorToStyle):

LayoutTests:

Restore the version that was there before I added support for
4 and 8 digit hex colors in CSS.

* fast/dom/attribute-legacy-colors-expected.txt:
* fast/dom/script-tests/attribute-legacy-colors.js:

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

4 years ago[GTK] Remove "region based columns" runtime feature remainings
rego@igalia.com [Fri, 6 May 2016 01:23:31 +0000 (01:23 +0000)]
[GTK] Remove "region based columns" runtime feature remainings
https://bugs.webkit.org/show_bug.cgi?id=157393

The runtime feature was removed in r168978,
and the usage in WebKitSettings.cpp in r168988.
However it was still around in ExperimentalFeatures class.

Reviewed by Michael Catanzaro.

* UIProcess/gtk/ExperimentalFeatures.cpp: Remove runtime feature.
* UIProcess/gtk/ExperimentalFeatures.h: Ditto.

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

4 years agoREGRESSION(r200422): Web Inspector: Make new Array Iterator objects play nice with...
commit-queue@webkit.org [Fri, 6 May 2016 01:15:24 +0000 (01:15 +0000)]
REGRESSION(r200422): Web Inspector: Make new Array Iterator objects play nice with Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=157361
<rdar://problem/26099793>

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

Source/JavaScriptCore:

* builtins/ArrayPrototype.js:
(createArrayIterator):
(values):
(keys):
(entries):
* builtins/TypedArrayPrototype.js:
(values):
(keys):
(entries):
* runtime/CommonIdentifiers.h:
Set the kind on the iterator object, that can be shown
to the inspector if the object is shown in the console.

* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._describe):
Get a better name for the new Array Iterator which is just an Object.

* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties):
Detect and handle ArrayIterator object instances. Porting the code
from the JSArrayIterator code path.

LayoutTests:

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

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

4 years ago[JSC] In DFG, an OSR Exit on SetLocal can trash its child node
commit-queue@webkit.org [Fri, 6 May 2016 00:05:04 +0000 (00:05 +0000)]
[JSC] In DFG, an OSR Exit on SetLocal can trash its child node
https://bugs.webkit.org/show_bug.cgi?id=157358
rdar://problem/25339647

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

When we OSR Exit on SetLocal, the child is never restored if its representation
was changed since the MovHint.

For example, say we have:
    @1 = SomethingProducingDouble()
    @2 = MovHint(@1)
    @3 = ValueRep(@1)
    @4 = SetLocal(@3, FlushedInt32)

When we lower SetLocal(), we start by speculating that @3 is an Int32.
Now this can fail if @1 was really a double.
When that happens, we go over the VariableEventStream to find where values
are, and @1 died at @3. Since the speculation failure happens before
the SetLocal event, we don't do anything with @3.

In this patch, I extend the PhantomInsertion phase to keep the MovHint
alive past the SetLocal.

* dfg/DFGPhantomInsertionPhase.cpp:
* tests/stress/multiply-typed-double-and-object.js: Added.
(otherObject.valueOf):
(targetDFG.multiply):
(targetFTL.multiply):

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

4 years ago[GTK] Add CSS Grid Layout as experimental feature
rego@igalia.com [Thu, 5 May 2016 23:59:52 +0000 (23:59 +0000)]
[GTK] Add CSS Grid Layout as experimental feature
https://bugs.webkit.org/show_bug.cgi?id=157391

Reviewed by Michael Catanzaro.

Now that we've a runtime feature again for CSS Grid Layout (r200215),
we can recover the old patch (r162215) that allows to enable/disable
CSS Grid Layout through the environment variable
WEBKITGTK_EXPERIMENTAL_FEATURES.

Example: WEBKITGTK_EXPERIMENTAL_FEATURES="CSS_GRID_LAYOUT=1"

* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsConstructed): Use new experimental feature to enable
or disable CSS Grid Layout.
* UIProcess/gtk/ExperimentalFeatures.cpp: Add new experimental feature.
* UIProcess/gtk/ExperimentalFeatures.h: Ditto.

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

4 years agoEnable separated heap by default on ios
oliver@apple.com [Thu, 5 May 2016 23:59:07 +0000 (23:59 +0000)]
Enable separated heap by default on ios
https://bugs.webkit.org/show_bug.cgi?id=156720

Reviewed by Geoffrey Garen.

We've fixed the xnu side of things, so we can reland this.

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

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

4 years agoModern IDB (Workers): Remove the need for IDBConnectionProxy to expose its IDBConnect...
beidson@apple.com [Thu, 5 May 2016 23:54:44 +0000 (23:54 +0000)]
Modern IDB (Workers): Remove the need for IDBConnectionProxy to expose its IDBConnectionToServer.
https://bugs.webkit.org/show_bug.cgi?id=157394

Reviewed by Alex Christensen.

No new tests (No current change in behavior, will be tested as bug 149953 makes progress).

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::fireVersionChangeEvent):
(WebCore::IDBDatabase::dispatchEvent):
* Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::serverConnection): Deleted.

* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::requestCompleted):

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::connectionProxy):
(WebCore::IDBTransaction::serverConnection): Deleted.
* Modules/indexeddb/IDBTransaction.h:

* Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::abortOpenAndUpgradeNeeded):
(WebCore::IDBClient::IDBConnectionProxy::connectionToServer): Deleted.
* Modules/indexeddb/client/IDBConnectionProxy.h:

* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::abortOpenAndUpgradeNeeded):

* Modules/indexeddb/client/TransactionOperation.h:
(WebCore::IDBClient::TransactionOperation::TransactionOperation):

* Modules/indexeddb/shared/IDBCursorInfo.cpp:
(WebCore::IDBCursorInfo::IDBCursorInfo):

* Modules/indexeddb/shared/IDBRequestData.cpp:
(WebCore::IDBRequestData::IDBRequestData):

* Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):
* Modules/indexeddb/shared/IDBResourceIdentifier.h:

* Modules/indexeddb/shared/IDBTransactionInfo.cpp:
(WebCore::IDBTransactionInfo::clientTransaction):
* Modules/indexeddb/shared/IDBTransactionInfo.h:

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

4 years agoUnreviewed, rolling out r200479.
commit-queue@webkit.org [Thu, 5 May 2016 23:30:21 +0000 (23:30 +0000)]
Unreviewed, rolling out r200479.
https://bugs.webkit.org/show_bug.cgi?id=157397

A LayoutTest added with this change is crashing on Mac WK1
test runs. (Requested by ryanhaddad on #webkit).

Reverted changeset:

"For keyboard users, activating a fragment URL should transfer
focus and caret to the destination"
https://bugs.webkit.org/show_bug.cgi?id=116046
http://trac.webkit.org/changeset/200479

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

4 years agoCORS check is sometimes incorrectly failing for media loads
cdumez@apple.com [Thu, 5 May 2016 23:27:08 +0000 (23:27 +0000)]
CORS check is sometimes incorrectly failing for media loads
https://bugs.webkit.org/show_bug.cgi?id=157370
<rdar://problem/26071607>

Reviewed by Alex Christensen.

Source/WebCore:

When the media library is issuing a conditional request for a media
element that had the 'crossorigin' attribute, we would fail the CORS
check and log an error if the server were to respond with a "304 Not
Modified" response because the 304 response usually does not have
the necessary "Access-Control-Allow-Origin: *" header (At least for
Apache) and we cannot use the cached headers either since WebKit
does not have them.

To work around the problem in the short term, we now drop the
conditional headers from the request that the media library is
giving us when the media element has the 'crossorigin' attribute
set. As a result, the server will never respond with a 304 and we
will be able to do a CORS check on the full (e.g. 206) response.

In the long term, we need to deal with this better as this means
we may sometimes fail to reuse cached data. For now, this is only
potentially inefficient in the cases that were broken (i.e. no
video would play and we would log an error in the console).

Test: http/tests/security/video-cross-origin-caching.html

* loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource):
Make the request unconditional if the media element has the
'crossorigin' attribute set.

* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::isConditional):
(WebCore::ResourceRequestBase::makeUnconditional):
When fixing the bug above, I noticed that those method do not do
the right thing if the m_httpHeaderFields data member has not
been populated yet. m_httpHeaderFields is lazily initialized so
we need to call updateResourceRequest() before using it.

LayoutTests:

Add a regression test for <rdar://problem/26071607>.

* http/tests/media/resources/reference.mov: Added.
* http/tests/security/resources/reference-movie-cross-origin-allow.php: Added.
* http/tests/security/video-cross-origin-caching-expected.txt: Added.
* http/tests/security/video-cross-origin-caching.html: Added.

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

4 years agoStop traversing at the container block when computing RTL inline static distance.
zalan@apple.com [Thu, 5 May 2016 23:25:39 +0000 (23:25 +0000)]
Stop traversing at the container block when computing RTL inline static distance.
https://bugs.webkit.org/show_bug.cgi?id=157349
<rdar://problem/25994087>

Reviewed by David Hyatt.

When computing the inline static distance for a child renderer, we start at its enclosing box
and traverse up all the way to the container block.
However when the enclosing box is the ancestor of the container block, we
should just bail out right away since there's no container to use to adjust the position.

Source/WebCore:

Test: fast/multicol/positioned-rtl-column-crash.html

* rendering/RenderBox.cpp:
(WebCore::computeInlineStaticDistance):

LayoutTests:

* fast/multicol/positioned-rtl-column-crash-expected.txt: Added.
* fast/multicol/positioned-rtl-column-crash.html: Added.

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

4 years agoAdd WebKitAdditions extension points in media controls related code in RenderThemeMac
adachan@apple.com [Thu, 5 May 2016 23:22:47 +0000 (23:22 +0000)]
Add WebKitAdditions extension points in media controls related code in RenderThemeMac
https://bugs.webkit.org/show_bug.cgi?id=157390

Reviewed by Anders Carlsson.

* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::mediaControlsStyleSheet):
(WebCore::RenderThemeMac::mediaControlsScript):

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

4 years ago[WK2] Media controls don't update if controller is created after the interface is...
jer.noble@apple.com [Thu, 5 May 2016 23:18:20 +0000 (23:18 +0000)]
[WK2] Media controls don't update if controller is created after the interface is created
https://bugs.webkit.org/show_bug.cgi?id=157376

Reviewed by Beth Dakin.

Source/WebCore:

Add getter methods to WebPlaybackSessionModel so that the model's values can be retrieved
if those values were missed before the equivalent WebPlaybackSessionInterface methods were
called. This necessatates a bunch of changes in HTMLMediaElement and related classes to
change PassRefPtr<TimeRanges> types to Ref<TimeRanges> (and one change in TimeRanges itself).
WebPlaybackSessionModelMediaElement can implement these new getter methods by querying the
values from the HTMLMediaElement, something it was doing already, so most of those changes
are simple refactoring.

There's no reason any longer for WebVideoFullscreenModel to inherit from WebPlaybackSessionModel,
so remove that superclass.

In WebPlaybackSessionInterfaceMac, when a new WebPlaybackControlsManager is set, use the new
getter methods on WebPlaybackSessionModel to update the values in the manager.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
(WebCore::HTMLMediaElement::maxBufferedTime):
(WebCore::HTMLMediaElement::played):
(WebCore::HTMLMediaElement::buffered): Deleted.
(WebCore::HTMLMediaElement::seekable): Deleted.
* html/HTMLMediaElement.h:
* html/MediaController.cpp:
(MediaController::buffered):
(MediaController::seekable):
(MediaController::played):
* html/MediaController.h:
* html/MediaControllerInterface.h:
* html/TimeRanges.cpp:
(WebCore::TimeRanges::copy):
* html/TimeRanges.h:
* platform/cocoa/WebPlaybackSessionModel.h:
* platform/cocoa/WebPlaybackSessionModelMediaElement.h:
* platform/cocoa/WebPlaybackSessionModelMediaElement.mm:
(WebPlaybackSessionModelMediaElement::setWebPlaybackSessionInterface):
(WebPlaybackSessionModelMediaElement::updateForEventName):
(WebPlaybackSessionModelMediaElement::updateLegibleOptions):
(WebPlaybackSessionModelMediaElement::observedEventNames):
(WebPlaybackSessionModelMediaElement::eventNameAll):
(WebPlaybackSessionModelMediaElement::duration):
(WebPlaybackSessionModelMediaElement::currentTime):
(WebPlaybackSessionModelMediaElement::bufferedTime):
(WebPlaybackSessionModelMediaElement::isPlaying):
(WebPlaybackSessionModelMediaElement::playbackRate):
(WebPlaybackSessionModelMediaElement::seekableRanges):
(WebPlaybackSessionModelMediaElement::canPlayFastReverse):
(WebPlaybackSessionModelMediaElement::audioMediaSelectionOptions):
(WebPlaybackSessionModelMediaElement::audioMediaSelectedIndex):
(WebPlaybackSessionModelMediaElement::legibleMediaSelectionOptions):
(WebPlaybackSessionModelMediaElement::legibleMediaSelectedIndex):
(WebPlaybackSessionModelMediaElement::externalPlaybackEnabled):
(WebPlaybackSessionModelMediaElement::wirelessVideoPlaybackDisabled):
* platform/cocoa/WebVideoFullscreenModel.h:
* platform/cocoa/WebVideoFullscreenModelVideoElement.h:
* platform/cocoa/WebVideoFullscreenModelVideoElement.mm:
(WebVideoFullscreenModelVideoElement::requestFullscreenMode): Deleted.
(WebVideoFullscreenModelVideoElement::setVideoLayerFrame): Deleted.
(WebVideoFullscreenModelVideoElement::setVideoLayerGravity): Deleted.
(WebVideoFullscreenModelVideoElement::observedEventNames): Deleted.
(WebVideoFullscreenModelVideoElement::eventNameAll): Deleted.
(WebVideoFullscreenModelVideoElement::fullscreenModeChanged): Deleted.
* platform/ios/WebPlaybackSessionInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::play): Deleted.
(WebVideoFullscreenControllerContext::pause): Deleted.
(WebVideoFullscreenControllerContext::togglePlayState): Deleted.
(WebVideoFullscreenControllerContext::beginScrubbing): Deleted.
(WebVideoFullscreenControllerContext::endScrubbing): Deleted.
(WebVideoFullscreenControllerContext::seekToTime): Deleted.
(WebVideoFullscreenControllerContext::fastSeek): Deleted.
(WebVideoFullscreenControllerContext::beginScanningForward): Deleted.
(WebVideoFullscreenControllerContext::beginScanningBackward): Deleted.
(WebVideoFullscreenControllerContext::endScanning): Deleted.
(WebVideoFullscreenControllerContext::selectAudioMediaOption): Deleted.
(WebVideoFullscreenControllerContext::selectLegibleMediaOption): Deleted.
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
* platform/mac/WebPlaybackSessionInterfaceMac.mm:
(WebCore::timeRangesToArray):
(WebCore::WebPlaybackSessionInterfaceMac::setSeekableRanges):
(WebCore::WebPlaybackSessionInterfaceMac::setPlayBackControlsManager):
* platform/mac/WebVideoFullscreenInterfaceMac.h:

Source/WebKit2:

Implement the new getter methods on WebPlaybackSessionModelContext by caching the values
passed through WebPlaybackSessionManagerProxy.

* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:
(WebKit::WebPlaybackSessionManagerProxy::setCurrentTime):
(WebKit::WebPlaybackSessionManagerProxy::setBufferedTime):
(WebKit::WebPlaybackSessionManagerProxy::setSeekableRangesVector):
(WebKit::WebPlaybackSessionManagerProxy::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionManagerProxy::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setExternalPlaybackProperties):
(WebKit::WebPlaybackSessionManagerProxy::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManagerProxy::setDuration):
(WebKit::WebPlaybackSessionManagerProxy::setRate):
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenModelContext::requestFullscreenMode): Deleted.
(WebKit::WebVideoFullscreenModelContext::setVideoLayerFrame): Deleted.
(WebKit::WebVideoFullscreenModelContext::setVideoLayerGravity): Deleted.
(WebKit::WebVideoFullscreenModelContext::fullscreenModeChanged): Deleted.
(WebKit::WebVideoFullscreenModelContext::isVisible): Deleted.
(WebKit::WebVideoFullscreenModelContext::didSetupFullscreen): Deleted.
(WebKit::WebVideoFullscreenModelContext::didEnterFullscreen): Deleted.
(WebKit::WebVideoFullscreenModelContext::didExitFullscreen): Deleted.
(WebKit::WebVideoFullscreenModelContext::didCleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy): Deleted.

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

4 years agoModern IDB (Workers): Move TransactionOperation management from IDBConnectionToServer...
beidson@apple.com [Thu, 5 May 2016 23:11:13 +0000 (23:11 +0000)]
Modern IDB (Workers): Move TransactionOperation management from IDBConnectionToServer to IDBConnectionProxy.
https://bugs.webkit.org/show_bug.cgi?id=157392

Reviewed by Alex Christensen.

No new tests (No current change in behavior, will be tested as bug 149953 makes progress).

Set up TransactionOperations on the IDBConnectionProxy instead of the IDBConnectionToServer:
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::createObjectStoreOnServer):
(WebCore::IDBTransaction::createIndexOnServer):
(WebCore::IDBTransaction::openCursorOnServer):
(WebCore::IDBTransaction::iterateCursorOnServer):
(WebCore::IDBTransaction::getRecordOnServer):
(WebCore::IDBTransaction::getCountOnServer):
(WebCore::IDBTransaction::deleteRecordOnServer):
(WebCore::IDBTransaction::clearObjectStoreOnServer):
(WebCore::IDBTransaction::putOrAddOnServer):
(WebCore::IDBTransaction::deleteObjectStoreOnServer):
(WebCore::IDBTransaction::deleteIndexOnServer):

IDBConnectionProxy is now the owner of dispatched TransactionOperations:
* Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::createObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::deleteObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::clearObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::createIndex):
(WebCore::IDBClient::IDBConnectionProxy::deleteIndex):
(WebCore::IDBClient::IDBConnectionProxy::putOrAdd):
(WebCore::IDBClient::IDBConnectionProxy::getRecord):
(WebCore::IDBClient::IDBConnectionProxy::getCount):
(WebCore::IDBClient::IDBConnectionProxy::deleteRecord):
(WebCore::IDBClient::IDBConnectionProxy::openCursor):
(WebCore::IDBClient::IDBConnectionProxy::iterateCursor):
(WebCore::IDBClient::IDBConnectionProxy::saveOperation):
(WebCore::IDBClient::IDBConnectionProxy::completeOperation):
* Modules/indexeddb/client/IDBConnectionProxy.h:

Proxy this in-and-out calls to the ConnectionProxy:
* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::createObjectStore):
(WebCore::IDBClient::IDBConnectionToServer::didCreateObjectStore):
(WebCore::IDBClient::IDBConnectionToServer::deleteObjectStore):
(WebCore::IDBClient::IDBConnectionToServer::didDeleteObjectStore):
(WebCore::IDBClient::IDBConnectionToServer::clearObjectStore):
(WebCore::IDBClient::IDBConnectionToServer::didClearObjectStore):
(WebCore::IDBClient::IDBConnectionToServer::createIndex):
(WebCore::IDBClient::IDBConnectionToServer::didCreateIndex):
(WebCore::IDBClient::IDBConnectionToServer::deleteIndex):
(WebCore::IDBClient::IDBConnectionToServer::didDeleteIndex):
(WebCore::IDBClient::IDBConnectionToServer::putOrAdd):
(WebCore::IDBClient::IDBConnectionToServer::didPutOrAdd):
(WebCore::IDBClient::IDBConnectionToServer::getRecord):
(WebCore::IDBClient::IDBConnectionToServer::didGetRecord):
(WebCore::IDBClient::IDBConnectionToServer::getCount):
(WebCore::IDBClient::IDBConnectionToServer::didGetCount):
(WebCore::IDBClient::IDBConnectionToServer::deleteRecord):
(WebCore::IDBClient::IDBConnectionToServer::didDeleteRecord):
(WebCore::IDBClient::IDBConnectionToServer::openCursor):
(WebCore::IDBClient::IDBConnectionToServer::didOpenCursor):
(WebCore::IDBClient::IDBConnectionToServer::iterateCursor):
(WebCore::IDBClient::IDBConnectionToServer::didIterateCursor):
(WebCore::IDBClient::IDBConnectionToServer::saveOperation): Deleted.
(WebCore::IDBClient::IDBConnectionToServer::completeOperation): Deleted.
* Modules/indexeddb/client/IDBConnectionToServer.h:

- Give TransactionOperation a ThreadIdentifier member
- Privatize most public methods from TransactionOperation
- Make IDBRequestData a friend so it can get at the private methods
* Modules/indexeddb/client/TransactionOperation.h:
(WebCore::IDBClient::TransactionOperation::~TransactionOperation):
(WebCore::IDBClient::TransactionOperation::perform):
(WebCore::IDBClient::TransactionOperation::completed):
(WebCore::IDBClient::TransactionOperation::originThreadID):
(WebCore::IDBClient::TransactionOperation::transactionIdentifier):
(WebCore::IDBClient::TransactionOperation::objectStoreIdentifier):
(WebCore::IDBClient::TransactionOperation::indexIdentifier):
(WebCore::IDBClient::TransactionOperation::cursorIdentifier):
(WebCore::IDBClient::TransactionOperation::transaction):
(WebCore::IDBClient::TransactionOperation::indexRecordType):

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

4 years agoUnskip 9 compositing tests on ios-simulator, mark 2 as failures on ios-simulator-wk1
ryanhaddad@apple.com [Thu, 5 May 2016 23:05:37 +0000 (23:05 +0000)]
Unskip 9 compositing tests on ios-simulator, mark 2 as failures on ios-simulator-wk1

Unreviewed test gardening.

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

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

4 years agoTestExpectations gardening for ios-simulator
ryanhaddad@apple.com [Thu, 5 May 2016 22:27:23 +0000 (22:27 +0000)]
TestExpectations gardening for ios-simulator

Unreviewed test gardening.

Remove failure expectation for passing tests, move some to more specific ports, and remove expectations
for tests that are no longer in the tree.

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

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

4 years agoDo not attempt to compute min/max width.
zalan@apple.com [Thu, 5 May 2016 22:16:43 +0000 (22:16 +0000)]
Do not attempt to compute min/max width.
https://bugs.webkit.org/show_bug.cgi?id=157320

Reviewed by David Hyatt.

Replaced elements with no intrinsic size (only with ratio) should not call the containing
block to compute the min/max width when the containing block's min/max width
depends on the children's intrinsic size. It could lead to infinite recursion.

Source/WebCore:

Test: fast/replaced/before-content-intrinsic-crash.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth): Unrelated code change.
* rendering/RenderImage.cpp: Unrelated code change.
(WebCore::RenderImage::RenderImage): Deleted.
* rendering/RenderImage.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalWidth):

LayoutTests:

* fast/replaced/before-content-intrinsic-crash-expected.txt: Added.
* fast/replaced/before-content-intrinsic-crash.html: Added.

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

4 years agoModern IDB: Move all IDB DOM object management from IDBConnectionToServer to IDBConne...
beidson@apple.com [Thu, 5 May 2016 22:14:08 +0000 (22:14 +0000)]
Modern IDB: Move all IDB DOM object management from IDBConnectionToServer to IDBConnectionProxy.
https://bugs.webkit.org/show_bug.cgi?id=157348

Reviewed by Alex Christensen.

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

This is in-progress IDB-in-Workers code that is isolated enough to land right now.

The goal is to have IDBConnectionToServer be a main-thread-only object, leaving IDBConnectionProxy
as the threading bridge between the worker thread and the main thread.

As such, IDBConnectionToServer no longer maintains maps of IDB DOM objects, but instead the proxy
does and guards that access with locks.

No threading changes takes place in this patch but it does scatter some isMainThread() checks and FIXMEs
accurately representing where threading changes will take place once I can return to this.

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::IDBDatabase):
(WebCore::IDBDatabase::~IDBDatabase):
(WebCore::IDBDatabase::maybeCloseInServer):

* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::dispatchEvent):

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::abortOnServerAndCancelRequests):
(WebCore::IDBTransaction::commitOnServer):
(WebCore::IDBTransaction::establishOnServer):

* Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
(WebCore::IDBClient::IDBConnectionProxy::didOpenDatabase):
(WebCore::IDBClient::IDBConnectionProxy::didDeleteDatabase):
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::fireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionProxy::didFireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionProxy::notifyOpenDBRequestBlocked):
(WebCore::IDBClient::IDBConnectionProxy::establishTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didStartTransaction):
(WebCore::IDBClient::IDBConnectionProxy::commitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didCommitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::abortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didAbortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::hasRecordOfTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBClient::IDBConnectionProxy::databaseConnectionClosed):
(WebCore::IDBClient::IDBConnectionProxy::registerDatabaseConnection):
(WebCore::IDBClient::IDBConnectionProxy::unregisterDatabaseConnection):
* Modules/indexeddb/client/IDBConnectionProxy.h:

* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::deleteDatabase):
(WebCore::IDBClient::IDBConnectionToServer::didDeleteDatabase):
(WebCore::IDBClient::IDBConnectionToServer::openDatabase):
(WebCore::IDBClient::IDBConnectionToServer::didOpenDatabase):
(WebCore::IDBClient::IDBConnectionToServer::establishTransaction):
(WebCore::IDBClient::IDBConnectionToServer::commitTransaction):
(WebCore::IDBClient::IDBConnectionToServer::didCommitTransaction):
(WebCore::IDBClient::IDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBClient::IDBConnectionToServer::abortTransaction):
(WebCore::IDBClient::IDBConnectionToServer::didAbortTransaction):
(WebCore::IDBClient::IDBConnectionToServer::fireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionToServer::didFireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionToServer::didStartTransaction):
(WebCore::IDBClient::IDBConnectionToServer::notifyOpenDBRequestBlocked):
(WebCore::IDBClient::IDBConnectionToServer::databaseConnectionClosed):
(WebCore::IDBClient::IDBConnectionToServer::registerDatabaseConnection): Deleted.
(WebCore::IDBClient::IDBConnectionToServer::unregisterDatabaseConnection): Deleted.
(WebCore::IDBClient::IDBConnectionToServer::hasRecordOfTransaction): Deleted.
* Modules/indexeddb/client/IDBConnectionToServer.h:

* Modules/indexeddb/shared/IDBRequestData.cpp:
(WebCore::IDBRequestData::IDBRequestData):
* Modules/indexeddb/shared/IDBRequestData.h:

* Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):
* Modules/indexeddb/shared/IDBResourceIdentifier.h:

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

4 years agoModern IDB: Add isolatedCopy to a few more objects.
beidson@apple.com [Thu, 5 May 2016 22:14:02 +0000 (22:14 +0000)]
Modern IDB: Add isolatedCopy to a few more objects.
https://bugs.webkit.org/show_bug.cgi?id=157330

Reviewed by Alex Christensen.

No new tests (No current change in behavior, will be tested as bug 149953 makes progress).

* Modules/indexeddb/shared/IDBRequestData.cpp:
(WebCore::IDBRequestData::IDBRequestData):
(WebCore::IDBRequestData::isolatedCopy):
* Modules/indexeddb/shared/IDBRequestData.h:

* Modules/indexeddb/shared/IDBResultData.cpp:
(WebCore::IDBResultData::IDBResultData):
(WebCore::IDBResultData::isolatedCopy):
* Modules/indexeddb/shared/IDBResultData.h:

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

4 years agoModern IDB: Add thread identifiers and assertions to IDB DOM objects.
beidson@apple.com [Thu, 5 May 2016 22:13:58 +0000 (22:13 +0000)]
Modern IDB: Add thread identifiers and assertions to IDB DOM objects.
https://bugs.webkit.org/show_bug.cgi?id=157329

Reviewed by Alex Christensen.

No new tests (No current change in behavior, will be tested as bug 149953 makes progress).

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::~IDBCursor):
(WebCore::IDBCursor::sourcesDeleted):
(WebCore::IDBCursor::transaction):
(WebCore::IDBCursor::direction):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::uncheckedIterateCursor):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::~IDBDatabase):
(WebCore::IDBDatabase::hasPendingActivity):
(WebCore::IDBDatabase::name):
(WebCore::IDBDatabase::version):
(WebCore::IDBDatabase::objectStoreNames):
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::close):
(WebCore::IDBDatabase::maybeCloseInServer):
(WebCore::IDBDatabase::activeDOMObjectName):
(WebCore::IDBDatabase::canSuspendForDocumentSuspension):
(WebCore::IDBDatabase::stop):
(WebCore::IDBDatabase::startVersionChangeTransaction):
(WebCore::IDBDatabase::didStartTransaction):
(WebCore::IDBDatabase::willCommitTransaction):
(WebCore::IDBDatabase::didCommitTransaction):
(WebCore::IDBDatabase::willAbortTransaction):
(WebCore::IDBDatabase::didAbortTransaction):
(WebCore::IDBDatabase::didCommitOrAbortTransaction):
(WebCore::IDBDatabase::fireVersionChangeEvent):
(WebCore::IDBDatabase::dispatchEvent):
(WebCore::IDBDatabase::didCreateIndexInfo):
(WebCore::IDBDatabase::didDeleteIndexInfo):
* Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::originThreadID):

* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::IDBIndex):
(WebCore::IDBIndex::~IDBIndex):
(WebCore::IDBIndex::name):
(WebCore::IDBIndex::objectStore):
(WebCore::IDBIndex::keyPath):
(WebCore::IDBIndex::unique):
(WebCore::IDBIndex::multiEntry):
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::doGetKey):
(WebCore::IDBIndex::markAsDeleted):

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::IDBObjectStore):
(WebCore::IDBObjectStore::~IDBObjectStore):
(WebCore::IDBObjectStore::name):
(WebCore::IDBObjectStore::keyPath):
(WebCore::IDBObjectStore::indexNames):
(WebCore::IDBObjectStore::transaction):
(WebCore::IDBObjectStore::autoIncrement):
(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::putOrAdd):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
(WebCore::IDBObjectStore::doCount):
(WebCore::IDBObjectStore::markAsDeleted):
(WebCore::IDBObjectStore::rollbackInfoForVersionChangeAbort):

* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::~IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onError):
(WebCore::IDBOpenDBRequest::versionChangeTransactionDidFinish):
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::dispatchEvent):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::onDeleteDatabaseSuccess):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::requestBlocked):

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::~IDBRequest):
(WebCore::IDBRequest::errorCode):
(WebCore::IDBRequest::error):
(WebCore::IDBRequest::setSource):
(WebCore::IDBRequest::setVersionChangeTransaction):
(WebCore::IDBRequest::transaction):
(WebCore::IDBRequest::readyState):
(WebCore::IDBRequest::sourceObjectStoreIdentifier):
(WebCore::IDBRequest::sourceIndexIdentifier):
(WebCore::IDBRequest::requestedIndexRecordType):
(WebCore::IDBRequest::eventTargetInterface):
(WebCore::IDBRequest::activeDOMObjectName):
(WebCore::IDBRequest::canSuspendForDocumentSuspension):
(WebCore::IDBRequest::hasPendingActivity):
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::enqueueEvent):
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
(WebCore::IDBRequest::clearResult):
(WebCore::IDBRequest::setResultToUndefined):
(WebCore::IDBRequest::resultCursor):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):
(WebCore::IDBRequest::requestCompleted):
(WebCore::IDBRequest::onError):
(WebCore::IDBRequest::onSuccess):
* Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::originThreadID):

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::~IDBTransaction):
(WebCore::IDBTransaction::mode):
(WebCore::IDBTransaction::db):
(WebCore::IDBTransaction::serverConnection):
(WebCore::IDBTransaction::error):
(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::abortDueToFailedRequest):
(WebCore::IDBTransaction::transitionedToFinishing):
(WebCore::IDBTransaction::abort):
(WebCore::IDBTransaction::abortOnServerAndCancelRequests):
(WebCore::IDBTransaction::activeDOMObjectName):
(WebCore::IDBTransaction::canSuspendForDocumentSuspension):
(WebCore::IDBTransaction::hasPendingActivity):
(WebCore::IDBTransaction::stop):
(WebCore::IDBTransaction::isActive):
(WebCore::IDBTransaction::isFinishedOrFinishing):
(WebCore::IDBTransaction::addRequest):
(WebCore::IDBTransaction::removeRequest):
(WebCore::IDBTransaction::scheduleOperation):
(WebCore::IDBTransaction::scheduleOperationTimer):
(WebCore::IDBTransaction::operationTimerFired):
(WebCore::IDBTransaction::commit):
(WebCore::IDBTransaction::commitOnServer):
(WebCore::IDBTransaction::finishAbortOrCommit):
(WebCore::IDBTransaction::didStart):
(WebCore::IDBTransaction::notifyDidAbort):
(WebCore::IDBTransaction::didAbort):
(WebCore::IDBTransaction::didCommit):
(WebCore::IDBTransaction::fireOnComplete):
(WebCore::IDBTransaction::fireOnAbort):
(WebCore::IDBTransaction::enqueueEvent):
(WebCore::IDBTransaction::dispatchEvent):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::createObjectStoreOnServer):
(WebCore::IDBTransaction::didCreateObjectStoreOnServer):
(WebCore::IDBTransaction::createIndex):
(WebCore::IDBTransaction::createIndexOnServer):
(WebCore::IDBTransaction::didCreateIndexOnServer):
(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::openCursorOnServer):
(WebCore::IDBTransaction::didOpenCursorOnServer):
(WebCore::IDBTransaction::iterateCursor):
(WebCore::IDBTransaction::iterateCursorOnServer):
(WebCore::IDBTransaction::didIterateCursorOnServer):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::getRecordOnServer):
(WebCore::IDBTransaction::didGetRecordOnServer):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::getCountOnServer):
(WebCore::IDBTransaction::didGetCountOnServer):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::deleteRecordOnServer):
(WebCore::IDBTransaction::didDeleteRecordOnServer):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::clearObjectStoreOnServer):
(WebCore::IDBTransaction::didClearObjectStoreOnServer):
(WebCore::IDBTransaction::requestPutOrAdd):
(WebCore::IDBTransaction::putOrAddOnServer):
(WebCore::IDBTransaction::didPutOrAddOnServer):
(WebCore::IDBTransaction::deleteObjectStore):
(WebCore::IDBTransaction::deleteObjectStoreOnServer):
(WebCore::IDBTransaction::didDeleteObjectStoreOnServer):
(WebCore::IDBTransaction::deleteIndex):
(WebCore::IDBTransaction::deleteIndexOnServer):
(WebCore::IDBTransaction::didDeleteIndexOnServer):
(WebCore::IDBTransaction::operationDidComplete):
(WebCore::IDBTransaction::establishOnServer):
(WebCore::IDBTransaction::activate):
(WebCore::IDBTransaction::deactivate):

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

4 years agoJSContext Inspector: Better CommandLineAPI in JSContext inspection
commit-queue@webkit.org [Thu, 5 May 2016 22:11:59 +0000 (22:11 +0000)]
JSContext Inspector: Better CommandLineAPI in JSContext inspection
https://bugs.webkit.org/show_bug.cgi?id=157387
<rdar://problem/22630583>

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

* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._evaluateOn):
(BasicCommandLineAPI.inScopeVariables):
(BasicCommandLineAPI):
When creating a BasicCommandLineAPI, pass the call frame so
that we don't shadow variables in the callstack.

(BasicCommandLineAPI.methods):
(clear):
(table):
(profile):
(profileEnd):
(keys):
(values):
Some just pass through to console, others are tiny methods.
Implement them, and give them the expected toString string.

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

4 years agoReduce maximum JIT pool size on X86_64.
fpizlo@apple.com [Thu, 5 May 2016 21:58:23 +0000 (21:58 +0000)]
Reduce maximum JIT pool size on X86_64.

Rubber stamped by Geoffrey Garen.

This changes our maximum pool size to 100MB. The problem with letting a page allocate much
more than this is that we will sometimes call deleteAllCode() or one of its friends. Deleting
a huge amount of memory is expensive in our allocator.

So long as we allow for such large-scale code death to happen, and so long as it's expensive,
we should bound the amount of code we end up with in the first place.

In the long run, we should fix our executable allocator so that it's not so expensive to kill
all code.

* jit/ExecutableAllocator.h:

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

4 years agoReduce thresholds that control the maximum IC stub size.
fpizlo@apple.com [Thu, 5 May 2016 21:53:27 +0000 (21:53 +0000)]
Reduce thresholds that control the maximum IC stub size.

Rubber stamped by Chris Dumez and Benjamin Poulain.

This reduces the thresholds to before the megamorphic load optimizations to see if that
recovers a PLT regression.

* runtime/Options.h:

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

4 years agoFor keyboard users, activating a fragment URL should transfer focus and caret to...
n_wang@apple.com [Thu, 5 May 2016 21:38:41 +0000 (21:38 +0000)]
For keyboard users, activating a fragment URL should transfer focus and caret to the destination
https://bugs.webkit.org/show_bug.cgi?id=116046

Reviewed by Ryosuke Niwa.

Source/WebCore:

Added a sequential focus navigation starting node to document. When TAB or SHIFT-TAB is pressed
and there is no focused element, we start searching for next focus candidates at the sequential
focus navigation node.

Test: fast/events/sequential-focus-navigation-starting-point.html

* dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::destroyRenderTree):
(WebCore::Document::removeFocusedNodeOfSubtree):
(WebCore::Document::hoveredElementDidDetach):
(WebCore::Document::setFocusedElement):
(WebCore::isNodeFrameOrDocument):
(WebCore::Document::setFocusNavigationStartingNode):
(WebCore::Document::focusNavigationStartingNode):
(WebCore::Document::setCSSTarget):
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::fallbackFocusNavigationStartingNodeAfterRemoval):
(WebCore::Document::updateFocusNavigationStartingNodeWithNodeRemoval):
(WebCore::Document::textInserted):
* dom/Document.h:
(WebCore::Document::userActionElements):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusInDocumentOrder):
* page/FrameView.cpp:
(WebCore::FrameView::scrollToAnchor):

LayoutTests:

Updated fast/dom/fragment-activation-focuses-target.html, now that navigating to a unfocusable
fragment will unset the focused element.

* fast/dom/fragment-activation-focuses-target-expected.txt:
* fast/dom/fragment-activation-focuses-target.html:
* fast/events/sequential-focus-navigation-starting-point-expected.txt: Added.
* fast/events/sequential-focus-navigation-starting-point.html: Added.
* platform/ios-simulator/TestExpectations:

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

4 years agoAnother iOS debug build fix after r200464.
rniwa@webkit.org [Thu, 5 May 2016 21:31:59 +0000 (21:31 +0000)]
Another iOS debug build fix after r200464.

* dom/EventContext.h:
(WebCore::EventContext::isUnreachableNode):

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

4 years agoiOS debug build fix after r200464.
rniwa@webkit.org [Thu, 5 May 2016 21:16:36 +0000 (21:16 +0000)]
iOS debug build fix after r200464.

* dom/EventContext.cpp:
(WebCore::TouchEventContext::checkReachability):

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

4 years agoWeb Inspector: Provide go-to links next to Functions in GC Root Path popover
commit-queue@webkit.org [Thu, 5 May 2016 21:00:27 +0000 (21:00 +0000)]
Web Inspector: Provide go-to links next to Functions in GC Root Path popover
https://bugs.webkit.org/show_bug.cgi?id=157381
<rdar://problem/26122531>

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

* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPathRow):
For functions, create a go-to-link. Insert a placeholder to replace
so that the popover sizes itself with a potential go-to arrow, as
it won't resize when the go-to arrows get inserted.

* UserInterface/Views/HeapSnapshotInstancesContentView.css:
(.heap-snapshot-instance-popover-content .node .go-to-link):
Move down 1px to align better with the text.

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

4 years agoWeb Inspector: HeapSnapshot should exploratory Object Graph view
commit-queue@webkit.org [Thu, 5 May 2016 20:34:17 +0000 (20:34 +0000)]
Web Inspector: HeapSnapshot should exploratory Object Graph view
https://bugs.webkit.org/show_bug.cgi?id=157371
<rdar://problem/26107304>

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

HeapSnapshots now have two ContentViews for viewing the graph.

HeapSnapshotInstancesContentView:
  - top level are Class Categories nodes
  - categories expand to Instances
  - instances expand to show what they retain
  - retained sizes only shown for dominated nodes of the instance

HeapSnapshotObjectGraphContentView:
  - top level are GlobalObject or Window nodes
  - expand to show what they retain
  - retained sizes are shown for all nodes, everything is shown

This also provides a custom preview for Window instances. Instead of
showing an ObjectPreview, it just shows the `window.location.href`
for that instance, which is useful when there are multiple Window
instances for different frames.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
New "Object Graph" string and new files.

* UserInterface/Images/HeapSnapshotObjectGraph.svg: Added.
* UserInterface/Images/gtk/HeapSnapshotObjectGraph.svg: Added.
* UserInterface/Views/PathComponentIcons.css:
(.heap-snapshot-object-graph-icon .icon):
Copy the red [{}] icon from Style Rules.

* UserInterface/Views/HeapSnapshotClusterContentView.js:
(WebInspector.HeapSnapshotClusterContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype.get objectGraphContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype.showObjectGraph):
(WebInspector.HeapSnapshotClusterContentView.prototype._supportsObjectGraph):
(WebInspector.HeapSnapshotClusterContentView.prototype._pathComponentForContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype._identifierForContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype._showContentViewForIdentifier):
Include an "Object Graph" content view. This is unavailable in Diff views
but is available for individual HeapSnapshots.

* UserInterface/Views/HeapSnapshotContentView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/HeapSnapshotInstancesContentView.js.
(WebInspector.HeapSnapshotContentView):
(WebInspector.HeapSnapshotContentView.prototype.shown):
(WebInspector.HeapSnapshotContentView.prototype.hidden):
(WebInspector.HeapSnapshotContentView.prototype._sortDataGrid):
(WebInspector.HeapSnapshotContentView.prototype._heapSnapshotDataGridTreeDidPopulate):
(WebInspector.HeapSnapshotInstancesContentView):
(WebInspector.HeapSnapshotObjectGraphContentView):
Share and generalize a HeapSnapshot ContentView. The only differences are
the DataGrid columns, DataGridTree class, and identifier prefix for settings.

* UserInterface/Views/HeapSnapshotDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/Views/HeapSnapshotInstancesDataGridTree.js.
(WebInspector.HeapSnapshotDataGridTree):
(WebInspector.HeapSnapshotDataGridTree.buildSortComparator):
(WebInspector.HeapSnapshotDataGridTree.prototype.get heapSnapshot):
(WebInspector.HeapSnapshotDataGridTree.prototype.get visible):
(WebInspector.HeapSnapshotDataGridTree.prototype.get popover):
(WebInspector.HeapSnapshotDataGridTree.prototype.get popoverNode):
(WebInspector.HeapSnapshotDataGridTree.prototype.set popoverNode):
(WebInspector.HeapSnapshotDataGridTree.prototype.get children):
(WebInspector.HeapSnapshotDataGridTree.prototype.appendChild):
(WebInspector.HeapSnapshotDataGridTree.prototype.insertChild):
(WebInspector.HeapSnapshotDataGridTree.prototype.removeChildren):
(WebInspector.HeapSnapshotDataGridTree.prototype.set sortComparator):
(WebInspector.HeapSnapshotDataGridTree.prototype.sort):
(WebInspector.HeapSnapshotDataGridTree.prototype.shown):
(WebInspector.HeapSnapshotDataGridTree.prototype.hidden):
(WebInspector.HeapSnapshotDataGridTree.prototype.willDismissPopover):
(WebInspector.HeapSnapshotDataGridTree.prototype.get alwaysShowRetainedSize):
(WebInspector.HeapSnapshotDataGridTree.prototype.populateTopLevel):
(WebInspector.HeapSnapshotDataGridTree.prototype.didPopulate):
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.get alwaysShowRetainedSize):
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.populateTopLevel):
(WebInspector.HeapSnapshotInstancesDataGridTree):
(WebInspector.HeapSnapshotObjectGraphDataGridTree.prototype.get alwaysShowRetainedSize):
(WebInspector.HeapSnapshotObjectGraphDataGridTree.prototype.populateTopLevel):
(WebInspector.HeapSnapshotObjectGraphDataGridTree):

* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
Start using different previews based on instance type.

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populateError):
Common preview error logic. Also, don't output "Internal object" next to things
like Structure, InferredType, etc. Just don't output anything. Eventually, if
we provide preview data, something will show, but for now nothing is fine.

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populateWindowPreview.inspectedPage_window_getLocationHref):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populateWindowPreview):
Custom preview logic for Window's gets `window.location.href` on the instance if it is alive.

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populatePreview):
Normal preview logic.

* UserInterface/Views/HeapSnapshotInstancesContentView.css:
(.heap-snapshot > .data-grid tr:not(.selected) td .preview-error): Deleted.
The red text for errors was standing out too much. Make it the default black.

* UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotTimelineRecord):
Better variable name.

* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.inspectedPage_evalResult_getArrayCompletions):
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.inspectedPage_evalResult_getCompletions):
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.getArrayCompletions): Deleted.
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.getCompletions): Deleted.
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):
Try to be clearer about functions that run on the inspected page
by using the pattern with inspectedPage_<thisObject>_functionName.

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

4 years agoShadow DOM should not be experimental
dino@apple.com [Thu, 5 May 2016 20:27:12 +0000 (20:27 +0000)]
Shadow DOM should not be experimental
https://bugs.webkit.org/show_bug.cgi?id=157384
<rdar://problem/26123254>

Reviewed by Anders Carlsson.

Shadow DOM is not an experimental feature. We want
it enabled by default.

This fixes the timeout in:
WebKit2.InjectedBundleMakeAllShadowRootOpenTest

* Shared/WebPreferencesDefinitions.h: Move the Shadow
DOM preference out of Experimental.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

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

4 years ago[GTK] Unreviewed gardening.
clopez@igalia.com [Thu, 5 May 2016 20:14:56 +0000 (20:14 +0000)]
[GTK] Unreviewed gardening.

* platform/gtk/TestExpectations: Add more HiDPI tests failing.

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

4 years agoWeb Inspector: Console is unresponsive for >10 seconds when it tries to render 10...
nvasilyev@apple.com [Thu, 5 May 2016 20:12:20 +0000 (20:12 +0000)]
Web Inspector: Console is unresponsive for >10 seconds when it tries to render 10,000 messages
https://bugs.webkit.org/show_bug.cgi?id=157368
<rdar://problem/26103657>

Reviewed by Timothy Hatcher.

Render only up to 100 messages per animation frame to keep the Inspector's UI responsive.

* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.renderPendingMessages):

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

4 years agoRevert r200390, thus putting r199259 and r200161 and back.
simon.fraser@apple.com [Thu, 5 May 2016 20:01:13 +0000 (20:01 +0000)]
Revert r200390, thus putting r199259 and r200161 and back.

Source/WebCore:

* loader/HistoryController.cpp:
(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
* page/FrameView.cpp:
(WebCore::FrameView::adjustTiledBackingScrollability):
* page/Page.h:
(WebCore::Page::obscuredInset):
(WebCore::Page::setObscuredInset):
(WebCore::Page::enclosedInScrollableAncestorView):
(WebCore::Page::setEnclosedInScrollableAncestorView):
* platform/ScrollView.h:
(WebCore::ScrollView::platformObscuredInset): Deleted.
(WebCore::ScrollView::platformSetObscuredInset): Deleted.

Source/WebKit2:

* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::enclosedInScrollableAncestorView):
(WebKit::operator==):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didInvokeUIScrollViewDelegateCallback]):
(-[WKWebView _didFinishScrolling]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewDidZoom:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
(-[WKWebView _scrollViewDidInterruptDecelerating:]):
(-[WKWebView _visibleRectInEnclosingScrollView:]):
(-[WKWebView _visibleContentRect]):
(-[WKWebView _didScroll]):
(-[WKWebView _enclosingScrollerScrollingEnded:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _updateVisibleContentRectAfterScrollInView:]):
(scrollViewCanScroll):
(-[WKWebView _updateContentRectsWithState:]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]): Deleted.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::updateVisibleContentRects):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):

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

4 years agoFix the build.
weinig@apple.com [Thu, 5 May 2016 19:46:12 +0000 (19:46 +0000)]
Fix the build.

* platform/network/cf/CertificateInfo.h:

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

4 years agoWe shouldn't crash if DFG AI proved that something was unreachable on one run but...
fpizlo@apple.com [Thu, 5 May 2016 19:20:23 +0000 (19:20 +0000)]
We shouldn't crash if DFG AI proved that something was unreachable on one run but then decided not to prove it on another run
https://bugs.webkit.org/show_bug.cgi?id=157379

Reviewed by Mark Lam.

Any run of DFG AI is a fixpoint that loosens the proof until it can't find any more
counterexamples to the proof.  It errs on the side of loosening proofs, i.e., on the side of
proving fewer things.

We run this fixpoint multiple times since there are multiple points in the DFG optimization
pipeline when we run DFG AI.  Each of those runs completes a fixpoint and produces the
tightest proof it can that did not result in counterexamples being found.

It's possible that on run K of DFG AI, we prove some property, but on run K+1, we don't prove
that property. The code could have changed between the two runs due to other phases. Other
phases may modify the code in such a way that it's less amenable to AI's analysis. Our design
allows this because DFG AI is not 100% precise. It defends itself from making unsound choices
or running forever by sometimes punting on proving some property. It must be able to do this,
and so therefore, it might sometimes prove fewer things on a later run.

Currently in trunk if the property that AI proves on run K but fails to prove on run K+1 is
the reachability of a piece of code, then run K+1 will crash on an assertion at the
Unreachable node. It will complain that it reached an Unreachable. But it might be reaching
that Unreachable because it failed to prove that something earlier was always exiting. That's
OK, see above.

So, we should remove the assertion that AI doesn't see Unreachable.

No new tests because I don't know how to make this happen. I believe that this happens in the
wild based on crash logs.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

4 years agoCrash if you type "debugger" in the console and continue
commit-queue@webkit.org [Thu, 5 May 2016 19:01:40 +0000 (19:01 +0000)]
Crash if you type "debugger" in the console and continue
https://bugs.webkit.org/show_bug.cgi?id=156924
<rdar://problem/25884189>

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

Source/JavaScriptCore:

* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::evaluateOnCallFrame):
Bail with an error when we are not paused.

* inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::callFunctionOn):
(Inspector::InspectorRuntimeAgent::getProperties):
(Inspector::InspectorRuntimeAgent::getDisplayableProperties):
(Inspector::InspectorRuntimeAgent::getCollectionEntries):
(Inspector::InspectorRuntimeAgent::saveResult):
Update poor error message.

Source/WebInspectorUI:

* UserInterface/Test/InspectorProtocol.js:
(InspectorProtocol.sendCommand):
Simplify sending a command with no parameters.

LayoutTests:

* inspector/debugger/evaluateOnCallFrame-errors-expected.txt: Added.
* inspector/debugger/evaluateOnCallFrame-errors.html: Added.
* inspector/protocol/backend-dispatcher-argument-errors-expected.txt:

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

4 years ago[iOS] Media information is sometimes not shown in Control Center
eric.carlson@apple.com [Thu, 5 May 2016 18:51:50 +0000 (18:51 +0000)]
[iOS] Media information is sometimes not shown in Control Center
https://bugs.webkit.org/show_bug.cgi?id=157377

Reviewed by Jer Noble.

* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Store values passed to MPNowPlayingInfoCenter
  individually instead of in a dictionary.

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

4 years agoComments on wired.com are blurry
simon.fraser@apple.com [Thu, 5 May 2016 18:36:22 +0000 (18:36 +0000)]
Comments on wired.com are blurry
https://bugs.webkit.org/show_bug.cgi?id=148630
Source/WebCore:

rdar://problem/22499655

Reviewed by Tim Horton.

Make sure to set -rasterizationScale on TileGrid container layers to avoid blurry layers
with some configurations of transforms, perspective and clipping.

Test: compositing/contents-scale/rasterization-scale.html

* platform/graphics/ca/TileController.cpp:
(WebCore::TileController::TileController): Initialize m_deviceScaleFactor before m_tileGrid,
because TileGrid's constructor needs to read the device scale.
* platform/graphics/ca/TileController.h:
* platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::TileGrid): Push a contentsScale (which also sets rasterizationScale) onto
the tile grid container layer on constructions, and in setScale().
(WebCore::TileGrid::setScale):

LayoutTests:

Reviewed by Tim Horton.

This testcase does not fail without the patch because of how WTR does snapshotting,
but some future improvement may fix that.

* compositing/contents-scale/rasterization-scale-expected.html: Added.
* compositing/contents-scale/rasterization-scale.html: Added.

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

4 years agoevent.target shouldn't be retargeted as the event bubbles into a slot
rniwa@webkit.org [Thu, 5 May 2016 18:33:17 +0000 (18:33 +0000)]
event.target shouldn't be retargeted as the event bubbles into a slot
https://bugs.webkit.org/show_bug.cgi?id=157369

Reviewed by Antti Koivisto.

Source/WebCore:

When an event bubbles up from an assigned node to its assigned slot, we shouldn't be adjusting
event.target to point to the slot. Since a shadow tree should have access to nodes outside
the shadow tree, event.target is accessible inside the shadow tree of such a slot.

New behavior matches the behavior of Google Chrome Canary as well as the shadow DOM specification:
http://w3c.github.io/webcomponents/spec/shadow/#dfn-retargeting-algorithm

Test: fast/shadow-dom/event-inside-slotted-node.html

* dom/Event.cpp:
(WebCore::Event::deepPath):
* dom/EventContext.h:
(WebCore::EventContext::isUnreachableNode): Use Node::isUnclosedNode instead of isReachable.
(WebCore::EventContext::isReachable): Deleted.
* dom/EventPath.cpp:
(WebCore::EventPath::EventPath): Don't set the target to the slot when entering a slot. Also moved
the code to adjust the target as we exit a shadow tree to the end of the outer loop for clarity.
(WebCore::isUnclosedNodeOf): Deleted. Renamed to Node::isUnclosedNode.
(WebCore::EventPath::setRelatedTarget):
(WebCore::EventPath::computePathUnclosedToTarget): Renamed from computePathDisclosedToTarget.
(WebCore::moveOutOfAllShadowRoots): Extracted from RelatedNodeRetargeter::RelatedNodeRetargeter.
(WebCore::RelatedNodeRetargeter::RelatedNodeRetargeter): Fixed a bug that we were exiting early
without setting m_hasDifferentTreeRoot true when target and relatedNode are disconnected from
a document.
(WebCore::RelatedNodeRetargeter::currentNode):
(WebCore::RelatedNodeRetargeter::checkConsistency): Updated to match the spec with one exception.
We don't use null as the adjusted related target when the (original) related target and the target
are in two distinct disconnected trees since such a behavior is not Web compatible. This spec bug is
tracked by https://github.com/w3c/webcomponents/issues/494
* dom/EventPath.h:
(WebCore::EventPath::eventTargetRespectingTargetRules): Returns Node* instead of EventTarget* since
we need a Node in RelatedNodeRetargeter::checkConsistency.
* dom/Node.cpp:
(WebCore::Node::isUnclosedNode): Moved from RelatedNodeRetargeter.cpp
* dom/Node.h:

LayoutTests:

Updated test cases to expect the target to be not adjusted to a slot element when the event path
enters one as this didn't match the spec or the behavior of Google Chrome Canary. Both WebKit and
Chrome passes the test with this change.

* fast/shadow-dom/event-inside-slotted-node.html:

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

4 years agoOn platforms that support it, use a SecTrustRef as the basis of CertificateInfo inste...
weinig@apple.com [Thu, 5 May 2016 18:23:47 +0000 (18:23 +0000)]
On platforms that support it, use a SecTrustRef as the basis of CertificateInfo instead of a chain of SecCertificateRefs.
https://bugs.webkit.org/show_bug.cgi?id=157220

Reviewed by Darin Adler.

Source/WebCore:

* platform/network/cf/CertificateInfo.h:
(WebCore::CertificateInfo::CertificateInfo):
(WebCore::CertificateInfo::trust):
(WebCore::CertificateInfo::isEmpty):
(WebCore::CertificateInfo::setCertificateChain): Deleted.
(WebCore::CertificateInfo::certificateChain): Deleted.
* platform/network/mac/CertificateInfoMac.mm:
(WebCore::CertificateInfo::type):
(WebCore::CertificateInfo::certificateChain):
(WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate):
(WebCore::CertificateInfo::dump):
When supported, allow CertificateInfo to contain a SecTrustRef instead of a certificate chain. We keep
support for holding on to a certificate chain as well, since there is API that depends on this.

* platform/network/cocoa/ResourceResponseCocoa.mm:
(WebCore::ResourceResponse::platformCertificateInfo):
When supported, use the SecTrustRef from the error instead of extracting it's certificate chain.

Source/WebKit2:

* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::leafCertificate):
(WebKit::chain):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
When supported, get the SecCertificateRef from the SecTrustRef rather than the
stored certificate chain.

* Shared/cf/ArgumentCodersCF.cpp:
(IPC::typeFromCFTypeRef):
(IPC::encode):
(IPC::decode):
* Shared/cf/ArgumentCodersCF.h:
Add support for encoding/decoding SecTrustRef objects.

* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<CertificateInfo>::encode):
(IPC::ArgumentCoder<CertificateInfo>::decode):
Add support for encoding/decoding CertificateInfo's that contain SecTrustRef objects.

(IPC::encodeNSError):
(IPC::decodeNSError):
Simplify error encoding/decoding by not using an addition CertificateInfo object for encoding
the peerCertificateChain. Also, add the peerTrust to the userInfo that get's encoded/decoded.

* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView serverTrust]):
(-[WKWebView certificateChain]):
Add new serverTrust API and deprecate certificateChain.

* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::willChangeCertificateInfo):
(WebKit::NavigationState::didChangeCertificateInfo):
Add support for KVO of -[WKWebView serverTrust].

Source/WTF:

* wtf/Platform.h:
Add support for HAVE(SEC_TRUST_SERIALIZATION).

* wtf/spi/cocoa/SecuritySPI.h:
Add SPI access to SecTrustSerialize and SecTrustDeserialize.

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

4 years agoWhen exiting fullscreen, call a JS method immediately to implement the style changes...
adachan@apple.com [Thu, 5 May 2016 18:14:48 +0000 (18:14 +0000)]
When exiting fullscreen, call a JS method immediately to implement the style changes for the presentation mode change right away
https://bugs.webkit.org/show_bug.cgi?id=157359

Reviewed by Eric Carlson.

No new tests as this is done to just mitigate a visual glitch.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::exitFullscreen):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
* html/HTMLMediaElement.h:

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

4 years agoBlocked redirected main resource requests need descriptive errors
achristensen@apple.com [Thu, 5 May 2016 17:43:04 +0000 (17:43 +0000)]
Blocked redirected main resource requests need descriptive errors
https://bugs.webkit.org/show_bug.cgi?id=156828
rdar://problem/25711316

Reviewed by Daniel Bates.

Source/WebCore:

Test: http/tests/contentextensions/main-resource-redirect-error.html

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startLoadingMainResource):
Call cancelMainResourceLoad() so that InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame()
is called to be consistent with blocked redirected main resource requests.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestInternal):
(WebCore::ResourceLoader::blockedError):
(WebCore::ResourceLoader::blockedByContentBlockerError):
(WebCore::ResourceLoader::cannotShowURLError):
* loader/ResourceLoader.h:
Use a blockedByContentBlockerError() instead of a cannotShowURLError() when we blocked the load.

Tools:

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame):
Print out the error type to make sure we have the most descriptive error type.

LayoutTests:

* http/tests/contentextensions/block-everything-if-domain-expected.txt:
Updated because the page no longer loads because the main resource was blocked.
* http/tests/contentextensions/block-everything-unless-domain-expected.txt:
* http/tests/contentextensions/block-everything-unless-domain.html:
Updated test because about:blank is no longer loaded when the main resource fails to load.
* http/tests/contentextensions/main-resource-expected.txt:
Update to reflect new behavior of calling didFailProvisionalLoadWithError instead of just didFailLoadingWithError.
* http/tests/contentextensions/main-resource-redirect-error-expected.txt: Added.
* http/tests/contentextensions/main-resource-redirect-error.html: Added.
* http/tests/contentextensions/main-resource-redirect-error.html.json: Added.
* http/tests/contentextensions/main-resource.html:

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

4 years agoRemove workaround added in r200391 (rdar://problem/25992976)
dbates@webkit.org [Thu, 5 May 2016 17:41:11 +0000 (17:41 +0000)]
Remove workaround added in r200391 (rdar://problem/25992976)
https://bugs.webkit.org/show_bug.cgi?id=157378
<rdar://problem/26118503>

Reviewed by Anders Carlsson.

Following the fix for <rdar://problem/26075714> we can remove the workaround added in r200391 (rdar://problem/25992976).

* Shared/mac/CodeSigning.mm:
(WebKit::secCodeSigningIdentifier):

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

4 years agoAdd support for delete by value to the DFG
keith_miller@apple.com [Thu, 5 May 2016 17:30:02 +0000 (17:30 +0000)]
Add support for delete by value to the DFG
https://bugs.webkit.org/show_bug.cgi?id=157372

Reviewed by Filip Pizlo.

This patch adds basic support for delete by value to the DFG. delete by value
just calls out to a C++ operation on each execution. Additionally, this patch
fixes an issue with delete by id where we would crash if the base was null
or undefined.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_del_by_val):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_del_by_val):
* tests/stress/delete-by-val.js: Added.
(assert):
(test):
* tests/stress/delete-to-object-exception.js: Added.
(assert):
(test):

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

4 years agoUnreviewed build fix after change set r200447.
msaboff@apple.com [Thu, 5 May 2016 17:14:49 +0000 (17:14 +0000)]
Unreviewed build fix after change set r200447.

Made the detection of clang version XCode build specific.
Now shouldEnableDebugAnnotations() should return false for all other build types.

* offlineasm/config.rb:

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

4 years agobugs.webkit.org: "See Also" field should support Chromium bugs
ddkilzer@apple.com [Thu, 5 May 2016 16:49:04 +0000 (16:49 +0000)]
bugs.webkit.org: "See Also" field should support Chromium bugs

Merge Bugzilla upstream master 3af55bfe0bd10a85b7cd69e26a19034a6d2e78f5.
<https://bugzilla.mozilla.org/show_bug.cgi?id=1252782>

* Bugzilla/BugUrl.pm: Add Bugzilla::BugUrl::Chromium class to
list of classes that parse supported URLs.
* Bugzilla/BugUrl/Chromium.pm: Added.
(should_handle):
(_check_value):
* template/en/default/global/user-error.html.tmpl: Update error
message.

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

4 years agoFix assertions in debug builds for the GTK+ port.
zandobersek@gmail.com [Thu, 5 May 2016 15:31:16 +0000 (15:31 +0000)]
Fix assertions in debug builds for the GTK+ port.

Rubber-stamped by Carlos Garcia Campos.

* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
Switch back to the find() + add() combo for retrieving the pointer
to the SharedGLData object stored for the specific GraphicsContext3D.
add() + isNewEntry is causing assertions in debug builds when adding
the first entry.

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

4 years ago[GStreamer] Adaptive streaming issues
carlosgc@webkit.org [Thu, 5 May 2016 13:03:46 +0000 (13:03 +0000)]
[GStreamer] Adaptive streaming issues
https://bugs.webkit.org/show_bug.cgi?id=144040

Reviewed by Philippe Normand.

In the case of adaptive streaming, the GST URI downloader object is creating the source object, in our case
WebKitWebSrc, without taking its ownership. This is breaking the lifetime of the WebKitWebSrc element. We are
using GRefPtr in WebKitWebSrc to ref/unref the object when sending notifications to the main thread, ensuring
that the object is not destroyed before the main thread dispatches the message. But our smart pointers are so
smart that in case of receiving a floating reference, it's converted to a full reference, so that the first time
we try to take a ref of a WebKitWebSrc having a floating reference we are actually taking the ownership
instead. When we try to release the reference, we are actuallty destroying the object, something that the actual
owner is not expecting and causing runtime critical warnings and very often web process crashes.

    (WebKitWebProcess:6863): GStreamer-CRITICAL **:
    Trying to dispose element appsrc1, but it is in READY instead of the NULL state.
    You need to explicitly set elements to the NULL state before
    dropping the final reference, to allow them to clean up.
    This problem may also be caused by a refcounting bug in the
    application or some element.

    (WebKitWebProcess:6863): GStreamer-CRITICAL **: gst_uri_handler_get_uri: assertion 'GST_IS_URI_HANDLER(handler)' failed

    (WebKitWebProcess:6863): GStreamer-CRITICAL **: gst_uri_get_protocol: assertion 'uri != NULL' failed

This should be fixed in GST, but we can workaround it in WebKit while it's fixed in GST or to prevent this from
happening if other users make the same mistake. The idea is to add a ensureGRef() only available for GRefPtr
when using WebKitWebSrc objects that consumes the floating reference if needed before taking the actual reference.

* platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::ensureGRef): Consume the floating ref if needed.
* platform/graphics/gstreamer/GRefPtrGStreamer.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcChangeState): Use ensureGRef().

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

4 years ago[GStreamer] Bump internal jhbuild versions to 1.8.0 and patches to support MSE
commit-queue@webkit.org [Thu, 5 May 2016 08:40:21 +0000 (08:40 +0000)]
[GStreamer] Bump internal jhbuild versions to 1.8.0 and patches to support MSE
https://bugs.webkit.org/show_bug.cgi?id=157341

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2016-05-05
Reviewed by Xabier Rodriguez-Calvar.

* gtk/jhbuild.modules:
* gtk/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Added.
* gtk/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Added.

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

4 years ago[Mac][cmake] Unreviewed speculative buildfix after r200433, just for fun.
ossy@webkit.org [Thu, 5 May 2016 08:25:23 +0000 (08:25 +0000)]
[Mac][cmake] Unreviewed speculative buildfix after r200433, just for fun.

* PlatformMac.cmake:

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

4 years agoCreate console object lazily
commit-queue@webkit.org [Thu, 5 May 2016 07:54:14 +0000 (07:54 +0000)]
Create console object lazily
https://bugs.webkit.org/show_bug.cgi?id=157328

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-05
Reviewed by Geoffrey Garen.

* runtime/CommonIdentifiers.h:
* runtime/JSGlobalObject.cpp:
(JSC::createConsoleProperty):
(JSC::JSGlobalObject::init): Deleted.

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

4 years ago[TexMap] Clean up TextureMapperShaderProgram
zandobersek@gmail.com [Thu, 5 May 2016 06:42:32 +0000 (06:42 +0000)]
[TexMap] Clean up TextureMapperShaderProgram
https://bugs.webkit.org/show_bug.cgi?id=157302

Reviewed by Carlos Garcia Campos.

Clean up the header and the implementation file of the
TextureMapperShaderProgram class. Reference the GraphicsContext3D
object through a Ref<>, and have the context() return a reference,
not a pointer.

Sort the parts of the implementation file into something more
sensible. StringBuilder usage in create() is improved. getLocation()
only needs to do one lookup in the m_variables map by using ensure().

No new tests -- no change in behavior.

* platform/graphics/surfaces/GLTransportSurface.cpp:
(WebCore::GLTransportSurface::initializeShaderProgram):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGLData::SharedGLData::getShaderProgram):
(WebCore::prepareFilterProgram):
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::create):
(WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
(WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
(WebCore::TextureMapperShaderProgram::setMatrix):
(WebCore::TextureMapperShaderProgram::getLocation):
* platform/graphics/texmap/TextureMapperShaderProgram.h:
(WebCore::TextureMapperShaderProgram::context):

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