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

Timeline



Jul 9, 2016:

3:58 PM Changeset in webkit [203035] by rniwa@webkit.org
  • 10 edits in trunk/Websites/perf.webkit.org

Perf dashboard can consume 50-70% of CPU on MacBook even if user is not interacting at all
https://bugs.webkit.org/show_bug.cgi?id=159597

Reviewed by Chris Dumez.

TimeSeriesChart and InteractiveTimeSeriesChart had been relying on continually polling on requestAnimationFrame
to update itself in response to its canvas resizing. Even though there as an early exit in the case there was
nothing to update, this is still causing a significant power drain when the user is not interacting at all.

Let TimeSeriesChart use the regular top-down render path like other components with exceptions of listening to
window's resize eventas well as when new JSONs are fetched from the server. The render() call to the latter case
will be coerced into a single callback on requestAnimationFrame to avoid DOM-mutation-layout churn.

  • public/v3/components/base.js:

(ComponentBase.isElementInViewport): Deleted.

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase.prototype.render): Enqueue charts to render.

  • public/v3/components/chart-styles.js:

(ChartStyles.dashboardOptions): Removed updateOnRequestAnimationFrame which is no longer an available option.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart): Replaced the code to register itself for rAF by the code to listen to resize events on window.
(TimeSeriesChart._updateOnRAF): Deleted.
(TimeSeriesChart._updateAllCharts): Added.
(TimeSeriesChart.prototype._enqueueToRender): Added.
(TimeSeriesChart._renderEnqueuedCharts): Added.
(TimeSeriesChart.prototype.fetchMeasurementSets): Avoid calling fetchBetween when the range had been fetched.
Without this change, we can incur a significant number of redundant calls to render() when adjusting the domain
in charts page by the slider. When no new JSON is fetched, simply enqueue this chart to render on rAF.
(TimeSeriesChart.prototype._didFetchMeasurementSet): Enqueue this chart to render on rAF.
(TimeSeriesChart.prototype.render): Removed the check for isElementInViewport since we no longer get render() call
when this chart moves into the viewport (as we no longer listen to every rAF or scroll event).

  • public/v3/models/measurement-set.js:

(MeasurementSet.prototype.hasFetchedRange): Fixed various bugs revealed by the new use in fetchMeasurementSets.

  • public/v3/pages/chart-pane-status-view.js:

(ChartPaneStatusView.prototype._updateRevisionListForNewCurrentRepository): Removed the dead code. It was probably
copied from when this code was in InteractiveTimeSeries chart. There is no this._forceRender in this component.

  • public/v3/pages/dashboard-page.js:

(DashboardPage.prototype.render): Enqueue charts to render.

  • public/v3/pages/heading.js:

(SummaryPage.prototype.open): Removed the call to isElementInViewport. This wasn't really doing anything useful in
this component.

  • unit-tests/measurement-set-tests.js: Added tests for hasFetchedRange.

(.waitForMeasurementSet): Moved to be used in a newly added test case.

2:07 PM Changeset in webkit [203034] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore
REGRESSION(201900): validation failure for GetByOffset/PutByOffset in VALIDATE((node), node->child1().node() == node->child2().node()
node->child1()->result() == NodeResultStorage)

https://bugs.webkit.org/show_bug.cgi?id=159603

Reviewed by Keith Miller.

This removes an incorrect validation rule and replaces it with a FIXME about how to make this
aspect of IR easier to validate soundly.

It's not valid to assert that two children of a node are the same. It should always be valid
to take:

Foo(@x, @x)

and turn it into:

a: ValueRep(@x)
b: ValueRep(@x)
Foo(@a, @b)

or even something like:

y: Identity(@y)
Foo(@x, @y)

That's because it should be possible to rewire any data flow edge something that produces an
equivalent value.

The validation rule that this patch removes meant that such rewirings were invalid on
GetByOffset/PutByOffset. FixupPhase did such a rewiring sometimes.

  • dfg/DFGValidate.cpp:
  • tests/stress/get-by-offset-double.js: Added.
1:50 PM Changeset in webkit [203033] by keith_miller@apple.com
  • 3 edits
    4 adds in trunk

appendMemcpy might fail in concatAppendOne
https://bugs.webkit.org/show_bug.cgi?id=159601
Source/JavaScriptCore:

<rdar://problem/27211300>

Reviewed by Mark Lam.

There are multiple reasons why we might fail appendMemcpy. One
reason, which I suspect was the source of the crashes, is that one
of the Array prototypes has an indexed property. This patch
consolidates the two old cases by just creating an array then
attempting to memcpy append. If that fails, we fall back to
moveElements.

  • runtime/ArrayPrototype.cpp:

(JSC::concatAppendOne):

  • tests/stress/concat-with-holesMustForwardToPrototype.js: Added.

(arrayEq):

LayoutTests:

Reviewed by Mark Lam.

Add new microbenchmark testing the performance of concat
when appending one new element. This patch appears to be
about a 13% progression on this test.

  • js/regress/concat-append-one-expected.txt: Added.
  • js/regress/concat-append-one.html: Added.
  • js/regress/script-tests/concat-append-one.js: Added.

(test):

9:23 AM Changeset in webkit [203032] by mitz@apple.com
  • 2 edits in trunk/Tools

Give git-add-reviewer an option to say “Rubber-stamped by” in non-interactive mode
https://bugs.webkit.org/show_bug.cgi?id=159600

Reviewed by Daniel Bates.

  • Scripts/git-add-reviewer:
Added the -srubber-stamp option.

(nonInteractive): Set the rubberstamp key in the item passed to addReviewer() based on the

new option.

8:47 AM Changeset in webkit [203031] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

REGRESSION (r202931): breaks release builds with ASSERT_WITH_SECURITY_IMPLICATION for fuzzing
https://bugs.webkit.org/show_bug.cgi?id=159599
rdar://problem/27248835

Reviewed by Chris Dumez.

Make RenderStyle::deletionHasBegun() available with ENABLE(SECURITY_ASSERTIONS)

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::~RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::deletionHasBegun):

8:39 AM Changeset in webkit [203030] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

REGRESSION: manifest.json generation takes multiple seconds on perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=159596

Reviewed by Chris Dumez.

The most of CPU time was spent looking for a duplicate entry in an array of metrics by array_search.
This patch moves to postgres by using aggregate functions in the query. Also moved the code to convert
datetime to UNIX epoch timestamp from PHP to within postgres query.

These improvements reduce total runtime of Manifest::generate from ~4s to ~350ms on my machine.

  • public/include/manifest.php:

(Manifest::generate): No longer fetches test_configurations table as this is done in Manifest::platforms now.
Also moved calls to each method in the class to separate lines for easier instrumentation.
(Manifest::platforms): Group test configurations (current, baseline, target) by platform and metric.
Use the max of the last modified dates in UNIX epoch timestamps (ms to be compatible with JS's representation).
A given platform, metric pair is considered to be in the v1 dashboard if any test configuration is in.

5:57 AM Changeset in webkit [203029] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Make use of PrivateIdentifier to simplify Fetch Headers built-in checks
https://bugs.webkit.org/show_bug.cgi?id=159554

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-09
Reviewed by Alex Christensen.

Source/WebCore:

Test: fetch/header-constructor-overriden.html
Patch does not change visible behavior.

  • Modules/fetch/FetchHeaders.idl: Adding PrivateIdentifier to the Headers constructor.
  • Modules/fetch/FetchHeaders.js:

(initializeFetchHeaders): Checking directly with @Headers for improved clarity.

  • Modules/fetch/FetchResponse.js: Using @Headers to check whether creating a Headers object or not before

passsing it to C++ FetchResponse initialize method.
(initializeFetchResponse):

  • bindings/js/WebCoreBuiltinNames.h: Adding Headers private name.

LayoutTests:

  • fetch/header-constructor-overriden-expected.txt: Added.
  • fetch/header-constructor-overriden.html: Added.
12:33 AM Changeset in webkit [203028] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Fix the Template Raw Value of \ (escape) + LineTerminatorSequence
https://bugs.webkit.org/show_bug.cgi?id=159595

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-09
Reviewed by Yusuke Suzuki.

The spec (https://tc39.github.io/ecma262/#sec-static-semantics-tv-and-trv)
says:
"The TRV of LineContinuation::\LineTerminatorSequence is the sequence

consisting of the code unit value 0x005C followed by the code units
of TRV of LineTerminatorSequence."

We were not normalizing the LineTerminatorSequence in that case, but it should
be as it is the TRV of LineTerminatorSequence.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::parseTemplateLiteral):

  • tests/stress/tagged-templates-raw-strings.js:
12:03 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

Jul 8, 2016:

11:37 PM Changeset in webkit [203027] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 8

Added a tag for Safari Technology Preview release 8.

11:37 PM Changeset in webkit [203026] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 7

Added a tag for Safari Technology Preview release 7.

11:37 PM Changeset in webkit [203025] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 6

Added a tag for Safari Technology Preview release 6.

11:37 PM Changeset in webkit [203024] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 5

Added a tag for Safari Technology Preview release 5.

11:37 PM Changeset in webkit [203023] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 4

Added a tag for Safari Technology Preview release 4.

11:37 PM Changeset in webkit [203022] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 3

Added a tag for Safari Technology Preview release 3.

11:37 PM Changeset in webkit [203021] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 2

Added a tag for Safari Technology Preview release 2.

11:35 PM Changeset in webkit [203020] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 1

Added a tag for Safari Technology Preview release 1.

8:32 PM Changeset in webkit [203019] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

bundle-v3-scripts.py should compress HTML/CSS templates
https://bugs.webkit.org/show_bug.cgi?id=159582

Reviewed by Joseph Pecoraro.

Strip leading and trailing whitespaces from HTML and CSS templates. This is a 8% progression on the file size.

  • Install.md: Updated the list of MIME types to apply deflate for newer versions of Apache.
  • tools/bundle-v3-scripts.py:

(main):
(compress_template): Added.

7:24 PM Changeset in webkit [203018] by Chris Dumez
  • 4 edits
    4 adds in trunk

adoptNode() changes css class to lowercase for document loaded with XHR responseType = "document"
https://bugs.webkit.org/show_bug.cgi?id=159555
<rdar://problem/27252541>

Reviewed by Ryosuke Niwa.

Source/WebCore:

When adopting an Element from another document which has a different quirks mode,
case-sensitivity for id and class attributes differs and we need to correctly
update members such as ElementData::m_classNames or ElementData::m_idForStyleResolution.

To address the issue, have Element override didMoveToNewDocument() and call
attributeChanged() for id and class attributes.

Test: fast/dom/Document/adoptNode-quirks-mismatch.html

  • dom/Element.cpp:

(WebCore::Element::didMoveToNewDocument):

  • dom/Element.h:

LayoutTests:

Add test coverage for id and class attributes.

  • fast/dom/Document/adoptNode-quirks-mismatch-expected.txt: Added.
  • fast/dom/Document/adoptNode-quirks-mismatch.html: Added.
  • fast/dom/Document/resources/document-quirks-class.html: Added.
  • fast/dom/Document/resources/document-quirks-id.html: Added.
7:24 PM Changeset in webkit [203017] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Command-Shift-S in the Styles sidebar should always show the save dialog
https://bugs.webkit.org/show_bug.cgi?id=156858
<rdar://problem/25859098>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):

7:14 PM Changeset in webkit [203016] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Cleanup: Remove use of PassRefPtr from class HTMLTableElement
https://bugs.webkit.org/show_bug.cgi?id=159587

Reviewed by Chris Dumez.

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::setCaption): Take a rvalue reference to a RefPtr instead of a PassRefPtr.
(WebCore::HTMLTableElement::setTHead): Take a rvalue reference to a RefPtr instead of a PassRefPtr. Also
fix a style nit; add curly braces around the for-loop body since its body is more than a single line.
(WebCore::HTMLTableElement::createTHead): Use Ref::copyRef() instead of Ref::ptr() to pass the instantiated
table section to better convey that we are passing a copy of the table section.
(WebCore::HTMLTableElement::createCaption): Ditto.

  • html/HTMLTableElement.h:
6:29 PM Changeset in webkit [203015] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

We may add a ReadOnly property without setting the corresponding bit on Structure
https://bugs.webkit.org/show_bug.cgi?id=159542
<rdar://problem/27084591>

Reviewed by Benjamin Poulain.

The reason this usually is OK is due to happenstance. Often, instances that putDirectWithoutTransition
also happen to have a static property table. Having a static property table causes the
HasReadOnlyOrGetterSetterPropertiesExcludingProto on the structure to be set. However,
there are times where an object calls putDirectWithoutTransition, and it doesn't have a
static property hash table. The fix is simple, putDirectWithTransition needs to set the
HasReadOnlyOrGetterSetterPropertiesExcludingProto if it puts a ReadOnly property.

  • runtime/JSObject.h:

(JSC::JSObject::putDirectWithoutTransition):

  • tests/stress/proper-property-store-with-prototype-property-that-is-not-writable.js: Added.

(assert):

5:43 PM Changeset in webkit [203014] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

When WKWebView prepares the session state blob, we should be able to filter it.
https://bugs.webkit.org/show_bug.cgi?id=159410

Add a SPI to WKWebView so that a client can decide how to filter backforward items
when WKWebView perparing session state.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2016-07-08
Reviewed by Brady Eidson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _sessionStateWithFilter:]): When preparing session state, check each
backforward item against the filter block.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Add the SPI _sessionStateWithFilter:
5:28 PM Changeset in webkit [203013] by dbates@webkit.org
  • 4 edits in trunk/Source/WebCore

Move shouldInheritSecurityOriginFromOwner() from URL to Document
https://bugs.webkit.org/show_bug.cgi?id=158987

Reviewed by Alex Christensen.

The URL class should not have knowledge of the concept of an origin or the semantics of origin
inheritance as these are higher level concepts. We should make URL::shouldInheritSecurityOriginFromOwner()
a static non-member, non-friend function of Document because its implements the origin semantics
for a Document object as described in section Origin of the HTML5 spec., <https://html.spec.whatwg.org/multipage/browsers.html#origin> (8 July 2016).
These semantics only apply to Documents.

No functionality changed. So, no new tests.

  • dom/Document.cpp:

(WebCore::shouldInheritSecurityOriginFromOwner): Added.
(WebCore::Document::initSecurityContext): Modified to call WebCore::shouldInheritSecurityOriginFromOwner().
(WebCore::Document::initContentSecurityPolicy): Ditto.

  • platform/URL.cpp:

(WebCore::URL::shouldInheritSecurityOriginFromOwner): Deleted.

  • platform/URL.h:
5:24 PM Changeset in webkit [203012] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ASSERTION FAILED: Heap::isMarked(cell) in SlotVisitor::appendToMarkStack(JSC::JSCell *)
https://bugs.webkit.org/show_bug.cgi?id=159588

Reviewed by Geoffrey Garen.

We were jettisoning a CodeBlock during GC that won't survive and its owning script
won't survive either. We can't install any code on the owning script as that involves
a write barrier that will "pull" the script back into the remembered set. Badness would
ensue. Added an early return in CodeBlock::jettison() when we are garbage collecting
and the owning script isn't marked.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettison):

5:19 PM Changeset in webkit [203011] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Setting table.tFoot or calling table.createTFoot() should append HTML tfont element to the end of the table
https://bugs.webkit.org/show_bug.cgi?id=159583
<rdar://problem/27255292>

In HTMLTableElement::createTFoot() I inadvertently made use of WTFMove() to move the instantiated
HTMLTableSectionElement into the argument passed to setTFoot(). We should use Ref::copyRef() instead
because we want this function to return the instantiated table section.

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::createTFoot):

5:15 PM Changeset in webkit [203010] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Mail messages don't start loading until scrolling completes
https://bugs.webkit.org/show_bug.cgi?id=159585
<rdar://problem/27088405>

Reviewed by Andy Estes.

  • UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:

(-[WKCustomProtocolLoader initWithCustomProtocolManagerProxy:customProtocolID:request:connection:]):
When scrolling, NSDefaultRunLoopMode isn't run, but NSRunLoopCommonModes are.
CFNetwork uses NSDefaultRunLoopMode if we tell NSURLConnection to "start immediately",
but we can instead schedule our NSURLConnection into NSRunLoopCommonModes
and start it ourselves, ensuring that it will be able to do work while scrolling is happening.

5:04 PM Changeset in webkit [203009] by dbates@webkit.org
  • 11 edits in trunk

Setting table.tFoot or calling table.createTFoot() should append HTML tfont element to the end of the table
https://bugs.webkit.org/show_bug.cgi?id=159583
<rdar://problem/27255292>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update expected result now that we append the HTML tfoot element to the end of the table.

  • web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt:

Source/WebCore:

he HTML standard has long since been revised to describe that assignment to property table.tFoot
or invoking table.createTFoot() will append the HTML tfoot element to the end of the table. This
behavior is defined in <https://html.spec.whatwg.org/multipage/tables.html#dom-table-tfoot> (8 July 2016)
and <https://html.spec.whatwg.org/multipage/tables.html#dom-table-createtfoot> for the property
table.tFoot and table.createTFoot(), respectively. This change makes our behavior match the
behavior in Mozilla Firefox, Microsoft Edge, Microsoft Internet Explorer 8 and later.

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::setTFoot): Append <tfoot> to the end of the table. Use RefPtr<>&& instead of PassRefPtr.
(WebCore::HTMLTableElement::createTFoot): Use RefPtr<>&& instead of PassRefPtr.

  • html/HTMLTableElement.h:

LayoutTests:

Update expected results now that we append the HTML tfoot element to the end of the table.

  • platform/efl/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/win/tables/mozilla/bugs/bug30418-expected.txt:
4:49 PM Changeset in webkit [203008] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Crash in layout test /media/video-buffered-range-contains-currentTime.html
https://bugs.webkit.org/show_bug.cgi?id=159109
<rdar://problem/26535750>

Reviewed by Alex Christensen.

Protect against _dataTasks being mutated and accessed on multiple simultaneous threads with a Lock.

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession dealloc]):
(-[WebCoreNSURLSession taskCompleted:]):
(-[WebCoreNSURLSession finishTasksAndInvalidate]):
(-[WebCoreNSURLSession invalidateAndCancel]):
(-[WebCoreNSURLSession getTasksWithCompletionHandler:]):
(-[WebCoreNSURLSession getAllTasksWithCompletionHandler:]):
(-[WebCoreNSURLSession dataTaskWithRequest:]):
(-[WebCoreNSURLSession dataTaskWithURL:]):

4:38 PM Changeset in webkit [203007] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.7.7

New tag.

3:58 PM Changeset in webkit [203006] by mark.lam@apple.com
  • 59 edits in trunk/Source/JavaScriptCore

Move CallFrame header info from JSStack.h to CallFrame.h
https://bugs.webkit.org/show_bug.cgi?id=159549

Reviewed by Geoffrey Garen.

CallFrame.h is a much better location for CallFrame header info.

Replaced CallFrame::init() with ExecState::initGlobalExec() because normal
CallFrames are setup by a different mechanism now. Only the globalExec is still
using it. So, might as well change it to be specifically for the globalExec.

Removed the use of JSStack::containsAddress() in ExecState::initGlobalExec()
because it is not relevant to the globalExec.

Also removed some unused code: JSStack::gatherConservativeRoots() and
JSStack::sanitizeStack() is never called for JIT builds.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/VirtualRegister.h:

(JSC::VirtualRegister::isValid):
(JSC::VirtualRegister::isLocal):
(JSC::VirtualRegister::isArgument):
(JSC::VirtualRegister::isHeader):
(JSC::VirtualRegister::isConstant):
(JSC::VirtualRegister::toLocal):
(JSC::VirtualRegister::toArgument):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:

(JSC::CallArguments::thisRegister):
(JSC::CallArguments::argumentRegister):
(JSC::CallArguments::stackOffset):
(JSC::CallArguments::argumentCountIncludingThis):
(JSC::CallArguments::argumentsNode):
(JSC::BytecodeGenerator::registerFor):

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitHomeObjectForCallee):
(JSC::emitGetSuperFunctionForConstruct):
(JSC::CallArguments::CallArguments):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGArgumentsUtilities.cpp:

(JSC::DFG::argumentsInvolveStackSlot):
(JSC::DFG::emitCodeToGetArgumentsArrayLength):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::get):
(JSC::DFG::ByteCodeParser::findArgumentPositionForLocal):
(JSC::DFG::ByteCodeParser::flush):
(JSC::DFG::ByteCodeParser::addCallWithoutSettingResult):
(JSC::DFG::ByteCodeParser::getArgumentCount):
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::forAllLocalsLiveInBytecode):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileEntry):
(JSC::DFG::JITCompiler::compileSetupRegistersForEntry):
(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::emitStoreCallSiteIndex):

  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSRExitCompiler.cpp:

(JSC::DFG::OSRExitCompiler::emitRestoreArguments):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitGetLength):
(JSC::DFG::SpeculativeJIT::emitGetCallee):
(JSC::DFG::SpeculativeJIT::emitGetArgumentStart):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileGetCallee):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArgumentCountIncludingThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetScope):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenPrologue):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsLength):
(JSC::FTL::DFG::LowerDFGToB3::getCurrentCallee):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsStart):
(JSC::FTL::DFG::LowerDFGToB3::callPreflight):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • interpreter/CallFrame.cpp:

(JSC::ExecState::initGlobalExec):
(JSC::CallFrame::callSiteBitsAreBytecodeOffset):
(JSC::CallFrame::callSiteAsRawBits):
(JSC::CallFrame::unsafeCallSiteAsRawBits):
(JSC::CallFrame::callSiteIndex):
(JSC::CallFrame::setCurrentVPC):
(JSC::CallFrame::callSiteBitsAsBytecodeOffset):

  • interpreter/CallFrame.h:

(JSC::CallSiteIndex::CallSiteIndex):
(JSC::ExecState::calleeAsValue):
(JSC::ExecState::callee):
(JSC::ExecState::unsafeCallee):
(JSC::ExecState::codeBlock):
(JSC::ExecState::unsafeCodeBlock):
(JSC::ExecState::scope):
(JSC::ExecState::setCallerFrame):
(JSC::ExecState::setScope):
(JSC::ExecState::argumentCount):
(JSC::ExecState::argumentCountIncludingThis):
(JSC::ExecState::argumentOffset):
(JSC::ExecState::argumentOffsetIncludingThis):
(JSC::ExecState::offsetFor):
(JSC::ExecState::noCaller):
(JSC::ExecState::setArgumentCountIncludingThis):
(JSC::ExecState::setCallee):
(JSC::ExecState::setCodeBlock):
(JSC::ExecState::setReturnPC):
(JSC::ExecState::argIndexForRegister):
(JSC::ExecState::callerFrameAndPC):
(JSC::ExecState::unsafeCallerFrameAndPC):
(JSC::ExecState::init): Deleted.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::dumpRegisters):

  • interpreter/Interpreter.h:

(JSC::calleeFrameForVarargs):

  • interpreter/JSStack.h:

(JSC::JSStack::containsAddress):
(JSC::JSStack::gatherConservativeRoots): Deleted.
(JSC::JSStack::sanitizeStack): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitAssertArgumentCountSane):
(JSC::AssemblyHelpers::emitRandomThunk):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::restoreReturnAddressBeforeReturn):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeaderPtr):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader32):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader64):
(JSC::AssemblyHelpers::emitPutToCallFrameHeader):
(JSC::AssemblyHelpers::emitPutToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::emitPutPayloadToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::emitPutTagToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::calleeFrameSlot):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::logShadowChickenProloguePacket):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::CallFrameShuffler):
(JSC::CallFrameShuffler::dump):
(JSC::CallFrameShuffler::extendFrameIfNeeded):
(JSC::CallFrameShuffler::prepareForSlowPath):
(JSC::CallFrameShuffler::prepareForTailCall):
(JSC::CallFrameShuffler::prepareAny):

  • jit/CallFrameShuffler.h:

(JSC::CallFrameShuffler::snapshot):
(JSC::CallFrameShuffler::setCalleeJSValueRegs):
(JSC::CallFrameShuffler::assumeCalleeIsCell):
(JSC::CallFrameShuffler::numLocals):
(JSC::CallFrameShuffler::getOld):
(JSC::CallFrameShuffler::setOld):
(JSC::CallFrameShuffler::firstOld):
(JSC::CallFrameShuffler::lastOld):
(JSC::CallFrameShuffler::isValidOld):
(JSC::CallFrameShuffler::argCount):
(JSC::CallFrameShuffler::getNew):

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):

  • jit/JITInlines.h:

(JSC::JIT::getConstantOperand):
(JSC::JIT::emitPutIntToCallFrameHeader):
(JSC::JIT::updateTopCallFrame):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_get_scope):
(JSC::JIT::emit_op_argument_count):
(JSC::JIT::emit_op_get_rest_length):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_get_scope):

  • jit/JSInterfaceJIT.h:

(JSC::JSInterfaceJIT::emitJumpIfNotType):
(JSC::JSInterfaceJIT::emitGetFromCallFrameHeaderPtr):
(JSC::JSInterfaceJIT::emitPutToCallFrameHeader):
(JSC::JSInterfaceJIT::emitPutCellToCallFrameHeader):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetVarargsFrame):
(JSC::emitSetupVarargsFrameFastCase):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::SpecializedThunkJIT):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LLIntData.cpp:

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

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::genericCall):
(JSC::LLInt::varargsSetup):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:
  • runtime/StackAlignment.h:

(JSC::roundArgumentCountToAlignFrame):
(JSC::roundLocalRegisterCountForFramePointerOffset):
(JSC::logStackAlignmentRegisters):

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::startFunction):
(JSC::WASMFunctionCompiler::endFunction):
(JSC::WASMFunctionCompiler::boxArgumentsAndAdjustStackPointer):
(JSC::WASMFunctionCompiler::callAndUnboxResult):

  • wasm/WASMFunctionSyntaxChecker.h:

(JSC::WASMFunctionSyntaxChecker::updateTempStackHeightForCall):

2:06 PM Changeset in webkit [203005] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Prevent fullscreen video dimension state from being reset after configuring.
https://bugs.webkit.org/show_bug.cgi?id=159578

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-08
Reviewed by Jer Noble.

This change moves setVideoElement() to after setMediaElement(), since setMediaElement() resets the
mediaState, undoing the configuration done by setVideoElement().

This change is fragile, but minimal. The proper, more comprehinsive fix will come later from
https://bugs.webkit.org/show_bug.cgi?id=159580.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setUpFullscreen):

1:52 PM Changeset in webkit [203004] by Chris Dumez
  • 3 edits
    6 adds in trunk

Object.defineProperty() should maintain existing getter / setter if not overridden in the new descriptor
https://bugs.webkit.org/show_bug.cgi?id=159576
<rdar://problem/27242197>

Reviewed by Mark Lam.

Source/JavaScriptCore:

Object.defineProperty() should maintain existing getter / setter if not
overridden in the new descriptor. Previously, if the property is a had
a custom getter / setter, and if the new descriptor only had a setter
(or only a getter), JSC would clear the existing getter (or setter).
This behavior did not match the EcmaScript specification or Firefox /
Chrome. This patch fixes the issue.

This fixes searching and search suggestions on www.iciba.com.

  • runtime/JSObject.cpp:

(JSC::validateAndApplyPropertyDescriptor):

LayoutTests:

Add test coverage.

  • js/dom/customAccessor-defineProperty-expected.txt: Added.
  • js/dom/customAccessor-defineProperty.html: Added.
  • js/dom/customAccessor-defineProperty_getterOnly-expected.txt: Added.
  • js/dom/customAccessor-defineProperty_getterOnly.html: Added.
  • js/dom/customAccessor-defineProperty_setterOnly-expected.txt: Added.
  • js/dom/customAccessor-defineProperty_setterOnly.html: Added.
1:14 PM Changeset in webkit [203003] by aestes@apple.com
  • 35 edits
    20 adds
    18 deletes in trunk

[Content Filtering] Load blocked pages more like other error pages are loaded
https://bugs.webkit.org/show_bug.cgi?id=159485
<rdar://problem/26014076>

Reviewed by Brady Eidson.

Source/WebCore:

Content filter blocked pages were being loaded by cancelling the provisional load of the
page that was blocked and then scheduling a navigation to the content filter error page.
Some clients would not expect a new, Web process-initiated provisional navigation to start
after a cancellation, though, and this would put them in a bad state.

This patch changes blocked page loading to behave more like loading other error pages.
Specifically:

  1. didFailProvisionalLoad is dispatched with a new, non-cancellation error code.
  2. The blocked page is loaded immediately after dispatching didFailProvisionalLoad, which prevents FrameLoader from creating a new back-forward list item for the substitute data load.
  3. A substitute data load initiated by the client for the blocked URL is ignored if ContentFilter will display its own error page.
  4. A file: URL is used instead of a custom scheme for the base URL of the blocked page, since some clients expect this.

Updated existing tests to capture frame load delegate callbacks and the back forward list.
Added new API tests: ContentFiltering.LoadAlternate*.

  • English.lproj/Localizable.strings: Added a WebKitErrorFrameLoadBlockedByContentFilter description.
  • Resources/ContentFilterBlockedPage.html: Added.
  • WebCore.xcodeproj/project.pbxproj: Added ContentFilterBlockedPage.html as a frameowrk resource.
  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::continueAfterWillSendRequest): Protected m_documentLoader,
since it might otherwise be deallocated inside ContentFilter::didDecide() if the load is blocked.
(WebCore::ContentFilter::stopFilteringMainResource): Only set m_state to Stopped if not
already Blocked, so that we don't forget this ContentFilter was blocked when calling
cancelMailResourceLoad() in didDecide().
(WebCore::ContentFilter::continueAfterResponseReceived): Protected m_documentLoader,
since it might otherwise be deallocated inside ContentFilter::didDecide() if the load is blocked.
(WebCore::ContentFilter::continueAfterDataReceived): Ditto.
(WebCore::ContentFilter::continueAfterNotifyFinished): Ditto.
(WebCore::ContentFilter::didDecide): Moved code from DocumentLoader::contentFilterDidBlock() to here.
Created a blockedByContentFilterError() and called cancelMainResourceLoad().
(WebCore::blockedPageURL): Returned a file: URL to ContentFilterBlockedPage.html in WebCore.framework.
(WebCore::ContentFilter::continueAfterSubstituteDataRequest): If the substitute data load
is for the same failingURL as the currently-displayed blocked page, ignore it.
(WebCore::ContentFilter::handleProvisionalLoadFailure): Load the blocked page if m_state is Blocked
and the ResourceError matches the error we used when previously calling cancelMainResourceLoad().
(WebCore::ContentFilter::unblockHandler): Deleted.
(WebCore::ContentFilter::replacementData): Deleted.
(WebCore::ContentFilter::unblockRequestDeniedScript): Deleted.

  • loader/ContentFilter.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::contentFilter): Returned m_contentFilter.
(WebCore::DocumentLoader::installContentFilterUnblockHandler): Deleted.
(WebCore::DocumentLoader::contentFilterDidBlock): Deleted.

  • loader/DocumentLoader.h:
  • loader/EmptyClients.h: Added a default implementation of blockedByContentFilterError().
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load): If m_loadType was already RedirectWithLockedBackForwardList
and we are loading subsitute data for a failing URL, continue to use RedirectWithLockedBackForwardList.
This prevents a new back-forward list item from being created when loading a blocked page in a subframe.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
Called ContentFilter::handleProvisionalLoadFailure() after dispatchDidFailProvisionalLoad().
(WebCore::FrameLoader::blockedByContentFilterError): Called FrameLoaderClient::blockedByContentFilterError().

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledSubstituteDataLoad::ScheduledSubstituteDataLoad): Deleted.
(WebCore::NavigationScheduler::scheduleSubstituteDataLoad): Deleted.

  • loader/NavigationScheduler.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): Ignored a substitute data load for a
failing URL if ContentFilter::continueAfterSubstituteDataRequest() returns false.

Source/WebKit/mac:

  • Misc/WebKitErrors.h: Defined WebKitErrorFrameLoadBlockedByContentFilter.
  • Misc/WebKitErrors.m:

(registerErrors): Registered WebKitErrorDescriptionFrameLoadBlockedByContentFilter.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::blockedByContentFilterError): Returned a ResourceError for WebKitErrorFrameLoadBlockedByContentFilter.

Source/WebKit2:

  • Shared/API/c/WKErrorRef.h: Defined kWKErrorCodeFrameLoadBlockedByContentFilter.
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added the resource directories
of WebCore.framework and WebKit.framework as paths with assumed read access.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::hasAssumedReadAccessToURL): Checked platformPathsWithAssumedReadAccess()
as well as m_localPathsWithAssumedReadAccess.
(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added a non-Cocoa implementation.

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebCoreSupport/WebErrors.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::blockedByContentFilterError): Called WebKit::blockedByContentFilterError().

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:

(WebKit::blockedByContentFilterError): Returned a ResourceError for kWKErrorCodeFrameLoadBlockedByContentFilter.

Tools:

Added API tests for WebView and WKWebView to verify that alternate HTML loaded in response
to a content filtering provisional navigation failure is ignored in preference of
ContentFilter's own error page.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm:

(-[LoadAlternateNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
(-[LoadAlternateNavigationDelegate webView:didFinishNavigation:]):
(loadAlternateTest):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFilteringPlugIn.mm:

(-[MockContentFilterEnabler initWithCoder:]):

  • TestWebKitAPI/Tests/mac/ContentFiltering.mm: Added.

(-[LoadAlternateFrameLoadDelegate webView:didFailProvisionalLoadWithError:forFrame:]):
(-[LoadAlternateFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::loadAlternateTest):
(TestWebKitAPI::TEST):

LayoutTests:

Changed allow-* and block-* tests from ref tests to text tests so that they can capture
frame load delegate callbacks and the back forward list.

  • contentfiltering/allow-after-add-data-expected.html: Removed.
  • contentfiltering/allow-after-add-data-expected.txt: Added.
  • contentfiltering/allow-after-finished-adding-data-expected.html: Removed.
  • contentfiltering/allow-after-finished-adding-data-expected.txt: Added.
  • contentfiltering/allow-after-response-expected.html: Removed.
  • contentfiltering/allow-after-response-expected.txt: Added.
  • contentfiltering/allow-after-will-send-request-expected.html: Removed.
  • contentfiltering/allow-after-will-send-request-expected.txt: Added.
  • contentfiltering/allow-never-expected.html: Removed.
  • contentfiltering/allow-never-expected.txt: Added.
  • contentfiltering/block-after-add-data-expected.html: Removed.
  • contentfiltering/block-after-add-data-expected.txt: Added.
  • contentfiltering/block-after-add-data-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-add-data-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-after-finished-adding-data-expected.html: Removed.
  • contentfiltering/block-after-finished-adding-data-expected.txt: Added.
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-after-response-expected.html: Removed.
  • contentfiltering/block-after-response-expected.txt: Added.
  • contentfiltering/block-after-response-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-response-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-response-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-response-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-after-will-send-request-expected.html: Removed.
  • contentfiltering/block-after-will-send-request-expected.txt: Added.
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-never-expected.html: Removed.
  • contentfiltering/block-never-expected.txt: Added.
  • contentfiltering/resources/contentfiltering.js: Added testRunner calls to dump as text,

dump frame load callbacks, and dump the back forward list. Changed from loading data: URLs
to file: URLs in the test iframe.

12:40 PM Changeset in webkit [203002] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

[Font Loading] The callback passed to document.fonts.ready should always be called
https://bugs.webkit.org/show_bug.cgi?id=158884

Reviewed by Dean Jackson.

Source/WebCore:

The boolean was simply not being reset when loads start.

Test: fast/text/font-face-set-ready-fire.html

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::startedLoading):

  • css/FontFaceSet.h:

LayoutTests:

  • TestExpectations:
  • fast/text/font-face-set-ready-fire-expected.txt: Added.
  • fast/text/font-face-set-ready-fire.html: Added.
12:01 PM Changeset in webkit [203001] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix 32-bit build.

  • PluginProcess/mac/PluginProcessShim.mm:
11:56 AM Changeset in webkit [203000] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Dumping the object graph doesn't work with verbose GC logging
https://bugs.webkit.org/show_bug.cgi?id=159569

Reviewed by Mark Lam.

The current object graph logging code tries to revisits the graph. This doesn't work
correctly and asking around it isn't used. The only way to dump the true object graph
is to log while we GC and that has obvious performance implications.
Therefore I eliminated GCLogging::dumpObjectGraph() and related code.

  • heap/GCLogging.cpp:

(JSC::GCLogging::levelAsString):
(JSC::LoggingFunctor::LoggingFunctor): Deleted.
(JSC::LoggingFunctor::~LoggingFunctor): Deleted.
(JSC::LoggingFunctor::operator()): Deleted.
(JSC::LoggingFunctor::log): Deleted.
(JSC::LoggingFunctor::reviveCells): Deleted.
(JSC::LoggingFunctor::returnValue): Deleted.
(JSC::GCLogging::dumpObjectGraph): Deleted.

  • heap/Heap.cpp:

(JSC::Heap::didFinishCollection):

11:52 AM Changeset in webkit [202999] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline fast/shadow-dom/trusted-event-scoped-flags.html for ios-simulator after r202953.

Unreviewed test gardening.

  • platform/ios-simulator/fast/shadow-dom/trusted-event-scoped-flags-expected.txt:
11:52 AM Changeset in webkit [202998] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

REGRESSION (r196321): Adobe Reader DC + Safari : Zoom level pulldown is not displayed at the correct position
https://bugs.webkit.org/show_bug.cgi?id=159531
rdar://problem/26382579

Reviewed by Tim Horton.

There's code in the Adobe Acrobat framework that checks if the main bundle identifier is "com.apple.WebKit.PluginProcess"
and assumes that it's running inside the Adobe Reader app if it's something else. Since we're now using the XPC service
for all plug-ins, the bundle identifier is "com.apple.WebKit.Plugin.64", so the Acrobat framework assumes it's running in the app
and doesn't use any special tricks to show the popup menu.

Work around this by shimming CFStringCompare, and looking for the exact conditions when this can happen and return kCFCompareEqualTo
when all conditions are true.

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::isAdobeAcrobatAddress):
(WebKit::stringCompare):
(WebKit::initializeShim):
(WebKit::PluginProcess::platformInitializeProcess):

  • PluginProcess/mac/PluginProcessShim.h:
  • PluginProcess/mac/PluginProcessShim.mm:

(WebKit::shimCFStringCompare):

11:48 AM Changeset in webkit [202997] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

speculateTypedArrayIsNotNeutered has an inverted speculation
https://bugs.webkit.org/show_bug.cgi?id=159571

Reviewed by Mark Lam.

For some confusing reason FTLLowerDFGToB3 takes the condition the
speculation wants to be false. This issue caused
typedarray-access-monomorphic-neutered.js to fail on the bots.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotNeutered):

11:34 AM Changeset in webkit [202996] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed: Fix case-sensitive filesystem build.

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
11:22 AM Changeset in webkit [202995] by commit-queue@webkit.org
  • 35 edits
    18 adds
    20 deletes in trunk

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

caused some tests to crash under GuardMalloc (Requested by
estes on #webkit).

Reverted changeset:

"[Content Filtering] Load blocked pages more like other error
pages are loaded"
https://bugs.webkit.org/show_bug.cgi?id=159485
http://trac.webkit.org/changeset/202944

11:01 AM Changeset in webkit [202994] by jdiggs@igalia.com
  • 4 edits in trunk/LayoutTests

AX: Eliminate test noise from roles-computedRoleString.html
https://bugs.webkit.org/show_bug.cgi?id=159563

Reviewed by Chris Fleizach.

Ensure we hide all the content, as the test intends to do.

  • accessibility/roles-computedRoleString-expected.txt: Updated.
  • accessibility/roles-computedRoleString.html: Updated.
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated.
10:54 AM Changeset in webkit [202993] by Keith Rollin
  • 4 edits in trunk/Source/WebKit2

Add always-on logging for downloads
https://bugs.webkit.org/show_bug.cgi?id=159521
<rdar://problem/26630645>

Reviewed by Alex Christensen.

Add logging statements that track when a download starts, when it
first receives data, and when the download is done (due to completion,
cancelation, or failure).

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::Download):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
(WebKit::Download::isAlwaysOnLoggingAllowed):

  • NetworkProcess/Downloads/Download.h:

(WebKit::Download::Download):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):

10:54 AM Changeset in webkit [202992] by mark.lam@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Rename jsCPUStackLimit to osStackLimitWithReserve and jsEmulatedStackLimit to cloopStackLimit.
https://bugs.webkit.org/show_bug.cgi?id=159544

Reviewed by Geoffrey Garen.

This patch does the following refactoring:

  1. Rename jsCPUStackLimit to osStackLimitWithReserve.
  2. Rename jsEmulatedStackLimit to cloopStackLimit.
  3. Remove llintStackLimit (which previously is either an alias for jsCPUStackLimit or jsEmulatedStackLimit depending on whether we have a JIT or C Loop build). Instead, we'll change the LLINT to conditionally use the osStackLimitWithReserve or cloopStackLimit.

There are no semantic changes.

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • interpreter/JSStack.cpp:

(JSC::JSStack::JSStack):
(JSC::JSStack::growSlowCase):
(JSC::JSStack::lowAddress):
(JSC::JSStack::highAddress):

  • interpreter/JSStack.h:
  • interpreter/JSStackInlines.h:

(JSC::JSStack::ensureCapacityFor):
(JSC::JSStack::shrink):
(JSC::JSStack::grow):
(JSC::JSStack::setCLoopStackLimit):
(JSC::JSStack::setJSEmulatedStackLimit): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetupVarargsFrameFastCase):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/RegExp.cpp:

(JSC::RegExp::finishCreation):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • runtime/VM.cpp:

(JSC::VM::updateStackLimit):

  • runtime/VM.h:

(JSC::VM::reservedZoneSize):
(JSC::VM::osStackLimitWithReserve):
(JSC::VM::addressOfOSStackLimitWithReserve):
(JSC::VM::cloopStackLimit):
(JSC::VM::setCLoopStackLimit):
(JSC::VM::isSafeToRecurse):
(JSC::VM::jsCPUStackLimit): Deleted.
(JSC::VM::addressOfJSCPUStackLimit): Deleted.
(JSC::VM::jsEmulatedStackLimit): Deleted.
(JSC::VM::setJSEmulatedStackLimit): Deleted.

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::startFunction):

10:52 AM Changeset in webkit [202991] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Remove mrobinson from the MathML watchlist
https://bugs.webkit.org/show_bug.cgi?id=159559

Patch by Martin Robinson <mrobinson@igalia.com> on 2016-07-08
Reviewed by Philippe Normand.

  • Scripts/webkitpy/common/config/watchlist: Remove my email from the watchlist.
10:48 AM Changeset in webkit [202990] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.3

New tag.

10:45 AM Changeset in webkit [202989] by bshafiei@apple.com
  • 7 edits in branches/safari-602.1.40-branch/Source

Merged r202987. rdar://problem/27244394

10:42 AM Changeset in webkit [202988] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking some mathml tests as timeouts after r202983.

Unreviewed test gardening.

10:17 AM Changeset in webkit [202987] by commit-queue@webkit.org
  • 7 edits in trunk/Source

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

Caused build failure (Requested by perarne on #webkit).

Reverted changeset:

"[Win] DLLs are missing version information."
https://bugs.webkit.org/show_bug.cgi?id=159349
http://trac.webkit.org/changeset/202799

10:15 AM Changeset in webkit [202986] by commit-queue@webkit.org
  • 15 edits in trunk/Source/JavaScriptCore

Built-in generator should generate files with a default copyright
https://bugs.webkit.org/show_bug.cgi?id=159561

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-08
Reviewed by Alex Christensen.

  • Scripts/builtins/builtins_model.py:

(BuiltinsCollection._parse_copyright_lines): Adding default copyright to the parsed copyrights.

  • Scripts/builtins/builtins_templates.py:

(BuiltinsGeneratorTemplates): Adding a default copyright.

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result: Rebasing with added default copyright.
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result: Ditto.
10:11 AM Changeset in webkit [202985] by Antti Koivisto
  • 3 edits
    3 adds in trunk

Regression(r201805): Crash with <use> resource that has Vary header
https://bugs.webkit.org/show_bug.cgi?id=159560
<rdar://problem/27034208>

Reviewed by Chris Dumez.

Source/WebCore:

In some situations (SVG <use> element for example) we may try to load resources from frameless documents.
Such loads always fail. The new vary header verification code path tried to access the frame earlier without
null check.

Test: http/tests/cache/vary-frameless-document.html

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::failBeforeStarting):
(WebCore::addAdditionalRequestHeadersToRequest):

Null check frame.
Also move the resource type check here so all callers get the same behavior.

(WebCore::CachedResource::addAdditionalRequestHeaders):
(WebCore::CachedResource::load):
(WebCore::CachedResource::varyHeaderValuesMatch):

LayoutTests:

  • http/tests/cache/resources/svg-defs-vary.php: Added.
  • http/tests/cache/vary-frameless-document-expected.txt: Added.
  • http/tests/cache/vary-frameless-document.html: Added.
10:03 AM Changeset in webkit [202984] by beidson@apple.com
  • 7 edits
    2 adds in trunk

Clearing LocalStorage doesn't also delete -wal and -shm files.
<rdar://problem/27206772> and https://bugs.webkit.org/show_bug.cgi?id=159566

Reviewed by Brent Fulgham.
Also helpfully picked over by Andy "Never Forgets" Estes.

Source/WebCore:

Covered by new API test.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/sql/SQLiteFileSystem.h:

Source/WebKit2:

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm: Added.
9:42 AM Changeset in webkit [202983] by Ryan Haddad
  • 4 edits
    2 deletes in trunk

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

The test for this change is failing on all platforms.
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"[Font Loading] The callback passed to document.fonts.ready
should always be called"
https://bugs.webkit.org/show_bug.cgi?id=158884
http://trac.webkit.org/changeset/202945

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-08

9:27 AM Changeset in webkit [202982] by keith_miller@apple.com
  • 16 edits
    3 adds in trunk

TypedArrays need more isNeutered checks.
https://bugs.webkit.org/show_bug.cgi?id=159231

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

According to the ES6 spec if a user tries to get, set, or define a
property on a neutered TypedArray we should throw an
exception. Currently, if a user tries to get an out of bounds
access on a TypedArray we will always OSR. This makes handling
the exception easy as all we need to do is make out of bounds gets
in PolymorphicAccess go to the slow path, which will then throw
the appropriate exception. For the case of set, we need ensure we
don't OSR on each out of bounds put since, for some confusing
reason, people do this. Thus, for GetByVal in the DFG/FTL if the
user accesses out of bounds we then need to check if the view has
been neutered. If it is neutered then we will OSR.

Additionally, this patch adds a bunch of isNeutered checks to
various prototype functions for TypedArray, which are needed for
correctness.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::jumpForTypedArrayIsNeuteredIfOutOfBounds):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):

  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotNeutered):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

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

(JSC::encodedJSUndefined):
(JSC::encodedJSValue):

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

(JSC::JSGenericTypedArrayView<Adaptor>::throwNeuteredTypedArrayTypeError):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlot):
(JSC::JSGenericTypedArrayView<Adaptor>::put):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlotByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::deletePropertyByIndex):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncCopyWithin):
(JSC::genericTypedArrayViewProtoFuncFill):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewProtoFuncSlice):
(JSC::genericTypedArrayViewProtoFuncSubarray):

  • tests/stress/fold-typed-array-properties.js:
  • tests/stress/typedarray-access-monomorphic-neutered.js: Added.

(check):
(test):
(testFTL):

  • tests/stress/typedarray-access-neutered.js: Added.

(check):
(test):

  • tests/stress/typedarray-functions-with-neutered.js:

(defaultForArg):
(callWithArgs):
(checkArgumentsForType):
(checkArguments):

  • tests/stress/typedarray-view-string-properties-neutered.js: Added.

(call):
(test):

LayoutTests:

Update tests that assert that we can access indexed properties on
a neutered TypedArray.

  • fast/canvas/webgl/script-tests/arraybuffer-transfer-of-control.js:

(assertViewClosed):

  • js/dom/dfg-typed-array-neuter-expected.txt:
  • js/dom/script-tests/dfg-typed-array-neuter.js:
8:52 AM Changeset in webkit [202981] by nael.ouedraogo@crf.canon.fr
  • 15 edits in trunk/Source/WebCore

ExecState should be passed by reference in JS bindings generator for custom constructors
https://bugs.webkit.org/show_bug.cgi?id=159357

Reviewed by Youenn Fablet.

Pass ExecState as a reference instead of pointer in JS bindings
code for custom constructors.

  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::constructJSAudioContext):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSDOMFormDataCustom.cpp:

(WebCore::constructJSDOMFormData):
(WebCore::JSDOMFormData::append):

  • bindings/js/JSDataCueCustom.cpp:

(WebCore::constructJSDataCue):

  • bindings/js/JSFileCustom.cpp:

(WebCore::constructJSFile):

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

  • bindings/js/JSMediaSessionCustom.cpp:

(WebCore::constructJSMediaSession):

  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::constructJSMutationObserver):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

(WebCore::constructJSReadableStreamController):
(WebCore::constructJSReadableStreamReader):

  • bindings/js/JSWebKitPointCustom.cpp:

(WebCore::constructJSWebKitPoint):

  • bindings/js/JSWorkerCustom.cpp:

(WebCore::constructJSWorker):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateConstructorDefinition):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::construct):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
8:48 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
8:48 AM Changeset in webkit [202980] by Chris Dumez
  • 7 edits in trunk

Expose crossOrigin attribute as a static property in HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=159459

Patch by Olivier Blin <Olivier Blin> on 2016-07-08
Reviewed by Chris Dumez.

The crossOrigin attribute is already used for MediaResourceLoader
(r119742 and r175050), but it was not exposed as a static property.

This fixes VR360 support in Dailymotion, since it uses the "in"
operator to detect if crossOrigin is supported by the
HTMLVideoElement, in order to enable VR360.

No new tests, rebaselined existing tests, 150 WPT tests are fixed.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setCrossOrigin):
(WebCore::HTMLMediaElement::crossOrigin):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
8:30 AM Changeset in webkit [202979] by fred.wang@free.fr
  • 14 edits
    13 adds in trunk

Use Fraction* parameters from the OpenType MATH table
https://bugs.webkit.org/show_bug.cgi?id=155639

Source/WebCore:

Patch by Frederic Wang <fwang@igalia.com> on 2016-03-20
Reviewed by Brent Fulgham.

We improve the RenderMathMLFraction so minimal vertical shifts and gaps
from the MATH table (or arbitrary fallback) are used for fractions.
We also change the interpretation of "thick" and "thin" linethickness values
to match Gecko's behavior and the one suggested in the MathML in HTML5 implementation note.

Test: imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1.html

  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::updateStyleIfNeeded): set NeedsLayout after displaystyle change
so that dynamic MathML tests still work.

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::RenderMathMLFraction): Init LayoutUnit members to zero.
(WebCore::RenderMathMLFraction::updateFromElement):
Set new members for fraction gaps and shifts using Fraction* constants or some fallback
values. Change the interpretation of "thick" and "thin".
(WebCore::RenderMathMLFraction::layoutBlock): Use new constants affecting vertical
positions of numerator and denominator.
(WebCore::RenderMathMLFraction::paint): Use m_ascent to set the vertical position
of the fraction bar.
(WebCore::RenderMathMLFraction::firstLineBaseline): We just return m_ascent.

  • rendering/mathml/RenderMathMLFraction.h: Make updateFromElement public so that

it can be used in MathMLStyle. Add LayoutUnit members for the ascent of the fraction
and for minimal shifts/gaps values.

LayoutTests:

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-08
Reviewed by Brent Fulgham.

We import a test from the MathML in HTML5 test suite to verify Fraction* parameters.
We also do some small test adjustments.

  • TestExpectations: We disable fractions-positions.html for now until it is replaced with a more reliable test.
  • imported/mathml-in-html5/fonts/math/fraction-axisheight7000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-rulethickness10000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1.html: Added.
  • mathml/presentation/fractions-linethickness-expected.html: Adjust the test to interpret

"thick" and "thin" as suggested the MathML in HTML5 implementation note.

  • mathml/presentation/stretchy-depth-height-symmetric.html: Increase error tolerance.
  • platform/gtk/mathml/presentation/roots-expected.png: Handle small rendering changes.
  • platform/gtk/mathml/presentation/roots-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/mac/mathml/presentation/roots-expected.txt: Ditto.
8:03 AM Changeset in webkit [202978] by Konstantin Tokarev
  • 3 edits in trunk/Tools

Removed Qt leftovers from Tools.
https://bugs.webkit.org/show_bug.cgi?id=159557

Reviewed by Csaba Osztrogonác.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:

Removed 'qt' platform config.

  • Scripts/webkitpy/common/net/bugzilla/bug.py:

Deleted non-functional e-mail address.

6:16 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
6:05 AM Changeset in webkit [202977] by fred.wang@free.fr
  • 12 edits
    10 adds in trunk

Use Radical* constants from the OpenType MATH table.
https://bugs.webkit.org/show_bug.cgi?id=155638

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-08
Reviewed by Brent Fulgham.

Source/WebCore:

Test: mathml/mathml-in-html5/root-parameters-1.html

We make the radical vertical gap depends on displaystyle.
This is the only remaining step to use all the Radical* constants from the MATH table.
We also introduce a ruleThicknessFallback function for future use.

  • rendering/mathml/RenderMathMLBlock.h:

(WebCore::RenderMathMLBlock::ruleThicknessFallback): Add this helper function since that
calculation is used in several places.

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::updateStyle): Reorganize the way we set constant parameters,
add more comments and take into account the displaystyle for the vertical gap.

LayoutTests:

Import a test from the MathML in HTML5 test suite to verify all the Radical* parameters.
For test RadicalDegreeBottomRaisePercent, WebKit's drawing of one of the radical sign
is weird. This causes unexpected height of the radical and a fortiori wrong vertical
position of the index. For now, we tweak that height to make the test pass.

  • imported/mathml-in-html5/fonts/radical-degreebottomraisepercent25-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-displaystyleverticalgap7000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-extraascender3000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-kernafterdegreeminus5000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-kernbeforedegree4000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-rulethickness8000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-verticalgap6000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/radicals/root-parameters-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/radicals/root-parameters-1.html: Added.
  • platform/gtk/mathml/radical-fallback-expected.png: Updated to take into account new rendering.
  • platform/gtk/mathml/radical-fallback-expected.txt: Ditto.
  • platform/mac/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/mac/mathml/presentation/roots-expected.txt: Ditto.
  • platform/mac/mathml/radical-fallback-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/ios-simulator/mathml/radical-fallback-expected.txt: Ditto.
5:22 AM Changeset in webkit [202976] by commit-queue@webkit.org
  • 4 edits in trunk

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

This patch caused crashes in https tests on Windows (Requested
by perarne on #webkit).

Reverted changeset:

"[Win] The test http/tests/security/contentSecurityPolicy
/upgrade-insecure-requests/basic-upgrade.https.html is
failing."
https://bugs.webkit.org/show_bug.cgi?id=159510
http://trac.webkit.org/changeset/202967

3:42 AM Changeset in webkit [202975] by commit-queue@webkit.org
  • 20 edits
    4 adds
    4 deletes in trunk

Generate WebCore builtin wrapper files
https://bugs.webkit.org/show_bug.cgi?id=159461

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-08
Reviewed by Brian Burg.

Source/JavaScriptCore:

Updating builtin generator to generate wrapper files used in WebCore (See WebCore change log).
Rebasing builtins generator test results according generator changes by activating wrapper file generation for
WebCore builtins tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/builtins/builtins.py: Adding new generators.
  • Scripts/builtins/builtins_generate_internals_wrapper_header.py: Added to generate WebCoreJSBuiltinInternals.h.
  • Scripts/builtins/builtins_generate_internals_wrapper_implementation.py: Added to generate WebCoreJSBuiltinInternals.cpp.
  • Scripts/builtins/builtins_generate_wrapper_header.py: Added to generate WebCoreJSBuiltins.h.
  • Scripts/builtins/builtins_generate_wrapper_implementation.py: Added to generate WebCoreJSBuiltins.cpp.
  • Scripts/generate-js-builtins.py: Adding new option to activate generation of the wrapper files.

(generate_bindings_for_builtins_files):

  • 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:

Source/WebCore:

No change of behavior.

Updating build system to handle new built-in generators without modifying WebCoreJSBuiltins* files.
The generator is now passed all built-ins at once so that wrapper files can be generated.
Removing WebCoreJSBuiltins* checked-in wrapper files.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/WebCoreJSBuiltinInternals.cpp: Removed.
  • bindings/js/WebCoreJSBuiltinInternals.h: Removed.
  • bindings/js/WebCoreJSBuiltins.cpp: Removed.
  • bindings/js/WebCoreJSBuiltins.h: Removed.

Tools:

  • Scripts/webkitpy/codegen/main.py:

(BuiltinsGeneratorTests.generate_from_js_builtins): Adding generate_wrapper option.
(BuiltinsGeneratorTests.run_tests): Using this option in WebCore test cases.

3:11 AM Changeset in webkit [202974] by Manuel Rego Casasnovas
  • 14 edits
    2 adds in trunk

[css-grid] Inline size is never indefinite during layout
https://bugs.webkit.org/show_bug.cgi?id=159253

Reviewed by Sergio Villar Senin.

Source/WebCore:

The issue is that the inline size of the grid container
is only indefinite while we're computing the intrinsic sizes.
During layout we should be able to resolve the percentage tracks
against that size. This makes Grid Layout compatible with regular blocks
regarding how inline percentages are resolved.

The patch passes the SizingOperation enum to RenderGrid::gridTrackSize().
That way we can know if we're computing the intrinsic sizes or not.

Test: fast/css-grid-layout/grid-container-percentage-columns.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::spanningItemCrossesFlexibleSizedTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
(WebCore::RenderGrid::rawGridTrackSize): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

Created a new test verifying the expected behavior. Updated the results
in a few tests too.

  • fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
  • fast/css-grid-layout/grid-columns-rows-get-set.html:
  • fast/css-grid-layout/grid-container-percentage-columns-expected.txt: Added.
  • fast/css-grid-layout/grid-container-percentage-columns.html: Added.
  • fast/css-grid-layout/named-grid-line-get-set-expected.txt:
  • fast/css-grid-layout/named-grid-line-get-set.html:
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt:
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size.html:

The results of this test now show some FAIL messages becase of a bug in
RenderBox::hasDefiniteLogicalHeight() (http://webkit.org/b/159251).

  • fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
  • fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
2:37 AM Changeset in webkit [202973] by fred.wang@free.fr
  • 8 edits
    7 adds in trunk

Use OpenType MATH constant AxisHeight.
https://bugs.webkit.org/show_bug.cgi?id=133567

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-08
Reviewed by Brent Fulgham.

Source/WebCore:

We make RenderMathMLOperator and RenderMathMLTable use the OpenType MATH constant AxisHeight.
These are the only remaining cases to handle since RenderMathMLFraction already uses that constant.

Tests: imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html

imported/mathml-in-html5/mathml/presentation-markup/tables/table-axis-height.html

  • rendering/mathml/RenderMathMLBlock.cpp: Make RenderMathMLTable use the math axis

for its vertical alignment and update a bit the comments.
(WebCore::axisHeight): Move the code in a static function that can be called by
RenderMathMLBlock and RenderMathMLTable.
(WebCore::RenderMathMLBlock::mathAxisHeight): Use axisHeight.
(WebCore::RenderMathMLTable::firstLineBaseline): Ditto.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::stretchTo):

LayoutTests:

Import tests from the MathML in HTML5 test suite to verify the AxisHeight parameter.

  • imported/mathml-in-html5/fonts/math/axisheight5000-verticalarrow14000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/tables/table-axis-height.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-expected.txt: Added.
1:57 AM Changeset in webkit [202972] by Manuel Rego Casasnovas
  • 6 edits in trunk

[css-grid] Disallow repeat() in grid-template shorthand
https://bugs.webkit.org/show_bug.cgi?id=159200

Reviewed by Sergio Villar Senin.

Source/WebCore:

As discussed on www-style, "repeat()" notation shouldn't be allowed
in the ASCII branch of the grid-template shorthand.
https://lists.w3.org/Archives/Public/www-style/2016May/0193.html

The patch uses an enum to invalidate "repeat()" when parsing
the grid-template shorthand.

Test: fast/css-grid-layout/grid-template-shorthand-get-set.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTemplateColumns): Add enum.
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns): Pass "DisallowRepeat"
when calling parseGridTemplateColumns().
(WebCore::CSSParser::parseGridTrackList): Use enum to allow/disallow repeat.

  • css/CSSParser.h: Define the new enum and modify method signatures to use it,

setting it to "AllowRepeat" by default.

LayoutTests:

Modified test to follow the new behavior including new cases.

  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-shorthand-get-set.html:
12:35 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:17 AM Changeset in webkit [202971] by jiewen_tan@apple.com
  • 4 edits in trunk/Source

Define DYLD_MACOSX_VERSION_10_12
https://bugs.webkit.org/show_bug.cgi?id=159525
<rdar://problem/26250296>

Reviewed by Brent Fulgham.

Source/WebKit/mac:

  • WebView/WebView.mm:

(shouldConvertInvalidURLsToBlank):
Replace 0x000A0C00 with DYLD_MACOSX_VERSION_10_12.

Source/WTF:

  • wtf/spi/darwin/dyldSPI.h:
12:15 AM Changeset in webkit [202970] by fred.wang@free.fr
  • 10 edits
    14 adds in trunk

Add support for movablelimits.
https://bugs.webkit.org/show_bug.cgi?id=155542

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-08
Reviewed by Brent Fulgham.

Source/WebCore:

Tests: mathml/presentation/displaystyle-1.html

mathml/presentation/displaystyle-2.html
mathml/presentation/displaystyle-3.html
mathml/presentation/mo-movablelimits-default.html
mathml/presentation/mo-movablelimits-dynamic.html
mathml/presentation/mo-movablelimits.html

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::parseAttribute): Take into account change of movablelimits.

  • rendering/mathml/MathMLOperatorDictionary.h: Remove FIXME comment.
  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::updateStyleIfNeeded): Force relayout and width computation when a
displaystyle value change.

  • rendering/mathml/RenderMathMLOperator.h:

(WebCore::RenderMathMLOperator::shouldMoveLimits): Helper function to test if the operator
should have his limits moved when used as a base of munder/mover/munderover.

  • rendering/mathml/RenderMathMLScripts.cpp: Allow munderover/munder/mover elements to use

this class and take the same behavior as the corresponding msubsup/msub/sup except for
the *scriptshift attributes.
(WebCore::RenderMathMLScripts::RenderMathMLScripts):
(WebCore::RenderMathMLScripts::getBaseAndScripts):
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths):
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
(WebCore::RenderMathMLScripts::layoutBlock):

  • rendering/mathml/RenderMathMLScripts.h: Allow some members to be accessible/overridden

by RenderMathMLUnderOver and add munderover/munder/mover in the kind.

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): We use the code from
RenderMathMLScripts to initialize m_kind.
(WebCore::RenderMathMLUnderOver::shouldMoveLimits): New function to determine if the base
should move its limits.
(WebCore::RenderMathMLUnderOver::computePreferredLogicalWidths): We use the code from
RenderMathMLScripts when the base should move its limits.
(WebCore::RenderMathMLUnderOver::layoutBlock): We use the code from RenderMathMLScripts when
the base should move its limits. Also improve the early return for invalid markup.
(WebCore::RenderMathMLUnderOver::unembellishedOperator): Deleted. We use the code from RenderMathMLScripts.
(WebCore::RenderMathMLUnderOver::firstLineBaseline): Deleted. We use the code from RenderMathMLScripts.

  • rendering/mathml/RenderMathMLUnderOver.h: We now inherit from RenderMathMLScripts and can

just remove members that exist in the parent. We define shouldMoveLimits() to determine
when the layout should be done the same as RenderMathMLScripts. For now, we try and be
safe with the rest of the code by continuing to claim that we are not a RenderMathMLScripts.

LayoutTests:

We import some reftests from Mozilla and write more tests in order to verify the effect of
movablelimits. We also adjust one existing test due to change in how munderover handles
invalid markup.

  • mathml/presentation/displaystyle-1.html: Added. Imported from Mozilla. This verifies the

inheritance of displaystyle via its effect on movablelimits.

  • mathml/presentation/displaystyle-1-expected.html: Added.
  • mathml/presentation/displaystyle-2.html: Added. Imported from Mozilla. Test the effect of

displaystyle on munder, mover and munderover with a movablelimits base.

  • mathml/presentation/displaystyle-2-expected.html: Added.
  • mathml/presentation/displaystyle-3.html: Added. Imported from Mozilla. Test dynamic change

of displaystyle via its effect on movablelimits.

  • mathml/presentation/displaystyle-3-expected.html: Added.
  • mathml/presentation/mo-movablelimits-default.html: Added. Test that the default

movablelimits value from the operator dictionary is correctly read.

  • mathml/presentation/mo-movablelimits-default-expected.html: Added.
  • mathml/presentation/mo-movablelimits-dynamic.html: Added. Imported from Mozilla.

Test dynamic change of movablelimits.

  • mathml/presentation/mo-movablelimits-dynamic-expected.html: Added.
  • mathml/presentation/mo-movablelimits.html: Added. Basic test to check the effect of

movablelimits on munder.

  • mathml/presentation/mo-movablelimits-expected.html: Added.
  • mathml/presentation/underover-scriptshifts.html: Added. This verifies that script shifts

do not have any effect on munderover/mover/munder elements when their limits are rendered
as postscripts.

  • mathml/presentation/underover-scriptshifts-expected.html: Added.
12:05 AM Changeset in webkit [202969] by Hunseop Jeong
  • 2 edits
    1 delete in trunk/Tools

[EFL] Fix build when media-stream is enabled.
https://bugs.webkit.org/show_bug.cgi?id=159206

Bump up the openwebrtc to find the correct package.

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
  • efl/patches/openwebrtc-clang-warning-fix.patch: Removed.
Note: See TracTimeline for information about the timeline view.