Timeline



May 7, 2018:

11:09 PM Changeset in webkit [231482] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Add missing exit not included in r231298.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureWebToStorageProcessConnection):

11:05 PM Changeset in webkit [231481] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

[JSCONLY] Enable ARMv7 DFG
https://bugs.webkit.org/show_bug.cgi?id=185415

Reviewed by Mark Lam.

Enable ARMv7 DFG JIT by default on Linux and FreeBSD.

  • wtf/Platform.h:
10:26 PM Changeset in webkit [231480] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC] Add FormattingContext::layoutOutOfFlowDescendants implementation
https://bugs.webkit.org/show_bug.cgi?id=185377

Reviewed by Antti Koivisto.

Also, remove FormattingContext's m_layoutContext member and pass it in to ::layout() instead.
In theory LayoutContext is needed only during ::layout() call.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):

  • layout/FormattingContext.h:

(WebCore::Layout::FormattingContext::layoutContext const):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::updateLayout):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layout const):

  • layout/inlineformatting/InlineFormattingContext.h:
10:02 PM Changeset in webkit [231479] by dbates@webkit.org
  • 29 edits in trunk/Source

Check X-Frame-Options and CSP frame-ancestors in network process
https://bugs.webkit.org/show_bug.cgi?id=185410
<rdar://problem/37733934>

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

Add enum traits for MessageSource and MessageLevel so that we can encode and decode them for IPC.

  • runtime/ConsoleTypes.h:

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj: Make PingLoader.h a private header so that we can include it in WebKit.
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived): Only check CSP frame-ancestors and X-Frame-Options here if
we are not checking them in the NetworkProcess and HTTP response access is restricted. I code is otherwise kept
unchanged. There may be opportunities to clean this code up more and share more of it. We should look into this
in subsequent bugs.

  • loader/DocumentLoader.h: Change visibility of stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() from

private to public and export it so that we can call it from the WebKit.

  • loader/PingLoader.h:
  • page/Settings.yaml: Add a new setting called networkProcessCSPFrameAncestorsCheckingEnabled (defaults: false)

and is hardcoded in WebPage.cpp to be enabled. This setting is used to determine if we will be using the NetworkProcess.
Ideally we wouldn't have this setting and just key off RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess().
However RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess() is always enabled in WebKit Legacy
at the time of writing (why?). And, strangely, RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess()
is conditionally enabled in WebKit. For now, we add a new setting, networkProcessCSPFrameAncestorsCheckingEnabled,
to determine if CSP checking should be performed in NetworkProcess. For checking to actually happen in NetworkProcess
and not in DocumentLoader::responseReceived() RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess()
will also need to be enabled.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowFrameAncestors const): Added a variant that takes a vector of ancestor origins.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::checkFrameAncestors): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFrameAncestorOrigins const): Ditto.

  • page/csp/ContentSecurityPolicyDirectiveList.h: Export constructor so that we can invoke it from NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions().
  • page/csp/ContentSecurityPolicyResponseHeaders.h:
  • platform/network/HTTPParsers.h: Export XFrameOptionsDisposition() so that we can use in WebKit.

Source/WebKit:

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const): Always encode the frame ancestor origins.
(WebKit::NetworkResourceLoadParameters::decode): Always decode the frame ancestor origins.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::shouldInterruptLoadForXFrameOptions): Added.
(WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions): Added.
(WebKit::NetworkResourceLoader::didReceiveResponse): Check if the load needs to be interrupted due
to a violation of the CSP frame-ancestors directive or X-Frame-Options. If there is a violation
then stop the load.
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry): Ditto.
(NetworkResourceLoader::addConsoleMessage): Added.
(NetworkResourceLoader::sendCSPViolationReport): Added.

  • NetworkProcess/NetworkResourceLoader.h:
  • Scripts/webkit/messages.py: Teach the generator about data types MessageLevel and MessageSource

as they are both defined in file JavaScriptCore/ConsoleTypes.h as opposed to independent headers.
Also tell the generator that these types should not be forward declared so that we can use these
types without their JSC:: prefix in WebPage.messages.in.

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage): Route WebPage messages to the appropriate
web page.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): Added message StopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied.

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied): Added.

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::addConsoleMessage):

  • WebProcess/WebPage/WebFrame.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::addConsoleMessage): Added.
(WebKit::WebPage::sendCSPViolationReport): Added.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Add messages AddConsoleMessage and SendCSPViolationReport

for adding a console message to Web Inspector and sending a CSP report, respectively.

9:19 PM Changeset in webkit [231478] by Yusuke Suzuki
  • 2 edits in trunk

[JSCOnly] Enable Intl.PluralRules
https://bugs.webkit.org/show_bug.cgi?id=185359

Reviewed by Daniel Bates.

Enable Intl.PluralRules because JSCOnly port enables features aggressively.

  • Source/cmake/OptionsJSCOnly.cmake:
9:18 PM Changeset in webkit [231477] by sbarati@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Make a compact version of VariableEnvironment that UnlinkedFunctionExecutable stores and hash-cons these compact environments as we make them
https://bugs.webkit.org/show_bug.cgi?id=185329
<rdar://problem/39961536>

Reviewed by Michael Saboff.

I was made aware of a memory goof inside of JSC where we would inefficiently
use space to represent an UnlinkedFunctionExecutable's parent TDZ variables.

We did two things badly:

  1. We used a HashMap instead of a Vector to represent the environment. Having

a HashMap is useful when looking things up when generating bytecode, but it's
space inefficient. Because UnlinkedFunctionExecutables live a long time because
of the code cache, we should have them store this information efficiently
inside of a Vector.

  1. We didn't hash-cons these environments together. If you think about how

some programs are structured, hash-consing these together is hugely profitable.
Consider some code like this:
`
const/let V_1 = ...;
const/let V_2 = ...;
...
const/let V_n = ...;

function f_1() { ... };
function f_2() { ... };
...
function f_n() { ... };
`

Each f_i would store an identical hash map for its parent TDZ variables
consisting of {V_1, ..., V_n}. This was incredibly dumb. With hash-consing,
each f_i just holds onto a reference to the environment.

I benchmarked this change against an app that made heavy use of the
above code pattern and it reduced its peak memory footprint from ~220MB
to ~160MB.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

  • bytecode/UnlinkedFunctionExecutable.h:
  • parser/VariableEnvironment.cpp:

(JSC::CompactVariableEnvironment::CompactVariableEnvironment):
(JSC::CompactVariableEnvironment::operator== const):
(JSC::CompactVariableEnvironment::toVariableEnvironment const):
(JSC::CompactVariableMap::get):
(JSC::CompactVariableMap::Handle::~Handle):

  • parser/VariableEnvironment.h:

(JSC::VariableEnvironmentEntry::bits const):
(JSC::VariableEnvironmentEntry::operator== const):
(JSC::VariableEnvironment::isEverythingCaptured const):
(JSC::CompactVariableEnvironment::hash const):
(JSC::CompactVariableMapKey::CompactVariableMapKey):
(JSC::CompactVariableMapKey::hash):
(JSC::CompactVariableMapKey::equal):
(JSC::CompactVariableMapKey::makeDeletedValue):
(JSC::CompactVariableMapKey::isHashTableDeletedValue const):
(JSC::CompactVariableMapKey::isHashTableEmptyValue const):
(JSC::CompactVariableMapKey::environment):
(WTF::HashTraits<JSC::CompactVariableMapKey>::emptyValue):
(WTF::HashTraits<JSC::CompactVariableMapKey>::isEmptyValue):
(WTF::HashTraits<JSC::CompactVariableMapKey>::constructDeletedValue):
(WTF::HashTraits<JSC::CompactVariableMapKey>::isDeletedValue):
(JSC::CompactVariableMap::Handle::Handle):
(JSC::CompactVariableMap::Handle::environment const):
(JSC::VariableEnvironment::VariableEnvironment): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
8:51 PM Changeset in webkit [231476] by dbates@webkit.org
  • 16 edits
    2 adds in trunk/Source

Abstract logic to log console messages and send CSP violation reports into a client
https://bugs.webkit.org/show_bug.cgi?id=185393
<rdar://problem/40036053>

Reviewed by Brent Fulgham.

Source/WebCore:

First pass at adding infrastructure to supporting CSP reporting from NetworkProcess and workers.
Replaces the existing ContentSecurityPolicy constructor that takes a Frame with one that
takes a ContentSecurityPolicyClient to delegate to for logging and sending reports. We will look
to remove ContentSecurityPolicy constructor that takes a ScriptExecutionContext in a follow up.

Standardize on instantiating a ContentSecurityPolicy with the full URL to resource that it protects
instead of taking only the SecurityOrigin of this URL. By taking the full URL the ContentSecurityPolicy
object is now capable of resolving a relative report URL without needing a Document/ScriptExecutionContext.

We are underutilizing the CSPInfo struct and ContentSecurityPolicyClient::willSendCSPViolationReport()
delegate callback in this patch. We will make use of this functionality in a subsequent patch to
support collecting script state (e.g. source line number) when reporting CSP violations in worker
threads. We also no longer go through the unnecessary motions to try to collect script state for a
frame-ancestors violation (since DocumentLoader extends ContentSecurityPolicyClient and does not
implement ContentSecurityPolicyClient::willSendCSPViolationReport()). The frame-ancestors directive
is checked before a document is parsed and executes script; => there will never be any script state
to collect; => it is not necessary to try to collect it as we currently do.

  • Sources.txt: Add file ContentSecurityPolicyClient.cpp. See the remarks for ContentSecurityPolicyClient.cpp

below on why we have this file.

  • WebCore.xcodeproj/project.pbxproj: Add files ContentSecurityPolicyClient.{h, cpp}.
  • dom/Document.cpp:

(WebCore::Document::initSecurityContext): Pass the URL of the protected document.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived): Ditto.
(WebCore::DocumentLoader::addConsoleMessage): Added.
(WebCore::DocumentLoader::sendCSPViolationReport): Added.
(WebCore::DocumentLoader::dispatchSecurityPolicyViolationEvent): Added.

  • loader/DocumentLoader.h:
  • loader/FrameLoaderClient.h: Fix typo in comment.
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Pass the URL of the worker script.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::ContentSecurityPolicy): Added overload that takes a URL&& and an optional
ContentSecurityPolicyClient*.
(WebCore::ContentSecurityPolicy::deprecatedURLForReporting const): Extracted and simplified stripURLForUseInReport()
into this member function.
(WebCore::ContentSecurityPolicy::reportViolation const): Modified to make use of the client, if we have
one and removed code for handling a ContentSecurityPolicy that was instantiated with a Frame.
(WebCore::ContentSecurityPolicy::logToConsole const): Ditto.
(WebCore::stripURLForUseInReport): Deleted; incorporated into ContentSecurityPolicy::deprecatedURLForReporting().

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyClient.cpp: Added. This file exists so that we can define the virtual

destructor out-of-line and export this abstract class so as to avoid the need for the vtable to be
defined in the translation unit of each derived class.

  • page/csp/ContentSecurityPolicyClient.h: Added.
  • page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::operator SecurityOriginData const): Added.

  • page/csp/ContentSecurityPolicySource.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope): Instantiate the ContentSecurityPolicy object with the
URL of the worker script.

Source/WebKit:

For now, build a URL from the source origin associated with the NetworkResourceLoader
and pass this to the ContentSecurityPolicy constructor.

Additionally, make NetworkLoadChecker::contentSecurityPolicy() non-const since it returns
a non-const pointer to a ContentSecurityPolicy object; => callers can mutate this object
right from under NetworkLoadChecker. Making this non-const makes this clear to a reader.
Also remove the mutable keyword from the definition of NetworkLoadChecker::m_contentSecurityPolicy.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::contentSecurityPolicy):
(WebKit::NetworkLoadChecker::contentSecurityPolicy const): Deleted.

  • NetworkProcess/NetworkLoadChecker.h:
7:16 PM Changeset in webkit [231475] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, add frame name in form-iframe-target-before-load-crash.html
https://bugs.webkit.org/show_bug.cgi?id=185408

The test started causing flakiness after r231456 because it would submit
the form in the main frame instead of the test frame.

  • fast/events/form-iframe-target-before-load-crash.html:
6:54 PM Changeset in webkit [231474] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix issue with running Speedometer PerfTest after r231450.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest):

6:34 PM Changeset in webkit [231473] by Simon Fraser
  • 3 edits
    2 adds in trunk

CSS filters which reference SVG filters fail to respect the "color-interpolation-filters" of the filter
https://bugs.webkit.org/show_bug.cgi?id=185343

Reviewed by Dean Jackson.

Source/WebCore:

Test: css3/filters/color-interpolation-filters.html

When applying CSS reference filters, apply the value of "color-interpolation-filters" for the
referenced filter effect element, just as we do for SVG filters.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::buildReferenceFilter):

LayoutTests:

  • css3/filters/color-interpolation-filters-expected.html: Added.
  • css3/filters/color-interpolation-filters.html: Added.
6:13 PM Changeset in webkit [231472] by Yusuke Suzuki
  • 7 edits in trunk/Source/JavaScriptCore

[DFG][MIPS] Simplify DFG code by increasing MIPS temporary registers
https://bugs.webkit.org/show_bug.cgi?id=185371

Reviewed by Mark Lam.

Since MIPS GPRInfo claims it has only 7 registers, some of DFG code exhausts registers.
As a result, we need to maintain separated code for MIPS. This increases DFG maintenance burden,
but actually MIPS have much more registers.

This patch adds $a0 - $a3 to temporary registers. This is OK since our temporary registers can be overlapped with
argument registers (see ARM, X86 implementations). These registers are caller-save ones, so we do not need to
have extra mechanism.

Then, we remove several unnecessary MIPS code in our JIT infrastructure.

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • jit/CCallHelpers.h:
  • jit/GPRInfo.h:

(JSC::GPRInfo::toRegister):
(JSC::GPRInfo::toIndex):

  • offlineasm/mips.rb:
6:05 PM Changeset in webkit [231471] by fpizlo@apple.com
  • 18 edits
    3 adds in trunk

DFG AI should have O(1) clobbering
https://bugs.webkit.org/show_bug.cgi?id=185287

Reviewed by Saam Barati.
JSTests:

  • stress/simple-ai-effect.js: Added.

(bar):
(foo):

Source/JavaScriptCore:


This fixes an old scalability probem in AI. Previously, if we did clobberWorld(), then we
would traverse all of the state available to the AI at that time and clobber it.

This changes clobberWorld() to be O(1). It just does some math to a clobber epoch.

This is a ~1% speed-up for compile times.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • dfg/DFGAbstractInterpreter.h:

(JSC::DFG::AbstractInterpreter::forNode):
(JSC::DFG::AbstractInterpreter::setForNode):
(JSC::DFG::AbstractInterpreter::clearForNode):
(JSC::DFG::AbstractInterpreter::variables): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::clobberWorld):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::forAllValues):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::clobberStructures):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeDoubleUnaryOpEffects):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::fastForwardToSlow):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::fastForwardTo):
(JSC::DFG::AbstractValue::clobberStructuresFor): Deleted.
(JSC::DFG::AbstractValue::observeInvalidationPoint): Deleted.
(JSC::DFG::AbstractValue::observeInvalidationPointFor): Deleted.

  • dfg/DFGAbstractValueClobberEpoch.cpp: Added.

(JSC::DFG::AbstractValueClobberEpoch::dump const):

  • dfg/DFGAbstractValueClobberEpoch.h: Added.

(JSC::DFG::AbstractValueClobberEpoch::AbstractValueClobberEpoch):
(JSC::DFG::AbstractValueClobberEpoch::first):
(JSC::DFG::AbstractValueClobberEpoch::clobber):
(JSC::DFG::AbstractValueClobberEpoch::observeInvalidationPoint):
(JSC::DFG::AbstractValueClobberEpoch::operator== const):
(JSC::DFG::AbstractValueClobberEpoch::operator!= const):
(JSC::DFG::AbstractValueClobberEpoch::structureClobberState const):
(JSC::DFG::AbstractValueClobberEpoch::clobberEpoch const):

  • dfg/DFGAtTailAbstractState.h:

(JSC::DFG::AtTailAbstractState::setForNode):
(JSC::DFG::AtTailAbstractState::clearForNode):
(JSC::DFG::AtTailAbstractState::numberOfArguments const):
(JSC::DFG::AtTailAbstractState::numberOfLocals const):
(JSC::DFG::AtTailAbstractState::operand):
(JSC::DFG::AtTailAbstractState::local):
(JSC::DFG::AtTailAbstractState::argument):
(JSC::DFG::AtTailAbstractState::clobberStructures):
(JSC::DFG::AtTailAbstractState::observeInvalidationPoint):
(JSC::DFG::AtTailAbstractState::variables): Deleted.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::performBlockCFA):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGFlowMap.h:

(JSC::DFG::FlowMap::at):
(JSC::DFG::FlowMap::atShadow):
(JSC::DFG::FlowMap::at const):
(JSC::DFG::FlowMap::atShadow const):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::beginBasicBlock):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):

  • dfg/DFGInPlaceAbstractState.h:

(JSC::DFG::InPlaceAbstractState::forNode):
(JSC::DFG::InPlaceAbstractState::setForNode):
(JSC::DFG::InPlaceAbstractState::clearForNode):
(JSC::DFG::InPlaceAbstractState::variablesForDebugging):
(JSC::DFG::InPlaceAbstractState::numberOfArguments const):
(JSC::DFG::InPlaceAbstractState::numberOfLocals const):
(JSC::DFG::InPlaceAbstractState::operand):
(JSC::DFG::InPlaceAbstractState::local):
(JSC::DFG::InPlaceAbstractState::argument):
(JSC::DFG::InPlaceAbstractState::variableAt):
(JSC::DFG::InPlaceAbstractState::clobberStructures):
(JSC::DFG::InPlaceAbstractState::observeInvalidationPoint):
(JSC::DFG::InPlaceAbstractState::fastForward):
(JSC::DFG::InPlaceAbstractState::variables): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetStack):

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

Update TestExpectations for imported/w3c/web-platform-tests/html/dom/interfaces.worker.html.
https://bugs.webkit.org/show_bug.cgi?id=185407

Unreviewed test gardening.

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

Mark http/tests/security/contentTypeOptions/nosniff-importScript-blocked.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184802

Unreviewed test gardening.

5:07 PM Changeset in webkit [231468] by fpizlo@apple.com
  • 14 edits in trunk

InPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
https://bugs.webkit.org/show_bug.cgi?id=185365

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch does three things to improve compile times:

  • Fixes some inlining goofs.


  • Adds the ability to measure compile times with run-jsc-benchmarks.


  • Dramatically improves the performance of InPlaceAbstractState::beginBasicBlock by removing the code that clears abstract values. It turns out that on constant folding "needed" this, in the sense that this was the only thing protecting it from loading the abstract value of a no-result node and then concluding that because it had a non-empty m_value, it could be constant-folded. Any node that produces a result will explicitly set its abstract value, so this problem can also be guarded by just having constant folding check if the node it wants to fold returns any result.


Solid 0.96% compile time speed-up across SunSpider-CompileTime and V8Spider-CompileTime.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::set):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::merge):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::doToChildrenWithNode):
(JSC::DFG::Graph::doToChildren):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::beginBasicBlock):

  • jit/JIT.cpp:

(JSC::JIT::totalCompileTime):

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

(GlobalObject::finishCreation):
(functionTotalCompileTime):

Source/WTF:

Fix some inlining goof-ups.

  • wtf/TinyPtrSet.h:

(WTF::TinyPtrSet::add):
(WTF::TinyPtrSet::merge):
(WTF::TinyPtrSet::addOutOfLine):
(WTF::TinyPtrSet::mergeOtherOutOfLine):

Tools:

Make it possible to measure compile times.

  • Scripts/run-jsc-benchmarks:
5:05 PM Changeset in webkit [231467] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG AI doesn't need to merge valuesAtTail - it can just assign them
https://bugs.webkit.org/show_bug.cgi?id=185355

Reviewed by Mark Lam.

This is a further attempt to improve compile times. Assigning AbstractValue ought to always
be faster than merging. There's no need to merge valuesAtTail. In most cases, assigning and
merging will get the same answer because the value computed this time will be either the same
as or more general than the value computed last time. If the value does change for some
reason, then valuesAtHead are already merged, which ensures monotonicity. Also, if the value
changes, then we have no reason to believe that this new value is less right than the last
one we computed. Finally, the one client of valuesAtTail (AtTailAbstractState) doesn't care
if it's getting the merged valuesAtTail or just some correct answer for valuesAtTail.

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::endBasicBlock):

4:59 PM Changeset in webkit [231466] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=185404

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:57 PM Changeset in webkit [231465] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

WebResourceLoadStatisticsStore::requestStorageAccess should call its completion handler on the main thread
https://bugs.webkit.org/show_bug.cgi?id=185403

Reviewed by Brent Fulgham.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):

4:37 PM Changeset in webkit [231464] by dbates@webkit.org
  • 9 edits in trunk

CSP status-code incorrect for document blocked due to violation of its frame-ancestors directive
https://bugs.webkit.org/show_bug.cgi?id=185366
<rdar://problem/40035116>

Reviewed by Brent Fulgham.

Source/WebCore:

Fixes an issue where the status-code in the sent CSP report for an HTTP document blocked because
its frame-ancestors directive was violated would be the status code of the previously loaded
document in the frame. If the previously loaded document was about:blank then this would be 0.

Currently whenever we send a CSP report we ask the document's loader (Document::loader()) for the
HTTP status code for the last response. Document::loader() returns the loader for the last committed
document its frame. For a frame-ancestors violation, a CSP report is sent before the document
that had the frame-ancestors directive has been committed and after it has been associate with a frame.
As a result we are in are in a transient transition state for the frame and hence the last response
for new document's loader (Document::loader()) is actually the last response of the previously loaded
document in the frame. Instead we need to take care to tell CSP about the HTTP status code for the
response associated with the document the CSP came from.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv):
(WebCore::Document::initSecurityContext):
Pass the HTTP status code to CSP.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::copyStateFrom):
(WebCore::ContentSecurityPolicy::responseHeaders const):
(WebCore::ContentSecurityPolicy::didReceiveHeaders):
(WebCore::ContentSecurityPolicy::didReceiveHeader):
(WebCore::ContentSecurityPolicy::reportViolation const):

  • page/csp/ContentSecurityPolicy.h:

Modify existing functions to take the HTTP status code, store it in a instance variable,
and reference this variable when reporting a violation.

  • page/csp/ContentSecurityPolicyResponseHeaders.cpp:

(WebCore::ContentSecurityPolicyResponseHeaders::ContentSecurityPolicyResponseHeaders):
(WebCore::ContentSecurityPolicyResponseHeaders::isolatedCopy const):

  • page/csp/ContentSecurityPolicyResponseHeaders.h:

(WebCore::ContentSecurityPolicyResponseHeaders::encode const):
(WebCore::ContentSecurityPolicyResponseHeaders::decode):
Store the HTTP status code along with the response headers.

LayoutTests:

Update existing test results now that we send the HTTP status code for the correct document.

  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-expected.txt:
4:32 PM Changeset in webkit [231463] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Update TestExpectations for inspector/sampling-profiler/named-function-expression.html.
https://bugs.webkit.org/show_bug.cgi?id=170830

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
4:32 PM Changeset in webkit [231462] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark platform/mac/media/audio-session-category-video-track-change.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184609

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:21 PM Changeset in webkit [231461] by dbates@webkit.org
  • 7 edits in trunk

CSP referrer incorrect for document blocked due to violation of its frame-ancestors directive
https://bugs.webkit.org/show_bug.cgi?id=185380

Reviewed by Brent Fulgham.

Source/WebCore:

Similar to <https://bugs.webkit.org/show_bug.cgi?id=185366>, fixes an issue where the referrer
in the sent CSP report for an HTTP document blocked because its frame-ancestors directive was
violated would be the referrer of the previously loaded document in the frame.

Currently whenever we send a CSP report we ask the document's loader (Document::loader()) for
the referrer for the last request. Document::loader() returns the loader for the last committed
document in its frame. For a frame-ancestors violation, a CSP report is sent before the document
that had the frame-ancestors directive has been committed and after it has been associate with a
frame. As a result we are in a transient transition state for the frame and hence the last request
for the new document's loader (Document::loader()) is actually the last request of the previously
loaded document in the frame. Instead we need to take care to tell CSP about the referrer for the
request associated with the document the CSP came from.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):

LayoutTests:

Update existing test results now that we send the referrer for the correct document.

  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-https-expected.txt:
3:44 PM Changeset in webkit [231460] by commit-queue@webkit.org
  • 30 edits in trunk/Source/JavaScriptCore

Remove defunct email address
https://bugs.webkit.org/show_bug.cgi?id=185396

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-05-07
Reviewed by Mark Lam.

The email address thetalecrafter@gmail.com is no longer valid, as the
associated google account has been closed. This updates the email
address so questions about these Intl contributions go to the right
place.

  • builtins/DatePrototype.js:
  • builtins/NumberPrototype.js:
  • builtins/StringPrototype.js:
  • runtime/IntlCollator.cpp:
  • runtime/IntlCollator.h:
  • runtime/IntlCollatorConstructor.cpp:
  • runtime/IntlCollatorConstructor.h:
  • runtime/IntlCollatorPrototype.cpp:
  • runtime/IntlCollatorPrototype.h:
  • runtime/IntlDateTimeFormat.cpp:
  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlDateTimeFormatConstructor.cpp:
  • runtime/IntlDateTimeFormatConstructor.h:
  • runtime/IntlDateTimeFormatPrototype.cpp:
  • runtime/IntlDateTimeFormatPrototype.h:
  • runtime/IntlNumberFormat.cpp:
  • runtime/IntlNumberFormat.h:
  • runtime/IntlNumberFormatConstructor.cpp:
  • runtime/IntlNumberFormatConstructor.h:
  • runtime/IntlNumberFormatPrototype.cpp:
  • runtime/IntlNumberFormatPrototype.h:
  • runtime/IntlObject.cpp:
  • runtime/IntlObject.h:
  • runtime/IntlPluralRules.cpp:
  • runtime/IntlPluralRules.h:
  • runtime/IntlPluralRulesConstructor.cpp:
  • runtime/IntlPluralRulesConstructor.h:
  • runtime/IntlPluralRulesPrototype.cpp:
  • runtime/IntlPluralRulesPrototype.h:
2:58 PM Changeset in webkit [231459] by youenn@apple.com
  • 11 edits in trunk/Source/ThirdParty/libwebrtc

Activate ARC for libwebrtc Objective C files
https://bugs.webkit.org/show_bug.cgi?id=185324

Reviewed by David Kilzer.

Revert changes made to libwebrtc to accomodate from not using ARC.
Use ARC for all libwebrtc objective C files.

Remove no longer needed export symbols and stop compiling the related files.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Configurations/libwebrtc.xcconfig:
  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
  • Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:

(-[RTCCVPixelBuffer dealloc]):

  • Source/webrtc/sdk/objc/Framework/Classes/Video/objc_frame_buffer.mm:

(webrtc::ObjCFrameBuffer::~ObjCFrameBuffer):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:

(-[RTCVideoDecoderH264 dealloc]):
(-[RTCVideoDecoderH264 setCallback:]):
(-[RTCVideoDecoderH264 releaseDecoder]):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 dealloc]):
(-[RTCVideoEncoderH264 setCallback:]):
(-[RTCVideoEncoderH264 releaseEncoder]):

  • libwebrtc.xcodeproj/project.pbxproj:
2:57 PM Changeset in webkit [231458] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

[iOS] Release page load process assertion if the screen is locked
https://bugs.webkit.org/show_bug.cgi?id=185333

Reviewed by Geoffrey Garen.

We normally take a background process assertion during page loads to allow them to complete
even if the tab / app is backgrounded. We should however avoid doing so when the backgrounding
is caused by the screen locking. Keeping the process assertion in this case would prevent the
whole device from sleeping longer than it should, thus negatively impacting power.

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationState):
(WebKit::NavigationState::releaseNetworkActivityToken):
(WebKit::NavigationState::didChangeIsLoading):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackground):

2:56 PM Changeset in webkit [231457] by achristensen@apple.com
  • 25 edits in trunk/Source

Add experimental feature to prompt for Storage Access API use
https://bugs.webkit.org/show_bug.cgi?id=185335
<rdar://problem/39994649>

Patch by Brent Fulgham <Brent Fulgham> on 2018-05-07
Reviewed by Alex Christensen and Youenn Fablet.

Create a new experimental feature that gates the ability of WebKit clients to prompt the user when
Storage Access API is invoked.

Currently this feature doesn't have any user-visible impact.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setStorageAccessPromptsEnabled):
(WebCore::RuntimeEnabledFeatures::storageAccessPromptsEnabled const):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setStorageAccessPromptsEnabled):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit:

  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • Shared/WebPreferences.yaml:
  • UIProcess/API/APIUIClient.h:

(API::UIClient::requestStorageAccessConfirm):

  • UIProcess/API/C/WKPage.cpp:

(WebKit::RequestStorageAccessConfirmResultListener::create):
(WebKit::RequestStorageAccessConfirmResultListener::~RequestStorageAccessConfirmResultListener):
(WebKit::RequestStorageAccessConfirmResultListener::call):
(WebKit::RequestStorageAccessConfirmResultListener::RequestStorageAccessConfirmResultListener):
(WKPageRequestStorageAccessConfirmResultListenerGetTypeID):
(WKPageRequestStorageAccessConfirmResultListenerCall):
(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _storageAccessPromptsEnabled]):
(-[WKPreferences _setStorageAccessPromptsEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::requestStorageAccessConfirm):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestStorageAccessConfirm):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::update):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::requestStorageAccess):

2:42 PM Changeset in webkit [231456] by Chris Dumez
  • 25 edits
    2 adds in trunk

Stop using an iframe's id as fallback if its name attribute is not set
https://bugs.webkit.org/show_bug.cgi?id=11388

Reviewed by Geoff Garen.

Source/WebCore:

WebKit had logic to use an iframe's id as fallback name when its name
content attribute is not set. This behavior was not standard and did not
match other browsers:

Gecko / Trident never behaved this way. Blink was aligned with us until
they started to match the specification in:

This WebKit quirk was causing some Web-compatibility issues because it
would affect the behavior of Window's name property getter when trying
to look up an iframe by id. Because of Window's named property getter
behavior [1], we would return the frame's contentWindow instead of the
iframe element itself.

[1] https://html.spec.whatwg.org/multipage/window-object.html#named-access-on-the-window-object

Test: fast/dom/Window/named-getter-frame-id.html

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::openURL):
(WebCore::HTMLFrameElementBase::parseAttribute):
(WebCore::HTMLFrameElementBase::didFinishInsertingNode):

  • html/HTMLFrameElementBase.h:

LayoutTests:

  • fast/dom/Window/named-getter-frame-id-expected.txt: Added.
  • fast/dom/Window/named-getter-frame-id.html: Added.

Add layout test coverage.

  • fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt:
  • fast/dom/Geolocation/srcdoc-watchPosition-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html:
  • fast/dom/Window/window-special-properties-expected.txt:
  • fast/frames/iframe-no-name-expected.txt:
  • fast/frames/iframe-no-name.html:
  • fast/layers/prevent-hit-test-during-layout.html:
  • fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
  • http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html:
  • http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt:
  • http/tests/security/cross-origin-reified-window-property-access.html:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt:
  • http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html:
  • http/wpt/beacon/keepalive-after-navigation-expected.txt:
  • http/wpt/cache-storage/cache-remove-twice.html:

Update some layout tests that relied on our old (non-standard) behavior.

2:06 PM Changeset in webkit [231455] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Tools

Test262-Runner: Add base module to the local deps - unicore/Exact.pl
https://bugs.webkit.org/show_bug.cgi?id=185390

Patch by Leo Balter <Leo Balter> on 2018-05-07
Reviewed by Michael Saboff.

  • Scripts/test262/local/lib/perl5/unicore/Exact.pl: Added.
2:00 PM Changeset in webkit [231454] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Use a dark gray for system preview bbackground
https://bugs.webkit.org/show_bug.cgi?id=185391
<rdar://problem/40035120>

Reviewed by Eric Carlson.

Throw some darker shade at this view.

  • UIProcess/ios/WKSystemPreviewView.mm:

(-[WKSystemPreviewView web_initWithFrame:webView:]):

1:48 PM Changeset in webkit [231453] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test webrtc/addICECandidate-closed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=185384

Reviewed by Eric Carlson.

Given that we are calling addIceCandidate and close the peer connection,
addIceCandidate might throw an error sometimes.
Catch the exception to make the test output stable.

  • webrtc/addICECandidate-closed.html:
1:08 PM Changeset in webkit [231452] by Jonathan Bedard
  • 4 edits in trunk/Tools

Check for com.apple.datamigrator before declaring simulators booted
https://bugs.webkit.org/show_bug.cgi?id=185315
<rdar://problem/39986261>

Reviewed by David Kilzer.

  • Scripts/webkitdirs.pm:

(waitUntilProcessNotRunning): Wait until a process is not found.
(relaunchIOSSimulator): Wait until com.apple.datamigrator stops running to declare
a simulator booted.

  • Scripts/webkitpy/common/system/executive_mock.py:

(MockExecutive2.init): Define _running_pids.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager.initialize_devices): Call wait_until_data_migration_is_done before
declaring that devices have been booted, increase the timeout since data migration will frequently
take longer than 60 seconds, especially with multiple simulators booting.
(SimulatedDeviceManager.swap): Ditto.
(SimulatedDeviceManager):
(SimulatedDeviceManager.wait_until_data_migration_is_done): Wait until there are no com.apple.datamigrator
processes running.

12:42 PM Changeset in webkit [231451] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

[Win] Add missing methods to WebChromeClient
https://bugs.webkit.org/show_bug.cgi?id=185325

Reviewed by Brent Fulgham.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
11:55 AM Changeset in webkit [231450] by Chris Dumez
  • 569 edits
    2 deletes in trunk

ASSERT(!childItemWithTarget(child->target())) is hit in HistoryItem::addChildItem()
https://bugs.webkit.org/show_bug.cgi?id=185322

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline layout tests due to frame name changes.

  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/001-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/003-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/navigation_unload_data_url-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/navigation_unload_same_origin-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/001-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/002-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/003-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/004-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/005-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/unload/003-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/unload/004-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/unload/007-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/unload/009-expected.txt:

Source/WebCore:

We generate unique names for Frame to be used in HistoryItem. Those names not only
need to be unique, they also need to be repeatable to avoid layout tests flakiness
and for things like restoring form state from a HistoryItem.

The previously generated frame names were relying on the Frame's index among a
parent Frame's children. The issue was that we could end up with duplicate names
because one could insert a Frame *before* an existing one. This is because the code
would not take care of updating existing Frames' unique name on frame tree mutation.

Updating frame tree names on mutation would be inefficient and is also not necessary.
The approach chosen in this patch is to stop using the Frame's index and instead rely
on an increasing counter stored on the top-frame's FrameTree. To make the names
repeatable, we reset the counter on page navigation.

  • page/Frame.cpp:

(WebCore::Frame::setDocument):

  • page/FrameTree.cpp:

(WebCore::FrameTree::uniqueChildName const):
(WebCore::FrameTree::generateUniqueName const):

  • page/FrameTree.h:

(WebCore::FrameTree::resetFrameIdentifiers):

LayoutTests:

Rebaseline layout tests due to frame name changes.

  • applicationmanifest/display-mode-subframe-expected.txt:
  • contentfiltering/allow-after-add-data-expected.txt:
  • contentfiltering/allow-after-finished-adding-data-expected.txt:
  • contentfiltering/allow-after-response-expected.txt:
  • contentfiltering/allow-after-will-send-request-expected.txt:
  • contentfiltering/allow-never-expected.txt:
  • contentfiltering/block-after-add-data-expected.txt:
  • contentfiltering/block-after-add-data-then-allow-unblock-expected.txt:
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.txt:
  • contentfiltering/block-after-finished-adding-data-expected.txt:
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.txt:
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.txt:
  • contentfiltering/block-after-response-expected.txt:
  • contentfiltering/block-after-response-then-allow-unblock-expected.txt:
  • contentfiltering/block-after-response-then-deny-unblock-expected.txt:
  • contentfiltering/block-after-will-send-request-expected.txt:
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.txt:
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.txt:
  • contentfiltering/block-never-expected.txt:
  • fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
  • fast/dom/Window/messageevent-source-postmessage-expected.txt:
  • fast/dom/Window/messageevent-source-postmessage-reified-expected.txt:
  • fast/dom/javascript-url-crash-function-expected.txt:
  • fast/encoding/meta-overrules-auto-expected.txt:
  • fast/events/before-unload-forbidden-navigation-expected.txt:
  • fast/events/before-unload-in-subframe-expected.txt:
  • fast/events/before-unload-with-subframes-expected.txt:
  • fast/events/focusingUnloadedFrame-expected.txt:
  • fast/events/onloadFrameCrash-expected.txt:
  • fast/events/onunload-not-on-body-expected.txt:
  • fast/events/pageshow-pagehide-expected.txt:
  • fast/events/stop-load-in-unload-handler-using-document-write-expected.txt:
  • fast/events/stop-load-in-unload-handler-using-window-stop-expected.txt:
  • fast/forms/form-and-frame-interaction-retains-values-expected.txt:
  • fast/frames/crash-when-child-iframe-forces-layout-during-unload-and-sibling-frame-has-mediaquery-expected.txt:
  • fast/frames/frame-element-name-expected.txt:
  • fast/frames/frame-src-attribute-expected.txt:
  • fast/frames/frame-unload-crash-expected.txt:
  • fast/frames/iframe-reparenting-unique-name-expected.txt:
  • fast/frames/iframe-set-inner-html-expected.txt:
  • fast/frames/layout-after-destruction-expected.txt:
  • fast/frames/long-names-in-nested-subframes-expected.txt:
  • fast/frames/page-unload-document-open-expected.txt:
  • fast/frames/reparent-in-unload-contentdocument-expected.txt:
  • fast/frames/sandboxed-iframe-noscript-expected.txt:
  • fast/frames/sandboxed-iframe-storage-expected.txt:
  • fast/frames/srcdoc/setting-src-does-nothing-expected.txt:
  • fast/frames/srcdoc/srcdoc-can-navigate-expected.txt:
  • fast/frames/srcdoc/srcdoc-loads-content-expected.txt:
  • fast/history/back-from-page-with-focused-iframe-expected.txt:
  • fast/history/history-back-initial-vs-final-url-expected.txt:
  • fast/history/redirect-via-iframe-expected.txt:
  • fast/loader/child-frame-add-after-back-forward-expected.txt:
  • fast/loader/dynamic-iframe-extra-back-forward-item-expected.txt:
  • fast/loader/fragment-navigation-base-blank-expected.txt:
  • fast/loader/frame-location-change-not-added-to-history-expected.txt:
  • fast/loader/frame-src-change-added-to-history-expected.txt:
  • fast/loader/frame-src-change-not-added-to-history-expected.txt:
  • fast/loader/frames-with-unload-handlers-in-page-cache-expected.txt:
  • fast/loader/grandparent-completion-starts-redirect-expected.txt:
  • fast/loader/iframe-meta-refresh-base-blank-expected.txt:
  • fast/loader/iframe-set-location-base-blank-expected.txt:
  • fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-async-delegate-expected.txt:
  • fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-expected.txt:
  • fast/loader/page-dismissal-modal-dialogs-expected.txt:
  • fast/loader/ping-error-expected.txt:
  • fast/loader/plain-text-document-expected.txt:
  • fast/loader/refresh-iframe-base-blank-expected.txt:
  • fast/loader/stateobjects/pushstate-frequency-iframe-expected.txt:
  • fast/loader/stateobjects/pushstate-in-iframe-expected.txt:
  • fast/loader/stateobjects/replacestate-frequency-iframe-expected.txt:
  • fast/loader/stateobjects/replacestate-in-iframe-expected.txt:
  • fast/loader/stop-provisional-loads-expected.txt:
  • fast/loader/subframe-removes-itself-expected.txt:
  • fast/loader/subframe-self-close-expected.txt:
  • fast/loader/unload-hyperlink-targeted-expected.txt:
  • fast/parser/double-write-from-closed-iframe-expected.txt:
  • fast/parser/iframe-sets-parent-to-javascript-url-expected.txt:
  • fast/parser/javascript-url-compat-mode-expected.txt:
  • fast/parser/move-during-parsing-expected.txt:
  • fast/parser/noscript-with-javascript-disabled-expected.txt:
  • fast/parser/pre-html5-parser-quirks-expected.txt:
  • fast/preloader/iframe-srcdoc-expected.txt:
  • fast/tokenizer/text-plain-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
  • fast/xsl/xslt-text-expected.txt:
  • http/tests/appcache/x-frame-options-prevents-framing-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url-expected.txt:
  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt:
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe-expected.txt:
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt:
  • http/tests/cookies/same-site/fetch-in-same-origin-service-worker-expected.txt:
  • http/tests/from-origin/document-from-origin-same-accepted-expected.txt:
  • http/tests/from-origin/document-from-origin-same-blocked-expected.txt:
  • http/tests/from-origin/document-from-origin-same-site-accepted-expected.txt:
  • http/tests/from-origin/document-from-origin-same-site-blocked-expected.txt:
  • http/tests/from-origin/document-nested-from-origin-same-accepted-expected.txt:
  • http/tests/from-origin/document-nested-from-origin-same-blocked-expected.txt:
  • http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked-expected.txt:
  • http/tests/from-origin/fetch-iframe-from-origin-same-accepted-expected.txt:
  • http/tests/from-origin/fetch-iframe-from-origin-same-blocked-expected.txt:
  • http/tests/from-origin/redirect-document-from-origin-same-blocked-expected.txt:
  • http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked-expected.txt:
  • http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked-expected.txt:
  • http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked-expected.txt:
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
  • http/tests/loading/basic-auth-remove-credentials-expected.txt:
  • http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
  • http/tests/loading/basic-credentials-sent-automatically-expected.txt:
  • http/tests/loading/pdf-commit-load-callbacks-expected.txt:
  • http/tests/loading/redirect-with-no-location-crash-expected.txt:
  • http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
  • http/tests/misc/authentication-redirect-1/authentication-sent-to-redirect-cross-origin-expected.txt:
  • http/tests/misc/authentication-redirect-2/authentication-sent-to-redirect-same-origin-expected.txt:
  • http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials-expected.txt:
  • http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url-expected.txt:
  • http/tests/misc/last-modified-parsing-expected.txt:
  • http/tests/misc/policy-delegate-called-twice-expected.txt:
  • http/tests/misc/redirect-to-external-url-expected.txt:
  • http/tests/misc/webtiming-origins-expected.txt: Removed.
  • http/tests/navigation/back-to-slow-frame-expected.txt:
  • http/tests/navigation/forward-and-cancel-expected.txt:
  • http/tests/navigation/image-load-in-subframe-unload-handler-expected.txt:
  • http/tests/navigation/lockedhistory-iframe-expected.txt:
  • http/tests/navigation/post-frames-expected.txt:
  • http/tests/navigation/reload-subframe-frame-expected.txt:
  • http/tests/navigation/reload-subframe-iframe-expected.txt:
  • http/tests/navigation/reload-subframe-object-expected.txt:
  • http/tests/preload/download_resources_from_header_iframe-expected.txt:
  • http/tests/preload/download_resources_from_invalid_headers-expected.txt:
  • http/tests/quicklook/at-import-stylesheet-blocked-expected.txt:
  • http/tests/quicklook/cross-origin-iframe-blocked-expected.txt:
  • http/tests/quicklook/document-domain-is-empty-string-expected.txt:
  • http/tests/quicklook/external-stylesheet-blocked-expected.txt:
  • http/tests/quicklook/hide-referer-on-navigation-expected.txt:
  • http/tests/quicklook/rtf-document-domain-is-empty-string-expected.txt:
  • http/tests/quicklook/same-origin-xmlhttprequest-allowed-expected.txt:
  • http/tests/quicklook/top-navigation-blocked-expected.txt:
  • http/tests/resourceLoadStatistics/add-blocking-to-redirect-expected.txt:
  • http/tests/resourceLoadStatistics/add-partitioning-to-redirect-expected.txt:
  • http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-expected.txt:
  • http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion-expected.txt:
  • http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt:
  • http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt:
  • http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
  • http/tests/resourceLoadStatistics/remove-partitioning-in-redirect-expected.txt:
  • http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-expected.txt:
  • http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-expected.txt:
  • http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
  • http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:
  • http/tests/security/appcache-in-private-browsing-expected.txt:
  • http/tests/security/appcache-switching-private-browsing-expected.txt:
  • http/tests/security/canvas-cors-with-two-hosts-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-in-meta-element-ignored-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-in-report-only-ignored-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-allow-same-origin-sandboxed-cross-url-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-self-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-star-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-star-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-url-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-url-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-sandboxed-cross-url-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-none-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-self-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-star-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-url-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-url-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-none-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-self-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-star-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-url-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-url-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-none-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-protocolless-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-self-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-self-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-star-allow-crossorigin-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-star-allow-sameorigin-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-url-allow-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-url-block-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/plugintypes-invalid-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/plugintypes-url-01-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/plugintypes-url-02-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-subframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/directive-parsing-01-expected.txt:
  • http/tests/security/contentSecurityPolicy/directive-parsing-02-expected.txt:
  • http/tests/security/contentSecurityPolicy/directive-parsing-03-expected.txt:
  • http/tests/security/contentSecurityPolicy/directive-parsing-04-expected.txt:
  • http/tests/security/contentSecurityPolicy/directive-parsing-05-expected.txt:
  • http/tests/security/contentSecurityPolicy/directive-parsing-multiple-headers-expected.txt:
  • http/tests/security/contentSecurityPolicy/eval-blocked-in-subframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/object-src-none-allowed-expected.txt:
  • http/tests/security/contentSecurityPolicy/object-src-none-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-loads-with-img-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-none-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-none-inline-event-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-parsing-implicit-and-explicit-port-number-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-redirect-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-self-blocked-01-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-self-blocked-02-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-self-blocked-03-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-self-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-star-cross-scheme-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-01-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-02-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-03-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-04-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-05-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-06-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-07-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-08-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-09-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-10-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-nonascii-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-none-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-paths-02-expected.txt:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed-expected.txt:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2-expected.txt:
  • http/tests/security/cookies/first-party-cookie-allow-xslt-expected.txt:
  • http/tests/security/cookies/third-party-cookie-blocking-redirect-expected.txt:
  • http/tests/security/cookies/third-party-cookie-blocking-xslt-expected.txt:
  • http/tests/security/cross-frame-access-callback-explicit-domain-DENY-expected.txt:
  • http/tests/security/cross-frame-access-delete-expected.txt:
  • http/tests/security/cross-frame-access-frameelement-expected.txt:
  • http/tests/security/cross-frame-access-history-put-expected.txt: Removed.
  • http/tests/security/cross-frame-access-location-put-expected.txt:
  • http/tests/security/cross-frame-access-private-browsing-expected.txt:
  • http/tests/security/cross-origin-appcache-allowed-expected.txt:
  • http/tests/security/cross-origin-appcache-expected.txt:
  • http/tests/security/cross-origin-css-primitive-expected.txt:
  • http/tests/security/cross-origin-indexeddb-allowed-expected.txt:
  • http/tests/security/cross-origin-indexeddb-expected.txt:
  • http/tests/security/cross-origin-plugin-allowed-expected.txt:
  • http/tests/security/cross-origin-plugin-expected.txt:
  • http/tests/security/cross-origin-plugin-private-browsing-toggled-allowed-expected.txt:
  • http/tests/security/cross-origin-plugin-private-browsing-toggled-expected.txt:
  • http/tests/security/cross-origin-session-storage-allowed-expected.txt:
  • http/tests/security/cross-origin-session-storage-third-party-blocked-expected.txt:
  • http/tests/security/cross-origin-websql-allowed-expected.txt:
  • http/tests/security/cross-origin-websql-expected.txt:
  • http/tests/security/cross-origin-worker-indexeddb-allowed-expected.txt:
  • http/tests/security/cross-origin-worker-indexeddb-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level-expected.txt:
  • http/tests/security/frameNavigation/xss-ALLOWED-targeted-subframe-navigation-change-expected.txt:
  • http/tests/security/frameNavigation/xss-DENIED-plugin-navigation-expected.txt:
  • http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation-expected.txt:
  • http/tests/security/history-pushState-replaceState-from-sandboxed-iframe-expected.txt:
  • http/tests/security/http-0.9/default-port-plugin-blocked-expected.txt:
  • http/tests/security/http-0.9/default-port-script-blocked-expected.txt:
  • http/tests/security/http-0.9/iframe-blocked-expected.txt:
  • http/tests/security/http-0.9/image-on-HTTP-0.9-default-port-page-allowed-expected.txt:
  • http/tests/security/http-0.9/image-on-HTTP-0.9-page-blocked-expected.txt:
  • http/tests/security/http-0.9/sandbox-should-not-persist-on-navigation-expected.txt:
  • http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-sub-frame-2-level-expected.txt:
  • http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-to-javscript-url-expected.txt:
  • http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-from-javscript-url-expected.txt:
  • http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-sub-frame-2-level-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/blob-url-in-iframe-expected.txt:
  • http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt:
  • http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt:
  • http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt:
  • http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt:
  • http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt:
  • http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt:
  • http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt:
  • http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt:
  • http/tests/security/private-browsing-http-auth-expected.txt:
  • http/tests/security/referrer-policy-always-expected.txt:
  • http/tests/security/referrer-policy-default-expected.txt:
  • http/tests/security/referrer-policy-https-always-expected.txt:
  • http/tests/security/referrer-policy-https-default-expected.txt:
  • http/tests/security/referrer-policy-https-never-expected.txt:
  • http/tests/security/referrer-policy-https-no-referrer-expected.txt:
  • http/tests/security/referrer-policy-https-no-referrer-when-downgrade-expected.txt:
  • http/tests/security/referrer-policy-https-origin-expected.txt:
  • http/tests/security/referrer-policy-https-unsafe-url-expected.txt:
  • http/tests/security/referrer-policy-invalid-expected.txt:
  • http/tests/security/referrer-policy-never-expected.txt:
  • http/tests/security/referrer-policy-no-referrer-expected.txt:
  • http/tests/security/referrer-policy-no-referrer-when-downgrade-expected.txt:
  • http/tests/security/referrer-policy-origin-expected.txt:
  • http/tests/security/referrer-policy-redirect-expected.txt:
  • http/tests/security/referrer-policy-rel-noreferrer-expected.txt:
  • http/tests/security/same-origin-appcache-blocked-expected.txt:
  • http/tests/security/same-origin-document-domain-storage-allowed-expected.txt:
  • http/tests/security/same-origin-storage-blocked-expected.txt:
  • http/tests/security/same-origin-websql-blocked-expected.txt:
  • http/tests/security/sandboxed-iframe-document-cookie-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-watchPosition-expected.txt:
  • http/tests/security/srcdoc-inherits-referrer-expected.txt:
  • http/tests/security/srcdoc-inherits-referrer-for-forms-expected.txt:
  • http/tests/security/storage-blocking-loosened-local-storage-expected.txt:
  • http/tests/security/storage-blocking-loosened-plugin-expected.txt:
  • http/tests/security/storage-blocking-loosened-private-browsing-plugin-expected.txt:
  • http/tests/security/storage-blocking-loosened-websql-expected.txt:
  • http/tests/security/storage-blocking-strengthened-local-storage-expected.txt:
  • http/tests/security/storage-blocking-strengthened-plugin-expected.txt:
  • http/tests/security/storage-blocking-strengthened-private-browsing-plugin-expected.txt:
  • http/tests/security/storage-blocking-strengthened-websql-expected.txt:
  • http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode-expected.txt:
  • http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode-expected.txt:
  • http/tests/security/window-properties-clear-domain-expected.txt:
  • http/tests/security/window-properties-clear-port-expected.txt:
  • http/tests/security/window-properties-pass-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-href-javascript-expected.txt:
  • http/tests/security/xss-DENIED-defineProperty-expected.txt:
  • http/tests/security/xssAuditor/faux-script1-expected.txt:
  • http/tests/security/xssAuditor/faux-script2-expected.txt:
  • http/tests/security/xssAuditor/faux-script3-expected.txt:
  • http/tests/security/xssAuditor/malformed-HTML-expected.txt:
  • http/tests/security/xssAuditor/non-block-javascript-url-frame-expected.txt:
  • http/tests/security/xssAuditor/reflection-in-path-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt:
  • http/tests/security/xssAuditor/svg-animate-expected.txt:
  • http/tests/ssl/media-stream/get-user-media-different-host-expected.txt:
  • http/tests/ssl/media-stream/get-user-media-nested-expected.txt:
  • http/tests/ssl/media-stream/get-user-media-secure-connection-expected.txt:
  • http/tests/ssl/ping-with-unsafe-redirect-expected.txt:
  • http/tests/storageAccess/deny-storage-access-under-opener-expected.txt:
  • http/tests/storageAccess/grant-storage-access-under-opener-expected.txt:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow-origin-null-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
  • http/tests/xmlhttprequest/frame-load-cancelled-abort-expected.txt:
  • http/tests/xmlhttprequest/frame-unload-abort-crash-expected.txt:
  • http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
  • http/tests/xmlhttprequest/uri-resolution-opera-open-004-expected.txt:
  • http/tests/xmlhttprequest/uri-resolution-opera-open-005-expected.txt:
  • http/tests/xmlhttprequest/uri-resolution-opera-open-006-expected.txt:
  • http/tests/xmlhttprequest/uri-resolution-opera-open-007-expected.txt:
  • http/tests/xmlhttprequest/uri-resolution-opera-open-008-expected.txt:
  • http/tests/xmlhttprequest/uri-resolution-opera-open-009-expected.txt:
  • http/tests/xmlhttprequest/uri-resolution-opera-open-010-expected.txt:
  • http/tests/xsl/xslt-transform-with-javascript-disabled-expected.txt:
  • imported/blink/fast/plugins/empty-url-object-expected.txt:
  • loader/stateobjects/pushstate-size-iframe-expected.txt:
  • loader/stateobjects/replacestate-size-iframe-expected.txt:
  • media/auto-play-in-sandbox-with-allow-scripts-expected.txt:
  • platform/ios-wk1/http/tests/quicklook/top-navigation-blocked-expected.txt:
  • platform/ios-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/001-expected.txt:
  • platform/ios/http/tests/quicklook/at-import-stylesheet-blocked-expected.txt:
  • platform/ios/http/tests/quicklook/cross-origin-iframe-blocked-expected.txt:
  • platform/ios/http/tests/quicklook/document-domain-is-empty-string-expected.txt:
  • platform/ios/http/tests/quicklook/external-stylesheet-blocked-expected.txt:
  • platform/ios/http/tests/quicklook/hide-referer-on-navigation-expected.txt:
  • platform/ios/http/tests/quicklook/top-navigation-blocked-expected.txt:
  • platform/ios/quicklook/excel-expected.txt:
  • platform/ios/quicklook/excel-legacy-expected.txt:
  • platform/ios/quicklook/excel-macro-enabled-expected.txt:
  • platform/ios/quicklook/powerpoint-expected.txt:
  • platform/ios/quicklook/powerpoint-legacy-expected.txt:
  • platform/ios/quicklook/word-expected.txt:
  • platform/ios/quicklook/word-legacy-expected.txt:
  • platform/ios/webarchive/loading/cache-expired-subresource-expected.txt:
  • platform/mac-wk2/http/tests/security/cross-origin-plugin-expected.txt:
  • platform/mac-wk2/http/tests/security/cross-origin-plugin-private-browsing-toggled-expected.txt:
  • platform/mac-wk2/http/tests/security/storage-blocking-strengthened-plugin-expected.txt:
  • platform/mac-wk2/http/tests/security/storage-blocking-strengthened-private-browsing-plugin-expected.txt:
  • platform/mac-wk2/plugins/resize-from-plugin-expected.txt:
  • platform/mac/fast/loader/webarchive-encoding-respected-expected.txt:
  • platform/mac/webarchive/adopt-attribute-styled-body-webarchive-expected.txt:
  • platform/mac/webarchive/loading/cache-expired-subresource-expected.txt:
  • platform/mac/webarchive/test-duplicate-resources-expected.txt:
  • platform/win/plugins/resize-from-plugin-expected.txt:
  • platform/win/webarchive/loading/cache-expired-subresource-expected.txt:
  • platform/wk2/fast/loader/fragment-navigation-base-blank-expected.txt:
  • platform/wk2/fast/loader/iframe-meta-refresh-base-blank-expected.txt:
  • platform/wk2/fast/loader/iframe-set-location-base-blank-expected.txt:
  • platform/wk2/fast/loader/refresh-iframe-base-blank-expected.txt:
  • platform/wk2/fast/loader/subframe-removes-itself-expected.txt:
  • platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
  • platform/wk2/http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
  • platform/wk2/http/tests/loading/basic-credentials-sent-automatically-expected.txt:
  • platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
  • platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
  • platform/wk2/http/tests/misc/authentication-redirect-1/authentication-sent-to-redirect-cross-origin-expected.txt:
  • platform/wk2/http/tests/misc/authentication-redirect-2/authentication-sent-to-redirect-same-origin-expected.txt:
  • platform/wk2/http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials-expected.txt:
  • platform/wk2/http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/http-0.9/iframe-blocked-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt:
  • platform/wk2/webarchive/loading/javascript-url-iframe-crash-expected.txt:
  • platform/wk2/webarchive/loading/mainresource-null-mimetype-crash-expected.txt:
  • platform/wk2/webarchive/loading/missing-data-expected.txt:
  • platform/wk2/webarchive/loading/object-expected.txt:
  • platform/wk2/webarchive/loading/test-loading-archive-expected.txt:
  • platform/wk2/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt:
  • platform/wk2/webarchive/loading/video-in-webarchive-expected.txt:
  • plugins/resize-from-plugin-expected.txt:
  • quicklook/excel-expected.txt:
  • quicklook/excel-legacy-expected.txt:
  • quicklook/excel-macro-enabled-expected.txt:
  • quicklook/keynote-09-expected.txt:
  • quicklook/multi-sheet-numbers-09-expected.txt:
  • quicklook/numbers-09-expected.txt:
  • quicklook/pages-09-expected.txt:
  • quicklook/powerpoint-expected.txt:
  • quicklook/powerpoint-legacy-expected.txt:
  • quicklook/word-expected.txt:
  • quicklook/word-legacy-expected.txt:
  • userscripts/user-script-all-frames-expected.txt:
  • userscripts/user-script-top-frame-only-expected.txt:
  • userscripts/user-style-all-frames-expected.txt:
  • userscripts/user-style-top-frame-only-expected.txt:
  • webarchive/loading/javascript-url-iframe-crash-expected.txt:
  • webarchive/loading/mainresource-null-mimetype-crash-expected.txt:
  • webarchive/loading/missing-data-expected.txt:
  • webarchive/loading/object-expected.txt:
  • webarchive/loading/test-loading-archive-expected.txt:
  • webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt:
  • webarchive/loading/video-in-webarchive-expected.txt:
11:32 AM Changeset in webkit [231449] by dbates@webkit.org
  • 3 edits in trunk/Tools

REGRESSION (r229955): run-webkit-tests runs tests in skipped directories and subdirectories of directory given on command line
https://bugs.webkit.org/show_bug.cgi?id=185054
<rdar://problem/39773209>

Reviewed by Ryosuke Niwa.

Fallback to MacPort.CURRENT_VERSION if we are not using a known named macOS and do not have Apple Additions.

Darwin-based ports have OS version-specific test expectations and are certified to support running tests using
the currently shipping OS by way of a hardcoded class variable CURRENT_VERSION. The run-webkit-tests script
depends on the OS version to find the applicable TestExpectations files to parse to compute the list of skipped
tests for the port.

  • Scripts/webkitpy/port/mac.py:

(MacPort.init): Fall back to MacPort.CURRENT_VERSION if we are not using a known named macOS and do not
have Apple Additions.

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest.test_factory_with_future_version): Added.
(MacTest.test_factory_with_future_version_and_apple_additions): Renamed from MacTest.test_factory_with_future_version()
and added code to use the mock Apple Additions so that running this code with- and without- the real Apple Additions
produces consistent results now that the Mac port's OS version falls back to MacPort.CURRENT_VERSION when Apple Additions
is absent.

11:27 AM Changeset in webkit [231448] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[EME][GStreamer] Fix wrong subsample parsing on r227067
https://bugs.webkit.org/show_bug.cgi?id=185382

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-07
Reviewed by Philippe Normand.

The initialization of sampleIndex should be moved outside of the loop.
Without this patch we will have a bad log and the check of the subsample
count will be useless.

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

(webKitMediaClearKeyDecryptorDecrypt):

11:16 AM Changeset in webkit [231447] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Allow Web Touch events to timeout
https://bugs.webkit.org/show_bug.cgi?id=185282

Reviewed by Tim Horton.

This is backwards, fixing.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleTouchEventSynchronously):

11:07 AM Changeset in webkit [231446] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

[Win] LoggingWin is missing includes
https://bugs.webkit.org/show_bug.cgi?id=185326

Reviewed by Per Arne Vollan.

  • Platform/win/LoggingWin.cpp:
10:52 AM Changeset in webkit [231445] by dbates@webkit.org
  • 12 edits in trunk/Source

CSP should be passed the referrer
https://bugs.webkit.org/show_bug.cgi?id=185367

Reviewed by Per Arne Vollan.

Source/WebCore:

As a step towards formalizing a CSP delegate object and removing the dependencies
on ScriptExecutionContext and Frame, we should pass the document's referrer directly
instead of indirectly obtaining it from the ScriptExecutionContext or Frame used
to instantiate the ContentSecurityPolicy object.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Pass the document's referrer.
(WebCore::Document::initSecurityContext): Ditto.
(WebCore::Document::applyQuickLookSandbox): Ditto.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived): Ditto.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument): Ditto.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::copyStateFrom): We pass a null string for the referrer
to didReceiveHeader() as a placeholder since it requires the referrer be given to it. We
fix up the referrer (m_referrer) after copying all the policy headers.
(WebCore::ContentSecurityPolicy::didReceiveHeaders): Ditto.
(WebCore::ContentSecurityPolicy::didReceiveHeader): Modified to take a referrer and WTFMove()s
it into an instance variable (m_referrer).
(WebCore::ContentSecurityPolicy::reportViolation const): Modified to use the stored referrer.

  • page/csp/ContentSecurityPolicy.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::applyContentSecurityPolicyResponseHeaders): Pass a null string
for the referrer as a worker does not have a referrer.

Source/WebKit:

Pass the referrer through NetworkLoadChecker so that it can pass it to the ContentSecurityPolicy
object it instantiates.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::contentSecurityPolicy const):

  • NetworkProcess/NetworkLoadChecker.h:

(WebKit::NetworkLoadChecker::create):

  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):

10:47 AM Changeset in webkit [231444] by dbates@webkit.org
  • 1 edit
    6 adds in trunk/LayoutTests

Add tests to ensure Same-Site cookies are included when performing a top-level redirect
https://bugs.webkit.org/show_bug.cgi?id=185235

Reviewed by Alex Christensen.

  • http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect.html: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-same-origin-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-same-origin-redirect.html: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-same-origin-redirect.php: Added.
10:41 AM Changeset in webkit [231443] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

CSP should only notify Inspector to pause the debugger on the first policy to violate a directive
https://bugs.webkit.org/show_bug.cgi?id=185364

Reviewed by Brent Fulgham.

Notify Web Inspector that a script was blocked on the first enforced CSP policy that it
violates.

A page can have more than one enforced Content Security Policy. Currently for inline
scripts, inline event handlers, JavaScript URLs, and eval() that are blocked by CSP
we notify Web Inspector that it was blocked for each CSP policy that blocked it. When
Web Inspector is notified it pauses script execution. It does not seem very meaningful
to pause script execution on the same script for each CSP policy that blocked it.
Therefore, only tell Web Inspector that a script was blocked for the first enforced CSP
policy that blocked it.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers const):
(WebCore::ContentSecurityPolicy::allowInlineScript const):
(WebCore::ContentSecurityPolicy::allowEval const):

10:38 AM Changeset in webkit [231442] by dbates@webkit.org
  • 9 edits in trunk/Source

Substitute CrossOriginPreflightResultCache::clear() for CrossOriginPreflightResultCache::empty()
https://bugs.webkit.org/show_bug.cgi?id=185170

Reviewed by Per Arne Vollan.

Source/WebCore:

Rename CrossOriginPreflightResultCache::empty() to CrossOriginPreflightResultCache::clear() make
it consistent with the terminology we use in WebKit to signify a function that clears a collection.
A member function named "empty" is expected to return an instance of a class in its "empty state".
For example, StringImpl::empty() returns a StringImpl instance that represents the empty string.
However CrossOriginPreflightResultCache::empty() clears out the cache in-place. We should rename
this function to better describe its purpose.

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCache::clear):
(WebCore::CrossOriginPreflightResultCache::empty): Deleted.

  • loader/CrossOriginPreflightResultCache.h:

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::clearResourceCaches):
(WebKit::WebProcess::deleteWebsiteData):

Source/WebKitLegacy/mac:

  • Misc/WebCache.mm:

(+[WebCache empty]):

Source/WebKitLegacy/win:

  • WebCache.cpp:

(WebCache::empty):

10:36 AM Changeset in webkit [231441] by dino@apple.com
  • 5 edits
    2 adds in trunk

WebGL: Reset simulated values after validation fails
https://bugs.webkit.org/show_bug.cgi?id=185363
<rdar://problem/39733417>

Reviewed by Anders Carlsson.

Source/WebCore:

While fixing a previous bug, I forgot to reset some values
when validation fails. This caused a bug where a subsequent
invalid call might use those values and escape detection.

Test: fast/canvas/webgl/index-validation-with-subsequent-draws.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0): Reset the
sizes when validation fails.

  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

  • fast/canvas/webgl/index-validation-with-subsequent-draws-expected.txt: Added.
  • fast/canvas/webgl/index-validation-with-subsequent-draws.html: Added.
10:20 AM Changeset in webkit [231440] by Ms2ger@igalia.com
  • 7 edits in trunk

Support negative sw/sh values in createImageBitmap().
https://bugs.webkit.org/show_bug.cgi?id=184449

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update expectations.

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:

Source/WebCore:

Tests: LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html

LayoutTests/http/wpt/2dcontext/imagebitmap/createImageBitmap.html

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise): handle negative values per spec.

LayoutTests:

  • http/wpt/2dcontext/imagebitmap/createImageBitmap-expected.txt: update test name
  • http/wpt/2dcontext/imagebitmap/createImageBitmap.html: update expected result
10:10 AM Changeset in webkit [231439] by BJ Burg
  • 14 edits in trunk

Web Inspector: opt out of process swap on navigation if a Web Inspector frontend is connected
https://bugs.webkit.org/show_bug.cgi?id=184861
<rdar://problem/39153768>

Reviewed by Timothy Hatcher.

Source/WebCore:

Notify the client of the current connection count whenever a frontend connects or disconnects.

Covered by new API test.

  • inspector/InspectorClient.h:

(WebCore::InspectorClient::frontendCountChanged):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
(WebCore::InspectorController::disconnectAllFrontends):

  • inspector/InspectorController.h:

Source/WebKit:

We need to track how many frontends are attached to the web page (both local and remote).
InspectorController propagates this out to WebKit via InspectorClient. This is then
kept in UIProcess as a member of WebPageProxy. When making a decision whether to use a
new process for a navigation, return early with "no" if any frontends are open for the
page being navigated.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::didChangeInspectorFrontendCount):
(WebKit::WebPageProxy::inspectorFrontendCount const):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigation):

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::frontendCountChanged):

  • WebProcess/WebCoreSupport/WebInspectorClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::inspectorFrontendCountChanged):

  • WebProcess/WebPage/WebPage.h:

Tools:

Add a new test that checks whether a new process is used for navigation when
an Inspector is shown. Also check that the behavior reverts to normal after
the Inspector has been closed.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
8:54 AM Changeset in webkit [231438] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

Text track cue logging should include cue text
https://bugs.webkit.org/show_bug.cgi?id=185353
<rdar://problem/40003565>

Reviewed by Youenn Fablet.

No new tests, tested manually.

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::toJSONString const): Use toJSON.
(WebCore::VTTCue::toJSON const): New.

  • html/track/VTTCue.h:
  • platform/graphics/InbandTextTrackPrivateClient.h:

(WebCore::GenericCueData::toJSONString const): Log m_content.

  • platform/graphics/iso/ISOVTTCue.cpp:

(WebCore::ISOWebVTTCue::toJSONString const): Log m_cueText.

6:36 AM Changeset in webkit [231437] by don.olmstead@sony.com
  • 2 edits in trunk

[WinCairo] Disable plugin api when building modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=185312

Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsWin.cmake:
3:49 AM Changeset in webkit [231436] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.20.2

WebKitGTK+ 2.20.2

3:49 AM Changeset in webkit [231435] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20

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

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.20.2.
3:40 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
3:07 AM Changeset in webkit [231434] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.20

Merge r231350 - [GTK] Epiphany (GNOME Web) says "Error downloading: Service Unavailable." when trying to download an image from discogs.com
https://bugs.webkit.org/show_bug.cgi?id=174730

Reviewed by Michael Catanzaro.

Source/WebCore:

Export ResourceRequestBase::hasHTTPHeaderField().

  • platform/network/ResourceRequestBase.h:

Source/WebKit:

The problem is that we don't send any User-Agent HTTP header for downloads started by WebProcessPool::download().

  • UIProcess/API/glib/WebKitDownload.cpp:

(webkitDownloadUpdateRequest): Helper to update the cached request.
(webkitDownloadStarted): Updated the cached request if we have one.
(webkit_download_get_request): Use webkitDownloadUpdateRequest().

  • UIProcess/API/glib/WebKitDownloadClient.cpp:
  • UIProcess/API/glib/WebKitDownloadPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::download): Set the User-Agent HTTP header if there isn't any.

Tools:

Update unit tests to check that User-Agent header is included in HTTP download requests.

  • TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:

(testDownloadRemoteFile):
(testWebViewDownloadURI):
(testPolicyResponseDownload):
(testPolicyResponseDownloadCancel):
(testDownloadMIMEType):
(testContextMenuDownloadActions):

2:49 AM Changeset in webkit [231433] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r231300 - WebCore::TextureMapperLayer object used after freed
https://bugs.webkit.org/show_bug.cgi?id=184729

Reviewed by Michael Catanzaro.

Replace the raw pointers with WeakPtr for effectTarget, maskLayer and replicaLayer
inside TextureMapperLayer.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::~TextureMapperLayer):
(WebCore::TextureMapperLayer::setMaskLayer):
(WebCore::TextureMapperLayer::setReplicaLayer):

  • platform/graphics/texmap/TextureMapperLayer.h:
2:49 AM Changeset in webkit [231432] by Carlos Garcia Campos
  • 17 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r231195 - Add SetCallee as DFG-Operation
https://bugs.webkit.org/show_bug.cgi?id=184582

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-01
Reviewed by Filip Pizlo.

JSTests:

Added test that runs into infinite loop without updating the callee and
therefore emitting SetCallee in DFG for recursive tail calls.

  • stress/closure-recursive-tail-call-infinite-loop.js: Added.

(Foo):
(second):
(first):
(return.closure):
(createClosure):

Source/JavaScriptCore:

For recursive tail calls not only the argument count can change but also the
callee. Add SetCallee to DFG that sets the callee slot in the current call frame.
Also update the callee when optimizing a recursive tail call.
Enable recursive tail call optimization also for closures.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleRecursiveTailCall):
(JSC::DFG::ByteCodeParser::handleCallVariant):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileSetCallee):

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

2:49 AM Changeset in webkit [231431] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r231187 - Improve the performance of FontCascadeDescription's effectiveFamilies
https://bugs.webkit.org/show_bug.cgi?id=184720
PerformanceTests:

Reviewed by Simon Fraser.

This performance test calls SystemFontDatabase::systemFontCascadeList() around 2,000,000 times (before
this patch is applied), which is roughly equivalent to the page we found the performance problem on.
The calling pattern is roughly equivalent in this test.

  • Layout/system-ui.html: Added.

Source/WebCore:

<rdar://problem/38970927>

Reviewed by Simon Fraser.

The page that had the performance problem renders many different Chinese characters in system-ui
with only a small number of individual fonts. It turns out we were calling into the system-ui
machinery for each character in order to opportunistically start loading data URLs (see also:
https://bugs.webkit.org/show_bug.cgi?id=175845). These data URLS will never represent the system
font, so we don't need to invoke the system-ui machinery at all.

This patch makes a 92x performance improvement on the associated performance test. This test is
designed to test Chinese text rendered with system-ui.

Performance test: Layout/system-ui.html

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::opportunisticallyStartFontDataURLLoading):

2:49 AM Changeset in webkit [231430] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20

Merge r231156 - [GTK] Webkit should spoof as Safari on a Mac when on Chase.com
https://bugs.webkit.org/show_bug.cgi?id=185103

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Send a fake user agent to chase.com to make it work.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):
(WebCore::UserAgentQuirks::stringForQuirk): Also, remove this stale comment.

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

2:29 AM Changeset in webkit [231429] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r231132 - [GTK] WebProcess from WebKitGtk+ 2.19.92 SIGSEVs in WebCore::TextureMapperGL::~TextureMapperGL
https://bugs.webkit.org/show_bug.cgi?id=184040

Reviewed by Michael Catanzaro.

This can happen when using single shared process model or when the process limit is reached in multiple process
model. In this case, all pages in the same web process with accelerated compositing enabled share the same
compositing thread. Every page sets its GL context as current when rendering a frame, but not when invalidating
the threaded compositor when the page is closed. So, if a hidden tab is closed, the threaded compositor is
invalidated and the GL resources of the current context (the visible page) are destroyed. This is also causing
the blank pages issue when closing a tab related to another one, the current one stops rendering anything because
its GL context has been released. We should make the threaded compositor context current when invalidating it.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::invalidate):

2:29 AM Changeset in webkit [231428] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r230980 - fromCharCode is missing some exception checks
https://bugs.webkit.org/show_bug.cgi?id=184952

Reviewed by Saam Barati.

JSTests:

  • stress/fromCharCode-exception-check.js: Added.

(get catch):

Source/JavaScriptCore:

I also removed the pointless slow path function and moved it into the
main function.

  • runtime/StringConstructor.cpp:

(JSC::stringFromCharCode):
(JSC::stringFromCharCodeSlowCase): Deleted.

2:29 AM Changeset in webkit [231427] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r230963 - REGRESSION(r221839): Fix requests with FormData containing empty files
https://bugs.webkit.org/show_bug.cgi?id=184490
<rdar://problem/39385169>

Patch by Tadeu Zagallo <Tadeu Zagallo> on 2018-04-24
Reviewed by Geoffrey Garen.

Source/WebCore:

We should not append the blob to the FormData when it is a file but has no path. It broke
the submission since the request was failing to read the file in FormDataStreamCFNet.h:156

Test: http/tests/local/formdata/send-form-data-with-empty-file.html

  • platform/network/FormData.cpp:

(WebCore::FormData::appendMultiPartFileValue):

LayoutTests:

Verify that the final boundary is present in the request body when submitting FormData containing an empty file.

  • http/tests/local/formdata/send-form-data-with-empty-file-expected.txt: Added.
  • http/tests/local/formdata/send-form-data-with-empty-file.html: Added.
2:18 AM Changeset in webkit [231426] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r230954 - REGRESSION(r230950): Faulty commit sequencing in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=184917

Reviewed by Michael Catanzaro.

After r230950, current animation state for a given layer is also taken
into account when determining whether or not the layer requires a
backing store. For that to work properly, all the animation state has
to be updated before the backing store work. This patch changes the
order of helper method invocations in
CoordinatedGraphicsScene::setLayerState() to address that.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::setLayerState):

2:18 AM Changeset in webkit [231425] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r230950 - [CoordGraphics] Avoid painting backing stores for zero-opacity layers
https://bugs.webkit.org/show_bug.cgi?id=184143

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Skip generating backing stores for layers that have zero opacity and do
not animate the opacity value. In the current CoordinatedGraphics system
this can end up saving loads of memory on Web content that deploys a
large number of such elements.

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::shouldHaveBackingStore const):

Source/WebKit:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::layerShouldHaveBackingStore):
Mirror CoordinatedGraphicsLayer's backing store requirements.

2:17 AM Changeset in webkit [231424] by Carlos Garcia Campos
  • 6 edits
    3 deletes in releases/WebKitGTK/webkit-2.20

Merge r230933 - REGRESSION (r220112): reCAPTCHA images render off screen on Twitch.tv app Log In or Sign Up
https://bugs.webkit.org/show_bug.cgi?id=182859
<rdar://problem/37595065>

Source/WebCore:

Reviewed by Zalan Bujtas.

Roll out this change from the trunk as the issue it fixed no longer occurs.

  • css/MediaQueryEvaluator.cpp:

(WebCore::orientationEvaluate):
(WebCore::aspectRatioEvaluate):
(WebCore::heightEvaluate):
(WebCore::widthEvaluate):

  • page/FrameView.cpp:

(WebCore::FrameView::layoutSizeForMediaQuery const): Deleted.

  • page/FrameView.h:
  • page/LayoutContext.cpp:

(WebCore::LayoutContext::handleLayoutWithFrameFlatteningIfNeeded):

LayoutTests:

Reviewed by Zalan Bujtas

  • fast/frames/flattening/media-query-growing-content-expected.txt: Removed.
  • fast/frames/flattening/media-query-growing-content.html: Removed.
  • fast/frames/flattening/resources/media-query-min-height-with-flattening.html: Removed.
2:04 AM Changeset in webkit [231423] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r230928 - Roll out r226655 because it broke OSR entry when the pre-header is inadequately profiled.

Rubber stamped by Saam Barati.

This is a >2x speed-up in SunSpider/bitops-bitwise-and. We don't really care about SunSpider
anymore, but r226655 didn't result in any benchmark wins and just regressed this test by a lot.
Seems sensible to just roll it out.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::parse):

2:04 AM Changeset in webkit [231422] by Carlos Garcia Campos
  • 2 edits
    2 adds in releases/WebKitGTK/webkit-2.20/Tools

Merge r230911 - [GTK][WPE] TestSSL fails due to additional TLS errors returned
https://bugs.webkit.org/show_bug.cgi?id=184860

Reviewed by Carlos Garcia Campos.

Add script and config file for regenerating the test certificate.
Regenerate it. TestSSL no longer fails on my machine.

I do see a ton of network process crashes and JavaScript errors, none of
which prevent the test from passing, but this commit only claims to fix
the certificate validation portion of the test.

  • TestWebKitAPI/Tests/WebKitGLib/resources/generate-test-cert.sh: Added.
  • TestWebKitAPI/Tests/WebKitGLib/resources/test-cert.conf: Added.
  • TestWebKitAPI/Tests/WebKitGLib/resources/test-cert.pem:
1:59 AM Changeset in webkit [231421] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20

Merge r230886 - REGRESSION(r228088): [SOUP] Check TLS errors for WebSockets on GTlsConnection::accept-certificate
https://bugs.webkit.org/show_bug.cgi?id=184804

Source/WebCore:

Reviewed by Michael Catanzaro.

  • platform/network/soup/SocketStreamHandleImpl.h: Add a public url getter.
  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

(WebCore::acceptCertificateCallback): Call SoupNetworkSession::checkTLSErrors() to decide whether to accept the
certificate or not.
(WebCore::connectProgressCallback): Receive the SocketStreamHandle and pass it to acceptCertificateCallback callback.
(WebCore::socketClientEventCallback): Ditto.
(WebCore::SocketStreamHandleImpl::create): Always connect to network events.
(WebCore::wssConnectionAcceptCertificateCallback): Deleted.
(WebCore::wssSocketClientEventCallback): Deleted.

Tools:

Patch by Michael Catanzaro <Michael Catanzaro> on 2018-04-20
Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(WebSocketTest::WebSocketTest):
(WebSocketTest::~WebSocketTest):
(WebSocketTest::serverWebSocketCallback):
(WebSocketTest::webSocketTestResultCallback):
(WebSocketTest::connectToServerAndWaitForEvents):
(testWebSocketTLSErrors):
(beforeAll):

1:58 AM Changeset in webkit [231420] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r230885 - [SOUP] Do TLS error checking on GTlsConnection::accept-certificate
https://bugs.webkit.org/show_bug.cgi?id=184480

Reviewed by Michael Catanzaro.

Source/WebCore:

  • platform/network/soup/ResourceError.h: Change tlsError to recieve a failing URL instead of a SoupRequest,

since the request was only used to get the failing URL.

  • platform/network/soup/ResourceErrorSoup.cpp:

(WebCore::ResourceError::tlsError): Use the given failing URL.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession): Use ssl-strict when creating the SoupSession to handle the
certificates ourselves by connecting to GTlsConnection::accept-certificate.
(WebCore::SoupNetworkSession::checkTLSErrors): Updated to receive a URL, certificate and errors instead of
receiving a SoupRequest and SoupMessage and extract the url, certirficate and errors from them. Also return the
optional error directly instead of using a completion handler since the function is always synchronous.

  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit:

Connect to GTlsConnection::accept-certificate signal instead of SoupMessage::notify::tls-errors to perform the
TLS errors check.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest): Do not connect to SoupMessage::notify::tls-errors.
(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificateCallback): Call tlsConnectionAcceptCertificate() is
the task is still ongoing.
(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate): Check TLS errors here.
(WebKit::NetworkDataTaskSoup::networkEventCallback): Pass the stream to networkEvent.
(WebKit::NetworkDataTaskSoup::networkEvent): Connect to GTlsConnection::accept-certificate.

  • NetworkProcess/soup/NetworkDataTaskSoup.h:
1:58 AM Changeset in webkit [231419] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20

Merge r230837 - [GTK] Local cross references are broken in API documentation
https://bugs.webkit.org/show_bug.cgi?id=184771

Reviewed by Michael Catanzaro.

.:

Update the documentation html paths and install the JSC GLib API too.

  • Source/PlatformGTK.cmake:

Tools:

The problem is that gtkdoc-fixxref expects the links to be in the form html/modulename (like the installed
ones), but we generate the documentation as modulename/html. So, links to WebKitDOM or JSC are generated as
../html/Foo. The rebase command considers html to be the module name in this case, creating broken links in all
the cases.

  • gtk/gtkdoc.py:

(GTKDoc._copy_doc_files_to_output_dir): We don't have any html dir in the source tree so, we are not copying
anything here.
(GTKDoc._run_gtkdoc_mkhtml): Create the html dir here using html/modulename instead now.
(GTKDoc._run_gtkdoc_fixxref): Pass the new directory as module dir to gtkdoc-fixxref and fix several links for
which gtkdoc-fixxref always uses absolute paths.

  • gtk/manifest.txt.in: Update the documentation html paths and include the JSC GLib API in the tarball too.
1:26 AM Changeset in webkit [231418] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r229505 - Turn off offset*/scroll* optimization for input elements with shadow content
https://bugs.webkit.org/show_bug.cgi?id=182383
<rdar://problem/37114190>

Reviewed by Antti Koivisto.

Source/WebCore:

We normally ensure clean tree before calling offsetHeight/Width, scrollHeight/Width.
In certain cases (see updateLayoutIfDimensionsOutOfDate() for details), it's okay to return
the previously computed values even when some part of the tree is dirty.
In case of shadow content, updateLayoutIfDimensionsOutOfDate() might return false (no need to layout)
for the root, while true (needs layout) for the shadow content.
This could confuse the caller (Element::scrollWidth/Height etc) and lead to incorrect result.

Test: fast/forms/scrollheight-with-mutation-crash.html

  • dom/Document.cpp:

(WebCore::Document::updateLayoutIfDimensionsOutOfDate):

LayoutTests:

  • fast/forms/scrollheight-with-mutation-crash-expected.txt: Added.
  • fast/forms/scrollheight-with-mutation-crash.html: Added.
1:26 AM Changeset in webkit [231417] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20

Merge r230749 - [GTK] Webkit should spoof as Safari on a Mac for Outlook.com
https://bugs.webkit.org/show_bug.cgi?id=184573

Reviewed by Carlos Alberto Lopez Perez.

Source/WebCore:

Add quirk for outlook.live.com.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

1:26 AM Changeset in webkit [231416] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r230718 - [WPE][GTK] GObject introspection annotation fixes: BackForwardList, NetworkProxySettings
https://bugs.webkit.org/show_bug.cgi?id=184658

Reviewed by Carlos Garcia Campos.

Thanks to Dylan Simon for recommending these annotation fixes.

  • UIProcess/API/glib/WebKitBackForwardList.cpp:
  • UIProcess/API/glib/WebKitNetworkProxySettings.cpp:
1:18 AM Changeset in webkit [231415] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r230629 - REGRESSION(r230627): [GTK][WPE] Possible deadlock when destroying the player in non AC mode
https://bugs.webkit.org/show_bug.cgi?id=184583

Reviewed by Carlos Garcia Campos.

In non AC mode, ensure that a deadlock can't happen when destroying MediaPlayerPrivateGStreamerBase.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::cancelRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
1:18 AM Changeset in webkit [231414] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r230627 - [GTK] [gstreamer] video won't unpause when built with -DUSE_GSTREAMER_GL=OFF
https://bugs.webkit.org/show_bug.cgi?id=183362

Reviewed by Carlos Garcia Campos.

Remove the drawCancelled flag and use a new one to indicate that the player is being destroyed.
That new flag is only enabled on destruction and it's not modified by cancelRepaint(), which
can be used to handle the pause event without avoiding future renderings. Also cancelRepaint()
has only effect when not in AC mode.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::cancelRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
1:18 AM Changeset in webkit [231413] by Carlos Garcia Campos
  • 13 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r230380 - Use alignas instead of compiler-specific attributes
https://bugs.webkit.org/show_bug.cgi?id=183508

Reviewed by Mark Lam.

Source/bmalloc:

Use alignas for g_gigacageBasePtr. We also add reinterpret_cast to fix
compile errors in ARMv7 and MIPS JSCOnly ports.

  • bmalloc/Gigacage.cpp:
  • bmalloc/Gigacage.h:

(Gigacage::basePtrs):

Source/JavaScriptCore:

Use C++11 alignas specifier. It is portable compared to compiler-specific aligned attributes.

  • heap/RegisterState.h:
  • jit/JIT.h:

(JSC::JIT::compile): Deleted.
(JSC::JIT::compileGetByVal): Deleted.
(JSC::JIT::compileGetByValWithCachedId): Deleted.
(JSC::JIT::compilePutByVal): Deleted.
(JSC::JIT::compileDirectPutByVal): Deleted.
(JSC::JIT::compilePutByValWithCachedId): Deleted.
(JSC::JIT::compileHasIndexedProperty): Deleted.
(JSC::JIT::appendCall): Deleted.
(JSC::JIT::appendCallWithSlowPathReturnType): Deleted.
(JSC::JIT::exceptionCheck): Deleted.
(JSC::JIT::exceptionCheckWithCallFrameRollback): Deleted.
(JSC::JIT::emitInt32Load): Deleted.
(JSC::JIT::emitInt32GetByVal): Deleted.
(JSC::JIT::emitInt32PutByVal): Deleted.
(JSC::JIT::emitDoublePutByVal): Deleted.
(JSC::JIT::emitContiguousPutByVal): Deleted.
(JSC::JIT::emitStoreCell): Deleted.
(JSC::JIT::getSlowCase): Deleted.
(JSC::JIT::linkSlowCase): Deleted.
(JSC::JIT::linkDummySlowCase): Deleted.
(JSC::JIT::linkAllSlowCases): Deleted.
(JSC::JIT::callOperation): Deleted.
(JSC::JIT::callOperationWithProfile): Deleted.
(JSC::JIT::callOperationWithResult): Deleted.
(JSC::JIT::callOperationNoExceptionCheck): Deleted.
(JSC::JIT::callOperationWithCallFrameRollbackOnException): Deleted.
(JSC::JIT::emitEnterOptimizationCheck): Deleted.
(JSC::JIT::sampleCodeBlock): Deleted.
(JSC::JIT::canBeOptimized): Deleted.
(JSC::JIT::canBeOptimizedOrInlined): Deleted.
(JSC::JIT::shouldEmitProfiling): Deleted.

  • runtime/VM.h:

Source/WebCore:

Use alignas instead of aligned.

  • platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
  • platform/graphics/cpu/arm/filters/FELightingNEON.h:

(WebCore::FELighting::platformApplyNeon):

Source/WTF:

Use alignas for g_gigacageBasePtr. We also add reinterpret_cast to fix
compile errors in ARMv7 and MIPS JSCOnly ports.

  • wtf/Gigacage.cpp:
  • wtf/Gigacage.h:

(Gigacage::basePtrs):

12:54 AM Changeset in webkit [231412] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r230706 - [GTK] Build fix after r230529 (WaylandCompositorDisplay leaks its wl_display)
https://bugs.webkit.org/show_bug.cgi?id=184406

Rubber-stamped by Michael Catanzaro.

Fix build with clang 3.8

No new tests, it is a build fix.

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::create):

12:54 AM Changeset in webkit [231411] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r230529 - [GTK] WaylandCompositorDisplay leaks its wl_display
https://bugs.webkit.org/show_bug.cgi?id=184406

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Well, this was harder than expected. We really just want to fix a small leak in the WebKit
layer, but that requires a change in how WaylandCompositorDisplay calls the
PlatformDisplayWayland constructor, to pass NativeDisplayOwned::Yes. That means
WaylandCompositorDisplay can no longer use PlatformDisplayWayland's protected default
constructor. Problem is that the normal PlatformDisplayWayland constructor calls
PlatformDisplayWayland::initialize, which calls PlatformDisplayWayland::registryGlobal,
which is a virtual function. The WaylandCompositorDisplay portion of the object is not
constructed yet at this point, so WaylandCompositorDisplay::registryGlobal will never be
called if we do that. I had to revert the previous version of this fix due to this problem.
It had broken accelerated compositing.

I'm reminded of Effective C++ item #9: Never call virtual functions during construction or
destruction ("because such calls will never go to a more derived class than that of the
currently executing constructor or destructor"). This code is fragile and likely to break
again in the future, so let's refactor it a bit. Instead of calling initialize in the
constructor, we'll call it from create functions. We'll have to add a couple create
functions, and make the constructor protected to ensure it's not possible to create a
PlatformDisplayWayland without initializing it. For good parallelism, do the same for the
other PlatformDisplay classes.

This commit additionally removes PlatformDisplayWayland's protected default constructor,
since it's not needed anymore.

The NativeDisplayOwned arguments to the PlatformDisplay constructors are now mandatory,
instead of using NativeDisplayOwned::No as the default value, since that was dangerously
close to being the cause of this leak, and the constructors are now accessed from private
create functions anyway. Some more caution when using default parameter values is warranted
in the future.

Lastly, since we have to change PlatformDisplay::createPlatformDisplay to use the new create
functions, take the opportunity to move things around a bit for clarity. There should be no
change in behavior. I was just disappointed that the PlatformDisplayWPE creation was at the
bottom of the function, after a comment indicating that normal display creation has failed,
which is not the case for WPE.

This all might have been a bit overkill, since the leak could probably have been fixed by
passing nullptr to the PlatformDisplayWayland constructor for the wl_display and not
removing WaylandCompositorDisplay's call to PlatformDisplayWayland::initialize. But the
correctness of that code would then rely on implementation details of initialize, so this
refactor seems better.

No new tests since there *should* be no behavior change. Then again, I'm touching
PlatformDisplay, and history shows we don't have the greatest track record of touching this
code without introducing problems.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::createPlatformDisplay):

  • platform/graphics/PlatformDisplay.h:
  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::create):
(WebCore::PlatformDisplayWayland::create):
(WebCore::PlatformDisplayWayland::createHeadless):
(WebCore::PlatformDisplayWayland::PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::initialize):

  • platform/graphics/wayland/PlatformDisplayWayland.h:
  • platform/graphics/win/PlatformDisplayWin.h:
  • platform/graphics/wpe/PlatformDisplayWPE.cpp:

(WebCore::create):

  • platform/graphics/wpe/PlatformDisplayWPE.h:
  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::create):
(WebCore::PlatformDisplayX11::create):
(WebCore::PlatformDisplayX11::createHeadless):

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit:

Since we allocate our own wl_display here, need to chain up to the parent constructor
passing NativeDisplayOwned::Yes, or it won't ever be released. Move the initialize call to
the create function to ensure it's called after the constructor completes.

  • WebProcess/gtk/WaylandCompositorDisplay.cpp:

(WebKit::WaylandCompositorDisplay::create): Fix a log message (drive-by).
(WebKit::WaylandCompositorDisplay::WaylandCompositorDisplay):

12:54 AM Changeset in webkit [231410] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r230513 - FrameSelection::appearanceUpdateTimerFired should be robust against layout passes underneath it
https://bugs.webkit.org/show_bug.cgi?id=183395
<rdar://problem/38055732>

Reviewed by Zalan Bujtas.

Source/WebCore:

In the case where a FrameSelection updates its appearance when m_appearanceUpdateTimer is fired, the
FrameSelection's Frame is unprotected, and can be removed by arbitrary script. This patch applies a simple
mitigation by wrapping the Frame in a Ref when firing the appearance update timer.

Test: editing/selection/iframe-update-selection-appearance.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::appearanceUpdateTimerFired):

LayoutTests:

Add a new layout test that passes if we didn't crash.

  • editing/selection/iframe-update-selection-appearance-expected.txt: Added.
  • editing/selection/iframe-update-selection-appearance.html: Added.
12:54 AM Changeset in webkit [231409] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r230485 - REGRESSION(r227341 and r227742): AI and clobberize should be precise and consistent about the effectfulness of CompareEq
https://bugs.webkit.org/show_bug.cgi?id=184455

Reviewed by Michael Saboff.

LICM is sort of an assertion that AI is as precise as clobberize about effects. If clobberize
says that something is not effectful, then LICM will try to hoist it. But LICM's AI hack
(AtTailAbstractState) cannot handle hoisting of things that have effects. So, if AI thinks that
the thing being hoisted does have effects, then we get a crash.

In r227341, we incorrectly told AI that CompareEq(Untyped:, _) is effectful. In fact, only
ComapreEq(Untyped:, Untyped:) is effectful, and clobberize knew this already. As a result, LICM
would blow up if we hoisted CompareEq(Untyped:, Other:), which clobberize knew wasn't
effectful.

Instead of fixing this by making AI precise, in r227742 we made matters worse by then breaking
clobberize to also think that CompareEq(Untyped:, _) is effectful.

This fixes the whole situation by teaching both clobberize and AI that the only effectful form
of CompareEq is ComapreEq(Untyped:, Untyped:).

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

12:46 AM Changeset in webkit [231408] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r230481 - [GTK][WPE] Race condition when destroying webprocesses
https://bugs.webkit.org/show_bug.cgi?id=184445

Reviewed by Carlos Garcia Campos.

Ensure that the WebProcess is properly closing its pages when it's exiting because
the UIProcess has invalidated the IPC connection.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didClose):

12:46 AM Changeset in webkit [231407] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r230480 - Do not layout images when we only need the overflow information.
https://bugs.webkit.org/show_bug.cgi?id=175331

Reviewed by Simon Fraser.

This improves MotionMark's Simple Leaves by ~10%.

Covered by existing tests.

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::layout):

12:46 AM Changeset in webkit [231406] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20

Merge r231298 - REGRESSION(r222772): [GTK][WPE] WebProcess from WebKitGtk+ 2.19.9x SIGSEVs in WebKit::WebProcess::ensureNetworkProcessConnection() at Source/WebKit/WebProcess/WebProcess.cpp:1127
https://bugs.webkit.org/show_bug.cgi?id=183348

Reviewed by Michael Catanzaro.

Source/WebKit:

When connection doesn't exit in case of sync message failure, always exit in case of failing to send
GetNetworkProcessConnection or GetStorageProcessConnection messages. This can happen when the WebView is created
and destroyed quickly.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::ensureWebToStorageProcessConnection):

Tools:

Add a test case to reproduce the crash.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewCloseQuickly):
(beforeAll):

12:46 AM Changeset in webkit [231405] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20

Revert "REGRESSION(r222772): [GTK][WPE] WebProcess from WebKitGtk+ 2.19.9x SIGSEVs in WebKit::WebProcess::ensureNetworkProcessConnection() at Source/WebKit/WebProcess/WebProcess.cpp:1127"

This reverts commit r230476.

May 6, 2018:

10:24 PM Changeset in webkit [231404] by Yusuke Suzuki
  • 5 edits in trunk/Source/WTF

[WTF] Embed default atomic string table in Thread
https://bugs.webkit.org/show_bug.cgi?id=185349

Reviewed by Darin Adler.

Do not need to allocate AtomicStringTable separate from Thread
since the table's lifetime is completely the same as Thread.

This patch just embeds it as a data member of Thread.

  • wtf/Threading.cpp:

(WTF::Thread::initializeInThread):
(WTF::Thread::didExit):

  • wtf/Threading.h:
  • wtf/text/AtomicStringTable.cpp:

(WTF::AtomicStringTable::create): Deleted.
(WTF::AtomicStringTable::destroy): Deleted.

  • wtf/text/AtomicStringTable.h:
7:46 PM Changeset in webkit [231403] by Yusuke Suzuki
  • 16 edits in trunk/Source

[JSC] Remove "using namespace std;" from JSC, bmalloc, WTF
https://bugs.webkit.org/show_bug.cgi?id=185362

Reviewed by Sam Weinig.

Source/bmalloc:

  • bmalloc/Allocator.cpp:
  • bmalloc/Deallocator.cpp:

Source/JavaScriptCore:

"namespace std" may include many names. It can conflict with names defined by our code,
and the other platform provided headers. For example, std::byte conflicts with Windows'
::byte.
This patch removes "using namespace std;" from JSC and bmalloc.

  • API/JSClassRef.cpp:

(OpaqueJSClass::create):

  • bytecode/Opcode.cpp:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::newRegister):

  • heap/Heap.cpp:

(JSC::Heap::updateAllocationLimits):

  • interpreter/Interpreter.cpp:
  • jit/JIT.cpp:
  • parser/Parser.cpp:
  • runtime/JSArray.cpp:
  • runtime/JSLexicalEnvironment.cpp:
  • runtime/JSModuleEnvironment.cpp:
  • runtime/Structure.cpp:
  • shell/DLLLauncherMain.cpp:

(getStringValue):
(applePathFromRegistry):
(appleApplicationSupportDirectory):
(copyEnvironmentVariable):
(prependPath):
(fatalError):
(directoryExists):
(modifyPath):
(getLastErrorString):
(wWinMain):

7:46 PM Changeset in webkit [231402] by Yusuke Suzuki
  • 4 edits in trunk/Source/WTF

[WTF] Use static initializers for WTF::Mutex and WTF::ThreadCondition
https://bugs.webkit.org/show_bug.cgi?id=185361

Reviewed by Sam Weinig.

Use static initializers for WTF::Mutex and WTF::ThreadCondition to make
constructors of them simple and constexpr.

  • wtf/ThreadingPrimitives.h:
  • wtf/ThreadingPthreads.cpp:

(WTF::Mutex::Mutex): Deleted.
(WTF::ThreadCondition::ThreadCondition): Deleted.

  • wtf/ThreadingWin.cpp:

(WTF::Mutex::Mutex): Deleted.
(WTF::ThreadCondition::ThreadCondition): Deleted.

7:09 PM Changeset in webkit [231401] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Add assertions for stale Display::Box geometry
https://bugs.webkit.org/show_bug.cgi?id=185357

Reviewed by Antti Koivisto.

Ensure that we don't access stale geometry of other boxes during layout.
For example, in order to layout a block child we need the containing block's content box top/left and width (but not the height)

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::invalidateTop):
(WebCore::Display::Box::invalidateLeft):
(WebCore::Display::Box::invalidateWidth):
(WebCore::Display::Box::invalidateHeight):
(WebCore::Display::Box::hasValidPosition const):
(WebCore::Display::Box::hasValidSize const):
(WebCore::Display::Box::hasValidGeometry const):
(WebCore::Display::Box::invalidatePosition):
(WebCore::Display::Box::invalidateSize):
(WebCore::Display::Box::setHasValidPosition):
(WebCore::Display::Box::setHasValidSize):
(WebCore::Display::Box::setHasValidGeometry):
(WebCore::Display::Box::rect const):
(WebCore::Display::Box::top const):
(WebCore::Display::Box::left const):
(WebCore::Display::Box::bottom const):
(WebCore::Display::Box::right const):
(WebCore::Display::Box::topLeft const):
(WebCore::Display::Box::bottomRight const):
(WebCore::Display::Box::size const):
(WebCore::Display::Box::width const):
(WebCore::Display::Box::height const):
(WebCore::Display::Box::setRect):
(WebCore::Display::Box::setTopLeft):
(WebCore::Display::Box::setTop):
(WebCore::Display::Box::setLeft):
(WebCore::Display::Box::setSize):
(WebCore::Display::Box::setWidth):
(WebCore::Display::Box::setHeight):

1:00 PM Changeset in webkit [231400] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Add BlockFormattingContext::computeStaticPosition
https://bugs.webkit.org/show_bug.cgi?id=185352

Reviewed by Antti Koivisto.

This is the core logic for positioning inflow boxes in a block formatting context (very naive though).

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeStaticPosition const):

  • layout/displaytree/DisplayBox.h:

May 5, 2018:

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

DFG CFA phase should only do clobber asserts in debug
https://bugs.webkit.org/show_bug.cgi?id=185354

Reviewed by Saam Barati.

Clobber asserts are responsible for 1% of compile time. That's too much. This disables them
unless asserts are enabled.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::performBlockCFA):

4:45 PM Changeset in webkit [231398] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Cleanup XMLHttpRequestUpload a little
https://bugs.webkit.org/show_bug.cgi?id=185344

Patch by Sam Weinig <sam@webkit.org> on 2018-05-05
Reviewed by Yusuke Suzuki.

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::visitAdditionalChildren):
Use auto to reduce redundancy.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::upload):

  • xml/XMLHttpRequest.h:

Switch upload() to return a reference.

  • xml/XMLHttpRequestUpload.cpp:

(WebCore::XMLHttpRequestUpload::XMLHttpRequestUpload):
(WebCore::XMLHttpRequestUpload::dispatchProgressEvent):

  • xml/XMLHttpRequestUpload.h:

Cleanup formatting, modernize and switch XMLHttpRequest member from a pointer
to a reference.

3:42 PM Changeset in webkit [231397] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Draw a drop-shadow behind the system preview badge
https://bugs.webkit.org/show_bug.cgi?id=185356
<rdar://problem/40004936>

Reviewed by Wenson Hsieh.

Draw a very subtle drop-shadow under the system
preview badge so that it is more visible on a pure
white background.

I also moved some code around to make it more clear
and improved comments.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSystemPreviewBadge):

May 4, 2018:

9:39 PM Changeset in webkit [231396] by Wenson Hsieh
  • 4 edits in trunk

[iOS] Multiple links in Mail are dropped in a single line, and are difficult to tell apart
https://bugs.webkit.org/show_bug.cgi?id=185289
<rdar://problem/35756912>

Reviewed by Tim Horton and Darin Adler.

Source/WebCore:

When inserting multiple URLs as individual items in a single drop, we currently separate each item with a space
(see r217284). However, it still seems difficult to tell dropped links apart. This patch makes some slight
tweaks to WebContentReader::readURL so that it inserts line breaks before dropped URLs, if the dropped URL isn't
the first item to be inserted in the resulting document fragment.

Augments existing API tests in DataInteractionTests.

  • editing/ios/WebContentReaderIOS.mm:

Additionally remove some extraneous header imports from this implementation file.

(WebCore::WebContentReader::readURL):

Tools:

Augment and rebaseline some iOS drag-and-drop API tests that handle dropping URLs as a part of multi-item drop
sessions.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

7:11 PM Changeset in webkit [231395] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

webrtc/addICECandidate-closed.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=185336

Reviewed by Eric Carlson.

  • webrtc/addICECandidate-closed.html:
5:26 PM Changeset in webkit [231394] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Use IOSurfaces for CoreImage operations where possible
https://bugs.webkit.org/show_bug.cgi?id=185230
<rdar://problem/39926929>

Reviewed by Jon Lee.

On iOS hardware, we can use IOSurfaces as a rendering destination
for CoreImage, which means we're keeping data on the GPU
for rendering.

As a drive-by fix, I used a convenience method for Gaussian blurs.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSystemPreviewBadge):

5:16 PM Changeset in webkit [231393] by timothy_horton@apple.com
  • 11 edits
    1 move in trunk/Source

Shift to a lower-level framework for simplifying URLs
https://bugs.webkit.org/show_bug.cgi?id=185334

Reviewed by Dan Bernstein.

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • platform/mac/DragImageMac.mm:

(WebCore::LinkImageLayout::LinkImageLayout):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/spi/cocoa/URLFormattingSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/LinkPresentationSPI.h.

Source/WebKit:

  • Configurations/WebKit.xcconfig:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _updateLocationInfo]):

Source/WTF:

  • wtf/Platform.h:
4:58 PM Changeset in webkit [231392] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

Release assert in ScriptController::canExecuteScripts via HTMLMediaElement::~HTMLMediaElement()
https://bugs.webkit.org/show_bug.cgi?id=185288

Reviewed by Jer Noble.

The crash is caused by HTMLMediaElement::~HTMLMediaElement canceling the resource load via CachedResource
which ends up calling FrameLoader::checkCompleted() and fire load event on the document synchronously.
Speculatively fix the crash by scheduling the check instead.

In long term, ResourceLoader::cancel should never fire load event synchronously: webkit.org/b/185284.

Unfortunately, no new tests since I can't get MediaResource to get destructed at the right time.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::isRunningDestructor): Added to detect this specific case.
(WebCore::HTMLMediaElementDestructorScope): Added.
(WebCore::HTMLMediaElementDestructorScope::HTMLMediaElementDestructorScope): Added.
(WebCore::HTMLMediaElementDestructorScope::~HTMLMediaElementDestructorScope): Added.
(WebCore::HTMLMediaElement::~HTMLMediaElement): Instantiate HTMLMediaElement.

  • html/HTMLMediaElement.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkCompleted): Call scheduleCheckCompleted instead of synchronously calling
checkCompleted if we're in the middle of destructing a HTMLMediaElement.

4:56 PM Changeset in webkit [231391] by webkit@devinrousso.com
  • 43 edits in trunk

Web Inspector: simplify the WI.Collection interface
https://bugs.webkit.org/show_bug.cgi?id=185187

Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Models/Collection.js:

(WI.Collection.prototype.get size): Added.
(WI.Collection.prototype.has): Added.
(WI.Collection.prototype.toJSON):
(WI.Collection.prototype.[Symbol.iterator]): Added.
(WI.Collection.prototype.get items): Deleted.
(WI.Collection.prototype.toArray): Deleted.

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype._removeCanvas):

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WebInspector.DOMDebuggerManager.prototype.get domBreakpoints):

  • UserInterface/Models/Frame.js:

(WI.Frame.prototype.removeAllChildFrames):
(WI.Frame.prototype.resourceForURL):
(WI.Frame.prototype.removeAllResources):

  • UserInterface/Models/Script.js:

(WI.Script):

  • UserInterface/Views/CanvasContentView.js:

(WI.CanvasContentView.prototype.initialLayout):

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView.prototype._updateNavigationItems):

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype._recordingRemoved):
(WI.CanvasSidebarPanel.prototype._canvasChanged):
(WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView.prototype.attached):
(WI.CanvasTabContentView.prototype._addCanvas):
(WI.CanvasTabContentView.prototype._removeCanvas):

  • UserInterface/Views/CanvasTreeElement.js:

(WI.CanvasTreeElement.prototype.onpopulate):

  • UserInterface/Views/CollectionContentView.js:

(WI.CollectionContentView.prototype.initialLayout):
(WI.CollectionContentView.prototype.attached):

  • UserInterface/Views/CookieStorageContentView.js:

(WI.CookieStorageContentView.prototype._filterCookies):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):

  • UserInterface/Views/FolderizedTreeElement.js:

(WI.FolderizedTreeElement.prototype.updateParentStatus):
(WI.FolderizedTreeElement.prototype._shouldGroupIntoFolders):

  • UserInterface/Views/FrameTreeElement.js:

(WI.FrameTreeElement.prototype.onpopulate):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype.get contentTreeOutlines):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._addResourcesForFrame):
(WI.OpenResourceDialog.prototype._addResourcesForTarget):

  • UserInterface/Views/TreeOutlineGroup.js:

(WI.TreeOutlineGroup.prototype.get selectedTreeElement):
(WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):

  • UserInterface/Views/WorkerTreeElement.js:

(WI.WorkerTreeElement.prototype.onpopulate):

LayoutTests:

  • http/tests/inspector/dom/cross-domain-inspected-node-access.html:
  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
  • http/tests/inspector/network/har/har-page.html:
  • http/tests/inspector/network/har/har-page-expected.txt:
  • http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html:
  • http/tests/inspector/network/resource-response-source-memory-cache.html:
  • http/tests/inspector/network/resource-sizes-memory-cache.html:
  • http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html:
  • http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts.html:
  • http/tests/websocket/tests/hybi/inspector/before-load.html:
  • inspector/canvas/resources/recording-utilities.js:
  • inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
  • inspector/debugger/resources/log-pause-location.js:

(TestPage.registerInitializer.window.findScript):

  • inspector/dom/highlightFrame.html:
  • inspector/dom/highlightNode.html:
  • inspector/dom/highlightNodeList.html:
  • inspector/dom/highlightSelector.html:
  • inspector/model/frame-extra-scripts.html:
  • inspector/page/empty-or-missing-resources.html:
  • inspector/unit-tests/resource-collection.html:
  • inspector/worker/resources-in-worker.html:
4:52 PM Changeset in webkit [231390] by rniwa@webkit.org
  • 7 edits
    2 moves in trunk/Source/WebCore

Rename DocumentOrderedMap to TreeScopeOrderedMap
https://bugs.webkit.org/show_bug.cgi?id=185290

Reviewed by Zalan Bujtas.

Renamed the class since it's almost always a mistake to use this class as a member variable of Document.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/MouseRelatedEvent.cpp: Include the forgotten DOMWindow.h. Unified build files bit us here.
  • dom/TreeScope.cpp:

(WebCore::TreeScope::addElementById):
(WebCore::TreeScope::addElementByName):
(WebCore::TreeScope::addImageMap):
(WebCore::TreeScope::addImageElementByUsemap):
(WebCore::TreeScope::labelElementForId):

  • dom/TreeScope.h:
  • dom/TreeScopeOrderedMap.cpp: Renamed from DocumentOrderedMap.cpp
  • dom/TreeScopeOrderedMap.h: Renamed from DocumentOrderedMap.h
  • html/HTMLDocument.h:
4:42 PM Changeset in webkit [231389] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Shutdown WindowServer connections after checking in with launch services
https://bugs.webkit.org/show_bug.cgi?id=185082
<rdar://problem/39613173>

Reviewed by Brent Fulgham.

When WindowServer access is blocked in the WebContent process, we should shutdown all connections
after checking in with launch services.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):

4:41 PM Changeset in webkit [231388] by youenn@apple.com
  • 4 edits
    1 delete in trunk/LayoutTests

REGRESSION (r230326?): Layout Test http/tests/contentextensions/make-https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=184476
<rdar://problem/39384226>

Reviewed by Ryosuke Niwa.

Removed flakiness expectation.
Updated test to no longer log load callbacks.
Instead, we rely on the fact that the four content extension upgrades
are also logged as console log messages.

  • http/tests/contentextensions/make-https-expected.txt:
  • http/tests/contentextensions/make-https.html:
  • platform/mac-sierra-wk2/http/tests/contentextensions/make-https-expected.txt: Removed.
  • platform/mac-wk2/TestExpectations:
4:29 PM Changeset in webkit [231387] by don.olmstead@sony.com
  • 8 edits in trunk/Source

[Win][WebKit] Fix forwarding headers for Windows build
https://bugs.webkit.org/show_bug.cgi?id=184412

Reviewed by Alex Christensen.

Source/WebCore:

No new tests. No change in behavior.

  • PlatformWin.cmake:

Source/WebKit:

  • PlatformWin.cmake:
  • UIProcess/API/APIAttachment.h:
  • UIProcess/API/APIContextMenuClient.h:
  • UIProcess/API/C/WKProcessTerminationReason.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
4:07 PM Changeset in webkit [231386] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark animations/duplicate-keys.html as flaky on iOS.
https://bugs.webkit.org/show_bug.cgi?id=185332

Unreviewed test gardening.

  • platform/ios/TestExpectations:
3:34 PM Changeset in webkit [231385] by Ryan Haddad
  • 4 edits in trunk/LayoutTests

Rebaseline tests for iOS after r231359.

Unreviewed test gardening.

  • platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
3:23 PM Changeset in webkit [231384] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[Simple line layout] Add support for line layout box generation with multiple text renderers.
https://bugs.webkit.org/show_bug.cgi?id=185276

Reviewed by Antti Koivisto.

Covered by existing tests.

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::canUseForLineBoxTree):
(WebCore::SimpleLineLayout::generateLineBoxTree):

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::Run::renderer const):
(WebCore::SimpleLineLayout::RunResolver::Run::localStart const):
(WebCore::SimpleLineLayout::RunResolver::Run::localEnd const):

  • rendering/SimpleLineLayoutResolver.h:
2:43 PM Changeset in webkit [231383] by timothy@apple.com
  • 155 edits in trunk

Deprecate legacy WebView and friends
https://bugs.webkit.org/show_bug.cgi?id=185279
rdar://problem/33268700

Reviewed by Tim Horton.

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Added BUILDING_WEBKIT define to disable the deprecation macros.

  • bridge/objc/WebScriptObject.h:

Added deprecation macros to WebScriptObject and WebUndefined.

  • platform/cocoa/WebKitAvailability.h:

Added more macros and a way to disable deprecation warnings for
WebKit build and in clients like Safari.

Source/WebKitLegacy/mac:

Added deprecation macros to all the classes, extern strings, and enums.

  • Configurations/WebKitLegacy.xcconfig:

Added BUILDING_WEBKIT define to disable the deprecation macros.

  • DOM/DOMAbstractView.h:
  • DOM/DOMAttr.h:
  • DOM/DOMBlob.h:
  • DOM/DOMCDATASection.h:
  • DOM/DOMCSSCharsetRule.h:
  • DOM/DOMCSSFontFaceRule.h:
  • DOM/DOMCSSImportRule.h:
  • DOM/DOMCSSMediaRule.h:
  • DOM/DOMCSSPageRule.h:
  • DOM/DOMCSSPrimitiveValue.h:
  • DOM/DOMCSSRule.h:
  • DOM/DOMCSSRuleList.h:
  • DOM/DOMCSSStyleDeclaration.h:
  • DOM/DOMCSSStyleRule.h:
  • DOM/DOMCSSStyleSheet.h:
  • DOM/DOMCSSUnknownRule.h:
  • DOM/DOMCSSValue.h:
  • DOM/DOMCSSValueList.h:
  • DOM/DOMCharacterData.h:
  • DOM/DOMComment.h:
  • DOM/DOMCounter.h:
  • DOM/DOMDocument.h:
  • DOM/DOMDocumentFragment.h:
  • DOM/DOMDocumentType.h:
  • DOM/DOMElement.h:
  • DOM/DOMEntity.h:
  • DOM/DOMEntityReference.h:
  • DOM/DOMEvent.h:
  • DOM/DOMEventException.h:
  • DOM/DOMEventListener.h:
  • DOM/DOMEventTarget.h:
  • DOM/DOMException.h:
  • DOM/DOMFile.h:
  • DOM/DOMFileList.h:
  • DOM/DOMHTMLAnchorElement.h:
  • DOM/DOMHTMLAppletElement.h:
  • DOM/DOMHTMLAreaElement.h:
  • DOM/DOMHTMLBRElement.h:
  • DOM/DOMHTMLBaseElement.h:
  • DOM/DOMHTMLBaseFontElement.h:
  • DOM/DOMHTMLBodyElement.h:
  • DOM/DOMHTMLButtonElement.h:
  • DOM/DOMHTMLCanvasElement.h:
  • DOM/DOMHTMLCollection.h:
  • DOM/DOMHTMLDListElement.h:
  • DOM/DOMHTMLDirectoryElement.h:
  • DOM/DOMHTMLDivElement.h:
  • DOM/DOMHTMLDocument.h:
  • DOM/DOMHTMLElement.h:
  • DOM/DOMHTMLEmbedElement.h:
  • DOM/DOMHTMLFieldSetElement.h:
  • DOM/DOMHTMLFontElement.h:
  • DOM/DOMHTMLFormElement.h:
  • DOM/DOMHTMLFrameElement.h:
  • DOM/DOMHTMLFrameSetElement.h:
  • DOM/DOMHTMLHRElement.h:
  • DOM/DOMHTMLHeadElement.h:
  • DOM/DOMHTMLHeadingElement.h:
  • DOM/DOMHTMLHtmlElement.h:
  • DOM/DOMHTMLIFrameElement.h:
  • DOM/DOMHTMLImageElement.h:
  • DOM/DOMHTMLInputElement.h:
  • DOM/DOMHTMLLIElement.h:
  • DOM/DOMHTMLLabelElement.h:
  • DOM/DOMHTMLLegendElement.h:
  • DOM/DOMHTMLLinkElement.h:
  • DOM/DOMHTMLMapElement.h:
  • DOM/DOMHTMLMarqueeElement.h:
  • DOM/DOMHTMLMediaElement.h:
  • DOM/DOMHTMLMenuElement.h:
  • DOM/DOMHTMLMetaElement.h:
  • DOM/DOMHTMLModElement.h:
  • DOM/DOMHTMLOListElement.h:
  • DOM/DOMHTMLObjectElement.h:
  • DOM/DOMHTMLOptGroupElement.h:
  • DOM/DOMHTMLOptionElement.h:
  • DOM/DOMHTMLOptionsCollection.h:
  • DOM/DOMHTMLParagraphElement.h:
  • DOM/DOMHTMLParamElement.h:
  • DOM/DOMHTMLPreElement.h:
  • DOM/DOMHTMLQuoteElement.h:
  • DOM/DOMHTMLScriptElement.h:
  • DOM/DOMHTMLSelectElement.h:
  • DOM/DOMHTMLStyleElement.h:
  • DOM/DOMHTMLTableCaptionElement.h:
  • DOM/DOMHTMLTableCellElement.h:
  • DOM/DOMHTMLTableColElement.h:
  • DOM/DOMHTMLTableElement.h:
  • DOM/DOMHTMLTableRowElement.h:
  • DOM/DOMHTMLTableSectionElement.h:
  • DOM/DOMHTMLTextAreaElement.h:
  • DOM/DOMHTMLTitleElement.h:
  • DOM/DOMHTMLUListElement.h:
  • DOM/DOMHTMLVideoElement.h:
  • DOM/DOMImplementation.h:
  • DOM/DOMKeyboardEvent.h:
  • DOM/DOMMediaError.h:
  • DOM/DOMMediaList.h:
  • DOM/DOMMouseEvent.h:
  • DOM/DOMMutationEvent.h:
  • DOM/DOMNamedNodeMap.h:
  • DOM/DOMNode.h:
  • DOM/DOMNodeFilter.h:
  • DOM/DOMNodeIterator.h:
  • DOM/DOMNodeList.h:
  • DOM/DOMObject.h:
  • DOM/DOMOverflowEvent.h:
  • DOM/DOMProcessingInstruction.h:
  • DOM/DOMProgressEvent.h:
  • DOM/DOMRGBColor.h:
  • DOM/DOMRange.h:
  • DOM/DOMRangeException.h:
  • DOM/DOMRect.h:
  • DOM/DOMStyleSheet.h:
  • DOM/DOMStyleSheetList.h:
  • DOM/DOMText.h:
  • DOM/DOMTextEvent.h:
  • DOM/DOMTimeRanges.h:
  • DOM/DOMTokenList.h:
  • DOM/DOMTreeWalker.h:
  • DOM/DOMUIEvent.h:
  • DOM/DOMWheelEvent.h:
  • DOM/DOMXPathException.h:
  • DOM/DOMXPathExpression.h:
  • DOM/DOMXPathNSResolver.h:
  • DOM/DOMXPathResult.h:
  • History/WebBackForwardList.h:
  • History/WebHistory.h:
  • History/WebHistoryItem.h:
  • Misc/WebDownload.h:
  • Misc/WebKitErrors.h:
  • Plugins/WebPluginViewFactory.h:
  • WebView/WebArchive.h:
  • WebView/WebDataSource.h:
  • WebView/WebDocument.h:
  • WebView/WebEditingDelegate.h:
  • WebView/WebFormDelegate.h:
  • WebView/WebFrame.h:
  • WebView/WebFrameLoadDelegate.h:
  • WebView/WebFrameView.h:
  • WebView/WebPolicyDelegate.h:
  • WebView/WebPreferences.h:
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebResourceLoadDelegate.h:
  • WebView/WebUIDelegate.h:
  • WebView/WebUIDelegatePrivate.h:
  • WebView/WebView.h:
  • WebView/WebViewPrivate.h:
  • postprocess-headers.sh:

Remove step that converts WEBKIT macros to NS macros.
Change it to just remove the macros on iOS builds.

Tools:

  • MiniBrowser/Configurations/Base.xcconfig: Added GCC_PREPROCESSOR_DEFINITIONS

to define DISABLE_LEGACY_WEBKIT_DEPRECATIONS.

2:39 PM Changeset in webkit [231382] by eric.carlson@apple.com
  • 7 edits in trunk/Source

Log media time range as JSON
https://bugs.webkit.org/show_bug.cgi?id=185321
<rdar://problem/39986746>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, tested manually.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::addPlayedRange): Log as time range.
(WebCore::HTMLMediaElement::visibilityStateChanged): Cleanup.

  • platform/graphics/MediaPlayer.h:

(WTF::LogArgument<MediaTime>::toString):
(WTF::LogArgument<MediaTimeRange>::toString):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Log error as time range.

Source/WTF:

  • wtf/MediaTime.cpp:

(WTF::toJSONStringInternal): Extract guts of MediaTime::toJSONString to this static function
so it can be used by MediaTimeRange::toJSONString as well.
(WTF::MediaTime::toJSONString const):
(WTF::MediaTimeRange::toJSONString const):

  • wtf/MediaTime.h:
2:26 PM Changeset in webkit [231381] by Ryan Haddad
  • 4 edits in trunk/LayoutTests

Rebaseline tests after r231359.

Unreviewed test gardening.

  • platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
2:26 PM Changeset in webkit [231380] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Update TestExpectations for media/video-aspect-ratio.html.
https://bugs.webkit.org/show_bug.cgi?id=184457

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
2:15 PM Changeset in webkit [231379] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Use the containing block to compute the pagination gap when the container is inline.
https://bugs.webkit.org/show_bug.cgi?id=184724
<rdar://problem/39521800>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/overflow/page-overflow-with-inline-body-crash.html

  • page/FrameView.cpp:

(WebCore::FrameView::applyPaginationToViewport):

LayoutTests:

  • fast/overflow/page-overflow-with-inline-body-crash-expected.txt: Added.
  • fast/overflow/page-overflow-with-inline-body-crash.html: Added.
1:54 PM Changeset in webkit [231378] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Don't use GSFont* in minimal simulator mode
https://bugs.webkit.org/show_bug.cgi?id=185320
<rdar://problem/39734478>

Reviewed by Beth Dakin.

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::platformReleaseMemory):

1:51 PM Changeset in webkit [231377] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: Newly added unsupported properties sometimes don't have warnings
https://bugs.webkit.org/show_bug.cgi?id=183097
<rdar://problem/37843816>

Reviewed by Matt Baker.

Update status of properties warnings every time focus moves.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updatePropertiesStatus):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):

1:48 PM Changeset in webkit [231376] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[iOS] Apps that are not visible may not get suspended if they trigger page loads while in the background
https://bugs.webkit.org/show_bug.cgi?id=185318

Reviewed by Geoffrey Garen.

Whenever there is a page load going on, we take a background process assertion to delay process
suspension until this load completes. However, there is also a 3 seconds grace period after
a load is complete to allow the app to trigger a new load shortly after. This grace period was
introduced to support use cases where a visible app does loads in an offscreen view. However,
it can be abused by apps running in the background as they could trigger new page loads while
in the background to delay process suspension. This patch tightens the policy so that only
apps that are currently visible get to use this grace period. Apps that are in the background
get to finish their current load and will then get suspended.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::didChangeIsLoading):

1:47 PM Changeset in webkit [231375] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

isCacheableArrayLength should return true for undecided arrays
https://bugs.webkit.org/show_bug.cgi?id=185309

Reviewed by Michael Saboff.

JSTests:

  • stress/get-array-length-undecided.js: Added.

(test):

Source/JavaScriptCore:

Undecided arrays have butterflies so there is no reason why we
should not be able to cache their length.

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::isCacheableArrayLength):

1:44 PM Changeset in webkit [231374] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Adjust sandbox profile for simulator.
https://bugs.webkit.org/show_bug.cgi?id=185319

Reviewed by Brent Fulgham.

Disable Kerberos rules, as well as rules related to NSApplication initialization.

  • WebProcess/com.apple.WebProcess.sb.in:
1:40 PM Changeset in webkit [231373] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/Tools

Test262-Runner: Add base module to the local deps - unicore/PVA.pl
https://bugs.webkit.org/show_bug.cgi?id=185314

Patch by Leo Balter <Leo Balter> on 2018-05-04
Reviewed by Michael Saboff.

  • Scripts/test262/local/lib/perl5/unicore/PVA.pl: Added.
1:29 PM Changeset in webkit [231372] by webkit@devinrousso.com
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: ensure that tabbing through the last section wraps back to the first
https://bugs.webkit.org/show_bug.cgi?id=181973

Reviewed by Matt Baker.

Unified delegate functions to start editing previous/next rules into a single function for
simplicity.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingAdjacentRule):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationEditorStartEditingAdjacentRule): Deleted.

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusFirstSection):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusLastSection):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionStartEditingAdjacentRule):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingNextRule): Deleted.
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingPreviousRule): Deleted.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusLastPseudoClassCheckbox):
(WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusFilterBar):
(WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
(WI.GeneralStyleDetailsSidebarPanel.prototype._handleForcedPseudoClassCheckboxKeydown):
(WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
(WI.GeneralStyleDetailsSidebarPanel.prototype._handleFilterBarInputFieldKeyDown):

Drive-by fix: provide tabbing support for the Computed styles panel.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WI.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule):
(WI.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule):

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.focusFirstSection):
(WI.ComputedStyleDetailsPanel.prototype.focusLastSection):
(WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule):

12:42 PM Changeset in webkit [231371] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Wasted time dlopening Lookup when tearing down a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=185310
<rdar://problem/39934085>

Reviewed by Wenson Hsieh.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(-[WKWindowVisibilityObserver dealloc]):
(-[WKWindowVisibilityObserver startObservingLookupDismissalIfNeeded]):
(WebKit::WebViewImpl::prepareForDictionaryLookup):
(-[WKWindowVisibilityObserver startObservingLookupDismissal]): Deleted.
Avoid un-registering as a Lookup dismissal observer if we never
registered in the first place, because that involves dlopening Lookup.

12:16 PM Changeset in webkit [231370] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Allow Web Touch events to timeout
https://bugs.webkit.org/show_bug.cgi?id=185282
<rdar://problem/38728319>

Reviewed by Tim Horton.

Web Touch events currently never time out, which blocks the user from interacting with the UI Process at all.
We should allow these events to time out so that the user can interact with the rest of the UI.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleTouchEventSynchronously):

11:52 AM Changeset in webkit [231369] by commit-queue@webkit.org
  • 4 edits in trunk

REGRESSION: [ios-simulator] 3 WKWebViewAutofillTests API test failures seen with 11.3 SDK
https://bugs.webkit.org/show_bug.cgi?id=184196
<rdar://problem/39054481>

Patch by Wenson Hsieh <whsieh@berkeley.edu> on 2018-05-04
Reviewed by Tim Horton.

Source/WebKit:

Remove an unnecessary call to NSClassFromString, now that trunk WebKit only supports iOS 11.3+.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView insertTextSuggestion:]):

Tools:

Removes some unnecessary workarounds to enable running app autofill tests against iOS versions
earlier than 11.3. Also re-enables these tests.

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(TestWebKitAPI::TEST):
(-[UITextAutofillSuggestion initWithUsername:password:]): Deleted.
(+[UITextAutofillSuggestion autofillSuggestionWithUsername:password:]): Deleted.

11:50 AM Changeset in webkit [231368] by webkit@devinrousso.com
  • 4 edits in trunk

Web Inspector: Canvas tab: Determine isFunction by looking at the prototype
https://bugs.webkit.org/show_bug.cgi?id=184990

Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction.isFunctionForType):
(WI.RecordingAction._prototypeForType):
(WI.RecordingAction.prototype.async.swizzle):

LayoutTests:

  • inspector/canvas/recording-2d-expected.txt:
11:44 AM Changeset in webkit [231367] by Chris Dumez
  • 24 edits
    2 deletes in trunk

Unreviewed, rolling out r231331.

Caused a few tests to assert

Reverted changeset:

"Stop using an iframe's id as fallback if its name attribute
is not set"
https://bugs.webkit.org/show_bug.cgi?id=11388
https://trac.webkit.org/changeset/231331

11:37 AM Changeset in webkit [231366] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Use more references in updateTracksOfType
https://bugs.webkit.org/show_bug.cgi?id=185305

Reviewed by Eric Carlson.

No change of behavior.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::updateTracksOfType):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):

11:35 AM Changeset in webkit [231365] by youenn@apple.com
  • 7 edits in trunk/Source/WebKit

NetworkProcessProxy::didReceiveAuthenticationChallenge should take an AuthenticationChallenge r-value
https://bugs.webkit.org/show_bug.cgi?id=185302

Reviewed by Geoffrey Garen.

Pass AuthenticationChallenge as an r-value since it comes from IPC.
No change of behavior.

  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp:

(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):

  • UIProcess/Authentication/AuthenticationChallengeProxy.h:

(WebKit::AuthenticationChallengeProxy::create):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Network/NetworkProcessProxy.h:
11:01 AM Changeset in webkit [231364] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/contentextensions/make-https.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184476

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:01 AM Changeset in webkit [231363] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/navigate-with-pip-should-not-crash.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=173119

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:46 AM Changeset in webkit [231362] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Disable tests on systems with limited memory
https://bugs.webkit.org/show_bug.cgi?id=185296

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-04
Reviewed by Saam Barati.

Test doesn't work with a limited amount of memory. I tried to reduce memory usage
but then it was hard to reproduce the failure the test was originally made to test.

  • stress/array-reverse-doesnt-clobber.js:
10:38 AM Changeset in webkit [231361] by mmaxfield@apple.com
  • 6 edits
    6 adds in trunk

Text shaping in the simple path is flipped in the y direction
https://bugs.webkit.org/show_bug.cgi?id=185062
<rdar://problem/39778678>

Reviewed by Simon Fraser.

Source/WebCore:

Shaping in our simple codepath occurs in an "increasing-y-goes-up" coordinate system, but our painting
code uses an "increasing-y-goes-down" coordinate system. We weren't fixing up the coordinate systems
because we never noticed. This is because the simple codepath is only designed for kerning and ligatures,
neither of which move glyphs vertically in the common case.

Test: fast/text/vertical-displacement-simple-codepath.html

  • platform/graphics/Font.cpp:

(WebCore::Font::applyTransforms const):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyFontTransforms):

Tools:

Huge thanks to Ulrike Rausch of LiebeFonts for contributing the test fonts!!!

  • Scripts/webkitpy/common/config/contributors.json:

LayoutTests:

This test renders a font which uses our fast text codepath but also includes vertical
displacements inside its liga feature. The test makes sure that the vertical displacement
occurs in the correct direction.

The test fonts were created by Ulrike Rausch of LiebeFonts specifically for the purpose
of testing. Huge thanks to her!! Figuring out this bug would not have been possible if
not for her huge help!

  • fast/text/resources/LiebeTest-calt.woff: Added.
  • fast/text/resources/LiebeTest-dlig.woff: Added.
  • fast/text/resources/LiebeTest-liga.woff: Added.
  • fast/text/resources/LiebeTest-swsh.woff: Added.
  • fast/text/vertical-displacement-simple-codepath-expected.html: Added.
  • fast/text/vertical-displacement-simple-codepath.html: Added.
10:36 AM Changeset in webkit [231360] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Test262-Runner: place the processCLI inside the main call
https://bugs.webkit.org/show_bug.cgi?id=185304

Patch by Leo Balter <Leo Balter> on 2018-05-04
Reviewed by Michael Saboff.

  • Scripts/test262/Runner.pm:

(main):

10:32 AM Changeset in webkit [231359] by commit-queue@webkit.org
  • 80 edits
    1 delete in trunk

Serialize all URLs with double-quotes per CSSOM spec
https://bugs.webkit.org/show_bug.cgi?id=184935

Patch by Chris Nardi <cnardi@chromium.org> on 2018-05-04
Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Update expectations for using double quotes when serializing URLs.

  • web-platform-tests/cssom/serialize-values-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:

Source/WebCore:

According to https://drafts.csswg.org/cssom/#serialize-a-url, all URLs should be serialized as strings,
which means they should have double quotes around the text of the URL. Update our implementation to match
this (and Firefox/Chrome). Also remove isCSSTokenizerURL() as this method is no longer needed.

Tests: Many LayoutTests updated to use double quotes.

  • css/CSSMarkup.cpp:

(WebCore::serializeString): Remove FIXME as this was already fixed in a previous patch.
(WebCore::serializeURL): Remove FIXME and update implementation.

LayoutTests:

Update tests to use double quotes when serializing URLs, and fixes for using double quotes in the test.

  • css3/calc/cross-fade-calc.html:
  • css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-computed-style.html:
  • css3/filters/backdrop/backdropfilter-property-parsing-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-parsing.html:
  • css3/filters/filter-property-computed-style-expected.txt:
  • css3/filters/filter-property-computed-style.html:
  • css3/filters/filter-property-expected.txt:
  • css3/filters/filter-property-parsing-expected.txt:
  • css3/filters/filter-property-parsing.html:
  • css3/filters/filter-property.html:
  • css3/filters/unprefixed-expected.txt:
  • css3/filters/unprefixed.html:
  • fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt:
  • fast/backgrounds/background-shorthand-after-set-backgroundSize.html:
  • fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
  • fast/backgrounds/background-shorthand-with-backgroundSize-style.html:
  • fast/backgrounds/multiple-backgrounds-computed-style-expected.txt:
  • fast/backgrounds/multiple-backgrounds-computed-style.html:
  • fast/css/background-position-serialize-expected.txt:
  • fast/css/cursor-parsing-expected.txt:
  • fast/css/cursor-parsing-image-set-expected.txt:
  • fast/css/cursor-parsing-image-set.html:
  • fast/css/cursor-parsing.html:
  • fast/css/getComputedStyle/computed-style-border-image-expected.txt:
  • fast/css/getComputedStyle/computed-style-border-image.html:
  • fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:
  • fast/css/getComputedStyle/computed-style-cross-fade.html:
  • fast/css/getComputedStyle/computed-style-properties-expected.txt:
  • fast/css/getComputedStyle/computed-style-properties.html:
  • fast/css/getComputedStyle/getComputedStyle-background-shorthand-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-background-shorthand.html:
  • fast/css/getComputedStyle/getComputedStyle-list-style-shorthand-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-list-style-shorthand.html:
  • fast/css/image-set-parsing.html:
  • fast/css/image-set-setting-expected.txt:
  • fast/css/image-set-setting.html:
  • fast/css/image-set-unprefixed-expected.txt:
  • fast/css/image-set-unprefixed.html:
  • fast/css/invalid-cursor-property-crash.html:
  • fast/css/parse-border-image-repeat-null-crash-expected.txt:
  • fast/css/uri-token-parsing-expected.txt:
  • fast/css/uri-token-parsing.html:
  • fast/css/url-with-multi-byte-unicode-escape-expected.txt:
  • fast/css/url-with-multi-byte-unicode-escape.html:
  • fast/filter-image/parse-filter-image-expected.txt:
  • fast/filter-image/parse-filter-image.html:
  • fast/innerHTML/innerHTML-uri-resolution.html:
  • fast/inspector-support/cssURLQuotes-expected.txt:
  • fast/inspector-support/cssURLQuotes.html:
  • fast/masking/parsing-clip-path-iri-expected.txt:
  • fast/masking/parsing-clip-path-iri.html:
  • fast/masking/parsing-mask-expected.txt:
  • fast/masking/parsing-mask.html:
  • fast/shapes/parsing/parsing-shape-outside-expected.txt:
  • fast/shapes/parsing/parsing-shape-outside.html:
  • fast/shapes/parsing/parsing-test-utils.js:

(removeBaseURL):

  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • platform/ios/fast/css/image-set-unprefixed-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • platform/win/fast/css/parse-border-image-repeat-null-crash-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • resources/image-preload-helper.js:

(preloadImagesFromStyle):

  • svg/css/svg-attribute-parser-mode-expected.txt:
  • svg/css/svg-attribute-parser-mode.html:
  • svg/custom/marker-getPropertyValue-expected.txt:
  • svg/custom/marker-getPropertyValue.svg:
10:24 AM Changeset in webkit [231358] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

LayoutTests/fast/mediastream/change-tracks-media-stream-being-played.html is crashing after r231304
https://bugs.webkit.org/show_bug.cgi?id=185303

Reviewed by Eric Carlson.

We need to stop observing the audio track like we do for video track once we are no longer interested in it.
Covered by test no longer crashing.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):

10:21 AM Changeset in webkit [231357] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Improve test at media/modern-media-controls/airplay-button/airplay-button-on.html to not hardcode the -apple-wireless-playback-target-active color
https://bugs.webkit.org/show_bug.cgi?id=185297
<rdar://problem/39737716>

Patch by Antoine Quint <Antoine Quint> on 2018-05-04
Reviewed by Dean Jackson.

Create an element and set its "color" property to "-apple-wireless-playback-target-active" so we can use
getComputedStyle() to query the applied value instead of hard-coding the expected color.

  • media/modern-media-controls/airplay-button/airplay-button-on.html:
9:51 AM Changeset in webkit [231356] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Assertion failure in NetworkStorageSession::setCookie: privilege of UI process is not set
https://bugs.webkit.org/show_bug.cgi?id=185262

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-04
Reviewed by Chris Dumez.

Fix an assertion failure by setting UI process privileges in constructor of WebsiteDataStore
because UI process may use the cookie API before creating a WebView.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):

9:30 AM Changeset in webkit [231355] by Alan Bujtas
  • 8 edits
    1 copy in trunk/Source/WebCore

[LFC] Set the invalidation root as the result of style change.
https://bugs.webkit.org/show_bug.cgi?id=185301

Reviewed by Antti Koivisto.

Compute/propagate the update type on the ancestor chain and return the invalidation root
so that LayoutContext could use it as the entry point for the next layout frame.

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::updateLayout):
(WebCore::Layout::LayoutContext::styleChanged):

  • layout/LayoutContext.h: order is not important.
  • layout/blockformatting/BlockInvalidation.cpp:

(WebCore::Layout::invalidationStopsAtFormattingContextBoundary):
(WebCore::Layout::computeUpdateType):
(WebCore::Layout::computeUpdateTypeForAncestor):
(WebCore::Layout::BlockInvalidation::invalidate):

  • layout/blockformatting/BlockInvalidation.h:
  • layout/inlineformatting/InlineInvalidation.cpp:

(WebCore::Layout::InlineInvalidation::invalidate):

  • layout/inlineformatting/InlineInvalidation.h:
9:15 AM Changeset in webkit [231354] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Adjust sandbox rules for simulator.
https://bugs.webkit.org/show_bug.cgi?id=185275

Reviewed by Brent Fulgham.

Enable rules related to CoreMedia for minimal simulator.

  • WebProcess/com.apple.WebProcess.sb.in:
8:35 AM Changeset in webkit [231353] by Antti Koivisto
  • 2 edits in trunk/Source/WTF

OptionsSet initializer list constructor should be constexpr
https://bugs.webkit.org/show_bug.cgi?id=185298

Reviewed by Anders Carlsson.

  • wtf/OptionSet.h:

(WTF::OptionSet::OptionSet):

8:18 AM Changeset in webkit [231352] by youenn@apple.com
  • 3 edits
    2 adds in trunk

PeerConnection should have its connectionState closed even if doing gathering
https://bugs.webkit.org/show_bug.cgi?id=185267

Reviewed by Darin Adler.

Source/WebCore:

Test: webrtc/addICECandidate-closed.html

In case m_iceConnectionState is closed, m_connectionState should also be set to closed
and RTCPeerConnection should be closed so as to reject any other call.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::updateConnectionState):

LayoutTests:

  • webrtc/addICECandidate-closed-expected.txt: Added.
  • webrtc/addICECandidate-closed.html: Added.
6:26 AM Changeset in webkit [231351] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Delete properly the stream from the WebKitMediaSource
https://bugs.webkit.org/show_bug.cgi?id=185242

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-04
Reviewed by Xabier Rodriguez-Calvar.

When the sourceBuffer is removed from mediasource, the appropriate stream is not
properly deleted from WebKitMediaSource, because the appsrc and parser elements
of the stream are not removed from the WebKitMediaSource bin.

This patch avoids the regression of r231089, see https://bugs.webkit.org/show_bug.cgi?id=185071

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(webKitMediaSrcFreeStream):

3:14 AM Changeset in webkit [231350] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK] Epiphany (GNOME Web) says "Error downloading: Service Unavailable." when trying to download an image from discogs.com
https://bugs.webkit.org/show_bug.cgi?id=174730

Reviewed by Michael Catanzaro.

Source/WebCore:

Export ResourceRequestBase::hasHTTPHeaderField().

  • platform/network/ResourceRequestBase.h:

Source/WebKit:

The problem is that we don't send any User-Agent HTTP header for downloads started by WebProcessPool::download().

  • UIProcess/API/glib/WebKitDownload.cpp:

(webkitDownloadUpdateRequest): Helper to update the cached request.
(webkitDownloadStarted): Updated the cached request if we have one.
(webkit_download_get_request): Use webkitDownloadUpdateRequest().

  • UIProcess/API/glib/WebKitDownloadClient.cpp:
  • UIProcess/API/glib/WebKitDownloadPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::download): Set the User-Agent HTTP header if there isn't any.

Tools:

Update unit tests to check that User-Agent header is included in HTTP download requests.

  • TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:

(testDownloadRemoteFile):
(testWebViewDownloadURI):
(testPolicyResponseDownload):
(testPolicyResponseDownloadCancel):
(testDownloadMIMEType):
(testContextMenuDownloadActions):

3:12 AM Changeset in webkit [231349] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] Some event tests failing after r230817
https://bugs.webkit.org/show_bug.cgi?id=185072

Reviewed by Michael Catanzaro.

Source/WebKit:

Do not send mouse move events to the WebProcess for crossing events during testing. WTR never generates crossing
events and they can confuse tests.

Fixes: editing/pasteboard/drag-link-with-data-transfer-adds-trusted-link-to-pasteboard.html

fast/css/user-drag-none.html
fast/events/context-activated-by-key-event.html
fast/events/drag-selects-image.html
fast/events/dropzone-005.html
fast/events/mouse-click-events.html
fast/events/mouse-cursor-change.html

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseCrossingNotifyEvent):

LayoutTests:

Remove expectations for tests that are passing now.

  • platform/gtk/TestExpectations:

May 3, 2018:

11:03 PM Changeset in webkit [231348] by Chris Dumez
  • 11 edits in trunk/Source/WebKit

More aggressively terminate child processes when the connection to their parent process is severed
https://bugs.webkit.org/show_bug.cgi?id=177972
<rdar://problem/33317607>

Reviewed by Geoff Garen.

More aggressively terminate child processes when the connection to their parent process is severed.
Previously, we would dispatch to the main thread and then exit the process. This would sometimes
cause the process to say alive for 10 seconds until our watchdog would forcefully terminate the
process. This could happen in particular when the main thread is blocked on a synchronous IPC.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didClose): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::didClose): Deleted.

  • PluginProcess/PluginProcess.h:
  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::didClose):
(WebKit::didCloseOnConnectionWorkQueue):
(WebKit::ChildProcess::terminationTimerFired):

  • Shared/ChildProcess.h:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::didClose): Deleted.

  • StorageProcess/StorageProcess.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didClose): Deleted.

  • WebProcess/WebProcess.h:
10:32 PM Changeset in webkit [231347] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Remove std::random_shuffle
https://bugs.webkit.org/show_bug.cgi?id=185292

Reviewed by Darin Adler.

std::random_shuffle is deprecated in C++14 and removed in C++17,
since std::random_shuffle relies on rand and srand.
Use std::shuffle instead.

  • jit/BinarySwitch.cpp:

(JSC::RandomNumberGenerator::RandomNumberGenerator):
(JSC::RandomNumberGenerator::operator()):
(JSC::RandomNumberGenerator::min):
(JSC::RandomNumberGenerator::max):
(JSC::BinarySwitch::build):

10:28 PM Changeset in webkit [231346] by Yusuke Suzuki
  • 4 edits in trunk/Source/WebCore

Use subprocess.call instead of os.system to handle path with spaces
https://bugs.webkit.org/show_bug.cgi?id=185291

Reviewed by Darin Adler.

If gperf path includes spaces, these python scripts fail to execute gperf.
We use subprocess module instead of os.system to invoke gperf.

  • css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
  • css/makeSelectorPseudoElementsMap.py:
  • platform/network/create-http-header-name-table:
9:33 PM Changeset in webkit [231345] by sbarati@apple.com
  • 13 edits
    2 adds in trunk

Don't prevent CreateThis being folded to NewObject when the structure is poly proto
https://bugs.webkit.org/show_bug.cgi?id=185177

Reviewed by Filip Pizlo.

JSTests:

  • microbenchmarks/construct-poly-proto-object.js: Added.

(foo.A):
(foo):

  • stress/allocation-sinking-new-object-with-poly-proto.js: Added.

(foo.A):
(foo):
(makePolyProto):
(bar):
(baz):

Source/JavaScriptCore:

This patch teaches the DFG/FTL how to constant fold CreateThis with
a known poly proto Structure to NewObject. We do it by emitting a NewObject
followed by a PutByOffset for the prototype value.

We make it so that ObjectAllocationProfile holds the prototype value.
This is sound because JSFunction clears that profile when its 'prototype'
field changes.

This patch also renames underscoreProtoPrivateName to polyProtoName since
that name was nonsensical: it was only used for poly proto.

This is a 2x speedup on the get_callee_polymorphic microbenchmark. I had
regressed that benchmark when I first introduced poly proto.

  • builtins/BuiltinNames.cpp:
  • builtins/BuiltinNames.h:

(JSC::BuiltinNames::BuiltinNames):
(JSC::BuiltinNames::polyProtoName const):
(JSC::BuiltinNames::underscoreProtoPrivateName const): Deleted.

  • bytecode/ObjectAllocationProfile.h:

(JSC::ObjectAllocationProfile::prototype):
(JSC::ObjectAllocationProfile::clear):
(JSC::ObjectAllocationProfile::visitAggregate):

  • bytecode/ObjectAllocationProfileInlines.h:

(JSC::ObjectAllocationProfile::initializeProfile):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/FunctionRareData.h:
  • runtime/Structure.cpp:

(JSC::Structure::create):

6:50 PM Changeset in webkit [231344] by Yusuke Suzuki
  • 2 edits in trunk/Source/WebCore

Unreviewed, attempt to fix WinCairo build failure
https://bugs.webkit.org/show_bug.cgi?id=185218

  • platform/text/win/LocaleWin.cpp:

(WebCore::LocaleWin::getLocaleInfoString):

6:11 PM Changeset in webkit [231343] by msaboff@apple.com
  • 3 edits
    1 add in trunk

OSR entry pruning of Program Bytecodes doesn't take into account try/catch
https://bugs.webkit.org/show_bug.cgi?id=185281

Reviewed by Saam Barati.

JSTests:

New regression test.

  • stress/baseline-osrentry-catch-is-reachable.js: Added.

(i.j.catch):

Source/JavaScriptCore:

When we compute bytecode block reachability, we need to take into account blocks
containing try/catch.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

6:00 PM Changeset in webkit [231342] by Yusuke Suzuki
  • 6 edits in trunk/Source

Use default std::optional if it is provided
https://bugs.webkit.org/show_bug.cgi?id=185159

Reviewed by Michael Catanzaro.

Source/WebKit:

  • Shared/SandboxExtension.h:

(WebKit::SandboxExtension::Handle::decode):

  • Shared/TouchBarMenuItemData.cpp:

(WebKit::TouchBarMenuItemData::decode):

Source/WTF:

  • wtf/Expected.h:
  • wtf/Optional.h:

Do not use <optional> for clang currently.
(WTF::valueOrCompute):

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

ARM: Wrong offset for operand rt in disassembler
https://bugs.webkit.org/show_bug.cgi?id=184083

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-03
Reviewed by Yusuke Suzuki.

  • disassembler/ARMv7/ARMv7DOpcode.h:

(JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::rt):
(JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::rt):

5:54 PM Changeset in webkit [231340] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

ARM: Support vstr in disassembler
https://bugs.webkit.org/show_bug.cgi?id=184084

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-03
Reviewed by Yusuke Suzuki.

  • disassembler/ARMv7/ARMv7DOpcode.cpp:

(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDRSTR::format):
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::format): Deleted.

  • disassembler/ARMv7/ARMv7DOpcode.h:

(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDRSTR::opName):
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::condition): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::uBit): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::rn): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::vd): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::doubleReg): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::immediate8): Deleted.

5:49 PM Changeset in webkit [231339] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Invoke ensureArrayStorage for all arguments
https://bugs.webkit.org/show_bug.cgi?id=185247

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-03
Reviewed by Yusuke Suzuki.

ensureArrayStorage was only invoked for first argument in each loop iteration.

  • jsc.cpp:

(functionEnsureArrayStorage):

5:41 PM Changeset in webkit [231338] by fpizlo@apple.com
  • 10 edits
    2 adds
    1 delete in trunk/Source/JavaScriptCore

Make it easy to log compile times for all optimizing tiers
https://bugs.webkit.org/show_bug.cgi?id=185270

Reviewed by Keith Miller.

This makes --logPhaseTimes=true enable logging of phase times for DFG and B3 using a common
helper class, CompilerTimingScope. This used to be called B3::TimingScope and only B3 used
it.

This should help us reduce compile times by telling us where to look. So, far, it looks like
CFA is the worst.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • b3/B3Common.cpp:

(JSC::B3::shouldMeasurePhaseTiming): Deleted.

  • b3/B3Common.h:
  • b3/B3TimingScope.cpp: Removed.
  • b3/B3TimingScope.h:

(JSC::B3::TimingScope::TimingScope):

  • dfg/DFGPhase.h:

(JSC::DFG::runAndLog):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThread):

  • tools/CompilerTimingScope.cpp: Added.

(JSC::CompilerTimingScope::CompilerTimingScope):
(JSC::CompilerTimingScope::~CompilerTimingScope):

  • tools/CompilerTimingScope.h: Added.
  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

  • runtime/Options.h:
5:40 PM Changeset in webkit [231337] by fpizlo@apple.com
  • 35 edits
    3 deletes in trunk/Source

Strings should not be allocated in a gigacage
https://bugs.webkit.org/show_bug.cgi?id=185218

Reviewed by Saam Barati.
Source/bmalloc:


This removes the string gigacage.

Putting strings in a gigacage prevents read gadgets. The other things that get to be in gigacages
are there to prevent read-write gadgets.

Also, putting strings in a gigacage seems to have been a bigger regression than putting other
things in gigacages.

Therefore, to maximize the benefit/cost ratio of gigacages, we should evict strings from them. If
we want to throw away perf for security, there are more beneficial things to sacrifice.

  • bmalloc/Gigacage.h:

(Gigacage::name):
(Gigacage::basePtr):
(Gigacage::size):
(Gigacage::forEachKind):

  • bmalloc/HeapKind.h:

(bmalloc::isGigacage):
(bmalloc::gigacageKind):
(bmalloc::heapKind):
(bmalloc::isActiveHeapKindAfterEnsuringGigacage):
(bmalloc::mapToActiveHeapKindAfterEnsuringGigacage):

Source/JavaScriptCore:

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::toStringGeneric):

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeToAtomicString const):
(JSC::JSRopeString::resolveRope const):

  • runtime/JSString.h:

(JSC::JSString::create):
(JSC::JSString::createHasOtherOwner):

  • runtime/VM.h:

(JSC::VM::gigacageAuxiliarySpace):

Source/WebCore:

No new tests because no new behavior.

  • Modules/indexeddb/server/IDBSerialization.cpp:

(WebCore::decodeKey):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readString):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::normalizeSpaces):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemainingWhitespace):

  • platform/URLParser.cpp:

(WebCore::percentEncodeByte):
(WebCore::serializeURLEncodedForm):
(WebCore::URLParser::serialize):

  • platform/URLParser.h:
  • platform/graphics/FourCC.cpp:

(WebCore::FourCC::toString const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::ReplicaState::cloneID const):

  • platform/text/LocaleICU.cpp:

(WebCore::LocaleICU::decimalSymbol):
(WebCore::LocaleICU::decimalTextAttribute):
(WebCore::getDateFormatPattern):
(WebCore::LocaleICU::createLabelVector):
(WebCore::getFormatForSkeleton):

  • platform/win/FileSystemWin.cpp:

(WebCore::FileSystem::getFinalPathName):
(WebCore::FileSystem::pathByAppendingComponent):
(WebCore::FileSystem::storageDirectory):

Source/WTF:


  • WTF.xcodeproj/project.pbxproj:
  • wtf/Deque.h:
  • wtf/Forward.h:
  • wtf/Gigacage.h:

(Gigacage::name):
(Gigacage::basePtr):

  • wtf/Vector.h:

(WTF::VectorBufferBase::allocateBuffer):
(WTF::VectorBufferBase::tryAllocateBuffer):
(WTF::VectorBufferBase::reallocateBuffer):
(WTF::VectorBufferBase::deallocateBuffer):
(WTF::minCapacity>::Vector):
(WTF::=):
(WTF::minCapacity>::contains const):
(WTF::minCapacity>::findMatching const):
(WTF::minCapacity>::find const):
(WTF::minCapacity>::reverseFind const):
(WTF::minCapacity>::appendIfNotContains):
(WTF::minCapacity>::fill):
(WTF::minCapacity>::appendRange):
(WTF::minCapacity>::expandCapacity):
(WTF::minCapacity>::tryExpandCapacity):
(WTF::minCapacity>::resize):
(WTF::minCapacity>::resizeToFit):
(WTF::minCapacity>::shrink):
(WTF::minCapacity>::grow):
(WTF::minCapacity>::asanSetInitialBufferSizeTo):
(WTF::minCapacity>::asanSetBufferSizeToFullCapacity):
(WTF::minCapacity>::asanBufferSizeWillChangeTo):
(WTF::minCapacity>::reserveCapacity):
(WTF::minCapacity>::tryReserveCapacity):
(WTF::minCapacity>::reserveInitialCapacity):
(WTF::minCapacity>::shrinkCapacity):
(WTF::minCapacity>::append):
(WTF::minCapacity>::tryAppend):
(WTF::minCapacity>::constructAndAppend):
(WTF::minCapacity>::tryConstructAndAppend):
(WTF::minCapacity>::appendSlowCase):
(WTF::minCapacity>::constructAndAppendSlowCase):
(WTF::minCapacity>::tryConstructAndAppendSlowCase):
(WTF::minCapacity>::uncheckedAppend):
(WTF::minCapacity>::appendVector):
(WTF::minCapacity>::insert):
(WTF::minCapacity>::insertVector):
(WTF::minCapacity>::remove):
(WTF::minCapacity>::removeFirst):
(WTF::minCapacity>::removeFirstMatching):
(WTF::minCapacity>::removeAll):
(WTF::minCapacity>::removeAllMatching):
(WTF::minCapacity>::reverse):
(WTF::minCapacity>::map const):
(WTF::minCapacity>::releaseBuffer):
(WTF::minCapacity>::checkConsistency):
(WTF::swap):
(WTF::operator==):
(WTF::operator!=):
(WTF::removeRepeatedElements):
(WTF::Malloc>::Vector): Deleted.
(WTF::Malloc>::contains const): Deleted.
(WTF::Malloc>::findMatching const): Deleted.
(WTF::Malloc>::find const): Deleted.
(WTF::Malloc>::reverseFind const): Deleted.
(WTF::Malloc>::appendIfNotContains): Deleted.
(WTF::Malloc>::fill): Deleted.
(WTF::Malloc>::appendRange): Deleted.
(WTF::Malloc>::expandCapacity): Deleted.
(WTF::Malloc>::tryExpandCapacity): Deleted.
(WTF::Malloc>::resize): Deleted.
(WTF::Malloc>::resizeToFit): Deleted.
(WTF::Malloc>::shrink): Deleted.
(WTF::Malloc>::grow): Deleted.
(WTF::Malloc>::asanSetInitialBufferSizeTo): Deleted.
(WTF::Malloc>::asanSetBufferSizeToFullCapacity): Deleted.
(WTF::Malloc>::asanBufferSizeWillChangeTo): Deleted.
(WTF::Malloc>::reserveCapacity): Deleted.
(WTF::Malloc>::tryReserveCapacity): Deleted.
(WTF::Malloc>::reserveInitialCapacity): Deleted.
(WTF::Malloc>::shrinkCapacity): Deleted.
(WTF::Malloc>::append): Deleted.
(WTF::Malloc>::tryAppend): Deleted.
(WTF::Malloc>::constructAndAppend): Deleted.
(WTF::Malloc>::tryConstructAndAppend): Deleted.
(WTF::Malloc>::appendSlowCase): Deleted.
(WTF::Malloc>::constructAndAppendSlowCase): Deleted.
(WTF::Malloc>::tryConstructAndAppendSlowCase): Deleted.
(WTF::Malloc>::uncheckedAppend): Deleted.
(WTF::Malloc>::appendVector): Deleted.
(WTF::Malloc>::insert): Deleted.
(WTF::Malloc>::insertVector): Deleted.
(WTF::Malloc>::remove): Deleted.
(WTF::Malloc>::removeFirst): Deleted.
(WTF::Malloc>::removeFirstMatching): Deleted.
(WTF::Malloc>::removeAll): Deleted.
(WTF::Malloc>::removeAllMatching): Deleted.
(WTF::Malloc>::reverse): Deleted.
(WTF::Malloc>::map const): Deleted.
(WTF::Malloc>::releaseBuffer): Deleted.
(WTF::Malloc>::checkConsistency): Deleted.

  • wtf/text/AtomicStringImpl.h:
  • wtf/text/CString.cpp:

(WTF::CStringBuffer::createUninitialized):

  • wtf/text/CString.h:
  • wtf/text/StringBuffer.h:

(WTF::StringBuffer::StringBuffer):
(WTF::StringBuffer::~StringBuffer):
(WTF::StringBuffer::resize):

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::~StringImpl):
(WTF::StringImpl::destroy):
(WTF::StringImpl::createUninitializedInternalNonEmpty):
(WTF::StringImpl::reallocateInternal):
(WTF::StringImpl::releaseAssertCaged const): Deleted.

  • wtf/text/StringImpl.h:

(WTF::StringImpl::createSubstringSharingImpl):
(WTF::StringImpl::tryCreateUninitialized):
(WTF::StringImpl::adopt):
(WTF::StringImpl::assertCaged const): Deleted.

  • wtf/text/StringMalloc.cpp: Removed.
  • wtf/text/StringMalloc.h: Removed.
  • wtf/text/StringVector.h: Removed.
  • wtf/text/SymbolImpl.h:
  • wtf/text/UniquedStringImpl.h:
  • wtf/text/WTFString.h:

(WTF::String::adopt):
(WTF::String::assertCaged const): Deleted.
(WTF::String::releaseAssertCaged const): Deleted.

4:54 PM Changeset in webkit [231336] by Ross Kirsling
  • 2 edits in trunk/Tools

[WinCairo] Test archive must use Python zipfile, just like build product.
https://bugs.webkit.org/show_bug.cgi?id=185265

Reviewed by Per Arne Vollan.

  • BuildSlaveSupport/test-result-archive:

(archive_test_results):
Copy over Win32-oriented archiving logic from built-product-archive.

4:51 PM Changeset in webkit [231335] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Widgets should hold a WeakPtr to their parents
https://bugs.webkit.org/show_bug.cgi?id=185239
<rdar://problem/39741250>

Reviewed by Zalan Bujtas.

  • platform/ScrollView.h:

(WebCore::ScrollView::weakPtrFactory): Added.

  • platform/Widget.cpp:

(WebCore::Widget::init): Don't perform an unnecessary assignment.
(WebCore::Widget::setParent): Grab a WeakPtr to the parent ScrollView.

  • platform/Widget.h:

(WebCore::Widget::parent const): Change type to a WeakPtr.

4:43 PM Changeset in webkit [231334] by rniwa@webkit.org
  • 2 edits
    1 copy in trunk/LayoutTests

Revert the unitended changes in r231329.

  • http/tests/media/video-play-stall.html: Replaced with LayoutTests/http/tests/media/video-play-stall.html.
  • platform/mac/TestExpectations:
4:34 PM Changeset in webkit [231333] by Yusuke Suzuki
  • 15 edits in trunk/Source/WebCore

Use pointer instead of std::optional<T&>
https://bugs.webkit.org/show_bug.cgi?id=185186

Reviewed by Alex Christensen.

std::optional<T&> is not accepted in C++17 spec.
In this patch, we replace it with T*, which is well-aligned to
WebKit's convention.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::iceServersFromConfiguration):
(WebCore::RTCPeerConnection::initializeConfiguration):
(WebCore::RTCPeerConnection::setConfiguration):

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseSystemColor):

  • css/parser/CSSParser.h:
  • dom/DatasetDOMStringMap.cpp:

(WebCore::DatasetDOMStringMap::item const):
(WebCore::DatasetDOMStringMap::namedItem const):
(WebCore:: const): Deleted.

  • dom/DatasetDOMStringMap.h:
  • dom/Element.cpp:

(WebCore::Element::insertAdjacentHTML):

  • dom/Element.h:
  • html/canvas/CanvasStyle.cpp:

(WebCore::parseColor):

  • inspector/DOMEditor.cpp:
  • platform/network/curl/CurlFormDataStream.cpp:

(WebCore::CurlFormDataStream::getPostData):
(): Deleted.

  • platform/network/curl/CurlFormDataStream.h:
  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::setupPOST):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::keysForSessionWithID const):
(WebCore::MockCDMInstance::updateLicense):
(WebCore:: const): Deleted.

  • testing/MockCDMFactory.h:
4:21 PM Changeset in webkit [231332] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix 32-bit profile offset for change in bytecode
length of the get_by_id and get_array_length opcodes.

  • llint/LowLevelInterpreter32_64.asm:
4:18 PM Changeset in webkit [231331] by Chris Dumez
  • 24 edits
    2 adds in trunk

Stop using an iframe's id as fallback if its name attribute is not set
https://bugs.webkit.org/show_bug.cgi?id=11388

Reviewed by Geoff Garen.

Source/WebCore:

WebKit had logic to use an iframe's id as fallback name when its name
content attribute is not set. This behavior was not standard and did not
match other browsers:

Gecko / Trident never behaved this way. Blink was aligned with us until
they started to match the specification in:

This WebKit quirk was causing some Web-compatibility issues because it
would affect the behavior of Window's name property getter when trying
to look up an iframe by id. Because of Window's named property getter
behavior [1], we would return the frame's contentWindow instead of the
iframe element itself.

[1] https://html.spec.whatwg.org/multipage/window-object.html#named-access-on-the-window-object

Test: fast/dom/Window/named-getter-frame-id.html

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::openURL):
(WebCore::HTMLFrameElementBase::parseAttribute):
(WebCore::HTMLFrameElementBase::didFinishInsertingNode):

  • html/HTMLFrameElementBase.h:

LayoutTests:

  • fast/dom/Window/named-getter-frame-id-expected.txt: Added.
  • fast/dom/Window/named-getter-frame-id.html: Added.

Add layout test coverage.

  • fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt:
  • fast/dom/Geolocation/srcdoc-watchPosition-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html:
  • fast/dom/Window/window-special-properties-expected.txt:
  • fast/frames/iframe-no-name-expected.txt:
  • fast/frames/iframe-no-name.html:
  • fast/layers/prevent-hit-test-during-layout.html:
  • fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
  • http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html:
  • http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt:
  • http/tests/security/cross-origin-reified-window-property-access.html:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt:
  • http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html:
  • http/wpt/beacon/keepalive-after-navigation-expected.txt:
  • http/wpt/cache-storage/cache-remove-twice.html:

Update some layout tests that relied on our old (non-standard) behavior.

3:10 PM Changeset in webkit [231330] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Internal text and audio tracks not in fullscreen menu
https://bugs.webkit.org/show_bug.cgi?id=185268
<rdar://problem/38673440>

Reviewed by Jer Noble.

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::setMediaElement): 'addtrack' and 'removetrack'
events are fired at the track lists, not the media element.

2:34 PM Changeset in webkit [231329] by rniwa@webkit.org
  • 12 edits
    2 adds in trunk

Using image map inside a shadow tree results hits a release assert in DocumentOrderedMap::add
https://bugs.webkit.org/show_bug.cgi?id=185238

Reviewed by Antti Koivisto.

Source/WebCore:

The bug was caused by DocumentOrderedMap for the image elements with usemap being stored in Document
even if those image elements were in a shadow tree. Fixed the bug by moving the map to TreeScope.

Test: fast/images/imagemap-in-nested-shadow-tree.html

fast/images/imagemap-in-shadow-tree.html

  • dom/Document.cpp:

(WebCore::Document::addImageElementByUsemap): Moved to TreeScope.
(WebCore::Document::removeImageElementByUsemap): Ditto.
(WebCore::Document::imageElementByUsemap const): Ditto.

  • dom/Document.h:
  • dom/TreeScope.cpp:

(WebCore::TreeScope::destroyTreeScopeData): Clear m_imagesByUsemap as well as m_elementsByName.
(WebCore::TreeScope::getImageMap const): Removed the code to parse usemap. RenderImage::imageMap()
which used to call this function with the raw value of the usemap content attribute now calls it
via HTMLImageElement::associatedMapElement(), which uses the parsed usemap.
(WebCore::TreeScope::addImageElementByUsemap): Moved from Document.
(WebCore::TreeScope::removeImageElementByUsemap): Ditto.
(WebCore::TreeScope::imageElementByUsemap const): Ditto.

  • dom/TreeScope.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::insertedIntoAncestor): This image element can be associated with a map element
if it's connected to a document.
(WebCore::HTMLImageElement::removedFromAncestor):
(WebCore::HTMLImageElement::associatedMapElement const):

  • html/HTMLImageElement.h:
  • html/HTMLMapElement.cpp:

(WebCore::HTMLMapElement::imageElement):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageMap const):

LayoutTests:

  • fast/images/imagemap-in-nested-shadow-tree-expected.txt: Added.
  • fast/images/imagemap-in-nested-shadow-tree.html: Added.
  • fast/images/imagemap-in-shadow-tree-expected.txt: Added.
  • fast/images/imagemap-in-shadow-tree.html: Added.
2:27 PM Changeset in webkit [231328] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

cleanup modules usage for the Test262-Runner
https://bugs.webkit.org/show_bug.cgi?id=185263

Patch by Leo Balter <Leo Balter> on 2018-05-03
Reviewed by Michael Saboff.

  • Scripts/test262-runner:
  • Scripts/test262/Runner.pm:

(processCLI):

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

[WebGL] Add runtime flag for enabling ASTC support in WebGL
https://bugs.webkit.org/show_bug.cgi?id=184840

Patch by Justin Fan <Justin Fan> on 2018-05-03
Reviewed by Myles C. Maxfield.

Added runtime flag for ASTC support in WebGL, to turn on/off when extension is implemented.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebGLCompressedTextureASTCSupportEnabled):
(WebCore::RuntimeEnabledFeatures::webGLCompressedTextureASTCSupportEnabled const):

Source/WebKit:

  • Shared/WebPreferences.yaml:
1:55 PM Changeset in webkit [231326] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after <https://trac.webkit.org/changeset/231282>.

  • NetworkProcess/NetworkActivityTracker.h:
1:52 PM Changeset in webkit [231325] by commit-queue@webkit.org
  • 6 edits in trunk

Remove [NoInterfaceObject] from DOMRectList
https://bugs.webkit.org/show_bug.cgi?id=185255

Patch by Chris Nardi <cnardi@chromium.org> on 2018-05-03
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update Geometry IDL test from upstream and update expectations.

  • web-platform-tests/css/geometry/interfaces-expected.txt:
  • web-platform-tests/css/geometry/interfaces.worker-expected.txt:
  • web-platform-tests/interfaces/geometry.idl:

Source/WebCore:

In https://github.com/w3c/fxtf-drafts/issues/233, [NoInterfaceObject] was removed
from DOMRectList. Remove it from our implementation to match the spec, as well as
Chrome and Firefox.

Updated web platform tests IDL test for the Geometry spec.

  • dom/DOMRectList.idl:
1:39 PM Changeset in webkit [231324] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

[iOS] Provide audio route information when invoking AirPlay picker
https://bugs.webkit.org/show_bug.cgi?id=185199
<rdar://problem/39853103>

Another attempt at an unreviewed build fix.

  • pal/spi/mac/AVFoundationSPI.h:
1:27 PM Changeset in webkit [231323] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

test262/Runner.pm: minor fixes
https://bugs.webkit.org/show_bug.cgi?id=185250

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-03
Reviewed by Michael Saboff.

Add comments, change output and fix bug: unintended interpolation
of filename when running jsc.

  • Scripts/test262/Runner.pm:

(processCLI):
(main):
(runTest):

1:16 PM Changeset in webkit [231322] by Wenson Hsieh
  • 5 edits in trunk/Source

Ads in NYTimes app are shifted downwards by the scroll view's top content inset
https://bugs.webkit.org/show_bug.cgi?id=185251
<rdar://problem/39062357>

Reviewed by Tim Horton.

Source/WebKit:

The NYTimes app embeds advertisements in each article's WKWebView by adding views in the WKScrollView's view
hierarchy. These views are positioned using the bounding client rects of elements in the DOM (via Element
::getBoundingClientRect). Prior to r229641, WebKit would report bounding client rects inset by the content
insets of WKScrollView, which means that if a top content inset X is specified on the scroll view, an element
that is flush against the top of the viewport will have a bounding client rect top of -X (when it should really
be 0).

To account for this, NYTimes adds the scroll view content insets back to the bounding client rect when
determining the position of each advertisement which, after r229641, causes these views to be shifted downwards
by an amount equal to the scroll view content inset top.

This new behavior does not affect Safari, since Safari uses SPI to explicitly set obscured insets. As such, we
address this by gating the scroll view content inset fix with a linked-on-or-after check.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _computedObscuredInset]):

  • UIProcess/Cocoa/VersionChecks.h:

Source/WTF:

Add a new DYLD_IOS_VERSION macro definition for previous or non-internal SDKs.

  • wtf/spi/darwin/dyldSPI.h:
12:59 PM Changeset in webkit [231321] by Chris Dumez
  • 10 edits
    1 add in trunk

Load hangs if the WebProcess fails to launch
https://bugs.webkit.org/show_bug.cgi?id=185225
<rdar://problem/38249058>

Reviewed by Geoff Garen.

Source/WebKit:

When a process fails to launch, ChildProcessProxy::didFinishLaunching() gets called with an
invalid connection identifier. While NetworkProcessProxy::didFinishLaunching() properly deals with
this situation, WebProcessProxy::didFinishLaunching() does not. As a result, we do not attempt to
relaunch the process, we do not notify the client and WebPageProxy::m_isValid stays true.

This patch thus updates WebProcessProxy::didFinishLaunching() to check if the connection identifier
is valid and treats it as a crash. As a result, the WebPageProxies properly reset their state and
the client gets notified of the crash so that it can attempt to reload.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _makeNextWebProcessLaunchFailForTesting]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):
Add SPI to make the next WebProcess launch fail, for the purpose of API testing.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions):
(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didFinishLaunching):

  • UIProcess/WebProcessProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm: Added.

(-[CrashOnStartNavigationDelegate _webView:webContentProcessDidTerminateWithReason:]):
(-[CrashOnStartNavigationDelegate webView:didFinishNavigation:]):
(-[CrashRecoveryScriptMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

12:42 PM Changeset in webkit [231320] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/controls/pip-placeholder-without-video-controls.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170620

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:17 PM Changeset in webkit [231319] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION(iOS 11.3): Crashes in TimerBase::~TimerBase() in Tencent x5gamehelper
https://bugs.webkit.org/show_bug.cgi?id=185073
<rdar://problem/39821223>

Reviewed by Alexey Proskuryakov.

The following changes were made:

  • Make sure SocketStream callbacks are always scheduled on the right runloop: WebThreadRunLoop() on WebKitLegacy iOS, loaderRunLoop() on Windows and main runloop otherwise.
  • When the SocketStream callbacks are called, unconditionally call callOnMainThreadAndWait() before calling methods on the SocketStream client. Previously, this code path was specific to Windows but there is no reason to have platform-specific code here. callOnMainThreadAndWait() calls the function right away if we're already on the main thread, which will be the case on other platform than Windows.
  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::callbacksRunLoop):
(WebCore::callbacksRunLoopMode):
(WebCore::SocketStreamHandleImpl::scheduleStreams):
(WebCore::SocketStreamHandleImpl::pacExecutionCallback):
(WebCore::SocketStreamHandleImpl::executePACFileURL):
(WebCore::SocketStreamHandleImpl::removePACRunLoopSource):
(WebCore::SocketStreamHandleImpl::readStreamCallback):
(WebCore::SocketStreamHandleImpl::writeStreamCallback):
(WebCore::SocketStreamHandleImpl::platformClose):

11:39 AM Changeset in webkit [231318] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Enable multiple layout roots for incremental layout.
https://bugs.webkit.org/show_bug.cgi?id=185185

Reviewed by Antti Koivisto.

With certain type of style changes, we can stop the box invalidation at the formatting context boundary.
When multiple boxes need updating in different formatting contexts, instead of marking the parent containing block chain all
the way up to a common ancestor, we could just work with a list of layout entry points per layout frame.

  • layout/FormattingState.h:
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::updateLayout):
(WebCore::Layout::LayoutContext::addLayoutEntryPoint):

  • layout/LayoutContext.h:
11:39 AM Changeset in webkit [231317] by msaboff@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

WebContent crash loading page on seas.upenn.edu @ JavaScriptCore: vmEntryToJavaScript
https://bugs.webkit.org/show_bug.cgi?id=185231

Reviewed by Saam Barati.

We weren't clearing the scratch register cache when switching back and forth between
allowing scratch register usage. We disallow scratch register usage when we are in
code that will freely allocate and use any register. Such usage can change the
contents of scratch registers. For ARM64, where we cache the contents of scratch
registers to reuse some or all of the contained values, we need to invalidate these
caches. We do this when re-enabling scratch register usage, that is when we transition
from disallow to allow scratch register usage.

Added a new Air regression test.

  • assembler/AllowMacroScratchRegisterUsage.h:

(JSC::AllowMacroScratchRegisterUsage::AllowMacroScratchRegisterUsage):

  • assembler/AllowMacroScratchRegisterUsageIf.h:

(JSC::AllowMacroScratchRegisterUsageIf::AllowMacroScratchRegisterUsageIf):

  • assembler/DisallowMacroScratchRegisterUsage.h:

(JSC::DisallowMacroScratchRegisterUsage::~DisallowMacroScratchRegisterUsage):

  • b3/air/testair.cpp:
11:18 AM Changeset in webkit [231316] by keith_miller@apple.com
  • 18 edits
    2 deletes in trunk/Source/JavaScriptCore

Remove the prototype caching for get_by_id in the LLInt
https://bugs.webkit.org/show_bug.cgi?id=185226

Reviewed by Michael Saboff.

There is no evidence that this is actually a speedup and we keep
getting bugs with it. At this point it seems like we should just
remove this code.

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

(JSC::BytecodeDumper<Block>::printGetByIdOp):
(JSC::BytecodeDumper<Block>::printGetByIdCacheStatus):
(JSC::BytecodeDumper<Block>::dumpBytecode):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finalizeLLIntInlineCaches):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::llintGetByIdWatchpointMap): Deleted.

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):

  • bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp: Removed.
  • bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h: Removed.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitGetById):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setupGetByIdPrototypeCache): Deleted.

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/Options.h:
11:13 AM Changeset in webkit [231315] by Chris Dumez
  • 2 edits in trunk/LayoutTests

REGRESSION: Layout Test http/tests/security/location-cross-origin.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=185259

Unreviewed, stop relying on a setImeout(100) and epect the frame navigation to have completed. Instead,
use a setInterval() to poll until the cross-origin frame has navigated.

  • http/tests/security/location-cross-origin.html:
10:51 AM Changeset in webkit [231314] by jmarcell@apple.com
  • 2 edits in tags/Safari-606.1.16/Source/WTF

Revert r230930. rdar://problem/39945965

10:19 AM Changeset in webkit [231313] by don.olmstead@sony.com
  • 3 edits in trunk/Tools

[WinCairo] Add JSC test bots
https://bugs.webkit.org/show_bug.cgi?id=185234

Reviewed by Per Arne Vollan.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunJavaScriptCoreTests.start):

10:15 AM Changeset in webkit [231312] by Alan Bujtas
  • 11 edits
    4 copies in trunk/Source/WebCore

[LFC] Box invalidation logic should go to dedicated classes.
https://bugs.webkit.org/show_bug.cgi?id=185249

Reviewed by Antti Koivisto.

Each formatting context can initiate a different type of invalidation when
style attribute changes in a box.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::FormattingState):

  • layout/FormattingState.h:

(WebCore::Layout::FormattingState::isBlockFormattingState const):
(WebCore::Layout::FormattingState::isInlineFormattingState const):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::styleChanged):
(WebCore::Layout::LayoutContext::markNeedsUpdate):

  • layout/LayoutContext.h:
  • layout/blockformatting/BlockFormattingState.cpp:

(WebCore::Layout::BlockFormattingState::BlockFormattingState):

  • layout/blockformatting/BlockFormattingState.h:
  • layout/blockformatting/BlockInvalidation.cpp: Copied from Source/WebCore/layout/blockformatting/BlockFormattingState.cpp.

(WebCore::Layout::BlockInvalidation::invalidate):

  • layout/blockformatting/BlockInvalidation.h: Copied from Source/WebCore/layout/inlineformatting/InlineFormattingState.h.
  • layout/inlineformatting/InlineFormattingState.cpp:

(WebCore::Layout::InlineFormattingState::InlineFormattingState):

  • layout/inlineformatting/InlineFormattingState.h:
  • layout/inlineformatting/InlineInvalidation.cpp: Copied from Source/WebCore/layout/inlineformatting/InlineFormattingState.cpp.

(WebCore::Layout::InlineInvalidation::invalidate):

  • layout/inlineformatting/InlineInvalidation.h: Copied from Source/WebCore/layout/blockformatting/BlockFormattingState.h.
10:08 AM Changeset in webkit [231311] by Michael Catanzaro
  • 4 edits in trunk

WebKit should send fake macOS user agent to docs.google.com
https://bugs.webkit.org/show_bug.cgi?id=185165

Reviewed by Carlos Garcia Campos.

Source/WebCore:

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

9:58 AM Changeset in webkit [231310] by Ryan Haddad
  • 8 edits
    1 delete in trunk

Unreviewed, rolling out r231197.

The test added with this change crashes on the 32-bit JSC bot.

Reverted changeset:

"Correctly detect string overflow when using the 'Function'
constructor"
https://bugs.webkit.org/show_bug.cgi?id=184883
https://trac.webkit.org/changeset/231197

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

test262/Runner.pm: performance improvements
https://bugs.webkit.org/show_bug.cgi?id=185202

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-03
Reviewed by Michael Saboff.

Batch the tests by the number of processes, and give each process
a file to save results to to avoid threading. Do not parallelize
when running small sets of tests.

  • Scripts/test262/Runner.pm:

(processCLI):
(main):
(processFile):
(processResult):

9:37 AM Changeset in webkit [231308] by commit-queue@webkit.org
  • 21 edits in trunk/Source

Unreviewed, rolling out r231223 and r231288.
https://bugs.webkit.org/show_bug.cgi?id=185256

The change in r231223 breaks internal builds, and r231288 is a
dependent change. (Requested by ryanhaddad on #webkit).

Reverted changesets:

"Use default std::optional if it is provided"
https://bugs.webkit.org/show_bug.cgi?id=185159
https://trac.webkit.org/changeset/231223

"Use pointer instead of
std::optional<std::reference_wrapper<>>"
https://bugs.webkit.org/show_bug.cgi?id=185186
https://trac.webkit.org/changeset/231288

9:31 AM Changeset in webkit [231307] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

An error message is written to stderr when the WebContent process is blocking WindowServer access.
https://bugs.webkit.org/show_bug.cgi?id=184701

Reviewed by Brent Fulgham.

Calling 'setApplicationIsDaemon(true)' instead of 'CGSSetDenyWindowServerConnections(true)' to disable
access to the WindowServer in the WebContent process, will remove this error message. After this change,
the url of the WebContent process is still showing up in Activity Monitor, which previously was a
problem when calling 'setApplicationIsDaemon(true)'.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):

9:01 AM Changeset in webkit [231306] by Ryan Haddad
  • 14 edits in trunk

Unreviewed, rolling out r231253.

The API test added with this change is crashing on the bots.

Reverted changeset:

"Web Inspector: opt out of process swap on navigation if a Web
Inspector frontend is connected"
https://bugs.webkit.org/show_bug.cgi?id=184861
https://trac.webkit.org/changeset/231253

8:48 AM WebKitGTK/Gardening/Calendar edited by magomez@igalia.com
(diff)
8:43 AM Changeset in webkit [231305] by magomez@igalia.com
  • 3 edits
    1 add
    1 delete in trunk/LayoutTests

Unreviewed GTK+ gardening after r231300.

  • platform/gtk/TestExpectations:
  • platform/gtk/compositing/layer-creation/overlap-animation-expected.txt: Removed.
  • platform/gtk/editing/selection/select-all-004-expected.png:
  • platform/gtk/editing/selection/select-all-004-expected.txt: Added.
8:08 AM Changeset in webkit [231304] by youenn@apple.com
  • 3 edits
    2 adds in trunk

A MediaStream being played should allow removing some of its tracks
https://bugs.webkit.org/show_bug.cgi?id=185233

Reviewed by Eric Carlson.

Source/WebCore:

Update the tracks out of the for loop.
Test: fast/mediastream/change-tracks-media-stream-being-played.html

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::updateTracksOfType):

LayoutTests:

  • fast/mediastream/change-tracks-media-stream-being-played-expected.txt: Added.
  • fast/mediastream/change-tracks-media-stream-being-played.html: Added.
7:22 AM Changeset in webkit [231303] by jmarcell@apple.com
  • 2 edits in tags/Safari-606.1.16/Source/WebKit

Cherry-pick r231295. rdar://problem/39928458

AX: Missing kAXSWebAccessibilityEventsEnabledNotification causes a crash
https://bugs.webkit.org/show_bug.cgi?id=185237

Reviewed by Dan Bernstein.

When libAccessibility.dylib is missing, the compiler would optimize out the global
notification and lead to a crash. Fixed it by using the isNullFunction check instead,
since we are sure the global notification would be there when the corresponding function
is available.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _initializeWithConfiguration:]):

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

6:46 AM Changeset in webkit [231302] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Re-eneable Network Extension support in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=185236
<rdar://problem/39883004>

Reviewed by Eric Carlson.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
4:58 AM Changeset in webkit [231301] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Disable usage of fused multiply-add instructions for JSC with compiler flag
https://bugs.webkit.org/show_bug.cgi?id=184909

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-03
Reviewed by Yusuke Suzuki.

Adds -ffp-contract as compiler flag for building JSC. This ensures that functions
like parseInt() do not return slightly different results depending on whether the
compiler was able to use fused multiply-add instructions or not.

  • CMakeLists.txt:
3:17 AM Changeset in webkit [231300] by magomez@igalia.com
  • 3 edits in trunk/Source/WebCore

WebCore::TextureMapperLayer object used after freed
https://bugs.webkit.org/show_bug.cgi?id=184729

Reviewed by Michael Catanzaro.

Replace the raw pointers with WeakPtr for effectTarget, maskLayer and replicaLayer
inside TextureMapperLayer.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::~TextureMapperLayer):
(WebCore::TextureMapperLayer::setMaskLayer):
(WebCore::TextureMapperLayer::setReplicaLayer):

  • platform/graphics/texmap/TextureMapperLayer.h:
1:50 AM Changeset in webkit [231299] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

REGRESSION (r231014): Entitlements are not applied to XPC services on macOS
https://bugs.webkit.org/show_bug.cgi?id=185241

Reviewed by Dan Bernstein.

  • Configurations/BaseXPCService.xcconfig:
  • Configurations/WebContentService.Development.xcconfig:
  • Configurations/WebContentService.xcconfig:
1:45 AM Changeset in webkit [231298] by Carlos Garcia Campos
  • 4 edits in trunk

REGRESSION(r222772): [GTK][WPE] WebProcess from WebKitGtk+ 2.19.9x SIGSEVs in WebKit::WebProcess::ensureNetworkProcessConnection() at Source/WebKit/WebProcess/WebProcess.cpp:1127
https://bugs.webkit.org/show_bug.cgi?id=183348

Reviewed by Michael Catanzaro.

Source/WebKit:

When connection doesn't exit in case of sync message failure, always exit in case of failing to send
GetNetworkProcessConnection or GetStorageProcessConnection messages. This can happen when the WebView is created
and destroyed quickly.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::ensureWebToStorageProcessConnection):

Tools:

Add a test case to reproduce the crash.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewCloseQuickly):
(beforeAll):

12:23 AM Changeset in webkit [231297] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Curl] Add OpenSSL/LibreSSL multi-threading support
https://bugs.webkit.org/show_bug.cgi?id=185138

The older OpenSSL manual says the locking_function and threadid_function should
be set when use it in multi-threading environment. This applies to LibreSSL also.
https://www.openssl.org/docs/man1.0.2/crypto/threads.html

For unix and other similar os, the default threadId_function implementation is
good enough. We'll set custom callback only for Windows OS.

Note it's not required for OpenSSL 1.1.0 and after.
https://www.openssl.org/blog/blog/2017/02/21/threads/

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-05-03
Reviewed by Per Arne Vollan.

  • platform/network/curl/CurlSSLHandle.cpp:

(WebCore::CurlSSLHandle::CurlSSLHandle):
(WebCore::CurlSSLHandle::ThreadSupport::ThreadSupport):
(WebCore::CurlSSLHandle::ThreadSupport::lockingCallback):
(WebCore::CurlSSLHandle::ThreadSupport::threadIdCallback):

  • platform/network/curl/CurlSSLHandle.h:

(WebCore::CurlSSLHandle::ThreadSupport::setup):
(WebCore::CurlSSLHandle::ThreadSupport::singleton):
(WebCore::CurlSSLHandle::ThreadSupport::lock):
(WebCore::CurlSSLHandle::ThreadSupport::unlock):

12:06 AM Changeset in webkit [231296] by Dewei Zhu
  • 5 edits in trunk/Websites/perf.webkit.org

Create analysis task should sync analysis task status after creation.
https://bugs.webkit.org/show_bug.cgi?id=185222

Reviewed by Ryosuke Niwa.

  • public/v3/models/analysis-task.js:

(AnalysisTask.async.create): Fetch newly-created analysis task right about its creation.
(AnalysisTask):

  • tools/js/measurement-set-analyzer.js:

(MeasurementSetAnalyzer.prototype.async._analyzeMeasurementSet): Adjust as 'AnalysisTask.create' now
returns an anlysis task instance.
(MeasurementSetAnalyzer):

  • unit-tests/analysis-task-tests.js: Added a unit test for this change.

(async):

  • unit-tests/measurement-set-analyzer-tests.js: Update unit tests accordingly.

Fix a typo in one previous unit test.
(async):

Note: See TracTimeline for information about the timeline view.