⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Apr 3, 2016:

10:26 PM Changeset in webkit [198995] by ggaren@apple.com
  • 13 edits in trunk/Source/bmalloc

bmalloc: segregate small and large objects again, and allocate more objects on the small path
https://bugs.webkit.org/show_bug.cgi?id=156152

Reviewed by Sam Weinig.

Microbenchmark data suggested that it was a good idea for small and large
objects to share memory. But r198675 did not improve memory use in
full browser benchmarks.

This patch reverts to segregating small and large objects -- but without
going back to doubled VM usage -- in order to capture a few benefits:

(*) Small pages fragment the large heap. Separating them out saves a lot
of memory in our worst case fragmentation recording:

nimlang 276,076kB 209,636kB 1.32x smaller

(*) Small objects are common enough that even their slow paths benefit
from simpler code:

Execution Time:

...
facebook 234ms 216ms 1.08x faster
reddit 114ms 108ms
1.06x faster
flickr 118ms 111ms 1.06x faster
theverge 146ms 140ms
1.04x faster
...
<arithmetic mean> 107ms 102ms 1.04x faster

(*) We can use less metadata:

Memory at End:

...
list_allocate 460kB 384kB 1.2x smaller
tree_allocate 492kB 424kB
1.16x smaller
tree_churn 480kB 404kB 1.19x smaller
fragment 532kB 452kB
1.18x smaller
fragment_iterate 712kB 588kB 1.21x smaller
medium 15,152kB 11,796kB
1.28x smaller
big 15,044kB 10,976kB 1.37x smaller
...
<arithmetic mean> 7,724kB 7,190kB
1.07x smaller

This patch also takes advantage of our support for varying the page size
at runtime by allocating more objects on the small object path:

medium 178ms 150ms 1.19x faster

Some microbenchmarks report memory use increases from this change -- like
they reported memory use decreases from r198675 -- but I'm ignoring them
for now because I expect our full browser memory benchmarks to confirm
that this patch is fine.

  • bmalloc/BumpAllocator.h:

(bmalloc::BumpAllocator::BumpAllocator): Use a full unsigned because we
can allocate objects larger than 16kB - 1, and a full unsigned does not
make BumpAllocator any larger on 64bit systems.

  • bmalloc/Chunk.h:

(bmalloc::Chunk::begin):
(bmalloc::Chunk::end):
(bmalloc::Chunk::size):
(bmalloc::Chunk::objectType): Store ObjectType in the Chunk, since it only
varies by Chunk now, and not from page to page within a Chunk. Also,
union together small and large object metadata, since we will only use
one or the other. This saves memory.

(bmalloc::Chunk::Chunk): Conditionalize initialization based on object
type, since only one kind of metadata or the other can be used at runtime.

(bmalloc::Object::Object):
(bmalloc::Object::begin):
(bmalloc::SmallPage::end): Deleted.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::initializeLineMetadata): Save a little space, since we
know that lines are only 256 bytes long.

(bmalloc::Heap::initializePageMetadata): Store a dynamic page size for
each size class. We used to use only one page size (the system page size)
but that limited our ability to allocate objects larger than 1kB on the
small object path. Now we can handle any object size we want by storing
objects of that size in a custom page size.

(bmalloc::Heap::concurrentScavenge):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeSmallPages): Revert to our old linked list
strategy for storing small pages.

(bmalloc::Heap::splitAndAllocate): Object type is per Chunk now.

(bmalloc::Heap::allocateLarge): Don't nuke the small page list when
allocating a large object because the two don't share memory anymore.

(bmalloc::Heap::allocateSmallPage): Revert to our old linked list
strategy for storing small pages.

(bmalloc::Heap::deallocateSmallLine): Don't return early in the case
where this is the first free object in the page. In the case of large-ish
objects, the first free object might also be the last free object,
since there's one object per page.

(bmalloc::Heap::allocateSmallBumpRangesByMetadata): Split out some helper
lambdas to make this code clearer.

(bmalloc::Heap::allocateSmallBumpRangesByObject): Added a fast scan
for objects larger than the line size. When multiple objects fit in
a single line, it's an optimization to scan a line at a time. But when
it's one object per line, or one object per 64 lines, it's better just
to scan an object at a time.

  • bmalloc/Heap.h:

(bmalloc::Heap::allocateSmallBumpRanges):
(bmalloc::Heap::derefSmallLine): Match the changes above.

  • bmalloc/LineMetadata.h: We weren't using all those bits.
  • bmalloc/List.h:

(bmalloc::List::remove): Put a removed Node fully back into the default
(empty) state it was in before it entered the list. This change is not
observable, but it makes things clearer when you're debugging.

  • bmalloc/Object.h:

(bmalloc::Object::Object):
(bmalloc::Object::chunk):
(bmalloc::Object::offset):
(bmalloc::Object::operator+):
(bmalloc::Object::operator<=): Added some helpers for iterating by object.

  • bmalloc/ObjectType.cpp:

(bmalloc::objectType): Updated for API change.

  • bmalloc/Sizes.h:

(bmalloc::Sizes::maskObjectSize):
(bmalloc::Sizes::objectSize):
(bmalloc::Sizes::pageSize): Support more page sizes.

  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::SmallPage):
(bmalloc::SmallPage::objectType): Deleted.
(bmalloc::SmallPage::setObjectType): Deleted.
(bmalloc::SmallPage::smallPageCount): Deleted.
(bmalloc::SmallPage::setSmallPageCount): Deleted. Object type is per
Chunk now, and we can infer page count from size class.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateChunk):
(bmalloc::VMHeap::allocateSmallChunk):

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateSmallPage):
(bmalloc::VMHeap::deallocateSmallPage):
(bmalloc::VMHeap::allocateLargeObject): Support our old behavior of
storing free pages in linked lists.

4:01 PM Changeset in webkit [198994] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Remove unneeded UsePointersEvenForNonNullableObjectArguments in WebKitCSSMatrix.idl
https://bugs.webkit.org/show_bug.cgi?id=156142

Reviewed by Sam Weinig.

  • css/WebKitCSSMatrix.idl: Removed UsePointersEvenForNonNullableObjectArguments.

It was having no effect, I think because there were no non-nullable object arguments.

3:00 PM Changeset in webkit [198993] by clopez@igalia.com
  • 83 edits
    65 adds in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

Rebaseline many SVG tests after r197814 and mark new reported failures.

  • platform/gtk/TestExpectations:
  • platform/gtk/svg/W3C-SVG-1.1-SE/color-prop-05-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/color-prop-05-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/interact-pointer-03-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/interact-pointer-03-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-control-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-control-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-marker-07-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-marker-07-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-css-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-css-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-24-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-24-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/filters-light-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/filters-light-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/filters-turb-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/filters-turb-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/masking-mask-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-06-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-06-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-07-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-07-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-08-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-08-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-01-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-03-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-03-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-align-08-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-align-08-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-fonts-03-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-fonts-03-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-01-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-01-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-02-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-04-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-04-t-expected.txt: Added.
  • platform/gtk/svg/batik/text/textEffect-expected.png:
  • platform/gtk/svg/batik/text/textEffect-expected.txt: Added.
  • platform/gtk/svg/batik/text/textEffect3-expected.png:
  • platform/gtk/svg/batik/text/textEffect3-expected.txt: Added.
  • platform/gtk/svg/batik/text/textPosition2-expected.png:
  • platform/gtk/svg/batik/text/textPosition2-expected.txt:
  • platform/gtk/svg/custom/glyph-selection-arabic-forms-expected.png:
  • platform/gtk/svg/custom/glyph-selection-arabic-forms-expected.txt:
  • platform/gtk/svg/custom/glyph-selection-non-bmp-expected.png:
  • platform/gtk/svg/custom/glyph-selection-non-bmp-expected.txt:
  • platform/gtk/svg/custom/glyph-setting-d-attribute-expected.txt: Added.
  • platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.png:
  • platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.txt: Added.
  • platform/gtk/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png:
  • platform/gtk/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-in-text-controls-expected.txt: Added.
  • platform/gtk/svg/custom/svg-fonts-no-latin-glyph-expected.txt: Added.
  • platform/gtk/svg/custom/svg-fonts-segmented-expected.png:
  • platform/gtk/svg/custom/svg-fonts-segmented-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-with-no-element-reference-expected.png:
  • platform/gtk/svg/custom/svg-fonts-with-no-element-reference-expected.txt: Added.
  • platform/gtk/svg/custom/svg-fonts-without-missing-glyph-expected.png:
  • platform/gtk/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-word-spacing-expected.png:
  • platform/gtk/svg/custom/svg-fonts-word-spacing-expected.txt:
  • platform/gtk/svg/foreignObject/text-tref-02-b-expected.png:
  • platform/gtk/svg/foreignObject/text-tref-02-b-expected.txt: Added.
  • platform/gtk/svg/text/text-overflow-ellipsis-svgfont-expected.png:
  • platform/gtk/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
  • platform/gtk/svg/text/text-text-05-t-expected.png:
  • platform/gtk/svg/text/text-text-05-t-expected.txt: Added.
  • platform/gtk/svg/transforms/text-with-mask-with-svg-transform-expected.png:
  • platform/gtk/svg/transforms/text-with-mask-with-svg-transform-expected.txt: Added.
  • platform/gtk/svg/wicd/test-rightsizing-b-expected.png:
  • platform/gtk/svg/wicd/test-rightsizing-b-expected.txt:
3:00 PM Changeset in webkit [198992] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

Tighten ComposedTreeAncestorIterator to return Elements
https://bugs.webkit.org/show_bug.cgi?id=150324

Reviewed by Andreas Kling.

Only other thing it could credibly return was Document. We can exclude it from the composed tree and avoid some casting.

  • dom/ComposedTreeAncestorIterator.h:

(WebCore::ComposedTreeAncestorIterator::operator*):
(WebCore::ComposedTreeAncestorIterator::operator->):
(WebCore::ComposedTreeAncestorIterator::operator==):
(WebCore::ComposedTreeAncestorIterator::operator!=):
(WebCore::ComposedTreeAncestorIterator::operator++):
(WebCore::ComposedTreeAncestorIterator::get):
(WebCore::ComposedTreeAncestorIterator::ComposedTreeAncestorIterator):
(WebCore::ComposedTreeAncestorIterator::traverseParent):
(WebCore::ComposedTreeAncestorAdapter::begin):
(WebCore::ComposedTreeAncestorAdapter::end):
(WebCore::ComposedTreeAncestorAdapter::first):

  • dom/Element.cpp:

(WebCore::Element::resolveComputedStyle):

  • dom/Node.cpp:

(WebCore::Node::updateAncestorsForStyleRecalc):
(WebCore::Node::setNeedsStyleRecalc):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::isChildAllowed):
(WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEventIfNeeded):

  • style/RenderTreeUpdater.cpp:

(WebCore::findRenderingRoot):
(WebCore::RenderTreeUpdater::commit):

2:19 PM Changeset in webkit [198991] by ddkilzer@apple.com
  • 1 edit in branches/safari-601.1.46-branch/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm

Fix build by moving elementRectInWindow() to where it is used.

1:19 PM Changeset in webkit [198990] by Antti Koivisto
  • 7 edits
    2 adds in trunk

Shadow DOM: Slot style is not computed
https://bugs.webkit.org/show_bug.cgi?id=156144

Reviewed by Darin Adler.

Source/WebCore:

We don’t currently compute style for active slots. While slots have have implicit display:contents and don’t create
boxes themselves the style should still inherit to slotted children.

Basically

<slot style=“color:red”></slot>

should work as expected.

The implementation falls out from the new style resolve architecture and this patch mostly just removes the special
case code that prevented this from working.

Test: fast/shadow-dom/css-scoping-shadow-slot-style.html

  • html/HTMLSlotElement.h:

(WebCore::hasImplicitDisplayContents):

Move to a shared location.

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::RenderTreeUpdater):
(WebCore::findRenderingRoot):
(WebCore::RenderTreeUpdater::updateRenderTree):

Remove the special case code. What remains is a display:contents test for rendererless elements.

(WebCore::RenderTreeUpdater::updateElementRenderer):

Don't create renderers for (implicit) display:contents.

(WebCore::hasDisplayContents): Deleted.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::detachRenderTree):
(WebCore::Style::affectsRenderedSubtree):

Factor into a function.

(WebCore::Style::TreeResolver::resolveElement):

Remove the special case code.

(WebCore::Style::TreeResolver::resolveComposedTree):

Always resolve slots as we don't currently save their style.

LayoutTests:

  • fast/shadow-dom/css-scoping-shadow-slot-style-expected.html: Added.
  • fast/shadow-dom/css-scoping-shadow-slot-style.html: Added.
12:45 PM Changeset in webkit [198989] by sbarati@apple.com
  • 19 edits
    1 add in trunk

Implement Annex B.3.3 function hoisting rules for function code
https://bugs.webkit.org/show_bug.cgi?id=155672

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

The spec states that functions declared inside a function
inside a block scope are subject to the rules of Annex B.3.3:
https://tc39.github.io/ecma262/#sec-block-level-function-declarations-web-legacy-compatibility-semantics

The rule states that functions declared in such blocks should
be local bindings of the block. If declaring the function's name
as a "var" in the function would not lead to a syntax error (i.e,
if we don't have a let/const/class variable with the same name)
and if we don't have a parameter with the same name, then we
implictly also declare the funcion name as a "var". When evaluating
the block statement we bind the hoisted "var" to be the value
of the local function binding.

There is one more thing we do for web compatibility. We allow
function declarations inside if/else statements that aren't
blocks. For such statements, we transform the code as if the
function were declared inside a block statement. For example:
function foo() { if (cond) function baz() { } }
is transformed into:
function foo() { if (cond) { function baz() { } } }

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):

  • bytecompiler/BytecodeGenerator.h:
  • parser/Nodes.cpp:

(JSC::ScopeNode::ScopeNode):
(JSC::ProgramNode::ProgramNode):
(JSC::ModuleProgramNode::ModuleProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):

  • parser/Nodes.h:

(JSC::ScopeNode::hasCapturedVariables):
(JSC::ScopeNode::captures):
(JSC::ScopeNode::hasSloppyModeHoistedFunction):
(JSC::ScopeNode::varDeclarations):
(JSC::ProgramNode::startColumn):
(JSC::ProgramNode::endColumn):
(JSC::EvalNode::startColumn):
(JSC::EvalNode::endColumn):
(JSC::ModuleProgramNode::startColumn):
(JSC::ModuleProgramNode::endColumn):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::didFinishParsing):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseIfStatement):

  • parser/Parser.h:

(JSC::Scope::declareVariable):
(JSC::Scope::declareFunction):
(JSC::Scope::addSloppyModeHoistableFunctionCandidate):
(JSC::Scope::appendFunction):
(JSC::Scope::declareParameter):
(JSC::Scope::mergeInnerArrowFunctionFeatures):
(JSC::Scope::getSloppyModeHoistedFunctions):
(JSC::Scope::getCapturedVars):
(JSC::ScopeRef::containingScope):
(JSC::ScopeRef::operator==):
(JSC::ScopeRef::operator!=):
(JSC::Parser::declareFunction):
(JSC::Parser::hasDeclaredVariable):
(JSC::Parser::isFunctionMetadataNode):
(JSC::Parser::DepthManager::DepthManager):
(JSC::Parser<LexerType>::parse):

  • parser/VariableEnvironment.h:

(JSC::VariableEnvironmentEntry::isImported):
(JSC::VariableEnvironmentEntry::isImportedNamespace):
(JSC::VariableEnvironmentEntry::isFunction):
(JSC::VariableEnvironmentEntry::isParameter):
(JSC::VariableEnvironmentEntry::isSloppyModeHoistingCandidate):
(JSC::VariableEnvironmentEntry::setIsCaptured):
(JSC::VariableEnvironmentEntry::setIsConst):
(JSC::VariableEnvironmentEntry::setIsImported):
(JSC::VariableEnvironmentEntry::setIsImportedNamespace):
(JSC::VariableEnvironmentEntry::setIsFunction):
(JSC::VariableEnvironmentEntry::setIsParameter):
(JSC::VariableEnvironmentEntry::setIsSloppyModeHoistingCandidate):
(JSC::VariableEnvironmentEntry::clearIsVar):

  • runtime/CodeCache.h:

(JSC::SourceCodeValue::SourceCodeValue):

  • runtime/JSScope.cpp:
  • runtime/JSScope.h:
  • tests/es6.yaml:
  • tests/stress/sloppy-mode-function-hoisting.js: Added.

(assert):
(test):
(falsey):
(truthy):
(test.):
(test.a):
(test.f):
(test.let.funcs.f):
(test.catch.f):
(test.foo):
(test.bar):
(test.switch.case.0):
(test.else.f):
(test.b):
(test.c):
(test.d):
(test.e):
(test.g):
(test.h):
(test.i):
(test.j):
(test.k):
(test.l):
(test.m):
(test.n):
(test.o):
(test.p):
(test.q):
(test.r):
(test.s):
(test.t):
(test.u):
(test.v):
(test.w):
(test.x):
(test.y):
(test.z):
(foo):
(bar):
(falsey.bar):
(baz):
(falsey.baz):

LayoutTests:

  • js/kde/func-decl-expected.txt:
  • js/kde/script-tests/func-decl.js:
  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:

(valid):
(onlyValidGlobally):
(onlyInvalidGlobally):
(invalid):

12:38 PM Changeset in webkit [198988] by mitz@apple.com
  • 2 edits in trunk/Tools

Use the correct value for the first nightly build with frameworks built for OS X 10.11.

  • Scripts/bisect-builds:

(makeNightlyList):

12:14 PM Changeset in webkit [198987] by mitz@apple.com
  • 2 edits in trunk/Tools

Made bisect-builds work again.

Rubber-stamped by Sam Weinig.

  • Scripts/bisect-builds:

Changed to use HTTPS to access nightly.webkit.org, and added a minimum revision for OS X 10.11.

11:56 AM Changeset in webkit [198986] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebCore

REGRESSION (r198653, r198864): http/tests/contentdispositionattachmentsandbox/referer-header-stripped*.html tests crashing due to unavailable SPI
<http://webkit.org/b/156145>

Reviewed by Tim Horton.

Covered by existing tests under GuardMalloc:

http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped.html

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::isDataDetectorLink):
(WebCore::DataDetection::shouldCancelDefaultAction):

  • Restore iOS 9.x code.

(WebCore::DataDetection::detectContentInRange):

  • Guard new SPI with version macros.
  • platform/cocoa/DataDetectorsCoreSoftLink.h:
  • platform/cocoa/DataDetectorsCoreSoftLink.mm:
  • Guard new SPI with version macros.
9:50 AM Changeset in webkit [198985] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, turn ES6 for-in loop test success
https://bugs.webkit.org/show_bug.cgi?id=155451

  • tests/es6.yaml:
3:56 AM Changeset in webkit [198984] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Bump GTK+ versions numbers.

  • Source/cmake/OptionsGTK.cmake:
3:50 AM Changeset in webkit [198983] by Carlos Garcia Campos
  • 9 edits in trunk/Source/WebCore

Replace all RenderTheme::popupInternalPadding methods with a single one returning a LengthBox
https://bugs.webkit.org/show_bug.cgi?id=156098

Reviewed by Darin Adler.

The caller always wants all padding sides, so we can simplify both the caller and the implementations by using a
single method. It's also more efficient for the GTK+ port that creates and destroys the same style contexts on
every call.

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::popupInternalPaddingBox):
(WebCore::RenderTheme::popupInternalPaddingLeft): Deleted.
(WebCore::RenderTheme::popupInternalPaddingRight): Deleted.
(WebCore::RenderTheme::popupInternalPaddingTop): Deleted.
(WebCore::RenderTheme::popupInternalPaddingBottom): Deleted.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::popupInternalPaddingBox):
(WebCore::getComboBoxMetrics): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingLeft): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingRight): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingTop): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingBottom): Deleted.

  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::popupInternalPaddingBox):
(WebCore::RenderThemeIOS::popupInternalPaddingRight): Deleted.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::popupInternalPaddingBox):
(WebCore::RenderThemeMac::popupInternalPaddingLeft): Deleted.
(WebCore::RenderThemeMac::popupInternalPaddingRight): Deleted.
(WebCore::RenderThemeMac::popupInternalPaddingTop): Deleted.
(WebCore::RenderThemeMac::popupInternalPaddingBottom): Deleted.

2:56 AM Changeset in webkit [198982] by ddkilzer@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

REGRESSION (r198859): fast/scrolling/rtl-scrollbars-animation-property.html fails on non-Mac platforms
<http://webkit.org/b/155962>

Unreviewed; land platform-specific test results.

  • platform/gtk/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
  • platform/ios-simulator/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
  • platform/win/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
1:37 AM Changeset in webkit [198981] by Yusuke Suzuki
  • 37 edits
    9 adds in trunk

[JSC] Add truncate operation (rounding to zero)
https://bugs.webkit.org/show_bug.cgi?id=156072

Reviewed by Saam Barati.

Source/JavaScriptCore:

Add TruncIntrinsic for Math.trunc. DFG handles it as ArithTrunc.
In DFG, ArithTrunc behaves similar to ArithRound, ArithCeil, and ArithFloor.
ArithTrunc rounds the value towards zero.

And we rewrite @toInteger to use @trunc instead of @abs, @floor, negation and branch.
This is completely the same to what we do in JSValue::toInteger.

Since DFG recognize it, DFG can convert ArithTrunc to Identity if the given argument is Int32.
This is useful because almost all the argument is Int32 in @toLength -> @toInteger -> @trunc case.
In such cases, we can eliminate trunc() call.

As a bonus, to speed up Math.trunc operation, we use x86 SSE round and frintz in ARM64 for ArithRound.
In DFG, we emit these instructions. In FTL, we use Patchpoint to emit these instructions to avoid adding a new B3 IR.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::roundTowardZeroDouble):
(JSC::MacroAssemblerARM64::roundTowardZeroFloat):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::roundTowardZeroDouble):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::roundTowardZeroDouble):

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::roundTowardZeroDouble):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::roundTowardZeroDouble):
(JSC::MacroAssemblerX86Common::roundTowardZeroFloat):

  • builtins/GlobalObject.js:

(toInteger):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::roundShouldSpeculateInt32):

  • dfg/DFGNode.h:

(JSC::DFG::Node::arithNodeFlags):
(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasArithRoundingMode):

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

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithRounding):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::doubleTrunc):

  • ftl/FTLOutput.h:
  • jit/ThunkGenerators.cpp:

(JSC::truncThunkGenerator):

  • jit/ThunkGenerators.h:
  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/MathObject.h:
  • runtime/VM.cpp:

(JSC::thunkGeneratorForIntrinsic):

  • tests/stress/math-rounding-infinity.js:

(testTrunc):

  • tests/stress/math-rounding-nan.js:

(testTrunc):

  • tests/stress/math-rounding-negative-zero.js:

(testTrunc):

  • tests/stress/math-trunc-arith-rounding-mode.js: Added.

(firstCareAboutZeroSecondDoesNot):
(firstDoNotCareAboutZeroSecondDoes):
(warmup):
(verifyNegativeZeroIsPreserved):

  • tests/stress/math-trunc-basics.js: Added.

(mathTruncOnIntegers):
(mathTruncOnDoubles):
(mathTruncOnBooleans):
(uselessMathTrunc):
(mathTruncWithOverflow):
(mathTruncConsumedAsDouble):
(mathTruncDoesNotCareAboutMinusZero):
(mathTruncNoArguments):
(mathTruncTooManyArguments):
(testMathTruncOnConstants):
(mathTruncStructTransition):
(Math.trunc):

  • tests/stress/math-trunc-should-be-truncate.js: Added.

(mathTrunc):

LayoutTests:

  • js/regress/many-foreach-calls-expected.txt: Added.
  • js/regress/many-foreach-calls.html: Added.
  • js/regress/math-trunc-expected.txt: Added.
  • js/regress/math-trunc.html: Added.
  • js/regress/script-tests/many-foreach-calls.js: Added.

forEach calls @toInteger. It includes @trunc now.
(i.array.forEach):

  • js/regress/script-tests/math-trunc.js: Added.

Call Math.trunc repeatedly.
(mathTruncInt):
(mathTruncDouble):
(mathTruncMixed):
(mathTruncDoubleDoesNotCareNegativeZero):

12:59 AM Changeset in webkit [198980] by gskachkov@gmail.com
  • 18 edits in trunk/Source/JavaScriptCore

[ES6] Class syntax. Access to new.target inside of the eval should not lead to SyntaxError
https://bugs.webkit.org/show_bug.cgi?id=155545

Reviewed by Saam Barati.

Current patch allow to invoke new.target in eval if this eval is executed within function,
otherwise this will lead to Syntax error

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::getSlow):

  • bytecode/ExecutableInfo.h:

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::evalContextType):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::evalContextType):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluate):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::setEvalContextType):
(JSC::Scope::evalContextType):
(JSC::parse):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):

  • runtime/CodeCache.h:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::ScriptExecutable):
(JSC::EvalExecutable::create):
(JSC::EvalExecutable::EvalExecutable):
(JSC::ProgramExecutable::ProgramExecutable):
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
(JSC::FunctionExecutable::FunctionExecutable):

  • runtime/Executable.h:

(JSC::ScriptExecutable::evalContextType):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createEvalCodeBlock):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncEval):

  • tests/stress/arrowfunction-lexical-bind-newtarget.js:
  • tests/stress/new-target.js:

Apr 2, 2016:

6:55 PM Changeset in webkit [198979] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

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

"Causes js/regress/array-nonarray-polymorhpic-access.html to
crash." (Requested by ddkilzer on #webkit).

Reverted changeset:

"[JSC] Initialize SSA's live values at tail lazily"
https://bugs.webkit.org/show_bug.cgi?id=156126
http://trac.webkit.org/changeset/198976

6:22 PM Changeset in webkit [198978] by gskachkov@gmail.com
  • 3 edits in trunk/LayoutTests

[ES6] Arrow function syntax. Add missed test for using 'with' and 'this' in arrow function.
https://bugs.webkit.org/show_bug.cgi?id=156059

Reviewed by Saam Barati.

Added test case that cover using 'with' with lexically bound 'this' in arrow function, this case was not
covered by tests for arrow function.

  • js/arrowfunction-lexical-bind-this-expected.txt:
  • js/script-tests/arrowfunction-lexical-bind-this.js:
3:04 PM Changeset in webkit [198977] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r198933): Web Inspector and inspected page hang in local builds
https://bugs.webkit.org/show_bug.cgi?id=156138
<rdar://problem/25507724>

Reviewed by Alexey Proskuryakov.

Similar to the sandbox policy for WebProcess and NetworkProcess, grant a Database process
read-only filesystem access and mach lookup capability to various Security framework files
and SecurityServer, respectively.

  • DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
2:16 PM Changeset in webkit [198976] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Initialize SSA's live values at tail lazily
https://bugs.webkit.org/show_bug.cgi?id=156126

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

Setting up the clean state early looks harmless but it is
actually quite expensive.

The problem is AbstractValue is gigantic, you really want
to minimize how much you touch that memory.

By removing the initialization, most blocks only
get 2 or 3 accesses. Once to setup the value, and a few
queries for merging the current block with the successors.

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::endBasicBlock):
(JSC::DFG::setLiveValues): Deleted.
(JSC::DFG::InPlaceAbstractState::initialize): Deleted.

2:14 PM Changeset in webkit [198975] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Add an option to avoid disassembling baseline code for the JSC Profiler
https://bugs.webkit.org/show_bug.cgi?id=156127

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

The profiler run out of memory on big programs if you dump
the baseline disassembly.

  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • runtime/Options.h:
1:01 PM Changeset in webkit [198974] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Cleanup DataDetection.mm a little bit
https://bugs.webkit.org/show_bug.cgi?id=156128

Patch by Sam Weinig <sam@webkit.org> on 2016-04-02
Reviewed by Dan Bernstein.

  • html/HTMLAttributeNames.in:

Add x-apple-data-detectors, x-apple-data-detectors-type, x-apple-data-detectors-result

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::requiresExtendedContext):
(WebCore::DataDetection::dataDetectorIdentifier):
(WebCore::DataDetection::shouldCancelDefaultAction):
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):
Use new generated qualified name attributes, switch to using fastGetAttribute and
equalIgnoringASCIICase, and fix the position of some *s.

(WebCore::dataDetectorStringForPath):
Fix some *s and switch to using StringBuilder.

(WebCore::buildQuery):
Fix some *s.

(WebCore::DataDetection::detectContentInRange):
Use new generated qualified name attributes.

12:34 PM Changeset in webkit [198973] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Another attempt to fix the Apple Internal Yosemite and El Capitan builds following
<http://trac.webkit.org/changeset/198933> (https://bugs.webkit.org/show_bug.cgi?id=155455)

Similar to the sandbox policy for WebProcess and NetworkProcess, grant a Database process
access to the passed user's cache directory and passed user's temporary directory so that
the Security framework can verify the code signature of the app that launched it when the
Database process is itself code signed.

  • DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
9:34 AM Changeset in webkit [198972] by mitz@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

jsc binary embedded in relocatable JavaScriptCore.framework links against system JavaScriptCore.framework
https://bugs.webkit.org/show_bug.cgi?id=156134
<rdar://problem/25443824>

Reviewed by Mark Lam.

  • Configurations/JSC.xcconfig: Define WK_RELOCATABLE_FRAMEWORKS_LDFLAGS when building relocatable frameworks to include a -dyld_env option setting DYLD_FRAMEWORK_PATH to point to the directory containing JavaScript.framework, and add WK_RELOCATABLE_FRAMEWORKS_LDFLAGS to OTHER_LDFLAGS.
1:59 AM Changeset in webkit [198971] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r198963): css3/filters/backdrop/dynamic-backdrop-filter-change.html frequently fails
<http://webkit.org/b/149319>

Unreviewed attempt to fix layout test.

  • css3/filters/backdrop/dynamic-backdrop-filter-change.html:

Use testRunner.notifyDone() after testRunner.waitUntilDone().

12:01 AM Changeset in webkit [198970] by mmaxfield@apple.com
  • 9 edits in trunk/Source/WebCore

Migrate BidiRunList and BidiRun to automatic memory management
https://bugs.webkit.org/show_bug.cgi?id=156123

Reviewed by Simon Fraser.

BidiRunList, BidiRun, and BidiCharacterRun have all been doing manual
"new"s and "delete"s for years. This patch migrates those classes to
using std::unique_ptr.

No new tests because there is no behavior change.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawBidiText):

  • platform/text/BidiResolver.h:

(WebCore::BidiCharacterRun::BidiCharacterRun):
(WebCore::BidiCharacterRun::next):
(WebCore::BidiCharacterRun::takeNext):
(WebCore::BidiCharacterRun::setNext):
(WebCore::Subclass>::appendRunInternal):

  • platform/text/BidiRunList.h:

(WebCore::BidiRunList::BidiRunList):
(WebCore::BidiRunList::firstRun):
(WebCore::BidiRunList<Run>::appendRun):
(WebCore::BidiRunList<Run>::prependRun):
(WebCore::BidiRunList<Run>::moveRunToEnd):
(WebCore::BidiRunList<Run>::moveRunToBeginning):
(WebCore::BidiRunList<Run>::replaceRunWithRuns):
(WebCore::BidiRunList<Run>::clear):
(WebCore::BidiRunList<Run>::reverseRuns):
(WebCore::BidiRunList<Run>::clearWithoutDestroyingRuns): Deleted.
(WebCore::BidiRunList<Run>::deleteRuns): Deleted.

  • rendering/BidiRun.cpp:

(WebCore::BidiRun::takeNext):

  • rendering/BidiRun.h:

(WebCore::BidiRun::next):
(WebCore::BidiRun::takeNext):

  • rendering/InlineIterator.h:

(WebCore::addPlaceholderRunForIsolatedInline):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::createRun):
(WebCore::RenderBlockFlow::handleTrailingSpaces):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::skipLeadingWhitespace):

Note: See TracTimeline for information about the timeline view.