Timeline



Aug 14, 2018:

11:15 PM Changeset in webkit [234883] by zandobersek@gmail.com
  • 2 edits
    2 adds in trunk/Source/WebCore

[Nicosia] Add Nicosia::BackingStoreTextureMapperImpl
https://bugs.webkit.org/show_bug.cgi?id=188548

Reviewed by Carlos Garcia Campos.

Add the Nicosia::BackingStoreTextureMapperImpl class, the
TextureMapper-specific implementation that will extend the BackingStore
class.

Purpose of this class is to manage content of painted layers. In the
LayerState object that will be exposed to the CoordinatedGraphicsLayer
owner we keep the current and previous TiledBackingStore objects that
will be used for painting. A TileUpdate object is used to store all tile
creation, removal and update changes that happen during the painting
that's performed during the CoordinatedGraphicsLayer flush.

At the point of synchronization under the Nicosia::Scene object, these
updates will be moved over to the pending TileUpdate object that will
then be accessed during the composition step. For that purpose we keep
in the CompositionState member object a reference to the
CoordinatedBackingStore object that will get updated with the tile
creation, removal and update changes (if there are any). The composition
step will use the takeUpdate() method to retrieve all these changes and
apply them outside of the point of synchronization (avoiding this sync
step to take too long).

This will be integrated into the CoordinatedGraphicsLayer class at a
later point, when the switch to the new infrastructure can be made in
one go.

  • platform/TextureMapper.cmake:
  • platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.cpp: Added.

(Nicosia::BackingStoreTextureMapperImpl::createFactory):
(Nicosia::BackingStoreTextureMapperImpl::tiledBackingStoreHasPendingTileCreation):
(Nicosia::BackingStoreTextureMapperImpl::createTile):
(Nicosia::BackingStoreTextureMapperImpl::updateTile):
(Nicosia::BackingStoreTextureMapperImpl::removeTile):
(Nicosia::BackingStoreTextureMapperImpl::flushUpdate):
(Nicosia::BackingStoreTextureMapperImpl::takeUpdate):

  • platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.h: Added.
11:10 PM Changeset in webkit [234882] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Table should not center rows when scrolling them into view
https://bugs.webkit.org/show_bug.cgi?id=188593
<rdar://problem/43311660>

Reviewed by Devin Rousso.

  • UserInterface/Views/Table.js:

(WI.Table.prototype._handleKeyDown):

9:47 PM Changeset in webkit [234881] by Devin Rousso
  • 3 edits in trunk/Tools

Unreviewed, change my emails.

  • Scripts/webkitpy/common/config/contributors.json:
  • Scripts/webkitpy/common/config/watchlist:
9:46 PM Changeset in webkit [234880] by Fujii Hironori
  • 13 edits in trunk/Source

Unreviewed, rolling out r234874 and r234876.

WinCairo port can't compile

Reverted changesets:

"[JSC] Add GPRReg::InvalidGPRReg and FPRReg::InvalidFPRReg"
https://bugs.webkit.org/show_bug.cgi?id=188589
https://trac.webkit.org/changeset/234874

"Unreviewed, attempt to fix CLoop build"
https://bugs.webkit.org/show_bug.cgi?id=188589
https://trac.webkit.org/changeset/234876

9:08 PM Changeset in webkit [234879] by sbarati@apple.com
  • 7 edits in trunk

HashMap<Ref<P>, V> asserts when V is not zero for its empty value
https://bugs.webkit.org/show_bug.cgi?id=188582

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • runtime/SparseArrayValueMap.h:

Source/WTF:

The issue happened when we'd fill the hash table buffer with empty values. We
would iterate the buffer and invoke placement new with the incoming value being the
empty value. For Ref, this means that, we'd call its move constructor, which calls
leakRef(), which asserts that the Ref's pointer is not null. We'd like to keep
this assert since it catches bugs where you leakRef() more than once or WTFMove
an already moved Ref.

This patch fixes this issue by adding a new trait for constructing an empty
value. We use that in HashTable instead of directly calling placement new.

  • wtf/HashTable.h:

(WTF::HashTableBucketInitializer<false>::initialize):

  • wtf/HashTraits.h:

(WTF::GenericHashTraits::constructEmptyValue):
(WTF::HashTraits<Ref<P>>::constructEmptyValue):
(WTF::KeyValuePairHashTraits::constructEmptyValue):

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

(TestWebKitAPI::TEST):

7:59 PM Changeset in webkit [234878] by Alan Bujtas
  • 10 edits
    2 adds in trunk

[LFC][Floating] Add support for negative clearance.
https://bugs.webkit.org/show_bug.cgi?id=188555

Reviewed by Simon Fraser.

Source/WebCore:

  1. Compute clearance to avoid float(s) (border box needs to avoid floats)
  2. Reset vertical margins to non-collapsed values.
  3. Adjust clearance with the new margins.
  4. Take the adjusted clearance and move the box vertically if needed.

Test: fast/block/block-only/margin-collapse-with-clearance.html

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):

  • layout/FloatingState.cpp:

(WebCore::Layout::FloatingState::FloatItem::FloatItem):

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::mapBoxToAncestor):
(WebCore::Layout::FormattingContext::mapTopLeftToAncestor):
(WebCore::Layout::FormattingContext::mapCoordinateToAncestor):
(WebCore::Layout::FormattingContext::mapToAncestor): Deleted.

  • layout/FormattingContext.h:
  • layout/LayoutUnits.h:

(WebCore::Layout::Position::Position):
(WebCore::Layout::Position::moveBy):

  • layout/displaytree/DisplayBox.h:

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

  • fast/block/block-only/margin-collapse-with-clearance-expected.txt: Added.
  • fast/block/block-only/margin-collapse-with-clearance.html: Added.
7:42 PM Changeset in webkit [234877] by Fujii Hironori
  • 7 edits in trunk/Source

Unreviewed, rolling out r234859.

Windows ports can't compile

Reverted changeset:

"Use a Variant instead of a union in CSSSelector"
https://bugs.webkit.org/show_bug.cgi?id=188559
https://trac.webkit.org/changeset/234859

6:18 PM Changeset in webkit [234876] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, attempt to fix CLoop build
https://bugs.webkit.org/show_bug.cgi?id=188589

  • assembler/MacroAssembler.h:
5:55 PM Changeset in webkit [234875] by sihui_liu@apple.com
  • 4 edits
    1 add in trunk

Crash in WebKit::filterPreloadHSTSEntry via NetworkProcess::getHostNamesWithHSTSCache
https://bugs.webkit.org/show_bug.cgi?id=188576
<rdar://problem/43148977>

Reviewed by Alex Christensen.

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm: Added.

(TEST):

5:50 PM Changeset in webkit [234874] by yusukesuzuki@slowstart.org
  • 12 edits in trunk/Source

[JSC] Add GPRReg::InvalidGPRReg and FPRReg::InvalidFPRReg
https://bugs.webkit.org/show_bug.cgi?id=188589

Reviewed by Mark Lam.

Source/JavaScriptCore:

Since GPRReg(RegisterID) and FPRReg(FPRegisterID) do not include -1 in their enum values,
UBSan dumps bunch of warnings "runtime error: load of value 4294967295, which is not a valid value for type 'RegisterID'".

  1. We add InvalidGPRReg and InvalidFPRReg to enum values of GPRReg and FPRReg to suppress the above warnings.
  2. We make GPRReg and FPRReg int8_t enums.
  3. We replace #define InvalidGPRReg ((JSC::GPRReg)-1) to static constexpr GPRReg InvalidGPRReg { GPRReg::InvalidGPRReg };.
  • assembler/ARM64Assembler.h:
  • assembler/ARMAssembler.h:
  • assembler/ARMv7Assembler.h:
  • assembler/MIPSAssembler.h:
  • assembler/X86Assembler.h:
  • jit/FPRInfo.h:
  • jit/GPRInfo.h:

(JSC::JSValueRegs::JSValueRegs):
(JSC::JSValueRegs::tagGPR const):
(JSC::JSValueRegs::payloadGPR const):
(JSC::JSValueSource::JSValueSource):
(JSC::JSValueSource::unboxedCell):
(JSC::JSValueSource::operator bool const):
(JSC::JSValueSource::base const):
(JSC::JSValueSource::tagGPR const):
(JSC::JSValueSource::payloadGPR const):
(JSC::JSValueSource::hasKnownTag const):

Source/WebCore:

No behavior change.

  • cssjit/FunctionCall.h:

(WebCore::FunctionCall::FunctionCall):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):

5:30 PM Changeset in webkit [234873] by achristensen@apple.com
  • 15 edits in trunk

isValidCSSSelector is unsafe to be called from a non-main thread
https://bugs.webkit.org/show_bug.cgi?id=188581
<rdar://problem/40517358>

Reviewed by Sam Weinig.

Source/WebCore:

Parsing and determining whether the css selectors are valid is fast enough to do before
hopping to the background thread for the slow NFA/DFA operations and writing to disk.
Doing it on the main thread avoids the thread safety issues in the CSSParser's use of strings.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionCompiler.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::isValidCSSSelector):
(WebCore::ContentExtensions::loadEncodedRules):
(WebCore::ContentExtensions::parseRuleList):

  • contentextensions/ContentExtensionParser.h:
  • contentextensions/ContentExtensionRule.cpp:

(WebCore::ContentExtensions::Trigger::isolatedCopy const):
(WebCore::ContentExtensions::Action::isolatedCopy const):

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Trigger::isEmpty const):
(WebCore::ContentExtensions::Trigger::operator== const):
(WebCore::ContentExtensions::Action::Action):
(WebCore::ContentExtensions::ContentExtensionRule::isolatedCopy const):
(WebCore::ContentExtensions::ContentExtensionRule::operator== const):
(WebCore::ContentExtensions::vectorIsolatedCopy):

Source/WebKit:

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::compiledToFile):
(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):
(API::ContentRuleListStore::compileContentRuleList):
(API::ContentRuleListStore::removeContentRuleList):
(API::ContentRuleListStore::getContentRuleListSource):

  • UIProcess/API/APIContentRuleListStore.h:
  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

Source/WTF:

  • wtf/Vector.h:

(WTF::minCapacity>::isolatedCopy):

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::InMemoryCompiledContentExtension::create):
(TestWebKitAPI::checkCompilerError):

5:13 PM Changeset in webkit [234872] by Ryan Haddad
  • 2 edits in branches/safari-606-branch/LayoutTests

Cherry-pick r234869. rdar://problem/42387347

Unreviewed test gardening for mac-wk1.

  • platform/mac-wk1/TestExpectations:
5:11 PM Changeset in webkit [234871] by Ryan Haddad
  • 2 edits in branches/safari-606.1.36.1-branch/LayoutTests

Cherry-pick r234869. rdar://problem/42387347

Unreviewed test gardening for mac-wk1.

  • platform/mac-wk1/TestExpectations:
5:10 PM Changeset in webkit [234870] by commit-queue@webkit.org
  • 36 edits
    4 adds in trunk

NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault
https://bugs.webkit.org/show_bug.cgi?id=186870
Source/WebCore:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

Add the ProtectionSpaceAuthenticationSchemeOAuth type.

  • platform/network/ProtectionSpaceBase.cpp:

(WebCore::ProtectionSpaceBase::isPasswordBased const): Return yes because the oauth challenge
expects a token in return.

  • platform/network/ProtectionSpaceBase.h:
  • platform/network/cocoa/ProtectionSpaceCocoa.mm:

(WebCore::scheme):
(WebCore::ProtectionSpace::nsSpace const):

Source/WebCore/PAL:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

  • pal/spi/cf/CFNetworkSPI.h: Declare OAuth string when not building against the

internal SDK.

Source/WebKit:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

Correctly expose the OAuth protection space type in API.

  • UIProcess/API/C/WKAPICast.h:

(WebKit::toAPI):

  • UIProcess/API/C/WKProtectionSpaceTypes.h:

Tools:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

  • WebKitTestRunner/TestController.cpp:

(WTR::toString):
(WTR::TestController::canAuthenticateAgainstProtectionSpace): Expose type of authentication challenge so we can test OAuth.
(WTR::TestController::didReceiveAuthenticationChallenge):

LayoutTests:

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

Ensure the exposed authentication type to clients is OAuth.

  • http/tests/loading/oauth-expected.txt: Added.
  • http/tests/loading/oauth.html: Added.
  • http/tests/loading/resources/oauth-subresource.php: Added.
4:56 PM Changeset in webkit [234869] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for mac-wk1.

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

Mark legacy-animation-engine/animations/combo-transform-translate+scale.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=185308

Unreviewed test gardening.

4:34 PM Changeset in webkit [234867] by Basuke Suzuki
  • 1 edit
    1 add in trunk/LayoutTests

[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188587

Unreviewed test gardening.

Added platform dependent expected result.

  • platform/wincairo/http/tests/xmlhttprequest/methods-expected.txt: Added.
4:26 PM Changeset in webkit [234866] by rniwa@webkit.org
  • 1 edit
    1 copy
    1 add in trunk/Websites/browserbench.org

Add MotionMark 1.1 to browserbench
https://bugs.webkit.org/show_bug.cgi?id=188585
<rdar://problem/43308076>

Patch by Jon Lee <jonlee@apple.com> on 2018-08-14
Rubber-stamped by Ryosuke Niwa.

  • MotionMark1.1/: Added.
4:22 PM Changeset in webkit [234865] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Remove api misuse check so that custom webcontent service identifier can be set at runtime
https://bugs.webkit.org/show_bug.cgi?id=188579

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-14
Reviewed by Ryosuke Niwa.

Changed API misuse check so that a custom bundle identifier can be set at runtime with a debug flag

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setCustomWebContentServiceBundleIdentifier):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions):

4:17 PM Changeset in webkit [234864] by Basuke Suzuki
  • 7 edits in trunk

[Curl] Implement platform default timeout interval.
https://bugs.webkit.org/show_bug.cgi?id=188565

Reviewed by Alex Christensen.

Source/WebCore:

Curl port didn't implement platform default timeout interval. It treated
zero value for timeout interval as no timeout.

Add platform dependent timeout interval into CurlContext and use that if
timeout and default timeout aren't supplied.

Tests: http/tests/xmlhttprequest/on-network-timeout-error-during-preflight.html

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::setTimeout):

  • platform/network/curl/CurlContext.h:

(WebCore::CurlContext::defaultTimeoutInterval const):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::timeoutInterval const):
(WebCore::CurlRequest::didCompleteTransfer):

  • platform/network/curl/CurlRequest.h:

LayoutTests:

  • platform/wincairo/TestExpectations:
    • xmlhttprequest/on-network-timeout-error-during-preflight.html
3:43 PM Changeset in webkit [234863] by Ross Kirsling
  • 5 edits in trunk/Tools

[webkitpy][Win] LayoutTests: test names should be Unix style, separated by slash not backslash
https://bugs.webkit.org/show_bug.cgi?id=187973

Patch by Fujii Hironori <Fujii Hironori> on 2018-08-14
Reviewed by Alex Christensen.

In LayoutTests, test names have been canonicalized in Unix style
since Bug 63597, for example 'fast/css/001.html'. But Bug 179219,
Bug 179572, Bug 180660, and Bug 181814 have changed to use
os.path.seq instead of slash if Windows Python is used.

Revert parts of those changes. Change relative_test_filename to
return a slash-separated test name as chromium_win.py used to do.

This change fixes all 41 test-webkitpy failures in WinCairo port.

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationParser._parse_line): Do not convert test names with normpath.

  • Scripts/webkitpy/port/base.py:

(Port.normalize_test_name): Use TEST_PATH_SEPARATOR instead of os.path.sep.
(Port.relative_test_filename): Replace self.host.filesystem.sep with self.TEST_PATH_SEPARATOR.
(Port.abspath_for_test): Replace self.TEST_PATH_SEPARATOR with self.host.filesystem.sep.

  • Scripts/webkitpy/port/driver.py:

(Driver): Use '/' instead of os.sep.

  • Scripts/webkitpy/port/win.py:

(WinCairoPort): Do not override TEST_PATH_SEPARATOR.

2:15 PM Changeset in webkit [234862] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=188578

Unreviewed test gardening.

  • platform/ios/TestExpectations:
1:13 PM Changeset in webkit [234861] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Add build step to run WK1 layout-test
https://bugs.webkit.org/show_bug.cgi?id=188498

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKit1Tests): Class to run WebKit1Tests.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
12:04 PM Changeset in webkit [234860] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak] Fix --cmakeargs
https://bugs.webkit.org/show_bug.cgi?id=188567

Patch by Patrick Griffis <Patrick Griffis> on 2018-08-14
Reviewed by Michael Catanzaro.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_dev_env):

11:24 AM Changeset in webkit [234859] by achristensen@apple.com
  • 7 edits in trunk/Source

Use a Variant instead of a union in CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=188559

Reviewed by Antti Koivisto.

Source/WebCore:

No change in behavior. This just makes some of the existing problems more obvious and easy to fix.

I moved m_caseInsensitiveAttributeValueMatching to RareData because it's only used with RareData.
I only have m_isForPage when assertions are enabled because it's only used for an assertion.
The rest is pretty straightforward translating union syntax to Variant syntax.
I use RefPtr for now where I could use Ref because it's never null to make copying easier, but that's temporary.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::createRareData):
(WebCore::CSSSelector::setAttribute):
(WebCore::CSSSelector::setArgument):
(WebCore::CSSSelector::setLangArgumentList):
(WebCore::CSSSelector::setSelectorList):
(WebCore::CSSSelector::setNth):
(WebCore::CSSSelector::matchNth const):
(WebCore::CSSSelector::nthA const):
(WebCore::CSSSelector::nthB const):
(WebCore::CSSSelector::RareData::RareData):

  • css/CSSSelector.h:

(WebCore::CSSSelector::argument const):
(WebCore::CSSSelector::langArgumentList const):
(WebCore::CSSSelector::selectorList const):
(WebCore::CSSSelector::attribute const):
(WebCore::CSSSelector::attributeCanonicalLocalName const):
(WebCore::CSSSelector::setValue):
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::~CSSSelector):
(WebCore::CSSSelector::tagQName const):
(WebCore::CSSSelector::tagLowercaseLocalName const):
(WebCore::CSSSelector::value const):
(WebCore::CSSSelector::serializingValue const):
(WebCore::CSSSelector::attributeValueMatchingIsCaseInsensitive const):
(WebCore::CSSSelector::RareData::create): Deleted.

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parsePageSelector):

  • css/parser/CSSParserSelector.h:

Source/WTF:

  • wtf/Variant.h:

Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.

10:59 AM Changeset in webkit [234858] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add missing availability macro.
https://bugs.webkit.org/show_bug.cgi?id=188563

Reviewed by Mark Lam.

  • API/JSValueRef.h:
10:56 AM Changeset in webkit [234857] by yusukesuzuki@slowstart.org
  • 9 edits in trunk

Unhandled Promise Rejection logging in workers should not emit ErrorEvent to host Worker object
https://bugs.webkit.org/show_bug.cgi?id=188551

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker-expected.txt:
  • web-platform-tests/streams/readable-streams/tee.dedicatedworker-expected.txt:

Source/WebCore:

Previously we dispatched ErrorEvent on the Worker object of the host side when the unhandled promise
rejection happens in the worker. But that was wrong. We should not dispatch such an event and we
should just log the error message.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::reportUnhandledPromiseRejection):

LayoutTests:

  • http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt:
  • js/dom/unhandled-promise-rejection-bindings-type-error-in-workers-expected.txt:
10:54 AM Changeset in webkit [234856] by commit-queue@webkit.org
  • 11 edits in trunk/Tools

Enhancement request: Make export-w3c-test-changes add the PR to "See Also" links
https://bugs.webkit.org/show_bug.cgi?id=186140

Patch by Darshan Kadu <dkadu@igalia.com> on 2018-08-14
Reviewed by Youenn Fablet.

Added an optional parameter see_also to post_comment_to_bug function and used it for adding see_also variable's content in "See Also"

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

(Bugzilla.post_comment_to_bug):
Modified mock for see_also parameter

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

(MockBugzilla.post_comment_to_bug):
Made following unit tests to have see_also in bug comment

  • Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
  • Scripts/webkitpy/tool/bot/sheriff_unittest.py:

(SheriffTest.test_post_blame_comment_on_bug):

  • Scripts/webkitpy/tool/commands/applywatchlistlocal_unittest.py:
  • Scripts/webkitpy/tool/commands/queues_unittest.py:
  • Scripts/webkitpy/tool/commands/upload_unittest.py:
  • Scripts/webkitpy/tool/steps/applywatchlist_unittest.py:
  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter.make_pull_request):

  • Scripts/webkitpy/w3c/test_exporter_unittest.py:

(TestExporterTest.MockBugzilla.post_comment_to_bug):
(TestExporterTest.test_export):

10:46 AM Changeset in webkit [234855] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] GetByIdStatus::m_wasSeenInJIT is touched in GetByIdStatus::slowVersion
https://bugs.webkit.org/show_bug.cgi?id=188560

Reviewed by Keith Miller.

While GetByIdStatus() / GetByIdStatus(status) constructors do not set m_wasSeenInJIT,
it is loaded unconditionally in GetByIdStatus::slowVersion. This access to the
uninitialized member field is caught in UBSan. This patch fixes it by adding an initializer
m_wasSeenInJIT { false }.

  • bytecode/GetByIdStatus.h:
10:45 AM Changeset in webkit [234854] by yusukesuzuki@slowstart.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, follow-up patch for comments
https://bugs.webkit.org/show_bug.cgi?id=188265

  • bindings/js/JSExecState.cpp:

(WebCore::JSExecState::didLeaveScriptContext):
Do nothing if context is nullptr. It is OK since we do not need to drain microtasks / rejected
promise events after ScriptExecutionContext is gone.

  • dom/Microtasks.cpp:

(WebCore::MicrotaskQueue::contextQueue):
Drop unnecessary assertion since it is subsumed by downcast<>.

10:23 AM Changeset in webkit [234853] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/JavaScriptCore

[DFG] DFGPredictionPropagation should set PrimaryPass when processing invariants
https://bugs.webkit.org/show_bug.cgi?id=188557

Reviewed by Mark Lam.

DFGPredictionPropagationPhase should set PrimaryPass before processing invariants since
processing for ArithRound etc.'s invariants requires m_pass load. This issue is found
in UBSan's result.

  • dfg/DFGPredictionPropagationPhase.cpp:
10:16 AM Changeset in webkit [234852] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Should not rotate constant with 64
https://bugs.webkit.org/show_bug.cgi?id=188556

Reviewed by Mark Lam.

To defend against JIT splaying, we rotate a constant with a randomly generated seed.
But if a seed becomes 64, the following code performs value << 64 where value's type
is uint64_t, and it causes undefined behaviors (UBs). This patch limits the seed in the
range of [0, 64) not to generate code causing UBs. This is found by UBSan.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::generateRotationSeed):
(JSC::MacroAssembler::rotationBlindConstant):

10:12 AM Changeset in webkit [234851] by ajuma@chromium.org
  • 2 edits in trunk/Source/WebCore

Follow-up: [IntersectionObserver] Implement rootMargin parsing
https://bugs.webkit.org/show_bug.cgi?id=188469

Address review feedback from Darin Adler.

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::rootMargin const):
Use StringBuilder::appendLiteral instead of ::append to append a literal.

9:53 AM Changeset in webkit [234850] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Add support for max_builds parameter for workers
https://bugs.webkit.org/show_bug.cgi?id=188531

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/loadConfig.py:

(loadBuilderConfig): Added support for max_builds.

9:48 AM Changeset in webkit [234849] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit

RemoteLayerTreeTransaction should use OptionSet for change flags
https://bugs.webkit.org/show_bug.cgi?id=188547

Reviewed by Simon Fraser.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties):

Also remove unused everChangedProperties.

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

8:15 AM Changeset in webkit [234848] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[Web Animations] Crash under AnimationTimeline::cancelOrRemoveDeclarativeAnimation()
https://bugs.webkit.org/show_bug.cgi?id=188519
<rdar://problem/43237889>

Reviewed by Eric Carlson.

Source/WebCore:

Test: webanimations/css-animation-effect-target-change-and-animation-removal-crash.html

We would crash because we blindly assumed an animation that was found in the previous style must be in the list of running animations
but in fact it could have been removed already due to the element being removed from the DOM or its effect target changing, etc. So when
we iterate over names of animations that were found in the previous style but not in the new style, we must make a null check to ensure
that there is an animation to remove. Adding an ASSERT() in AnimationTimeline::cancelOrRemoveDeclarativeAnimation() will also clarify the
expectation here.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSAnimationsForElement):
(WebCore::AnimationTimeline::cancelOrRemoveDeclarativeAnimation):

LayoutTests:

Add a test where we clone the effect to be mutable and set a new target. At this stage the animation is no longer listed in the
m_elementToCSSAnimationByName map on AnimationTimeline. Then we remove the animation and force a style recalc for this element,
"anim" will be in the old style but not in the new style and we used to attempt to get an animation matching that name from
m_elementToCSSAnimationByName but it would be null, which would lead to a crash. Now we check that we indeed have such an animation
before proceeding.

  • webanimations/css-animation-effect-target-change-and-animation-removal-crash-expected.html: Added.
  • webanimations/css-animation-effect-target-change-and-animation-removal-crash.html: Added.
7:22 AM Changeset in webkit [234847] by Alan Bujtas
  • 6 edits
    2 adds in trunk

Source/WebCore:
[LFC][Floating] Adjust vertical position with non-collapsed previous sibling margin.
https://bugs.webkit.org/show_bug.cgi?id=188543

Reviewed by Antti Koivisto.

This patch ensures that the inital vertical position for a float is adjusted with the non-collapsed sibling margin.

<div id=A style="margin-bottom: 20px;"></div>
<div id=B style='float: left'></div>
<div id=C style="margin-top: 10px;"></div>

While computing the static position for element "B", we simply call marginBottom() on A.
In the case above, A's margin bottom is collapsed with C's margin top and the value is 0 (C.marginTop() is 20px).
However CSS spec says that in block formatting context, the non-collapsed margin should be used instead to offset the float box.
(The reason why this should not be part of the BlockMarginCollapse::marginBottom() logic is because it can not differentiate the context of
sibling float/sibling inflow. When we margin collapse, we always do it in the context of inflow boxes.)

Test: fast/block/block-only/float-and-siblings-with-margins.html

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition const):

  • layout/blockformatting/BlockFormattingContext.h:

Tools:
[LFC][Floating] Adjust vertical position with non-collapsing previous sibling margin.
https://bugs.webkit.org/show_bug.cgi?id=188543

Reviewed by Antti Koivisto.

  • LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:
[LFC][Floating] Adjust vertical position with non-collapsing previous sibling margin.
https://bugs.webkit.org/show_bug.cgi?id=188543

Reviewed by Antti Koivisto.

  • fast/block/block-only/float-and-siblings-with-margins-expected.txt: Added.
  • fast/block/block-only/float-and-siblings-with-margins.html: Added.
6:04 AM Changeset in webkit [234846] by yusukesuzuki@slowstart.org
  • 30 edits
    24 adds in trunk

Worker should support unhandled promise rejections
https://bugs.webkit.org/show_bug.cgi?id=188265

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker-expected.txt:
  • web-platform-tests/streams/readable-streams/tee.dedicatedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/tee.serviceworker.https-expected.txt:
  • web-platform-tests/workers/interfaces.worker-expected.txt:
  • web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:

Source/WebCore:

This patch adds PromiseRejectionEvent support in workers.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::promiseRejectionTracker):
Move promiseRejectionTracker handler from JSDOMWindowBase to JSDOMGlobalObject
to share it with WorkerGlobalScope.

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::promiseRejectionTracker): Deleted.
Moved to JSDOMGlobalObject.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSExecState.cpp:

(WebCore::JSExecState::didLeaveScriptContext):
PromiseRejectionTracker is driven in workers too.

  • bindings/js/JSPromiseRejectionEventCustom.cpp: Added.

(WebCore::JSPromiseRejectionEvent::visitAdditionalChildren):
Marking PromiseRejectionEvent::m_reason.

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

Configure promiseRejectionTracker.

  • dom/Microtasks.cpp:

(WebCore::MicrotaskQueue::contextQueue):

  • dom/Microtasks.h:
  • dom/PromiseRejectionEvent.cpp:

(WebCore::PromiseRejectionEvent::PromiseRejectionEvent):

  • dom/PromiseRejectionEvent.h:
  • dom/PromiseRejectionEvent.idl:

Expose it to worker scope. The custom mark function is required since we start
using JSValueInWrappedObject. And the constructor no longer requires ExecState.

  • dom/RejectedPromiseTracker.cpp:

(WebCore::RejectedPromiseTracker::reportUnhandledRejections):
(WebCore::RejectedPromiseTracker::reportRejectionHandled):
Remove state argument for PromiseRejectionEvent::create.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::removeRejectedPromiseTracker):

  • dom/ScriptExecutionContext.h:

In worker thread, we should delete PromiseRejectionTracker before destroying VM
because PromiseRejectionTracker's destruction requires VM. If we destroy VM first,
PromiseRejectionTracker's destruction causes crashing. In main thread, we do not
need to handle this case since we never destroy VM.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::prepareForTermination):
(WebCore::WorkerGlobalScope::removeMicrotaskQueue): Deleted.

  • workers/WorkerGlobalScope.h:
  • workers/WorkerGlobalScope.idl:

Add onunhandledrejection and onrejectionhandled event handler attributes.

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::stop):
We call WorkerGlobalScope::prepareForTermination, which cleans up Worker's objects touching VM.

LayoutTests:

  • fast/dom/reference-cycle-leaks-expected.txt:
  • http/wpt/workers/promise-unhandled-rejection.any-expected.txt: Added.
  • http/wpt/workers/promise-unhandled-rejection.any.html: Added.
  • http/wpt/workers/promise-unhandled-rejection.any.js: Added.

(promise_test):

  • http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt: Added.
  • http/wpt/workers/promise-unhandled-rejection.any.worker.html: Added.
  • js/dom/unhandled-promise-rejection-basic-in-workers-expected.txt: Added.
  • js/dom/unhandled-promise-rejection-basic-in-workers.html: Added.
  • js/dom/unhandled-promise-rejection-bindings-type-error-in-workers-expected.txt: Added.
  • js/dom/unhandled-promise-rejection-bindings-type-error-in-workers.html: Added.
  • js/dom/unhandled-promise-rejection-handle-during-event-in-workers-expected.txt: Added.
  • js/dom/unhandled-promise-rejection-handle-during-event-in-workers.html: Added.
  • js/dom/unhandled-promise-rejection-handle-in-handler-in-workers-expected.txt: Added.
  • js/dom/unhandled-promise-rejection-handle-in-handler-in-workers.html: Added.
  • js/dom/unhandled-promise-rejection-handle-in-workers-expected.txt: Added.
  • js/dom/unhandled-promise-rejection-handle-in-workers.html: Added.
  • js/dom/unhandled-promise-rejection-order-in-workers-expected.txt: Added.
  • js/dom/unhandled-promise-rejection-order-in-workers.html: Added.
  • js/resources/unhandled-promise-rejection-basic-in-workers.js: Added.

(global.onunhandledrejection):

  • js/resources/unhandled-promise-rejection-bindings-type-error-in-workers.js: Added.

(global.onunhandledrejection):
(catch):
(setTimeout):

  • js/resources/unhandled-promise-rejection-handle-during-event-in-workers.js: Added.

(global.onunhandledrejection):

  • js/resources/unhandled-promise-rejection-handle-in-handler-in-workers.js: Added.

(global.onunhandledrejection):
(global.onrejectionhandled):

  • js/resources/unhandled-promise-rejection-handle-in-workers.js: Added.

(global.onunhandledrejection):
(global.onrejectionhandled):

  • js/resources/unhandled-promise-rejection-order-in-workers.js: Added.

(global.onunhandledrejection):

5:41 AM Changeset in webkit [234845] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix WebDriver tests after r234839.

New pytest requires to autoinstall more_itertools and six too.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_pytest):

5:40 AM Changeset in webkit [234844] by tpopela@redhat.com
  • 2 edits in trunk/Tools

[GTK] Minibrowser: Add labels for buttons
https://bugs.webkit.org/show_bug.cgi?id=188549

Reviewed by Carlos Garcia Campos.

So they are accessible easier (i.e. while testing WebKitGTK+ through Minibrowser in Dogtail).

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewIsLoadingChanged):
(browserWindowSetupEditorToolbar):
(browser_window_init):

4:26 AM Changeset in webkit [234843] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix WebDriver tests after r234839.

New pytest requires to autoinstall atomicwrites too.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_pytest):

2:57 AM Changeset in webkit [234842] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix WebDriver tests after r234839.

New pytest requires to autoinstall pluggy and funcsigs too.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_pytest):

2:04 AM Changeset in webkit [234841] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Update several test expectations after r234839.

1:29 AM Changeset in webkit [234840] by commit-queue@webkit.org
  • 6 edits in trunk

Fetch: content-length header is being added to the safe-list
https://bugs.webkit.org/show_bug.cgi?id=185473

Patch by Rob Buis <rbuis@igalia.com> on 2018-08-14
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Sync with wpt change:
https://github.com/web-platform-tests/wpt/commit/407ecdff87af8aeceaa07cbc71aac9ec355d4334

  • web-platform-tests/fetch/api/cors/cors-filtering-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-filtering-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-filtering.js:

Source/WebCore:

Content-Length is a CORS-safelisted reponse header:
https://fetch.spec.whatwg.org/#cors-safelisted-response-header-name

Tests: web-platform-tests/fetch/api/cors/cors-filtering.html

web-platform-tests/fetch/api/cors/cors-filtering-worker.html

  • platform/network/HTTPParsers.cpp:

(WebCore::isCrossOriginSafeHeader):

12:08 AM Changeset in webkit [234839] by Carlos Garcia Campos
  • 145 edits
    9 copies
    47 adds
    2 deletes in trunk

Unreviewed. Update W3C WebDriver imported tests.

Tools:

Bump pytest version to 3.6.2.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_pytest):

WebDriverTests:

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/README.md:
  • imported/w3c/tools/webdriver/webdriver/init.py:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/webdriver/webdriver/error.py:
  • imported/w3c/tools/webdriver/webdriver/protocol.py:
  • imported/w3c/tools/webdriver/webdriver/transport.py:
  • imported/w3c/tools/wptrunner/README.rst:
  • imported/w3c/tools/wptrunner/docs/conf.py:
  • imported/w3c/tools/wptrunner/docs/usage.rst:
  • imported/w3c/tools/wptrunner/requirements.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome_android.txt:
  • imported/w3c/tools/wptrunner/requirements_edge.txt:
  • imported/w3c/tools/wptrunner/requirements_firefox.txt:
  • imported/w3c/tools/wptrunner/requirements_ie.txt:
  • imported/w3c/tools/wptrunner/requirements_opera.txt:
  • imported/w3c/tools/wptrunner/requirements_safari.txt:
  • imported/w3c/tools/wptrunner/requirements_sauce.txt:
  • imported/w3c/tools/wptrunner/tox.ini:
  • imported/w3c/tools/wptrunner/wptrunner.default.ini:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome_android.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/edge.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/fennec.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/ie.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/opera.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/safari.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/webkit.py:
  • imported/w3c/tools/wptrunner/wptrunner/environment.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorsafari.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/protocol.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/pytestrunner/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/reftest-wait_marionette.js:
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_webdriver.js:
  • imported/w3c/tools/wptrunner/wptrunner/font.py:
  • imported/w3c/tools/wptrunner/wptrunner/formatters.py:
  • imported/w3c/tools/wptrunner/wptrunner/manifestexpected.py:
  • imported/w3c/tools/wptrunner/wptrunner/manifestupdate.py:
  • imported/w3c/tools/wptrunner/wptrunner/metadata.py:
  • imported/w3c/tools/wptrunner/wptrunner/products.py:
  • imported/w3c/tools/wptrunner/wptrunner/stability.py:
  • imported/w3c/tools/wptrunner/wptrunner/testloader.py:
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_chunker.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_formatters.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_products.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_stability.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_update.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_wpttest.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/update/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/metadata.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/sync.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/tree.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/update.py:
  • imported/w3c/tools/wptrunner/wptrunner/vcs.py:
  • imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptlogging.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/backends/conditional.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/parser.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/serializer.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_conditional.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_static.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
  • imported/w3c/webdriver/META.yml: Added.
  • imported/w3c/webdriver/OWNERS: Removed.
  • imported/w3c/webdriver/tests/accept_alert/accept.py:
  • imported/w3c/webdriver/tests/actions/control_click.py: Added.
  • imported/w3c/webdriver/tests/actions/key.py:
  • imported/w3c/webdriver/tests/actions/modifier_click.py:
  • imported/w3c/webdriver/tests/actions/mouse.py:
  • imported/w3c/webdriver/tests/actions/support/keys.py:
  • imported/w3c/webdriver/tests/add_cookie/add.py:
  • imported/w3c/webdriver/tests/back/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
  • imported/w3c/webdriver/tests/back/back.py: Added.
  • imported/w3c/webdriver/tests/back/conftest.py: Added.
  • imported/w3c/webdriver/tests/close_window/close.py:
  • imported/w3c/webdriver/tests/close_window/user_prompts.py:
  • imported/w3c/webdriver/tests/conftest.py:
  • imported/w3c/webdriver/tests/delete_all_cookies/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
  • imported/w3c/webdriver/tests/delete_all_cookies/delete.py: Added.
  • imported/w3c/webdriver/tests/delete_cookie/delete.py:
  • imported/w3c/webdriver/tests/delete_cookie/user_prompts.py:
  • imported/w3c/webdriver/tests/delete_session/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
  • imported/w3c/webdriver/tests/delete_session/delete.py: Added.
  • imported/w3c/webdriver/tests/dismiss_alert/dismiss.py:
  • imported/w3c/webdriver/tests/element_clear/clear.py:
  • imported/w3c/webdriver/tests/element_click/click.py: Added.
  • imported/w3c/webdriver/tests/element_click/file_upload.py: Added.
  • imported/w3c/webdriver/tests/element_click/interactability.py: Added.
  • imported/w3c/webdriver/tests/element_click/navigate.py: Added.
  • imported/w3c/webdriver/tests/element_click/scroll_into_view.py: Added.
  • imported/w3c/webdriver/tests/element_click/support/close_window.html: Added.
  • imported/w3c/webdriver/tests/element_click/support/input.html: Added.
  • imported/w3c/webdriver/tests/element_send_keys/init.py:
  • imported/w3c/webdriver/tests/element_send_keys/conftest.py: Added.
  • imported/w3c/webdriver/tests/element_send_keys/events.py: Added.
  • imported/w3c/webdriver/tests/element_send_keys/file_upload.py: Added.
  • imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
  • imported/w3c/webdriver/tests/element_send_keys/send_keys.py: Added.
  • imported/w3c/webdriver/tests/element_send_keys/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/execute_async_script/collections.py:
  • imported/w3c/webdriver/tests/execute_async_script/execute_async.py: Added.
  • imported/w3c/webdriver/tests/execute_async_script/user_prompts.py:
  • imported/w3c/webdriver/tests/execute_script/cyclic.py:
  • imported/w3c/webdriver/tests/execute_script/execute.py: Added.
  • imported/w3c/webdriver/tests/execute_script/user_prompts.py:
  • imported/w3c/webdriver/tests/find_element/find.py:
  • imported/w3c/webdriver/tests/find_element_from_element/find.py:
  • imported/w3c/webdriver/tests/find_elements/find.py:
  • imported/w3c/webdriver/tests/find_elements_from_element/find.py:
  • imported/w3c/webdriver/tests/forward/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
  • imported/w3c/webdriver/tests/forward/conftest.py: Added.
  • imported/w3c/webdriver/tests/forward/forward.py: Added.
  • imported/w3c/webdriver/tests/forward/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/fullscreen_window/fullscreen.py:
  • imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py:
  • imported/w3c/webdriver/tests/get_active_element/get.py:
  • imported/w3c/webdriver/tests/get_alert_text/get.py:
  • imported/w3c/webdriver/tests/get_current_url/get.py:
  • imported/w3c/webdriver/tests/get_current_url/user_prompts.py:
  • imported/w3c/webdriver/tests/get_element_attribute/get.py:
  • imported/w3c/webdriver/tests/get_element_property/get.py:
  • imported/w3c/webdriver/tests/get_element_property/user_prompts.py:
  • imported/w3c/webdriver/tests/get_element_tag_name/get.py:
  • imported/w3c/webdriver/tests/get_element_tag_name/user_prompts.py:
  • imported/w3c/webdriver/tests/get_element_text/get.py:
  • imported/w3c/webdriver/tests/get_named_cookie/get.py:
  • imported/w3c/webdriver/tests/get_timeouts/get.py:
  • imported/w3c/webdriver/tests/get_title/get.py:
  • imported/w3c/webdriver/tests/get_title/user_prompts.py:
  • imported/w3c/webdriver/tests/get_window_rect/get.py:
  • imported/w3c/webdriver/tests/get_window_rect/user_prompts.py:
  • imported/w3c/webdriver/tests/interface.html:
  • imported/w3c/webdriver/tests/is_element_selected/selected.py:
  • imported/w3c/webdriver/tests/is_element_selected/user_prompts.py:
  • imported/w3c/webdriver/tests/maximize_window/maximize.py:
  • imported/w3c/webdriver/tests/maximize_window/user_prompts.py:
  • imported/w3c/webdriver/tests/minimize_window/minimize.py:
  • imported/w3c/webdriver/tests/minimize_window/user_prompts.py:
  • imported/w3c/webdriver/tests/navigate_to/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
  • imported/w3c/webdriver/tests/navigate_to/navigate.py: Added.
  • imported/w3c/webdriver/tests/new_session/conftest.py:
  • imported/w3c/webdriver/tests/new_session/create_alwaysMatch.py:
  • imported/w3c/webdriver/tests/new_session/create_firstMatch.py:
  • imported/w3c/webdriver/tests/new_session/default_values.py:
  • imported/w3c/webdriver/tests/new_session/invalid_capabilities.py:
  • imported/w3c/webdriver/tests/new_session/merge.py:
  • imported/w3c/webdriver/tests/new_session/page_load_strategy.py: Added.
  • imported/w3c/webdriver/tests/new_session/platform_name.py: Added.
  • imported/w3c/webdriver/tests/new_session/response.py:
  • imported/w3c/webdriver/tests/new_session/timeouts.py: Added.
  • imported/w3c/webdriver/tests/page_source/source.py:
  • imported/w3c/webdriver/tests/refresh/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
  • imported/w3c/webdriver/tests/refresh/refresh.py: Added.
  • imported/w3c/webdriver/tests/refresh/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/send_alert_text/send.py:
  • imported/w3c/webdriver/tests/set_timeouts/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
  • imported/w3c/webdriver/tests/set_timeouts/set.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/resizing_and_positioning.py: Removed.
  • imported/w3c/webdriver/tests/set_window_rect/set.py:
  • imported/w3c/webdriver/tests/set_window_rect/user_prompts.py:
  • imported/w3c/webdriver/tests/status/status.py:
  • imported/w3c/webdriver/tests/support/init.py:
  • imported/w3c/webdriver/tests/support/asserts.py:
  • imported/w3c/webdriver/tests/support/fixtures.py:
  • imported/w3c/webdriver/tests/switch_to_frame/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
  • imported/w3c/webdriver/tests/switch_to_frame/switch.py: Added.
  • imported/w3c/webdriver/tests/switch_to_parent_frame/switch.py:
  • imported/w3c/webdriver/tests/switch_to_window/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
  • imported/w3c/webdriver/tests/switch_to_window/switch.py: Added.

Aug 13, 2018:

11:53 PM Changeset in webkit [234838] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

WebDriver: do not try to set the caret when focusing non text element in send keys command
https://bugs.webkit.org/show_bug.cgi?id=188515

Reviewed by Brian Burg.

It causes a type error exception.

  • Session.cpp:

(WebDriver::Session::elementSendKeys):

11:51 PM Changeset in webkit [234837] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

WebDriver: include all capabilities in the new session response
https://bugs.webkit.org/show_bug.cgi?id=188511

Reviewed by Brian Burg.

As expected by the tests, using the default values when the capability is not provided by the user.

  • WebDriverService.cpp:

(WebDriver::WebDriverService::createSession):

11:49 PM Changeset in webkit [234836] by Carlos Garcia Campos
  • 6 edits in trunk

WebDriver: several element_send_keys tests are failing since added
https://bugs.webkit.org/show_bug.cgi?id=181644

Reviewed by Michael Catanzaro.

This is because we are implementing an old version of the spec that received a "value" parameter to send keys
command, instead of the "text" one.

14.3 Element Send Keys
https://w3c.github.io/webdriver/#element-send-keys

  • Session.cpp:

(WebDriver::Session::virtualKeyForKey): Receive a single character instead of a sequence.
(WebDriver::Session::elementSendKeys): It now receives a String and passes every character to virtualKeyForKey.
(WebDriver::Session::performActions): Pass first character of sequence to virtualKeyForKey.

  • Session.h:
  • WebDriverService.cpp:

(WebDriver::WebDriverService::elementSendKeys): Get text as a String, instead of value as an array.

10:55 PM Changeset in webkit [234835] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WTF

Meaning of OptionSet::contains is unclear when used with OptionSet argument
https://bugs.webkit.org/show_bug.cgi?id=188501
<rdar://problem/43246242>

Reviewed by Simon Fraser.

MSVC is unable to compile contains using an initializer_list within a lambda.

  • wtf/OptionSet.h:

(WTF::OptionSet::contains const):

6:47 PM Changeset in webkit [234834] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][Floating] Do not confuse clear with clearance.
https://bugs.webkit.org/show_bug.cgi?id=188541

Reviewed by Simon Fraser.

clear -> CSS property.
clearance -> the offset required to avoid floats when clear is present.

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForClear const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionWithClearance const): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::hasClear const):
(WebCore::Layout::Box::hasClearance const): Deleted.

  • layout/layouttree/LayoutBox.h:
5:59 PM Changeset in webkit [234833] by jonlee@apple.com
  • 2 edits in trunk/PerformanceTests

Update MotionMark version number
https://bugs.webkit.org/show_bug.cgi?id=188535
<rdar://problem/43254078>

Reviewed by Said Abou-Hallawa.

  • MotionMark/resources/strings.js: To 1.1.
5:58 PM Changeset in webkit [234832] by jonlee@apple.com
  • 3 edits
    2 adds in trunk/PerformanceTests

[MotionMark] Update Multiply test
https://bugs.webkit.org/show_bug.cgi?id=188532
<rdar://problem/43252151>

Reviewed by Said Abou-Hallawa.

Update Multiply test to have a larger upper limit of number of particles. Cycle through three
different ways of hiding an element. Add new Multiple suite that isolates those components for
debugging purposes.

  • MotionMark/resources/debug-runner/tests.js:
  • MotionMark/tests/dom/multiply.html: Added.
  • MotionMark/tests/dom/resources/multiply.js: Added.
  • MotionMark/tests/master/resources/multiply.js:
5:39 PM Changeset in webkit [234831] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Crash at -[UIViewController _presentViewController:withAnimationController:completion:]
https://bugs.webkit.org/show_bug.cgi?id=188537
<rdar://problem/41400259>

Patch by James Savage <James Savage> on 2018-08-13
Reviewed by Tim Horton.

  • platform/ios/ValidationBubbleIOS.mm:

(WebCore::ValidationBubble::show): Avoid hitting a UIKit exception for
presenting an already presented view controller by turning the scenario
into an early return.

5:02 PM Changeset in webkit [234830] by Kocsen Chung
  • 7 edits in tags/Safari-607.1.2.1/Source

Versioning.

5:00 PM Changeset in webkit [234829] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.2.1

New tag.

4:56 PM Changeset in webkit [234828] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.2.2

Tag Safari-606.1.36.2.2.

4:45 PM Changeset in webkit [234827] by youenn@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

[WPT] Ensure templated tests do set a Content-Type: text/html HTTP header
https://bugs.webkit.org/show_bug.cgi?id=188523

Reviewed by Alexey Proskuryakov.

Importing change made in https://github.com/web-platform-tests/wpt/pull/12450
This helps running WPT tests in more platforms.

  • web-platform-tests/tools/serve/serve.py:

(HtmlWrapperHandler):

4:37 PM Changeset in webkit [234826] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.1.5

Tag Safari-606.1.36.1.5.

4:36 PM Changeset in webkit [234825] by achristensen@apple.com
  • 9 edits in trunk/Source/WebCore

Make CSSSelectorList a little more sane
https://bugs.webkit.org/show_bug.cgi?id=188539

Reviewed by Simon Fraser.

This patch does four things:

  1. Use a UniqueArray<CSSSelector> instead of a raw pointer and manually calling destructors.
  2. Use move semantics a little bit better.
  3. Add a CSSSelectorList&& to the StyleRule and StyleRulePage because every time we create either

one of those objects we call a setter to give it a CSSSelectorList. That's what constructor arguments are for.

  1. Don't use CSSSelectorList.componentCount(), which iterates all components, to determine if it's empty.

Use first() instead.

  • css/CSSPageRule.cpp:

(WebCore::CSSPageRule::setSelectorText):

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::componentCount const):
(WebCore::CSSSelectorList::listSize const):
(WebCore::CSSSelectorList::operator=):
(WebCore::CSSSelectorList::deleteSelectors): Deleted.

  • css/CSSSelectorList.h:

(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::first const):
(WebCore::CSSSelectorList::indexOfNextSelectorAfter const):
(WebCore::CSSSelectorList::~CSSSelectorList): Deleted.
(WebCore::CSSSelectorList::adoptSelectorArray): Deleted.
(WebCore::CSSSelectorList::hasOneSelector const): Deleted.

  • css/CSSStyleRule.cpp:

(WebCore::CSSStyleRule::setSelectorText):

  • css/StyleRule.cpp:

(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::createForSplitting):
(WebCore::StyleRulePage::StyleRulePage):

  • css/StyleRule.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumePageRule):
(WebCore::CSSParserImpl::consumeStyleRule):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

4:15 PM Changeset in webkit [234824] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Allow the substring 'me' in contributor names and email addresses
https://bugs.webkit.org/show_bug.cgi?id=188538

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-13
Reviewed by Tim Horton.

A test didn't permit the string "me" in email addresses or names of contributors.

  • Scripts/webkitpy/common/config/committers_unittest.py:

(CommittersTest.test_contributors_by_fuzzy_match):

4:02 PM Changeset in webkit [234823] by jonlee@apple.com
  • 5 edits in trunk/PerformanceTests

[MotionMark] Update Leaves test
https://bugs.webkit.org/show_bug.cgi?id=188530
<rdar://problem/43251862>

Reviewed by Said Abou-Hallawa.

Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
for debugging purposes.

  • MotionMark/resources/debug-runner/tests.js:
  • MotionMark/tests/dom/leaves.html:
  • MotionMark/tests/dom/resources/leaves.js:
  • MotionMark/tests/master/resources/leaves.js:
3:44 PM Changeset in webkit [234822] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Table should handle row selection instead of the table delegate
https://bugs.webkit.org/show_bug.cgi?id=188534
<rdar://problem/43253335>

Reviewed by Joseph Pecoraro.

Row selection should be implemented by Table, rather than its delegate.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.tableShouldSelectRow):
(WI.NetworkTableContentView.prototype.tableCellMouseDown): Deleted.
Prevent selection unless the clicked cell belongs to the name column.

  • UserInterface/Views/ResourceCookiesContentView.js:

(WI.ResourceCookiesContentView.prototype.tableShouldSelectRow):
Always prevent selection.

  • UserInterface/Views/Table.js:

(WI.Table):
(WI.Table.prototype._handleMouseDown):

3:29 PM Changeset in webkit [234821] by Joseph Pecoraro
  • 8 edits
    2 adds in trunk/LayoutTests

[macOS debug] LayoutTest inspector/worker/resources-in-worker.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168091

Reviewed by Devin Rousso.

  • inspector/worker/resources-in-worker-expected.txt:
  • inspector/worker/resources-in-worker.html:
  • inspector/worker/resources/resource-utilities.js:
  • inspector/worker/resources/worker-resources.js:

Be a little more careful about proceeding with tests after starting the Worker.
Fix the resource load from the main target to actually load a real resource.

  • inspector/dom-debugger/resources/dataXHR.json: Added.
  • inspector/dom-debugger/xhr-breakpoints.html:

Load an actual resource.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:

This test always passes for me in Release and Debug. Reset expectations.

3:17 PM Changeset in webkit [234820] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

broke the build (Requested by ThomasDenney on #webkit).

Reverted changeset:

"Added Thomas Denney to contributors.json."
https://bugs.webkit.org/show_bug.cgi?id=188525
https://trac.webkit.org/changeset/234812

3:16 PM Changeset in webkit [234819] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

Avoid timeout resulted from calling waitUntilDone when test is not running
https://bugs.webkit.org/show_bug.cgi?id=188389

Reviewed by Chris Dumez.

If test is not running, we should not set the waitUntilDone flag, or it may cause subsequent tests timeout.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::waitUntilDone):

3:02 PM Changeset in webkit [234818] by ajuma@chromium.org
  • 9 edits in trunk

[IntersectionObserver] Validate threshold values
https://bugs.webkit.org/show_bug.cgi?id=188475

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update expectation for newly passing test case.

  • web-platform-tests/intersection-observer/observer-exceptions-expected.txt:
  • web-platform-tests/intersection-observer/observer-exceptions.html: Fix typo already fixed upstream.

Source/WebCore:

Throw an exception if any of an IntersectionObserver's thresholds are outside
the range [0, 1].

Tested by: imported/w3c/web-platform-tests/intersection-observer/observer-exceptions.html

intersection-observer/intersection-observer-interface.html

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):

  • page/IntersectionObserver.h:

LayoutTests:

Add test coverage for interesting floating point threshold values.

  • intersection-observer/intersection-observer-interface-expected.txt:
  • intersection-observer/intersection-observer-interface.html:
2:17 PM Changeset in webkit [234817] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Remove unused CSSSelector::parseNth
https://bugs.webkit.org/show_bug.cgi?id=188529

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-13
Reviewed by Simon Fraser.

This was conceptually replaced by the call to setNth in CSSSelectorParser::consumePseudo.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::setNth):
(WebCore::CSSSelector::nthA const):
(WebCore::CSSSelector::nthB const):
(WebCore::CSSSelector::parseNth const): Deleted.
(WebCore::CSSSelector::RareData::parseNth): Deleted.

  • css/CSSSelector.h:

(WebCore::CSSSelector::CSSSelector):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addNthChildType):

2:07 PM Changeset in webkit [234816] by Wenson Hsieh
  • 21 edits
    2 copies
    1 move
    4 adds
    1 delete in trunk

[WK2] [macOS] Implement a mechanism to test drag and drop
https://bugs.webkit.org/show_bug.cgi?id=181898
<rdar://problem/39181698>

Reviewed by Simon Fraser.

Source/WebKit:

Adds a new SPI method, -_doAfterProcessingAllPendingMouseEvents:, to WKWebView. This invokes the given
callback after all queued mouse events have been handled by the web process. See Tools/ChangeLog for more
detail.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/wpe/PageClientImpl.h:
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::processDidExit):

Invoke any outstanding callbacks for processing pending mouse events when the web process is terminated.

(WebKit::WebViewImpl::doAfterProcessingAllPendingMouseEvents):

Either invoke the callback immediately if there are no mouse events to be processed, or insert the callback in
a queue that will be flushed once all mouse events have been handled.

(WebKit::WebViewImpl::didFinishProcessingAllPendingMouseEvents):
(WebKit::WebViewImpl::flushPendingMouseEventCallbacks):

  • UIProcess/PageClient.h:

(WebKit::PageClient::pinnedStateWillChange):
(WebKit::PageClient::pinnedStateDidChange):
(WebKit::PageClient::videoControlsManagerDidChange):

Drive-by tweaks: remove unnecessary semicolons after empty implementation stubs.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReceiveEvent):

Notify the page client when there are no remaining mouse events left in the queue.

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::didFinishProcessingAllPendingMouseEvents):

Add some plumbing through PageClient, so that WebPageProxy can tell WebViewImpl when it is finished processing
all mouse events.

  • UIProcess/win/PageClientImpl.h:

Tools:

Implements the currently stubbed DragAndDropSimulator on macOS, and introduces a new API test for r227266. See
comments below for more detail.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm: Copied from Tools/TestWebKitAPI/mac/DragAndDropSimulatorMac.mm.

Introduce a file for cross-platform drag and drop tests, currently for iOS and macOS. Additionally add a test
for r227266, which was fixed earlier this year but could not be tested due to a lack of testing mechanism on
macOS in WebKit2.

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/full-page-dropzone.html: Added.

Minor tweaks to this test page to add "dragover" and "drop" event handlers.

  • TestWebKitAPI/Tests/WebKitCocoa/image-in-link-and-input.html:
  • TestWebKitAPI/Tests/WebKitCocoa/link-in-iframe-and-input.html: Added.

Add a new test page that includes a link embedded within an iframe below a plain text input.

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

(TEST):

  • TestWebKitAPI/Tests/mac/LegacyDragAndDropTests.mm: Renamed from Tools/TestWebKitAPI/Tests/mac/DragAndDropPasteboardTests.mm.

Move only existing WebKit2 macOS drag and drop test (DragAndDropPasteboardTests.NumberOfValidItemsForDrop) out
of DragAndDropPasteboardTests.mm and into a new file, DragAndDropTestsMac.mm. Additionally, rename
DragAndDropPasteboardTests to LegacyDragAndDropTests, since it now only contains two legacy WebView tests for
drag and drop.

(+[FrameLoadCompletionListener listenerWithCompletionBlock:]):
(-[FrameLoadCompletionListener initWithCompletionBlock:]):
(-[FrameLoadCompletionListener webView:didFinishLoadForFrame:]):
(-[DragSource draggingSourceOperationMaskForLocal:]):
(-[DragInfo initWithImage:offset:pasteboard:source:destinationWindow:]):
(-[DragInfo lastMousePosition]):
(-[DragInfo setLastMousePosition:]):
(-[DragInfo draggingDestinationWindow]):
(-[DragInfo draggingSourceOperationMask]):
(-[DragInfo draggingLocation]):
(-[DragInfo draggedImageLocation]):
(-[DragInfo draggedImage]):
(-[DragInfo draggingPasteboard]):
(-[DragInfo draggingSource]):
(-[DragInfo draggingSequenceNumber]):
(-[DragInfo slideDraggedImageTo:]):
(-[DragInfo namesOfPromisedFilesDroppedAtDestination:]):
(-[DragInfo draggingFormation]):
(-[DragInfo setDraggingFormation:]):
(-[DragInfo animatesToDestination]):
(-[DragInfo setAnimatesToDestination:]):
(-[DragInfo numberOfValidItemsForDrop]):
(-[DragInfo setNumberOfValidItemsForDrop:]):
(-[DragInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
(-[DragInfo springLoadingHighlight]):
(-[DragInfo resetSpringLoading]):
(TestWebKitAPI::getTestImage):
(TestWebKitAPI::webViewAfterPerformingDragOperation):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/full-page-dropzone.html: Removed.
  • TestWebKitAPI/cocoa/DragAndDropSimulator.h:

Flesh out some of the DragAndDropSimulator API for macOS, exposing (among other things) the drag pasteboard,
the current NSDraggingInfo, the initial location of the drag image, and the drag image itself.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView mouseUpAtPoint:]):
(-[TestWKWebView mouseMoveToPoint:withFlags:]):
(-[TestWKWebView sendClicksAtPoint:numberOfClicks:]):
(-[TestWKWebView mouseEnterAtPoint:]):
(-[TestWKWebView mouseExitAtPoint:]):
(-[TestWKWebView mouseDragToPoint:]):
(-[TestWKWebView _mouseEventWithType:atLocation:]):
(-[TestWKWebView _mouseEventWithType:atLocation:flags:timestamp:clickCount:]):

Add TestWKWebView helpers to send MouseMove, MouseEnter and MouseDrag NSEvents to the web view. Additionally,
rename parameter names to these helpers to make it more obvious that these locations are all in NSWindow
coordinates.

(-[TestWKWebView typeCharacter:]):

Drive-by style fix: put this opening brace on the beginning of the next line.

  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[DragAndDropSimulator initWithWebViewFrame:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator webView]):

Small iOS DragAndDropSimulator adjustments for new DragAndDropSimulator interfaces.

  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:

(-[DragAndDropTestWKWebView initWithFrame:configuration:simulator:]):

Introduce a WKWebView subclass for testing drag and drop that overrides -dragImage:at:offset:…, and instead
allows DragAndDropSimulator to take over the drag.

(-[DragAndDropTestWKWebView dragImage:at:offset:event:pasteboard:source:slideBack:]):

Override this entry point into drag and drop code, and instead call out to the DragAndDropSimulator to
coordinate the drag.

(-[DragAndDropTestWKWebView waitForPendingMouseEvents]):

Helper method to wait for the web process to finish handling all in-flight mouse events.

(defaultExternalDragImage):

Set this image as the default drag image when simulating an incoming drag session from outside of the web view.

(-[DragAndDropSimulator initWithWebViewFrame:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator flipAboutXAxisInHostWindow:]):

Helper method to flip a given point about the X axis of the window.

(-[DragAndDropSimulator locationInViewForCurrentProgress]):

Map a progress value (between 0 and 1) to a drag location.

(-[DragAndDropSimulator initialProgressForMouseDrag]):

Determines the initial progress value when initiation a drag in web content. This is the initial progress
required to ensure that the first mouse drag event exceeds the drag distance hysteresis and causes any drag
(if applicable) to begin.

(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):

Helper to coordinate drag updates in both the cases where we're simulating a drag session entering from outside
of the web view, and in the case where we've initiated a drag from the web view itself.

(-[DragAndDropSimulator webView]):
(-[DragAndDropSimulator setExternalDragPasteboard:]):
(-[DragAndDropSimulator externalDragPasteboard]):

Just like its iOS counterpart (setExternalItemProviders:), setting an external drag pasteboard on macOS puts the
DragAndDropSimulator in a mode that simulates a drag coming in from outside the web view, using the given
pasteboard.

(-[DragAndDropSimulator setExternalDragImage:]):
(-[DragAndDropSimulator externalDragImage]):

May be optionally set when specifying an external drag pasteboard to specify the drag image used. If no external
drag image is specified, falls back to the default image returned by defaultExternalDragImage().

(-[DragAndDropSimulator draggingInfo]):
(-[DragAndDropSimulator willEndDraggingHandler]):
(-[DragAndDropSimulator setWillEndDraggingHandler:]):

Hook to allow tests to run logic right before performing the drop (if the current drag operation is not none) or
ending the drag session without performing a drag operation.

(-[DragAndDropSimulator initWithWebView:]): Deleted.
(-[DragAndDropSimulator dealloc]): Deleted.
(-[DragAndDropSimulator phase]): Deleted.

  • TestWebKitAPI/mac/TestDraggingInfo.h: Copied from Tools/TestWebKitAPI/mac/DragAndDropSimulatorMac.mm.
  • TestWebKitAPI/mac/TestDraggingInfo.mm: Added.

Mock object conforming to NSDraggingInfo that is passed to WKWebView when invoking -draggingUpdated:,
-draggingEntered: and -draggingExited:.

(-[TestDraggingInfo draggingPasteboard]):
(-[TestDraggingInfo setDraggingPasteboard:]):
(-[TestDraggingInfo draggingSource]):
(-[TestDraggingInfo setDraggingSource:]):
(-[TestDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
(-[TestDraggingInfo draggingDestinationWindow]):
(-[TestDraggingInfo draggedImage]):
(-[TestDraggingInfo setDraggedImage:]):
(-[TestDraggingInfo slideDraggedImageTo:]):
(-[TestDraggingInfo namesOfPromisedFilesDroppedAtDestination:]):
(-[TestDraggingInfo resetSpringLoading]):

Empty method stubs, to be implemented in the future as needed.

1:18 PM Changeset in webkit [234815] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Remove unused code in CSSParserSelector/CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=188528

Reviewed by Simon Fraser.

  • css/CSSSelector.cpp:
  • css/CSSSelector.h:

(WebCore::CSSSelector::serializingValue const):
(WebCore::CSSSelector::setAttributeValueMatchingIsCaseInsensitive): Deleted.

  • css/parser/CSSParserSelector.h:

(WebCore::CSSParserSelector::setAttributeValueMatchingIsCaseInsensitive): Deleted.

1:17 PM Changeset in webkit [234814] by achristensen@apple.com
  • 8 edits in trunk/Source/WebCore

Modernize CSSSelectorList a little
https://bugs.webkit.org/show_bug.cgi?id=188527

Reviewed by Simon Fraser.

No change in behavior. Just use make_unique and move semantics a little more.

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::adoptSelectorVector): Deleted.

  • css/CSSSelectorList.h:
  • css/StyleRule.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parsePageSelector):

  • css/parser/CSSParserSelector.cpp:

(WebCore::CSSParserSelector::adoptSelectorVector):

  • css/parser/CSSParserSelector.h:
  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumeComplexSelectorList):
(WebCore::CSSSelectorParser::consumeCompoundSelectorList):
(WebCore::CSSSelectorParser::consumePseudo):

1:01 PM Changeset in webkit [234813] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix linux build after r234811
https://bugs.webkit.org/show_bug.cgi?id=188501

  • UIProcess/API/glib/WebKitWebsiteData.cpp:

(recordContainsSupportedDataTypes):

12:52 PM Changeset in webkit [234812] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Added Thomas Denney to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=188525

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-13
Reviewed by Myles C. Maxfield.

  • Scripts/webkitpy/common/config/contributors.json:
12:16 PM Changeset in webkit [234811] by Antti Koivisto
  • 10 edits in trunk

Meaning of OptionSet::contains is unclear when used with OptionSet argument
https://bugs.webkit.org/show_bug.cgi?id=188501

Reviewed by Anders Carlsson.

Source/WebCore:

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::possiblyHasMarkers):

  • dom/DocumentMarkerController.h:

(WebCore::DocumentMarkerController::hasMarkers const):

  • platform/FileSystem.h:

(WebCore::FileSystem::openAndLockFile):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionColor const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintForegroundForFragments):

Source/WTF:

The existing behavior is "contains any" but it is not very clear from the name.

  • wtf/OptionSet.h:

(WTF::OptionSet::contains const):

This is now for testing a single option only.

(WTF::OptionSet::containsAny const):
(WTF::OptionSet::containsAll const):

Add separate functions for OptionSet argument.

Tools:

  • TestWebKitAPI/Tests/WTF/OptionSet.cpp:

(TestWebKitAPI::TEST):

11:42 AM Changeset in webkit [234810] by commit-queue@webkit.org
  • 23 edits
    5 deletes in trunk

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

plugin processes crash on launch (Requested by smfr on
#webkit).

Reverted changeset:

"We should cache the compiled sandbox profile in a data vault"
https://bugs.webkit.org/show_bug.cgi?id=184991
https://trac.webkit.org/changeset/234747

11:33 AM Changeset in webkit [234809] by Wenson Hsieh
  • 6 edits
    1 add in trunk

[iOS] Dragging a non-editable text selection into a plain text input inserts HTML markup
https://bugs.webkit.org/show_bug.cgi?id=188485
<rdar://problem/43168784>

Reviewed by Tim Horton.

Source/WebCore:

Before r223678, -typeIdentifiersToLoadForRegisteredTypeIdentifiers:, which is responsible for determining which
type identifiers to load upon performing a drop, returned the following when dropping a rich text selection onto
a textarea:

"public.plain-text",
"public.html"

After r223678, we now propagate a custom pasteboard data type when dragging, and the same list now looks like:

"com.apple.WebKit.custom-pasteboard-data",
"public.html",
"public.plain-text"

Subsequently, logic in -_preLoadedDataConformingToType:… (responsible for mapping a requested type identifier
to data that has been loaded from an item provider) iterates through the aforementioned list of type identifiers
and selects the data of the first type identifier in the list that conforms to the requested type identifier.
However, this list of type identifiers is currently the result of -[NSSet allObjects], which means that the
type identifiers in the list are in no particular order!

As such, this particular use case only worked by accident prior to r223678, and after that change, this latent
bug was surfaced. The patch here makes two adjustments to pasteboard handling on iOS to fix the bug.

Test: DragAndDropTests.NonEditableTextSelectionToTextarea

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::read):

When reading plain text from the pasteboard, give "public.plain-text" priority over "public.text". This ensures
that we don't end up reading markup as "plain text" when there's already more relevant plain text data present
in the pasteboard.

  • platform/ios/WebItemProviderPasteboard.mm:

(-[WebItemProviderPasteboard typeIdentifiersToLoadForRegisteredTypeIdentifiers:]):

Refactor existing logic to enforce a consistent ordering of type identifiers to load. First, we use
NSMutableOrderedSet instead of just an NSMutableSet to store type identifiers we've added. Secondly, move all
logic to insert type identifiers into this set to the end of the method, where we iterate over all of the type
identifiers in order and add each type identifier to the set if needed. This ensures that the order of resulting
types is from highest to lowest fidelity.

(-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]):
(-[WebItemProviderPasteboard typeIdentifiersToLoadForRegisteredTypeIdentfiers:]): Deleted.

Fix a typo in the method name.

Tools:

Add a new API test to verify that dropping selected non-editable rich text into a textarea inserts text as
expected, rather than markup.

It's somewhat interesting to note that this particular use case isn't exercised by any existing tests; the
closest test is DragAndDropTests.ContentEditableToTextarea, which drags a rich text selection from a
contenteditable element to a text area. However, due to logic in DragController::concludeEditDrag that handles
drag and drop across editable content differently than drag and drop from non-editable to editable content, the
bug that is fixed here doesn't surface in that existing test.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/selected-text-and-textarea.html: Added.
  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::TEST):

11:19 AM Changeset in webkit [234808] by commit-queue@webkit.org
  • 78 edits in trunk

Use a 1-byte enum class for TextDirection
https://bugs.webkit.org/show_bug.cgi?id=188350

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-13
Reviewed by Simon Fraser.

Source/WebCore:

  • Modules/notifications/Notification.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextDirection const):

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::matchAllRules):

  • dom/Document.cpp:

(WebCore::Document::updateTitleFromTitleElement):
(WebCore::Document::setTitle):

  • dom/Position.cpp:

(WebCore::Position::primaryDirection const):

  • dom/Range.cpp:

(WebCore::Range::collectSelectionRectsWithoutUnionInteriorLines const):

  • editing/Editing.cpp:

(WebCore::directionOfEnclosingBlock):

  • editing/Editor.cpp:

(WebCore::Editor::baseWritingDirectionForSelectionStart const):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::willBeModified):
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyExtendingLeft):
(WebCore::FrameSelection::modifyExtendingBackward):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::textSelectionIntent):
(WebCore::FrameSelection::modify):

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):

  • editing/VisibleUnits.cpp:

(WebCore::visualWordPosition):
(WebCore::leftWordPosition):
(WebCore::rightWordPosition):
(WebCore::leftBoundaryOfLine):
(WebCore::rightBoundaryOfLine):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::directionalityIfhasDirAutoAttribute const):
(WebCore::HTMLElement::directionality const):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setupDateTimeChooserParameters):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::directionForFormData const):
(WebCore::HTMLTextFormControlElement::adjustInnerTextStyle const):

  • html/HTMLTitleElement.cpp:

(WebCore::HTMLTitleElement::computedTextWithDirection):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::toTextDirection const):
(WebCore::CanvasRenderingContext2D::direction const):
(WebCore::CanvasRenderingContext2D::textOffset):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::RenderSliderContainer::layout):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerElement::resolveCustomStyle):

  • page/Chrome.cpp:

(WebCore::Chrome::setToolTip):

  • page/FrameView.cpp:

(WebCore::paginationModeForRenderStyle):

  • page/Settings.yaml:
  • platform/RectEdges.h:

(WebCore::RectEdges::start):
(WebCore::RectEdges::end):
(WebCore::RectEdges::start const):
(WebCore::RectEdges::end const):
(WebCore::RectEdges::setStart):
(WebCore::RectEdges::setEnd):

  • platform/UserInterfaceLayoutDirection.h:
  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::computeExpansionOpportunity):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::expansionOpportunityCountInternal):
(WebCore::FontCascade::leadingExpansionOpportunity):
(WebCore::FontCascade::trailingExpansionOpportunity):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawBidiText):

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):
(WebCore::TextRun::rtl const):
(WebCore::TextRun::ltr const):
(WebCore::TextRun::setDirection):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::WidthIterator):

  • platform/ios/SelectionRect.cpp:

(WebCore::SelectionRect::SelectionRect):

  • platform/text/BidiResolver.h:

(WebCore::BidiStatus::BidiStatus):

  • platform/text/StringWithDirection.h:
  • platform/text/WritingMode.h:

(WebCore::isLeftToRightDirection):
(WebCore::isVerticalWritingMode):
(WebCore::isFlippedWritingMode):
(WebCore::mapLogicalSideToPhysicalSide):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::spellingToolTip const):
(WebCore::HitTestResult::title const):
(WebCore::HitTestResult::innerTextIfTruncated const):

  • rendering/InlineBox.h:

(WebCore::InlineBox::direction const):
(WebCore::InlineBox::isLeftToRightDirection const):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paintFillLayer):

  • rendering/InlineIterator.h:

(WebCore::embedCharFromDirection):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):
(WebCore::mirrorRTLSegment):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::constructTextRun):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::determineDirectionality):
(WebCore::RenderBlockFlow::textAlignmentForLine const):
(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
(WebCore::RenderBlockFlow::handleTrailingSpaces):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):

  • rendering/RenderBox.cpp:

(WebCore::computeInlineStaticDistance):
(WebCore::RenderBox::computePositionedLogicalWidthUsing const):
(WebCore::RenderBox::computePositionedLogicalWidthReplaced const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::updateLogicalWidth):
(WebCore::RenderFragmentedFlow::updateFragmentsFragmentedFlowPortionRect):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::shouldPlaceBlockDirectionScrollbarOnLeft const):

  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::direction const):

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):
(RenderMenuList::clientPaddingLeft const):
(RenderMenuList::clientPaddingRight const):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::popupInternalPaddingBox const):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuListButtonDecorations):
(WebCore::RenderThemeMac::popupInternalPaddingBox const):
(WebCore::RenderThemeMac::setPopupButtonCellState):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::mirrorIfNeeded const):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::layoutBlock):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::isLeftToRightDirection const):
(WebCore::RenderStyle::initialDirection):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::systemLayoutDirection):
(WebCore::InternalSettings::setSystemLayoutDirection):

  • testing/Internals.h:

Source/WebKit:

  • Shared/WebPopupItem.cpp:

(WebKit::WebPopupItem::WebPopupItem):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView webSelectionRectsForSelectionRects:]):

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::populate):
(WebKit::WebPopupMenuProxyMac::showPopupMenu):

  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:

(WebKit::WebPopupMenu::show):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame selectionRectsForCoreRange:]):

  • WebCoreSupport/WebVisiblePosition.mm:

(-[WebVisiblePosition textDirection]):
(-[WebVisiblePosition directionIsDownstream:]):

  • WebView/WebPDFViewIOS.mm:

(-[WebPDFView _checkPDFTitle]):

Source/WebKitLegacy/mac:

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::populate):
(PopupMenuMac::show):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebView/WebFrame.mm:

(-[WebFrame _dispatchDidReceiveTitle:]):

Tools:

  • TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp:

(WebCore::operator<<):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:

(TEST_F):

11:06 AM Changeset in webkit [234807] by Kocsen Chung
  • 2 edits in branches/safari-606.1.36.1-branch/Source/WebCore

Cherry-pick r234766. rdar://problem/43240328

CrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose
https://bugs.webkit.org/show_bug.cgi?id=188461
<rdar://problem/33555052>

Reviewed by Chris Dumez.

When we try to schedule shutdown for database, we should cancel the timer so no
scheduleShutdownForClose will be running after this.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:06 AM Changeset in webkit [234806] by Kocsen Chung
  • 4 edits in branches/safari-606.1.36.1-branch/Source

Cherry-pick r234778. rdar://problem/43240324

[macOS] Multiple third party apps crash due to the thread safety check in TimerBase::setNextFireTime
https://bugs.webkit.org/show_bug.cgi?id=188480

Reviewed by Simon Fraser.

Source/WebCore:

Suppress the release assert in WebKit1 on macOS (isInWebProcess is always true in non-Cocoa platforms).

In the future, we should consider throwing Objective-C exceptions when third party apps call WebKit1
or WebKit2 APIs in non-main threads.

  • platform/Timer.cpp: (WebCore::shouldSuppressThreadSafetyCheck): Extracted out of ~TimerBase and setNextFireTime. (WebCore::TimerBase::~TimerBase): (WebCore::TimerBase::setNextFireTime):

Source/WTF:

Added the SDK version for macOS Mojave.

  • wtf/spi/darwin/dyldSPI.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234778 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:46 AM Changeset in webkit [234805] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Unreviewed, silence "enumeral and non-enumeral type in conditional expression" warning

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchActivityStateChange):

9:46 AM Changeset in webkit [234804] by Ryan Haddad
  • 50 edits
    98 adds in trunk/LayoutTests

[iOS] Rebaseline and re-enable svg tests
https://bugs.webkit.org/show_bug.cgi?id=180459

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:

[ truncated ]

9:39 AM Changeset in webkit [234803] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Followup (r234683): Element::getAttribute() should return the first non-null attribute value
https://bugs.webkit.org/show_bug.cgi?id=188419

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-08-13
Reviewed by Darin Adler.

Source/WebCore:

Element::getAttribute() should return the first non-null attribute value
since an empty string is a legitimate attribute value.

Test: svg/custom/href-svg-namespace-empty.html

  • dom/Element.h:

(WebCore::Element::getAttribute const):

LayoutTests:

  • svg/custom/href-svg-namespace-empty-expected.txt: Added.
  • svg/custom/href-svg-namespace-empty.html: Added.
9:21 AM Changeset in webkit [234802] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, since -Wsign-compare warnings in URL.cpp

This regressed in r233798 when m_schemeEnd changed to a bitfield. The code looks safe to
me, so just silence the warnings with casts.

  • platform/URL.cpp:

(WebCore::URL::setHost):
(WebCore::URL::setHostAndPort):
(WebCore::URL::setUser):
(WebCore::URL::setPass):

8:29 AM Changeset in webkit [234801] by Antti Koivisto
  • 16 edits in trunk/Source

Use OptionSet more in editing code
https://bugs.webkit.org/show_bug.cgi?id=188500

Reviewed by Wenson Hsieh.

Typesafe flags.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/Editor.cpp:

(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::selectComposition):
(WebCore::Editor::changeSelectionAfterCommand):
(WebCore::Editor::respondToChangedSelection):

  • editing/Editor.h:

(WebCore::TemporarySelectionChange::TemporarySelectionChange):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::setSelectedRange):

  • editing/FrameSelection.h:

(WebCore::FrameSelection::defaultSetSelectionOptions):

  • editing/MoveSelectionCommand.cpp:

(WebCore::MoveSelectionCommand::doApply):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):

  • editing/ReplaceSelectionCommand.h:

(WebCore::ReplaceSelectionCommand::create):

  • editing/SetSelectionCommand.cpp:

(WebCore::SetSelectionCommand::SetSelectionCommand):

  • editing/SetSelectionCommand.h:

(WebCore::SetSelectionCommand::create):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DragController.cpp:

(WebCore::DragController::concludeEditDrag):

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):

7:48 AM Changeset in webkit [234800] by Alan Bujtas
  • 12 edits
    2 adds in trunk

[LFC][Floating] Add basic clearance support
https://bugs.webkit.org/show_bug.cgi?id=188492

Reviewed by Antti Koivisto.

Source/WebCore:

Adjust final position of a block level box with clearance when float is present.

Test: fast/block/block-only/floating-left-and-right-with-clearance.html

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::toContainingBlock const):
(WebCore::Layout::FloatingContext::computePosition const): Deleted.

  • layout/FloatingContext.h:
  • layout/FloatingState.cpp:

(WebCore::Layout::FloatingState::bottom const):

  • layout/FloatingState.h:

(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):

  • layout/blockformatting/BlockFormattingContext.cpp:

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

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::hasClearance const):

  • layout/layouttree/LayoutBox.h:

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

  • fast/block/block-only/floating-left-and-right-with-clearance-expected.txt: Added.
  • fast/block/block-only/floating-left-and-right-with-clearance.html: Added.
6:31 AM Changeset in webkit [234799] by yusukesuzuki@slowstart.org
  • 5 edits in trunk

Expose CloseEvent and CustomEvent to workers
https://bugs.webkit.org/show_bug.cgi?id=188493

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:

Source/WebCore:

This patch exposes CloseEvent and CustomEvent to workers.
It is OK since they do not depend on things in the main thread.
For example, we cannot expose FormData right now since it depends
on Page.

We do not expose PromiseRejectionEvent in this patch since it will
be done in [1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=188265

  • Modules/websockets/CloseEvent.idl:
  • dom/CustomEvent.idl:
6:18 AM Changeset in webkit [234798] by commit-queue@webkit.org
  • 12 edits
    40 adds in trunk

[css-logical] Implement flow-relative margin, padding, border and sizing properties
https://bugs.webkit.org/show_bug.cgi?id=188386

Patch by Oriol Brufau <Oriol Brufau> on 2018-08-13
Reviewed by Manuel Rego Casasnovas.

These properties provide the author with the ability to control margins
through logical, rather than physical, direction and dimension mappings.

Only longhand properties and border shorthands for specific sides are
implemented as part of this patch.

The existing prefixed properties become aliases of the new ones.

LayoutTests/imported/w3c:

The new tests are imported from the WPT test suite for CSS Logical
Properties and Values spec.

The tests still have some failures because sideways writing modes have
not been implemented yet.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-logical/META.yml: Added.
  • web-platform-tests/css/css-logical/animation-001-expected.txt: Added.
  • web-platform-tests/css/css-logical/animation-001.html: Added.
  • web-platform-tests/css/css-logical/animation-002-expected.txt: Added.
  • web-platform-tests/css/css-logical/animation-002.html: Added.
  • web-platform-tests/css/css-logical/animation-003.tentative-expected.txt: Added.
  • web-platform-tests/css/css-logical/animation-003.tentative.html: Added.
  • web-platform-tests/css/css-logical/cascading-001-expected.html: Added.
  • web-platform-tests/css/css-logical/cascading-001.html: Added.
  • web-platform-tests/css/css-logical/logical-box-border-color-expected.txt: Added.
  • web-platform-tests/css/css-logical/logical-box-border-color.html: Added.
  • web-platform-tests/css/css-logical/logical-box-border-shorthands-expected.txt: Added.
  • web-platform-tests/css/css-logical/logical-box-border-shorthands.html: Added.
  • web-platform-tests/css/css-logical/logical-box-border-style-expected.txt: Added.
  • web-platform-tests/css/css-logical/logical-box-border-style.html: Added.
  • web-platform-tests/css/css-logical/logical-box-border-width-expected.txt: Added.
  • web-platform-tests/css/css-logical/logical-box-border-width.html: Added.
  • web-platform-tests/css/css-logical/logical-box-inset-expected.txt: Added.
  • web-platform-tests/css/css-logical/logical-box-inset.html: Added.
  • web-platform-tests/css/css-logical/logical-box-margin-expected.txt: Added.
  • web-platform-tests/css/css-logical/logical-box-margin.html: Added.
  • web-platform-tests/css/css-logical/logical-box-padding-expected.txt: Added.
  • web-platform-tests/css/css-logical/logical-box-padding.html: Added.
  • web-platform-tests/css/css-logical/logical-box-size-expected.txt: Added.
  • web-platform-tests/css/css-logical/logical-box-size.html: Added.
  • web-platform-tests/css/css-logical/logicalprops-block-size-expected.txt: Added.
  • web-platform-tests/css/css-logical/logicalprops-block-size-vlr-expected.txt: Added.
  • web-platform-tests/css/css-logical/logicalprops-block-size-vlr.html: Added.
  • web-platform-tests/css/css-logical/logicalprops-block-size.html: Added.
  • web-platform-tests/css/css-logical/logicalprops-inline-size-expected.txt: Added.
  • web-platform-tests/css/css-logical/logicalprops-inline-size-vlr-expected.txt: Added.
  • web-platform-tests/css/css-logical/logicalprops-inline-size-vlr.html: Added.
  • web-platform-tests/css/css-logical/logicalprops-inline-size.html: Added.
  • web-platform-tests/css/css-logical/logicalprops-quirklength-expected.txt: Added.
  • web-platform-tests/css/css-logical/logicalprops-quirklength.html: Added.
  • web-platform-tests/css/css-logical/resources/test-box-properties.js: Added.

(testCSSValues):
(testComputedValues):
(makeDeclaration):

  • web-platform-tests/css/css-logical/resources/w3c-import.log: Added.
  • web-platform-tests/css/css-logical/w3c-import.log: Added.

Source/WebCore:

The change in WebCore::isLayoutDependent fixes an existing issue that
made getComputedStyle provide an old value for -webkit-logical-height
and -webkit-logical-height (see https://crbug.com/849855).

Tests: imported/w3c/web-platform-tests/css/css-logical/animation-001.html

imported/w3c/web-platform-tests/css/css-logical/animation-002.html
imported/w3c/web-platform-tests/css/css-logical/animation-003.tentative.html
imported/w3c/web-platform-tests/css/css-logical/cascading-001.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-inset.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-margin.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-padding.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-size.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-block-size-vlr.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-block-size.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-inline-size-vlr.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-inline-size.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-quirklength.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):

  • css/CSSProperties.json:
  • css/CSSProperty.cpp:

(WebCore::CSSProperty::resolveDirectionAwareProperty):
(WebCore::CSSProperty::isDirectionAwareProperty):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::isSimpleLengthPropertyID):
(WebCore::isColorPropertyID):
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::collectStyleForPresentationAttribute):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeCollapsedStartBorder const):
(WebCore::RenderTableCell::computeCollapsedEndBorder const):
(WebCore::RenderTableCell::computeCollapsedBeforeBorder const):
(WebCore::RenderTableCell::computeCollapsedAfterBorder const):

4:32 AM Changeset in webkit [234797] by zandobersek@gmail.com
  • 2 edits
    41 adds in trunk/LayoutTests

Unreviewed WPE gardening. Cleaned up test expectations for tests under
fast/dom/, unskipping all tests and then adding the failure or timeout
test expectations as appropriate. Missing port-specific baselines are
also included.

  • platform/wpe/TestExpectations:
  • platform/wpe/fast/dom/: Necessary test expectations added.
2:50 AM Changeset in webkit [234796] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed WPE gardening.

Removed an unnecessary block of skipped tests that cover WebCrypto API
support for 521-bit EC keys. All these tests pass.

Removed unnecessary pass directives for imported WPT tests. Moved
related flaky or skipped tests into appropriate sections.

Also adjusted a few other expectations, moving them into the appropriate
section or just removing them for being outdated or duplicates.

  • platform/wpe/TestExpectations:
1:45 AM Changeset in webkit [234795] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed WPE gardening. Adopt test expectation sections similar to the
GTK+ TestExpectations file. Sort some test expectations accordingly,
while the rest of the expectations will follow later.

  • platform/wpe/TestExpectations:
12:15 AM Changeset in webkit [234794] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.20.5

WebKitGTK+ 2.20.5

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

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

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.20.5.

Aug 12, 2018:

11:47 PM Changeset in webkit [234792] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

WebDriver: do not handle prompts that appear while running scripts
https://bugs.webkit.org/show_bug.cgi?id=188468

Reviewed by Žan Doberšek.

This changed in the spec, we should just finish the script without handling the alert at all.
https://github.com/w3c/webdriver/commit/afb578090bc95718debeab6a6821da8d12b952c8

"If at any point during the algorithm a user prompt appears, abort all subsequent substeps of this algorithm,
and return success with data null."
https://w3c.github.io/webdriver/#dfn-execute-a-function-body

  • Session.cpp:

(WebDriver::Session::executeScript):

11:33 PM Changeset in webkit [234791] by sihui_liu@apple.com
  • 8 edits in trunk/Source/WebCore

CrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient(WebCore::IDBServer::UniqueIDBDatabaseConnection&)
https://bugs.webkit.org/show_bug.cgi?id=188474

Reviewed by Chris Dumez.

UniqueIDBDatabaseConnection is refcounted by UniqueIDBDatabaseTransaction and it refcounts
UniqueIDBDatabaseTransaction. This cycle could make UniqueIDBDatabaseConnection outlives
UniqueIDBDatabase, so its reference to UniqueIDBDatabase may be stale. Calling a function
on a stale object is probably the reason of recent various storage process crashes in
indexedDB.

This patch makes m_database a WeakPtr and adds assertions that could help us debug the
crashes.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::confirmDidCloseFromServer):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::createVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::database):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):

  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::openDatabaseSuccess):
(WebCore::IDBResultData::openDatabaseUpgradeNeeded):

7:48 PM Changeset in webkit [234790] by Michael Catanzaro
  • 6 edits in trunk

Unreviewed GTK test gardening

WebDriverTests:

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/forms/color/input-appearance-color-expected.png:
  • platform/gtk/fast/forms/color/input-appearance-color-expected.txt:
5:02 PM Changeset in webkit [234789] by yusukesuzuki@slowstart.org
  • 11 edits
    1 copy in trunk

Break reference cycle in ErrorEvent by using JSValueInWrappedObject
https://bugs.webkit.org/show_bug.cgi?id=188491

Reviewed by Darin Adler.

Source/WebCore:

ErrorEvent should not use Strong<Unkonwn> to hold error JSValue. This patch integrates
JSValueInWrappedObject into ErrorEvent.

  • Modules/webvr/VRDisplayEvent.h:

Fix unified build errors due to added JSErrorEventCustom.cpp. It changes the files grouped in unified build.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSErrorEventCustom.cpp: Copied from Source/WebCore/Modules/webvr/VRDisplayEvent.h.

(WebCore::JSErrorEvent::visitAdditionalChildren):
Add custom mark function for JSValueInWrappedObject.

  • bindings/js/JSEventListener.h:
  • bindings/js/WindowProxy.cpp:

Fix unified build errors due to added JSErrorEventCustom.cpp. It changes the files grouped in unified build.

  • dom/ErrorEvent.cpp:

(WebCore::ErrorEvent::ErrorEvent):
(WebCore::ErrorEvent::error):
(WebCore::ErrorEvent::trySerializeError):
Align the implementation to PushStateEvent::trySerializeState.

  • dom/ErrorEvent.h:
  • dom/ErrorEvent.idl:

LayoutTests:

  • fast/dom/reference-cycle-leaks-expected.txt:
1:19 PM Changeset in webkit [234788] by Aditya Keerthi
  • 28 edits in trunk

[macOS] Color wells should appear pressed when presenting a color picker
https://bugs.webkit.org/show_bug.cgi?id=188477

Reviewed by Tim Horton.

Source/WebCore:

Currently, when clicking on a color well, the color well loses its pressed
appearance once the mouse is lifted. Because of this behavior, the color well
does not appear to be active when the color picker is displayed.

Added the color-well -webkit-appearance value to control the drawing of the color
well separate from other buttons. Also added a new ControlState, named
PresentingState. A control can be in this state whenever it is presenting some
attached view. In the case of the color well this is the color picker. The
Information as to whether a form control is in the presenting state comes from
isPresentingAttachedView() in HTMLInputElement.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/html.css:

(input[type="color"]::-webkit-color-swatch):

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::isPresentingAttachedView const):
(WebCore::ColorInputType::elementDidBlur):
(WebCore::ColorInputType::didEndChooser):

  • html/ColorInputType.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isPresentingAttachedView const):

  • html/HTMLInputElement.h:
  • html/InputType.cpp:

(WebCore::InputType::isPresentingAttachedView const):

  • html/InputType.h:
  • platform/ControlStates.h:
  • platform/ThemeTypes.h:
  • platform/mac/ThemeMac.mm:

(WebCore::updateStates):
(WebCore::setUpButtonCell):
(WebCore::paintColorWell):
(WebCore::ThemeMac::minimumControlSize const):
(WebCore::ThemeMac::controlBorder const):
(WebCore::ThemeMac::paint):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::isControlStyled const):
(WebCore::RenderTheme::extractControlStatesForRenderer const):
(WebCore::RenderTheme::isPresenting const):

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

(WebCore::RenderThemeMac::adjustRepaintRect):

Source/WebInspectorUI:

Add keyword completion for 'color-well'.

  • UserInterface/External/CodeMirror/css.js:
  • UserInterface/Models/CSSKeywordCompletions.js:

Source/WebKit:

In order for the color well to accurately reflect the state of the picker, it is
necessary to ensure that the picker is destroyed at the appropriate time.

Added windowWillClose and didClosePopover delegate methods to destroy the picker
it has been closed. Also added a call to WebColorPicker::endPicker in
WebColorPickerMac's implementation of endPicker to ensure that the object is
destroyed. Removed redundant calls to endPicker in the WebPageProxy.

The hitTest method was overridden in WKPopoverColorWell to ensure that AppKit's
view does not block our drawn color well from receiving click events.

  • UIProcess/WebColorPicker.cpp:

(WebKit::WebColorPicker::endPicker):

  • UIProcess/WebColorPicker.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::endColorPicker):
(WebKit::WebPageProxy::didEndColorPicker):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::closeOverlayedViews):

  • UIProcess/mac/WebColorPickerMac.mm:

(WebKit::WebColorPickerMac::~WebColorPickerMac):
(WebKit::WebColorPickerMac::endPicker):
(-[WKPopoverColorWell popoverDidClose:]):
(-[WKPopoverColorWell hitTest:]):
(-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]):
(-[WKColorPopoverMac invalidate]):
(-[WKColorPopoverMac windowWillClose:]):
(-[WKColorPopoverMac didClosePopover]):

LayoutTests:

Rebaseline tests to match new color-well appearance.

  • platform/mac/fast/forms/color/input-appearance-color-expected.png:
  • platform/mac/fast/forms/color/input-appearance-color-expected.txt:
9:36 AM Changeset in webkit [234787] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Disable JIT on IA-32 without SSE2
https://bugs.webkit.org/show_bug.cgi?id=188476

Patch by Karo Gyoker <karogyoker2+webkit@gmail.com> on 2018-08-12
Reviewed by Michael Catanzaro.

Including missing header (MacroAssembler.h) in case of other
operating systems than Windows too.

  • runtime/Options.cpp:
8:46 AM Changeset in webkit [234786] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC] Float prev/next sibling should prevent top/bottom margin collapsing with parent.
https://bugs.webkit.org/show_bug.cgi?id=188487

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/block/block-only/floating-and-next-previous-inflow-with-margin.html

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::isMarginBottomCollapsedWithParent):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

  • fast/block/block-only/floating-and-next-previous-inflow-with-margin-expected.txt: Added.
  • fast/block/block-only/floating-and-next-previous-inflow-with-margin.html: Added.

Aug 11, 2018:

9:13 PM Changeset in webkit [234785] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Separate queues for Builders and Testers - iOS
https://bugs.webkit.org/show_bug.cgi?id=188396

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/config.json: Splitted iOS queues into builders and testers.

Also added ews121 and ews122 to match with current EWS configuration.

  • BuildSlaveSupport/ews-build/factories.py:

(TestsFactory): Base classes for various Test factories.
(TestsFactory.getProduct): Download and extract the archive.

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

Disable JIT on IA-32 without SSE2
https://bugs.webkit.org/show_bug.cgi?id=188476

Patch by Karo Gyoker <karogyoker2+webkit@gmail.com> on 2018-08-11
Reviewed by Yusuke Suzuki.

On IA-32 CPUs without SSE2 most of the webpages cannot load
if the JIT is turned on.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

7:04 AM Changeset in webkit [234783] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] [pt_BR] Updated Brazilian Portuguese translation
https://bugs.webkit.org/show_bug.cgi?id=188482

Patch by Rafael Fontenelle <rafaelff@gnome.org> on 2018-08-11
Rubber-stamped by Michael Catanzaro.

  • pt_BR.po:

Aug 10, 2018:

11:47 PM Changeset in webkit [234782] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Use OptionSet for various RenderLayer flags
https://bugs.webkit.org/show_bug.cgi?id=188472
<rdar://problem/43153059>

Followup, fix some mistakes.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::~RenderLayerBacking):

7:55 PM Changeset in webkit [234781] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

[Cocoa] WebKit::PlatformPopupMenuData should use member initialization
<https://webkit.org/b/188478>
<rdar://problem/43154363>

Reviewed by Joseph Pecoraro.

  • Shared/PlatformPopupMenuData.cpp:

(WebKit::PlatformPopupMenuData::PlatformPopupMenuData): Delete
implementation. This constructor caused the warning by never
initializing its member variables.

  • Shared/PlatformPopupMenuData.h:

(WebKit::PlatformPopupMenuData::PlatformPopupMenuData):

  • Use default constructor.

(WebKit::PlatformPopupMenuData::shouldPopOver):
(WebKit::PlatformPopupMenuData::hideArrows):
(WebKit::PlatformPopupMenuData::menuSize):

  • Add struct member initialization.
7:43 PM Changeset in webkit [234780] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Web Inspector: console.log fires getters for deep properties
https://bugs.webkit.org/show_bug.cgi?id=187542
<rdar://problem/42873158>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-10
Reviewed by Saam Barati.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(RemoteObject.prototype._isPreviewableObject):
Avoid getters/setters when checking for simple properties to preview.
Here we avoid invoking object[property] if it could be a user getter.

LayoutTests:

  • inspector/injected-script/avoid-getter-invocation-expected.txt: Added.
  • inspector/injected-script/avoid-getter-invocation.html: Added.
7:21 PM Changeset in webkit [234779] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

LayoutTest inspector/worker/debugger-pause.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=164833
<rdar://problem/29295404>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-10
Reviewed by Brian Burg.

  • inspector/worker/debugger-pause.html:

Add a microtask turn to ensure the workerTarget's mainResource is setup.
There were times it might not get setup, but a single turn appears
reliable enough.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:

This test always passes for me in Release and Debug. Reset expectations.

7:01 PM Changeset in webkit [234778] by rniwa@webkit.org
  • 4 edits in trunk/Source

[macOS] Multiple third party apps crash due to the thread safety check in TimerBase::setNextFireTime
https://bugs.webkit.org/show_bug.cgi?id=188480

Reviewed by Simon Fraser.

Source/WebCore:

Suppress the release assert in WebKit1 on macOS (isInWebProcess is always true in non-Cocoa platforms).

In the future, we should consider throwing Objective-C exceptions when third party apps call WebKit1
or WebKit2 APIs in non-main threads.

  • platform/Timer.cpp:

(WebCore::shouldSuppressThreadSafetyCheck): Extracted out of ~TimerBase and setNextFireTime.
(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::setNextFireTime):

Source/WTF:

Added the SDK version for macOS Mojave.

  • wtf/spi/darwin/dyldSPI.h:
4:31 PM Changeset in webkit [234777] by keith_miller@apple.com
  • 6 edits in trunk

Slicing an ArrayBuffer with a long number returns an ArrayBuffer with byteLength zero
https://bugs.webkit.org/show_bug.cgi?id=185127

Reviewed by Saam Barati.

JSTests:

Rebaseline the expectations.

  • test262/expectations.yaml:

Source/JavaScriptCore:

Previously, we would truncate the indicies passed to slice to an
int. This meant that the value was not getting properly clamped
later.

This patch also removes a non-spec compliant check that slice was
passed at least one argument.

  • runtime/ArrayBuffer.cpp:

(JSC::ArrayBuffer::clampValue):
(JSC::ArrayBuffer::clampIndex const):
(JSC::ArrayBuffer::slice const):

  • runtime/ArrayBuffer.h:

(JSC::ArrayBuffer::clampValue): Deleted.
(JSC::ArrayBuffer::clampIndex const): Deleted.

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferProtoFuncSlice):

4:03 PM Changeset in webkit [234776] by Chris Dumez
  • 6 edits
    3 adds in trunk

Crash under NetworkResourceLoader::convertToDownload()
https://bugs.webkit.org/show_bug.cgi?id=188479
<rdar://problem/42201724>

Reviewed by Alex Christensen.

Source/WebKit:

In NetworkResourceLoader::convertToDownload(), if m_networkLoad is null then we're trying
to convert a load that came from the disk cache. Since we do not currently support converting
such a load, cancel the current load and start a fresh download.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::convertToDownload):

LayoutTests:

Add layout test coverage which reproduces the crash by:

  1. Loading a cacheable plugin while plugins are enabled so that the plugin goes into the disk cache
  2. Load the plugin again with plugins disabled so that we try to convert the load to a download
  • http/tests/download/convert-cached-load-to-download-expected.txt: Added.
  • http/tests/download/convert-cached-load-to-download.html: Added.
  • http/tests/plugins/resources/mock-plugin-cacheable.pl: Added.
3:59 PM Changeset in webkit [234775] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.0-branch/Source

Versioning.

3:58 PM Changeset in webkit [234774] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.1-branch/Source

Versioning.

3:35 PM Changeset in webkit [234773] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.1.4

Tag Safari-606.1.36.1.4.

2:55 PM Changeset in webkit [234772] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.0.2

Tag Safari-606.1.36.0.2.

2:53 PM Changeset in webkit [234771] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup: Remove unnecessary code to resume animations from CachedFrameBase::restore()
https://bugs.webkit.org/show_bug.cgi?id=188459

Reviewed by Chris Dumez.

It is unnessary for CachedFrameBase::restore() to explicitly resume animations on the
document as it calls Document::resume(), which already does this.

No functionality changed. So, no new tests.

  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::restore):

2:48 PM Changeset in webkit [234770] by dbates@webkit.org
  • 2 edits in trunk/Tools

webkit-patch setup-git-clone should set Git core editor to commit-log-editor
https://bugs.webkit.org/show_bug.cgi?id=188473

Reviewed by Ryosuke Niwa.

Have "webkit-patch setup-git-clone" set the Git core editor to "perl Tools/Scripts/commit-log-editor --regenerate-log"
so that the Git commit message is generated from the ChangeLog for developers that manually
generate their ChangeLog using prepare-ChangeLog.

  • Scripts/webkitpy/tool/commands/setupgitclone.py:

(SetupGitClone.execute):

1:29 PM Changeset in webkit [234769] by Ross Kirsling
  • 2 edits in trunk/LayoutTests

[WinCairo] More unreviewed gardening.

  • platform/wincairo/TestExpectations:
12:51 PM Changeset in webkit [234768] by Antti Koivisto
  • 13 edits in trunk/Source

Use OptionSet for various RenderLayer flags
https://bugs.webkit.org/show_bug.cgi?id=188472

Reviewed by Simon Fraser.

Source/WebCore:

Typesafe flags.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • page/FrameView.cpp:

(WebCore::updateLayerPositionFlags):
(WebCore::FrameView::paintContents):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositionsAfterLayout):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::paint):
(WebCore::paintForFixedRootBackground):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContentsAndReflection):
(WebCore::RenderLayer::filterPainter const):
(WebCore::RenderLayer::hasFilterThatIsPainting const):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::paintLayerContents):
(RenderLayer::paintLayerByApplyingTransform):
(RenderLayer::paintList):
(RenderLayer::updatePaintingInfoForFragments):
(RenderLayer::paintTransformedLayerIntoFragments):
(RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::paintLayerByApplyingTransform): Deleted.
(WebCore::RenderLayer::paintList): Deleted.
(WebCore::RenderLayer::enclosingPaginationLayerInSubtree const): Deleted.
(WebCore::RenderLayer::collectFragments): Deleted.
(WebCore::RenderLayer::updatePaintingInfoForFragments): Deleted.
(WebCore::RenderLayer::paintTransformedLayerIntoFragments): Deleted.
(WebCore::RenderLayer::paintBackgroundForFragments): Deleted.
(WebCore::RenderLayer::paintForegroundForFragments): Deleted.
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase): Deleted.
(WebCore::RenderLayer::paintOutlineForFragments): Deleted.
(WebCore::RenderLayer::paintMaskForFragments): Deleted.
(WebCore::RenderLayer::paintChildClippingMaskForFragments): Deleted.
(WebCore::RenderLayer::paintOverflowControlsForFragments): Deleted.
(WebCore::RenderLayer::hitTest): Deleted.
(WebCore::RenderLayer::enclosingElement const): Deleted.
(WebCore::RenderLayer::enclosingFragmentedFlowAncestor const): Deleted.
(WebCore::computeZOffset): Deleted.
(WebCore::RenderLayer::createLocalTransformState const): Deleted.
(WebCore::isHitCandidate): Deleted.
(WebCore::RenderLayer::hitTestLayer): Deleted.
(WebCore::RenderLayer::hitTestContentsForFragments const): Deleted.
(WebCore::RenderLayer::hitTestResizerInFragments const): Deleted.
(WebCore::RenderLayer::hitTestTransformedLayerInFragments): Deleted.
(WebCore::RenderLayer::hitTestLayerByApplyingTransform): Deleted.
(WebCore::RenderLayer::hitTestContents const): Deleted.
(WebCore::RenderLayer::hitTestList): Deleted.
(WebCore::RenderLayer::updateClipRects): Deleted.
(WebCore::RenderLayer::clipRects const): Deleted.
(WebCore::RenderLayer::calculateClipRects const): Deleted.
(WebCore::showLayerTree): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateCompositedBounds):
(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
(WebCore::RenderLayerBacking::paintIntoLayer):

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderReplica.cpp:

(WebCore::RenderReplica::paint):

Source/WTF:

  • wtf/MathExtras.h:

(hasOneBitSet):
(hasZeroOrOneBitsSet):
(hasTwoOrMoreBitsSet):

Make constexpr.

  • wtf/OptionSet.h:

(WTF::OptionSet::OptionSet):

Always use constexpr, no need for separate debug versions with C++14.

12:35 PM Changeset in webkit [234767] by Basuke Suzuki
  • 6 edits in trunk/LayoutTests

[LayoutTests] Suppress warning messages generated by the test scripts.
https://bugs.webkit.org/show_bug.cgi?id=188455

Reviewed by Fujii Hironori.

The messages such as warnings shouldn't be out on error log if that can be avoidable.

  • http/tests/cookies/resources/cookie-utility.php:
  • http/tests/xmlhttprequest/resources/access-control-allow-lists.php:
  • http/tests/xmlhttprequest/resources/access-control-basic-get-fail-non-simple.cgi:
  • http/tests/xmlhttprequest/resources/post-echo.cgi:
  • http/tests/xmlhttprequest/web-apps/004-test.cgi:
12:05 PM Changeset in webkit [234766] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

CrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose
https://bugs.webkit.org/show_bug.cgi?id=188461
<rdar://problem/33555052>

Reviewed by Chris Dumez.

When we try to schedule shutdown for database, we should cancel the timer so no
scheduleShutdownForClose will be running after this.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):

11:56 AM Changeset in webkit [234765] by Truitt Savell
  • 5 edits in trunk/Tools

Unreviewed, rolling out r234749.

Caused all perf tests to fail in Sierra

Reverted changeset:

"[webkitpy][Win] LayoutTests: test names should be Unix style,
separated by slash not backslash"
https://bugs.webkit.org/show_bug.cgi?id=187973
https://trac.webkit.org/changeset/234749

11:23 AM Changeset in webkit [234764] by commit-queue@webkit.org
  • 4 edits in trunk/PerformanceTests

Add ability to ignore process prewarming for launch time benchmark
https://bugs.webkit.org/show_bug.cgi?id=188462

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-10
Reviewed by Ryosuke Niwa.

Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.

  • LaunchTime/launch_time.py:

(DefaultLaunchTimeHandler):
(DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
(DefaultLaunchTimeHandler.on_receive_stop_signal):
(DefaultLaunchTimeHandler.do_HEAD):
(DefaultLaunchTimeHandler.do_GET):
(DefaultLaunchTimeHandler.do_POST):
(LaunchTimeBenchmark):
(LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
(LaunchTimeBenchmark.open_tab): Added option to open a blank tab
(LaunchTimeBenchmark.run):

  • LaunchTime/new_tab.py:

(NewTabBenchmark.initialize):
(NewTabBenchmark.run_iteration):
(NewTabBenchmark.will_parse_arguments):
(NewTabBenchmark.did_parse_arguments):
(NewTabBenchmark.ResponseHandler.Handler.get_test_page):
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(NewTabBenchmark):

  • LaunchTime/startup.py:

(StartupBenchmark.ResponseHandler.Handler.get_test_page):
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(StartupBenchmark):

10:42 AM Changeset in webkit [234763] by yusukesuzuki@slowstart.org
  • 5 edits
    2 adds in trunk

Date.UTC should not return NaN with only Year param
https://bugs.webkit.org/show_bug.cgi?id=188378

Reviewed by Keith Miller.

JSTests:

  • ChakraCore.yaml:
  • ChakraCore/test/Date/dateutc.baseline-jsc: Added.
  • stress/date-utc-optional.js: Added.

(shouldBe):

  • test262/expectations.yaml:

Source/JavaScriptCore:

Date.UTC requires one argument for |year|. But the other ones are optional.
This patch fix this handling.

  • runtime/DateConstructor.cpp:

(JSC::millisecondsFromComponents):

10:39 AM Changeset in webkit [234762] by dbates@webkit.org
  • 3 edits
    5 adds in trunk

Once <object> is hidden, its content won't be displayed again if its URL has fragment identifier ("#").
https://bugs.webkit.org/show_bug.cgi?id=187990

Reviewed by Simon Fraser.

Source/WebCore:

Fixes an issue where an HTML object element that behaves like an iframe and references a resource
whose URL contains a fragment would not be repainted when its CSS display property changes.

Rendering of an <object> that behaves like an iframe is handled by a widget (FrameView). When
the CSS display property for an <object> is set to "none" we detach the widget from its renderer
as part of destroying the render tree for the <object>. Subsequently changing the CSS display
to a non-"none"/"contents" value will create a new renderer for <object> R. For an <object> that
behaves like an iframe, we navigate to the resource associated with the <object> reusing the
existing Frame F object created when we first displayed the <object>. Unlike the case where
the URL of the resource does not contain a fragment, navigating to a fragment in the same document
uses a different code path that does not re-associate the FrameView of F with R before it scrolls
the view; => the FrameView of F is not in the view hierarchy. Therefore we do not paint anything
for the content of the <object> and hence the scroll is not observable. Instead we need to ensure
that the FrameView of F installed in the view hierarchy when navigating to an anchor in the same
document.

As a side benefit of this fix we now also repaint an <object> that is programmatically navigated
to a different anchor in the same document.

Tests: fast/repaint/object-as-iframe-hide-and-show-document-at-anchor.html

fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadInSameDocument):

LayoutTests:

Add tests to ensure that we repaint an <object>, whose resource URL contains a fragment, when
its CSS display property changes as well as when its navigated to a different anchor in the same
document.

  • fast/repaint/object-as-iframe-hide-and-show-document-at-anchor-expected.txt: Added.
  • fast/repaint/object-as-iframe-hide-and-show-document-at-anchor.html: Added.
  • fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint-expected.txt: Added.
  • fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint.html: Added.
  • fast/repaint/resources/red-square-on-top-of-green-square.html: Added.
10:08 AM Changeset in webkit [234761] by ajuma@chromium.org
  • 10 edits in trunk

[IntersectionObserver] Implement rootMargin parsing
https://bugs.webkit.org/show_bug.cgi?id=188469

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update expectations for newly passing test cases.

  • web-platform-tests/intersection-observer/observer-attributes-expected.txt:
  • web-platform-tests/intersection-observer/observer-exceptions-expected.txt:

Source/WebCore:

Parse IntersectionObserver's rootMargin argument and throw an exception if it's invalid.
Change the stored rootMargin from a String to a LengthBox so that future patches can
use this value in intersection logic.

Tested by: imported/w3c/web-platform-tests/intersection-observer/observer-attributes.html

imported/w3c/web-platform-tests/intersection-observer/observer-exceptions.html
intersection-observer/intersection-observer-interface.html

  • page/IntersectionObserver.cpp:

(WebCore::parseRootMargin):
(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::rootMargin const):

  • page/IntersectionObserver.h:

(WebCore::IntersectionObserver::create): Deleted.
(WebCore::IntersectionObserver::rootMargin const): Deleted.

  • page/IntersectionObserver.idl:

LayoutTests:

  • intersection-observer/intersection-observer-interface-expected.txt:
  • intersection-observer/intersection-observer-interface.html:
9:46 AM Changeset in webkit [234760] by Kocsen Chung
  • 10 edits in branches/safari-606.1.36.0-branch

Cherry-pick r234730. rdar://problem/43144157

REGRESSION (r232083): WKWebView loses first-party cookies on iOS
https://bugs.webkit.org/show_bug.cgi?id=188443
<rdar://problem/42991584>

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

Source/WebKit:

Revert the change to set sharedCookieStorage for iOS as it is breaking Kayak.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
  • Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode):
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::platformInitializeNetworkProcess):

Tools:

Skip WebKit.WKHTTPCookieStoreWithoutProcessPool on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234730 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:45 AM Changeset in webkit [234759] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Incorrect log message in NetworkSession when creating NetworkDataTask
https://bugs.webkit.org/show_bug.cgi?id=188463

Reviewed by Chris Dumez.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

9:31 AM Changeset in webkit [234758] by david_fenton@apple.com
  • 2 edits in trunk/Tools

Timeouts in TestWebKitAPI.PreferredAudioBufferSize.AudioWithWebAudio and TestWebKitAPI.PreferredAudioBufferSize.WebAudio.
https://bugs.webkit.org/show_bug.cgi?id=188470.

Unreviewed test gardening, disabling the tests.

  • TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:

(TEST_F):

9:26 AM Changeset in webkit [234757] by Truitt Savell
  • 4 edits in trunk/PerformanceTests

Unreviewed, rolling out r234750.

Caused 185 perf test failures.

Reverted changeset:

"Add ability to ignore process prewarming for launch time
benchmark"
https://bugs.webkit.org/show_bug.cgi?id=188462
https://trac.webkit.org/changeset/234750

9:10 AM Changeset in webkit [234756] by commit-queue@webkit.org
  • 7 edits in trunk

Eliminate remaining instances of "ElCapitan" from LayoutTests / Tools
https://bugs.webkit.org/show_bug.cgi?id=188458

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-10
Reviewed by Alex Christensen.

Tools:

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationParser):

  • TestResultServer/static-dashboards/flakiness_dashboard.js:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:02 AM Changeset in webkit [234755] by Ryan Haddad
  • 2 edits in branches/safari-606.1.36.1-branch/Tools

Cherry-pick r234734. rdar://problem/42387347

REGRESSION(r234652): fast/scrolling/rtl-scrollbars-animation-property.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188397

Reviewed by Tim Horton.

After r234652, [NSScroller preferredScrollerStyle] is called in the UI process, and we need to set the same
user defaults related to scrollbars in the UI process as we do in the WebProcess.

  • WebKitTestRunner/mac/main.mm: (setDefaultsToConsistentValuesForTesting):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@234734 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:52 AM Changeset in webkit [234754] by Ryan Haddad
  • 2 edits in branches/safari-606-branch/Tools

Cherry-pick r234734. rdar://problem/42387347

REGRESSION(r234652): fast/scrolling/rtl-scrollbars-animation-property.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188397

Reviewed by Tim Horton.

After r234652, [NSScroller preferredScrollerStyle] is called in the UI process, and we need to set the same
user defaults related to scrollbars in the UI process as we do in the WebProcess.

  • WebKitTestRunner/mac/main.mm: (setDefaultsToConsistentValuesForTesting):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@234734 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:17 AM Changeset in webkit [234753] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebDriver

[GTK][WPE] WebDriver: do not use default browser arguments when browser binary has been provided
https://bugs.webkit.org/show_bug.cgi?id=188465

Reviewed by Žan Doberšek.

We only want to use --automation when no options or no browser binary is provided, because we fallback to
MiniBrowser and we know it needs --automation flag.

  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::launchBrowser): Handle the case of browser arguments being std::nullopt.

  • gtk/WebDriverServiceGtk.cpp:

(WebDriver::WebDriverService::platformParseCapabilities const): Initialize browser arguments to std:nullopt if
browser binary was provided.

  • wpe/WebDriverServiceWPE.cpp:

(WebDriver::WebDriverService::platformParseCapabilities const): Ditto.

12:57 AM Changeset in webkit [234752] by Ross Kirsling
  • 4 edits
    21 adds in trunk/LayoutTests

[WinCairo] Unreviewed layout test gardening.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/editing/selection/5057506-expected.png: Added.
  • platform/wincairo/editing/selection/caret-ltr-right-expected.txt:
  • platform/wincairo/editing/selection/caret-rtl-right-expected.txt:
  • platform/wincairo/editing/selection/doubleclick-crash-expected.txt: Added.
  • platform/wincairo/editing/selection/editable-links-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-by-character-006-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-by-sentence-001-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-by-word-001-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-inside-transforms-backward-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-inside-transforms-forward-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-selection-bidi-expected.txt: Added.
  • platform/wincairo/editing/selection/focus-body-expected.txt: Added.
  • platform/wincairo/editing/selection/move-by-line-001-expected.txt: Added.
  • platform/wincairo/editing/selection/move-by-word-001-expected.txt: Added.
  • platform/wincairo/editing/selection/select-all-001-expected.txt: Added.
  • platform/wincairo/editing/selection/select-all-002-expected.txt: Added.
  • platform/wincairo/editing/selection/select-all-003-expected.txt: Added.
  • platform/wincairo/editing/selection/select-all-004-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-001-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-002-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-003-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-004-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-005-expected.txt: Added.
Note: See TracTimeline for information about the timeline view.