Timeline
Sep 5, 2016:
- 10:57 PM Changeset in webkit [205470] by
-
- 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
-
- 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
-
- 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:
- TestExpectations: Updated to expect success instead of failure for the
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
-
- 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
-
- 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
-
- 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
-
- 53 edits17 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
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix cloop build.
- bytecode/SuperSampler.cpp:
- 6:02 PM Changeset in webkit [205462] by
-
- 291 edits23 adds1 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 14 edits1 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
- (diff)
- 9:42 AM Changeset in webkit [205454] by
-
- 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
- (diff)
- 8:07 AM WebKitGTK/Dependencies edited by
- (diff)
- 7:34 AM Changeset in webkit [205453] by
-
- 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
-
- 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
-
- 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
-
- 53 edits17 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
-
- 1 copy in releases/WebKitGTK/webkit-2.12.5
WebKitGTK+ 2.12.5
- 3:31 AM Changeset in webkit [205448] by
-
- 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
-
- 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
-
- 2 edits3 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
- (diff)
- 2:35 AM Changeset in webkit [205445] by
-
- 3 edits2 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
-
- 3 edits2 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
-
- 5 edits2 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
-
- 5 edits4 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
-
- 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
-
- 3 edits2 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
-
- 4 edits2 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
-
- 5 edits2 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
-
- 3 edits2 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
-
- 3 edits2 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
-
- 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
-
- 3 edits2 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
- (diff)
- 8:13 PM Changeset in webkit [205423] by
-
- 5 edits1 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 16 edits1 move3 adds5 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