Timeline



Sep 6, 2016:

11:40 PM Changeset in webkit [205537] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK][Threaded Compositor] Several flaky tests
https://bugs.webkit.org/show_bug.cgi?id=161242

Reviewed by Michael Catanzaro.

Source/WebKit2:

Reset the viewport attributes on SimpleViewportController when viewport attributes change and fixed layout is
not used. We were only updating the viewport attributes when fixed layout was used, but not resetting them again
when it's no longer used. That caused that reference tests run after fast/fixed-layout/fixed-layout.html or
compositing/fixed-with-fixed-layout.html in the same worker thread were incorrectly rendered.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::dispatchViewportPropertiesDidChange): Remove ifdefs and call
WebPage::viewportPropertiesDidChange() unconditionally.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setSize): Pass current page viewport arguments to sendViewportAttributesChanged().
(WebKit::WebPage::sendViewportAttributesChanged): It now receives the viewport arguments.
(WebKit::WebPage::viewportPropertiesDidChange): Move the iOS implementation from WebPageIOS.mm and for
coordinated graphics call sendViewportAttributesChanged() when fixed layout is used or reset the viewport
attributes when not used in case of threaded compositor.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::viewportPropertiesDidChange): Moved out of iOS ifdef.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::viewportPropertiesDidChange): Deleted.

LayoutTests:

Unskip compositing/fixed-with-fixed-layout.html and fast/fixed-layout/fixed-layout.html.

  • platform/gtk/TestExpectations:
11:14 PM Changeset in webkit [205536] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

Unreviewed. Fix the GTK+ build after r205524.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:

(webkit_dom_html_input_element_get_max_length):
(webkit_dom_html_input_element_set_max_length):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp:

(webkit_dom_html_text_area_element_get_max_length):
(webkit_dom_html_text_area_element_set_max_length):

7:48 PM Changeset in webkit [205535] by sbarati@apple.com
  • 6 edits
    2 adds in trunk

ProxyObject's structure should not have ObjectPrototype as its prototype and it should not have special behavior for intercepting "proto"
https://bugs.webkit.org/show_bug.cgi?id=161558

Reviewed by Benjamin Poulain.

JSTests:

  • stress/proxy-get-prototype-of.js:
  • stress/proxy-set-prototype-of.js:

(let.handler.setPrototypeOf): Deleted.

  • stress/proxy-underscore-proto.js: Added.

(assert):

Source/JavaScriptCore:

ProxyObject had ObjectPrototype as its direct prototype.
This could lead to infinite loops when doing a getDirectPrototype()
loop.

Fixing this bug revealed another bug, which I made when implementing Proxy.
We should not special case "proto" in get and set for Proxy Object's
hooks. "proto" should just go through the normal set and get path.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ProxyObject.cpp:

(JSC::performProxyGet):
(JSC::ProxyObject::put):

7:22 PM Changeset in webkit [205534] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Make JSC::PrivateName copyable
https://bugs.webkit.org/show_bug.cgi?id=161666

Reviewed by Ryosuke Niwa.

Define the custom copy constructor to make PrivateName copyable while using Ref<SymbolImpl>.
And since the custom copy constructor deletes the default move constructor, we explcitly define
it by = default;.

  • runtime/PrivateName.h:

(JSC::PrivateName::PrivateName):

6:43 PM Changeset in webkit [205533] by commit-queue@webkit.org
  • 4 edits in trunk

Unreviewed, rolling out r205521, r205526, and r205532.
https://bugs.webkit.org/show_bug.cgi?id=161668

broke API tests (Requested by alexchristensen on #webkit).

Reverted changesets:

"Punycode encode non-ascii hosts in URLParser"
https://bugs.webkit.org/show_bug.cgi?id=161655
http://trac.webkit.org/changeset/205521

"Fix query-only and fragment-only relative URLs when using
URLParser"
https://bugs.webkit.org/show_bug.cgi?id=161657
http://trac.webkit.org/changeset/205526

"URLParser should parse / as a relative URL"
https://bugs.webkit.org/show_bug.cgi?id=161667
http://trac.webkit.org/changeset/205532

6:35 PM Changeset in webkit [205532] by achristensen@apple.com
  • 4 edits in trunk

URLParser should parse / as a relative URL
https://bugs.webkit.org/show_bug.cgi?id=161667

Reviewed by Tim Horton.

Source/WebCore:

Covered by a new API test.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

5:49 PM Changeset in webkit [205531] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS] WebKit2 fails to build with iOS 10 beta SDK - "'UIWKTextInteractionAssistant' may not respond to 'selectAll:'"
https://bugs.webkit.org/show_bug.cgi?id=161663

Reviewed by Darin Adler.

The UIResponderStandardEditActions extensions, including the selectAll: message, are now
part of a formal protocol by the same name as of the iOS 10 beta SDK.

  • Platform/spi/ios/UIKitSPI.h:
5:48 PM Changeset in webkit [205530] by dbates@webkit.org
  • 3 edits in trunk/Tools

[iOS] DumpRenderTree and WebKitTestRunner fail to build - "Ad Hoc code signing is not allowed with SDK 'Simulator - iOS 10.0'"
https://bugs.webkit.org/show_bug.cgi?id=161661

Reviewed by Darin Adler.

Allow ad-hoc code signing when building the dummy DumpRenderTree and WebKitTestRunner
command line tools for simulator with the iOS 10 beta SDK.

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
5:31 PM Changeset in webkit [205529] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Web Inspector: Avoid linkifying some schemes in console logs
https://bugs.webkit.org/show_bug.cgi?id=161648
<rdar://problem/16413270>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-06
Reviewed by Brian Burg.

Source/WebCore:

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::openInNewTab):
If a javascript: link is passed just ignore it.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

Don't linkify some kinds of links.

5:29 PM Changeset in webkit [205528] by dbates@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[iOS] Build fails in JSCLLIntOffsetsExtractor - Ad Hoc code signing is not allowed with SDK 'Simulator - iOS 10.0'
https://bugs.webkit.org/show_bug.cgi?id=161296

Reviewed by Dan Bernstein.

Allow ad-hoc code signing when building JavaScriptCore command line tools for simulator
with the iOS 10 beta SDK.

  • Configurations/Base.xcconfig:
5:18 PM Changeset in webkit [205527] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit2

Enable custom elements API in Safari Technology Preview
https://bugs.webkit.org/show_bug.cgi?id=161518

Reviewed by Chris Dumez.

Re-enable custom elements API in Safari Technology Preview after r203296
now that our implementation has caught up to the latest specification changes.

  • Shared/WebPreferencesDefinitions.h:
5:10 PM Changeset in webkit [205526] by achristensen@apple.com
  • 4 edits in trunk

Fix query-only and fragment-only relative URLs when using URLParser
https://bugs.webkit.org/show_bug.cgi?id=161657

Reviewed by Tim Horton.

Source/WebCore:

Covered by new API tests and progress towards passing the web platform tests when using URLParser.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

5:01 PM Changeset in webkit [205525] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/security/cross-origin-plugin-allowed.html as flaky on mac-wk2 release.
https://bugs.webkit.org/show_bug.cgi?id=161539

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:00 PM Changeset in webkit [205524] by Chris Dumez
  • 28 edits in trunk

Add support for input.minLength / textArea.minLength
https://bugs.webkit.org/show_bug.cgi?id=161644

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-tooShort-expected.txt:

Source/WebCore:

Add support for input.minLength / textArea.minLength:

Chrome implements this, Firefox does not yet.

No new tests, rebaselined existing tests.

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::tooShort):
(WebCore::FormAssociatedElement::valid):
(WebCore::FormAssociatedElement::typeMismatch): Deleted.

  • html/FormAssociatedElement.h:
  • html/HTMLAttributeNames.in:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::isValidValue):
(WebCore::HTMLInputElement::tooShort):
(WebCore::HTMLInputElement::tooLong):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::effectiveMaxLength):
(WebCore::HTMLInputElement::maxLengthAttributeChanged):
(WebCore::HTMLInputElement::minLengthAttributeChanged):
(WebCore::HTMLInputElement::patternMismatch): Deleted.
(WebCore::parseAcceptAttribute): Deleted.
(WebCore::HTMLInputElement::isEnumeratable): Deleted.
(WebCore::HTMLInputElement::supportLabels): Deleted.

  • html/HTMLInputElement.h:

(WebCore::HTMLInputElement::supportsMinLength):
(WebCore::HTMLInputElement::supportsMaxLength): Deleted.

  • html/HTMLInputElement.idl:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::parseAttribute):
(WebCore::HTMLTextAreaElement::maxLengthAttributeChanged):
(WebCore::HTMLTextAreaElement::minLengthAttributeChanged):
(WebCore::HTMLTextAreaElement::validationMessage):
(WebCore::HTMLTextAreaElement::tooShort):
(WebCore::HTMLTextAreaElement::tooLong):
(WebCore::HTMLTextAreaElement::isValidValue):

  • html/HTMLTextAreaElement.h:
  • html/HTMLTextAreaElement.idl:
  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setMaxLength):
(WebCore::HTMLTextFormControlElement::setMinLength):

  • html/HTMLTextFormControlElement.h:

(WebCore::HTMLTextFormControlElement::maxLength):
(WebCore::HTMLTextFormControlElement::setMaxLength):
(WebCore::HTMLTextFormControlElement::minLength):
(WebCore::HTMLTextFormControlElement::setMinLength):

  • html/InputType.cpp:

(WebCore::InputType::validationMessage):

  • html/ValidityState.idl:
  • platform/LocalizedStrings.cpp:

(WebCore::validationMessageTooShortText):

  • platform/LocalizedStrings.h:

Source/WebKit/mac:

Update ObjC bindings to reflect method renaming.

  • DOM/DOMHTMLInputElement.mm:

(-[DOMHTMLInputElement maxLength]):
(-[DOMHTMLInputElement setMaxLength:]):

  • DOM/DOMHTMLTextAreaElement.mm:

(-[DOMHTMLTextAreaElement maxLength]):
(-[DOMHTMLTextAreaElement setMaxLength:]):

4:55 PM Changeset in webkit [205523] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix for 32-bit platforms after r205520.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation): Deleted.

4:51 PM Changeset in webkit [205522] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Member call on NULL pointer in JavaScriptCore/dfg/DFGAbstractInterpretterInlines.h
https://bugs.webkit.org/show_bug.cgi?id=160870

Reviewed by Darin Adler.

Credit goes to Jonathan Bedard for finding this bug using the undefined
behavior sanitizer.

The rule for MaterializeNewObject inside AI was assuming that the graph
is in SSA form. This used to be true when MaterializeNewObject was only
inserted by the allocation sinking phase. However, Filip added more uses
of MaterializeNewObject in his RegExp constant folding patch. This fixes
the bug by using the structure set inside the Node's OpInfo rather than
generating it from m_phiChildren inside AI.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

4:36 PM Changeset in webkit [205521] by achristensen@apple.com
  • 4 edits in trunk

Punycode encode non-ascii hosts in URLParser
https://bugs.webkit.org/show_bug.cgi?id=161655

Reviewed by Tim Horton.

Source/WebCore:

Covered by new API tests based on the web platform tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):
(WebCore::containsOnlyASCII):
(WebCore::domainToASCII):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::wideString):
(TestWebKitAPI::TEST_F):

4:22 PM Changeset in webkit [205520] by sbarati@apple.com
  • 65 edits
    1 copy
    14 adds in trunk

Make JSMap and JSSet faster
https://bugs.webkit.org/show_bug.cgi?id=160989

Reviewed by Filip Pizlo.

JSTests:

  • microbenchmarks/dense-set.js: Added.

(bench):

  • microbenchmarks/large-map-iteration-with-additions.js: Added.

(bar):
(foo):

  • microbenchmarks/large-map-iteration-with-mutation.js: Added.

(bar):
(foo):

  • microbenchmarks/large-map-iteration.js: Added.

(bar):
(foo):

  • microbenchmarks/map-get-get-cse.js: Added.

(bar):
(foo):

  • microbenchmarks/map-has-get-cse-opportunity.js: Added.

(bar):
(foo):

  • microbenchmarks/sparse-set.js: Added.

(bench):

  • stress/map-cse-correctness.js: Added.

(assert):
(testHas):
(testGet):
(foo):

  • stress/map-iteration.js: Added.

(assert):
(test1):
(test2):
(test3):
(test4):
(test5):
(test6):
(test7):
(test8):
(test9):
(test10):
(test11):
(test12):
(test13):
(test14):
(test15):
(test16):
(test17):
(test18):

Source/JavaScriptCore:

This patch revamps how we implement Map and Set. It uses
a new hash map implementation. The hash map uses linear
probing and it uses Wang's 64 bit hash function for JSValues
that aren't strings. Strings use StringImpl's hash function.
The reason I wanted to roll our own HashTable is twofold:
I didn't want to inline WTF::HashMap's implementation into our
JIT, since that seems error prone and unmaintainable. Also, I wanted
a different structure for hash map buckets where buckets also exist in
a linked list.

The reason for making buckets part of a linked list is that iteration
is now simple. Iteration works by just traversing a linked list.
This design also allows for a simple implementation when doing iteration
while the hash table is mutating. Whenever we remove a bucket from
the hash table, it is removed from the list, meaning items in the
list don't point to it. However, the removed bucket will still point
to things that are either in the list, or have also been removed.
e.g, from a removed bucket, you can always follow pointers until you
either find an item in the list, or you find the tail of the list.
This is a really nice property because it means that a Map or Set
does not need to reason about the all the iterators that point
into its list. Also, whenever we add items to the Map or Set, we
hijack the tail as the new item, and make the new item point to a newly
created tail. This means that any iterator that pointed to the "tail" now
points to non-tail items. This makes the implementation of adding things
to the Map/Set while iterating easy.

I also made Map.prototype.get, Map.prototype.has, and Set.prototype.has
into intrinsics in the DFG. The IR can now reason about hash map
operations and can even do CSE over Wang's hash function, hash map
bucket lookups, hash map bucket loads, and testing if a key is in
the hash table. This makes code patterns for Map like so, super fast
in the FTL, since we will only be doing a single hash and hash bucket lookup:

`
function getKeyIfPresent(map, key) {

if (map.has(key))

return map.get(key);

}
`

This patch is roughly an 8% speedup on ES6SampleBench.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::not64):

  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromClassInfo):

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::execute):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGEdge.h:

(JSC::DFG::Edge::shift):
(JSC::DFG::Edge::makeWord):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculateMapObject):
(JSC::DFG::SpeculativeJIT::speculateSetObject):
(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isCell):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::compileLoadFromJSMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::compileIsNonEmptyMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::lowMapObject):
(JSC::FTL::DFG::LowerDFGToB3::lowSetObject):
(JSC::FTL::DFG::LowerDFGToB3::lowMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateMapObject):
(JSC::FTL::DFG::LowerDFGToB3::speculateSetObject):
(JSC::FTL::DFG::LowerDFGToB3::setMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::lowRegExpObject): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::lowStorage): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::speculateRegExpObject): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::setStorage): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::wangsInt64Hash):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateDestructibleObject): Deleted.

  • jit/JITOperations.h:
  • parser/ModuleAnalyzer.cpp:

(JSC::ModuleAnalyzer::ModuleAnalyzer):

  • runtime/HashMapImpl.cpp: Added.

(JSC::HashMapBucket<Data>::visitChildren):
(JSC::HashMapImpl<HashMapBucket>::visitChildren):
(JSC::HashMapImpl<HashMapBucket>::copyBackingStore):

  • runtime/HashMapImpl.h: Added.

(JSC::HashMapBucket::selectStructure):
(JSC::HashMapBucket::createStructure):
(JSC::HashMapBucket::create):
(JSC::HashMapBucket::HashMapBucket):
(JSC::HashMapBucket::setNext):
(JSC::HashMapBucket::setPrev):
(JSC::HashMapBucket::setKey):
(JSC::HashMapBucket::setValue):
(JSC::HashMapBucket::key):
(JSC::HashMapBucket::value):
(JSC::HashMapBucket::next):
(JSC::HashMapBucket::prev):
(JSC::HashMapBucket::deleted):
(JSC::HashMapBucket::setDeleted):
(JSC::HashMapBucket::offsetOfKey):
(JSC::HashMapBucket::offsetOfValue):
(JSC::HashMapBuffer::allocationSize):
(JSC::HashMapBuffer::buffer):
(JSC::HashMapBuffer::create):
(JSC::areKeysEqual):
(JSC::normalizeMapKey):
(JSC::jsMapHash):
(JSC::HashMapImpl::selectStructure):
(JSC::HashMapImpl::createStructure):
(JSC::HashMapImpl::create):
(JSC::HashMapImpl::HashMapImpl):
(JSC::HashMapImpl::buffer):
(JSC::HashMapImpl::finishCreation):
(JSC::HashMapImpl::emptyValue):
(JSC::HashMapImpl::isEmpty):
(JSC::HashMapImpl::deletedValue):
(JSC::HashMapImpl::isDeleted):
(JSC::HashMapImpl::findBucket):
(JSC::HashMapImpl::get):
(JSC::HashMapImpl::has):
(JSC::HashMapImpl::add):
(JSC::HashMapImpl::remove):
(JSC::HashMapImpl::size):
(JSC::HashMapImpl::clear):
(JSC::HashMapImpl::bufferSizeInBytes):
(JSC::HashMapImpl::offsetOfBuffer):
(JSC::HashMapImpl::offsetOfCapacity):
(JSC::HashMapImpl::head):
(JSC::HashMapImpl::tail):
(JSC::HashMapImpl::approximateSize):
(JSC::HashMapImpl::findBucketAlreadyHashedAndNormalized):
(JSC::HashMapImpl::rehash):
(JSC::HashMapImpl::makeAndSetNewBuffer):

  • runtime/Intrinsic.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::sameValue):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSMap.cpp:

(JSC::JSMap::destroy): Deleted.
(JSC::JSMap::estimatedSize): Deleted.
(JSC::JSMap::visitChildren): Deleted.
(JSC::JSMap::copyBackingStore): Deleted.
(JSC::JSMap::has): Deleted.
(JSC::JSMap::size): Deleted.
(JSC::JSMap::get): Deleted.
(JSC::JSMap::set): Deleted.
(JSC::JSMap::clear): Deleted.
(JSC::JSMap::remove): Deleted.

  • runtime/JSMap.h:

(JSC::JSMap::createStructure):
(JSC::JSMap::create):
(JSC::JSMap::get):
(JSC::JSMap::set):
(JSC::JSMap::JSMap):
(JSC::JSMap::Entry::key): Deleted.
(JSC::JSMap::Entry::value): Deleted.
(JSC::JSMap::Entry::visitChildren): Deleted.
(JSC::JSMap::Entry::setKey): Deleted.
(JSC::JSMap::Entry::setKeyWithoutWriteBarrier): Deleted.
(JSC::JSMap::Entry::setValue): Deleted.
(JSC::JSMap::Entry::clear): Deleted.

  • runtime/JSMapIterator.cpp:

(JSC::JSMapIterator::finishCreation):
(JSC::JSMapIterator::visitChildren):
(JSC::JSMapIterator::clone):

  • runtime/JSMapIterator.h:

(JSC::JSMapIterator::advanceIter):
(JSC::JSMapIterator::next):
(JSC::JSMapIterator::nextKeyValue):
(JSC::JSMapIterator::JSMapIterator):
(JSC::JSMapIterator::setIterator):
(JSC::JSMapIterator::finish): Deleted.
(JSC::JSMapIterator::iteratorData): Deleted.

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::finishCreation):

  • runtime/JSModuleLoader.h:

(JSC::JSModuleLoader::create):

  • runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::finishCreation):

  • runtime/JSModuleRecord.h:

(JSC::JSModuleRecord::create):

  • runtime/JSSet.cpp:

(JSC::JSSet::destroy): Deleted.
(JSC::JSSet::estimatedSize): Deleted.
(JSC::JSSet::visitChildren): Deleted.
(JSC::JSSet::copyBackingStore): Deleted.
(JSC::JSSet::has): Deleted.
(JSC::JSSet::size): Deleted.
(JSC::JSSet::add): Deleted.
(JSC::JSSet::clear): Deleted.
(JSC::JSSet::remove): Deleted.

  • runtime/JSSet.h:

(JSC::JSSet::createStructure):
(JSC::JSSet::create):
(JSC::JSSet::add):
(JSC::JSSet::JSSet):
(JSC::JSSet::Entry::key): Deleted.
(JSC::JSSet::Entry::value): Deleted.
(JSC::JSSet::Entry::visitChildren): Deleted.
(JSC::JSSet::Entry::setKey): Deleted.
(JSC::JSSet::Entry::setKeyWithoutWriteBarrier): Deleted.
(JSC::JSSet::Entry::setValue): Deleted.
(JSC::JSSet::Entry::clear): Deleted.

  • runtime/JSSetIterator.cpp:

(JSC::JSSetIterator::finishCreation):
(JSC::JSSetIterator::visitChildren):
(JSC::JSSetIterator::clone):

  • runtime/JSSetIterator.h:

(JSC::JSSetIterator::advanceIter):
(JSC::JSSetIterator::next):
(JSC::JSSetIterator::JSSetIterator):
(JSC::JSSetIterator::setIterator):
(JSC::JSSetIterator::finish): Deleted.
(JSC::JSSetIterator::iteratorData): Deleted.

  • runtime/JSType.h:
  • runtime/MapBase.cpp: Added.

(JSC::MapBase<HashMapBucketType>::visitChildren):
(JSC::MapBase<HashMapBucketType>::estimatedSize):

  • runtime/MapBase.h: Added.

(JSC::MapBase::size):
(JSC::MapBase::has):
(JSC::MapBase::clear):
(JSC::MapBase::remove):
(JSC::MapBase::findBucket):
(JSC::MapBase::offsetOfHashMapImpl):
(JSC::MapBase::impl):
(JSC::MapBase::finishCreation):
(JSC::MapBase::MapBase):

  • runtime/MapConstructor.cpp:

(JSC::constructMap):

  • runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototypeFuncNext):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):
(JSC::getMap):
(JSC::privateFuncIsMap):
(JSC::privateFuncMapIteratorNext):

  • runtime/PropertyDescriptor.cpp:

(JSC::sameValue): Deleted.

  • runtime/PropertyDescriptor.h:
  • runtime/SetConstructor.cpp:

(JSC::constructSet):

  • runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototypeFuncNext):

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):
(JSC::getSet):
(JSC::privateFuncSetIteratorNext):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WebCore:

  • ForwardingHeaders/runtime/HashMapImpl.h: Added.
  • ForwardingHeaders/runtime/MapBase.h: Added.
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneDeserializer::deserialize):

Source/WTF:

I made s_flagCount public in StringImpl since JSC's JITs now use this field.

  • wtf/text/StringImpl.h:
4:12 PM Changeset in webkit [205519] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

Strikethrough positions are erroneously snapped twice
https://bugs.webkit.org/show_bug.cgi?id=161647
<rdar://problem/11542470>

Reviewed by Zalan Bujtas.

Source/WebCore:

Because we're using an int for the position of the baseline, the math to calculate the
strikethrough position is snapped. Then, we snap it again inside GraphicsContext.

Test: fast/text/strikethrough-int.html

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintDecoration):

  • rendering/TextDecorationPainter.h:

(WebCore::TextDecorationPainter::setBaseline):

LayoutTests:

  • fast/css3-text/css3-text-decoration/text-decoration-line-through-mispositioned-expected.html: Updated.
  • fast/text/strikethrough-int-expected-mismatch.html: Added.
  • fast/text/strikethrough-int.html: Added.
4:06 PM Changeset in webkit [205518] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow hiding of CSS variables in Computed styles panel
https://bugs.webkit.org/show_bug.cgi?id=161405

Patch by Devin Rousso <Devin Rousso> on 2016-09-06
Reviewed by Brian Burg.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/CSSProperty.js:

(WebInspector.CSSProperty.prototype.update):
(WebInspector.CSSProperty.prototype.get variable):
Sets a member variable if the CSS property begins with "--", indicating that it is a variable.

(WebInspector.CSSProperty.prototype.get name):
(WebInspector.CSSProperty.prototype.get value):
(WebInspector.CSSProperty.prototype.get priority):
(WebInspector.CSSProperty.prototype.get overridden):
(WebInspector.CSSProperty.prototype.get anonymous):
(WebInspector.CSSProperty.prototype.get inherited):
(WebInspector.CSSProperty.prototype.get valid):
(WebInspector.CSSProperty.prototype.get styleSheetTextRange):
(WebInspector.CSSProperty.prototype.get relatedShorthandProperty):
(WebInspector.CSSProperty.prototype.get relatedLonghandProperties):
Changed styling to be one line getters.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.PropertyVisibilityMode):
Dictionary for the three possible states of CSS property visibility:

  • ShowAll
  • HideVariables
  • HideNonVariables

(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.get shownProperties):
Added member variable that holds the list of properties resulting from the filter inside
WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties.

(WebInspector.CSSStyleDeclarationTextEditor.prototype.get propertyVisibilityMode):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.set propertyVisibilityMode):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties):
Added member variable controlling the visibility of CSS properties.

(WebInspector.CSSStyleDeclarationTextEditor.prototype.get delegate):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.get style):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.get showsImplicitProperties):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.get sortProperties):
Changed styling to be one line getters.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WebInspector.ComputedStyleDetailsPanel.prototype.refresh):
(WebInspector.ComputedStyleDetailsPanel.prototype.filterDidChange):
(WebInspector.ComputedStyleDetailsPanel.prototype.initialLayout):
(WebInspector.ComputedStyleDetailsPanel.prototype._handleVariablesSectionCollapsedStateChanged):
Added an additional text editor that displays the list of CSS Variables visible to the
selected node. Also ties this new editor into the refresh/collapse/filter event handlers.

(WebInspector.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged):
Renamed from WebInspector.ComputedStyleDetailsPanel.prototype._handleCollapsedStateChanged.

(WebInspector.ComputedStyleDetailsPanel.prototype.get regionFlow):
(WebInspector.ComputedStyleDetailsPanel.prototype.get contentFlow):
(WebInspector.ComputedStyleDetailsPanel.prototype.get containerRegions):
Changed styling to be one line getters.

4:03 PM Changeset in webkit [205517] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CodeMirror in resource content view should not show 'CR' characters
https://bugs.webkit.org/show_bug.cgi?id=160465

Patch by Devin Rousso <Devin Rousso> on 2016-09-06
Reviewed by Brian Burg.

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror .cm-invalidchar):
Hide all invalid characters.

4:01 PM Changeset in webkit [205516] by ddkilzer@apple.com
  • 10 edits in trunk/Source/WebCore

[iOS] Remove soft linking of MobileCoreServices.framework
<https://webkit.org/b/161641>
<rdar://problem/10420118>

Reviewed by Darin Adler.

  • Configurations/WebCore.xcconfig: Add hard link to

MobileCoreServices.framework.

  • editing/ios/EditorIOS.mm: Change #include to #import.
  • platform/graphics/cg/ImageSourceCGMac.mm:
  • platform/graphics/mac/ImageMac.mm:
  • platform/ios/PasteboardIOS.mm:
  • platform/ios/PlatformPasteboardIOS.mm:
  • platform/network/ios/WebCoreURLResponseIOS.mm:
  • platform/network/mac/UTIUtilities.mm:
  • Rearrange import statements as needed.
  • Remove soft link to MobileCoreServices.framework.
  • Add import of <MobileCoreServices/MobileCoreServices.h> as needed.
  • rendering/RenderThemeIOS.mm: Remove unused soft link to

MobileCoreServices.framework.

3:59 PM Changeset in webkit [205515] by Chris Dumez
  • 10 edits in trunk

Align srcset attribute parsing with the HTML specification
https://bugs.webkit.org/show_bug.cgi?id=161636

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline a couple of W3C tests now that more checks are passing.

  • web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:

Source/WebCore:

Align srcset attribute parsing with the HTML specification:

The new behavior is also consistent with Firefox and Chrome
as all 3 browsers now pass 100% of the checks at:

No new tests, rebaselined existing tests.

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseValidHTMLNonNegativeIntegerInternal):
(WebCore::parseValidHTMLNonNegativeInteger):
(WebCore::parseValidHTMLFloatingPointNumberInternal):
(WebCore::parseValidHTMLFloatingPointNumber):

  • html/parser/HTMLParserIdioms.h:

Add convenience for parsing *valid* HTML non-negative integers and
*valid* floating point number values.

  • html/parser/HTMLSrcsetParser.cpp:

(WebCore::parseDescriptors):

  • Use parseValidHTMLFloatingPointNumber() to parse density so that the value is parsed as a valid HTML floating point number value, as per the spec.
  • Use parseValidHTMLNonNegativeInteger() to parse width and height so that the value is parsed as a valid HTML non-negative integer value, as per the spec.
  • Return false if descriptor does not have a h, w and x at the end as per: https://html.spec.whatwg.org/#parse-a-srcset-attribute (step 13: Anything else)
  • Return false if height is set but not width, as per: https://html.spec.whatwg.org/#parse-a-srcset-attribute (step 14)

(WebCore::parseImageCandidatesFromSrcsetAttribute):

LayoutTests:

Re-sync fast/hidpi/image-srcset-invalid-descriptor.html with Blink.

  • fast/hidpi/image-srcset-invalid-descriptor-expected.txt:
  • fast/hidpi/image-srcset-invalid-descriptor.html:
3:19 PM Changeset in webkit [205514] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/objectstore-cursor.html as flaky on mac-wk2 debug.
https://bugs.webkit.org/show_bug.cgi?id=161633

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:13 PM Changeset in webkit [205513] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/media-document-audio-repaint.html as flaky on El Capitan WK2.
https://bugs.webkit.org/show_bug.cgi?id=155757

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:06 PM Changeset in webkit [205512] by commit-queue@webkit.org
  • 4 edits in trunk

[CMake] Decouple generating bindings of WebCore and WebCoreTestSupport
https://bugs.webkit.org/show_bug.cgi?id=161474

Generating bindings of WebCore and WebCoreTestSupport shares a
single supplementalDependencyFile. But, nothing supplements any
IDL of WebCoreTestSupport. This introduces unnecessary
dependencies.

Patch by Fujii Hironori <Fujii Hironori> on 2016-09-06
Reviewed by Alex Christensen.

.:

  • Source/cmake/WebKitMacros.cmake:

(GENERATE_BINDINGS): Clear uninitialized variables before
use. This causes a problem in the second time of calling
GENERATE_BINDINGS.

Source/WebCore:

  • CMakeLists.txt: Do not input any IDL of WebCoreTestSupport to

preprocess-idls.pl. Do not use supplementalDependencyFile to
generate bindings of WebCoreTestSupport. Add SettingsMacros.h as
a source file of WebCoreDerivedSources to ensure make_settings.pl
is finished before compiling WebCoreDerivedSources.

2:54 PM Changeset in webkit [205511] by commit-queue@webkit.org
  • 11 edits
    1 add in trunk

[JSC] Make ArithClz32 work with Cell arguments
https://bugs.webkit.org/show_bug.cgi?id=161369

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-09-06
Reviewed by Geoffrey Garen.

JSTests:

  • stress/arith-clz32-on-various-types.js: Added.

Source/JavaScriptCore:

ArithClz32 was already working with all primitive types
thanks to the magic of ValueToInt32.
This patch adds support for cell arguments through a function
call.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithClz32):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArithClz32):

2:53 PM Changeset in webkit [205510] by Alan Bujtas
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: !paintInfo.overlapTestRequests->contains(this) in WebCore::RenderWidget::paintContents
https://bugs.webkit.org/show_bug.cgi?id=135602
<rdar://problem/27701733>

Reviewed by Simon Fraser.

Source/WebCore:

ASSERT is updated to support multiple fragments painting. We just have to ensure that the FrameView's rect
has not changed between the 2 paintContents calls.

Test: fast/layers/assert-on-overlap-testing-with-frames-inside-columns.html

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paintContents):

LayoutTests:

  • fast/layers/assert-on-overlap-testing-with-frames-inside-columns-expected.txt: Added.
  • fast/layers/assert-on-overlap-testing-with-frames-inside-columns.html: Added.
2:47 PM Changeset in webkit [205509] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: change to use old header guard to appease Win EWS.

Not reviewed.

  • runtime/AuxiliaryBarrier.h:
2:43 PM Changeset in webkit [205508] by Ryan Haddad
  • 13 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r205494.
https://bugs.webkit.org/show_bug.cgi?id=161646

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

Reverted changeset:

"Typed arrays should use MarkedSpace instead of CopiedSpace"
https://bugs.webkit.org/show_bug.cgi?id=161100
http://trac.webkit.org/changeset/205494

Patch by Commit Queue <commit-queue@webkit.org> on 2016-09-06

2:35 PM Changeset in webkit [205507] by Ryan Haddad
  • 64 edits
    15 deletes in trunk

Unreviewed, rolling out r205504.
https://bugs.webkit.org/show_bug.cgi?id=161645

Broke the iOS device build (Requested by ryanhaddad on
#webkit).

Reverted changeset:

"Make JSMap and JSSet faster"
https://bugs.webkit.org/show_bug.cgi?id=160989
http://trac.webkit.org/changeset/205504

Patch by Commit Queue <commit-queue@webkit.org> on 2016-09-06

2:27 PM Changeset in webkit [205506] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Remove unused overlap checking functions from FrameView.
https://bugs.webkit.org/show_bug.cgi?id=161635

Reviewed by Simon Fraser.

No change in functionality.

  • page/FrameView.cpp:

(WebCore::FrameView::isOverlappedIncludingAncestors): Deleted.

  • page/FrameView.h:
2:18 PM Changeset in webkit [205505] by Simon Fraser
  • 7 edits
    6 adds in trunk

Align element.scroll() / scrollTo() / scrollBy() with the CSSOM specification
https://bugs.webkit.org/show_bug.cgi?id=161610

Reviewed by Darin Adler, Chris Dumez.

Source/WebCore:

Implement Element.scroll(), scrollBy() and scrollTo() with x,y and ScrollToOptions
on Element, according to <https://drafts.csswg.org/cssom-view/#element-scrolling-members>

WebKit's behavior of treating scrolls on the body element in both quirks and strict mode
is preserved.

Tests: fast/dom/Element/scrolling-funtions-on-body-quirks.html

fast/dom/Element/scrolling-funtions-on-body.html
fast/dom/Element/scrolling-funtions-on-element.html

  • dom/Element.cpp:

(WebCore::Element::scrollBy):
(WebCore::normalizeNonFiniteValue):
(WebCore::Element::scrollTo):

  • dom/Element.h:
  • dom/Element.idl:
  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::scrollTo):

  • html/HTMLBodyElement.h:

LayoutTests:

  • fast/dom/Element/scrolling-funtions-on-body-expected.txt: Added.
  • fast/dom/Element/scrolling-funtions-on-body-quirks-expected.txt: Added.
  • fast/dom/Element/scrolling-funtions-on-body-quirks.html: Added.
  • fast/dom/Element/scrolling-funtions-on-body.html: Added.
  • fast/dom/Element/scrolling-funtions-on-element-expected.txt: Added.
  • fast/dom/Element/scrolling-funtions-on-element.html: Added.
2:13 PM Changeset in webkit [205504] by sbarati@apple.com
  • 64 edits
    1 copy
    14 adds in trunk

Make JSMap and JSSet faster
https://bugs.webkit.org/show_bug.cgi?id=160989

Reviewed by Filip Pizlo.

JSTests:

  • microbenchmarks/dense-set.js: Added.

(bench):

  • microbenchmarks/large-map-iteration-with-additions.js: Added.

(bar):
(foo):

  • microbenchmarks/large-map-iteration-with-mutation.js: Added.

(bar):
(foo):

  • microbenchmarks/large-map-iteration.js: Added.

(bar):
(foo):

  • microbenchmarks/map-get-get-cse.js: Added.

(bar):
(foo):

  • microbenchmarks/map-has-get-cse-opportunity.js: Added.

(bar):
(foo):

  • microbenchmarks/sparse-set.js: Added.

(bench):

  • stress/map-cse-correctness.js: Added.

(assert):
(testHas):
(testGet):
(foo):

  • stress/map-iteration.js: Added.

(assert):
(test1):
(test2):
(test3):
(test4):
(test5):
(test6):
(test7):
(test8):
(test9):
(test10):
(test11):
(test12):
(test13):
(test14):
(test15):
(test16):
(test17):
(test18):

Source/JavaScriptCore:

This patch revamps how we implement Map and Set. It uses
a new hash map implementation. The hash map uses linear
probing and it uses Wang's 64 bit hash function for JSValues
that aren't strings. Strings use StringImpl's hash function.
The reason I wanted to roll our own HashTable is twofold:
I didn't want to inline WTF::HashMap's implementation into our
JIT, since that seems error prone and unmaintainable. Also, I wanted
a different structure for hash map buckets where buckets also exist in
a linked list.

The reason for making buckets part of a linked list is that iteration
is now simple. Iteration works by just traversing a linked list.
This design also allows for a simple implementation when doing iteration
while the hash table is mutating. Whenever we remove a bucket from
the hash table, it is removed from the list, meaning items in the
list don't point to it. However, the removed bucket will still point
to things that are either in the list, or have also been removed.
e.g, from a removed bucket, you can always follow pointers until you
either find an item in the list, or you find the tail of the list.
This is a really nice property because it means that a Map or Set
does not need to reason about the all the iterators that point
into its list. Also, whenever we add items to the Map or Set, we
hijack the tail as the new item, and make the new item point to a newly
created tail. This means that any iterator that pointed to the "tail" now
points to non-tail items. This makes the implementation of adding things
to the Map/Set while iterating easy.

I also made Map.prototype.get, Map.prototype.has, and Set.prototype.has
into intrinsics in the DFG. The IR can now reason about hash map
operations and can even do CSE over Wang's hash function, hash map
bucket lookups, hash map bucket loads, and testing if a key is in
the hash table. This makes code patterns for Map like so, super fast
in the FTL, since we will only be doing a single hash and hash bucket lookup:

`
function getKeyIfPresent(map, key) {

if (map.has(key))

return map.get(key);

}
`

This patch is roughly an 8% speedup on ES6SampleBench.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromClassInfo):

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::execute):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGEdge.h:

(JSC::DFG::Edge::shift):
(JSC::DFG::Edge::makeWord):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculateMapObject):
(JSC::DFG::SpeculativeJIT::speculateSetObject):
(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isCell):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::compileLoadFromJSMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::compileIsNonEmptyMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::lowMapObject):
(JSC::FTL::DFG::LowerDFGToB3::lowSetObject):
(JSC::FTL::DFG::LowerDFGToB3::lowMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateMapObject):
(JSC::FTL::DFG::LowerDFGToB3::speculateSetObject):
(JSC::FTL::DFG::LowerDFGToB3::setMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::lowRegExpObject): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::lowStorage): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::speculateRegExpObject): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::setStorage): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::wangsInt64Hash):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateDestructibleObject): Deleted.

  • jit/JITOperations.h:
  • parser/ModuleAnalyzer.cpp:

(JSC::ModuleAnalyzer::ModuleAnalyzer):

  • runtime/HashMapImpl.cpp: Added.

(JSC::HashMapBucket<Data>::visitChildren):
(JSC::HashMapImpl<HashMapBucket>::visitChildren):
(JSC::HashMapImpl<HashMapBucket>::copyBackingStore):

  • runtime/HashMapImpl.h: Added.

(JSC::HashMapBucket::selectStructure):
(JSC::HashMapBucket::createStructure):
(JSC::HashMapBucket::create):
(JSC::HashMapBucket::HashMapBucket):
(JSC::HashMapBucket::setNext):
(JSC::HashMapBucket::setPrev):
(JSC::HashMapBucket::setKey):
(JSC::HashMapBucket::setValue):
(JSC::HashMapBucket::key):
(JSC::HashMapBucket::value):
(JSC::HashMapBucket::next):
(JSC::HashMapBucket::prev):
(JSC::HashMapBucket::deleted):
(JSC::HashMapBucket::setDeleted):
(JSC::HashMapBucket::offsetOfKey):
(JSC::HashMapBucket::offsetOfValue):
(JSC::HashMapBuffer::allocationSize):
(JSC::HashMapBuffer::buffer):
(JSC::HashMapBuffer::create):
(JSC::areKeysEqual):
(JSC::normalizeMapKey):
(JSC::jsMapHash):
(JSC::HashMapImpl::selectStructure):
(JSC::HashMapImpl::createStructure):
(JSC::HashMapImpl::create):
(JSC::HashMapImpl::HashMapImpl):
(JSC::HashMapImpl::buffer):
(JSC::HashMapImpl::finishCreation):
(JSC::HashMapImpl::emptyValue):
(JSC::HashMapImpl::isEmpty):
(JSC::HashMapImpl::deletedValue):
(JSC::HashMapImpl::isDeleted):
(JSC::HashMapImpl::findBucket):
(JSC::HashMapImpl::get):
(JSC::HashMapImpl::has):
(JSC::HashMapImpl::add):
(JSC::HashMapImpl::remove):
(JSC::HashMapImpl::size):
(JSC::HashMapImpl::clear):
(JSC::HashMapImpl::bufferSizeInBytes):
(JSC::HashMapImpl::offsetOfBuffer):
(JSC::HashMapImpl::offsetOfCapacity):
(JSC::HashMapImpl::head):
(JSC::HashMapImpl::tail):
(JSC::HashMapImpl::approximateSize):
(JSC::HashMapImpl::findBucketAlreadyHashedAndNormalized):
(JSC::HashMapImpl::rehash):
(JSC::HashMapImpl::makeAndSetNewBuffer):

  • runtime/Intrinsic.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::sameValue):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSMap.cpp:

(JSC::JSMap::destroy): Deleted.
(JSC::JSMap::estimatedSize): Deleted.
(JSC::JSMap::visitChildren): Deleted.
(JSC::JSMap::copyBackingStore): Deleted.
(JSC::JSMap::has): Deleted.
(JSC::JSMap::size): Deleted.
(JSC::JSMap::get): Deleted.
(JSC::JSMap::set): Deleted.
(JSC::JSMap::clear): Deleted.
(JSC::JSMap::remove): Deleted.

  • runtime/JSMap.h:

(JSC::JSMap::createStructure):
(JSC::JSMap::create):
(JSC::JSMap::get):
(JSC::JSMap::set):
(JSC::JSMap::JSMap):
(JSC::JSMap::Entry::key): Deleted.
(JSC::JSMap::Entry::value): Deleted.
(JSC::JSMap::Entry::visitChildren): Deleted.
(JSC::JSMap::Entry::setKey): Deleted.
(JSC::JSMap::Entry::setKeyWithoutWriteBarrier): Deleted.
(JSC::JSMap::Entry::setValue): Deleted.
(JSC::JSMap::Entry::clear): Deleted.

  • runtime/JSMapIterator.cpp:

(JSC::JSMapIterator::finishCreation):
(JSC::JSMapIterator::visitChildren):
(JSC::JSMapIterator::clone):

  • runtime/JSMapIterator.h:

(JSC::JSMapIterator::advanceIter):
(JSC::JSMapIterator::next):
(JSC::JSMapIterator::nextKeyValue):
(JSC::JSMapIterator::JSMapIterator):
(JSC::JSMapIterator::setIterator):
(JSC::JSMapIterator::finish): Deleted.
(JSC::JSMapIterator::iteratorData): Deleted.

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::finishCreation):

  • runtime/JSModuleLoader.h:

(JSC::JSModuleLoader::create):

  • runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::finishCreation):

  • runtime/JSModuleRecord.h:

(JSC::JSModuleRecord::create):

  • runtime/JSSet.cpp:

(JSC::JSSet::destroy): Deleted.
(JSC::JSSet::estimatedSize): Deleted.
(JSC::JSSet::visitChildren): Deleted.
(JSC::JSSet::copyBackingStore): Deleted.
(JSC::JSSet::has): Deleted.
(JSC::JSSet::size): Deleted.
(JSC::JSSet::add): Deleted.
(JSC::JSSet::clear): Deleted.
(JSC::JSSet::remove): Deleted.

  • runtime/JSSet.h:

(JSC::JSSet::createStructure):
(JSC::JSSet::create):
(JSC::JSSet::add):
(JSC::JSSet::JSSet):
(JSC::JSSet::Entry::key): Deleted.
(JSC::JSSet::Entry::value): Deleted.
(JSC::JSSet::Entry::visitChildren): Deleted.
(JSC::JSSet::Entry::setKey): Deleted.
(JSC::JSSet::Entry::setKeyWithoutWriteBarrier): Deleted.
(JSC::JSSet::Entry::setValue): Deleted.
(JSC::JSSet::Entry::clear): Deleted.

  • runtime/JSSetIterator.cpp:

(JSC::JSSetIterator::finishCreation):
(JSC::JSSetIterator::visitChildren):
(JSC::JSSetIterator::clone):

  • runtime/JSSetIterator.h:

(JSC::JSSetIterator::advanceIter):
(JSC::JSSetIterator::next):
(JSC::JSSetIterator::JSSetIterator):
(JSC::JSSetIterator::setIterator):
(JSC::JSSetIterator::finish): Deleted.
(JSC::JSSetIterator::iteratorData): Deleted.

  • runtime/JSType.h:
  • runtime/MapBase.cpp: Added.

(JSC::MapBase<HashMapBucketType>::visitChildren):
(JSC::MapBase<HashMapBucketType>::estimatedSize):

  • runtime/MapBase.h: Added.

(JSC::MapBase::size):
(JSC::MapBase::has):
(JSC::MapBase::clear):
(JSC::MapBase::remove):
(JSC::MapBase::findBucket):
(JSC::MapBase::offsetOfHashMapImpl):
(JSC::MapBase::impl):
(JSC::MapBase::finishCreation):
(JSC::MapBase::MapBase):

  • runtime/MapConstructor.cpp:

(JSC::constructMap):

  • runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototypeFuncNext):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):
(JSC::getMap):
(JSC::privateFuncIsMap):
(JSC::privateFuncMapIteratorNext):

  • runtime/PropertyDescriptor.cpp:

(JSC::sameValue): Deleted.

  • runtime/PropertyDescriptor.h:
  • runtime/SetConstructor.cpp:

(JSC::constructSet):

  • runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototypeFuncNext):

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):
(JSC::getSet):
(JSC::privateFuncSetIteratorNext):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WebCore:

  • ForwardingHeaders/runtime/HashMapImpl.h: Added.
  • ForwardingHeaders/runtime/MapBase.h: Added.
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneDeserializer::deserialize):

Source/WTF:

I made s_flagCount public since JSC's JITs now use this field.

  • wtf/text/StringImpl.h:
1:57 PM Changeset in webkit [205503] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip some asserting Fetch API tests.
https://bugs.webkit.org/show_bug.cgi?id=161632

Unreviewed test gardening.

1:50 PM Changeset in webkit [205502] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit

[Xcode] WebKitLegacy.framework is re-signed on incremental build even if nothing’s changed
https://bugs.webkit.org/show_bug.cgi?id=161642

Reviewed by Tim Horton.

  • WebKit.xcodeproj/project.pbxproj: Removed the output file listed under the

Symlink WebKitPluginHost script build phase, because it doesn’t produce that file on iOS.
With no outputs listed, the script will still run every time, but the fact that it has run
won’t trigger re-signing the framework.

1:44 PM Changeset in webkit [205501] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Revert r205491 because it did not resolve the test failures, update bug number in TestExpectations.
https://bugs.webkit.org/show_bug.cgi?id=161366

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
1:39 PM Changeset in webkit [205500] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

<rdar://problem/8064563> Ugly NSLog in DOMInternal.mm

Rubber-stamped by Anders Carlsson.

  • DOM/DOMInternal.mm:

(-[WebScriptObject _initializeScriptDOMNodeImp]): Removed useless call to NSLog.

12:56 PM Changeset in webkit [205499] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cannot undo in breakpoint editor
https://bugs.webkit.org/show_bug.cgi?id=152858

Patch by Devin Rousso <Devin Rousso> on 2016-09-06
Reviewed by Brian Burg.

  • UserInterface/Controllers/BreakpointPopoverController.js:

(WebInspector.BreakpointPopoverController.prototype._conditionCodeMirrorBeforeChange):
Since the breakpoint editor only allows a single line of JavaScript, it attempts to remove
all "\n" characters. During an "undo" action, this is not possible.

11:55 AM Changeset in webkit [205498] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Use TemporaryChange<> to maintain m_userIsInteracting
https://bugs.webkit.org/show_bug.cgi?id=161497

Reviewed by Tim Horton.

Replace some error-prone manual set/clear of m_userIsInteracting with
TemporaryChange<>.

No behavior change.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::keyEvent):
(WebKit::WebPage::dispatchTouchEvent):

11:55 AM Changeset in webkit [205497] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

[Win] Enable strict runtime stack buffer checks.
https://bugs.webkit.org/show_bug.cgi?id=161629

Reviewed by Brent Fulgham.

  • wtf/Platform.h:
11:38 AM Changeset in webkit [205496] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove SwipeTransitionStyle; only Overlap has ever been used
https://bugs.webkit.org/show_bug.cgi?id=161617

Reviewed by Alex Christensen.

  • UIProcess/mac/ViewGestureController.h:
  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::handleSwipeGesture):
Remove SwipeTransitionStyle::Push, and SwipeTransitionStyle itself entirely,
because we've never used it and it is only supported by the Mac
implementation of ViewGestureController.

11:21 AM Changeset in webkit [205495] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit/win

[Win] Null pointer crash under WebView::scrollOffset.
https://bugs.webkit.org/show_bug.cgi?id=161620

Reviewed by Darin Adler.

Added null pointer checks.

  • WebView.cpp:

(WebView::scrollOffset):
(WebView::scrollBy):
(WebView::visibleContentRect):

11:18 AM Changeset in webkit [205494] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

Typed arrays should use MarkedSpace instead of CopiedSpace
https://bugs.webkit.org/show_bug.cgi?id=161100

Reviewed by Geoffrey Garen.

This moves typed array backing stores out of CopiedSpace and into Auxiliary MarkedSpace.

This is a purely mechanical change since Auxiliary MarkedSpace already knows how to do
everything that typed arrays want.

  • dfg/DFGOperations.cpp:

(JSC::DFG::newTypedArrayWithSize):

  • dfg/DFGOperations.h:

(JSC::DFG::operationNewTypedArrayWithSizeForType):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewTypedArray):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::emitAllocateBasicStorage): Deleted.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::initializeArrayElements):
(JSC::FTL::DFG::LowerDFGToB3::splatWords):
(JSC::FTL::DFG::LowerDFGToB3::allocateBasicStorageAndGetEnd): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::allocateBasicStorage): Deleted.

  • heap/CopyToken.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::markAuxiliary):

  • jit/JITOperations.h:
  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
(JSC::JSArrayBufferView::JSArrayBufferView):

  • runtime/JSArrayBufferView.h:
  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::createWithFastVector):
(JSC::JSGenericTypedArrayView<Adaptor>::visitChildren):
(JSC::JSGenericTypedArrayView<Adaptor>::slowDownAndWasteMemory):
(JSC::JSGenericTypedArrayView<Adaptor>::copyBackingStore): Deleted.

11:16 AM Changeset in webkit [205493] by achristensen@apple.com
  • 5 edits in trunk

Implement relative file urls and begin implementing character encoding in URLParser
https://bugs.webkit.org/show_bug.cgi?id=161618

Reviewed by Tim Horton.

Source/WebCore:

Covered by new API tests.
Also, this is a significant step towards passing the URL web platform tests when using the URLParser,
which is still off by default.

  • platform/URLParser.cpp:

(WebCore::isInSimpleEncodeSet):
(WebCore::isInDefaultEncodeSet):
(WebCore::isInUserInfoEncodeSet):
(WebCore::isInvalidDomainCharacter):
(WebCore::shouldCopyFileURL):
(WebCore::percentEncode):
(WebCore::utf8PercentEncode):
(WebCore::encodeQuery):
(WebCore::isDefaultPort):
(WebCore::isPercentEncodedDot):
(WebCore::URLParser::parse):
(WebCore::percentDecode):
(WebCore::domainToASCII):
(WebCore::hasInvalidDomainCharacter):
(WebCore::URLParser::parsePort):
(WebCore::URLParser::parseHost):
(WebCore::isTabOrNewline): Deleted.

  • platform/URLParser.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

11:02 AM Changeset in webkit [205492] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the Apple-internal build following <https://trac.webkit.org/changeset/205488>
(https://bugs.webkit.org/show_bug.cgi?id=161090)

Use the default linkage for QuartzCore constants to match the linkage used for such constants
in the Apple-internal SDK.

  • platform/spi/cocoa/QuartzCoreSPI.h:
10:43 AM Changeset in webkit [205491] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Skipping editing/inserting/smart-link-when-caret-is-moved-before-URL.html.
https://bugs.webkit.org/show_bug.cgi?id=161366

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:43 AM Changeset in webkit [205490] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-id-top.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=161631

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
10:20 AM Changeset in webkit [205489] by dbates@webkit.org
  • 8 edits
    2 adds in trunk

<table> inside <div align="right"> with large content inside = no scrollbar
https://bugs.webkit.org/show_bug.cgi?id=3352

Reviewed by Brent Fulgham.

Source/WebCore:

Respect "right" text-alignment only if the width of the child does not overflow the
width of its containing block. This makes our margin computation more closely conform
to section "Block-level, non-replaced elements in normal flow" of the CSS 2.1
spec., <http://www.w3.org/TR/CSS21/>, and to the behavior observed in Firefox, Chrome,
IE version 9 or later and Microsoft Edge.

Test: fast/block/align-overflow-child.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeInlineDirectionMargins):

LayoutTests:

Add a new test that is derived from the test LayoutTests/fast/block/align-bigger-child.html included
in <https://src.chromium.org/viewvc/blink?revision=187157&view=revision>.

Also update expected results of existing tests.

  • fast/block/align-overflow-child-expected.txt: Added.
  • fast/block/align-overflow-child.html: Added.
  • platform/efl/tables/mozilla_expected_failures/marvin/table_overflow_td_align_right-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/marvin/table_overflow_td_align_right-expected.txt:
  • platform/ios-simulator/tables/mozilla_expected_failures/marvin/table_overflow_td_align_right-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_align_right-expected.txt:
  • platform/win/tables/mozilla_expected_failures/marvin/table_overflow_td_align_right-expected.txt:
10:17 AM Changeset in webkit [205488] by dbates@webkit.org
  • 25 edits in trunk/Source

Remove EXTERN_C from WTF
https://bugs.webkit.org/show_bug.cgi?id=161090

Reviewed by Brent Fulgham.

Guard external C declarations in WTF_EXTERN_C_BEGIN, WTF_EXTERN_C_END.

Source/WebCore:

  • platform/spi/cf/CFLocaleSPI.h:
  • platform/spi/cf/CFNetworkConnectionCacheSPI.h:
  • platform/spi/cf/CFNetworkSPI.h: Additionally, remove the workaround for <rdar://problem/18337182>

as this bug was fixed in El Capitan.

  • platform/spi/cf/CFUtilitiesSPI.h:
  • platform/spi/cocoa/CoreTextSPI.h:
  • platform/spi/cocoa/DataDetectorsCoreSPI.h:
  • platform/spi/cocoa/IOPMLibSPI.h:
  • platform/spi/cocoa/MachVMSPI.h:
  • platform/spi/cocoa/QuartzCoreSPI.h:
  • platform/spi/ios/MobileGestaltSPI.h:
  • platform/spi/ios/QuickLookSPI.h:
  • platform/spi/win/CoreTextSPIWin.cpp:
  • platform/spi/win/CoreTextSPIWin.h:

Source/WebKit2:

  • Platform/spi/ios/ManagedConfigurationSPI.h:

Source/WTF:

  • wtf/Compiler.h: Remove macro definition EXTERN_C.
  • wtf/spi/cf/CFBundleSPI.h:
  • wtf/spi/cocoa/NSMapTableSPI.h:
  • wtf/spi/cocoa/SecuritySPI.h:
  • wtf/spi/darwin/CommonCryptoSPI.h:
  • wtf/spi/darwin/SandboxSPI.h:
  • wtf/spi/darwin/XPCSPI.h:
  • wtf/spi/darwin/dyldSPI.h:
9:55 AM Changeset in webkit [205487] by Ryan Haddad
  • 12 edits in trunk/Source

Unreviewed, rolling out r205407.

Not the correct way to implement this functionality

Reverted changeset:

"Consult with the FrameLoaderClient about whether or not
content extensions should be enabled when loading this URL."
https://bugs.webkit.org/show_bug.cgi?id=161441
http://trac.webkit.org/changeset/205407

9:45 AM Changeset in webkit [205486] by commit-queue@webkit.org
  • 4 edits in trunk

Unreviewed, rolling out r205480.
https://bugs.webkit.org/show_bug.cgi?id=161630

tests-options.json is not known from knockout filesystem
(Requested by youenn on #webkit).

Reverted changeset:

"Using tests-options.json to compute whether tests are slow"
https://bugs.webkit.org/show_bug.cgi?id=161626
http://trac.webkit.org/changeset/205480

9:28 AM Changeset in webkit [205485] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK][Wayland] evince-browser-plugin prevents viewing PDFs
https://bugs.webkit.org/show_bug.cgi?id=158697

Reviewed by Michael Catanzaro.

Use a different cache file for plugins depending on the current platform display. Plugins can claim to work on
X11 but not on Wayland, for example, if they need XEmebed to work. That's the case of the evince browser plugin.

  • UIProcess/Plugins/gtk/PluginInfoCache.cpp:

(WebKit::cacheFilenameForCurrentDisplay):
(WebKit::PluginInfoCache::PluginInfoCache):

9:26 AM Changeset in webkit [205484] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Threaded Compositor] Update timer should have lower priority than tasks scheduled in compositing thread
https://bugs.webkit.org/show_bug.cgi?id=161625

Reviewed by Sergio Villar Senin.

This way, if a resize is scheduled, for example, and there are pending updates, the resize will happen first,
and then the updates will happen at the right size.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::CompositingRunLoop): Use G_PRIORITY_HIGH_IDLE as update timer priority. The actual
priority doesn't really matter as long as it's lower than G_PRIORITY_DEFAULT, because there are only two
possible sources in the compositing run loop, one for the tasks scheduled, and another one for the update timer.

9:24 AM Changeset in webkit [205483] by Michael Catanzaro
  • 2 edits in trunk/Tools

"Redundant argument in sprintf" warning spam from prepare-ChangeLog
https://bugs.webkit.org/show_bug.cgi?id=161606

Reviewed by Darin Adler.

Avoid extra arguments in call to sprintf, hopefully without introducing new warnings this
time.

  • Scripts/prepare-ChangeLog:

(statusDescription):

9:15 AM Changeset in webkit [205482] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline http/tests/cookies/third-party-cookie-relaxing.html for Sierra.

Unreviewed test gardening.

  • platform/mac/http/tests/cookies/third-party-cookie-relaxing-expected.txt:
9:03 AM Changeset in webkit [205481] by commit-queue@webkit.org
  • 5 edits in trunk

http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=161627

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-06
Reviewed by Darin Adler.

Source/WebCore:

Covered by changed expectation.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived): Clearing the resource in lieu of clearing the request. This will stop the resource load.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse): Adding an ASSERT to ensure that no valid redirect responses is mistakenly processed here.

LayoutTests:

9:01 AM Changeset in webkit [205480] by commit-queue@webkit.org
  • 4 edits in trunk

Using tests-options.json to compute whether tests are slow
https://bugs.webkit.org/show_bug.cgi?id=161626

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-06
Reviewed by Darin Adler.

Tools:

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.init): Loading tests-options.json
(Manager._test_is_slow): Computing timeout value based on tests-options.json.

LayoutTests:

  • TestExpectations: Removing slow WPT expectations now that they are handled through tests-options.json.
9:00 AM Changeset in webkit [205479] by Alan Bujtas
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: !currBox->needsLayout() in WebCore::RenderBlock::checkPositionedObjectsNeedLayout
https://bugs.webkit.org/show_bug.cgi?id=120291
<rdar://problem/27683456>

Reviewed by David Hyatt.

Source/WebCore:

This patch ensures that we always set the 'positioned child needs layout' bit on the containing block
when a new positioned descendant gets inserted. It fixes cases for simplified layout when
we ended up not laying out the descendant element.

Test: fast/block/positioning/assert-when-positioned-descendant-is-not-getting-laid-out.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::insertPositionedObject):

LayoutTests:

  • fast/block/positioning/assert-when-positioned-descendant-is-not-getting-laid-out-expected.txt: Added.
  • fast/block/positioning/assert-when-positioned-descendant-is-not-getting-laid-out.html: Added.
7:32 AM Changeset in webkit [205478] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, rolling out r205461.
https://bugs.webkit.org/show_bug.cgi?id=161628

Introduced "Use of uninitialized value $original in sprintf"
warning (Requested by mcatanzaro on #webkit).

Reverted changeset:

""Redundant argument in sprintf" warning spam from prepare-
ChangeLog"
https://bugs.webkit.org/show_bug.cgi?id=161606
http://trac.webkit.org/changeset/205461

7:29 AM Changeset in webkit [205477] by Michael Catanzaro
  • 2 edits in trunk/Source/JavaScriptCore

Silence GCC warning spam introduced in r205462

Rubber-stamped by Filip Pizlo.

  • bytecode/Opcode.h:

(JSC::padOpcodeName):

5:30 AM Changeset in webkit [205476] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

W3C test importer should be able to identify slow test
https://bugs.webkit.org/show_bug.cgi?id=161601

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-06
Reviewed by Darin Adler.

Tools:

Test parser is now identifying slow tests based on "meta element name=timeout content=long" elements.
Test importer is updating test-options.json file according that information.

In case of clean import, the test-options.json is cleaned from 'slow' options for all W3C tests.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.init):
(TestImporter.find_importable_tests):
(TestImporter.import_tests):
(TestImporter.update_test_options):
(TestImporter):
(TestImporter.remove_slow_from_w3c_test_options):

  • Scripts/webkitpy/w3c/test_parser.py:

(TestParser.analyze_test):
(TestParser.is_slow_test):
(TestParser.potential_ref_filename):

LayoutTests:

  • tests-options.json: Added.
4:28 AM Changeset in webkit [205475] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] glImageTargetTexture2D() is a GL function, rename accordingly
https://bugs.webkit.org/show_bug.cgi?id=161622

Patch by Emanuele Aina <Emanuele Aina> on 2016-09-06
Reviewed by Carlos Garcia Campos.

glImageTargetTexture2D() is a GL function, not EGL, using the 'egl'
prefix is misleading.

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::Surface::prepareTextureForPainting):
(WebKit::WaylandCompositor::initializeEGL):

4:19 AM Changeset in webkit [205474] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[GTK][EFL] Make *_PROCESS_CMD_PREFIX conditional on DEVELOPER_MODE
https://bugs.webkit.org/show_bug.cgi?id=161621

Patch by Emanuele Aina <Emanuele Aina> on 2016-09-06
Reviewed by Carlos Garcia Campos.

Instead of enabling support for the *_PROCESS_CMD_PREFIX set of
environment valiables (eg. WEB_PROCESS_CMD_PREFIX) on debug builds
only, enable it when DEVELOPER_MODE is enabled as it already guards
similar features (eg. WEBKIT_EXEC_PATH).

  • UIProcess/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::getLaunchOptions):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

(WebKit::ProcessLauncher::launchProcess):

4:06 AM Changeset in webkit [205473] by commit-queue@webkit.org
  • 55 edits
    17 adds in trunk

CachedResourceLoader is not taking into account fetch options to use or not cached resources
https://bugs.webkit.org/show_bug.cgi?id=161389

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-06
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Updated as new console log messages appear now that cors checks are done at SubresourceLoader level.

  • web-platform-tests/XMLHttpRequest/security-consideration.sub-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic.js: Fixing a typo in the test making the test always passing, since the fetch promise was not taken into account.
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-origin-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-origin.js:

(corsOrigin): Fixing a typo in the test making the tests always passing, since the fetch promise was not taken into account.

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:

Source/WebCore:

Tests: http/tests/fetch/fetching-same-resource-with-diffferent-options.html

http/tests/security/cross-origin-cached-resource-parallel.html
http/tests/security/cross-origin-cached-resource.html
http/tests/security/load-image-after-redirection-2.html
http/tests/security/shape-outside-and-cached-resources.html

Adding CORS checks for the response in case of CORS fetch mode, in SubresourceLoader.
Removing the CORS checks in Image and DocumentThreadableLoader.

The direction of this patch is to make CachedResource origin-specific/fetch mode specific.

This will remove the need for CachedResource clients to do CORS checks when receiving the notifyFinished call.
This will also make the computation of whether a resource is clean or not much easier since the CachedResource knowd its origin and its response tainting.

Removing the CORS checks at ImageLoader creates the risk of using some cached resources loaded from previously no-cors mode without doing the actual CORS check.
Note that the risk was already there in case of a resource loaded through redirections.
Reusing a cached resource for a load with different options also leads to bad computation of the resource tainting.

As a first step, improvements are done but only for CachedImage resources.

This patch limits the direct reuse of cached resources as follow:

  • If the request and existing resources have different origins.
  • If the fetch mode is different between request and existing resource.

In those cases, a new CachedResource is created with the correct options and origin.
The data and response of the CachedResource found in the cache are copied efficiently in the new CachedResource, if the matching CachedResource finished loading (CachedImage specific).

If the matching CachedResource is still loading, we trigger a reload (with caching=false to not disturb the being loaded resource).
This should be made more efficient at some point, especially if the matching CachedResource already has its response set.

This triggers a change of behavior: previously, the CORS checks were done by the ImageLoader when the resource was finished loading.
The CORS checks were controlled by the crossOrigin attribute, which may be set or unset between the load start and the load end.

Now the crossOrigin attribute is checked at load start. If it is set, the CORS checks will happen even if the attribute is unset before the end of the load.
This is more consistent as the actual request was built with CORS enabled.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::startPreflight): Setting correctly the preflight options as per fetch spec.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didReceiveResponse): Removing CORS check.
(WebCore::DocumentThreadableLoader::loadRequest): Adding CORS check in sync mode.

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse): Adding CORS checks to the response
(WebCore::SubresourceLoader::checkResponseCrossOriginAccessControl): Helper routine to do CORS checks

  • loader/SubresourceLoader.h:
  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::cloneData): Responsible to set image content from another CachedImage.

  • loader/cache/CachedImage.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::computeOrigin): Helper routine to set the origin and whether the resource is cross-origin or not.
(WebCore::CachedResource::load): Using computeOrigin.
(WebCore::CachedResource::loadFrom): Loading from a CachedResource from the same type and which finished loading.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::cloneData):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::updateCachedResourceWithCurrentRequest): Helper routine responsible to adapt the CachedResource
that can be reused to the origin and options of a new request.
(WebCore::CachedResourceLoader::requestResource): Calling updateCachedResourceWithCurrentRequest before actually returning the resource.
(WebCore::CachedResourceLoader::determineRevalidationPolicy): Space clean-up.

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::setCachingPolicy):

  • style/StylePendingResources.cpp:

(WebCore::Style::loadPendingImage): Allowing data URLs for ShapeOutside data.

LayoutTests:

Added specific expectations for fetch cors-origin* tests for mac-wk2 and ios-simulator-wk2 as these tests use
HTTPS, and the connection is refused.

  • TestExpectations: Marking http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin.html as flaky.
  • http/tests/eventsource/eventsource-cors-basic-expected.txt:
  • http/tests/eventsource/eventsource-cors-with-credentials-expected.txt:
  • http/tests/fetch/fetching-same-resource-with-diffferent-options-expected.txt: Added.
  • http/tests/fetch/fetching-same-resource-with-diffferent-options.html: Added.
  • http/tests/loading/cross-origin-XHR-willLoadRequest-expected.txt:
  • http/tests/resources/download-json-with-delay.php:
  • http/tests/resources/redirect.php:
  • http/tests/security/cross-origin-cached-resource-expected.txt: Added.
  • http/tests/security/cross-origin-cached-resource-parallel-expected.txt: Added.
  • http/tests/security/cross-origin-cached-resource-parallel.html: Added.
  • http/tests/security/cross-origin-cached-resource.html: Added.
  • http/tests/security/img-with-failed-cors-check-fails-to-load-expected.txt:
  • http/tests/security/load-image-after-redirection-2-expected.txt: Added.
  • http/tests/security/load-image-after-redirection-2.html: Added.
  • http/tests/security/resources/abe-allow-star.php:
  • http/tests/security/resources/allow-if-origin.php: Added.
  • http/tests/security/resources/cross-origin-cached-resource-iframe.html: Added.
  • http/tests/security/resources/rgbalpha.png: Added.
  • http/tests/security/shape-outside-and-cached-resources-expected.html: Added.
  • http/tests/security/shape-outside-and-cached-resources.html: Added.
  • http/tests/security/video-poster-cross-origin-crash-expected.txt:
  • http/tests/security/video-poster-cross-origin-crash2-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-same-origin-expected.txt:
  • http/tests/xmlhttprequest/access-control-repeated-failed-preflight-crash-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-credential-prompt-expected.txt:
  • http/tests/xmlhttprequest/cross-site-denied-response-expected.txt:
  • http/tests/xmlhttprequest/onerror-event-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt:
  • http/tests/xmlhttprequest/post-blob-content-type-async-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-2-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-denied-events-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-progress-events-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin-worker-expected.txt: Added.
2:48 AM Changeset in webkit [205472] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] Crash logs have incorrect symbols.
https://bugs.webkit.org/show_bug.cgi?id=161603

Reviewed by Darin Adler.

Add build path to _NT_SYMBOL_PATH environment variable.

  • Scripts/webkitpy/port/win.py:

(WinPort.setup_crash_log_saving):

12:09 AM Changeset in webkit [205471] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening

  • platform/gtk/TestExpectations: Mark 2 mediastream tests as crashing
12:03 AM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)

Sep 5, 2016:

10:57 PM Changeset in webkit [205470] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

Fix ENABLE(GAMEPAD) build errors on non-Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=161596

Reviewed by Darin Adler.

This patch fixes build errors popping up when enabling Gamepad
feature on non-Cocoa platforms.

  • CMakeLists.txt: Add the Source/WebCore/platform/gamepad/ directory to

WebKit2_INCLUDE_DIRECTORIES. Add GamepadData.cpp, UIGamepad.cpp files to the build.

  • UIProcess/Gamepad/UIGamepadProvider.cpp: Don't include Cocoa-specific

HIDGamepadProvider.h file. Update methods for the UIGamepadProvider class.
(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads): Deleted.
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads): Deleted.
(WebKit::UIGamepadProvider::platformGamepads): Deleted.
(WebKit::UIGamepadProvider::platformWebProcessProxyForGamepadInput): Deleted.

9:21 PM Changeset in webkit [205469] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove some dead code in ViewGestureControllerMac
https://bugs.webkit.org/show_bug.cgi?id=161616

Reviewed by Darin Adler.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::endSwipeGesture):
All other LEGACY_SWIPE_SHADOW_STYLE code has been removed, except for this.

8:33 PM Changeset in webkit [205468] by Darin Adler
  • 44 edits in trunk

More bindings improvements, particularly things not needed for JavaScript bindings
https://bugs.webkit.org/show_bug.cgi?id=161572

Reviewed by Sam Weinig.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj: Export a couple of files needed for legacy bindings.
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::addCrossOriginWindowPropertyNames): Mark array const.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::addCrossOriginLocationPropertyNames): Ditto.

  • dom/DOMImplementation.cpp:

(WebCore::addString): Deleted.
(WebCore::isSupportedSVG10Feature): Deleted.
(WebCore::isSupportedSVG11Feature): Deleted.
(WebCore::DOMImplementation::hasFeature): Deleted.

  • dom/DOMImplementation.h: Changed hasFeature to take no arguments and to always

return true, as specified in the DOM spec.

  • dom/DOMImplementation.idl: Removed the arguments to hasFeature.
  • dom/Document.cpp:

(WebCore::Document::defaultCharsetForLegacyBindings): Renamed from
defaultCharsetForBindings, because this function is used only by the
non-JavaScript bindings.

  • dom/Document.h: Updated for the above.
  • dom/DocumentType.h: Removed entitiesForBindings,

notationsForBindings, and internalSubsetForBindings, all of which were
empty functions. The empty implementations are now in the legacy bindings.

  • dom/Element.cpp:

(WebCore::Element::dispatchSimulatedClickForBindings): Deleted.
This code is now at the single call site, in HTMLElement.

  • dom/Element.h: Updated for the above change.
  • dom/Node.cpp:

(WebCore::Node::isSupportedForBindings): Deleted. This is only used in the
legacy bindings, and since it only returns a value other than "true" for
SVG features, it is now in the SVGTests class.

  • dom/Node.h: Updated for the above change.
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::click): Call simulateClick with the appropriate
arguments rather than calling dispatchSimulatedClickForBindings.

  • svg/SVGTests.cpp:

(WebCore::supportedSVGFeatures): Added. Moved here from DOMImplementation,
but also refactored.
(WebCore::SVGTests::isValid): Changed to use the function above, rather than
calling DOMImplementation::hasFeature. This change fixes a bug where feature names
that do not look like valid SVG feature names, names such as "xxx", were returning
true claiming that the feature was supported. This behavior was helpful in the
general DOMImplementation function, but harmful here. This bug was causing test
failures in some of our SVG tests.
(WebCore::SVGTests::hasFeatureForLegacyBindings): Added. Uses the set above to
implement the legacy behavior of hasFeature. It's better to have this in parallel
with the SVGTests::isValid function rather than having either depend on the other.

  • svg/SVGTests.h: Added exported SVGTests::isValid function.

Source/WebKit/mac:

  • DOM/DOMDOMImplementation.mm:

(-[DOMImplementation hasFeature:version:]): Call SVGTests::hasFeatureForLegacyBindings
instead of DOMImplementation::hasFeature. Also removed JSMainThreadNullState
since this does not do anything that can invoke JavaScript.

  • DOM/DOMDocument.mm:

(-[DOMDocument defaultCharset]): Call defaultCharsetForLegacyBindings. Also removed
JSMainThreadNullState.

  • DOM/DOMDocumentType.mm:

(-[DOMDocumentType entities]): Changed to simply return nil; same behavior as before,
but with no dependency on WebCore. Also removed JSMainThreadNullState.
(-[DOMDocumentType notations]): Ditto.
(-[DOMDocumentType internalSubset]): Ditto, except empty string rather than nil.

  • DOM/DOMNode.mm:

(-[DOMNode isSupported:version:]): Call SVGTests::hasFeatureForLegacyBindings
instead of Node::isSupportedForBindings. Also removed JSMainThreadNullState.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp:

(webkit_dom_dom_implementation_has_feature): Call SVGTests::hasFeatureForLegacyBindings
instead of DOMImplementation::hasFeature. Also removed JSMainThreadNullState
since this does not do anything that can invoke JavaScript.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp:

(webkit_dom_document_get_default_charset): Call defaultCharsetForLegacyBindings.
Also removed JSMainThreadNullState.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp:

(webkit_dom_document_type_get_entities): Changed to simply return nullptr; same behavior
as before, but with no dependency on WebCore. Also removed JSMainThreadNullState.
(webkit_dom_document_type_get_notations): Ditto.
(webkit_dom_document_type_get_internal_subset): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp:

(webkit_dom_node_is_supported): Call SVGTests::hasFeatureForLegacyBindings
instead of Node::isSupportedForBindings. Also removed JSMainThreadNullState.

LayoutTests:

imported/mozilla/svg tests named conditions-01.svg, conditions-06.svg,
dynamic-conditions-01.svg, switch-01.svg, and
svg-integration/dynamic-conditions-outer-svg-03.xhtml. These are now all passing,
likely because of a progression due to correctly handling bogus feature strings.
Also, a comment in bug 139115 claims that requiredFeatures it going to be removed
from the SVG specifications and from other implementations. Updated to expect
possible failure for dynamic-conditions-08.svg and dynamic-conditions-12.svg. Before
these were reliably passing because of the incorrect handling of bogus feature strings.
Now, they are sometimes failing because the tests include required code that runs on
a timer, but no code to guarantee the test engine will wait for the timer to fire.

  • platform/efl/TestExpectations: Removed now-redundant expectations that these

tests will pass; now expected on all platforms.

  • platform/ios-simulator/svg/W3C-SVG-1.1/struct-dom-03-b-expected.txt:
  • platform/ios-simulator/svg/W3C-SVG-1.1/struct-dom-04-b-expected.txt:
  • platform/ios-simulator/svg/W3C-SVG-1.1/struct-dom-05-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/struct-dom-03-b-expected.png:
  • platform/mac/svg/W3C-SVG-1.1/struct-dom-03-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/struct-dom-04-b-expected.png:
  • platform/mac/svg/W3C-SVG-1.1/struct-dom-04-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/struct-dom-05-b-expected.png:
  • platform/mac/svg/W3C-SVG-1.1/struct-dom-05-b-expected.txt:
  • svg/custom/svg-features-expected.txt:

Updated results for all these tests now that DOMImplementation.hasFeature always
returns true. The tests aren't super-valuable any more, but I don't see a good
reason to locally modify the imported tests from the W3C-SVG-1.1 suite, and
while the svg-features test isn't great, keeping it does provide a little test
coverage for the "always return true" behavior.

  • platform/ios-simulator/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
  • platform/win/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
  • svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:

Updated for progression due to correctly handling bogus feature strings.

8:16 PM Changeset in webkit [205467] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

Unreviewed, update stale variable name

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseCreateWebPage):

7:39 PM Changeset in webkit [205466] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Heap::isMarked() should use concurrent lazy flipping
https://bugs.webkit.org/show_bug.cgi?id=161613

Reviewed by Michael Catanzaro.

I found out about this race condition via
https://bugs.webkit.org/show_bug.cgi?id=160125#c233.

The problem is that we use isMarked, and maybe even isLive, inside the concurrent mark
phase. So, they need to lazy-flip in a non-racy way.

  • heap/HeapInlines.h:

(JSC::Heap::isLive):
(JSC::Heap::isMarked):

7:16 PM Changeset in webkit [205465] by fpizlo@apple.com
  • 15 edits in trunk/Source/JavaScriptCore

Unreviewed, reset generator test results after the butterflies.

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result:
7:08 PM Changeset in webkit [205464] by commit-queue@webkit.org
  • 53 edits
    17 deletes in trunk

Unreviewed, rolling out r205450.
https://bugs.webkit.org/show_bug.cgi?id=161614

Made tests flaky, causing false positives on EWS (Requested by
ap on #webkit).

Reverted changeset:

"CachedResourceLoader is not taking into account fetch options
to use or not cached resources"
https://bugs.webkit.org/show_bug.cgi?id=161389
http://trac.webkit.org/changeset/205450

6:11 PM Changeset in webkit [205463] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix cloop build.

  • bytecode/SuperSampler.cpp:
6:02 PM Changeset in webkit [205462] by fpizlo@apple.com
  • 291 edits
    23 adds
    1 delete in trunk

Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression
https://bugs.webkit.org/show_bug.cgi?id=160125

Reviewed by Geoffrey Garen and Keith Miller.
JSTests:


Most of the things I did properly covered by existing tests, but I found some simple cases of
unshifting that had sketchy coverage.

  • stress/array-storage-array-unshift.js: Added.
  • stress/contiguous-array-unshift.js: Added.
  • stress/double-array-unshift.js: Added.
  • stress/int32-array-unshift.js: Added.

Source/bmalloc:


I needed to tryMemalign, so I added such a thing.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocate):
(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocateImpl):

  • bmalloc/Allocator.h:
  • bmalloc/Cache.h:

(bmalloc::Cache::tryAllocate):

  • bmalloc/bmalloc.h:

(bmalloc::api::tryMemalign):

Source/JavaScriptCore:

In order to make the GC concurrent (bug 149432), we would either need to enable concurrent
copying or we would need to not copy. Concurrent copying carries a 1-2% throughput overhead
from the barriers alone. Considering that MarkedSpace does a decent job of avoiding
fragmentation, it's unlikely that it's worth paying 1-2% throughput for copying. So, we want
to get rid of copied space. This change moves copied space's biggest client over to marked
space.

Moving butterflies to marked space means having them use the new Auxiliary HeapCell
allocation path. This is a fairly mechanical change, but it caused performance regressions
everywhere, so this change also fixes MarkedSpace's performance issues.

At a high level the mechanical changes are:

  • We use AuxiliaryBarrier instead of CopyBarrier.


  • We use tryAllocateAuxiliary instead of tryAllocateStorage. I got rid of the silly CheckedBoolean stuff, since it's so much more trouble than it's worth.


  • The JITs have to emit inlined marked space allocations instead of inline copy space allocations.


  • Everyone has to get used to zeroing their butterflies after allocation instead of relying on them being pre-zeroed by the GC. Copied space would zero things for you, while marked space doesn't.


That's about 1/3 of this change. But this led to performance problems, which I fixed with
optimizations that amounted to a major MarkedSpace rewrite:

  • MarkedSpace always causes internal fragmentation for array allocations because the vector length we choose when we resize usually leads to a cell size that doesn't correspond to any size class. I got around this by making array allocations usually round up vectorLength to the maximum allowed by the size class that we would have allocated in. Also, ensureLengthSlow() and friends first make sure that the requested length can't just be fulfilled with the current allocation size. This safeguard means that not every array allocation has to do size class queries. For example, the fast path of new Array(length) never does any size class queries, under the assumption that (1) the speed gained from avoiding an ensureLengthSlow() call, which then just changes the vectorLength by doing the size class query, is too small to offset the speed lost by doing the query on every allocation and (2) new Array(length) is a pretty good hint that resizing is not very likely.


  • Size classes in MarkedSpace were way too precise, which led to external fragmentation. This changes MarkedSpace size classes to use a linear progression for very small sizes followed by a geometric progression that naturally transitions to a hyperbolic progression. We want hyperbolic sizes when we get close to blockSize: for example the largest size we want is payloadSize / 2 rounded down, to ensure we get exactly two cells with minimal slop. The next size down should be payloadSize / 3 rounded down, and so on. After the last precise size (80 bytes), we proceed using a geometric progression, but round up each size to minimize slop at the end of the block. This naturally causes the geometric progression to turn hyperbolic for large sizes. The size class configuration happens at VM start-up, so it can be controlled with runtime options. I found that a base of 1.4 works pretty well.


  • Large allocations caused massive internal fragmentation, since the smallest large allocation had to use exactly blockSize, and the largest small allocation used blockSize / 2. The next size up - the first large allocation size to require two blocks - also had 50% internal fragmentation. This is because we required large allocations to be blockSize aligned, so that MarkedBlock::blockFor() would work. I decided to rewrite all of that. Cells no longer have to be owned by a MarkedBlock. They can now alternatively be owned by a LargeAllocation. These two things are abstracted as CellContainer. You know that a cell is owned by a LargeAllocation if the MarkedBlock::atomSize / 2 bit is set. Basically, large allocations are deliberately misaligned by 8 bytes. This actually works out great since (1) typed arrays won't use large allocations anyway since they have their own malloc fallback and (2) large array butterflies already have a 8 byte header, which means that the 8 byte base misalignment aligns the large array payload on a 16 byte boundary. I took extreme care to make sure that the isLargeAllocation bit checks are as rare as possible; for example, ExecState::vm() skips the check because we know that callees must be small allocations. It's also possible to use template tricks to do one check for cell container kind, and then invoke a function specialized for MarkedBlock or a function specialized for LargeAllocation. LargeAllocation includes stubs for all MarkedBlock methods that get used from functions that are template-specialized like this. That's mostly to speed up the GC marking code. Most other code can use CellContainer API or HeapCell API directly. That's another thing: HeapCell, the common base of JSCell and auxiliary allocations, is now smart enough to do a lot of things for you, like HeapCell::vm(), HeapCell::heap(), HeapCell::isLargeAllocation(), and HeapCell::cellContainer(). The size cutoff for large allocations is runtime-configurable, so long as you don't choose something so small that callees end up large. I found that 400 bytes is roughly optimal. This means that the MarkedBlock size classes end up being:


16, 32, 48, 64, 80, 112, 160, 224, 320


The next size class would have been 432, but that's above the 400 byte cutoff. All of this
is configurable with --sizeClassProgression and --largeAllocationCutoff. You can see what
size classes you end up with by doing --dumpSizeClasses=true.


  • Copied space uses 64KB blocks, while marked space used to use 16KB blocks. Allocating a lot of stuff in 16KB blocks was slower than allocating it in 64KB blocks because the GC had a lot of per-block overhead. I removed this overhead: It's now 2x faster to scan all MarkedBlocks because the list that contains the interesting meta-data is allocated on the side, for better locality during a sequential walk. It's no longer necessary to scan MarkedBlocks to find WeakSets, since the sets of WeakSets for eden scan and full scan are maintained on-the-fly. It's no longer necessary to scan all MarkedBlocks to clear mark bits because we now use versioned mark bits: to clear then, just increment the 64-bit heap version. It's no longer necessary to scan retired MarkedBlocks while allocating because marking retires them on-the-fly. It's no longer necessary to sort all blocks in the IncrementalSweeper's snapshot because blocks now know if they are in the snapshot. Put together, these optimizations allowed me to reduce block size to 16KB without losing much performance. There is some small perf loss on JetStream/splay, but not enough to hurt JetStream overall. I tried reducing block sizes further, to 4KB, since that is a progression on membuster. That's not possible yet, since there is still enough per-block overhead yet that such a reduction hurts JetStream too much. I filed a bug about improving this further: https://bugs.webkit.org/show_bug.cgi?id=161581.


  • Even after all of that, copying butterflies was still faster because it allowed us to skip sweeping dead space. A good GC allocates over dead bytes without explicitly freeing them, so the GC pause is O(size of live), not O(size of live + dead). O(dead) is usually much larger than O(live), especially in an eden collection. Copying satisfies this premise while mark+sweep does not. So, I invented a new kind of allocator: bump'n'pop. Previously, our MarkedSpace allocator was a freelist pop. That's simple and easy to inline but requires that we walk the block to build a free list. This means walking dead space. The new allocator allows totally free MarkedBlocks to simply set up a bump-pointer arena instead. The allocator is a hybrid of bump-pointer and freelist pop. It tries bump first. The bump pointer always bumps by cellSize, so the result of filling a block with bumping looks as if we had used freelist popping to fill it. Additionally, each MarkedBlock now has a bit to quickly tell if the block is entirely free. This makes sweeping O(1) whenever a MarkedBlock is completely empty, which is the common case because of the generational hypothesis: the number of objects that survive an eden collection is a tiny fraction of the number of objects that had been allocated, and this fraction is so small that there are typically fewer than one survivors per MarkedBlock. This change was enough to make this change a net win over tip-of-tree.


  • FTL now shares the same allocation fast paths as everything else, which is great, because bump'n'pop has gnarly control flow. We don't really want B3 to have to think about that control flow, since it won't be able to improve the machine code we write ourselves. GC fast paths are best written in assembly. So, I've empowered B3 to have even better support for Patchpoint terminals. It's now totally fine for a Patchpoint terminal to be non-Void. So, the new FTL allocation fast paths are just Patchpoint terminals that call through to AssemblyHelpers::emitAllocate(). B3 still reasons about things like constant-folding the size class calculation and constant-hoisting the allocator. Also, I gave the FTL the ability to constant-fold some allocator logic (in case we first assume that we're doing a variable-length allocation but then realize that the length is known). I think it makes sense to have constant folding rules in FTL::Output, or whatever the B3 IR builder is, since this makes lowering easier (you can constant fold during lowering more easily) and it reduces the amount of malloc traffic. In the future, we could teach B3 how to better constant-fold this code. That would require allowing loads to be constant-folded, which is doable but hella tricky.


  • It used to be that if a logical object allocation required two physical allocations (first the butterfly and then the cell), then the JIT would emit the code in such a way that a failure in the second fast path would cause us to forget the successful first physical allocation. This was pointlessly wasteful. It turns out that it's very cheap to devote a register to storing either the butterfly or null, because the butterfly register is anyway going to be free inside the first allocation. The only overhead here is zeroing the butterfly register. With that in place, we can just pass the butterfly-or-null to the slow path, which can then either allocate a butterfly or not. So now we never waste a successful allocation. This patch implements such a solution both in DFG (where it's easy to do this since we control registers already) and in FTL (where it's annoying, because mutable "butterfly-or-null" variables are hard to say in SSA; also I realized that we had code duplicated the JSArray allocation utility, so I deduplicated it). This came up because in one version of this patch, this wastage would resonate with some Kraken benchmark: the benchmark would always allocate N small things followed by one bigger thing. The problem was I accidentally adjusted the various fixed overheads in MarkedBlock in such a way that the JSObject size class, which both the small and big thing shared for their cell, could hold exactly N cells per MarkedBlock. Then the benchmark would always call slow path when it allocated the big thing. So, it would end up having to allocate the big thing's large butterfly twice, every single time! Ouch!


  • It used to be that we zeroed CopiedBlocks using memset, and so array allocations enjoyed amortization of the cost of zeroing. This doesn't work anymore - it's now up to the client of the allocator to initialize the object to whatever state they need. It used to be that we would just use a dumb loop. I initially changed this so that we would end up in memset for large allocations, but this didn't actually help performance that much. I got a much better result by playing with different memsets written in assembly. First I wrote one using non-temporal stores. That was a small speed-up over memset. Then I tried the classic "rep stos" approach, and holy cow that version was fast. It's a ~20% speed-up on array allocation microbenchmarks. So, this patch adds code paths to do "rep stos" on x86_64, or memset, or use a loop, as appropriate, for both "contiguous" arrays (holes are zero) and double arrays (holes are PNaN). Note that the JIT always emits either a loop or a flat slab of stores (if the size is known), but those paths in the JIT won't trigger for NewArrayWithSize() if the size is large, since that takes us to the operationNewArrayWithSize() slow path, which calls into JSArray::create(). That's why the optimizations here are all in JSArray::create() - that's the hot place for large arrays that need to be filled with holes.


All of this put together gives us neutral perf on JetStream, membuster, and PLT3, a ~1%
regression on Speedometer, and up to a 4% regression Kraken. The Kraken regression is
because Kraken was allocating exactly 1024 element arrays at a rate of 400MB/sec. This is a
best-case scenario for bump allocation. I think that we should fix bmalloc to make up the
difference, but take the hit for now because it's a crazy corner case. By comparison, the
alternative approach of using a copy barrier would have cost us 1-2%. That's the real
apples-to-apples comparison if your premise is that we should have a concurrent GC. After we
finish removing copied space, we will be barrier-ready for concurrent GC: we already have a
marking barrier and we simply won't need a copying barrier. This change gets us there for
the purposes of our benchmarks, since the remaining clients of copied space are not very
important. On the other hand, if we keep copying, then getting barrier-ready would mean
adding back the copy barrier, which costs more perf.

We might get bigger speed-ups once we remove CopiedSpace altogether. That requires moving
typed arrays and a few other weird things over to Aux MarkedSpace.

This also includes some header sanitization. The introduction of AuxiliaryBarrier, HeapCell,
and CellContainer meant that I had to include those files from everywhere. Fortunately,
just including JSCInlines.h (instead of manually including the files that includes) is
usually enough. So, I made most of JSC's cpp files include JSCInlines.h, which is something
that we were already basically doing. In places where JSCInlines.h would be too much, I just
included HeapInlines.h. This got weird, because we previously included HeapInlines.h from
JSObject.h. That's bad because it led to some circular dependencies, so I fixed it - but that
meant having to manually include HeapInlines.h from the places that previously got it
implicitly via JSObject.h. But that led to more problems for some reason: I started getting
build errors because non-JSC files were having trouble including Opcode.h. That's just silly,
since Opcode.h is meant to be an internal JSC header. So, I made it an internal header and
made it impossible to include it from outside JSC. This was a lot of work, but it was
necessary to get the patch to build on all ports. It's also a net win. There were many places
in WebCore that were transitively including a *ton* of JSC headers just because of the
JSObject.h->HeapInlines.h edge and a bunch of dependency edges that arose from some public
(for WebCore) JSC headers needing Interpreter.h or Opcode.h for bad reasons.

  • API/JSManagedValue.mm:

(-[JSManagedValue initWithValue:]):

  • API/JSTypedArray.cpp:
  • API/ObjCCallbackFunction.mm:
  • API/tests/testapi.mm:

(testObjectiveCAPI):
(testWeakValue): Deleted.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/builtins/builtins_generate_combined_implementation.py:

(BuiltinsCombinedImplementationGenerator.generate_secondary_header_includes):

  • Scripts/builtins/builtins_generate_internals_wrapper_implementation.py:

(BuiltinsInternalsWrapperImplementationGenerator.generate_secondary_header_includes):

  • Scripts/builtins/builtins_generate_separate_implementation.py:

(BuiltinsSeparateImplementationGenerator.generate_secondary_header_includes):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::JumpList::link):
(JSC::AbstractMacroAssembler::JumpList::linkTo):

  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::add32):

  • assembler/MacroAssemblerCodeRef.cpp: Added.

(JSC::MacroAssemblerCodePtr::createLLIntCodePtr):
(JSC::MacroAssemblerCodePtr::dumpWithName):
(JSC::MacroAssemblerCodePtr::dump):
(JSC::MacroAssemblerCodeRef::createLLIntCodeRef):
(JSC::MacroAssemblerCodeRef::dump):

  • assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodePtr::createLLIntCodePtr): Deleted.
(JSC::MacroAssemblerCodePtr::dumpWithName): Deleted.
(JSC::MacroAssemblerCodePtr::dump): Deleted.
(JSC::MacroAssemblerCodeRef::createLLIntCodeRef): Deleted.
(JSC::MacroAssemblerCodeRef::dump): Deleted.

  • b3/B3BasicBlock.cpp:

(JSC::B3::BasicBlock::appendBoolConstant):

  • b3/B3BasicBlock.h:
  • b3/B3DuplicateTails.cpp:
  • b3/B3StackmapGenerationParams.h:
  • b3/testb3.cpp:

(JSC::B3::testPatchpointTerminalReturnValue):
(JSC::B3::run):

  • bindings/ScriptValue.cpp:
  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:
  • bytecode/BytecodeBasicBlock.cpp:
  • bytecode/BytecodeLivenessAnalysis.cpp:
  • bytecode/BytecodeUseDef.h:
  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::callTypeFor):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::callTypeFor): Deleted.

  • bytecode/CallLinkStatus.cpp:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::clearLLIntGetByIdCache):
(JSC::CodeBlock::predictedMachineCodeSize):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::jitCodeMap): Deleted.
(JSC::clearLLIntGetByIdCache): Deleted.

  • bytecode/ExecutionCounter.h:
  • bytecode/Instruction.h:
  • bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp:

(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::fireInternal):

  • bytecode/ObjectAllocationProfile.h:

(JSC::ObjectAllocationProfile::isNull):
(JSC::ObjectAllocationProfile::initialize):

  • bytecode/Opcode.h:

(JSC::padOpcodeName):

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateImpl):
(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:
  • bytecode/PreciseJumpTargets.cpp:
  • bytecode/StructureStubInfo.cpp:
  • bytecode/StructureStubInfo.h:
  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::vm): Deleted.

  • bytecode/UnlinkedCodeBlock.h:
  • bytecode/UnlinkedInstructionStream.cpp:
  • bytecode/UnlinkedInstructionStream.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::compileMakeRope):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateJSCell):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCompile.cpp:
  • ftl/FTLJITFinalizer.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
(JSC::FTL::DFG::LowerDFGToB3::allocateArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
(JSC::FTL::DFG::LowerDFGToB3::initializeArrayElements):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorageWithSizeImpl):
(JSC::FTL::DFG::LowerDFGToB3::allocateHeapCell):
(JSC::FTL::DFG::LowerDFGToB3::allocateCell):
(JSC::FTL::DFG::LowerDFGToB3::allocateObject):
(JSC::FTL::DFG::LowerDFGToB3::allocatorForSize):
(JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToB3::compileAllocateArrayWithSize): Deleted.

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::constBool):
(JSC::FTL::Output::add):
(JSC::FTL::Output::shl):
(JSC::FTL::Output::aShr):
(JSC::FTL::Output::lShr):
(JSC::FTL::Output::zeroExt):
(JSC::FTL::Output::equal):
(JSC::FTL::Output::notEqual):
(JSC::FTL::Output::above):
(JSC::FTL::Output::aboveOrEqual):
(JSC::FTL::Output::below):
(JSC::FTL::Output::belowOrEqual):
(JSC::FTL::Output::greaterThan):
(JSC::FTL::Output::greaterThanOrEqual):
(JSC::FTL::Output::lessThan):
(JSC::FTL::Output::lessThanOrEqual):
(JSC::FTL::Output::select):
(JSC::FTL::Output::appendSuccessor):
(JSC::FTL::Output::addIncomingToPhi):

  • ftl/FTLOutput.h:
  • ftl/FTLValueFromBlock.h:

(JSC::FTL::ValueFromBlock::operator bool):
(JSC::FTL::ValueFromBlock::ValueFromBlock): Deleted.

  • ftl/FTLWeightedTarget.h:

(JSC::FTL::WeightedTarget::frequentedBlock):

  • heap/CellContainer.h: Added.

(JSC::CellContainer::CellContainer):
(JSC::CellContainer::operator bool):
(JSC::CellContainer::isMarkedBlock):
(JSC::CellContainer::isLargeAllocation):
(JSC::CellContainer::markedBlock):
(JSC::CellContainer::largeAllocation):

  • heap/CellContainerInlines.h: Added.

(JSC::CellContainer::isMarked):
(JSC::CellContainer::isMarkedOrNewlyAllocated):
(JSC::CellContainer::noteMarked):
(JSC::CellContainer::cellSize):
(JSC::CellContainer::weakSet):
(JSC::CellContainer::flipIfNecessary):

  • heap/ConservativeRoots.cpp:

(JSC::ConservativeRoots::ConservativeRoots):
(JSC::ConservativeRoots::~ConservativeRoots):
(JSC::ConservativeRoots::grow):
(JSC::ConservativeRoots::genericAddPointer):
(JSC::ConservativeRoots::genericAddSpan):

  • heap/ConservativeRoots.h:

(JSC::ConservativeRoots::roots):

  • heap/CopyToken.h:
  • heap/FreeList.cpp: Added.

(JSC::FreeList::dump):

  • heap/FreeList.h: Added.

(JSC::FreeList::FreeList):
(JSC::FreeList::list):
(JSC::FreeList::bump):
(JSC::FreeList::operator==):
(JSC::FreeList::operator!=):
(JSC::FreeList::operator bool):
(JSC::FreeList::allocationWillFail):
(JSC::FreeList::allocationWillSucceed):

  • heap/GCTypeMap.h: Added.

(JSC::GCTypeMap::operator[]):

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::lastChanceToFinalize):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::markRoots):
(JSC::Heap::copyBackingStores):
(JSC::Heap::gatherStackRoots):
(JSC::Heap::gatherJSStackRoots):
(JSC::Heap::gatherScratchBufferRoots):
(JSC::Heap::clearLivenessData):
(JSC::Heap::visitSmallStrings):
(JSC::Heap::visitConservativeRoots):
(JSC::Heap::removeDeadCompilerWorklistEntries):
(JSC::Heap::gatherExtraHeapSnapshotData):
(JSC::Heap::removeDeadHeapSnapshotNodes):
(JSC::Heap::visitProtectedObjects):
(JSC::Heap::visitArgumentBuffers):
(JSC::Heap::visitException):
(JSC::Heap::visitStrongHandles):
(JSC::Heap::visitHandleStack):
(JSC::Heap::visitSamplingProfiler):
(JSC::Heap::traceCodeBlocksAndJITStubRoutines):
(JSC::Heap::converge):
(JSC::Heap::visitWeakHandles):
(JSC::Heap::updateObjectCounts):
(JSC::Heap::clearUnmarkedExecutables):
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::collectAllGarbage):
(JSC::Heap::collect):
(JSC::Heap::collectWithoutAnySweep):
(JSC::Heap::collectImpl):
(JSC::Heap::suspendCompilerThreads):
(JSC::Heap::willStartCollection):
(JSC::Heap::flushOldStructureIDTables):
(JSC::Heap::flushWriteBarrierBuffer):
(JSC::Heap::stopAllocation):
(JSC::Heap::prepareForMarking):
(JSC::Heap::reapWeakHandles):
(JSC::Heap::pruneStaleEntriesFromWeakGCMaps):
(JSC::Heap::sweepArrayBuffers):
(JSC::MarkedBlockSnapshotFunctor::MarkedBlockSnapshotFunctor):
(JSC::MarkedBlockSnapshotFunctor::operator()):
(JSC::Heap::snapshotMarkedSpace):
(JSC::Heap::deleteSourceProviderCaches):
(JSC::Heap::notifyIncrementalSweeper):
(JSC::Heap::writeBarrierCurrentlyExecutingCodeBlocks):
(JSC::Heap::resetAllocators):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::didFinishCollection):
(JSC::Heap::resumeCompilerThreads):
(JSC::Zombify::visit):
(JSC::Heap::forEachCodeBlockImpl):

  • heap/Heap.h:

(JSC::Heap::allocatorForObjectWithoutDestructor):
(JSC::Heap::allocatorForObjectWithDestructor):
(JSC::Heap::allocatorForAuxiliaryData):
(JSC::Heap::jitStubRoutines):
(JSC::Heap::codeBlockSet):
(JSC::Heap::storageAllocator): Deleted.

  • heap/HeapCell.h:

(JSC::HeapCell::isZapped): Deleted.

  • heap/HeapCellInlines.h: Added.

(JSC::HeapCell::isLargeAllocation):
(JSC::HeapCell::cellContainer):
(JSC::HeapCell::markedBlock):
(JSC::HeapCell::largeAllocation):
(JSC::HeapCell::heap):
(JSC::HeapCell::vm):
(JSC::HeapCell::cellSize):
(JSC::HeapCell::allocatorAttributes):
(JSC::HeapCell::destructionMode):
(JSC::HeapCell::cellKind):

  • heap/HeapInlines.h:

(JSC::Heap::heap):
(JSC::Heap::isLive):
(JSC::Heap::isMarked):
(JSC::Heap::testAndSetMarked):
(JSC::Heap::setMarked):
(JSC::Heap::cellSize):
(JSC::Heap::forEachCodeBlock):
(JSC::Heap::allocateObjectOfType):
(JSC::Heap::subspaceForObjectOfType):
(JSC::Heap::allocatorForObjectOfType):
(JSC::Heap::allocateAuxiliary):
(JSC::Heap::tryAllocateAuxiliary):
(JSC::Heap::tryReallocateAuxiliary):
(JSC::Heap::isPointerGCObject): Deleted.
(JSC::Heap::isValueGCObject): Deleted.

  • heap/HeapOperation.cpp: Added.

(WTF::printInternal):

  • heap/HeapOperation.h:
  • heap/HeapUtil.h: Added.

(JSC::HeapUtil::findGCObjectPointersForMarking):
(JSC::HeapUtil::isPointerGCObjectJSCell):
(JSC::HeapUtil::isValueGCObject):

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::sweepNextBlock):

  • heap/IncrementalSweeper.h:
  • heap/LargeAllocation.cpp: Added.

(JSC::LargeAllocation::tryCreate):
(JSC::LargeAllocation::LargeAllocation):
(JSC::LargeAllocation::lastChanceToFinalize):
(JSC::LargeAllocation::shrink):
(JSC::LargeAllocation::visitWeakSet):
(JSC::LargeAllocation::reapWeakSet):
(JSC::LargeAllocation::flip):
(JSC::LargeAllocation::isEmpty):
(JSC::LargeAllocation::sweep):
(JSC::LargeAllocation::destroy):
(JSC::LargeAllocation::dump):

  • heap/LargeAllocation.h: Added.

(JSC::LargeAllocation::fromCell):
(JSC::LargeAllocation::cell):
(JSC::LargeAllocation::isLargeAllocation):
(JSC::LargeAllocation::heap):
(JSC::LargeAllocation::vm):
(JSC::LargeAllocation::weakSet):
(JSC::LargeAllocation::clearNewlyAllocated):
(JSC::LargeAllocation::isNewlyAllocated):
(JSC::LargeAllocation::isMarked):
(JSC::LargeAllocation::isMarkedOrNewlyAllocated):
(JSC::LargeAllocation::isLive):
(JSC::LargeAllocation::hasValidCell):
(JSC::LargeAllocation::cellSize):
(JSC::LargeAllocation::aboveLowerBound):
(JSC::LargeAllocation::belowUpperBound):
(JSC::LargeAllocation::contains):
(JSC::LargeAllocation::attributes):
(JSC::LargeAllocation::flipIfNecessary):
(JSC::LargeAllocation::flipIfNecessaryConcurrently):
(JSC::LargeAllocation::testAndSetMarked):
(JSC::LargeAllocation::setMarked):
(JSC::LargeAllocation::clearMarked):
(JSC::LargeAllocation::noteMarked):
(JSC::LargeAllocation::headerSize):

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::MarkedAllocator):
(JSC::MarkedAllocator::isPagedOut):
(JSC::MarkedAllocator::retire):
(JSC::MarkedAllocator::filterNextBlock):
(JSC::MarkedAllocator::setNextBlockToSweep):
(JSC::MarkedAllocator::tryAllocateWithoutCollectingImpl):
(JSC::MarkedAllocator::tryAllocateWithoutCollecting):
(JSC::MarkedAllocator::allocateSlowCase):
(JSC::MarkedAllocator::tryAllocateSlowCase):
(JSC::MarkedAllocator::allocateSlowCaseImpl):
(JSC::blockHeaderSize):
(JSC::MarkedAllocator::blockSizeForBytes):
(JSC::MarkedAllocator::tryAllocateBlock):
(JSC::MarkedAllocator::addBlock):
(JSC::MarkedAllocator::removeBlock):
(JSC::MarkedAllocator::stopAllocating):
(JSC::MarkedAllocator::reset):
(JSC::MarkedAllocator::lastChanceToFinalize):
(JSC::MarkedAllocator::setFreeList):
(JSC::isListPagedOut): Deleted.
(JSC::MarkedAllocator::tryAllocateHelper): Deleted.
(JSC::MarkedAllocator::tryPopFreeList): Deleted.
(JSC::MarkedAllocator::tryAllocate): Deleted.
(JSC::MarkedAllocator::allocateBlock): Deleted.

  • heap/MarkedAllocator.h:

(JSC::MarkedAllocator::takeLastActiveBlock):
(JSC::MarkedAllocator::offsetOfFreeList):
(JSC::MarkedAllocator::offsetOfCellSize):
(JSC::MarkedAllocator::tryAllocate):
(JSC::MarkedAllocator::allocate):
(JSC::MarkedAllocator::forEachBlock):
(JSC::MarkedAllocator::offsetOfFreeListHead): Deleted.
(JSC::MarkedAllocator::MarkedAllocator): Deleted.
(JSC::MarkedAllocator::init): Deleted.
(JSC::MarkedAllocator::stopAllocating): Deleted.

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::tryCreate):
(JSC::MarkedBlock::Handle::Handle):
(JSC::MarkedBlock::Handle::~Handle):
(JSC::MarkedBlock::MarkedBlock):
(JSC::MarkedBlock::Handle::specializedSweep):
(JSC::MarkedBlock::Handle::sweep):
(JSC::MarkedBlock::Handle::sweepHelperSelectScribbleMode):
(JSC::MarkedBlock::Handle::sweepHelperSelectStateAndSweepMode):
(JSC::MarkedBlock::Handle::unsweepWithNoNewlyAllocated):
(JSC::SetNewlyAllocatedFunctor::SetNewlyAllocatedFunctor):
(JSC::SetNewlyAllocatedFunctor::operator()):
(JSC::MarkedBlock::Handle::stopAllocating):
(JSC::MarkedBlock::Handle::lastChanceToFinalize):
(JSC::MarkedBlock::Handle::resumeAllocating):
(JSC::MarkedBlock::Handle::zap):
(JSC::MarkedBlock::Handle::forEachFreeCell):
(JSC::MarkedBlock::flipIfNecessary):
(JSC::MarkedBlock::Handle::flipIfNecessary):
(JSC::MarkedBlock::flipIfNecessarySlow):
(JSC::MarkedBlock::flipIfNecessaryConcurrentlySlow):
(JSC::MarkedBlock::clearMarks):
(JSC::MarkedBlock::assertFlipped):
(JSC::MarkedBlock::needsFlip):
(JSC::MarkedBlock::Handle::needsFlip):
(JSC::MarkedBlock::Handle::willRemoveBlock):
(JSC::MarkedBlock::Handle::didConsumeFreeList):
(JSC::MarkedBlock::markCount):
(JSC::MarkedBlock::Handle::isEmpty):
(JSC::MarkedBlock::clearHasAnyMarked):
(JSC::MarkedBlock::noteMarkedSlow):
(WTF::printInternal):
(JSC::MarkedBlock::create): Deleted.
(JSC::MarkedBlock::destroy): Deleted.
(JSC::MarkedBlock::callDestructor): Deleted.
(JSC::MarkedBlock::specializedSweep): Deleted.
(JSC::MarkedBlock::sweep): Deleted.
(JSC::MarkedBlock::sweepHelper): Deleted.
(JSC::MarkedBlock::stopAllocating): Deleted.
(JSC::MarkedBlock::clearMarksWithCollectionType): Deleted.
(JSC::MarkedBlock::lastChanceToFinalize): Deleted.
(JSC::MarkedBlock::resumeAllocating): Deleted.
(JSC::MarkedBlock::didRetireBlock): Deleted.

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::VoidFunctor::returnValue):
(JSC::MarkedBlock::CountFunctor::CountFunctor):
(JSC::MarkedBlock::CountFunctor::count):
(JSC::MarkedBlock::CountFunctor::returnValue):
(JSC::MarkedBlock::Handle::hasAnyNewlyAllocated):
(JSC::MarkedBlock::Handle::isOnBlocksToSweep):
(JSC::MarkedBlock::Handle::setIsOnBlocksToSweep):
(JSC::MarkedBlock::Handle::state):
(JSC::MarkedBlock::needsDestruction):
(JSC::MarkedBlock::handle):
(JSC::MarkedBlock::Handle::block):
(JSC::MarkedBlock::firstAtom):
(JSC::MarkedBlock::atoms):
(JSC::MarkedBlock::isAtomAligned):
(JSC::MarkedBlock::Handle::cellAlign):
(JSC::MarkedBlock::blockFor):
(JSC::MarkedBlock::Handle::allocator):
(JSC::MarkedBlock::Handle::heap):
(JSC::MarkedBlock::Handle::vm):
(JSC::MarkedBlock::vm):
(JSC::MarkedBlock::Handle::weakSet):
(JSC::MarkedBlock::weakSet):
(JSC::MarkedBlock::Handle::shrink):
(JSC::MarkedBlock::Handle::visitWeakSet):
(JSC::MarkedBlock::Handle::reapWeakSet):
(JSC::MarkedBlock::Handle::cellSize):
(JSC::MarkedBlock::cellSize):
(JSC::MarkedBlock::Handle::attributes):
(JSC::MarkedBlock::attributes):
(JSC::MarkedBlock::Handle::needsDestruction):
(JSC::MarkedBlock::Handle::destruction):
(JSC::MarkedBlock::Handle::cellKind):
(JSC::MarkedBlock::Handle::markCount):
(JSC::MarkedBlock::Handle::size):
(JSC::MarkedBlock::atomNumber):
(JSC::MarkedBlock::flipIfNecessary):
(JSC::MarkedBlock::flipIfNecessaryConcurrently):
(JSC::MarkedBlock::Handle::flipIfNecessary):
(JSC::MarkedBlock::Handle::flipIfNecessaryConcurrently):
(JSC::MarkedBlock::Handle::flipForEdenCollection):
(JSC::MarkedBlock::assertFlipped):
(JSC::MarkedBlock::Handle::assertFlipped):
(JSC::MarkedBlock::isMarked):
(JSC::MarkedBlock::testAndSetMarked):
(JSC::MarkedBlock::Handle::isNewlyAllocated):
(JSC::MarkedBlock::Handle::setNewlyAllocated):
(JSC::MarkedBlock::Handle::clearNewlyAllocated):
(JSC::MarkedBlock::Handle::isMarkedOrNewlyAllocated):
(JSC::MarkedBlock::isMarkedOrNewlyAllocated):
(JSC::MarkedBlock::Handle::isLive):
(JSC::MarkedBlock::isAtom):
(JSC::MarkedBlock::Handle::isLiveCell):
(JSC::MarkedBlock::Handle::forEachCell):
(JSC::MarkedBlock::Handle::forEachLiveCell):
(JSC::MarkedBlock::Handle::forEachDeadCell):
(JSC::MarkedBlock::Handle::needsSweeping):
(JSC::MarkedBlock::Handle::isAllocated):
(JSC::MarkedBlock::Handle::isMarked):
(JSC::MarkedBlock::Handle::isFreeListed):
(JSC::MarkedBlock::hasAnyMarked):
(JSC::MarkedBlock::noteMarked):
(WTF::MarkedBlockHash::hash):
(JSC::MarkedBlock::FreeList::FreeList): Deleted.
(JSC::MarkedBlock::allocator): Deleted.
(JSC::MarkedBlock::heap): Deleted.
(JSC::MarkedBlock::shrink): Deleted.
(JSC::MarkedBlock::visitWeakSet): Deleted.
(JSC::MarkedBlock::reapWeakSet): Deleted.
(JSC::MarkedBlock::willRemoveBlock): Deleted.
(JSC::MarkedBlock::didConsumeFreeList): Deleted.
(JSC::MarkedBlock::markCount): Deleted.
(JSC::MarkedBlock::isEmpty): Deleted.
(JSC::MarkedBlock::destruction): Deleted.
(JSC::MarkedBlock::cellKind): Deleted.
(JSC::MarkedBlock::size): Deleted.
(JSC::MarkedBlock::capacity): Deleted.
(JSC::MarkedBlock::setMarked): Deleted.
(JSC::MarkedBlock::clearMarked): Deleted.
(JSC::MarkedBlock::isNewlyAllocated): Deleted.
(JSC::MarkedBlock::setNewlyAllocated): Deleted.
(JSC::MarkedBlock::clearNewlyAllocated): Deleted.
(JSC::MarkedBlock::isLive): Deleted.
(JSC::MarkedBlock::isLiveCell): Deleted.
(JSC::MarkedBlock::forEachCell): Deleted.
(JSC::MarkedBlock::forEachLiveCell): Deleted.
(JSC::MarkedBlock::forEachDeadCell): Deleted.
(JSC::MarkedBlock::needsSweeping): Deleted.
(JSC::MarkedBlock::isAllocated): Deleted.
(JSC::MarkedBlock::isMarkedOrRetired): Deleted.

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::initializeSizeClassForStepSize):
(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::~MarkedSpace):
(JSC::MarkedSpace::lastChanceToFinalize):
(JSC::MarkedSpace::allocate):
(JSC::MarkedSpace::tryAllocate):
(JSC::MarkedSpace::allocateLarge):
(JSC::MarkedSpace::tryAllocateLarge):
(JSC::MarkedSpace::sweep):
(JSC::MarkedSpace::sweepLargeAllocations):
(JSC::MarkedSpace::zombifySweep):
(JSC::MarkedSpace::resetAllocators):
(JSC::MarkedSpace::visitWeakSets):
(JSC::MarkedSpace::reapWeakSets):
(JSC::MarkedSpace::stopAllocating):
(JSC::MarkedSpace::prepareForMarking):
(JSC::MarkedSpace::resumeAllocating):
(JSC::MarkedSpace::isPagedOut):
(JSC::MarkedSpace::freeBlock):
(JSC::MarkedSpace::freeOrShrinkBlock):
(JSC::MarkedSpace::shrink):
(JSC::MarkedSpace::clearNewlyAllocated):
(JSC::VerifyMarked::operator()):
(JSC::MarkedSpace::flip):
(JSC::MarkedSpace::objectCount):
(JSC::MarkedSpace::size):
(JSC::MarkedSpace::capacity):
(JSC::MarkedSpace::addActiveWeakSet):
(JSC::MarkedSpace::didAddBlock):
(JSC::MarkedSpace::didAllocateInBlock):
(JSC::MarkedSpace::forEachAllocator): Deleted.
(JSC::VerifyMarkedOrRetired::operator()): Deleted.
(JSC::MarkedSpace::clearMarks): Deleted.

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::sizeClassToIndex):
(JSC::MarkedSpace::indexToSizeClass):
(JSC::MarkedSpace::version):
(JSC::MarkedSpace::blocksWithNewObjects):
(JSC::MarkedSpace::largeAllocations):
(JSC::MarkedSpace::largeAllocationsNurseryOffset):
(JSC::MarkedSpace::largeAllocationsOffsetForThisCollection):
(JSC::MarkedSpace::largeAllocationsForThisCollectionBegin):
(JSC::MarkedSpace::largeAllocationsForThisCollectionEnd):
(JSC::MarkedSpace::largeAllocationsForThisCollectionSize):
(JSC::MarkedSpace::forEachLiveCell):
(JSC::MarkedSpace::forEachDeadCell):
(JSC::MarkedSpace::allocatorFor):
(JSC::MarkedSpace::destructorAllocatorFor):
(JSC::MarkedSpace::auxiliaryAllocatorFor):
(JSC::MarkedSpace::allocateWithoutDestructor):
(JSC::MarkedSpace::allocateWithDestructor):
(JSC::MarkedSpace::allocateAuxiliary):
(JSC::MarkedSpace::tryAllocateAuxiliary):
(JSC::MarkedSpace::forEachBlock):
(JSC::MarkedSpace::forEachAllocator):
(JSC::MarkedSpace::optimalSizeFor):
(JSC::MarkedSpace::didAddBlock): Deleted.
(JSC::MarkedSpace::didAllocateInBlock): Deleted.
(JSC::MarkedSpace::objectCount): Deleted.
(JSC::MarkedSpace::size): Deleted.
(JSC::MarkedSpace::capacity): Deleted.

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::SlotVisitor):
(JSC::SlotVisitor::didStartMarking):
(JSC::SlotVisitor::reset):
(JSC::SlotVisitor::append):
(JSC::SlotVisitor::appendJSCellOrAuxiliary):
(JSC::SlotVisitor::setMarkedAndAppendToMarkStack):
(JSC::SlotVisitor::appendToMarkStack):
(JSC::SlotVisitor::markAuxiliary):
(JSC::SlotVisitor::noteLiveAuxiliaryCell):
(JSC::SlotVisitor::visitChildren):

  • heap/SlotVisitor.h:
  • heap/WeakBlock.cpp:

(JSC::WeakBlock::create):
(JSC::WeakBlock::WeakBlock):
(JSC::WeakBlock::visit):
(JSC::WeakBlock::reap):

  • heap/WeakBlock.h:

(JSC::WeakBlock::disconnectContainer):
(JSC::WeakBlock::disconnectMarkedBlock): Deleted.

  • heap/WeakSet.cpp:

(JSC::WeakSet::~WeakSet):
(JSC::WeakSet::sweep):
(JSC::WeakSet::shrink):
(JSC::WeakSet::addAllocator):

  • heap/WeakSet.h:

(JSC::WeakSet::container):
(JSC::WeakSet::setContainer):
(JSC::WeakSet::WeakSet):
(JSC::WeakSet::visit):
(JSC::WeakSet::shrink): Deleted.

  • heap/WeakSetInlines.h:

(JSC::WeakSet::allocate):

  • inspector/InjectedScriptManager.cpp:
  • inspector/JSGlobalObjectInspectorController.cpp:
  • inspector/JSJavaScriptCallFrame.cpp:
  • inspector/ScriptDebugServer.cpp:
  • inspector/agents/InspectorDebuggerAgent.cpp:
  • interpreter/CachedCall.h:

(JSC::CachedCall::CachedCall):

  • interpreter/Interpreter.cpp:

(JSC::loadVarargs):
(JSC::StackFrame::sourceID): Deleted.
(JSC::StackFrame::sourceURL): Deleted.
(JSC::StackFrame::functionName): Deleted.
(JSC::StackFrame::computeLineAndColumn): Deleted.
(JSC::StackFrame::toString): Deleted.

  • interpreter/Interpreter.h:

(JSC::StackFrame::isNative): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):
(JSC::AssemblyHelpers::emitAllocate):
(JSC::AssemblyHelpers::emitAllocateJSCell):
(JSC::AssemblyHelpers::emitAllocateJSObject):
(JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize):
(JSC::AssemblyHelpers::emitAllocateVariableSized):

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::GCAwareJITStubRoutine::GCAwareJITStubRoutine):

  • jit/JIT.cpp:

(JSC::JIT::compileCTINativeCall):
(JSC::JIT::link):

  • jit/JIT.h:

(JSC::JIT::compileCTINativeCall): Deleted.

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

  • jit/JITExceptions.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_new_object):
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emitSlow_op_create_this):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_new_object):
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emitSlow_op_create_this):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitWriteBarrier):

  • jit/JITThunks.cpp:
  • jit/JITThunks.h:
  • jsc.cpp:

(functionDescribeArray):
(main):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntExceptions.cpp:
  • llint/LLIntThunks.cpp:
  • llint/LLIntThunks.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ModuleAnalyzer.cpp:
  • parser/NodeConstructors.h:
  • parser/Nodes.h:
  • profiler/ProfilerBytecode.cpp:
  • profiler/ProfilerBytecode.h:
  • profiler/ProfilerBytecodeSequence.cpp:
  • runtime/ArrayConventions.h:

(JSC::indexingHeaderForArrayStorage):
(JSC::baseIndexingHeaderForArrayStorage):
(JSC::indexingHeaderForArray): Deleted.
(JSC::baseIndexingHeaderForArray): Deleted.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSplice):
(JSC::concatAppendOne):
(JSC::arrayProtoPrivateFuncConcatMemcpy):

  • runtime/ArrayStorage.h:

(JSC::ArrayStorage::vectorLength):
(JSC::ArrayStorage::totalSizeFor):
(JSC::ArrayStorage::totalSize):
(JSC::ArrayStorage::availableVectorLength):
(JSC::ArrayStorage::optimalVectorLength):
(JSC::ArrayStorage::sizeFor): Deleted.

  • runtime/AuxiliaryBarrier.h: Added.

(JSC::AuxiliaryBarrier::AuxiliaryBarrier):
(JSC::AuxiliaryBarrier::clear):
(JSC::AuxiliaryBarrier::get):
(JSC::AuxiliaryBarrier::slot):
(JSC::AuxiliaryBarrier::operator bool):
(JSC::AuxiliaryBarrier::setWithoutBarrier):

  • runtime/AuxiliaryBarrierInlines.h: Added.

(JSC::AuxiliaryBarrier<T>::AuxiliaryBarrier):
(JSC::AuxiliaryBarrier<T>::set):

  • runtime/Butterfly.h:
  • runtime/ButterflyInlines.h:

(JSC::Butterfly::availableContiguousVectorLength):
(JSC::Butterfly::optimalContiguousVectorLength):
(JSC::Butterfly::createUninitialized):
(JSC::Butterfly::growArrayRight):

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::createEmpty):

  • runtime/CommonSlowPathsExceptions.cpp:
  • runtime/CommonSlowPathsExceptions.h:
  • runtime/DataView.cpp:
  • runtime/DirectArguments.h:
  • runtime/ECMAScriptSpecInternalFunctions.cpp:
  • runtime/Error.cpp:
  • runtime/Error.h:
  • runtime/ErrorInstance.cpp:
  • runtime/ErrorInstance.h:
  • runtime/Exception.cpp:
  • runtime/Exception.h:
  • runtime/GeneratorFrame.cpp:
  • runtime/GeneratorPrototype.cpp:
  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::InternalFunction):

  • runtime/IntlCollator.cpp:
  • runtime/IntlCollatorConstructor.cpp:
  • runtime/IntlCollatorPrototype.cpp:
  • runtime/IntlDateTimeFormat.cpp:
  • runtime/IntlDateTimeFormatConstructor.cpp:
  • runtime/IntlDateTimeFormatPrototype.cpp:
  • runtime/IntlNumberFormat.cpp:
  • runtime/IntlNumberFormatConstructor.cpp:
  • runtime/IntlNumberFormatPrototype.cpp:
  • runtime/IntlObject.cpp:
  • runtime/IteratorPrototype.cpp:
  • runtime/JSArray.cpp:

(JSC::JSArray::tryCreateUninitialized):
(JSC::JSArray::setLengthWritable):
(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::setLengthWithArrayStorage):
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::push):
(JSC::JSArray::fastSlice):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithArrayStorage):
(JSC::JSArray::fillArgList):
(JSC::JSArray::copyToArguments):

  • runtime/JSArray.h:

(JSC::createContiguousArrayButterfly):
(JSC::createArrayButterfly):
(JSC::JSArray::create):
(JSC::JSArray::tryCreateUninitialized): Deleted.

  • runtime/JSArrayBufferView.h:
  • runtime/JSCInlines.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::dumpInContextAssumingStructure):

  • runtime/JSCallee.cpp:

(JSC::JSCallee::JSCallee):

  • runtime/JSCell.cpp:

(JSC::JSCell::estimatedSize):

  • runtime/JSCell.h:

(JSC::JSCell::cellStateOffset): Deleted.

  • runtime/JSCellInlines.h:

(JSC::ExecState::vm):
(JSC::JSCell::classInfo):
(JSC::JSCell::callDestructor):
(JSC::JSCell::vm): Deleted.

  • runtime/JSFunction.cpp:

(JSC::JSFunction::create):
(JSC::JSFunction::allocateAndInitializeRareData):
(JSC::JSFunction::initializeRareData):
(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::put):
(JSC::JSFunction::deleteProperty):
(JSC::JSFunction::defineOwnProperty):
(JSC::JSFunction::setFunctionName):
(JSC::JSFunction::reifyLength):
(JSC::JSFunction::reifyName):
(JSC::JSFunction::reifyLazyPropertyIfNeeded):
(JSC::JSFunction::reifyBoundNameIfNeeded):

  • runtime/JSFunction.h:
  • runtime/JSFunctionInlines.h:

(JSC::JSFunction::createWithInvalidatedReallocationWatchpoint):
(JSC::JSFunction::JSFunction):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::slowDownAndWasteMemory):

  • runtime/JSInternalPromise.cpp:
  • runtime/JSInternalPromiseConstructor.cpp:
  • runtime/JSInternalPromiseDeferred.cpp:
  • runtime/JSInternalPromisePrototype.cpp:
  • runtime/JSJob.cpp:
  • runtime/JSMapIterator.cpp:
  • runtime/JSModuleNamespaceObject.cpp:
  • runtime/JSModuleRecord.cpp:
  • runtime/JSObject.cpp:

(JSC::JSObject::visitButterfly):
(JSC::JSObject::notifyPresenceOfIndexedAccessors):
(JSC::JSObject::createInitialIndexedStorage):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::createInitialArrayStorage):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::putByIndexBeyondVectorLength):
(JSC::JSObject::putDirectIndexBeyondVectorLength):
(JSC::JSObject::getNewVectorLength):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::growOutOfLineStorage):
(JSC::JSObject::copyButterfly): Deleted.
(JSC::JSObject::copyBackingStore): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::globalObject):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::setStructureAndReallocateStorageIfNecessary): Deleted.

  • runtime/JSObjectInlines.h:
  • runtime/JSPromise.cpp:
  • runtime/JSPromiseConstructor.cpp:
  • runtime/JSPromiseDeferred.cpp:
  • runtime/JSPromisePrototype.cpp:
  • runtime/JSPropertyNameIterator.cpp:
  • runtime/JSScope.cpp:

(JSC::JSScope::resolve):

  • runtime/JSScope.h:

(JSC::JSScope::globalObject):
(JSC::JSScope::vm): Deleted.

  • runtime/JSSetIterator.cpp:
  • runtime/JSStringIterator.cpp:
  • runtime/JSTemplateRegistryKey.cpp:
  • runtime/JSTypedArrayViewConstructor.cpp:
  • runtime/JSTypedArrayViewPrototype.cpp:
  • runtime/JSWeakMap.cpp:
  • runtime/JSWeakSet.cpp:
  • runtime/MapConstructor.cpp:
  • runtime/MapIteratorPrototype.cpp:
  • runtime/MapPrototype.cpp:
  • runtime/NativeErrorConstructor.cpp:
  • runtime/NativeStdFunctionCell.cpp:
  • runtime/Operations.h:

(JSC::scribbleFreeCells):
(JSC::scribble):

  • runtime/Options.h:
  • runtime/PropertyTable.cpp:
  • runtime/ProxyConstructor.cpp:
  • runtime/ProxyObject.cpp:
  • runtime/ProxyRevoke.cpp:
  • runtime/RegExp.cpp:

(JSC::RegExp::match):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::matchCompareWithInterpreter):

  • runtime/RegExp.h:
  • runtime/RegExpConstructor.h:
  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):

  • runtime/RegExpMatchesArray.h:

(JSC::tryCreateUninitializedRegExpMatchesArray):
(JSC::createRegExpMatchesArray):

  • runtime/RegExpPrototype.cpp:

(JSC::genericSplit):

  • runtime/RuntimeType.cpp:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::processUnverifiedStackTraces):

  • runtime/SetConstructor.cpp:
  • runtime/SetIteratorPrototype.cpp:
  • runtime/SetPrototype.cpp:
  • runtime/StackFrame.cpp: Added.

(JSC::StackFrame::sourceID):
(JSC::StackFrame::sourceURL):
(JSC::StackFrame::functionName):
(JSC::StackFrame::computeLineAndColumn):
(JSC::StackFrame::toString):

  • runtime/StackFrame.h: Added.

(JSC::StackFrame::isNative):

  • runtime/StringConstructor.cpp:
  • runtime/StringIteratorPrototype.cpp:
  • runtime/StructureInlines.h:

(JSC::Structure::propertyTable):

  • runtime/TemplateRegistry.cpp:
  • runtime/TestRunnerUtils.cpp:

(JSC::finalizeStatsAtEndOfTesting):

  • runtime/TestRunnerUtils.h:
  • runtime/TypeProfilerLog.cpp:
  • runtime/TypeSet.cpp:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::ensureStackCapacityForCLoop):
(JSC::VM::isSafeToRecurseSoftCLoop):

  • runtime/VM.h:
  • runtime/VMEntryScope.h:
  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):
(JSC::VM::isSafeToRecurseSoft):

  • runtime/WeakMapConstructor.cpp:
  • runtime/WeakMapData.cpp:
  • runtime/WeakMapPrototype.cpp:
  • runtime/WeakSetConstructor.cpp:
  • runtime/WeakSetPrototype.cpp:
  • testRegExp.cpp:

(testOneRegExp):

  • tools/JSDollarVM.cpp:
  • tools/JSDollarVMPrototype.cpp:

(JSC::JSDollarVMPrototype::isInObjectSpace):

Source/WebCore:

No new tests because no new WebCore behavior.

Just rewiring #includes.

  • ForwardingHeaders/heap/HeapInlines.h: Added.
  • ForwardingHeaders/interpreter/Interpreter.h: Removed.
  • ForwardingHeaders/runtime/AuxiliaryBarrierInlines.h: Added.
  • Modules/indexeddb/IDBCursorWithValue.cpp:
  • Modules/indexeddb/client/TransactionOperation.cpp:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:
  • bindings/js/JSApplePayPaymentAuthorizedEventCustom.cpp:
  • bindings/js/JSApplePayPaymentMethodSelectedEventCustom.cpp:
  • bindings/js/JSApplePayShippingContactSelectedEventCustom.cpp:
  • bindings/js/JSApplePayShippingMethodSelectedEventCustom.cpp:
  • bindings/js/JSClientRectCustom.cpp:
  • bindings/js/JSDOMBinding.cpp:
  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDeviceMotionEventCustom.cpp:
  • bindings/js/JSDeviceOrientationEventCustom.cpp:
  • bindings/js/JSErrorEventCustom.cpp:
  • bindings/js/JSIDBCursorWithValueCustom.cpp:
  • bindings/js/JSIDBIndexCustom.cpp:
  • bindings/js/JSPopStateEventCustom.cpp:
  • bindings/js/JSWebGL2RenderingContextCustom.cpp:
  • bindings/js/JSWorkerGlobalScopeCustom.cpp:
  • bindings/js/WorkerScriptController.cpp:
  • contentextensions/ContentExtensionParser.cpp:
  • dom/ErrorEvent.cpp:
  • html/HTMLCanvasElement.cpp:
  • html/MediaDocument.cpp:
  • inspector/CommandLineAPIModule.cpp:
  • loader/EmptyClients.cpp:
  • page/CaptionUserPreferences.cpp:
  • page/Frame.cpp:
  • page/PageGroup.cpp:
  • page/UserContentController.cpp:
  • platform/mock/mediasource/MockBox.cpp:
  • testing/GCObservation.cpp:

Source/WebKit2:


Just rewiring some #includes.

  • UIProcess/ViewGestureController.cpp:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebProcessPool.cpp:
  • UIProcess/WebProcessProxy.cpp:
  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

Source/WTF:


I needed tryFastAlignedMalloc() so I added it.

  • wtf/FastMalloc.cpp:

(WTF::tryFastAlignedMalloc):

  • wtf/FastMalloc.h:
  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::forEachImpl):
(WTF::ParkingLot::forEach): Deleted.

  • wtf/ParkingLot.h:

(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::forEach):

  • wtf/ScopedLambda.h:

(WTF::scopedLambdaRef):

  • wtf/SentinelLinkedList.h:

(WTF::SentinelLinkedList::forEach):
(WTF::RawNode>::takeFrom):

  • wtf/SimpleStats.h:

(WTF::SimpleStats::operator bool):
(WTF::SimpleStats::operator!): Deleted.

Tools:

  • DumpRenderTree/TestRunner.cpp:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(DumpRenderTreeMain):

  • Scripts/run-jsc-stress-tests:
  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

5:03 PM Changeset in webkit [205461] by Michael Catanzaro
  • 2 edits in trunk/Tools

"Redundant argument in sprintf" warning spam from prepare-ChangeLog
https://bugs.webkit.org/show_bug.cgi?id=161606

Reviewed by Darin Adler.

Avoid extra arguments in call to sprintf.

  • Scripts/prepare-ChangeLog:

(statusDescription):

4:57 PM Changeset in webkit [205460] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

Unreviewed error message typo fix

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::removeUserContentWorlds):

1:54 PM Changeset in webkit [205459] by mitz@apple.com
  • 10 edits in trunk/Source/WebKit2

[Cocoa] Drop ".Development" suffix from XPC service bundle IDs, leave it only on the executable
https://bugs.webkit.org/show_bug.cgi?id=161575

Reviewed by Sam Weinig.

Append the ".Development" suffix to the executable names, but not to the bundle names and
bundle IDs.

  • Configurations/BaseTarget.xcconfig: No need for a preprocessor definition anymore.
  • Configurations/BaseXPCService.xcconfig: Set EXECUTABLE_SUFFIX.
  • Configurations/DatabaseService.xcconfig: No need to suffix the service name and bundle ID.
  • Configurations/NetworkService.xcconfig: Ditto.
  • Configurations/PluginService.32.xcconfig: Ditto.
  • Configurations/PluginService.64.xcconfig: Ditto.
  • Configurations/WebContentService.xcconfig: Ditto.
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::serviceName): Service names are no longer suffixed.

  • WebKit2.xcodeproj/project.pbxproj: Ditto.
10:25 AM Changeset in webkit [205458] by commit-queue@webkit.org
  • 49 edits in trunk/Source/WebCore

run-bindings-tests fails since r205422
https://bugs.webkit.org/show_bug.cgi?id=161595

Patch by Fujii Hironori <Fujii Hironori> on 2016-09-05
Reviewed by Darin Adler.

Rebaseline binding tests after r205422.

  • bindings/scripts/test/JS/JSInterfaceName.cpp:
  • bindings/scripts/test/JS/JSInterfaceName.h:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.h:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.h:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestIterable.h:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.h:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.h:
  • bindings/scripts/test/JS/JSattribute.cpp:
  • bindings/scripts/test/JS/JSattribute.h:
  • bindings/scripts/test/JS/JSreadonly.cpp:
  • bindings/scripts/test/JS/JSreadonly.h:
10:21 AM Changeset in webkit [205457] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[CMake] Duplicated IDL files in WebCore_IDL_FILES
https://bugs.webkit.org/show_bug.cgi?id=161592

Patch by Fujii Hironori <Fujii Hironori> on 2016-09-05
Reviewed by Darin Adler.

  • CMakeLists.txt: Removed duplicated IDL files.
  • DerivedSources.cpp: Added #if ENABLE(USER_MESSAGE_HANDLERS)
10:19 AM Changeset in webkit [205456] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Mac] Static Analyzer warnings about unused values in CDMSessionAVStreamSession.mm
https://bugs.webkit.org/show_bug.cgi?id=161598

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-05
Reviewed by Darin Adler.

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage):
Make this parameter a reference again, accidentally lost in r195410.
Now assignments to the parameter make sense.

9:58 AM Changeset in webkit [205455] by commit-queue@webkit.org
  • 14 edits
    1 add in trunk

Clean CSS stylesheets should be accessible from JavaScript
https://bugs.webkit.org/show_bug.cgi?id=158728

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-05
Reviewed by Darin Adler.

Source/WebCore:

Covered by updated tests.

Making use of the resource response type to evaluate whether to make the CSS stylesheets visible
for stylesheet link elements and for stylesheet processing instructions.
Ideally, the origin flag should be a boolean.

To keep behavior consistent in cors-check-unaware cases, the flag might remain unset.
In that case, the behavior remains the same (checking of the stylesheet URL).
The origin flag is set to true or false only in case of fetch mode being set to cors using the crossorigin attribute.

Updated CSSStyleSheet::create to take a Node reference. Updated callers accordingly.

  • contentextensions/ContentExtensionStyleSheet.cpp:

(WebCore::ContentExtensions::ContentExtensionStyleSheet::ContentExtensionStyleSheet): Updated to pass a Node reference and not pointer.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::create): Makes origin flag undefined if boolean parameter is not passed.
Otherwise origin flag is set according given boolean value.
(WebCore::CSSStyleSheet::createInline): Makes origin flag set to true.
(WebCore::CSSStyleSheet::CSSStyleSheet): Adding origin flag initialization.
(WebCore::CSSStyleSheet::canAccessRules): Returning according the origin flag if set.
Returning as before in case the flag is not set.

  • css/CSSStyleSheet.h: Adding origin clean flag.
  • dom/ExtensionStyleSheets.cpp:

(WebCore::ExtensionStyleSheets::addUserStyleSheet):
(WebCore::ExtensionStyleSheets::addAuthorStyleSheetForTesting):
(WebCore::ExtensionStyleSheets::maybeAddContentExtensionSheet):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::initializeStyleSheet): Helper routine used in setCSSStyleSheet.
Sets origin clean flag if the resource is clean.
(WebCore::HTMLLinkElement::setCSSStyleSheet): Making use of initializeStyleSheet.

  • html/HTMLLinkElement.h:

LayoutTests:

  • http/tests/security/cannot-read-cssrules-expected.txt:
  • http/tests/security/cannot-read-cssrules-redirect-expected.txt:
  • http/tests/security/cannot-read-cssrules-redirect.html:
  • http/tests/security/cannot-read-cssrules.html:
  • http/tests/security/cross-origin-css-9.html:
  • http/tests/security/resources/xorigincss1-allow-star.php: Added.
9:42 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
9:42 AM Changeset in webkit [205454] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Skip several failing API tests

Unfortunately we don't have any form of test expectations for API tests, so we'll just skip
them after bugs are filed.

  • Scripts/run-gtk-tests:

(TestRunner):

8:13 AM WebKitGTK/DependenciesPolicy edited by clopez@igalia.com
(diff)
8:07 AM WebKitGTK/Dependencies edited by clopez@igalia.com
(diff)
7:34 AM Changeset in webkit [205453] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fix W3C test importer unit tests after r205447
https://bugs.webkit.org/show_bug.cgi?id=161604

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-05

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.init): Skip cleaning test_resource_files files if resource-files.json cannot be read.

7:22 AM Changeset in webkit [205452] by Gustavo Noronha Silva
  • 2 edits in trunk/Source/WebKit2

[GTK] GL_PACK_ROW_LENGTH is not available in GLES2
https://bugs.webkit.org/show_bug.cgi?id=161484

Reviewed by Carlos Garcia Campos.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::paint): when under GLES2 we cannot rely on
GL_PACK_ROW_LENGTH; use glReadPixel directly when stride matches width, read line
by line manually otherwise. Colour conversion is also required to get the data out
correctly.

6:54 AM Changeset in webkit [205451] by Philippe Normand
  • 4 edits in trunk

WebRTC: Several media stream tests crashing
https://bugs.webkit.org/show_bug.cgi?id=161582

Reviewed by Alejandro G. Castro.

Tools:

  • gtk/jhbuild.modules: Bump to latest OpenWebRTC master fixing the crash on missing

glvideoflip GStreamer element.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip now-passing tests.
4:02 AM Changeset in webkit [205450] by commit-queue@webkit.org
  • 53 edits
    17 adds in trunk

CachedResourceLoader is not taking into account fetch options to use or not cached resources
https://bugs.webkit.org/show_bug.cgi?id=161389

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-05
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Updated as new console log messages appear now that cors checks are done at SubresourceLoader level.

  • web-platform-tests/XMLHttpRequest/security-consideration.sub-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-origin-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-origin.js:

(corsOrigin): Fixing a typo in the test making the tests always passing, since the fetch promise was not taken into account.

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:

Source/WebCore:

Tests: http/tests/fetch/fetching-same-resource-with-diffferent-options.html

http/tests/security/cross-origin-cached-resource-parallel.html
http/tests/security/cross-origin-cached-resource.html
http/tests/security/load-image-after-redirection-2.html
http/tests/security/shape-outside-and-cached-resources.html

Adding CORS checks for the response in case of CORS fetch mode, in SubresourceLoader.
Removing the CORS checks in Image and DocumentThreadableLoader.

The direction of this patch is to make CachedResource origin-specific/fetch mode specific.

This will remove the need for CachedResource clients to do CORS checks when receiving the notifyFinished call.
This will also make the computation of whether a resource is clean or not much easier since the CachedResource knowd its origin and its response tainting.

Removing the CORS checks at ImageLoader creates the risk of using some cached resources loaded from previously no-cors mode without doing the actual CORS check.
Note that the risk was already there in case of a resource loaded through redirections.
Reusing a cached resource for a load with different options also leads to bad computation of the resource tainting.

As a first step, improvements are done but only for CachedImage resources.

This patch limits the direct reuse of cached resources as follow:

  • If the request and existing resources have different origins.
  • If the fetch mode is different between request and existing resource.

In those cases, a new CachedResource is created with the correct options and origin.
The data and response of the CachedResource found in the cache are copied efficiently in the new CachedResource, if the matching CachedResource finished loading (CachedImage specific).

If the matching CachedResource is still loading, we trigger a reload (with caching=false to not disturb the being loaded resource).
This should be made more efficient at some point, especially if the matching CachedResource already has its response set.

This triggers a change of behavior: previously, the CORS checks were done by the ImageLoader when the resource was finished loading.
The CORS checks were controlled by the crossOrigin attribute, which may be set or unset between the load start and the load end.

Now the crossOrigin attribute is checked at load start. If it is set, the CORS checks will happen even if the attribute is unset before the end of the load.
This is more consistent as the actual request was built with CORS enabled.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::startPreflight): Setting correctly the preflight options as per fetch spec.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didReceiveResponse): Removing CORS check.
(WebCore::DocumentThreadableLoader::loadRequest): Adding CORS check in sync mode.

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse): Adding CORS checks to the response
(WebCore::SubresourceLoader::checkResponseCrossOriginAccessControl): Helper routine to do CORS checks

  • loader/SubresourceLoader.h:
  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::cloneData): Responsible to set image content from another CachedImage.

  • loader/cache/CachedImage.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::computeOrigin): Helper routine to set the origin and whether the resource is cross-origin or not.
(WebCore::CachedResource::load): Using computeOrigin.
(WebCore::CachedResource::loadFrom): Loading from a CachedResource from the same type and which finished loading.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::cloneData):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::updateCachedResourceWithCurrentRequest): Helper routine responsible to adapt the CachedResource
that can be reused to the origin and options of a new request.
(WebCore::CachedResourceLoader::requestResource): Calling updateCachedResourceWithCurrentRequest before actually returning the resource.
(WebCore::CachedResourceLoader::determineRevalidationPolicy): Space clean-up.

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::setCachingPolicy):

  • style/StylePendingResources.cpp:

(WebCore::Style::loadPendingImage): Allowing data URLs for ShapeOutside data.

LayoutTests:

Added specific expectations for fetch cors-origin* tests for mac-wk2 and ios-simulator-wk2 as these tests use
HTTPS, and the connection is refused.

  • http/tests/eventsource/eventsource-cors-basic-expected.txt:
  • http/tests/eventsource/eventsource-cors-with-credentials-expected.txt:
  • http/tests/fetch/fetching-same-resource-with-diffferent-options-expected.txt: Added.
  • http/tests/fetch/fetching-same-resource-with-diffferent-options.html: Added.
  • http/tests/loading/cross-origin-XHR-willLoadRequest-expected.txt:
  • http/tests/resources/download-json-with-delay.php:
  • http/tests/resources/redirect.php:
  • http/tests/security/cross-origin-cached-resource-expected.txt: Added.
  • http/tests/security/cross-origin-cached-resource-parallel-expected.txt: Added.
  • http/tests/security/cross-origin-cached-resource-parallel.html: Added.
  • http/tests/security/cross-origin-cached-resource.html: Added.
  • http/tests/security/img-with-failed-cors-check-fails-to-load-expected.txt:
  • http/tests/security/load-image-after-redirection-2-expected.txt: Added.
  • http/tests/security/load-image-after-redirection-2.html: Added.
  • http/tests/security/resources/abe-allow-star.php:
  • http/tests/security/resources/allow-if-origin.php: Added.
  • http/tests/security/resources/cross-origin-cached-resource-iframe.html: Added.
  • http/tests/security/resources/rgbalpha.png: Added.
  • http/tests/security/shape-outside-and-cached-resources-expected.html: Added.
  • http/tests/security/shape-outside-and-cached-resources.html: Added.
  • http/tests/security/video-poster-cross-origin-crash-expected.txt:
  • http/tests/security/video-poster-cross-origin-crash2-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-same-origin-expected.txt:
  • http/tests/xmlhttprequest/access-control-repeated-failed-preflight-crash-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-credential-prompt-expected.txt:
  • http/tests/xmlhttprequest/cross-site-denied-response-expected.txt:
  • http/tests/xmlhttprequest/onerror-event-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt:
  • http/tests/xmlhttprequest/post-blob-content-type-async-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-2-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-denied-events-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-progress-events-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin-worker-expected.txt: Added.
3:31 AM Changeset in webkit [205449] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.12.5

WebKitGTK+ 2.12.5

3:31 AM Changeset in webkit [205448] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.12.5 release.

.:

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

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.12.5.
3:30 AM Changeset in webkit [205447] by commit-queue@webkit.org
  • 4 edits in trunk

W3C test importer should generate the list of resource files
https://bugs.webkit.org/show_bug.cgi?id=161578

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-05
Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • resources/resource-files.json: Reformatting the file.

Tools:

Generating LayoutTests/imported/w3c/resources/resource-files.json when importing tests.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.init): Reading test resource files configuration file.
(TestImporter.find_importable_tests):
(TestImporter.import_tests): Update the test resource files based on test parsed files.
(TestImporter):
(TestImporter._already_identified_as_resource_file): Helper routine to know whether a file is already set as a resource file.
(TestImporter._is_in_resources_directory: Helper routine to know whether a file is in a resources directory.

2:53 AM Changeset in webkit [205446] by Carlos Garcia Campos
  • 2 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r204699 - [DFG] Should not fixup AnyIntUse in 32_64
https://bugs.webkit.org/show_bug.cgi?id=161029

Reviewed by Saam Barati.

JSTests:

  • typeProfiler/int52-dfg.js: Added.

(test):

Source/JavaScriptCore:

DFG fixup phase uses AnyIntUse even in 32bit DFG. This patch removes this incorrect filtering.
If the 32bit DFG see the TypeAnyInt, it should fallback to the NumberUse case.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

2:52 AM WebKitGTK/2.12.x edited by Carlos Garcia Campos
(diff)
2:35 AM Changeset in webkit [205445] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r205392 - Should never be reached failure in WebCore::floatValueForLength
https://bugs.webkit.org/show_bug.cgi?id=139397
<rdar://problem/27704376>

Reviewed by Simon Fraser.

Source/WebCore:

floatValueForLength can't resolve unspecified Length types. Filter them out and return 0 as if they were auto.

Test: svg/css/assert-on-non-resolvable-dimension.html

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::valueForLength):

LayoutTests:

  • svg/css/assert-on-non-resolvable-dimension-expected.txt: Added.
  • svg/css/assert-on-non-resolvable-dimension.html: Added.
2:34 AM Changeset in webkit [205444] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r205384 - ASSERT_NOT_REACHED() is touched in WebCore::valueForLength
https://bugs.webkit.org/show_bug.cgi?id=123337
<rdar://problem/27684121>

Reviewed by Simon Fraser.

Source/WebCore:

Do not try to use unspecified height value while resolving logical height for table row.

Test: fast/table/assert-on-non-resolvable-row-dimension.html

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::logicalHeightForRowSizing):

LayoutTests:

  • fast/table/assert-on-non-resolvable-row-dimension-expected.txt: Added.
  • fast/table/assert-on-non-resolvable-row-dimension.html: Added.
2:33 AM Changeset in webkit [205443] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r205374 - ASSERTION FAILED: !m_committedWidth in WebCore::LineWidth::fitBelowFloats
https://bugs.webkit.org/show_bug.cgi?id=149462
<rdar://problem/27710841>

Reviewed by David Hyatt.

Source/WebCore:

In certain cases (multiple spans on the same line with negativ marings), the LineWidth::m_committedWidth > 0
check is not sufficient to decide if some content has already been committed to the current line.
This patch adds a flag to indicate if we ever committed to the current line.

Test: fast/text/assert-when-text-with-negative-margin-sibling-does-not-fit.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

  • rendering/line/LineWidth.h:

(WebCore::LineWidth::hasCommitted):

LayoutTests:

  • fast/text/assert-when-text-with-negative-margin-sibling-does-not-fit-expected.txt: Added.
  • fast/text/assert-when-text-with-negative-margin-sibling-does-not-fit.html: Added.
2:27 AM Changeset in webkit [205442] by Carlos Garcia Campos
  • 5 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r205277 - ASSERTION FAILED: !flow->layer() && !flow->isInlineElementContinuation() in WebCore::RenderBlock::addContinuationWithOutline
https://bugs.webkit.org/show_bug.cgi?id=151022
<rdar://problem/27710993>

Reviewed by Simon Fraser.

Source/WebCore:

Certain CSS properties like opacity, mask etc (graphical group members) require the layer to be a non-normal flow,
self painting layer so that we can manage painting properly. However in addition to those CSS properties, some of the will-change
values (again, graphical group members) also require the layer to be non-normal flow, self painting.
This patch ensures that when deciding whether a layer should be a normal flow layer, we take the will-change values into account as well.

Tests: compositing/layer-creation/assert-on-inline-element-with-will-change.html

compositing/layer-creation/will-change-on-normal-flow-content.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

  • rendering/style/WillChangeData.cpp:

(WebCore::propertyCreatesGraphicalGroup):
(WebCore::WillChangeData::addFeature):

  • rendering/style/WillChangeData.h:

(WebCore::WillChangeData::canCreateGraphicalGroup):
(WebCore::WillChangeData::canTriggerCompositingOnInline): Deleted.

LayoutTests:

  • compositing/layer-creation/assert-on-inline-element-with-will-change-expected.txt: Added.
  • compositing/layer-creation/assert-on-inline-element-with-will-change.html: Added.
  • compositing/layer-creation/will-change-on-normal-flow-content-expected.txt: Added.
  • compositing/layer-creation/will-change-on-normal-flow-content.html: Added.
2:19 AM Changeset in webkit [205441] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

More refactoring of RenderMathMLScripts
https://bugs.webkit.org/show_bug.cgi?id=161371

Patch by Frederic Wang <fwang@igalia.com> on 2016-09-05
Reviewed by Darin Adler.

This is a follow-up of bug 161084. The function getScriptMetricsAndLayoutIfNeeded was quite
complicated and it was not obvious that we have to call it twice with the same reference
to a struture holding vertical metrics. We extract the part retrieving layout parameters
into verticalParameters and move its layoutIfNeeded calls into layoutBlock. Then it can
be reduced to a simple function that retrieve the vertical metrics in one call.
We also improve getBaseAndScripts to make clear that it is performing validation. It returns
a ReferenceChildren structure encapsulating pointers to important children so that we no
longer pass these pointers as function parameters. We continue to need them to browse the
list of prescripts & postscripts but we refactor a bit the loop to avoid explicit mention
of RenderBox*.

No new tests, already covered by existing tests.

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::validateAndGetReferenceChildren): We now store the pointers to
the base, firstPostScript and firstPreScript children in the ReferenceChildren structure. We
also add a pointer to the prescriptDelimiter for convenience.
(WebCore::RenderMathMLScripts::italicCorrection): Use the ReferenceChildren structure so that
we are sure the base has been validated before calling this function.
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths): Retrieve the reference
children with validateAndGetReferenceChildren instead of calling getBaseAndScripts and use
ReferenceChildren to handle these children and to call italicCorrection. The loops for
SubSup, UnderOver, Multiscripts are also rewritten a bit to avoid declaring a null RenderBox*
outside of them and hence allow to use auto.
(WebCore::RenderMathMLScripts::verticalParameters): This part to extract the layout
parameters is extracted from getScriptMetricsAndLayoutIfNeeded. The parameters are returned
as a VerticalParameters struct.
(WebCore::RenderMathMLScripts::verticalMetrics): This is the remaining part of
getScriptMetricsAndLayoutIfNeeded It used to call layoutIfNeeded on children and to
calculate maximum vertical metrics. For Multiscripts it was called twice: We did a first
call to handle the prescripts and then pass the result again in the second call to handle
the postscripts. We modify a bit the loop so that all the scripts are handled in one call and
hence we can directly return a VerticalMetrics. Again, the reference children are now handled
using the ReferenceChildren structure passed as a parameter.
(WebCore::RenderMathMLScripts::layoutBlock): We retrieve the reference children with
validateAndGetReferenceChildren instead of calling getBaseAndScripts and use
ReferenceChildren to handle these children and to call italicCorrection. We layout all the
children if needed in one loop at the beginning instead of doing that when their vertical
metrics are needed. We can now also retrieve vertical metrics with a single call.
(WebCore::RenderMathMLScripts::getBaseAndScripts): Renamed validateAndGetReferenceChildren.
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded): Deleted. Split into
verticalParameters and verticalMetrics.

  • rendering/mathml/RenderMathMLScripts.h: New structure to handle the pointers to reference

children. Update the signature of getBaseAndScripts to use this struture and give a clearer
name. Update the signature of italicCorrection to use this structure too. Add a new structure
VerticalParameters and declare the helper function to retrieve them. Rename ScriptMetrics
to VerticalMetrics and update the signature of the function needed to retrieve it.

2:18 AM Changeset in webkit [205440] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r205056 - ASSERT_NOT_REACHED() is touched in WebCore::minimumValueForLength
https://bugs.webkit.org/show_bug.cgi?id=125781
<rdar://problem/27684457>

Reviewed by Simon Fraser.

Source/WebCore:

RenderTableSection::calcRowLogicalHeight misused minimumValueForLength to fallback to 0 for non-fixed values.
While this patch fixes the assertion, the table section code needs works to support calc values. See webkit.org/b/161273.

Test: fast/table/assert-on-min-max-content-values.html

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):

LayoutTests:

  • fast/table/assert-on-min-max-content-values-expected.txt: Added.
  • fast/table/assert-on-min-max-content-values.html: Added.
2:17 AM Changeset in webkit [205439] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r204951 - ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
https://bugs.webkit.org/show_bug.cgi?id=155700
<rdar://problem/27720727>

Reviewed by David Hyatt.

Source/WebCore:

RenderBox::m_minPreferredLogicalWidth/m_maxPreferredLogicalWidth don't need special initial value since
preferredLogicalWidthsDirty flag guards them. -1 as initial value can cause problems for renderers that don't
override RenderBox::computePreferredLogicalWidths().

Test: fast/ruby/assert-when-content-size-is-negative.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::RenderBox):
(WebCore::RenderBox::dirtyLineBoxes):
(WebCore::RenderBox::deleteLineBoxWrapper):

  • rendering/RenderBox.h:

LayoutTests:

  • fast/ruby/assert-when-content-size-is-negative-expected.txt: Added.
  • fast/ruby/assert-when-content-size-is-negative.html: Added.
2:09 AM Changeset in webkit [205438] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r204908 - ASSERTION FAILED: childrenInline() in WebCore::RenderBlockFlow::hasLines
https://bugs.webkit.org/show_bug.cgi?id=139396
<rdar://problem/27704339>

Reviewed by David Hyatt.

Source/WebCore:

RenderBlockFlow::hasLines() should be able to handle the block-children case.

Test: fast/ruby/assert-with-block-rt-child-and-emphasis.html

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::hasLines): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::hasLines):

  • rendering/RenderBlockFlow.h:

LayoutTests:

  • fast/ruby/assert-with-block-rt-child-and-emphasis-expected.txt: Added.
  • fast/ruby/assert-with-block-rt-child-and-emphasis.html: Added.
2:03 AM Changeset in webkit [205437] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12
Merge r204880 - ASSERTION FAILED: !view().layoutStateEnabled()
style().styleType() == FIRST_LETTER in WebCore::RenderInline::clippedOverflowRectForRepaint

https://bugs.webkit.org/show_bug.cgi?id=155363
<rdar://problem/27720434>

Reviewed by David Hyatt.

Source/WebCore:

Loosen ASSERT to include calls when the inline has a self painting layer. It's valid to end up here during layout when
the layer's composite state changes.

Test: fast/layers/assert-on-self-painting-inline-with-scrolling.html

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRectForRepaint):

LayoutTests:

  • fast/layers/assert-on-self-painting-inline-with-scrolling-expected.txt: Added.
  • fast/layers/assert-on-self-painting-inline-with-scrolling.html: Added.
2:02 AM Changeset in webkit [205436] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r204860 - ASSERTION FAILED: hasOverflowingCell == this->hasOverflowingCell() in WebCore::RenderTableSection::computeOverflowFromCells
https://bugs.webkit.org/show_bug.cgi?id=155702
<rdar://problem/27720731>

Reviewed by David Hyatt.

Source/WebCore:

The simplified layout path for table/section should also clear the slow path flag for visual overflow (since it recomputes
the overflow for the descendant cells).

Test: fast/table/assert-when-visual-overflow-is-cleared.html

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/table/assert-when-visual-overflow-is-cleared-expected.txt: Added.
  • fast/table/assert-when-visual-overflow-is-cleared.html: Added.
1:56 AM Changeset in webkit [205435] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12

Merge r204936 - Assertion hit: ASSERT(!m_parserScheduler) in ~HTMLDocumentParser()
https://bugs.webkit.org/show_bug.cgi?id=161083
<rdar://problem/27986937>

Reviewed by Darin Adler.

Source/WebCore:

Call cancelParsing() right before re-creating the new parser in
Document::implicitOpen(). We would previously call removeChildren()
in between which is was an issue because it can cause JS to be
executed and therefore the parser to be re-created after we have
cancelled parsing.

No new tests, unskipped html/browsers/browsing-the-web/unloading-documents/004.html
which was consistently crashing.

  • dom/Document.cpp:

(WebCore::Document::implicitOpen):

LayoutTests:

Unskip html/browsers/browsing-the-web/unloading-documents/004.html as
it is no longer crashing.

1:55 AM Changeset in webkit [205434] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r204980 - Infinite recursion crash in WebCore::RenderBlockFlow::layoutBlock
https://bugs.webkit.org/show_bug.cgi?id=139474
<rdar://problem/27705190>

Reviewed by David Hyatt.

Source/WebCore:

We should just give up trying to avoid widow when the page is too small to break line.

Test: fast/multicol/assert-on-small-page-height-with-widow.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::clearShouldBreakAtLineToAvoidWidowIfNeeded):
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):

  • rendering/RenderBlockFlow.h:

LayoutTests:

  • fast/multicol/assert-on-small-page-height-with-widow-expected.txt: Added.
  • fast/multicol/assert-on-small-page-height-with-widow.html: Added.
1:49 AM Changeset in webkit [205433] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r205182 - REGRESSION(r194846): [GTK] UI process crash visiting sites protected with HTTP auth when using GTK+ < 3.14
https://bugs.webkit.org/show_bug.cgi?id=161385

Reviewed by Antonio Gomes.

Since r194846, we are chaining up webkitWebViewBaseMotionNotifyEvent, but before GTK+ 3.14
GtkWidget::motion_notify_event was nullptr, so it can't be used unconditionally.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseMotionNotifyEvent):

1:31 AM Changeset in webkit [205432] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r202940 - Followup to r202939.
https://bugs.webkit.org/show_bug.cgi?id=159526

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFailLoading):
We need the correct destination id when sending a message.

12:57 AM Changeset in webkit [205431] by Carlos Garcia Campos
  • 11 edits in trunk/Source/WebKit2

[GTK] SetNativeSurfaceHandleForCompositing should not be compiled in for wayland build
https://bugs.webkit.org/show_bug.cgi?id=161483

Reviewed by Žan Doberšek.

SetNativeSurfaceHandleForCompositing and DestroyNativeSurfaceHandleForCompositing messages should only be used
for GTK+ port when compiled with OpenGL and X11 enabled and redirected XComposite window disabled. So, we should
use USE(TEXTURE_MAPPER) && PLATFORM(GTK) && PLATFORM(X11) && !USE(REDIRECTED_XCOMPOSITE_WINDOW) consistently.
This fixes the build when building the GTK+ port with Wayland enabled and X11 disabled.

  • UIProcess/AcceleratedDrawingAreaProxy.cpp:

(WebKit::AcceleratedDrawingAreaProxy::didUpdateBackingStoreState):

  • UIProcess/AcceleratedDrawingAreaProxy.h:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode):

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
12:15 AM Changeset in webkit [205430] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

MediaPlayerPrivateGStreamerBase: improve build guards in nativeImageForCurrentTime()
https://bugs.webkit.org/show_bug.cgi?id=161594

Reviewed by Philippe Normand.

Guard the uses of cairo-gl API in nativeImageForCurrentTime() with the
USE(CAIRO) && ENABLE(ACCELERATED_2D_CANVAS) pair of build guards. This
API is only made available when the ACCELERATED_2D_CANVAS option is
enabled. Placing the guards this way thus avoids compilation errors
when compiling USE_GSTREAMER_GL code without the accelerated 2D canvas
support enabled.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):

12:14 AM Changeset in webkit [205429] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GObject bindings] override handleEvent() method in GObjectEventListener
https://bugs.webkit.org/show_bug.cgi?id=161593

Reviewed by Carlos Garcia Campos.

  • WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.h: Override

the handleMethod() which is inherited from the WebCore EventListener class.
Suppresses the -Winconsistent-missing-override warning that Clang propagates.

Sep 4, 2016:

11:49 PM Changeset in webkit [205428] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

http/tests/fetch/clone-response-body.html uses an incorrect URL
https://bugs.webkit.org/show_bug.cgi?id=161382

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-04
Reviewed by Darin Adler.

  • http/tests/fetch/clone-response-body.html: Fixing url, increasing delay to ensure non-flakiness.

Adding assertions to ensure load is successful.

11:41 PM Changeset in webkit [205427] by Joseph Pecoraro
  • 4 edits in trunk/Source

Remove unnecessary RetainPtr.

Review comments on earlier change.

Source/WebKit/mac:

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):

Source/WebKit2:

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):

10:02 PM Changeset in webkit [205426] by Joseph Pecoraro
  • 32 edits in trunk/Source/WebInspectorUI

Web Inspector: Enable and enforce some recommended and stylistic ESLint rules
https://bugs.webkit.org/show_bug.cgi?id=161567

Reviewed by Brian Burg.

  • .eslintrc:
  • UserInterface/Base/EventListener.js:
  • UserInterface/Base/EventListenerSet.js:
  • UserInterface/Base/MIMETypeUtilities.js:
  • UserInterface/Base/Main.js:
  • UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
  • UserInterface/Controllers/DOMTreeManager.js:
  • UserInterface/Controllers/TimelineManager.js:
  • UserInterface/Models/CSSKeywordCompletions.js:
  • UserInterface/Models/DOMNode.js:
  • UserInterface/Models/DOMNodeStyles.js:
  • UserInterface/Models/Frame.js:
  • UserInterface/Models/Geometry.js:
  • UserInterface/Models/ProfileNode.js:
  • UserInterface/Models/RenderingFrameTimelineRecord.js:
  • UserInterface/Models/SourceCodeLocation.js:
  • UserInterface/Protocol/RemoteObject.js:
  • UserInterface/Views/ApplicationCacheFrameContentView.js:
  • UserInterface/Views/ContextMenu.js:
  • UserInterface/Views/DOMTreeContentView.js:
  • UserInterface/Views/DOMTreeElement.js:
  • UserInterface/Views/DataGrid.js:
  • UserInterface/Views/GeneralTreeElement.js:
  • UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:
  • UserInterface/Views/LogContentView.js:
  • UserInterface/Views/OpenResourceDialog.js:
  • UserInterface/Views/StyleDetailsPanel.js:
  • UserInterface/Views/VisualStyleDetailsPanel.js:
  • UserInterface/Views/VisualStyleKeywordPicker.js:
  • UserInterface/Views/VisualStylePropertyEditor.js:
  • UserInterface/Workers/Formatter/FormatterWorker.js:
10:02 PM Changeset in webkit [205425] by Joseph Pecoraro
  • 65 edits in trunk/Source/WebInspectorUI

Web Inspector: Run ESLint over UserInterface/Views
https://bugs.webkit.org/show_bug.cgi?id=161564

Reviewed by Brian Burg.

  • .eslintrc:
  • UserInterface/Views/BoxModelDetailsSectionRow.js:
  • UserInterface/Views/ButtonNavigationItem.js:
  • UserInterface/Views/CSSStyleDeclarationSection.js:
  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:
  • UserInterface/Views/CodeMirrorAdditions.js:
  • UserInterface/Views/CodeMirrorEditor.js:
  • UserInterface/Views/CodeMirrorFormatters.js:
  • UserInterface/Views/ColorWheel.js:
  • UserInterface/Views/ComputedStyleDetailsPanel.js:
  • UserInterface/Views/ConsoleMessageView.js:
  • UserInterface/Views/ContentViewContainer.js:
  • UserInterface/Views/CookieStorageContentView.js:
  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
  • UserInterface/Views/DOMStorageContentView.js:
  • UserInterface/Views/DOMTreeElement.js:
  • UserInterface/Views/DOMTreeOutline.js:
  • UserInterface/Views/DashboardContainerView.js:
  • UserInterface/Views/DataGrid.js:
  • UserInterface/Views/DataGridNode.js:
  • UserInterface/Views/DebuggerSidebarPanel.js:
  • UserInterface/Views/DefaultDashboardView.js:
  • UserInterface/Views/FontResourceContentView.js:
  • UserInterface/Views/FormattedValue.js:
  • UserInterface/Views/GradientEditor.js:
  • UserInterface/Views/GradientSlider.js:
  • UserInterface/Views/HeapSnapshotContentView.js:
  • UserInterface/Views/HeapSnapshotDataGridTree.js:
  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
  • UserInterface/Views/HoverMenu.js:
  • UserInterface/Views/LogContentView.js:
  • UserInterface/Views/MemoryTimelineOverviewGraph.js:
  • UserInterface/Views/MemoryTimelineView.js:
  • UserInterface/Views/NavigationSidebarPanel.js:
  • UserInterface/Views/NetworkTimelineOverviewGraph.js:
  • UserInterface/Views/NewTabContentView.js:
  • UserInterface/Views/ObjectPreviewView.js:
  • UserInterface/Views/ObjectTreeBaseTreeElement.js:
  • UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
  • UserInterface/Views/OverviewTimelineView.js:
  • UserInterface/Views/Popover.js:
  • UserInterface/Views/ProbeSetDetailsSection.js:
  • UserInterface/Views/ProfileDataGridNode.js:
  • UserInterface/Views/ProfileDataGridTree.js:
  • UserInterface/Views/ProfileView.js:
  • UserInterface/Views/ResourceSidebarPanel.js:
  • UserInterface/Views/RulesStyleDetailsPanel.js:
  • UserInterface/Views/ScopeRadioButtonNavigationItem.js:
  • UserInterface/Views/ScriptClusterTimelineView.js:
  • UserInterface/Views/ScriptDetailsTimelineView.js:
  • UserInterface/Views/ScriptProfileTimelineView.js:
  • UserInterface/Views/StackedLineChart.js:
  • UserInterface/Views/StorageSidebarPanel.js:
  • UserInterface/Views/TabBrowser.js:
  • UserInterface/Views/TextEditor.js:
  • UserInterface/Views/TimelineDataGridNode.js:
  • UserInterface/Views/TimelineOverview.js:
  • UserInterface/Views/TimelineRecordFrame.js:
  • UserInterface/Views/TimelineRecordingContentView.js:
  • UserInterface/Views/TimelineTabContentView.js:
  • UserInterface/Views/TreeOutline.js:
  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
  • UserInterface/Views/VisualStylePropertyEditor.js:
  • UserInterface/Views/VisualStyleSelectorSection.js:
10:01 PM Changeset in webkit [205424] by Joseph Pecoraro
  • 50 edits in trunk/Source/WebInspectorUI

Web Inspector: Update ESLint rules and run it over most of UserInterface
https://bugs.webkit.org/show_bug.cgi?id=161561

Reviewed by Brian Burg.

  • .eslintrc:

Updated ESLint rules.

  • UserInterface/Base/InspectorFrontendHostStub.js:
  • UserInterface/Base/Main.js:
  • UserInterface/Base/Object.js:
  • UserInterface/Base/Platform.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/CSSStyleManager.js:
  • UserInterface/Controllers/CodeMirrorCompletionController.js:
  • UserInterface/Controllers/CodeMirrorTextKillController.js:
  • UserInterface/Controllers/DebuggerManager.js:
  • UserInterface/Controllers/DragToAdjustController.js:
  • UserInterface/Controllers/ReplayManager.js:
  • UserInterface/Controllers/SourceMapManager.js:
  • UserInterface/Controllers/TimelineManager.js:
  • UserInterface/Controllers/TypeTokenAnnotator.js:
  • UserInterface/Controllers/VisualStyleCompletionsController.js:
  • UserInterface/Debug/Bootstrap.js:
  • UserInterface/Debug/UncaughtExceptionReporter.js:
  • UserInterface/Models/CSSRule.js:
  • UserInterface/Models/CallingContextTree.js:
  • UserInterface/Models/CallingContextTreeNode.js:
  • UserInterface/Models/ConsoleCommandResultMessage.js:
  • UserInterface/Models/CookieStorageObject.js:
  • UserInterface/Models/Frame.js:
  • UserInterface/Models/Geometry.js:
  • UserInterface/Models/IssueMessage.js:
  • UserInterface/Models/LayoutTimelineRecord.js:
  • UserInterface/Models/MemoryTimeline.js:
  • UserInterface/Models/NativeFunctionParameters.js:
  • UserInterface/Models/ProfileNode.js:
  • UserInterface/Models/RenderingFrameTimelineRecord.js:
  • UserInterface/Models/Resource.js:
  • UserInterface/Models/ScriptSyntaxTree.js:
  • UserInterface/Models/ScriptTimelineRecord.js:
  • UserInterface/Models/StackTrace.js:
  • UserInterface/Models/TypeSet.js:
  • UserInterface/Models/WrappedPromise.js:
  • UserInterface/Protocol/InspectorBackend.js:
  • UserInterface/Protocol/InspectorFrontendAPI.js:
  • UserInterface/Protocol/RemoteObject.js:
  • UserInterface/Protocol/ScriptProfilerObserver.js:
  • UserInterface/Test/FrontendTestHarness.js:
  • UserInterface/Test/InspectorProtocol.js:
  • UserInterface/Test/ProtocolTestHarness.js:
  • UserInterface/Test/Test.js:
  • UserInterface/Test/TestHarness.js:
  • UserInterface/Test/TestSuite.js:
  • UserInterface/Workers/Formatter/EsprimaFormatter.js:
  • UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:
8:14 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:13 PM Changeset in webkit [205423] by Michael Catanzaro
  • 5 edits
    1 add in trunk/LayoutTests

Miscellaneous unreviewed GTK test gardening

  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/math-multiscript-attributes-expected.txt:
  • platform/gtk/css1/box_properties/float_on_text_elements-expected.txt:
  • platform/gtk/editing/pasteboard/image-in-iframe-expected.txt: Added.
  • platform/gtk/editing/pasteboard/onpaste-text-html-expected.txt:
8:11 PM Changeset in webkit [205422] by weinig@apple.com
  • 29 edits in trunk/Source/WebCore

Remove the CREATE_DOM_WRAPPER macro
https://bugs.webkit.org/show_bug.cgi?id=161580

Reviewed by Dan Bernstein.

The CREATE_DOM_WRAPPER has irritated me for too long! Replace it
with direct calls to createWrapper<ImplementationType>, which has
been upgraded to not require specifying both the implementation type
and the wrapper type by way of the new JSDOMWrapperConverterTraits
struct which provides mapping from ImplementationType -> JSWrapper.
createWrapper<ImplementationType> has also been upgraded to have a
specialization for when the object being passed in needs to be casted.

  • bindings/js/JSAnimationTimelineCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::constructJSBlob):

  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSCSSValueCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSDataCueCustom.cpp:

(WebCore::constructJSDataCue):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::createNewDocumentWrapper):

  • bindings/js/JSDocumentFragmentCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSElementCustom.cpp:

(WebCore::createNewElementWrapper):

  • bindings/js/JSEventCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSFileCustom.cpp:

(WebCore::constructJSFile):

  • bindings/js/JSHTMLCollectionCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSHTMLDocumentCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSIDBCursorCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSImageDataCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSNodeCustom.cpp:

(WebCore::createWrapperInline):

  • bindings/js/JSNodeListCustom.cpp:

(WebCore::createWrapper):

  • bindings/js/JSPerformanceEntryCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSSVGPathSegCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSStyleSheetCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSTextCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSTextTrackCueCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSWebGLRenderingContextBaseCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSXMLDocumentCustom.cpp:

(WebCore::toJSNewlyCreated):

  • dom/make_names.pl:

(printWrapperFunctions):
(printWrapperFactoryCppFile):
Replace CREATE_DOM_WRAPPER with direct calls to createWrapper.

  • bindings/js/JSWorkerGlobalScopeBase.h:

Add #include of JSDOMWrapper.h to allow generated subclasses to use
JSDOMWrapperConverterTraits.

  • bindings/js/JSDOMBinding.h:

(WebCore::castDOMObjectForWrapperCreation): Deleted.
Remove CREATE_DOM_WRAPPER and castDOMObjectForWrapperCreation and
specialize createWrapper.

  • bindings/js/JSDOMWrapper.h:

Forward declare JSDOMWrapperConverterTraits.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
Add specialization of JSDOMWrapperConverterTraits for each header.

(GenerateImplementation):
(GenerateConstructorDefinition):
Replace CREATE_DOM_WRAPPER with direct calls to createWrapper.

11:50 AM Changeset in webkit [205421] by Antti Koivisto
  • 13 edits in trunk/Source/WebCore

Remove Style::PendingResources
https://bugs.webkit.org/show_bug.cgi?id=161574

Reviewed by Andreas Kling.

RenderStyle contains all the information needed to initialize resource loads. There is no need for this side structure.

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::loadSubimages):

Load external SVG resources along with any image resources.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::styleImage):
(WebCore::CSSToStyleMap::mapFillImage):
(WebCore::CSSToStyleMap::mapNinePieceImage):

  • css/CSSToStyleMap.h:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertStyleImage):
(WebCore::StyleBuilderConverter::convertShapeValue):

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueCursor):
(WebCore::StyleBuilderCustom::applyValueContent):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingResources):
(WebCore::StyleResolver::State::ensurePendingResources): Deleted.
(WebCore::StyleResolver::styleCachedImageFromValue): Deleted.
(WebCore::StyleResolver::styleGeneratedImageFromValue): Deleted.

  • css/StyleResolver.h:

(WebCore::StyleResolver::State::takePendingResources): Deleted.

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::ReferenceFilterOperation::loadExternalDocumentIfNeeded):
(WebCore::ReferenceFilterOperation::getOrCreateCachedSVGDocumentReference): Deleted.

  • platform/graphics/filters/FilterOperation.h:

(WebCore::ReferenceFilterOperation::cachedSVGDocumentReference):

  • rendering/style/StyleCachedImage.cpp:

(WebCore::StyleCachedImage::StyleCachedImage):

  • style/StylePendingResources.cpp:

(WebCore::Style::loadPendingResources):

Trigger resource loads by checking pending resources in RenderStyle unconditionally. Keeping track of them
separately wasn't necessary or a meaningful optimization.

(WebCore::Style::loadPendingImages): Deleted.
(WebCore::Style::loadPendingSVGFilters): Deleted.

  • style/StylePendingResources.h:
11:11 AM Changeset in webkit [205420] by mitz@apple.com
  • 5 edits in trunk/Source/WebKit2

[Cocoa] Wrapping XPC service execution in os_activity is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=161577

Reviewed by Sam Weinig.

Removed code that created an os_activity around the execution of the XPC service
code, because this workaround is no longer needed.

  • DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:

(DatabaseServiceInitializer):

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:

(NetworkServiceInitializer):

  • PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:

(PluginServiceInitializer):

  • WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:

(WebContentServiceInitializer):

6:42 AM Changeset in webkit [205419] by Antti Koivisto
  • 19 edits in trunk/Source/WebCore

Reverse ownership relation of StyleCachedImage and CSSImageValue
https://bugs.webkit.org/show_bug.cgi?id=161447

Reviewed by Andreas Kling.

Currently StyleCachedImage (which represents an image in RenderStyle) has a weak ref to the
underlying CSSImageValue/CSSImageSetValue which actually owns it. This is awkwards especially since
StyleGeneratedImage, the other StyleImage subclass has reversed relationship where it refs
the underlying CSSImageGeneratorValue.

This patch makes StyleCachedImage similar to StyleGeneratedImage. StyleCachedImage now refs the
underlying CSSImageValue/CSSImageSetValue. CSSImageValues no longer need to know about StyleCachedImage.
Instead they reference CachedImages (memory cache objects) directly. StyleCachedImage instances are now
conceptually unique to RenderStyle instances. Actual resources are shared as before by sharing CachedImages.

  • css/CSSCursorImageValue.cpp:

(WebCore::CSSCursorImageValue::loadImage):
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::styleImage): Deleted.

  • css/CSSCursorImageValue.h:
  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue):

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::~CSSImageSetValue):
(WebCore::CSSImageSetValue::loadBestFitImage):
(WebCore::CSSImageSetValue::traverseSubresources):
(WebCore::CSSImageSetValue::styleImage): Deleted.

  • css/CSSImageSetValue.h:
  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::CSSImageValue):
(WebCore::CSSImageValue::~CSSImageValue):
(WebCore::CSSImageValue::isPending):
(WebCore::CSSImageValue::loadImage):
(WebCore::CSSImageValue::traverseSubresources):
(WebCore::CSSImageValue::knownToBeOpaque):
(WebCore::CSSImageValue::styleImage): Deleted.

  • css/CSSImageValue.h:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueContent):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::styleCachedImageFromValue):
(WebCore::StyleResolver::styleGeneratedImageFromValue):
(WebCore::StyleResolver::cachedOrPendingFromValue): Deleted.
(WebCore::StyleResolver::generatedOrPendingFromValue): Deleted.
(WebCore::StyleResolver::setOrPendingFromValue): Deleted.
(WebCore::StyleResolver::cursorOrPendingFromValue): Deleted.

  • css/StyleResolver.h:
  • editing/TextIterator.cpp:

(WebCore::fullyClipsContents):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::retrieveResourcesForProperties):

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::imagesIdentical):

Compare data equality instead of pointer equality for StyleImages (since StyleImages are no longer shared).

(WebCore::layerImagesIdentical): Deleted.

  • rendering/style/StyleCachedImage.cpp:

(WebCore::StyleCachedImage::StyleCachedImage):
(WebCore::StyleCachedImage::~StyleCachedImage):
(WebCore::StyleCachedImage::cachedImage):
(WebCore::StyleCachedImage::cssValue):
(WebCore::StyleCachedImage::canRender):
(WebCore::StyleCachedImage::isPending):
(WebCore::StyleCachedImage::isLoaded):
(WebCore::StyleCachedImage::errorOccurred):
(WebCore::StyleCachedImage::imageSize):
(WebCore::StyleCachedImage::imageHasRelativeWidth):
(WebCore::StyleCachedImage::imageHasRelativeHeight):
(WebCore::StyleCachedImage::computeIntrinsicDimensions):
(WebCore::StyleCachedImage::usesImageContainerSize):
(WebCore::StyleCachedImage::setContainerSizeForRenderer):
(WebCore::StyleCachedImage::addClient):
(WebCore::StyleCachedImage::removeClient):
(WebCore::StyleCachedImage::image):
(WebCore::StyleCachedImage::knownToBeOpaque):
(WebCore::StyleCachedImage::setCachedImage): Deleted.

  • rendering/style/StyleCachedImage.h:
12:10 AM Changeset in webkit [205418] by commit-queue@webkit.org
  • 16 edits
    1 move
    3 adds
    5 deletes in trunk

Unreviewed, rolling out r205415.
https://bugs.webkit.org/show_bug.cgi?id=161573

Many bots see inspector test failures, rolling out now and
investigating later. (Requested by brrian on #webkit).

Reverted changeset:

"Web Inspector: unify Main.html and Test.html sources and
generate different copies with the preprocessor"
https://bugs.webkit.org/show_bug.cgi?id=161212
http://trac.webkit.org/changeset/205415

Sep 3, 2016:

10:45 PM Changeset in webkit [205417] by Wenson Hsieh
  • 16 edits
    1 add in trunk

Media controls behave strangely when videos mute from within a playing handler
https://bugs.webkit.org/show_bug.cgi?id=161559
<rdar://problem/28018438>

Reviewed by Darin Adler.

Source/WebCore:

Defer showing media controls until after the media element has fired its onplaying handler. This handles cases
where videos that autoplay may initially meet the criteria for main content, but once the video begins to play,
the page may change the media in some way (e.g. muting) that makes the video no longer main content. This causes
media controls to flicker in and out.

These changes are covered by existing unit tests, which have been refactored to check media controller state
after all autoplaying videos have begun playing. Also adds an additional unit test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::hasEverNotifiedAboutPlaying):

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canShowControlsManager):

Tools:

Accounts for changes when determining whether or not to show media controls for autoplaying videos that have not
begun playing yet. Rather than check for a controlled media element upon page load, we force tests to wait until
all autoplaying videos have actually begun playing. This extends to tests that involve interaction, such as
clicking or scrolling.

  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(-[VideoControlsManagerTestWebView callJavascriptFunction:]):
(-[VideoControlsManagerTestWebView expectControlsManager:afterReceivingMessage:]):
(-[VideoControlsManagerTestWebView performAfterReceivingMessage:action:]):
(-[VideoControlsManagerTestWebView waitForPageToLoadWithAutoplayingVideos:]):
(TestWebKitAPI::TEST):
(-[VideoControlsManagerTestWebView loadTestPageNamed:andExpectControlsManager:afterReceivingMessage:]): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/autoplaying-video-with-audio.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-hides-controls-after-seek-to-end.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-playing-scroll-away.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-autoplaying-click-to-pause.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-autoplaying-scroll-to-video.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-paused-video-hides-controls.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-playing-muted-video-hides-controls.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-playing-video-keeps-controls.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-with-audio-autoplay.html:
10:09 PM Changeset in webkit [205416] by rniwa@webkit.org
  • 20 edits in trunk

Update the semantics of defined-ness of custom elements per spec changes
https://bugs.webkit.org/show_bug.cgi?id=161570

Reviewed by Darin Adler.

Source/WebCore:

This patch adds the notion of a custom element that failed to construct or upgrade so that :defined
doesn't apply to such an element. We also set the defined flag inside the HTMLElement constructor in
the case of synchronous construction instead of waiting for the custom element constructor to finish.
https://dom.spec.whatwg.org/#concept-create-element

Conceptually, there are four distinct states for an element:

  1. The element is a built-in element
  2. The element is a custom element yet to be defined (an upgrade candidate).
  3. The element is a well-defined custom element (constructed or upgraded).
  4. The element has failed to construct or upgrade as a custom element (because the custom element

constructor threw an exception or returned an unexpected object).

In the latest DOM/HTML specifications, these states are called as 1. "uncustomized", 2. "undefined",

  1. "custom", and 4. "failed": https://dom.spec.whatwg.org/#concept-element-defined

This patch refactors Node flags to introduce these distinct states as the following:

  1. Neither IsCustomElement nor IsEditingTextOrUnresolvedCustomElementFlag is set.
  2. IsCustomElement and IsEditingTextOrUnresolvedCustomElementFlag are set.

isCustomElementUpgradeCandidate() and isUndefinedCustomElement() return true.

  1. IsCustomElement is set and IsEditingTextOrUnresolvedCustomElementFlag is unset.

isDefinedCustomElement() returns true.

  1. IsCustomElement is unset and IsEditingTextOrUnresolvedCustomElementFlag is set.

isFailedCustomElement() and isUndefinedCustomElement() return true.

Per a spec change, this patch also makes :defined applied to a synchronously constructed custom element
immediately after super() call in the constructor. When the constructor throws an exception or fails to
return the right element, the HTML parser marks the fallback element with setIsUndefinedCustomElement.

Tests: fast/custom-elements/defined-pseudo-class.html

fast/custom-elements/defined-rule.html
fast/custom-elements/upgrading/Node-cloneNode.html

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::constructElement): Don't set :defined flag here since that's done
in the HTMLElement constructor now.
(WebCore::JSCustomElementInterface::upgradeElement): Mark the element as failed-to-upgrade as needed.

  • bindings/js/JSElementCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::isDefinedElement):

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::enqueueElementUpgradeIfDefined): Enqueue custom element reactions
only if the element is well defined (successfully constructed or upgraded).
(WebCore::CustomElementReactionQueue::enqueueConnectedCallbackIfNeeded): Ditto.
(WebCore::CustomElementReactionQueue::enqueueDisconnectedCallbackIfNeeded): Ditto.
(WebCore::CustomElementReactionQueue::enqueueAdoptedCallbackIfNeeded): Ditto.
(WebCore::CustomElementReactionQueue::enqueueAttributeChangedCallbackIfNeeded): Ditto.

  • dom/CustomElementRegistry.cpp:

(WebCore::enqueueUpgradeInShadowIncludingTreeOrder):

  • dom/Document.cpp:

(WebCore::createUpgradeCandidateElement):
(WebCore::createFallbackHTMLElement):

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):
(WebCore::Element::didMoveToNewDocument):
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
(WebCore::Element::setCustomElementIsResolved): Deleted.
(WebCore::Element::setIsDefinedCustomElement): Renamed from setCustomElementIsResolved.
(WebCore::Element::setIsFailedCustomElement): Added.
(WebCore::Element::setIsCustomElementUpgradeCandidate): Added.
(WebCore::Element::customElementInterface):

  • dom/Element.h:
  • dom/Node.h:

(WebCore::Node::setIsCustomElement): Deleted.
(WebCore::Node::isUndefinedCustomElement): Renamed from isUnresolvedCustomElement.
(WebCore::Node::setIsUnresolvedCustomElement): Deleted.
(WebCore::Node::isCustomElementUpgradeCandidate): Added.
(WebCore::Node::isDefinedCustomElement): Renamed from isCustomElement.
(WebCore::Node::isFailedCustomElement): Added.

  • dom/make_names.pl:

(printWrapperFactoryCppFile): Use the HTMLElement wrapper on upgrade candidates. When a custom element
failed to upgrade, the HTMLElement constructor would have created the wrapper so we never run this code.

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder): Mark the HTMLUnknownElement created when
the custom element constructor failed to run successfully as a failed custom element so that :define
wouldn't apply to this element.

LayoutTests:

Added a new test cases to defined-pseudo-class.html, defined-rule.html, and Node-cloneNode.html
and rebaselined the tests.

  • fast/custom-elements/defined-pseudo-class-expected.txt:
  • fast/custom-elements/defined-pseudo-class.html:

(MyElement): Made matchInsideConstructor an instance variable so that there won't be inter-test dependency.
Added test cases for :defined not being not applying to a failed-to-upgrade custom element. Finally, updated
test expectation to reflect the fact :defined now applies inside custom element constructors immediately after
super() call.

  • fast/custom-elements/defined-rule.html: Added a test case for :defined not applying to a failed-to-upgrade

custom element. Also adjusted the height of the last box so that the green box is still 100px by 100px.

  • fast/custom-elements/upgrading/Node-cloneNode-expected.txt:
  • fast/custom-elements/upgrading/Node-cloneNode.html: Added a test to make sure we don't try to upgrade

a custom element for the second time when the first attempt resulted in the constructor throwing an exception.

9:34 PM Changeset in webkit [205415] by BJ Burg
  • 16 edits
    1 copy
    1 move
    4 adds
    3 deletes in trunk

Web Inspector: unify Main.html and Test.html sources and generate different copies with the preprocessor
https://bugs.webkit.org/show_bug.cgi?id=161212
<rdar://problem/28017961>

Reviewed by Joseph Pecoraro.

.:

Rearrange some CMake rules so most Inspector UI work is done in WebInspectorUI.

  • Source/CMakeLists.txt: Add 'WebInspectorUI' subdirectory.
  • Source/PlatformEfl.cmake:
  • Move the rule to copy InspectorBackendCommands.js into WebInspectorUI/CMakeLists.txt.
  • Add a FIXME to use the cross-port list of Inspector resources instead of copying everything.
  • Add new dependency so generated WebInspectorUI files are made by web-inspector-resources.
  • Copy over generated files Main.html and Test.html.
  • Source/PlatformWin.cmake:
  • Add a FIXME to use the cross-port list of Inspector resources instead of copying everything.
  • Add new dependency so generated WebInspectorUI files are made by web-inspector-resources.
  • Copy over generated files Main.html and Test.html.
  • Source/cmake/WebKitFS.cmake:
  • Set up WEBINSPECTORUI_DIR and use it.
  • Move directory creation commands here from JavaScriptCore.
  • Source/cmake/WebKitMacros.cmake:

Add a helper to turn a CMake list into a space-delimited string of elements.

Source/JavaScriptCore:

  • CMakeLists.txt: Remove some unnecessary MAKE_DIRECTORY commands.

Source/WebInspectorUI:

Add a Derived Sources build phase to WebInspectorUI project. Generate
Test.html and Main.html from a combined Inspector.html.in which has preprocessor
macros to include/exclude files not needed by all main resource versions.

Similarly, start generating these Inspector files in WebInspectorUI/CMakeLists.txt.
Move platform-specific bundling commands into PlatformGTK.cmake.

  • CMakeLists.txt: Added.

Set up a list of common frontend resources that specific ports can extend, such as
with their own port-specific image resources. This list is the input to port-specific
packaging/bundling scripts. Eventually, minification and concatenation should happen
independently of the specific port by constructing the list of resources dynamically.

To ensure resources are always generated in WebInspectorUI and accessible from WebKit2,
add a dummy target that is always out of date and depends on generated files, causing
them to be built.

Also create a macro to run the preprocessor over Inspector.html.in using various
preprocessor macro definitions. These are customizable by ports to control the
appearance of ENGINEERING_BUILD, which guards resources not meant for shipping builds.

  • Configurations/WebInspectorUIFramework.xcconfig:

We need to use preprocessor.pm from WebCore. On Mac, this is a private header.
Teach xcodebuild how to compute WEBCORE_PRIVATE_HEADERS_DIR. This is copied
from WebKit2's configuration files.

  • PlatformGTK.cmake: Added.

Add GTK image resources to the resource list. Generate GResource catalog and embedded
C file into DerivedSources. WebKit2 will copy over this file and compile it.

  • Scripts/combine-resources.pl:

(concatenateFiles):
Remove the --strip option as this patch removes the only use of it.

  • DerivedSources.make: Added.

Generate Test.html and Main.html from the new combined Inspector.html.in.
The 'preprocess_main_resource' rule was copied from WebCore's DerivedSources.make.

  • Scripts/cssmin.py: Removed.
  • Scripts/jsmin.py: Removed.

These scripts are copied from JavaScriptCore but nobody uses these copies. Remove them.

  • Scripts/copy-user-interface-resources-dryrun.rb: Do some cleanup.
  • Stage scripts from SRCROOT into the tmpdir so dryrun doesn't require a previous build to process WebInspectorUI resources.
  • Run DerivedSources.make before copying/processing resources.
  • Add some environment variables for new phase and group by script affected.
  • Add a comment to clarify what this script is simulating.
  • Scripts/copy-user-interface-resources.pl:
  • Use Main.html and Test.html from DerivedSources/ instead of SRCROOT.
  • Copy over Main.html and Test.html manually if not combining resources.
  • Remove the command to strip files from Debug/ for production. This is now redundant with ENGINEERING_BUILD guards in Inspector.html.in.
  • Use jsmin.py from JavaScriptCore instead of the local copy.
  • Wrap all multi-argument 'system' invocations so they are readable.
  • Scripts/generate-webinspectorui-derived-sources: Added.

Added boilerplate script to run DerivedSources.make for Mac port.

  • Scripts/preprocess-main-resource.pl: Added.

Trivially invoke the preprocessor on $0 using the given defines.

  • UserInterface/Inspector.html.in: Renamed from Source/WebInspectorUI/UserInterface/Main.html.
  • UserInterface/Test.html: Removed.

Combine Test.html and Main.html into Inspector.html.in. Add these guards:

  • INCLUDE_TEST_RESOURCES: for resources excluded from Main.html.
  • INCLUDE_UI_RESOURCES: for resources excluded from model tests.
  • ENGINEERING_BUILD: for resources not to be shipped (Debug/ directory).
  • WebInspectorUI.xcodeproj/project.pbxproj:
  • Add new aggregate target 'Derived Sources' to project 'WebInspectorUI'.
  • Add dependency on 'Derived Sources' to WebInspectorUI.framework.
  • Remove unused copies of jsmin.py and cssmin.py.

Source/WebKit2:

Rearrange CMake rules so that most Inspector UI work is done in WebInspectorUI.

  • PlatformGTK.cmake:
  • Move the list of Inspector resources into WebInspectorUI/CMakeLists.txt.
  • Move generation of InspectorGResourceBundle into WebInspectorUI.
  • Copy over InspectorGResourceBundle.c into WebKit2's Derived Sources before compiling.
5:38 PM Changeset in webkit [205414] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Change Cmd-D from kill line to selecting next occurrence
https://bugs.webkit.org/show_bug.cgi?id=161514

Patch by Devin Rousso <Devin Rousso> on 2016-09-03
Reviewed by Brian Burg.

  • UserInterface/Controllers/CodeMirrorTextKillController.js:

(WebInspector.CodeMirrorTextKillController):
(WebInspector.CodeMirrorTextKillController.prototype._handleTextChange):
Remove Cmd-D mapping.

  • UserInterface/External/CodeMirror/sublime.js:
  • UserInterface/Main.html:

Add Sublime Text keybinding support.

  • UserInterface/Views/CodeMirrorAdditions.js:

Use Sublime text selectNextOccurrence for Cmd-D instead of deleteLine.

5:27 PM Changeset in webkit [205413] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add keyboard shortcut for switching to last used dock configuration
https://bugs.webkit.org/show_bug.cgi?id=110328

Patch by Devin Rousso <Devin Rousso> on 2016-09-03
Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector.updateDockedState):
(WebInspector._togglePreviousDockConfiguration):
Added variable for saving the previous dock state, which is used by the new Cmd+Shift+D
shortcut to toggle the docked state between the current and previous states.

(WebInspector._undock):
(WebInspector._dockBottom):
(WebInspector._dockRight):
(WebInspector._updateDockNavigationItems):
(WebInspector._dockedResizerMouseDown):
(WebInspector._dockedResizerMouseDown.dockedResizerDrag):
Make use of new WebInspector.DockConfiguration instead of hardcoded strings.

(WebInspector.DockConfiguration):
Create enum for different WebInspector dock modes:

  • Right
  • Bottom
  • Undocked
5:24 PM Changeset in webkit [205412] by Wenson Hsieh
  • 26 edits
    6 adds in trunk

Refactor the heuristic for showing media controls to take all media sessions into account
https://bugs.webkit.org/show_bug.cgi?id=161503
<rdar://problem/28033783>

Reviewed by Darin Adler.

Source/WebCore:

Currently, when selecting a media session to show playback controls for, we grab the first media session that
passes our heuristic. Using this method, we are unable to take additional factors into account, such as whether
another media session's element is scrolled in view, or if another media session has been interacted with more
recently. To address this, we make the following changes:

  1. Consider the list of all MediaElementSessions.
  1. Select only the MediaElementSessions capable of showing media controls and sort the list by a special

heuristic that takes visibility and time of last user interaction into account. The first element on
this list is the strongest candidate for main content.

  1. If this strongest candidate is visible in the viewport, or it is playing with audio, we return this

as the chosen candidate. Otherwise, we return this session only if no other non-candidate video could be
confused as the main content (i.e. the non-candidate video is not only visible in the viewport, but also
large enough to be considered main content).

Using this new method of determining the video to show controls for, we retain previous behavior for pages with
a single video. On pages with multiple videos, the above logic ensures that if the current controlled video is
paused, scrolled out of view, and then a new video is scrolled into view, we will either hide media controls to
avoid confusion if that video could be confused for main content (using the mechanism in step 3), or we
hook up the media controls to the new video if it satisfies main content (using the mechanism in step 2).

This patch also adds 6 new TestWebKitAPI unit tests.

  • html/HTMLMediaElement.cpp:

(WebCore::mediaElementSessionInfoForSession):
(WebCore::preferMediaControlsForCandidateSessionOverOtherCandidateSession):
(WebCore::mediaSessionMayBeConfusedWithMainContent):
(WebCore::bestMediaSessionForShowingPlaybackControlsManager):
(WebCore::HTMLMediaElement::didAttachRenderers):
(WebCore::HTMLMediaElement::layoutSizeChanged):
(WebCore::HTMLMediaElement::isVisibleInViewportChanged):
(WebCore::HTMLMediaElement::resetPlaybackSessionState):
(WebCore::HTMLMediaElement::isVisibleInViewport):
(WebCore::HTMLMediaElement::updatePlaybackControlsManager):

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::removeBehaviorRestriction):
(WebCore::MediaElementSession::canShowControlsManager):
(WebCore::MediaElementSession::isLargeEnoughForMainContent):
(WebCore::MediaElementSession::mostRecentUserInteractionTime):
(WebCore::MediaElementSession::wantsToObserveViewportVisibilityForMediaControls):
(WebCore::MediaElementSession::wantsToObserveViewportVisibilityForAutoplay):
(WebCore::MediaElementSession::resetPlaybackSessionState):
(WebCore::MediaElementSession::canControlControlsManager): Deleted.

  • html/MediaElementSession.h:
  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSession::resetPlaybackSessionState):
(WebCore::PlatformMediaSession::canControlControlsManager): Deleted.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::currentSessionsMatching):
(WebCore::PlatformMediaSessionManager::currentSessionMatching): Deleted.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebPlaybackSessionModelMediaElement::setMediaElement):

Source/WebKit2:

Adds an SPI testing hook for sending the element ID of the currently controlled video element from the web
process to the UI process. See VideoControlsManager.mm in Tools/TestWebKitAPI/ for usage.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _requestControlledElementID]):
(-[WKWebView _handleControlledElementIDResponse:]):
(-[WKWebView _hasActiveVideoForControlsManager]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:

(WebKit::WebPlaybackSessionManagerProxy::handleControlledElementIDResponse):
(WebKit::WebPlaybackSessionManagerProxy::requestControlledElementID):

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestControlledElementID):
(WebKit::WebPageProxy::handleControlledElementIDResponse):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::handleControlledElementIDResponse):

  • WebProcess/cocoa/WebPlaybackSessionManager.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.messages.in:
  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::handleControlledElementIDRequest):

Tools:

Adds new unit tests verifying the behavior of media playback controls when scrolling another video into view.
Please see the WebCore ChangeLog for more details about this change. Also refactors existing
VideoControlsManager tests by folding duplicated setup and testing logic into helper methods to make the unit
tests more readable.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(-[MessageHandler initWithMessage:handler:]):
(-[MessageHandler userContentController:didReceiveScriptMessage:]):
(-[VideoControlsManagerTestWebView performAfterLoading:]):
(-[VideoControlsManagerTestWebView loadTestPageNamed:]):
(-[VideoControlsManagerTestWebView loadTestPageNamed:andExpectControlsManager:afterReceivingMessage:]):
(-[VideoControlsManagerTestWebView performAfterReceivingMessage:action:]):
(-[VideoControlsManagerTestWebView controlledElementID]):
(-[VideoControlsManagerTestWebView _handleControlledElementIDResponse:]):
(TestWebKitAPI::setUpWebViewForTestingVideoControlsManager):
(TestWebKitAPI::TEST):
(-[MediaPlaybackMessageHandler initWithWKWebView:finalMessageString:]): Deleted.
(-[MediaPlaybackMessageHandler userContentController:didReceiveScriptMessage:]): Deleted.
(-[OnLoadMessageHandler initWithWKWebView:handler:]): Deleted.
(-[OnLoadMessageHandler userContentController:didReceiveScriptMessage:]): Deleted.
(-[WKWebView performAfterLoading:]): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-playing-scroll-away.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-autoplaying-click-to-pause.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-autoplaying-scroll-to-video.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-paused-video-hides-controls.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-playing-muted-video-hides-controls.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-playing-video-keeps-controls.html: Added.
4:34 PM Changeset in webkit [205411] by Darin Adler
  • 33 edits
    2 adds in trunk/Source

Streamline DOMImplementation, and move it to our new DOM exception system
https://bugs.webkit.org/show_bug.cgi?id=161295

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj: Added new headers to project.
  • bindings/js/JSDOMBinding.h:

(WebCore::toJS): Added an overload for ExceptionOr<>; this handles the
exception case here so it doesn't need to be handled in generated code
for the binding. Implemented here so that ExceptionOr.h does not know
about bindings. But since this is a template, it will only compile when
instantiated and there is no need to include ExceptionOr.h and indirectly
the Variant.h header in this header.
(WebCore::toJSNewlyCreated): Ditto.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackImplementation): Refer to JSC::Exception with explicit
namespace to avoid ambiguity with WebCore::Exception.

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocumentType): Changed to return
ExceptionOr.
(WebCore::createXMLDocument): Added. Helper used in createDocument.
(WebCore::DOMImplementation::getInterface): Deleted. This was unused.
(WebCore::DOMImplementation::createDocument): Changed to return
ExceptionOr.
(WebCore::DOMImplementation::createCSSStyleSheet): Removed the unused
ExceptionCode out argument.
(WebCore::isValidXMLMIMETypeChar): Deleted. Moved to MIMETypeRegistry.
(WebCore::DOMImplementation::isXMLMIMEType): Ditto.
(WebCore::DOMImplementation::isTextMIMEType): Ditto.

  • dom/DOMImplementation.h: Changed functions as described above to

return ExceptionOr values. Also removed unused getInterface function,
and isXMLMIMEType and isTextMIMEType, which both moved to the
MIMETypeRegistry class alongside all the other similar MIME type
functions.

  • dom/DOMImplementation.idl: Reorganized this to match the IDL files

in the specifications a little better. Also removed [RaisesException]
since that is only needed for the old legacy ExceptionCode& style.

  • dom/Document.cpp:

(WebCore::Document::setXMLVersion): Removed call to the
DOMImplementation::hasFeature function since the values passed in
unconditionally result in the return value "true". This is left over
either from specification language, or from an ancient version of this
code that worked in a "no XML supported" mode.
(WebCore::Document::setXMLStandalone): Ditto.

  • dom/Document.h: Removed the ExceptionCode& out argument from setXMLStandalone.
  • dom/Document.idl: Removed [SetterRaisesException] from xmlStandalone.
  • dom/Exception.h: Added.
  • dom/ExceptionOr.h: Added.
  • html/HTMLTemplateElement.cpp: Removed unneeded include of DOMImplementation.h.
  • inspector/InspectorPageAgent.cpp:

(WebCore::createXHRTextDecoder): Use isXMLMIMEType in its new location in
MIMETypeRegistry.

  • inspector/NetworkResourcesData.cpp:

(WebCore::createOtherResourceTextDecoder): Ditto.

  • loader/FrameLoader.cpp: Removed unneeded include of DOMImplementation.h.
  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::determineContentType): Use isXMLMIMEType in its
new location in MIMETypeRegistry.

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isTextMIMEType): Added. Moved here from
DOMImplementation.
(WebCore::isValidXMLMIMETypeChar): Ditto.
(WebCore::MIMETypeRegistry::isXMLMIMEType): Ditto.

  • platform/MIMETypeRegistry.h: Added isXMLMIMEType and isTextMIMEType.

Made isUnsupportedTextMIMEType private.

  • svg/SVGElement.cpp:

(WebCore::SVGElement::isSupported): Deleted. This function was never called.

  • svg/SVGElement.h: Updated for the above change.
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::responseIsXML): Use isXMLMIMEType in its new
location in MIMETypeRegistry.

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::startDocument): Updated since setXMLStandalone
no longer can raise an exception.

Source/WebKit/mac:

  • DOM/DOMDOMImplementation.mm:

(unwrap): Added. Use this instead of the IMPL macro.
(-[DOMImplementation dealloc]): Updated to use unwrap.
(-[DOMImplementation hasFeature:version:]): Ditto.
(-[DOMImplementation createDocumentType:publicId:systemId:]): Updated to work with
ExceptionOr.
(-[DOMImplementation createDocument:qualifiedName:doctype:]): Ditto.
(-[DOMImplementation createCSSStyleSheet:media:]): Removed exception logic since
this function can no longer raise an exception.
(-[DOMImplementation createHTMLDocument:]): Updated to use unwrap.
(-[DOMImplementation hasFeature::]): Changed to call the non-deprecated version
rather than duplicating its implementation. Also moved into the category as defined
in the header.
(-[DOMImplementation createDocumentType:::]): Ditto.
(-[DOMImplementation createDocument:::]): Ditto.
(-[DOMImplementation createCSSStyleSheet::]): Ditto.

  • DOM/DOMDocument.mm: Removed unneeded include of DOMImplementation.h.

(-[DOMDocument setXmlStandalone:]): Updated since setXMLStandalone no longer can
raise an exception.

  • WebView/WebFrame.mm:

(-[WebFrame _canProvideDocumentSource]): Updated to use isTextMIMEType in its new
location in MIMETypeRegistry instead of in DOMImplementation.

Source/WebKit/win:

  • WebFrame.cpp:

(WebFrame::canProvideDocumentSource): Updated to use isXMLMIMEType in its new
location in MIMETypeRegistry instead of in DOMImplementation.

Source/WebKit2:

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::isDisplayingMarkupDocument): Use isXMLMIMEType in its
new location in MIMETypeRegistry rather than in DOMImplementation.
(WebKit::WebFrameProxy::isDisplayingPDFDocument): Removed unneeded redundant
check for empty string, already done by MIMETypeRegistry.

4:25 PM Changeset in webkit [205410] by rniwa@webkit.org
  • 7 edits in trunk

Unbreak customElements.whenDefined after r205383 with a crash fix
https://bugs.webkit.org/show_bug.cgi?id=161562

Reviewed by Darin Adler.

Source/WebCore:

The crash was caused by DeferredWrapper::contextDestroyed not calling ContextDestructionObserver::contextDestroyed.

This caused m_scriptExecutionContext to not being set to nullptr when the Document was destroyed before DOMWindow
during a single GC sweeping, and resulted in a use-after-free in ContextDestructionObserver's destructor.

Fixed the crash and reverted r205383.

Tests: fast/custom-elements/CustomElementRegistry.html

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::whenDefinedPromise):

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::contextDestroyed): Fixed the crash.

  • dom/CustomElementRegistry.cpp:

(WebCore::CustomElementRegistry::addElementDefinition):

  • dom/CustomElementRegistry.h:

(WebCore::CustomElementRegistry::promiseMap):

LayoutTests:

Revert r205383 now that all test cases pass.

  • fast/custom-elements/CustomElementRegistry-expected.txt:
3:50 PM Changeset in webkit [205409] by Chris Dumez
  • 6 edits in trunk

Align cross-Origin Object.getOwnPropertyNames() with the HTML specification
https://bugs.webkit.org/show_bug.cgi?id=161457

Reviewed by Darin Adler.

Source/WebCore:

Align cross-Origin Object.getOwnPropertyNames() with the HTML specification:

We should list cross origin properties.

Firefox complies with the specification. However, WebKit was returning an
empty array and logs a security error message.

No new tests, updated existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::addCrossOriginPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::addCrossOriginPropertyNames):
(WebCore::JSLocation::getOwnPropertyNames):

LayoutTests:

Add test coverage.

  • http/tests/security/cross-frame-access-enumeration-expected.txt:
  • http/tests/security/cross-frame-access-enumeration.html:
2:32 PM Changeset in webkit [205408] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Constructors of MathML renderers should only accept MathMLPresentationElement-derived classes
https://bugs.webkit.org/show_bug.cgi?id=161378

Patch by Frédéric Wang <fwang@igalia.com> on 2016-09-03
Reviewed by Darin Adler.

We update constructors of RenderMathMLBlock, to only accept MathMLPresentationElement
instances as a parameter. Similarly, we make the constructor of RenderMathMLToken only
accept MathMLTokenElement instances.

No new tests, behavior is unchanged.

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::RenderMathMLBlock):

  • rendering/mathml/RenderMathMLBlock.h:
  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::RenderMathMLToken::RenderMathMLToken):

  • rendering/mathml/RenderMathMLToken.h:
12:58 PM Changeset in webkit [205407] by bweinstein@apple.com
  • 12 edits in trunk/Source

Source/WebCore:
Consult with the FrameLoaderClient about whether or not content extensions should be enabled when loading this URL.
https://bugs.webkit.org/show_bug.cgi?id=161441

Reviewed by Darin Adler.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource): If content extensions aren't already disabled, consult with the
FrameLoaderClient about whether or not we should use content extensions for this URL.

  • loader/FrameLoaderClient.h: Add the FrameLoaderClient call to determine if we should use content extensions for a given

URL...

  • loader/EmptyClients.h: ... And add a stub implementation.

Source/WebKit/mac:
Implement a stub version of FrameLoaderClient::shouldUseContentExtensionsForURL.
https://bugs.webkit.org/show_bug.cgi?id=16144

Reviewed by Darin Adler.

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:
Implement WebFrameLoaderClient::shouldUseContentExtensionsForURL and consult the InjectedBundlePageLoaderClient.
https://bugs.webkit.org/show_bug.cgi?id=161441

Reviewed by Darin Adler.

WebFrameLoaderClient::shouldUseContentExtensionsForURL only consults the injected bundle, because we don't want to
defer the loading of every main resource to consult with the UI Process about whether or not we should use content
extensions for the load.

  • WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h: Bump the latest version to WKBundlePageLoaderClientV9 and

add WKBundlePageShouldUseContentExtensionsForURLCallback.

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:

(WebKit::InjectedBundlePageLoaderClient::shouldUseContentExtensionsForURL): Ask the client if we should use content
extensions for this URL.

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::shouldUseContentExtensionsForURL): Only consult with the injected bundle about whether
or not we should use content extensions for this URL.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
8:21 AM Changeset in webkit [205406] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Silence -Wparentheses warning triggered by r205266

Unreviewed

  • platform/URL.cpp:

(WebCore::URL::URL):

7:52 AM Changeset in webkit [205405] by commit-queue@webkit.org
  • 12 edits in trunk/Source

Use ASCIILiteral in some more places
https://bugs.webkit.org/show_bug.cgi?id=161557

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-03
Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/TypeSet.h:

(JSC::StructureShape::setConstructorName):

Source/WebCore:

  • Modules/indexeddb/IDBDatabaseException.cpp:

(WebCore::IDBDatabaseException::getErrorName):
(WebCore::IDBDatabaseException::getErrorDescription):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::binaryType):

  • css/FontFace.cpp:

(WebCore::FontFace::stretch):
(WebCore::FontFace::unicodeRange):
(WebCore::FontFace::featureSettings):

  • html/canvas/WebGLRenderingContextBase.cpp:
  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::initiatorFor):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::Attributes::parseEncodingType):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::toRawString):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::CGImageToDataURL):
(WebCore::ImageBuffer::toDataURL):
(WebCore::ImageDataToDataURL):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::filenameExtension):

7:44 AM Changeset in webkit [205404] by Chris Dumez
  • 5 edits in trunk

Object.preventExtensions(window) should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=161554

Reviewed by Darin Adler.

Source/WebCore:

Object.preventExtensions(window) should throw a TypeError.

PreventExtensions? should return false for Window:

EcmaScript says that Object.preventExtensions() should throw a TypeError
if PreventExtension? returns false:

No new tests, updated existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::preventExtensions):

LayoutTests:

  • http/tests/security/preventExtensions-window-location-expected.txt:
  • http/tests/security/preventExtensions-window-location.html:
7:42 AM Changeset in webkit [205403] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit2

Web Inspector: Move WebKit2 WebInspector files to #pragma once
https://bugs.webkit.org/show_bug.cgi?id=161550

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-03
Reviewed by Darin Adler.

  • UIProcess/InspectorServer/WebInspectorServer.h:
  • UIProcess/WebInspectorProxy.h:
  • UIProcess/gtk/WebInspectorClientGtk.h:
  • WebProcess/WebCoreSupport/WebInspectorClient.h:
  • WebProcess/WebPage/WebInspector.h:
  • WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.h:
  • WebProcess/WebPage/WebInspectorUI.h:
7:40 AM Changeset in webkit [205402] by commit-queue@webkit.org
  • 7 edits in trunk

Web Inspector: Address ESLint undefined variable errors
https://bugs.webkit.org/show_bug.cgi?id=161563

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-03
Reviewed by Darin Adler.

Source/WebInspectorUI:

  • UserInterface/Controllers/CSSStyleManager.js:

(WebInspector.CSSStyleManager.protocolMediaSourceToEnum):

  • UserInterface/Models/IssueMessage.js:

(WebInspector.IssueMessage):

  • UserInterface/Protocol/InspectorBackend.js:

LayoutTests:

  • inspector/protocol/inspector-backend-invocation-return-value-expected.txt:
  • inspector/protocol/inspector-backend-invocation-return-value.html:
7:38 AM Changeset in webkit [205401] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Address ESLint undefined variable errors in UserInterface/Views
https://bugs.webkit.org/show_bug.cgi?id=161565

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-03
Reviewed by Darin Adler.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.columnWidthsMap):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):

  • UserInterface/Views/TextContentView.js:

(WebInspector.TextContentView.prototype._togglePrettyPrint):

7:09 AM Changeset in webkit [205400] by Chris Dumez
  • 10 edits
    15 adds in trunk

Align meta element http-equiv="refresh" parsing with the HTML specification
https://bugs.webkit.org/show_bug.cgi?id=161543

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import corresponding test from W3C.

  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/;url=foo: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/dir.headers: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/foo: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/foo'bar: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/refresh.sub.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/ufoo: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/urfoo: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/url foo: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/urlfoo: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/x;url=foo: Added.

Source/WebCore:

Align meta element http-equiv="refresh" parsing with the HTML specification:

Tests: imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv):

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseHTTPRefreshInternal):
(WebCore::parseMetaHTTPEquivRefresh):

  • html/parser/HTMLParserIdioms.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::receivedFirstData):

  • platform/network/HTTPParsers.cpp:

(WebCore::skipWhiteSpace):
(WebCore::skipEquals):
(WebCore::parseHTTPRefresh):
(WebCore::parseXSSProtectionHeader):
(WebCore::skipValue): Deleted.

  • platform/network/HTTPParsers.h:

LayoutTests:

Update layout test to only use HTML spaces in http-equiv="refresh"
content value.

  • http/tests/misc/refresh-meta-with-newline.html:
2:44 AM Changeset in webkit [205399] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk

run-webkit-tests should detect w3c test resource files
https://bugs.webkit.org/show_bug.cgi?id=161307

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-03
Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • resources/resource-files.json: Added.

Tools:

  • Scripts/webkitpy/port/base.py:

(Port.init): Adding self._w3c_resource_files to store the list of resource files.
(Port.potential_test_names_from_expected_file):
(Port._real_tests):
(Port.is_w3c_resource_file): Computing whether a file is a resource file based on imported/w3c/resources/resource-files.json.
(Port._is_test_file): Updated to call Port.is_w3c_resource_file. _is_test_file is no longer static.
(Port): Deleted.

  • Scripts/webkitpy/port/base_unittest.py:

(PortTest.test_additional_platform_directory):
(PortTest.test_find_no_paths_specified):
(PortTest.test_is_test_file): Updated to use non-static version of _is_test_file.
(PortTest.test_is_w3c_resource_file): Adding tests.

LayoutTests:

12:40 AM Changeset in webkit [205398] by mmaxfield@apple.com
  • 7 edits
    6 deletes in trunk/LayoutTests

[Cocoa] Distinguish between paint advances and base advances
https://bugs.webkit.org/show_bug.cgi?id=160892

Unreviewed.

Update test results.

  • platform/mac-elcapitan/css2.1/t051202-c26-psudo-nest-00-c-expected.png: Removed.
  • platform/mac-elcapitan/css2.1/t051202-c26-psudo-nest-00-c-expected.txt: Removed.
  • platform/mac-elcapitan/css2.1/t1508-c527-font-00-b-expected.png: Removed.
  • platform/mac-elcapitan/css2.1/t1508-c527-font-00-b-expected.txt: Removed.
  • platform/mac-elcapitan/fast/inline/absolute-positioned-inline-in-centred-block-expected.png: Removed.
  • platform/mac-elcapitan/fast/inline/absolute-positioned-inline-in-centred-block-expected.txt: Removed.
  • platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.png:
  • platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.txt:
  • platform/mac/css2.1/t1508-c527-font-00-b-expected.png:
  • platform/mac/css2.1/t1508-c527-font-00-b-expected.txt:
  • platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.png:
  • platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.txt:

Sep 2, 2016:

11:04 PM Changeset in webkit [205397] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] -Wmissing-field-initializers on WaylandCompositor.cpp:295
https://bugs.webkit.org/show_bug.cgi?id=161524

Reviewed by Carlos Garcia Campos.

  • UIProcess/gtk/WaylandCompositor.cpp:
10:52 PM Changeset in webkit [205396] by mmaxfield@apple.com
  • 13 edits
    5 copies
    4 adds in trunk

[Cocoa] Distinguish between paint advances and base advances
https://bugs.webkit.org/show_bug.cgi?id=160892

Reviewed by Simon Fraser.

Source/WebCore:

This patch introduces the concept of a layout (or "base") advance which is distinct
from a painting advance. In extremely complicated scripts such as Urdu, it is common
for a glyph advance to be negative in the horizontal direction, and have large advances
in the vertical direction. In particular, in cursive scripts, the glyph placement is
only indirectly related to where the actual characters lie. Conceptually, these glyph
locations are correct for painting, but are not correct when performing width
measurements.

In many text engines, glyph shaping actually can be split into two phases: adjusting
advances, and then placing glyphs relative to those advances. The secondary glyph
placement step is much more context-sensitive than the first step. In addition, when
multiple glyphs combine to form a character, it is common for one glyph to own the
full base advance for the character, and for the other glyphs in the character to
have zero base advances. (Then, in the glyph placement phase, the other glyphs get
placed all around.)

Because of the context-insensitivity of the base advances, it is valuable to use
these for text measurement. Then, when we want to paint, we should add in the extra
origins. This dramatically improves the layout of complex fonts like Noto Nastaliq.

This patch migrates WebKit to use this two-phase shaping.

No new tests just yet, because I have to create a font which exercises the
advanced glyph placement support.

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBufferAdvance::setHeight):
(WebCore::GlyphBufferAdvance::setWidth): Deleted.

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):
(WebCore::TextRun::shouldDisableLayoutSpecificAdvances):
(WebCore::TextRun::setShouldDisableLayoutSpecificAdvances):
(WebCore::TextRun::spacingDisabled): Deleted.
(WebCore::TextRun::setCharacterScanForCodePath): Deleted.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText):

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::ComplexTextController):
(WebCore::ComplexTextController::offsetForPosition):
(WebCore::ComplexTextController::collectComplexTextRuns):
(WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic):
(WebCore::ComplexTextController::runWidthSoFarFraction):
(WebCore::ComplexTextController::advance):
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

  • platform/graphics/mac/ComplexTextController.h:

(WebCore::ComplexTextController::ComplexTextRun::create):
(WebCore::ComplexTextController::ComplexTextRun::baseAdvances):
(WebCore::ComplexTextController::ComplexTextRun::glyphOrigins):
(WebCore::ComplexTextController::useLayoutSpecificAdvances):
(WebCore::ComplexTextController::finalRoundingWidth): Deleted.
(WebCore::ComplexTextController::ComplexTextRun::advances): Deleted.

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(SOFT_LINK):
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

  • platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

Update tests. There are some expected (small) changes in metrics due to this patch.

  • platform/mac-elcapitan/css2.1/t051202-c26-psudo-nest-00-c-expected.png: Copied from LayoutTests/platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.png.
  • platform/mac-elcapitan/css2.1/t051202-c26-psudo-nest-00-c-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.txt.
  • platform/mac-elcapitan/css2.1/t1508-c527-font-00-b-expected.png: Copied from LayoutTests/platform/mac/css2.1/t1508-c527-font-00-b-expected.png.
  • platform/mac-elcapitan/css2.1/t1508-c527-font-00-b-expected.txt: Added.
  • platform/mac-elcapitan/fast/inline/absolute-positioned-inline-in-centred-block-expected.png: Copied from LayoutTests/platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.png.
  • platform/mac-elcapitan/fast/inline/absolute-positioned-inline-in-centred-block-expected.txt: Copied from LayoutTests/platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.txt.
  • platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.png:
  • platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.txt:
  • platform/mac/css2.1/t1508-c527-font-00-b-expected.png:
  • platform/mac/css2.1/t1508-c527-font-00-b-expected.txt: Added.
  • platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.png:
  • platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.txt:
10:45 PM Changeset in webkit [205395] by Carlos Garcia Campos
  • 8 edits in trunk/Source/WebKit2

[Threaded Compositor] Move the viewport controller off the compositing thread
https://bugs.webkit.org/show_bug.cgi?id=161532

Reviewed by Michael Catanzaro.

While working on bug #161242 I've realized that having the view port controller in the compositing thread makes
everything more complex. The viewport controller receives changes about things like contents size, viewport
size, etc. and uses that information to compute the visible contents rect and page scale factor. Then it
notifies back to main thread about the computed visible contents rect and page scale. Those computations are not
heave at all, so they could be done in the main thread and we would avoid communications between the main and
compositing thread in both directions. The main thread needs the visible contents rect to notify the compositing
coordinator and the page cale to scale the page in case of pixed layout. But the compositing thread only needs
to know the effective scale and scroll position. So, instead of going to the compositing thread after every
change that might update the visible contents rect and page scale factor, we could do those calculations in the
main thread and only notify the compositing thread about the actual changes in the scroll position and effective scale.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::createTilesIfNeeded): Return early if backingStore is nullptr, which can
happen if the layer shouldn't have a backing store and was removed by the previous call to prepareContentBackingStore().
(WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded): Ditto.

  • Shared/CoordinatedGraphics/SimpleViewportController.cpp:

(WebKit::SimpleViewportController::SimpleViewportController): Remove the client since we no longer need to
notify about changes.
(WebKit::SimpleViewportController::didChangeViewportSize): Remove call to syncVisibleContents().
(WebKit::SimpleViewportController::didChangeContentsSize): Ditto.
(WebKit::SimpleViewportController::didChangeViewportAttributes): Ditto.
(WebKit::SimpleViewportController::didScroll): Removed unused scrollBy methods and renamed scrollTo as
didiScroll for consistency. Save the position without calling boundContentsPosition, because that's already
donde when the position is used to compute the contents visible rectangle.
(WebKit::SimpleViewportController::visibleContentsRect): No need to notify about the changes.
(WebKit::SimpleViewportController::visibleContentsSize): Deleted.

  • Shared/CoordinatedGraphics/SimpleViewportController.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create): Pass a reference to the client instead of a pointer. It's no longer
possible to have a valid pointer when the object has been destroyed, so we can better use a reference now.
(WebKit::ThreadedCompositor::ThreadedCompositor): Ditto.
(WebKit::ThreadedCompositor::~ThreadedCompositor): Remove assert.
(WebKit::ThreadedCompositor::invalidate): No need to invalidate the client.
(WebKit::ThreadedCompositor::setScaleFactor): Set the effective scale factor that should be used for rendering.
(WebKit::ThreadedCompositor::setScrollPosition): Set the current scroll position and effective scale factor.
(WebKit::ThreadedCompositor::setViewportSize): Set the viewport size and effective scale factor.
(WebKit::ThreadedCompositor::renderNextFrame): Update m_client use that is no longer a pointer.
(WebKit::ThreadedCompositor::commitScrollOffset): Ditto.
(WebKit::ThreadedCompositor::renderLayerTree): Call glViewport after a resize and use m_viewportSize,
m_scrollPosition and m_scaleFactor members.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Pass the compositor client as a
reference to ThreadedCompositor constructor.
(WebKit::ThreadedCoordinatedLayerTreeHost::scrollNonCompositedContents): Update the viewport and call didChangeViewport().
(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Pass the effective scale factor to
the compositor.
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): Update the viewport, the compositor and call didChangeViewport().
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportProperties): Update the viewport and call didChangeViewport().
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewport): Notify the compositing coordinator about the new
visible contents rectangle, and update the threaded compositor if needed.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
10:24 PM Changeset in webkit [205394] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix archive-built-product step in GTK+ bots after r205280.

  • BuildSlaveSupport/built-product-archive:

(archiveBuiltProduct): Do not copy to the archive the files needed to run GObject DOM bindings API breaks tests
that no longer exist.

7:11 PM Changeset in webkit [205393] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit/win

Build fix attempt after r205381.

  • WebCoreSupport/WebEditorClient.h:
5:53 PM Changeset in webkit [205392] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Should never be reached failure in WebCore::floatValueForLength
https://bugs.webkit.org/show_bug.cgi?id=139397
<rdar://problem/27704376>

Reviewed by Simon Fraser.

Source/WebCore:

floatValueForLength can't resolve unspecified Length types. Filter them out and return 0 as if they were auto.

Test: svg/css/assert-on-non-resolvable-dimension.html

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::valueForLength):

LayoutTests:

  • svg/css/assert-on-non-resolvable-dimension-expected.txt: Added.
  • svg/css/assert-on-non-resolvable-dimension.html: Added.
5:34 PM Changeset in webkit [205391] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Mac] Remove unnecessary RetainPtr in NeverDestroyed value
https://bugs.webkit.org/show_bug.cgi?id=161553

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-02
Reviewed by Daniel Bates.

  • platform/ios/WebCoreMotionManager.mm:

(+[WebCoreMotionManager sharedManager]):

5:32 PM Changeset in webkit [205390] by achristensen@apple.com
  • 5 edits in trunk

URLParser should parse file URLs
https://bugs.webkit.org/show_bug.cgi?id=161556

Reviewed by Tim Horton.

Source/WebCore:

Added new API tests.

  • platform/URLParser.cpp:

(WebCore::isWindowsDriveLetter):
(WebCore::shouldCopyFileURL):
(WebCore::URLParser::parse):
(WebCore::URLParser::parseHost):

  • platform/URLParser.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):
(TestWebKitAPI::checkURLDifferences):

5:22 PM Changeset in webkit [205389] by msaboff@apple.com
  • 2 edits in trunk/JSTests

Unreviewed fix after importing Chakra test

  • ChakraCore.yaml: Skipped ChakraCore/test/UnifiedRegex/crazy.js because the original

test contained tab characters. I removed the tabs before landing. This test depended
on the tab characters and now fails after they were removed.
test.

5:21 PM Changeset in webkit [205388] by Ryan Haddad
  • 2 edits
    1 copy
    2 adds in trunk/LayoutTests

Rebaseline editing/secure-input/removed-password-input.html after r205381.

Unreviewed test gardening.

  • editing/secure-input/removed-password-input-expected.txt:
  • platform/wk2/editing/secure-input/removed-password-input-expected.txt: Copied from LayoutTests/editing/secure-input/removed-password-input-expected.txt.
5:12 PM Changeset in webkit [205387] by msaboff@apple.com
  • 5 edits
    3955 adds in trunk

Import Chakra tests to JSC
https://bugs.webkit.org/show_bug.cgi?id=154697

Reviewed by Saam Barati.

Added Chakra tests. All these tests are under Chakra/test. This is the same layout
for tests in the Chakra tree.

Created a ChakraCore.yaml file to be used with run-jsc-stress-tests. This file contains
the tests that are run when the original Chakra runtests.py script is run. That script
is the test driver for *nix platforms and does not attempt to run all tests or all
variations of tests. The runtest.py driver consults rlexe.xml files in each test
subdirectory to determine the test to run, the options to pass to the test and how to
determine pass/fail of the test. With runtests.py as the start, tests that didn't
pass directly where either skipped, with a message describing why or through
adjustments to the test infrastructure, as described below, where made to pass.

The only modification to the test infrastrucutre are:

1) Added simple mapping of Chakra expected exception text to JSC expected text in

test/UnitTestFramework/UnitTestFramework.js. It would make sense to also
map some JSC specific exception text to more generic text for the cases where
that text contains indetifier names or other source specific strings and the
Chakra equivolent exception texts are generic.

2) Created JSC specific expected text files where it is clear that the text work

as expected on JSC but the test output is different. Typically the differences
fall into three categories, different exception output, different output from
toString() of a function, slight numeric differences, and test that rely on
iteration order.

3) Stripped the CR's from the CR-LF line terminations of the files.

No actual test .js files were modified.

5:09 PM Changeset in webkit [205386] by rniwa@webkit.org
  • 7 edits in trunk

Add validations for a synchronously constructed custom element
https://bugs.webkit.org/show_bug.cgi?id=161528

Reviewed by Yusuke Suzuki.

Source/WebCore:

The latest DOM specification has sanity checks when creating an element with the synchronous custom elements flag set
in 6.1.3 through 10:

  1. If result does not implement the HTMLElement interface, throw a TypeError.
  2. If result's attribute list is not empty, then throw a NotSupportedError.
  3. If result has children, then throw a NotSupportedError.
  4. If result's parent is not null, then throw a NotSupportedError.
  5. If result's node document is not document, then throw a NotSupportedError.
  6. If result's namespace is not the HTML namespace, then throw a NotSupportedError.
  7. If result's local name is not equal to localName, then throw a NotSupportedError.

Add all these checks to JSCustomElementInterface::constructElement.

Tests: fast/custom-elements/Document-createElement.html

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::constructElement): Report the exception thrown during parsing instead of just
clearing and ignoring it.
(WebCore::constructCustomElementSynchronously): Extracted out of constructElement so that we can also catch TypeError
and NotSupportedError we throw in constructElement for the parser.

LayoutTests:

Added test cases for sanity checks in step 6.1. of https://dom.spec.whatwg.org/#concept-create-element
and updated other test cases per those changes.

  • fast/custom-elements/Document-createElement-expected.txt:
  • fast/custom-elements/Document-createElement.html:
  • fast/custom-elements/defined-pseudo-class-expected.txt: Rebaselined now that exceptions thrown while constructing

a custom element is reported in the console.

  • fast/custom-elements/parser/parser-fallsback-to-unknown-element-expected.txt: Ditto.
5:04 PM Changeset in webkit [205385] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking two editing/mac/spelling tests as flaky on mac-wk2.
https://bugs.webkit.org/show_bug.cgi?id=161411

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:35 PM Changeset in webkit [205384] by Alan Bujtas
  • 3 edits
    2 adds in trunk

ASSERT_NOT_REACHED() is touched in WebCore::valueForLength
https://bugs.webkit.org/show_bug.cgi?id=123337
<rdar://problem/27684121>

Reviewed by Simon Fraser.

Source/WebCore:

Do not try to use unspecified height value while resolving logical height for table row.

Test: fast/table/assert-on-non-resolvable-row-dimension.html

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::logicalHeightForRowSizing):

LayoutTests:

  • fast/table/assert-on-non-resolvable-row-dimension-expected.txt: Added.
  • fast/table/assert-on-non-resolvable-row-dimension.html: Added.
4:25 PM Changeset in webkit [205383] by rniwa@webkit.org
  • 6 edits in trunk

Temporarily break customElements.whenDefined to remove flaky crashes
https://bugs.webkit.org/show_bug.cgi?id=161555

Reviewed by Chris Dumez.

Source/WebCore:

Remove HashMap of DeferredWrapper which causes a crash during destruction.
This breaks the semantics of "whenDefined" for now.

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::whenDefinedPromise):

  • dom/CustomElementRegistry.cpp:

(WebCore::CustomElementRegistry::addElementDefinition):

  • dom/CustomElementRegistry.h:

(WebCore::CustomElementRegistry::promiseMap): Deleted.

LayoutTests:

Rebaseline the test now that some test cases are failing due to the partial rollout.

  • fast/custom-elements/CustomElementRegistry-expected.txt:
4:18 PM Changeset in webkit [205382] by Ryan Haddad
  • 13 edits
    3 deletes in trunk

Unreviewed, rolling out r205373.

This change causes LayoutTest crashes under GuardMalloc

Reverted changeset:

"[Cocoa] Distinguish between paint advances and base advances"
https://bugs.webkit.org/show_bug.cgi?id=160892
http://trac.webkit.org/changeset/205373

4:14 PM Changeset in webkit [205381] by Beth Dakin
  • 14 edits in trunk

Need to updateEditorState if an element change edit-ability without changing
selection
https://bugs.webkit.org/show_bug.cgi?id=161546
-and corresponding-
rdar://problem/27806012

Reviewed by Ryosuke Niwa.

Source/WebCore:

Call into the client in case edited state needs to be updated.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAppearanceAfterLayout):

  • loader/EmptyClients.h:
  • page/EditorClient.h:

Source/WebKit/mac:

Every time WebEditorClient::respondToChangedSelection is called, we now save
whether the last state was contentEditable. That way in
updateEditorStateAfterLayoutIfNeeded() we can assess whether or not edit-ability
has changed.

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::respondToChangedSelection):
(WebEditorClient:: updateEditorStateAfterLayoutIfEditabilityChanged):

Source/WebKit2:

Every time WebPage::editorState() is called, we now save whether the last state
was contentEditable. That way in updateEditorStateAfterLayoutIfNeeded() we can
assess whether or not edit-ability has changed.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient:: updateEditorStateAfterLayoutIfEditabilityChanged):

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState):
(WebKit::WebPage:: updateEditorStateAfterLayoutIfEditabilityChanged):
(WebKit::WebPage::didStartPageTransition):

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

This patch seems to have fixed a bug!

  • editing/secure-input/removed-password-input-expected.txt:
4:13 PM Changeset in webkit [205380] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Remove some more useless cases from FTL Capabilities
https://bugs.webkit.org/show_bug.cgi?id=161466

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-09-02
Reviewed by Geoffrey Garen.

Some cases do not make sense:
-In: Fixup only generate CellUse.
-PutByIdXXX: same.
-GetIndexedPropertyStorage: those cases are the only ones supported

by DFG. We would have crashed in SpeculativeJIT if other modes
were generated.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):

3:52 PM Changeset in webkit [205379] by Jonathan Bedard
  • 14 edits in trunk

WebKitTestRunner needs layoutTestController.setDashboardCompatibilityMode
https://bugs.webkit.org/show_bug.cgi?id=42547
Source/WebKit2:

Reviewed by Darin Adler.

Added access to setUseDashBoardCompatibilityMode for WebKit2.
Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleSetUseDashboardCompatibilityMode): Added dashboard compatiblity mode setter.

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Ditto.
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setUseDashboardCompatibilityMode): Ditto.

  • WebProcess/InjectedBundle/InjectedBundle.h: Ditto.

Tools:

Reviewed by Darin Adler.

Added JavaScript bindings and C++ implementation of setUseDashboardCompatibilityMode for the WebKit2 sTestRunner.
Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Added dashboard compatiblity mode setter.
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting): Reset dashboard compatibility mode.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setJavaScriptCanAccessClipboard): Code style changes.
(WTR::TestRunner::setPrivateBrowsingEnabled): Code style changes.
(WTR::TestRunner::setUseDashboardCompatibilityMode): Added dashboard compatiblity mode setter.
(WTR::TestRunner::setPopupBlockingEnabled): Code style changes.
(WTR::TestRunner::setAuthorAndUserStylesEnabled): Code style changes.
(WTR::TestRunner::addOriginAccessWhitelistEntry): Code style changes.

  • WebKitTestRunner/InjectedBundle/TestRunner.h: Added dashboard compatiblity mode setter.

LayoutTests:

Reviewed by Darin Adler.

The addition of setUseDashboardCompatibilityMode to the WebKit2 TestRunner means the set of tests removed from the expected failures list now pass.
Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.

  • platform/ios-simulator-wk2/TestExpectations: Changed reason test was excluded.
  • platform/wk2/TestExpectations: Remove tests which use setUseDashboardCompatibilityMode from expected failures.
3:44 PM Changeset in webkit [205378] by commit-queue@webkit.org
  • 4 edits in trunk/Source

[Mac] RetainPtr misuse, AnimationController leaks
https://bugs.webkit.org/show_bug.cgi?id=161552

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-02
Reviewed by Tim Horton.

Source/WebKit/mac:

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):

Source/WebKit2:

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):

3:42 PM Changeset in webkit [205377] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[Mac] RetainPtr misuse, DDActionContext leaks
https://bugs.webkit.org/show_bug.cgi?id=161551

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-02
Reviewed by Tim Horton.

  • Platform/mac/MenuUtilities.mm:

(WebKit::menuItemForTelephoneNumber):
(WebKit::menuForTelephoneNumber):

3:29 PM Changeset in webkit [205376] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking editing/pasteboard/5478250.html as flaky on mac-wk2.
https://bugs.webkit.org/show_bug.cgi?id=161366

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:52 PM Changeset in webkit [205375] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebKit2

Fix Mac CMake build, missing _WKRemoteWebInspectorViewController.mm

Unreviewed build fix.

  • PlatformMac.cmake:
2:50 PM Changeset in webkit [205374] by Alan Bujtas
  • 5 edits
    2 adds in trunk

ASSERTION FAILED: !m_committedWidth in WebCore::LineWidth::fitBelowFloats
https://bugs.webkit.org/show_bug.cgi?id=149462
<rdar://problem/27710841>

Reviewed by David Hyatt.

Source/WebCore:

In certain cases (multiple spans on the same line with negativ marings), the LineWidth::m_committedWidth > 0
check is not sufficient to decide if some content has already been committed to the current line.
This patch adds a flag to indicate if we ever committed to the current line.

Test: fast/text/assert-when-text-with-negative-margin-sibling-does-not-fit.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

  • rendering/line/LineWidth.h:

(WebCore::LineWidth::hasCommitted):

LayoutTests:

  • fast/text/assert-when-text-with-negative-margin-sibling-does-not-fit-expected.txt: Added.
  • fast/text/assert-when-text-with-negative-margin-sibling-does-not-fit.html: Added.
2:43 PM Changeset in webkit [205373] by mmaxfield@apple.com
  • 13 edits
    5 copies
    4 adds in trunk

[Cocoa] Distinguish between paint advances and base advances
https://bugs.webkit.org/show_bug.cgi?id=160892

Reviewed by Simon Fraser.

Source/WebCore:

This patch introduces the concept of a layout (or "base") advance which is distinct
from a painting advance. In extremely complicated scripts such as Urdu, it is common
for a glyph advance to be negative in the horizontal direction, and have large advances
in the vertical direction. In particular, in cursive scripts, the glyph placement is
only indirectly related to where the actual characters lie. Conceptually, these glyph
locations are correct for painting, but are not correct when performing width
measurements.

In many text engines, glyph shaping actually can be split into two phases: adjusting
advances, and then placing glyphs relative to those advances. The secondary glyph
placement step is much more context-sensitive than the first step. In addition, when
multiple glyphs combine to form a character, it is common for one glyph to own the
full base advance for the character, and for the other glyphs in the character to
have zero base advances. (Then, in the glyph placement phase, the other glyphs get
placed all around.)

Because of the context-insensitivity of the base advances, it is valuable to use
these for text measurement. Then, when we want to paint, we should add in the extra
origins. This dramatically improves the layout of complex fonts like Noto Nastaliq.

This patch migrates WebKit to use this two-phase shaping.

No new tests just yet, because I have to create a font which exercises the
advanced glyph placement support.

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBufferAdvance::setHeight):
(WebCore::GlyphBufferAdvance::setWidth): Deleted.

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):
(WebCore::TextRun::shouldDisableLayoutSpecificAdvances):
(WebCore::TextRun::setShouldDisableLayoutSpecificAdvances):
(WebCore::TextRun::spacingDisabled): Deleted.
(WebCore::TextRun::setCharacterScanForCodePath): Deleted.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText):

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::ComplexTextController):
(WebCore::ComplexTextController::offsetForPosition):
(WebCore::ComplexTextController::collectComplexTextRuns):
(WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic):
(WebCore::ComplexTextController::runWidthSoFarFraction):
(WebCore::ComplexTextController::advance):
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

  • platform/graphics/mac/ComplexTextController.h:

(WebCore::ComplexTextController::ComplexTextRun::create):
(WebCore::ComplexTextController::ComplexTextRun::baseAdvances):
(WebCore::ComplexTextController::ComplexTextRun::glyphOrigins):
(WebCore::ComplexTextController::useLayoutSpecificAdvances):
(WebCore::ComplexTextController::finalRoundingWidth): Deleted.
(WebCore::ComplexTextController::ComplexTextRun::advances): Deleted.

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(SOFT_LINK):
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

  • platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

Update tests. There are some expected (small) changes in metrics due to this patch.

  • platform/mac-elcapitan/css2.1/t051202-c26-psudo-nest-00-c-expected.png: Copied from LayoutTests/platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.png.
  • platform/mac-elcapitan/css2.1/t051202-c26-psudo-nest-00-c-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.txt.
  • platform/mac-elcapitan/css2.1/t1508-c527-font-00-b-expected.png: Copied from LayoutTests/platform/mac/css2.1/t1508-c527-font-00-b-expected.png.
  • platform/mac-elcapitan/css2.1/t1508-c527-font-00-b-expected.txt: Added.
  • platform/mac-elcapitan/fast/inline/absolute-positioned-inline-in-centred-block-expected.png: Copied from LayoutTests/platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.png.
  • platform/mac-elcapitan/fast/inline/absolute-positioned-inline-in-centred-block-expected.txt: Copied from LayoutTests/platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.txt.
  • platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.png:
  • platform/mac/css2.1/t051202-c26-psudo-nest-00-c-expected.txt:
  • platform/mac/css2.1/t1508-c527-font-00-b-expected.png:
  • platform/mac/css2.1/t1508-c527-font-00-b-expected.txt: Added.
  • platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.png:
  • platform/mac/fast/inline/absolute-positioned-inline-in-centred-block-expected.txt:
2:41 PM Changeset in webkit [205372] by Chris Dumez
  • 41 edits
    3 adds
    2 deletes in trunk

Unreviewed, roll out r205354 because it caused JSC test failures

Source/JavaScriptCore:

  • jsc.cpp:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::allowsAccessFrom):
(JSC::JSGlobalObject::setDebugger): Deleted.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::GlobalFuncProtoGetterFunctor::GlobalFuncProtoGetterFunctor):
(JSC::GlobalFuncProtoGetterFunctor::result):
(JSC::GlobalFuncProtoGetterFunctor::operator()):
(JSC::globalFuncProtoGetter):
(JSC::GlobalFuncProtoSetterFunctor::GlobalFuncProtoSetterFunctor):
(JSC::GlobalFuncProtoSetterFunctor::allowsAccess):
(JSC::GlobalFuncProtoSetterFunctor::operator()):
(JSC::checkProtoSetterAccessAllowed):
(JSC::globalFuncProtoSetter):

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::allowsAccessFrom):

  • runtime/JSObject.h:
  • runtime/JSProxy.cpp:
  • runtime/JSProxy.h:
  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructorGetPrototypeOfFunctor::ObjectConstructorGetPrototypeOfFunctor):
(JSC::ObjectConstructorGetPrototypeOfFunctor::result):
(JSC::ObjectConstructorGetPrototypeOfFunctor::operator()):
(JSC::objectConstructorGetPrototypeOf):
(JSC::objectConstructorSetPrototypeOf):

  • runtime/ObjectConstructor.h:
  • runtime/ReflectObject.cpp:

(JSC::reflectObjectGetPrototypeOf):
(JSC::reflectObjectSetPrototypeOf):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::shouldAllowAccessFrom):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::preventExtensions): Deleted.
(WebCore::JSDOMWindow::setLocation): Deleted.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::preventExtensions): Deleted.
(WebCore::JSLocationPrototype::putDelegate): Deleted.
(WebCore::JSLocationPrototype::defineOwnProperty): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::allowsAccessFrom):

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/IDLAttributes.txt:
  • page/DOMWindow.idl:
  • page/Location.idl:

LayoutTests:

  • fast/dom/Window/script-tests/window-custom-prototype.js: Added.
  • fast/dom/Window/window-custom-prototype-crash-expected.txt:
  • fast/dom/Window/window-custom-prototype-expected.txt: Added.
  • fast/dom/Window/window-custom-prototype.html: Added.
  • http/tests/security/cross-frame-access-object-getPrototypeOf-expected.txt:
  • http/tests/security/cross-frame-access-object-getPrototypeOf.html:
  • http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt:
  • http/tests/security/cross-frame-access-object-setPrototypeOf.html:
  • http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto.html:
  • http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-method-with-iframe-proto.html:
  • http/tests/security/xss-DENIED-non-shadowable-propterty-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-non-shadowable-propterty-with-iframe-proto.html:
  • http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto.html:
  • js/dom/setPrototypeOf-location-window-expected.txt: Removed.
  • js/dom/setPrototypeOf-location-window.html: Removed.
  • js/object-literal-shorthand-construction-expected.txt:
  • js/script-tests/object-literal-shorthand-construction.js:
  • js/script-tests/sloppy-getter-setter-global-object.js:
  • js/sloppy-getter-setter-global-object-expected.txt:
2:23 PM Changeset in webkit [205371] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix; partial roll out of r205365 to remove unintentional change in WKWebView.mm.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

1:57 PM Changeset in webkit [205370] by Joseph Pecoraro
  • 6 edits in trunk/Source/WebKit2

Web Inspector: If inspector process crashes, re-inspecting the page does not work
https://bugs.webkit.org/show_bug.cgi?id=161502
<rdar://problem/28120368>

Reviewed by Brian Burg.

This is an issue on Mac because WebInspectorProxyMac's platformDidClose
doesn't immediately get rid of the WKWebView for the inspector. This is
intended so that a quick close and reopen of Web Inspector is faster,
however in the case where the WebPage under the WKWebView crashed, we
actually should clear things instead of using the timer path. Provide
a stronger platform close handler when the inspector page crashed.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::closeForCrash):
(WebKit::webProcessDidCrash):
(WebKit::WebInspectorProxy::platformDidCloseForCrash):
Go through a stronger path when the web process crashes.
Some platforms may want to handle this differently then the user
closing a web inspector window.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformDidCloseForCrash):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformDidCloseForCrash):
These platforms do not need to do anything special.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::closeTimerFired):
Loosen this code. There is no need for it to be so strict.

(WebKit::WebInspectorProxy::platformDidCloseForCrash):
If the inspector page crashed, close our handles immediately.

1:57 PM Changeset in webkit [205369] by Joseph Pecoraro
  • 26 edits
    2 copies
    11 adds in trunk/Source

Web Inspector: Provide a way to open an inspector frontend for a remote target
https://bugs.webkit.org/show_bug.cgi?id=161515
<rdar://problem/13182127>

Reviewed by Brian Burg.

Source/WebCore:

Previously WebKit inspector frontend clients could only
create a frontend for a web page with the latest protocol.
Now it may create a frontend for a "javascript" or "web"
debuggable that may be current or an older protocol.

The frontend already supports these configurations by
checking and calling InspectorFrontendHost methods
that may or may not have existed previously:

  • debuggableType was always "web" but frontend supports "javascript"
  • inspectorBackendCommandsURLs was absent so the frontend used the most current
    • rename this to backendCommandsURL

Formalize the methods and have them delegate to the
frontend client opening the frontend.

  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::backendCommandsURL):
(WebCore::InspectorFrontendClient::debuggableType):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::localizedStringsURL):
(WebCore::InspectorFrontendHost::backendCommandsURL):
(WebCore::InspectorFrontendHost::debuggableType):

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:

Formalize and give default values to InspectorFrontentHost methods.

Source/WebInspectorUI:

  • UserInterface/Base/InspectorFrontendHostStub.js:

(WebInspector.InspectorFrontendHostStub.prototype.backendCommandsURL):
Stub new InspectorFrontendHost methods. This value causes the
frontend to load the latest protocol.

  • UserInterface/Protocol/LoadInspectorBackendCommands.js:

Use formalized backendCommandsURL, and if empty load the latest protocol.

Source/WebKit2:

Provide an interface to open a Web Inspector window/webView for a
remote debuggable. Unlike the local Web Inspector, the remote
debuggable may be either a JSContext or WebPage, and may only
support an older version of the protocol. The Inspector frontend
already supports these configurations.

This adds new RemoteWebInspector/Proxy classes that mirror the
WebInspector/Proxy classes for local inspection, but have
slightly different behavior as the inspected target is not
directly available (and may not be a web page).

The remote and local classes share a lot of inspector
frontend implementation:

  • share most of the inspector frontend host implementation
  • share much of the frontend webview/window handling
  • use an inspector process for the frontend page

But remains separate in some ways:

  • inspected target is unavailable
  • docking is never available
  • a few inspector frontend host methods are duplicated
  • some of the webview/window handling is duplicated
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h: Added.
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: Added.

(-[_WKRemoteWebInspectorViewController init]):
(-[_WKRemoteWebInspectorViewController window]):
(-[_WKRemoteWebInspectorViewController webView]):
(-[_WKRemoteWebInspectorViewController loadForDebuggableType:backendCommandsURL:]):
(-[_WKRemoteWebInspectorViewController close]):
(-[_WKRemoteWebInspectorViewController show]):
(-[_WKRemoteWebInspectorViewController sendMessageToFrontend:]):
(-[_WKRemoteWebInspectorViewController sendMessageToBackend:]):
(-[_WKRemoteWebInspectorViewController closeFromFrontend]):
The interface that may be used to open an inspector window for
a remote debuggable. There are only a few delegates to handle
sending messages to the backend and knowing if the frontend
closed itself (InspectorFrontendHost.closeWindow() or crashed).

  • UIProcess/WebInspectorUtilities.h:
  • UIProcess/WebInspectorUtilities.cpp: Added.

(WebKit::pageLevelMap):
(WebKit::inspectorLevelForPage):
(WebKit::inspectorPageGroupIdentifierForPage):
(WebKit::trackInspectorPage):
(WebKit::untrackInspectorPage):
(WebKit::inspectorProcessPool):
(WebKit::isInspectorProcessPool):
(WebKit::isInspectorPage):
Extract utilities for determining if a page contains an inspector frontend.
Previously this was part of WebInspectorProxy and subclasses but can
now be used by multiple classes.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::inspectionLevel):
(WebKit::WebInspectorProxy::invalidate):
(WebKit::WebInspectorProxy::isMainOrTestInspectorPage):
(WebKit::decidePolicyForNavigationAction):
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):
(WebKit::WebInspectorProxy::didClose):
(WebKit::pageLevelMap): Deleted.
(WebKit::WebInspectorProxy::inspectorPageGroupIdentifier): Deleted.
(WebKit::WebInspectorProxy::inspectorProcessPool): Deleted.
(WebKit::WebInspectorProxy::isInspectorProcessPool): Deleted.
(WebKit::WebInspectorProxy::isInspectorPage): Deleted.
(WebKit::isMainOrTestInspectorPage): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions):

  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Extract methods to utilities and use them.

Also address an issue where WebInspectorProxy was untracking
the wrong page. It should have been untracking the inspector
page but was untracking the inspected page.

  • UIProcess/RemoteWebInspectorProxy.cpp: Added.

(WebKit::RemoteWebInspectorProxy::RemoteWebInspectorProxy):
(WebKit::RemoteWebInspectorProxy::~RemoteWebInspectorProxy):
(WebKit::RemoteWebInspectorProxy::invalidate):
(WebKit::RemoteWebInspectorProxy::load):
(WebKit::RemoteWebInspectorProxy::closeFromBackend):
(WebKit::RemoteWebInspectorProxy::closeFromCrash):
(WebKit::RemoteWebInspectorProxy::show):
(WebKit::RemoteWebInspectorProxy::sendMessageToFrontend):
(WebKit::RemoteWebInspectorProxy::frontendDidClose):
(WebKit::RemoteWebInspectorProxy::bringToFront):
(WebKit::RemoteWebInspectorProxy::save):
(WebKit::RemoteWebInspectorProxy::append):
(WebKit::RemoteWebInspectorProxy::startWindowDrag):
(WebKit::RemoteWebInspectorProxy::openInNewTab):
(WebKit::RemoteWebInspectorProxy::sendMessageToBackend):
(WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::closeFrontendPageAndWindow):
This class behaves like WebInspectorProxy but without having a
reference to the inspected target. It communicates with
RemoteInspectorUI in an Inspector process to send and receive
frontend messages. What can't be easily shared is duplicated.

  • UIProcess/mac/RemoteWebInspectorProxyMac.mm: Added.

(-[WKRemoteWebInspectorProxyObjCAdapter initWithRemoteWebInspectorProxy:]):
(-[WKRemoteWebInspectorProxyObjCAdapter webViewWebContentProcessDidTerminate:]):
(-[WKRemoteWebInspectorProxyObjCAdapter webView:decidePolicyForNavigationAction:decisionHandler:]):
(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::platformCloseFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::platformBringToFront):
(WebKit::RemoteWebInspectorProxy::platformSave):
(WebKit::RemoteWebInspectorProxy::platformAppend):
(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab):
Platform implementation for the bits that are platform specific.
What can't be easily shared is duplicated. Ideally we will
eventually share this with WebInspectorProxyMac.

  • UIProcess/mac/WKWebInspectorWKWebView.h:
  • UIProcess/mac/WKWebInspectorWKWebView.mm: Added.

(WebKit::getWindowFrame):
(WebKit::setWindowFrame):
(WebKit::exceededDatabaseQuota):
(WebKit::runOpenPanel):
(-[WKWebInspectorWKWebView initWithFrame:configuration:]):
(-[WKWebInspectorWKWebView tag]):
Extract Mac platform code for the inspector webview from WebInspectorProxyMac.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::createFrontendConfiguration):
(WebKit::WebInspectorProxy::createFrontendWindow):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(-[WKWebInspectorWKWebView tag]): Deleted.
(WebKit::getWindowFrame): Deleted.
(WebKit::setWindowFrame): Deleted.
(WebKit::exceededDatabaseQuota): Deleted.
(WebKit::runOpenPanel): Deleted.
Extact Mac platform code to be shared for construction of a
WKWebViewConfiguration, WKWebView, and NSWindow for an inspector webview.

  • WebProcess/WebPage/RemoteWebInspectorUI.cpp: Added.

(WebKit::RemoteWebInspectorUI::create):
(WebKit::RemoteWebInspectorUI::RemoteWebInspectorUI):
(WebKit::RemoteWebInspectorUI::initialize):
(WebKit::RemoteWebInspectorUI::didSave):
(WebKit::RemoteWebInspectorUI::didAppend):
(WebKit::RemoteWebInspectorUI::sendMessageToFrontend):
(WebKit::RemoteWebInspectorUI::sendMessageToBackend):
(WebKit::RemoteWebInspectorUI::windowObjectCleared):
(WebKit::RemoteWebInspectorUI::frontendLoaded):
(WebKit::RemoteWebInspectorUI::startWindowDrag):
(WebKit::RemoteWebInspectorUI::moveWindowBy):
(WebKit::RemoteWebInspectorUI::bringToFront):
(WebKit::RemoteWebInspectorUI::closeWindow):
(WebKit::RemoteWebInspectorUI::openInNewTab):
(WebKit::RemoteWebInspectorUI::save):
(WebKit::RemoteWebInspectorUI::append):
(WebKit::RemoteWebInspectorUI::inspectedURLChanged):

  • WebProcess/WebPage/RemoteWebInspectorUI.h: Added.
  • WebProcess/WebPage/RemoteWebInspectorUI.messages.in: Added.
  • UIProcess/RemoteWebInspectorProxy.messages.in: Added.
  • UIProcess/RemoteWebInspectorProxy.mm: Added.

Inspector frontend client that knows to talk
with a RemoteWebInspectorProxy instead of a WebInspectorProxy.

  • WebProcess/WebPage/WebInspectorUI.cpp:
  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/mac/WebInspectorUIMac.mm:

(WebKit::webInspectorUILocalizedStringsURL):
(WebKit::WebInspectorUI::localizedStringsURL):
(WebKit::RemoteWebInspectorUI::localizedStringsURL):
Simplify localized string URL lookup.

  • DerivedSources.make:
  • WebKit2.xcodeproj/project.pbxproj:

New files.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::~WebPage):
(WebKit::WebPage::remoteInspectorUI):
(WebKit::WebPage::didReceiveMessage):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::isInspectorPage):
An InspectorProcess WebPage may have either a WebInspectorUI or a RemoteWebInspectorUI.

1:49 PM Changeset in webkit [205368] by hyatt@apple.com
  • 6 edits
    5 adds in trunk/Source/WebCore

Add support for media query parsing using new CSS Parser
https://bugs.webkit.org/show_bug.cgi?id=161537

Reviewed by Dean Jackson.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/MediaQueryExp.cpp:

(WebCore::featureWithValidIdent):
(WebCore::featureWithValidDensity):
(WebCore::featureWithValidPositiveLength):
(WebCore::featureWithPositiveInteger):
(WebCore::featureWithPositiveNumber):
(WebCore::featureWithZeroOrOne):
(WebCore::isFeatureValidWithIdentifier):
(WebCore::MediaQueryExpression::MediaQueryExpression):

  • css/MediaQueryExp.h:
  • css/parser/CSSParserIdioms.cpp: Added.

(WebCore::convertToASCIILowercaseInPlace):

  • css/parser/CSSParserIdioms.h:
  • css/parser/CSSParserToken.cpp:

(WebCore::convertToASCIILowercaseInPlace):

  • css/parser/MediaQueryBlockWatcher.cpp: Added.

(WebCore::MediaQueryBlockWatcher::MediaQueryBlockWatcher):
(WebCore::MediaQueryBlockWatcher::handleToken):

  • css/parser/MediaQueryBlockWatcher.h: Added.

(WebCore::MediaQueryBlockWatcher::blockLevel):

  • css/parser/MediaQueryParser.cpp: Added.

(WebCore::MediaQueryParser::parseMediaQuerySet):
(WebCore::MediaQueryParser::parseMediaCondition):
(WebCore::MediaQueryParser::MediaQueryParser):
(WebCore::MediaQueryParser::~MediaQueryParser):
(WebCore::MediaQueryParser::setStateAndRestrict):
(WebCore::MediaQueryParser::readRestrictor):
(WebCore::MediaQueryParser::readMediaNot):
(WebCore::isRestrictorOrLogicalOperator):
(WebCore::MediaQueryParser::readMediaType):
(WebCore::MediaQueryParser::commitMediaQuery):
(WebCore::MediaQueryParser::readAnd):
(WebCore::MediaQueryParser::readFeatureStart):
(WebCore::MediaQueryParser::readFeature):
(WebCore::MediaQueryParser::readFeatureColon):
(WebCore::MediaQueryParser::readFeatureValue):
(WebCore::MediaQueryParser::readFeatureEnd):
(WebCore::MediaQueryParser::skipUntilComma):
(WebCore::MediaQueryParser::skipUntilBlockEnd):
(WebCore::MediaQueryParser::done):
(WebCore::MediaQueryParser::handleBlocks):
(WebCore::MediaQueryParser::processToken):
(WebCore::MediaQueryParser::parseInternal):
(WebCore::MediaQueryData::MediaQueryData):
(WebCore::MediaQueryData::clear):
(WebCore::MediaQueryData::addExpression):
(WebCore::MediaQueryData::tryAddParserToken):
(WebCore::MediaQueryData::setMediaType):

  • css/parser/MediaQueryParser.h: Added.

(WebCore::MediaQueryData::restrictor):
(WebCore::MediaQueryData::expressions):
(WebCore::MediaQueryData::mediaType):
(WebCore::MediaQueryData::currentMediaQueryChanged):
(WebCore::MediaQueryData::setRestrictor):
(WebCore::MediaQueryData::setMediaFeature):

1:22 PM Changeset in webkit [205367] by jer.noble@apple.com
  • 3 edits in trunk/Tools

Unreviewed build fix: restore storyboard files to Xcode 7-compatability.

  • MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard:
  • MobileMiniBrowser/MobileMiniBrowserFramework/Base.lproj/Main.storyboard:
1:07 PM Changeset in webkit [205366] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline fast/mediastream/MediaStreamTrack-getSettings.html after r205348.

Unreviewed test gardening.

  • fast/mediastream/MediaStreamTrack-getSettings-expected.txt:
1:06 PM Changeset in webkit [205365] by jer.noble@apple.com
  • 33 edits in trunk/Source

Refactor WebPlaybackSessionModelMediaElement to be client based.
https://bugs.webkit.org/show_bug.cgi?id=159580

Reviewed by Eric Carlson.

Source/WebCore:

Add client callback interfaces to both WebPlaybackSessionModel and WebVideoFullscreenModel, where each object
can have multiple clients, and so the object will both store current values and also notify those clients
when the values change. After this change, there is no need to have the models know about their associated
interfaces explicitly.

  • platform/cocoa/WebPlaybackSessionInterface.h:
  • platform/cocoa/WebPlaybackSessionModel.h:

(WebCore::WebPlaybackSessionModelClient::~WebPlaybackSessionModelClient):
(WebCore::WebPlaybackSessionModelClient::durationChanged):
(WebCore::WebPlaybackSessionModelClient::currentTimeChanged):
(WebCore::WebPlaybackSessionModelClient::bufferedTimeChanged):
(WebCore::WebPlaybackSessionModelClient::rateChanged):
(WebCore::WebPlaybackSessionModelClient::seekableRangesChanged):
(WebCore::WebPlaybackSessionModelClient::canPlayFastReverseChanged):
(WebCore::WebPlaybackSessionModelClient::audioMediaSelectionOptionsChanged):
(WebCore::WebPlaybackSessionModelClient::legibleMediaSelectionOptionsChanged):
(WebCore::WebPlaybackSessionModelClient::externalPlaybackChanged):
(WebCore::WebPlaybackSessionModelClient::wirelessVideoPlaybackDisabledChanged):

  • platform/cocoa/WebPlaybackSessionModelMediaElement.h:
  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebPlaybackSessionModelMediaElement::setMediaElement):
(WebPlaybackSessionModelMediaElement::updateForEventName):
(WebPlaybackSessionModelMediaElement::addClient):
(WebPlaybackSessionModelMediaElement::removeClient):
(WebPlaybackSessionModelMediaElement::updateLegibleOptions):
(WebPlaybackSessionModelMediaElement::observedEventNames):
(WebPlaybackSessionModelMediaElement::eventNameAll):
(WebPlaybackSessionModelMediaElement::audioMediaSelectionOptions):
(WebPlaybackSessionModelMediaElement::audioMediaSelectedIndex):
(WebPlaybackSessionModelMediaElement::legibleMediaSelectedIndex):
(WebPlaybackSessionModelMediaElement::externalPlaybackEnabled):
(WebPlaybackSessionModelMediaElement::externalPlaybackTargetType):
(WebPlaybackSessionModelMediaElement::externalPlaybackLocalizedDeviceName):
(WebPlaybackSessionModelMediaElement::wirelessVideoPlaybackDisabled):
(WebPlaybackSessionModelMediaElement::setWebPlaybackSessionInterface): Deleted.

  • platform/cocoa/WebVideoFullscreenInterface.h:
  • platform/cocoa/WebVideoFullscreenModel.h:

(WebCore::WebVideoFullscreenModelClient::~WebVideoFullscreenModelClient):

  • platform/cocoa/WebVideoFullscreenModelVideoElement.h:

(WebCore::WebVideoFullscreenModelVideoElement::create):
(WebCore::WebVideoFullscreenModelVideoElement::playbackSessionModel): Deleted.

  • platform/cocoa/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::WebVideoFullscreenModelVideoElement):
(WebVideoFullscreenModelVideoElement::setVideoElement):
(WebVideoFullscreenModelVideoElement::updateForEventName):
(WebVideoFullscreenModelVideoElement::addClient):
(WebVideoFullscreenModelVideoElement::removeClient):
(WebVideoFullscreenModelVideoElement::setHasVideo):
(WebVideoFullscreenModelVideoElement::setVideoDimensions):
(WebVideoFullscreenModelVideoElement::setWebVideoFullscreenInterface): Deleted.

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController resetState]): Deleted.

  • platform/ios/WebPlaybackSessionInterfaceAVKit.h:

(WebCore::WebPlaybackSessionInterfaceAVKitClient::~WebPlaybackSessionInterfaceAVKitClient): Deleted.

  • platform/ios/WebPlaybackSessionInterfaceAVKit.mm:

(WebCore::WebPlaybackSessionInterfaceAVKit::WebPlaybackSessionInterfaceAVKit):
(WebCore::WebPlaybackSessionInterfaceAVKit::~WebPlaybackSessionInterfaceAVKit):
(WebCore::WebPlaybackSessionInterfaceAVKit::resetMediaState):
(WebCore::WebPlaybackSessionInterfaceAVKit::durationChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::currentTimeChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::bufferedTimeChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::rateChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::seekableRangesChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::canPlayFastReverseChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::audioMediaSelectionOptionsChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::legibleMediaSelectionOptionsChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::externalPlaybackChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::wirelessVideoPlaybackDisabledChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::invalidate):
(WebCore::WebPlaybackSessionInterfaceAVKit::setWebPlaybackSessionModel): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setDuration): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setCurrentTime): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setBufferedTime): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setRate): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setSeekableRanges): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setCanPlayFastReverse): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setAudioMediaSelectionOptions): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setLegibleMediaSelectionOptions): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setExternalPlayback): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::setWirelessVideoPlaybackDisabled): Deleted.
(WebCore::WebPlaybackSessionInterfaceAVKit::wirelessVideoPlaybackDisabled): Deleted.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::didSetupFullscreen):
(WebVideoFullscreenControllerContext::didExitFullscreen):
(WebVideoFullscreenControllerContext::didCleanupFullscreen):
(WebVideoFullscreenControllerContext::durationChanged):
(WebVideoFullscreenControllerContext::currentTimeChanged):
(WebVideoFullscreenControllerContext::bufferedTimeChanged):
(WebVideoFullscreenControllerContext::rateChanged):
(WebVideoFullscreenControllerContext::hasVideoChanged):
(WebVideoFullscreenControllerContext::videoDimensionsChanged):
(WebVideoFullscreenControllerContext::seekableRangesChanged):
(WebVideoFullscreenControllerContext::canPlayFastReverseChanged):
(WebVideoFullscreenControllerContext::audioMediaSelectionOptionsChanged):
(WebVideoFullscreenControllerContext::legibleMediaSelectionOptionsChanged):
(WebVideoFullscreenControllerContext::externalPlaybackChanged):
(WebVideoFullscreenControllerContext::wirelessVideoPlaybackDisabledChanged):
(WebVideoFullscreenControllerContext::addClient):
(WebVideoFullscreenControllerContext::removeClient):
(WebVideoFullscreenControllerContext::requestFullscreenMode):
(WebVideoFullscreenControllerContext::setVideoLayerFrame):
(WebVideoFullscreenControllerContext::setVideoLayerGravity):
(WebVideoFullscreenControllerContext::fullscreenModeChanged):
(WebVideoFullscreenControllerContext::isVisible):
(WebVideoFullscreenControllerContext::hasVideo):
(WebVideoFullscreenControllerContext::videoDimensions):
(WebVideoFullscreenControllerContext::play):
(WebVideoFullscreenControllerContext::pause):
(WebVideoFullscreenControllerContext::togglePlayState):
(WebVideoFullscreenControllerContext::beginScrubbing):
(WebVideoFullscreenControllerContext::endScrubbing):
(WebVideoFullscreenControllerContext::seekToTime):
(WebVideoFullscreenControllerContext::fastSeek):
(WebVideoFullscreenControllerContext::beginScanningForward):
(WebVideoFullscreenControllerContext::beginScanningBackward):
(WebVideoFullscreenControllerContext::endScanning):
(WebVideoFullscreenControllerContext::selectAudioMediaOption):
(WebVideoFullscreenControllerContext::selectLegibleMediaOption):
(WebVideoFullscreenControllerContext::duration):
(WebVideoFullscreenControllerContext::currentTime):
(WebVideoFullscreenControllerContext::bufferedTime):
(WebVideoFullscreenControllerContext::isPlaying):
(WebVideoFullscreenControllerContext::playbackRate):
(WebVideoFullscreenControllerContext::seekableRanges):
(WebVideoFullscreenControllerContext::canPlayFastReverse):
(WebVideoFullscreenControllerContext::audioMediaSelectionOptions):
(WebVideoFullscreenControllerContext::audioMediaSelectedIndex):
(WebVideoFullscreenControllerContext::legibleMediaSelectionOptions):
(WebVideoFullscreenControllerContext::legibleMediaSelectedIndex):
(WebVideoFullscreenControllerContext::externalPlaybackEnabled):
(WebVideoFullscreenControllerContext::externalPlaybackTargetType):
(WebVideoFullscreenControllerContext::externalPlaybackLocalizedDeviceName):
(WebVideoFullscreenControllerContext::wirelessVideoPlaybackDisabled):
(WebVideoFullscreenControllerContext::setUpFullscreen):
(WebVideoFullscreenControllerContext::exitFullscreen):
(WebVideoFullscreenControllerContext::requestHideAndExitFullscreen):
(WebVideoFullscreenControllerContext::resetMediaState): Deleted.
(WebVideoFullscreenControllerContext::setDuration): Deleted.
(WebVideoFullscreenControllerContext::setCurrentTime): Deleted.
(WebVideoFullscreenControllerContext::setBufferedTime): Deleted.
(WebVideoFullscreenControllerContext::setRate): Deleted.
(WebVideoFullscreenControllerContext::setVideoDimensions): Deleted.
(WebVideoFullscreenControllerContext::setSeekableRanges): Deleted.
(WebVideoFullscreenControllerContext::setCanPlayFastReverse): Deleted.
(WebVideoFullscreenControllerContext::setAudioMediaSelectionOptions): Deleted.
(WebVideoFullscreenControllerContext::setLegibleMediaSelectionOptions): Deleted.
(WebVideoFullscreenControllerContext::setExternalPlayback): Deleted.
(WebVideoFullscreenControllerContext::setWirelessVideoPlaybackDisabled): Deleted.
(WebVideoFullscreenSessionModel::play): Deleted.
(WebVideoFullscreenSessionModel::pause): Deleted.
(WebVideoFullscreenSessionModel::togglePlayState): Deleted.
(WebVideoFullscreenSessionModel::beginScrubbing): Deleted.
(WebVideoFullscreenSessionModel::endScrubbing): Deleted.
(WebVideoFullscreenSessionModel::seekToTime): Deleted.
(WebVideoFullscreenSessionModel::fastSeek): Deleted.
(WebVideoFullscreenSessionModel::beginScanningForward): Deleted.
(WebVideoFullscreenSessionModel::beginScanningBackward): Deleted.
(WebVideoFullscreenSessionModel::endScanning): Deleted.
(WebVideoFullscreenSessionModel::selectAudioMediaOption): Deleted.
(WebVideoFullscreenSessionModel::selectLegibleMediaOption): Deleted.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::~WebVideoFullscreenInterfaceAVKit):
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel):
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenChangeObserver):
(WebVideoFullscreenInterfaceAVKit::hasVideoChanged):
(WebVideoFullscreenInterfaceAVKit::videoDimensionsChanged):
(WebVideoFullscreenInterfaceAVKit::externalPlaybackChanged):
(WebVideoFullscreenInterfaceAVKit::resetMediaState): Deleted.
(WebVideoFullscreenInterfaceAVKit::setDuration): Deleted.
(WebVideoFullscreenInterfaceAVKit::setCurrentTime): Deleted.
(WebVideoFullscreenInterfaceAVKit::setBufferedTime): Deleted.
(WebVideoFullscreenInterfaceAVKit::setRate): Deleted.
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions): Deleted.
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges): Deleted.
(WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse): Deleted.
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): Deleted.
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): Deleted.
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback): Deleted.
(WebVideoFullscreenInterfaceAVKit::externalPlaybackEnabledChanged): Deleted.
(WebVideoFullscreenInterfaceAVKit::setWirelessVideoPlaybackDisabled): Deleted.
(WebVideoFullscreenInterfaceAVKit::wirelessVideoPlaybackDisabled): Deleted.

  • platform/mac/WebPlaybackSessionInterfaceMac.h:

(WebCore::WebPlaybackSessionInterfaceMacClient::~WebPlaybackSessionInterfaceMacClient): Deleted.

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::create):
(WebCore::WebPlaybackSessionInterfaceMac::WebPlaybackSessionInterfaceMac):
(WebCore::WebPlaybackSessionInterfaceMac::~WebPlaybackSessionInterfaceMac):
(WebCore::WebPlaybackSessionInterfaceMac::durationChanged):
(WebCore::WebPlaybackSessionInterfaceMac::currentTimeChanged):
(WebCore::WebPlaybackSessionInterfaceMac::rateChanged):
(WebCore::WebPlaybackSessionInterfaceMac::seekableRangesChanged):
(WebCore::WebPlaybackSessionInterfaceMac::audioMediaSelectionOptionsChanged):
(WebCore::WebPlaybackSessionInterfaceMac::legibleMediaSelectionOptionsChanged):
(WebCore::WebPlaybackSessionInterfaceMac::invalidate):
(WebCore::WebPlaybackSessionInterfaceMac::setWebPlaybackSessionModel): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::setClient): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::setDuration): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::setCurrentTime): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::setRate): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::setSeekableRanges): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::setAudioMediaSelectionOptions): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::setLegibleMediaSelectionOptions): Deleted.

  • platform/mac/WebVideoFullscreenInterfaceMac.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(WebCore::WebVideoFullscreenInterfaceMac::WebVideoFullscreenInterfaceMac):
(WebCore::WebVideoFullscreenInterfaceMac::~WebVideoFullscreenInterfaceMac):
(WebCore::WebVideoFullscreenInterfaceMac::setWebVideoFullscreenModel):
(WebCore::WebVideoFullscreenInterfaceMac::externalPlaybackChanged):
(WebCore::WebVideoFullscreenInterfaceMac::hasVideoChanged):
(WebCore::WebVideoFullscreenInterfaceMac::videoDimensionsChanged):
(WebCore::WebVideoFullscreenInterfaceMac::setDuration): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setCurrentTime): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setRate): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setSeekableRanges): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setAudioMediaSelectionOptions): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setLegibleMediaSelectionOptions): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setExternalPlayback): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setVideoDimensions): Deleted.

Source/WebKit/mac:

No longer necessary to tell the models and interfaces about each other.

  • WebView/WebView.mm:

(-[WebView _setUpPlaybackControlsManagerForMediaElement:]):
(-[WebView _clearPlaybackControlsManager]):

Source/WebKit2:

Adopt the changes made in the WebPlaybackSessionModel,Interface and WebVideoFullscreenModel,Interface
in the WebPlaybackSessionManager,Proxy classes.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]): Deleted.

  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:

(WebKit::WebPlaybackSessionModelContext::addClient):
(WebKit::WebPlaybackSessionModelContext::removeClient):
(WebKit::WebPlaybackSessionModelContext::setDuration):
(WebKit::WebPlaybackSessionModelContext::setCurrentTime):
(WebKit::WebPlaybackSessionModelContext::setBufferedTime):
(WebKit::WebPlaybackSessionModelContext::setRate):
(WebKit::WebPlaybackSessionModelContext::setSeekableRanges):
(WebKit::WebPlaybackSessionModelContext::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionModelContext::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionModelContext::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionModelContext::setExternalPlayback):
(WebKit::WebPlaybackSessionModelContext::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::WebPlaybackSessionManagerProxy::removeClientForContext):
(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.messages.in:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenModelContext::addClient):
(WebKit::WebVideoFullscreenModelContext::removeClient):
(WebKit::WebVideoFullscreenManagerProxy::setHasVideo):
(WebKit::WebVideoFullscreenManagerProxy::setVideoDimensions):

  • WebProcess/cocoa/WebPlaybackSessionManager.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionInterfaceContext::durationChanged):
(WebKit::WebPlaybackSessionInterfaceContext::currentTimeChanged):
(WebKit::WebPlaybackSessionInterfaceContext::bufferedTimeChanged):
(WebKit::WebPlaybackSessionInterfaceContext::rateChanged):
(WebKit::WebPlaybackSessionInterfaceContext::seekableRangesChanged):
(WebKit::WebPlaybackSessionInterfaceContext::canPlayFastReverseChanged):
(WebKit::WebPlaybackSessionInterfaceContext::audioMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionInterfaceContext::legibleMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionInterfaceContext::externalPlaybackChanged):
(WebKit::WebPlaybackSessionInterfaceContext::wirelessVideoPlaybackDisabledChanged):
(WebKit::WebPlaybackSessionManager::~WebPlaybackSessionManager):
(WebKit::WebPlaybackSessionManager::createModelAndInterface):
(WebKit::WebPlaybackSessionManager::removeContext):
(WebKit::WebPlaybackSessionManager::durationChanged):
(WebKit::WebPlaybackSessionManager::currentTimeChanged):
(WebKit::WebPlaybackSessionManager::bufferedTimeChanged):
(WebKit::WebPlaybackSessionManager::rateChanged):
(WebKit::WebPlaybackSessionManager::seekableRangesChanged):
(WebKit::WebPlaybackSessionManager::canPlayFastReverseChanged):
(WebKit::WebPlaybackSessionManager::audioMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManager::legibleMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManager::externalPlaybackChanged):
(WebKit::WebPlaybackSessionManager::wirelessVideoPlaybackDisabledChanged):
(WebKit::WebPlaybackSessionInterfaceContext::setDuration): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setCurrentTime): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setBufferedTime): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setRate): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setSeekableRanges): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setCanPlayFastReverse): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setAudioMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setLegibleMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setExternalPlayback): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setWirelessVideoPlaybackDisabled): Deleted.
(WebKit::WebPlaybackSessionManager::setDuration): Deleted.
(WebKit::WebPlaybackSessionManager::setCurrentTime): Deleted.
(WebKit::WebPlaybackSessionManager::setBufferedTime): Deleted.
(WebKit::WebPlaybackSessionManager::setRate): Deleted.
(WebKit::WebPlaybackSessionManager::setSeekableRanges): Deleted.
(WebKit::WebPlaybackSessionManager::setCanPlayFastReverse): Deleted.
(WebKit::WebPlaybackSessionManager::setAudioMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionManager::setLegibleMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionManager::setExternalPlayback): Deleted.
(WebKit::WebPlaybackSessionManager::setWirelessVideoPlaybackDisabled): Deleted.

  • WebProcess/cocoa/WebVideoFullscreenManager.h:

(WebKit::WebVideoFullscreenInterfaceContext::create):

  • WebProcess/cocoa/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenInterfaceContext::WebVideoFullscreenInterfaceContext):
(WebKit::WebVideoFullscreenInterfaceContext::hasVideoChanged):
(WebKit::WebVideoFullscreenInterfaceContext::videoDimensionsChanged):
(WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager):
(WebKit::WebVideoFullscreenManager::createModelAndInterface):
(WebKit::WebVideoFullscreenManager::removeContext):
(WebKit::WebVideoFullscreenManager::hasVideoChanged):
(WebKit::WebVideoFullscreenManager::videoDimensionsChanged):
(WebKit::WebVideoFullscreenInterfaceContext::resetMediaState): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setDuration): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setCurrentTime): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setBufferedTime): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setRate): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setSeekableRanges): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setCanPlayFastReverse): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setAudioMediaSelectionOptions): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setLegibleMediaSelectionOptions): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setExternalPlayback): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setWirelessVideoPlaybackDisabled): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoDimensions): Deleted.

12:49 PM Changeset in webkit [205364] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

Register usage optimization in mathIC when LHS and RHS are constants isn't configured correctly
https://bugs.webkit.org/show_bug.cgi?id=160802

Patch by Caio Lima <Caio Lima> on 2016-09-02
Reviewed by Saam Barati.

This patch is fixing a broken mechanism of MathIC that avoids allocate
a register to LHS or RHS if one of these operands are proven as valid
constant for JIT*Generator. In previous implementation, even if the
JIT*Generator was not using an operand register because it was proven as a
constant, compileMathIC and emitICFast were allocating a register for
it. This was broken because mathIC->isLeftOperandValidConstant and
mathIC->isLeftOperandValidConstant were being called before its Generator be
properly initialized. We changed this mechanism to enable Generators write
their validConstant rules using static methods isLeftOperandValidConstant(SnippetOperand)
and isRightOperandValidConstant(SnippetOperand).

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileMathIC):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):
(JSC::JITAddGenerator::isLeftOperandValidConstant):
(JSC::JITAddGenerator::isRightOperandValidConstant):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitMathICFast):

  • jit/JITMathIC.h:
  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):
(JSC::JITMulGenerator::isLeftOperandValidConstant):
(JSC::JITMulGenerator::isRightOperandValidConstant):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::isLeftOperandValidConstant):
(JSC::JITSubGenerator::isRightOperandValidConstant):

12:42 PM Changeset in webkit [205363] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r205329): Two API tests time out on iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=161542

Reviewed by Brady Eidson.

  • TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:

(createAnimatedResizeWebView):
(createFirstVisuallyNonEmptyWatchingNavigationDelegate):
(TEST):
(animatedResizeWebView): Deleted.
The navigation delegate was being stored in a local and went out of scope
before the test was over. Keep it around, instead.

12:39 PM Changeset in webkit [205362] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

bitwise_cast infinite loops if called from the default constructor in ToType
https://bugs.webkit.org/show_bug.cgi?id=161365

Patch by JF Bastien <jfbastien@apple.com> on 2016-09-02
Reviewed by Saam Barati.

  • wtf/StdLibExtras.h:

(WTF::bitwise_cast): use aggregate initialization to avoid ctor

12:17 PM Changeset in webkit [205361] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

GetByValWithThis: fix opInfo in DFG creation
https://bugs.webkit.org/show_bug.cgi?id=161541

Patch by JF Bastien <jfbastien@apple.com> on 2016-09-02
Reviewed by Saam Barati.

super-get-by-val-with-this-monomorphic might be 1.0148x faster after this change.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock): fix OpInfo

12:14 PM Changeset in webkit [205360] by Chris Dumez
  • 10 edits
    1 delete in trunk

REGRESSION (r204839): [mac-wk1] LayoutTest webgl/max-active-contexts-webglcontextlost-prevent-default.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=161205

Reviewed by Geoffrey Garen.

Source/WebCore:

Fixes several issues:

  • Add missing isReachableFromOpaqueRoots() implementation for JSWebGLRenderingContextBase. It used to rely on the one from its JSCanvasRenderingContext base. However, that base was dropped in r204839.
  • Update JSWebGLRenderingContextBase::visitAdditionalChildren() to add its canvas object as opaque root as well. This used to be taken care of by JSCanvasRenderingContext::visitAdditionalChildren() but it got dropped in r204839.

This also refactors the code a bit for clarity.

No new tests, unskipped existing test.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCanvasRenderingContext.h: Removed.
  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::getCSSCanvasContext):

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::getContext):

  • bindings/js/JSWebGLRenderingContextBaseCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSWebGLRenderingContextBaseOwner::isReachableFromOpaqueRoots):
(WebCore::JSWebGLRenderingContextBase::visitAdditionalChildren):

  • html/canvas/CanvasRenderingContext.h:

(WebCore::CanvasRenderingContext::is3d):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLRenderingContextBase.idl:

LayoutTests:

Unskip test case now that it is no longer flaky.

  • platform/mac-wk1/TestExpectations:
12:10 PM Changeset in webkit [205359] by Chris Dumez
  • 11 edits
    2 adds in trunk

Object.preventExtensions() should throw cross-origin
https://bugs.webkit.org/show_bug.cgi?id=161486

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Update JSProxy to forward preventExtensions() calls to its target.

  • runtime/JSProxy.cpp:

(JSC::JSProxy::preventExtensions):

  • runtime/JSProxy.h:

Source/WebCore:

Object.preventExtensions() should throw cross-origin:

Firefox and Chrome both throw in the cross-origin case. Firefox also throws
a TypeError in the same-origin case for Window, as per the specification.
However, Firefox does not seem to throw yet in the same-origin case for
Location yet.

Test: http/tests/security/preventExtensions-window-location.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::preventExtensions):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::preventExtensions):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/IDLAttributes.txt:
  • page/DOMWindow.idl:
  • page/Location.idl:

LayoutTests:

Add layout test coverage. We have a few failures in the same origin case
because we don't fully match the specification yet:

  • Object.preventExtensions() should throw a TypeError. However, our implementation currently does not throw if PreventExtensions? returns false.
  • We do not ignore calls to Object.preventExtensions() for the Location object yet because other browsers do not seem to either.
  • http/tests/security/preventExtensions-window-location-expected.txt: Added.
  • http/tests/security/preventExtensions-window-location.html: Added.
12:00 PM Changeset in webkit [205358] by Chris Dumez
  • 8 edits
    2 adds in trunk

Object.defineProperty() should throw cross-origin
https://bugs.webkit.org/show_bug.cgi?id=161460

Reviewed by Geoffrey Garen.

Source/WebCore:

Object.defineProperty() should throw cross-origin to match Firefox and
Chrome.

The specification is in the process of being updated to match the
behavior of browsers.

Test: http/tests/security/window-defineProperty-crossOrigin.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::defineOwnProperty):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::defineOwnProperty):

LayoutTests:

Add test coverage.

  • http/tests/security/cross-frame-access-object-prototype-expected.txt:
  • http/tests/security/location-cross-origin-expected.txt:
  • http/tests/security/location-cross-origin.html:
  • http/tests/security/window-defineProperty-crossOrigin-expected.txt: Added.
  • http/tests/security/window-defineProperty-crossOrigin.html: Added.
  • http/tests/security/xss-DENIED-defineProperty-expected.txt:
11:14 AM Changeset in webkit [205357] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Weak link the GameController.framework on macOS but differently than before.

Reviewed by Dan Bernstein.

  • Configurations/WebCore.xcconfig:
11:06 AM Changeset in webkit [205356] by bshafiei@apple.com
  • 2 edits in tags/Safari-603.1.4.1/Source/WebCore

Merged r205347. rdar://problem/28127212

11:05 AM Changeset in webkit [205355] by bshafiei@apple.com
  • 12 edits in tags/Safari-603.1.4.1

Merged r205333. rdar://problem/28129826

11:04 AM Changeset in webkit [205354] by Chris Dumez
  • 41 edits
    2 adds
    3 deletes in trunk

Align proto getter / setter behavior with other browsers
https://bugs.webkit.org/show_bug.cgi?id=161455

Reviewed by Mark Lam.

Source/JavaScriptCore:

Drop allowsAccessFrom from the methodTable and delegate cross-origin
checking to the DOM bindings for SetPrototypeOf? / GetPrototypeOf?.
This is more consistent with other operations (e.g. GetOwnProperty?).

  • jsc.cpp:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:
  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncProtoGetter):
(JSC::globalFuncProtoSetter):
(JSC::globalFuncBuiltinLog): Deleted.

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/JSObject.h:

(JSC::JSObject::getArrayLength): Deleted.

  • runtime/JSProxy.cpp:

(JSC::JSProxy::setPrototype):
(JSC::JSProxy::getPrototype):

  • runtime/JSProxy.h:
  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetPrototypeOf):
(JSC::objectConstructorSetPrototypeOf):
(JSC::objectConstructorGetOwnPropertyDescriptor): Deleted.
(JSC::objectConstructorGetOwnPropertyDescriptors): Deleted.

  • runtime/ObjectConstructor.h:
  • runtime/ReflectObject.cpp:

(JSC::reflectObjectGetPrototypeOf):
(JSC::reflectObjectSetPrototypeOf):

  • runtime/JSObject.cpp:

(JSC::JSObject::setPrototypeWithCycleCheck):
Comment out check added in r197648. This check was added to match
the latest EcmaScript spec:

This check allowed for Prototype? chain cycles if the prototype
chain includes objects that do not use the ordinary object definitions
for GetPrototypeOf? and SetPrototypeOf?.
The issue is that the rest of our code base does not properly handle
such cycles and we can end up in infinite loops. This became obvious
because this patch updates Window / Location so that they no longer
use the default GetPrototypeOf? / SetPrototypeOf?. If I do not
comment out this check, I get an infinite loop in
Structure::anyObjectInChainMayInterceptIndexedAccesses(), which is
called from JSObject::setPrototypeDirect(), when running the following
layout test:

  • html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html

I filed https://bugs.webkit.org/show_bug.cgi?id=161534 to track this
issue.

Source/WebCore:

Align cross-origin proto getter / setter behavior with other
browsers and the specification:

SetPrototypeOf? should throw a TypeError:

GetPrototypeOf? should return null cross-origin:

Test: js/dom/setPrototypeOf-location-window.html

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::JSDOMWindowBase): Deleted.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::setPrototype):
(WebCore::JSDOMWindow::getPrototype):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::setPrototype):
(WebCore::JSLocation::getPrototype):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::supportsRichSourceInfo): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/IDLAttributes.txt:
  • page/DOMWindow.idl:
  • page/Location.idl:

LayoutTests:

Add layout test coverage and update a few existing test to reflect
behavior change.

  • http/tests/security/cross-frame-access-object-getPrototypeOf-expected.txt:
  • http/tests/security/cross-frame-access-object-getPrototypeOf.html:
  • http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt:
  • http/tests/security/cross-frame-access-object-setPrototypeOf.html:
  • http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto.html:
  • http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-method-with-iframe-proto.html:
  • http/tests/security/xss-DENIED-non-shadowable-propterty-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-non-shadowable-propterty-with-iframe-proto.html:
  • http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto.html:
  • js/dom/setPrototypeOf-location-window-expected.txt: Added.
  • js/dom/setPrototypeOf-location-window.html: Added.
11:01 AM Changeset in webkit [205353] by jer.noble@apple.com
  • 9 edits
    2 copies
    7 moves
    9 adds
    1 delete in trunk/Tools

Refactor MobileMiniBrowser into an application framework to allow external XCTesting
https://bugs.webkit.org/show_bug.cgi?id=161462

Reviewed by Eric Carlson.

XCTest targets need to be in the same project as the application which they're testing. To facilitate
having external projects with XCTest targets, move the application's implementation into a framework
that can be included with a bare-bones application shell for testing.

Simultaneously, add the ability to load files from within the new framework's bundle by using a
'bundle:/' URL scheme. Update the tests to use this new bundle URL and remove the dependency on
an external server for testing.

  • MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj:
  • MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard:
  • MobileMiniBrowser/MobileMiniBrowser/Info.plist:
  • MobileMiniBrowser/MobileMiniBrowser/main.m:
  • MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h.
  • MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.m.

(-[AppDelegate application:didFinishLaunchingWithOptions:]): Manually instantiate the main view

controller from the framework's bundle.

  • MobileMiniBrowser/MobileMiniBrowserFramework/Assets.xcassets/AppIcon.appiconset/Contents.json: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/Assets.xcassets/AppIcon.appiconset/Contents.json.
  • MobileMiniBrowser/MobileMiniBrowserFramework/Base.lproj/Main.storyboard: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/Main.storyboard.
  • MobileMiniBrowser/MobileMiniBrowserFramework/Info.plist: Added.
  • MobileMiniBrowser/MobileMiniBrowserFramework/MobileMiniBrowser.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h.
  • MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.h.
  • MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.m.
  • MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.h.
  • MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.m.

(+[NSURL bundleURLForFileURL:bundle:]): Add utility method.
(+[NSURL
fileURLForBundleURL:bundle:]): Ditto.
(-[WebViewController navigateTo:]): Support loading "bundle:/" URLs which are really just "file:" URLs

pointing to the framework's resources directory.

(-[WebViewController observeValueForKeyPath:ofObject:change:context:]): Ditto.

  • MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m:

(-[MobileMiniBrowserUITests testBasicVideoPlayback]):

11:00 AM Changeset in webkit [205352] by bshafiei@apple.com
  • 5 edits in tags/Safari-603.1.4.1/Source

Versioning.

10:59 AM Changeset in webkit [205351] by Jonathan Bedard
  • 5 edits in trunk/Tools

Fix --no-sample-on-timeout command line argument
https://bugs.webkit.org/show_bug.cgi?id=161507

Reviewed by Alexey Proskuryakov.

This patch fixes the —no-sample-on-timeout flag and correctly names spindumps as spindump.txt.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args): Fixed —-no-sample-on-timeout.

  • Scripts/webkitpy/port/apple.py:

(ApplePort.sample_process): Use correct file name.
(ApplePort.spindump_file_path): Spindump and sample file names are different.

  • Scripts/webkitpy/port/driver.py:

(Driver._check_for_driver_timeout): Check “sample_on_timeout” flag.

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest.test_spindump): Modified for correct filename.

10:58 AM Changeset in webkit [205350] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.4.1

New tag.

10:46 AM Changeset in webkit [205349] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: NetworkTimelineOverviewGraph.MinimumBarPaddingTime is undefined
https://bugs.webkit.org/show_bug.cgi?id=161510

Patch by Johan K. Jensen <johan_jensen@apple.com> on 2016-09-02
Reviewed by Brian Burg.

  • UserInterface/Views/NetworkTimelineOverviewGraph.js:

(WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded):
(WebInspector.NetworkTimelineOverviewGraph):
Calculate the minimumBarPaddingTime in similar ways to TimelineRecordBar,
by using MinimumWidthPixel, MinimumMarginPixel and MinimumDurationPerPixel as the secondsPerPixel value.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
Make Minimum/MaximumDurationPerPixel public properties.

10:36 AM Changeset in webkit [205348] by eric.carlson@apple.com
  • 31 edits
    6 adds in trunk

[MediaStream] applyConstraints pt. 1 - mandatory constraints
https://bugs.webkit.org/show_bug.cgi?id=161469
<rdar://problem/28109325>

Reviewed by Jer Noble.

Source/WebCore:

Tests: fast/mediastream/apply-constraints-audio.html

fast/mediastream/apply-constraints-video.html

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack): Initialize the weak pointer factory.
(WebCore::MediaStreamTrack::applyConstraints): Make it work.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:
  • WebCore.xcodeproj/project.pbxproj: Add JSMediaDevicesCustom.h.
  • bindings/js/JSMediaDevicesCustom.cpp:

(WebCore::createStringConstraint): Add name parameter.
(WebCore::createBooleanConstraint): Ditto.
(WebCore::createDoubleConstraint): Ditto.
(WebCore::createIntConstraint): Ditto.
(WebCore::parseMediaTrackConstraintSetForKey): Drop type parameter because we don't need to

filter by source media type.

(WebCore::parseAdvancedConstraints): Ditto.
(WebCore::parseMediaConstraintsDictionary): Renamed from parseConstraints.
(WebCore::JSMediaDevices::getUserMedia): Don't throw exceptions, always return a promise.
(WebCore::parseConstraints): Deleted.

  • bindings/js/JSMediaDevicesCustom.h: Added.
  • bindings/js/JSMediaStreamTrackCustom.cpp:

(WebCore::JSMediaStreamTrack::getSettings): Don't include aspect ratio if the value is 0.
(WebCore::capabilityValue): asULong -> asInt.
(WebCore::JSMediaStreamTrack::applyConstraints): New.
(WebCore::JSMediaStreamTrack::getConstraints): New.

  • bindings/js/WebCoreBuiltinNames.h: Add "mediaStreamTrackConstraints".
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setSrcObject): Drive by fix: don't call DOMURL::createPublicURL(null).

  • platform/mediastream/MediaConstraints.cpp:

(WebCore::MediaConstraint::create): Pass name to constructors.
(WebCore::StringConstraint::find): New.

  • platform/mediastream/MediaConstraints.h:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::applyConstraints): Add callback parameters.

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::RealtimeMediaSource): Initialize weak pointer factory.
(WebCore::RealtimeMediaSource::settingsDidChange): Don't call observers immediately so we can

coalesce multiple changes in the same runloop cycle.

(WebCore::RealtimeMediaSource::supportsConstraint): New.
(WebCore::value): Return the most appropriate value from a numeric constraint.
(WebCore::RealtimeMediaSource::applyConstraint): New, apply one constraint.
(WebCore::RealtimeMediaSource::applyConstraints): New, validate and apply constraints.
(WebCore::RealtimeMediaSource::setWidth): New.
(WebCore::RealtimeMediaSource::setHeight): New.
(WebCore::RealtimeMediaSource::setFrameRate): New.
(WebCore::RealtimeMediaSource::setAspectRatio): New.
(WebCore::RealtimeMediaSource::setFacingMode): New.
(WebCore::RealtimeMediaSource::setVolume): New.
(WebCore::RealtimeMediaSource::setSampleRate): New.
(WebCore::RealtimeMediaSource::setSampleSize): New.
(WebCore::RealtimeMediaSource::setEchoCancellation) New.:
(WebCore::RealtimeMediaSource::scheduleDeferredTask): New.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceCapabilities.h:

(WebCore::CapabilityValueOrRange::CapabilityValueOrRange): "unsigned long" -> "int"

  • platform/mediastream/RealtimeMediaSourceSettings.cpp:

(WebCore::userFacing): New.
(WebCore::environmentFacing): New.
(WebCore::leftFacing): New.
(WebCore::rightFacing): New.
(WebCore::RealtimeMediaSourceSettings::facingMode):
(WebCore::RealtimeMediaSourceSettings::videoFacingModeEnum):

  • platform/mediastream/RealtimeMediaSourceSettings.h:
  • platform/mediastream/mac/AVAudioCaptureSource.mm:

(WebCore::AVAudioCaptureSource::initializeCapabilities): Volume range is 0.0 .. 1.0.

  • platform/mediastream/mac/AVMediaCaptureSource.h:

(WebCore::AVMediaCaptureSource::createWeakPtr): Deleted.

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::AVMediaCaptureSource): Don't need the weak ptr factory, it is

in the base class.

(WebCore::AVMediaCaptureSource::scheduleDeferredTask): Deleted.

  • platform/mediastream/mac/AVVideoCaptureSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::applySize): New.
(WebCore::AVVideoCaptureSource::applyFrameRate): New.
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::setFrameRateConstraint): Deleted.
(WebCore::AVVideoCaptureSource::applyConstraints): Deleted.

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::updateSettings): Set volume and echoCancellation to the

current values.

(WebCore::MockRealtimeAudioSource::initializeCapabilities): Volume takes a float, not an int.

  • platform/mock/MockRealtimeAudioSource.h:
  • platform/mock/MockRealtimeMediaSource.cpp: Minor cleanup.
  • platform/mock/MockRealtimeMediaSource.h:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Initialize frame rate.
(WebCore::MockRealtimeVideoSource::startProducingData): m_size -> size().
(WebCore::MockRealtimeVideoSource::updateSettings): Use accessors because instance variables

have been moved to the base class.

(WebCore::MockRealtimeVideoSource::initializeCapabilities): Ditto.
(WebCore::MockRealtimeVideoSource::applyFrameRate): New.
(WebCore::MockRealtimeVideoSource::applySize):
(WebCore::MockRealtimeVideoSource::drawAnimation):
(WebCore::MockRealtimeVideoSource::drawBoxes):
(WebCore::MockRealtimeVideoSource::drawText):
(WebCore::MockRealtimeVideoSource::generateFrame):
(WebCore::MockRealtimeVideoSource::imageBuffer):
(WebCore::MockRealtimeVideoSource::setFrameRate): Deleted.
(WebCore::MockRealtimeVideoSource::setSize): Deleted.

  • platform/mock/MockRealtimeVideoSource.h:

(WebCore::MockRealtimeVideoSource::size): Deleted.

LayoutTests:

  • fast/mediastream/apply-constraints-audio-expected.txt: Added.
  • fast/mediastream/apply-constraints-audio.html: Added.
  • fast/mediastream/apply-constraints-video-expected.txt: Added.
  • fast/mediastream/apply-constraints-video.html: Added.
  • fast/mediastream/resources/apply-constraints-utils.js: Added.
10:36 AM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
10:28 AM Changeset in webkit [205347] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Weak link the GameController.framework on macOS.

Reviewed by Tim Horton.

  • Configurations/WebCore.xcconfig:
9:26 AM Changeset in webkit [205346] by commit-queue@webkit.org
  • 17 edits in trunk/Source/WebCore

Unreviewed, rolling out r205344.
https://bugs.webkit.org/show_bug.cgi?id=161533

Hitting assertions under CachedResource::removeClient in a few
tests (Requested by anttik on #webkit).

Reverted changeset:

"Reverse ownership relation of StyleCachedImage and
CSSImageValue"
https://bugs.webkit.org/show_bug.cgi?id=161447
http://trac.webkit.org/changeset/205344

8:54 AM Changeset in webkit [205345] by Jonathan Bedard
  • 2 edits in trunk/Tools

Unreviewed: moved myself to the reviewers list.

  • Scripts/webkitpy/common/config/contributors.json:
7:27 AM Changeset in webkit [205344] by Antti Koivisto
  • 17 edits in trunk/Source/WebCore

Reverse ownership relation of StyleCachedImage and CSSImageValue
https://bugs.webkit.org/show_bug.cgi?id=161447

Reviewed by Andreas Kling.

Currently StyleCachedImage (which represents an image in RenderStyle) has a weak ref to the
underlying CSSImageValue/CSSImageSetValue which actually owns it. This is awkwards especially since
StyleGeneratedImage, the other StyleImage subclass has reversed relationship where it refs
the underlying CSSImageGeneratorValue.

This patch makes StyleCachedImage similar to StyleGeneratedImage. StyleCachedImage now refs the
underlying CSSImageValue/CSSImageSetValue. CSSImageValues no longer need to know about StyleCachedImage.
Instead they reference CachedImages (memory cache objects) directly. StyleCachedImage instances are now
conceptually unique to RenderStyle instances. Actual resources are shared as before by sharing CachedImages.

  • css/CSSCursorImageValue.cpp:

(WebCore::CSSCursorImageValue::loadImage):
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::styleImage): Deleted.

  • css/CSSCursorImageValue.h:
  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue):

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::~CSSImageSetValue):
(WebCore::CSSImageSetValue::loadBestFitImage):
(WebCore::CSSImageSetValue::traverseSubresources):
(WebCore::CSSImageSetValue::styleImage): Deleted.

  • css/CSSImageSetValue.h:
  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::CSSImageValue):
(WebCore::CSSImageValue::~CSSImageValue):
(WebCore::CSSImageValue::isPending):
(WebCore::CSSImageValue::loadImage):
(WebCore::CSSImageValue::traverseSubresources):
(WebCore::CSSImageValue::knownToBeOpaque):
(WebCore::CSSImageValue::styleImage): Deleted.

  • css/CSSImageValue.h:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueContent):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::styleCachedImageFromValue):
(WebCore::StyleResolver::styleGeneratedImageFromValue):
(WebCore::StyleResolver::cachedOrPendingFromValue): Deleted.
(WebCore::StyleResolver::generatedOrPendingFromValue): Deleted.
(WebCore::StyleResolver::setOrPendingFromValue): Deleted.
(WebCore::StyleResolver::cursorOrPendingFromValue): Deleted.

  • css/StyleResolver.h:
  • editing/TextIterator.cpp:

(WebCore::fullyClipsContents):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::retrieveResourcesForProperties):

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::imagesIdentical):

Compare data equality instead of pointer equality for StyleImages (since StyleImages are no longer shared).

(WebCore::layerImagesIdentical): Deleted.

  • rendering/style/StyleCachedImage.cpp:

(WebCore::StyleCachedImage::StyleCachedImage):
(WebCore::StyleCachedImage::~StyleCachedImage):
(WebCore::StyleCachedImage::cachedImage):
(WebCore::StyleCachedImage::cssValue):
(WebCore::StyleCachedImage::canRender):
(WebCore::StyleCachedImage::isPending):
(WebCore::StyleCachedImage::isLoaded):
(WebCore::StyleCachedImage::errorOccurred):
(WebCore::StyleCachedImage::imageSize):
(WebCore::StyleCachedImage::imageHasRelativeWidth):
(WebCore::StyleCachedImage::imageHasRelativeHeight):
(WebCore::StyleCachedImage::computeIntrinsicDimensions):
(WebCore::StyleCachedImage::usesImageContainerSize):
(WebCore::StyleCachedImage::setContainerSizeForRenderer):
(WebCore::StyleCachedImage::addClient):
(WebCore::StyleCachedImage::removeClient):
(WebCore::StyleCachedImage::image):
(WebCore::StyleCachedImage::knownToBeOpaque):
(WebCore::StyleCachedImage::setCachedImage): Deleted.

  • rendering/style/StyleCachedImage.h:
1:54 AM Changeset in webkit [205343] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[GTK] Fix compiler warning in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=161529

We were missing a return statement in decidePermissionRequest() and
also there was unused variable in browserWindowConstructed().

Patch by Tomas Popela <tpopela@redhat.com> on 2016-09-02
Reviewed by Carlos Garcia Campos.

  • MiniBrowser/gtk/BrowserTab.c:

(decidePermissionRequest):

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowConstructed):

12:23 AM Changeset in webkit [205342] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

Fix GObject bindings build breakage when compiling with ENABLE_USER_TIMING disabled.

Rubber-stamped by Carlos Garcia Campos.

Add additional ENABLE(USER_TIMING) build guards to WebKitDOMPerformance bindings,
avoiding build errors when building with that feature disabled. Previously this
wasn't a problem because the four amended binding functions weren't generated
when the feature was disabled due to the similar use of guards in the Performance.idl
file.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformance.cpp:

(webkit_dom_performance_webkit_mark):
(webkit_dom_performance_webkit_clear_marks):
(webkit_dom_performance_webkit_measure):
(webkit_dom_performance_webkit_clear_measures):

12:17 AM Changeset in webkit [205341] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed GTK+ build fix when compiling with Clang.

  • WebProcess/WebPage/gtk/AcceleratedSurface.cpp: Include WebPage.h.
Note: See TracTimeline for information about the timeline view.