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

Timeline



Jan 15, 2018:

11:03 PM Changeset in webkit [226963] by Matt Baker
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: TabBar redesign: add context menu to TabBar for toggling available tabs
https://bugs.webkit.org/show_bug.cgi?id=181448
<rdar://problem/36383298>

Reviewed by Devin Rousso.

  • UserInterface/Base/Main.js:

(WI.loaded):
(WI.contentLoaded):
Reorder production tab classes and default (open) tabs.
(WI.registerTabClass): Removed.
Not used.

  • UserInterface/Base/Object.js:

Remove notification that is no longer used.

  • UserInterface/Views/GeneralTabBarItem.js:

(WI.GeneralTabBarItem):
(WI.GeneralTabBarItem.prototype.set title):
(WI.GeneralTabBarItem.prototype._handleContextMenuEvent): Deleted.
Remove per-tab context menu (provided Close Tab and Close Other Tabs).

  • UserInterface/Views/NewTabContentView.js:

(WI.NewTabContentView):

  • UserInterface/Views/TabBar.js:

(WI.TabBar):
(WI.TabBar.prototype._handleContextMenu):

  • UserInterface/Views/TabBrowser.js:

(WI.TabBrowser):
(WI.TabBrowser._handleNewTabContextMenu): Deleted.
No longer needed.

10:44 PM Changeset in webkit [226962] by yoav@yoav.ws
  • 4 edits
    2 adds in trunk

Support for preconnect Link headers
https://bugs.webkit.org/show_bug.cgi?id=181657

Reviewed by Darin Adler.

Source/WebCore:

Move the preconnect functionality into its own function, and
also call this function when Link headers are processed.

Test: http/tests/preconnect/link-header-rel-preconnect-http.php

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLinksFromHeader): Call preconnect.
(WebCore::LinkLoader::preconnect): Preconnect to a host functionality moved here.
(WebCore::LinkLoader::preload): Renamed preloadIfNeeded to preload.
(WebCore::LinkLoader::loadLink): Call preconnect.

  • loader/LinkLoader.h:

LayoutTests:

Add test to see Link preconnect headers trigger a connection.

  • http/tests/preconnect/link-header-rel-preconnect-http-expected.txt: Added.
  • http/tests/preconnect/link-header-rel-preconnect-http.php: Added.
6:47 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
6:46 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
6:44 PM Changeset in webkit [226961] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Unreviewed GTK layout test gardening

6:36 PM Changeset in webkit [226960] by rniwa@webkit.org
  • 2 edits in trunk/Websites/browserbench.org

ΩUpdate the default hyperlink for Speedometer to Speedometer 2.0.

Rubber-stamped by Saam Barati.

  • index.html:
6:20 PM Changeset in webkit [226959] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed, add Thibault to contributors.json

It's a bit weird to add someone here before their first contribution, but this affects
Bugzilla autocomplete, and that is serious business.

  • Scripts/webkitpy/common/config/contributors.json:
3:49 PM Changeset in webkit [226958] by Michael Catanzaro
  • 14 edits in trunk/Source

Improve use of ExportMacros
https://bugs.webkit.org/show_bug.cgi?id=181652

Reviewed by Konstantin Tokarev.

Source/bmalloc:

Disable BEXPORT on Linux ports.

  • bmalloc/BExport.h: Check for BUSE(EXPORT_MACROS).
  • bmalloc/BPlatform.h: Add BUSE(EXPORT_MACROS) and define it on macOS and iOS.

Source/JavaScriptCore:

  • API/JSBase.h: Update a comment.
  • inspector/InspectorBackendDispatcher.h: Use a better, yet equivalent, WTF macro.
  • runtime/JSExportMacros.h: Simplify the #defines in this file.

Source/WebCore:

Remove a comment.

  • platform/PlatformExportMacros.h:

Source/WebCore/PAL:

Remove a comment.

  • pal/ExportMacros.h:

Source/WTF:

  • wtf/ExportMacros.h: Simplify the #defines in this file.
  • wtf/Platform.h: Remove unneeded define. Remove comment that expects all ports to eventually enable the export macros. WPE will never want these. We don't currently want them for GTK either, though how we link GTK has been in flux recently.
2:56 PM Changeset in webkit [226957] by Konstantin Tokarev
  • 3 edits
    3 adds in trunk

image-rendering should affect scaling of border-image
https://bugs.webkit.org/show_bug.cgi?id=169440

Reviewed by Michael Catanzaro.

Source/WebCore:

Test: fast/borders/border-image-pixelated.html

  • rendering/style/NinePieceImage.cpp:

(WebCore::NinePieceImage::paint):

LayoutTests:

  • fast/borders/border-image-pixelated-expected.html: Added.
  • fast/borders/border-image-pixelated.html: Added.
  • fast/borders/resources/border-image-pixelated.png: Added.
2:02 PM Changeset in webkit [226956] by jfbastien@apple.com
  • 9 edits in trunk

Remove makePoisonedUnique
https://bugs.webkit.org/show_bug.cgi?id=181630
<rdar://problem/36498623>

Reviewed by Mark Lam.

Source/JavaScriptCore:

I added a conversion from std::unique_ptr, so we can just use
std::make_unique and it'll auto-poison when converted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::makePoisonedUnique): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::makePoisonedUnique): Deleted.

Source/WTF:

I added a conversion from std::unique_ptr, so we can just use
std::make_unique and it'll auto-poison when converted.

  • wtf/PoisonedUniquePtr.h:

(WTF::makePoisonedUnique): Deleted.

Tools:

Update tests.

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp:

(TestWebKitAPI::TEST):

1:24 PM Changeset in webkit [226955] by tpopela@redhat.com
  • 2 edits in trunk/Source/WebCore

2.19.3 ACCELERATED_2D_CANVAS support is broken
https://bugs.webkit.org/show_bug.cgi?id=180799

Reviewed by Michael Catanzaro.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::didDraw):

1:21 PM Changeset in webkit [226954] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Curl] Enable HTTP/2
https://bugs.webkit.org/show_bug.cgi?id=181551

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-01-15
Reviewed by Michael Catanzaro.

Start supporting HTTP/2 protocol. The first step is just enabling the HTTP/2 on Curl backend.
Next step will be to enable multiplexing feature.

No new tests because we don't have HTTP/2 test backend yet.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlContext::isHttp2Enabled const):
(WebCore::CurlHandle::enableHttp):
(WebCore::CurlHandle::enableHttpGetRequest):
(WebCore::CurlHandle::enableHttpHeadRequest):
(WebCore::CurlHandle::enableHttpPostRequest):
(WebCore::CurlHandle::enableHttpPutRequest):
(WebCore::CurlHandle::setHttpCustomRequest):

  • platform/network/curl/CurlContext.h:
12:43 PM Changeset in webkit [226953] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

Use a helper function for checked arithmetic in WebGL validation
https://bugs.webkit.org/show_bug.cgi?id=181620
<rdar://problem/36485879>

Reviewed by Eric Carlson.

Eric recommended using a templated helper function to do
a common arithmetic check in WebGL validation.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::validateIndexArrayConservative):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::validateIndexArrayConservative):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::validateDrawArrays):
(WebCore::WebGLRenderingContextBase::validateSimulatedVertexAttrib0):
(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0):

  • html/canvas/WebGLRenderingContextBase.h:

(WebCore::WebGLRenderingContextBase::checkedAddAndMultiply): New helper.

11:16 AM Changeset in webkit [226952] by dino@apple.com
  • 6 edits in trunk/Source/WebCore

Use traits for animation timing functions
https://bugs.webkit.org/show_bug.cgi?id=181651
<rdar://problem/36525328>

Reviewed by Antoine Quint.

Use the type traits for TimingFunction classes, so
we can is<> and downcast<>.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createTimingFunctionValue):

  • platform/animation/TimingFunction.cpp:

(WebCore::TimingFunction::transformTime const):

  • platform/animation/TimingFunction.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::animationHasStepsTimingFunction):
(WebCore::animationHasFramesTimingFunction):

  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(WebCore::toCAMediaTimingFunction):

9:54 AM Changeset in webkit [226951] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

RealtimeMediaSource should be ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=181649

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-15
Reviewed by Eric Carlson.

Difficult to write a test as this is really racy.
RealtimeIncomingVideoSourceCocoa::OnFrame is taking a reference on a background thread
to send a task to the main thread.
This requires it to be thread safe ref counted.

  • platform/mediastream/RealtimeMediaSource.h:
9:36 AM Changeset in webkit [226950] by Adrian Perez de Castro
  • 3 edits in trunk/Tools

[GTK][JHBuild] Tools/gtk/install-dependencies: Package libxfont does not exist anymore in Arch Linux
https://bugs.webkit.org/show_bug.cgi?id=181476

Reviewed by Michael Catanzaro.

Update to xorg-server 1.19.6 which depends on libxfont2, and change
the lists of packages to install libxfont2-devel (or equivalent).

  • gtk/install-dependencies:
  • gtk/jhbuild.modules:
7:49 AM Changeset in webkit [226949] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening

  • platform/gtk/TestExpectations: Skip

media/media-fullscreen-pause-inline.html as advised by Eric
Carlson.

7:27 AM Changeset in webkit [226948] by Philippe Normand
  • 5 edits in trunk

Prevent useless MediaPlayer mute state notifications
https://bugs.webkit.org/show_bug.cgi?id=181646

Reviewed by Carlos Garcia Campos.

Source/WebCore:

On GTK port the mute change notification was triggering the test
runner to think the whole page mute state had changed and that
media elements were muted. The simplest solution is to propagate
the notification only if the state actually changed.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::muteChanged): Propagate mute notification
only if the mute state actually changed.

LayoutTests:

Unflag tests depending on muted state and media session
restrictions, most of those are now passing.

  • platform/gtk/TestExpectations:
  • platform/gtk/media/video-controls-no-scripting-expected.txt:
2:50 AM Changeset in webkit [226947] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] Don't wait for draw condition variable when shutting down.
https://bugs.webkit.org/show_bug.cgi?id=180978

Patch by Sebastian Dröge <sebastian@centricular.com> on 2018-01-15
Reviewed by Carlos Garcia Campos.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

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

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

By also waiting for the draw condition variable while shutting down,
it is possible that the GStreamer video sink is waiting for the main
thread to actually render the current frame, while at the same time
the main thread is waiting for the GStreamer video sink to shut down,
resulting in a deadlock.

1:36 AM Changeset in webkit [226946] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

ASSERTION FAILED: m_ptr under WebKit::CacheStorage::Caches::writeRecord
https://bugs.webkit.org/show_bug.cgi?id=181401
<rdar://problem/36379022>

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-15
Reviewed by Darin Adler.

m_isInitialized is true but m_storage is set to nullptr when calling writeRecord.
The only case seems to be if:

  • We are doing persistent storage
  • We are traversing the storage to do the initialization. At that point m_storage is set to a correct value.
  • clearMemoryRepresentation is called, thus setting m_storage to nullptr and m_isInitialized to false.

We fix this by making clearMemoryRepresentation a no-op if we are initializing the caches.
clearMemoryRepresentation is about cleaning the in-memory information of the caches and the memory representation is empty at init time.
Nullifying m_storage is a memory consumption optimization.

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::clearMemoryRepresentation):

12:45 AM Changeset in webkit [226945] by Michael Catanzaro
  • 5 edits
    1 delete in trunk

REGRESSION(r226266): [GTK] RELEASE_ASSERT(reservedZoneSize >= minimumReservedZoneSize) in JSC::VM::updateStackLimits
https://bugs.webkit.org/show_bug.cgi?id=181438
<rdar://problem/36376724>

Reviewed by Carlos Garcia Campos.

.:

Build JSC as a shared library.

Stop using -fvisibility=hidden. This is a shame, but it is causing problems that I don't
know how to fix.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitCompilerFlags.cmake:

Source/JavaScriptCore:

Roll out the functional changes of r226266. We'll keep the minor CMake library type setting
cleanup, but we have to switch back to building JSC only as a shared library, and we have to
get rid of the version script.

  • PlatformGTK.cmake:
  • javascriptcoregtk-symbols.map: Removed.
12:17 AM Changeset in webkit [226944] by Carlos Garcia Campos
  • 4 edits
    3 adds in trunk/Tools

[GTK][WPE] Add support for unit test expectations
https://bugs.webkit.org/show_bug.cgi?id=181589

Reviewed by Michael Catanzaro.

We currently have a way to skip tests by annotating them in the api test runner script. The main problem of this
approach is that we skip tests when they fail in the bots and we never notice if they stop failing, keeping the
tests skipped forever. This is indeed the case of several WebKit2 C API tests. Annotating skipped tests in the
script itself is not a good idea either.

This patch adds a generic TestExpectations class for simple tests based on tests with subtests, like our unit
tests, but also WebDriver tests. It parses a json file with the tests and subtests expectations and provides
convenient methods to query them.

  • Scripts/run-gtk-tests:

(GtkTestRunner): Remove all Skipped and Slow tests marked here.

  • Scripts/run-wpe-tests:

(WPETestRunner): Ditto.

  • Scripts/webkitpy/common/test_expectations.py: Added.

(TestExpectations):
(TestExpectations.init):
(TestExpectations._port_name_for_expected):
(TestExpectations._expected_value):
(TestExpectations.skipped_tests):
(TestExpectations.skipped_subtests):
(TestExpectations._expectation_value):
(TestExpectations.is_slow):
(TestExpectations.get_expectation):

  • Scripts/webkitpy/common/test_expectations_unittest.py: Added.

(MockTestExpectations):
(MockTestExpectations.init):
(MockTestExpectations.is_skip):
(ExpectationsTest):
(assert_exp):
(assert_not_exp):
(assert_bad_exp):
(assert_skip):
(test_basic):
(test_skip):
(test_flaky):
(test_build_type):

  • TestWebKitAPI/glib/TestExpectations.json: Added.
  • glib/api_test_runner.py:

(TestRunner): Remove SkippedTest implementation.
(TestRunner.init): Create a TestExpectations.
(TestRunner._test_cases_to_skip): Use TestExpectations to check skipped tests.
(TestRunner._should_run_test_program): Ditto.
(TestRunner._run_test_glib): Use TestExpectations to check if test suite is slow.
(TestRunner._run_test_glib.parse_line.set_test_result): Register also tests passing.
(TestRunner._run_google_test): Use TestExpectations to check if test cases is slow and register tests passing.
(TestRunner.run_tests): Check if actual result is the expected one and register also unexpected passes.
(TestRunner.run_tests.report): Helper to write report to stdout.

Jan 14, 2018:

3:02 PM Changeset in webkit [226943] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

[macOS] [WK2] Unskip some consistently-passing tests
https://bugs.webkit.org/show_bug.cgi?id=181226
<rdar://problem/23023848>

Reviewed by Simon Fraser.

According to the flakiness dashboard, these tests consistently pass now.

  • platform/mac-wk2/TestExpectations:
11:43 AM Changeset in webkit [226942] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. r226928 broke the CLOOP build. This patch fixes the CLOOP build.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromLLInt):
(JSC::CallLinkStatus::computeExitSiteData):

Jan 13, 2018:

11:16 PM Changeset in webkit [226941] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Extend testing added in r226842
https://bugs.webkit.org/show_bug.cgi?id=181634

Reviewed by Darin Adler.

I have verified that the behavior is consistent with Chrome and Firefox.

  • fast/dom/Window/window-opener-shadowing-expected.txt:
  • fast/dom/Window/window-opener-shadowing.html:
10:11 PM Changeset in webkit [226940] by mark.lam@apple.com
  • 62 edits
    1 move
    2 deletes in trunk

Replace all use of ConstExprPoisoned with Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=181542
<rdar://problem/36442138>

Reviewed by JF Bastien.

Source/JavaScriptCore:

  1. All JSC poisons are now defined in JSCPoison.h.
  1. Change all clients to use the new poison values via the POISON() macro.
  1. The LLInt code has been updated to handle CodeBlock poison. Some of this code uses the t5 temp register, which is not available on the Windows port. Fortunately, we don't currently do poisoning on the Windows port yet. So, it will just work for now.

When poisoning is enabled for the Windows port, this LLInt code will need a
Windows specific implementation to workaround its lack of a t5 register.

  • API/JSAPIWrapperObject.h:
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.h:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodePtr::emptyValue):
(JSC::MacroAssemblerCodePtr::deletedValue):

  • b3/B3LowerMacros.cpp:
  • b3/testb3.cpp:

(JSC::B3::testInterpreter):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::instructions):
(JSC::CodeBlock::instructions const):
(JSC::CodeBlock::makePoisonedUnique):

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):

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

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/UnlinkedSourceCode.h:
  • runtime/ArrayPrototype.h:
  • runtime/CustomGetterSetter.h:
  • runtime/DateInstance.h:
  • runtime/InternalFunction.h:
  • runtime/JSArrayBuffer.h:
  • runtime/JSCPoison.cpp: Copied from Source/JavaScriptCore/runtime/JSCPoisonedPtr.cpp.

(JSC::initializePoison):

  • runtime/JSCPoison.h:

(): Deleted.

  • runtime/JSCPoisonedPtr.cpp: Removed.
  • runtime/JSCPoisonedPtr.h: Removed.
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::makePoisonedUnique):

  • runtime/JSScriptFetchParameters.h:
  • runtime/JSScriptFetcher.h:
  • runtime/NativeExecutable.h:
  • runtime/StructureTransitionTable.h:

(JSC::StructureTransitionTable::map const):
(JSC::StructureTransitionTable::weakImpl const):

  • runtime/WriteBarrier.h:

(JSC::WriteBarrier::poison):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSWebAssemblyCodeBlock.cpp:

(JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock):

  • wasm/js/JSWebAssemblyCodeBlock.h:
  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/JSWebAssemblyTable.h:
  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunctionBase.h:
  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyToJSCallee.h:
  • wasm/js/WebAssemblyWrapperFunction.h:

Source/WTF:

  1. Removed ConstExprPoisoned and its artifacts.
  1. Consolidated Poisoned into PoisonedImpl. PoisonedImpl is not more.
  1. Changed all clients of ConstExprPoisoned to use Poisoned instead.
  1. Worked around the GCC and Clang compiler bug that confuses an intptr_t& template arg with intptr_t. See use of std::enable_if_t<Other::isPoisoned> in Poisoned.h.
  1. Removed ENABLE(MIXED_POISON) since we now have a workaround (3) that makes it possible to use the mixed poison code.
  1. Also fixed broken implementation of comparison operators in Poisoned.
  • wtf/Bag.h:
  • wtf/DumbPtrTraits.h:

(WTF::DumbPtrTraits::poison):

  • wtf/DumbValueTraits.h:

(WTF::DumbValueTraits::poison):

  • wtf/Poisoned.h:

(WTF::Poisoned::Poisoned):
(WTF::Poisoned::operator== const):
(WTF::Poisoned::operator!= const):
(WTF::Poisoned::operator< const):
(WTF::Poisoned::operator<= const):
(WTF::Poisoned::operator> const):
(WTF::Poisoned::operator>= const):
(WTF::Poisoned::operator=):
(WTF::Poisoned::swap):
(WTF::swap):
(WTF::PoisonedPtrTraits::poison):
(WTF::PoisonedPtrTraits::swap):
(WTF::PoisonedValueTraits::poison):
(WTF::PoisonedValueTraits::swap):
(WTF::PoisonedImpl::PoisonedImpl): Deleted.
(WTF::PoisonedImpl::assertIsPoisoned const): Deleted.
(WTF::PoisonedImpl::assertIsNotPoisoned const): Deleted.
(WTF::PoisonedImpl::unpoisoned const): Deleted.
(WTF::PoisonedImpl::clear): Deleted.
(WTF::PoisonedImpl::operator* const): Deleted.
(WTF::PoisonedImpl::operator-> const): Deleted.
(WTF::PoisonedImpl::bits const): Deleted.
(WTF::PoisonedImpl::operator! const): Deleted.
(WTF::PoisonedImpl::operator bool const): Deleted.
(WTF::PoisonedImpl::operator== const): Deleted.
(WTF::PoisonedImpl::operator!= const): Deleted.
(WTF::PoisonedImpl::operator< const): Deleted.
(WTF::PoisonedImpl::operator<= const): Deleted.
(WTF::PoisonedImpl::operator> const): Deleted.
(WTF::PoisonedImpl::operator>= const): Deleted.
(WTF::PoisonedImpl::operator=): Deleted.
(WTF::PoisonedImpl::swap): Deleted.
(WTF::PoisonedImpl::exchange): Deleted.
(WTF::PoisonedImpl::poison): Deleted.
(WTF::PoisonedImpl::unpoison): Deleted.
(WTF::constExprPoisonRandom): Deleted.
(WTF::makeConstExprPoison): Deleted.
(WTF::ConstExprPoisonedPtrTraits::exchange): Deleted.
(WTF::ConstExprPoisonedPtrTraits::swap): Deleted.
(WTF::ConstExprPoisonedPtrTraits::unwrap): Deleted.
(WTF::ConstExprPoisonedValueTraits::exchange): Deleted.
(WTF::ConstExprPoisonedValueTraits::swap): Deleted.
(WTF::ConstExprPoisonedValueTraits::unwrap): Deleted.

  • wtf/PoisonedUniquePtr.h:

(WTF::PoisonedUniquePtr::PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::operator=):

  • wtf/Ref.h:
  • wtf/RefCountedArray.h:

(WTF::RefCountedArray::RefCountedArray):

  • wtf/RefPtr.h:
  • wtf/WTFAssertions.cpp:

Tools:

  1. Converted tests to using new uintptr_t& poison type.
  2. Added tests for Poisoned comparison operators.
  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/Poisoned.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::initializeTestPoison): Deleted.

  • TestWebKitAPI/Tests/WTF/PoisonedRef.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::passWithRef):

  • TestWebKitAPI/Tests/WTF/PoisonedRefPtr.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::f1):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::poisonedPtrFoo):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp:

(TestWebKitAPI::TEST):

8:06 PM Changeset in webkit [226939] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: properties should never be semitransparent or crossed out while editing
https://bugs.webkit.org/show_bug.cgi?id=180793
<rdar://problem/36038813>

Reviewed by Devin Rousso.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .value.editing):
(.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
(.spreadsheet-style-declaration-editor .property.invalid-name:not(.disabled) .content > *):
(.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .content .value):
(.spreadsheet-style-declaration-editor .property.not-inherited .content > *):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._update):

12:38 PM Changeset in webkit [226938] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: false positive for [whitespace/braces] with os_log format string
<https://webkit.org/b/181606>

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_spacing): Modify regular expression to ignore
os_log format strings like '%{public}'.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest.test_spacing_before_braces): Add os_log
format string test.

7:16 AM Changeset in webkit [226937] by Caio Lima
  • 7 edits
    6 adds in trunk

[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
https://bugs.webkit.org/show_bug.cgi?id=181182

Reviewed by Darin Adler.

JSTests:

  • bigIntTests.yaml:
  • stress/big-int-constructor.js:
  • stress/big-int-prototype-to-string-cast-overflow.js: Added.

(assert):
(assertThrowRangeError):

  • stress/number-prototype-to-string-cast-overflow.js: Added.

(assert):
(assertThrowRangeError):

Source/JavaScriptCore:

Casting double to integer is undefined behavior when the truncation
results into a value that doesn't fit into integer size, according C++
spec[1]. Thus, we are changing bigIntProtoFuncToString and
numberProtoFuncToString to remove these source of undefined behavior.

[1] - http://en.cppreference.com/w/cpp/language/implicit_conversion

  • runtime/BigIntPrototype.cpp:

(JSC::bigIntProtoFuncToString):

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToString):
(JSC::extractRadixFromArgs): Deleted.
(JSC::extractToStringRadixArgument): Added.

4:07 AM Changeset in webkit [226936] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

MathML Lengths should take zoom level into account
https://bugs.webkit.org/show_bug.cgi?id=180029

Patch by Minsheng Liu <lambda@liu.ms> on 2018-01-13
Reviewed by Frédéric Wang.

Source/WebCore:

The patch applies the effective zoom factor to physical units in toUserUnits().

Test: mathml/presentation/mspace-units-with-zoom.html

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::toUserUnits):

LayoutTests:

Add a testcase for MathML lengths where zoom factor is set.

  • mathml/presentation/mspace-units-with-zoom-expected.html: Added.
  • mathml/presentation/mspace-units-with-zoom.html: Added.

Jan 12, 2018:

9:30 PM Changeset in webkit [226935] by Wenson Hsieh
  • 2 edits in trunk/Tools

[macOS] API tests ChangeAttachmentDataUpdatesWithInPlaceDisplay and InPlaceVideoAttachmentInsertionWithinList are failing
https://bugs.webkit.org/show_bug.cgi?id=181626

Reviewed by Joseph Pecoraro.

Make the web view for WKAttachmentTests slightly bigger to avoid size clamping behavior introduced in r226915.
Additionally, write a new API test covering the change in r226915.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(webViewForTestingAttachments):
(TestWebKitAPI::TEST):

8:09 PM Changeset in webkit [226934] by Chris Dumez
  • 5 edits in trunk/Source/WebCore
ASSERTION FAILED: registration
isTerminating() in WebCore::SWServerWorker::skipWaiting()

https://bugs.webkit.org/show_bug.cgi?id=181603
<rdar://problem/36476050>

Reviewed by Youenn Fablet.

No new tests, covered by existing tests that crash flakily.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::terminateWorkerInternal):
If the connection to the context process is gone, make sure we make the worker as terminated
so that it does not stay in Running state and in SWServer::m_runningOrTerminatingWorkers.

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::~SWServerRegistration):
Add assertions to make sure none of the registration's workers are still running when
the registration is destroyed.

(WebCore::SWServerRegistration::updateRegistrationState):
Make sure registration workers that are overwritten are not still running.

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::setState):
If a worker's state is set to redundant, make sure we also terminate it.

5:11 PM Changeset in webkit [226933] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, speculative build fix after r226899.

Add an empty implementation for PageClient::startDrag.

  • UIProcess/PageClient.h:

(WebKit::PageClient::startDrag):

5:03 PM Changeset in webkit [226932] by Simon Fraser
  • 1 edit
    2 adds in trunk/LayoutTests

Touch events not received with initial-scale=1 viewport
https://bugs.webkit.org/show_bug.cgi?id=181566
rdar://problem/36460221

Reviewed by Tim Horton.

Add a testcase for this touch event case.

  • fast/events/touch/ios/target-taller-than-view-expected.txt: Added.
  • fast/events/touch/ios/target-taller-than-view.html: Added.
4:46 PM Changeset in webkit [226931] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

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

Breaks 32-bit and iOS release for some reason that i don't
understand yet (Requested by dino on #webkit).

Reverted changeset:

"Use a helper function for checked arithmetic in WebGL
validation"
https://bugs.webkit.org/show_bug.cgi?id=181620
https://trac.webkit.org/changeset/226927

4:45 PM Changeset in webkit [226930] by mmaxfield@apple.com
  • 10 edits
    4 adds in trunk

Data URL fonts split in the middle of an alphabet cause random letters to disappear
https://bugs.webkit.org/show_bug.cgi?id=175845
<rdar://problem/33996578>

Reviewed by Brent Fulgham.

Source/WebCore:

It is fairly common practice for a font foundry to split a font up into two files such that a semi-random
half of the alphabet is present in one of the files, and the other half is present in the other file. This
practice involves representing the files as data URLs, so as to minimize the time it takes to load them.

Because resource loading is asynchronous (even for data URLs), it is possible today to get a paint after
the first file is loaded but before the second file is loaded. Indeed, because of the way font fallback
works, we will never start loading the second file until a layout has occurred with the first font.

Because a site usually only uses this pattern for a handful of fonts, and I've never seen this pattern
being used for CJK fonts, it isn't very expensive to opportunistically decode these data URLs eagerly.
Using this method doesn't actually guarantee that the two fonts will load in between successive paints,
but it at least makes this much more likely. This patch implements this strategy, along with a size
threshold to make sure that we won't decode any super large data URLs when it isn't necessary.

Test: fast/text/font-load-data-partitioned-alphabet.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::opportunisticallyStartFontDataURLLoading):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::opportunisticallyStartFontDataURLLoading):

  • css/CSSFontFaceSource.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::opportunisticallyStartFontDataURLLoading):

  • css/CSSFontSelector.h:
  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::opportunisticallyStartFontDataURLLoading):
(WebCore::FontCascadeFonts::glyphDataForVariant):

  • platform/graphics/FontSelector.h:

LayoutTests:

Make sure that the requests for both fonts are sent before either of the responses are received.

  • fast/text/font-load-data-partitioned-alphabet-expected.txt: Added.
  • fast/text/font-load-data-partitioned-alphabet.html: Added.
  • platform/mac-wk1/fast/text/font-load-data-partitioned-alphabet-expected.txt: Added.
4:39 PM Changeset in webkit [226929] by achristensen@apple.com
  • 4 edits in trunk

History state should be updated during client redirects with asynchronous policy decisions
https://bugs.webkit.org/show_bug.cgi?id=181358
<rdar://problem/35547689>

Reviewed by Andy Estes.

Source/WebCore:

When decidePolicyForNavigationAction is responded to asynchronously during a client redirect,
HistoryController::updateForRedirectWithLockedBackForwardList does not update the history because
the document loader has not been marked as a client redirect because the FrameLoader only looks
at its provisional document loader to mark it as a client redirect. When decidePolicyForNavigationAction
is responded to asynchronously, though, the FrameLoader's provisional document loader has moved to
its policy document loader. To get both asynchronous and synchronous cases, let's just mark the document
loader as a client redirect whether it's the provisional or policy document loader.

Covered by a new API test.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):

Tools:

  • TestWebKitAPI/Tests/WebKit/WKBackForwardList.mm:

(-[AsyncPolicyDecisionDelegate webView:didFinishNavigation:]):
(-[AsyncPolicyDecisionDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(TEST):

4:36 PM Changeset in webkit [226928] by sbarati@apple.com
  • 17 edits in trunk/Source/JavaScriptCore

Move ExitProfile to UnlinkedCodeBlock so it can be shared amongst CodeBlocks backed by the same UnlinkedCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=181545

Reviewed by Michael Saboff.

This patch follows the theme of putting optimization profiling information on
UnlinkedCodeBlock. This allows the unlinked code cache to remember OSR exit data.
This often leads to the first compile of a CodeBlock, backed by an UnlinkedCodeBlock
pulled from the code cache, making better compilation decisions, usually
resulting in fewer exits, and fewer recompilations.

This is a 1% Speedometer progression in my testing.

  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumper<CodeBlock>::dumpProfilesForBytecodeOffset):

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromLLInt):
(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeExitSiteData):
(JSC::CallLinkStatus::computeDFGStatuses):

  • bytecode/CallLinkStatus.h:
  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addFrequentExitSite): Deleted.
(JSC::CodeBlock::hasExitSite const): Deleted.
(JSC::CodeBlock::exitProfile): Deleted.

  • bytecode/DFGExitProfile.cpp:

(JSC::DFG::ExitProfile::add):
(JSC::DFG::QueryableExitProfile::initialize):

  • bytecode/DFGExitProfile.h:

(JSC::DFG::ExitProfile::hasExitSite const):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::hasExitSite):
(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):

  • bytecode/GetByIdStatus.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::hasExitSite):
(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/PutByIdStatus.h:
  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::livenessAnalysisSlow):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::hasExitSite const):
(JSC::UnlinkedCodeBlock::hasExitSite):
(JSC::UnlinkedCodeBlock::exitProfile):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::hasGlobalExitSite):
(JSC::DFG::Graph::hasExitSite):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGOSRExitBase.cpp:

(JSC::DFG::OSRExitBase::considerAddingAsFrequentExitSiteSlow):

4:30 PM Changeset in webkit [226927] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

Use a helper function for checked arithmetic in WebGL validation
https://bugs.webkit.org/show_bug.cgi?id=181620
<rdar://problem/36485879>

Reviewed by Eric Carlson.

Eric recommended using a templated helper function to do
a common arithmetic check in WebGL validation.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::validateIndexArrayConservative):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::validateIndexArrayConservative):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::checkedAddAndMultiply): New helper.
(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::validateDrawArrays):
(WebCore::WebGLRenderingContextBase::validateSimulatedVertexAttrib0):
(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0):

  • html/canvas/WebGLRenderingContextBase.h:
4:28 PM Changeset in webkit [226926] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Remove unneeded accessibility-related sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=181619
<rdar://problem/36485356>

Reviewed by Eric Carlson.

Remove a number of sandbox exceptions that were in place for accessibility support. These are
not needed in the WebContent process, since Safari (not WebKit) handles the accessibility
interactions.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:07 PM Changeset in webkit [226925] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.22

Tag Safari-605.1.22.

3:56 PM Changeset in webkit [226924] by jmarcell@apple.com
  • 10 edits in branches/safari-605-branch

Cherry-pick r226838. rdar://problem/36480711

3:56 PM Changeset in webkit [226923] by jmarcell@apple.com
  • 8 edits in branches/safari-605-branch/Source

Apply patch. rdar://problem/36303061

Disable WebKit features we don't want to ship after branching
<rdar://problem/36303061>

3:56 PM Changeset in webkit [226922] by jmarcell@apple.com
  • 4 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r226905. rdar://problem/36483899

3:56 PM Changeset in webkit [226921] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

3:47 PM Changeset in webkit [226920] by jfbastien@apple.com
  • 28 edits
    1 copy in trunk/Source

PoisonedWriteBarrier
https://bugs.webkit.org/show_bug.cgi?id=181599
<rdar://problem/36474351>

Reviewed by Mark Lam.

Source/JavaScriptCore:

Allow poisoning of WriteBarrier objects, and use this for
WebAssembly because it is perf-neutral, at least on WasmBench on
my MBP. If it indeed is perf-neutral according to the bots, start
using it in more performance-sensitive places.

  • heap/HandleTypes.h:
  • heap/SlotVisitor.h:
  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::append):
(JSC::SlotVisitor::appendHidden):

  • runtime/JSCJSValue.h:
  • runtime/JSCPoison.h:
  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::setPrototypeWithoutTransition):
(JSC::Structure::setGlobalObject):
(JSC::Structure::setPreviousID):

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierBase::copyFrom):
(JSC::WriteBarrierBase::get const):
(JSC::WriteBarrierBase::operator* const):
(JSC::WriteBarrierBase::operator-> const):
(JSC::WriteBarrierBase::clear):
(JSC::WriteBarrierBase::slot):
(JSC::WriteBarrierBase::operator bool const):
(JSC::WriteBarrierBase::setWithoutWriteBarrier):
(JSC::WriteBarrierBase::unvalidatedGet const):
(JSC::operator==):

  • runtime/WriteBarrierInlines.h:

(JSC::Traits>::set):
(JSC::Traits>::setMayBeNull):
(JSC::Traits>::setEarlyValue):
(JSC::DumbValueTraits<Unknown>>::set):

  • wasm/WasmInstance.h:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
(JSC::JSWebAssemblyInstance::finishCreation):
(JSC::JSWebAssemblyInstance::visitChildren):
(JSC::JSWebAssemblyInstance::create):

  • wasm/js/JSWebAssemblyInstance.h:

(JSC::JSWebAssemblyInstance::offsetOfPoisonedCallee):

  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::grow):
(JSC::JSWebAssemblyTable::clearFunction):

  • wasm/js/JSWebAssemblyTable.h:
  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::materializeImportJSCell):
(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunctionBase.h:
  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyToJSCallee.h:
  • wasm/js/WebAssemblyWrapperFunction.h:

Source/WTF:

Supporting changes needed to allow poisoning of WriteBarrier
objects.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/DumbPtrTraits.h:
  • wtf/DumbValueTraits.h: Copied from Source/WTF/wtf/DumbPtrTraits.h.

(WTF::DumbValueTraits::exchange):
(WTF::DumbValueTraits::swap):
(WTF::DumbValueTraits::unwrap):

  • wtf/Forward.h:
  • wtf/Poisoned.h:

(WTF::ConstExprPoisonedValueTraits::exchange):
(WTF::ConstExprPoisonedValueTraits::swap):
(WTF::ConstExprPoisonedValueTraits::unwrap):

3:35 PM Changeset in webkit [226919] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] CTFontCopyDefaultCascadeListForLanguages() can return nullptr
https://bugs.webkit.org/show_bug.cgi?id=181615
<rdar://problem/36334637>

Reviewed by Jon Lee.

Speculative fix. We are getting crash reports saying that this call can return nullptr, and we
don't check for it.

No new tests because I couldn't find the specific input that causes it to return nullptr. (I
tried running this code with every 0, 1, and 2 length locale string, every weight value, and
every italic value, and couldn't get it to crash. I also inspected the code to figure out what
values would cause it to return nullptr, and I couldn't find anything other than if the system
has a totally busted font setup.)

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::SystemFontDatabase::computeCascadeList):

3:29 PM Changeset in webkit [226918] by Jonathan Bedard
  • 2 edits
    2 moves in trunk/Tools

webkitpy: Refactor simulator code (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=180555
<rdar://problem/36131381>

Reviewed by Aakash Jain.

Move new_simulated_device.py to simulated_device.py.

  • Scripts/webkitpy/port/ios_simulator.py: Update import statement.
  • Scripts/webkitpy/xcode/new_simulated_device.py: Removed.
  • Scripts/webkitpy/xcode/new_simulated_device_unittest.py: Removed.
  • Scripts/webkitpy/xcode/simulated_device.py: Copied from Tools/Scripts/webkitpy/xcode/new_simulated_device.py.
  • Scripts/webkitpy/xcode/simulated_device_unittest.py: Copied from Tools/Scripts/webkitpy/xcode/new_simulated_device_unittest.py.
3:15 PM Changeset in webkit [226917] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r226840. rdar://problem/36479468

3:01 PM Changeset in webkit [226916] by dino@apple.com
  • 7 edits
    2 adds in trunk

[WebGL] Simulated vertexAttrib0 can sometimes cause OUT_OF_MEMORY errors
https://bugs.webkit.org/show_bug.cgi?id=181558
<rdar://problem/36189833>

Reviewed by Eric Carlson.

Source/WebCore:

Very large element indices in the ELEMENT_ARRAY_BUFFER meant that
our simulated vertexAttrib0 buffer might be too large. We need
to check for out-of-memory, but we can also detect some of the issues
earlier in our validation code. Additionally, make sure that we don't
accidentally cast an unsigned to a signed.

Test: fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::validateIndexArrayConservative): Update validation
code to look for overflow, rather than relying on looking for sign changes.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::validateIndexArrayConservative): Ditto.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::drawArrays): Check that we were able to simulate.
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::validateSimulatedVertexAttrib0): Update validation code, and
use GC3Duint, since that's what the indicies are.
(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0): Ditto.
(WebCore::WebGLRenderingContextBase::drawArraysInstanced): Check that we were able to simulate.
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):

  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

  • fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies-expected.txt: Added.
  • fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html: Added.
  • platform/mac/TestExpectations: Test crashes on Sierra and earlier.
2:00 PM Changeset in webkit [226915] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Large in-place attachment elements cause the document width to expand when inserted
https://bugs.webkit.org/show_bug.cgi?id=181614

Reviewed by Dan Bernstein.

Make in-place images and videos have a max-width of 100%, so that large attachments aren't inserted with full
display size, causing the document and viewport width to expand.

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::populateShadowRootIfNecessary):

1:47 PM Changeset in webkit [226914] by commit-queue@webkit.org
  • 11 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: Drop support for iOS 7 targets
https://bugs.webkit.org/show_bug.cgi?id=181549
<rdar://problem/36444813>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-01-12
Reviewed by Brian Burg.

  • Versions/Inspector-iOS-7.0.json: Removed.
  • UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js: Removed.

Remove protocol snapshot and generated commands for iOS 7.

  • UserInterface/Base/Main.js:
  • UserInterface/Controllers/BreakpointPopoverController.js:

(WI.BreakpointPopoverController.prototype._createPopoverContent):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype._setBreakpoint):

  • UserInterface/Controllers/SourceMapManager.js:

(WI.SourceMapManager.prototype._loadAndParseSourceMap):

  • UserInterface/Models/Instrument.js:

(WI.Instrument.startLegacyTimelineAgent):

  • UserInterface/Models/ResourceTimingData.js:
  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord.EventType.displayName):

  • UserInterface/Models/SourceMapResource.js:

(WI.SourceMapResource.prototype.requestContentFromBackend):

  • UserInterface/Protocol/CSSObserver.js:

(WI.CSSObserver.prototype.regionLayoutUpdated): Deleted.

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.fromPayload):
Remove code that was only necessary to support iOS 7.

1:39 PM Changeset in webkit [226913] by Keith Rollin
  • 4 edits in trunk/Source

Logged JSON should escape "'s and \'s in strings.
https://bugs.webkit.org/show_bug.cgi?id=181608

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests -- no new functionality, just changed logging. The
efficacy of the logging was verified by inspecting its output.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

Source/WebKit:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::logCookieInformation const):

1:38 PM Changeset in webkit [226912] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Unreviewed, fixing error in UIKitSPI.h.

  • Platform/spi/ios/UIKitSPI.h:
1:32 PM Changeset in webkit [226911] by Megan Gardner
  • 4 edits in trunk/Source/WebKit

Implement MultiDocument protocol for restoring focus to a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=181510

Reviewed by Dan Bernstein.

Support the UIKit protocol for restoring focus to a what previously had focus.
WebKit already knows what node was previously being focused by the DOM, we merely
need to be asked to turn the focus on again.
Resubmitting https://trac.webkit.org/changeset/226826 as it broke internal builds

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _restoreFocusWithToken:]):
(-[WKContentView _preserveFocusWithToken:destructively:]):

1:30 PM Changeset in webkit [226910] by jmarcell@apple.com
  • 56 edits
    2 deletes in branches/safari-605-branch/Source/WebCore

Revert r226007. rdar://problem/36072040

1:03 PM Changeset in webkit [226909] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Support JSX (React) syntax highlighting
https://bugs.webkit.org/show_bug.cgi?id=181607
<rdar://problem/36442564>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-01-12
Reviewed by Brian Burg.

  • UserInterface/Base/MIMETypeUtilities.js:

(WI.mimeTypeForFileExtension):
(WI.fileExtensionForMIMEType):

  • UserInterface/Models/Resource.js:

Support the jsx extension and mime types.

  • UserInterface/Main.html:
  • Scripts/update-codemirror-resources.rb:
  • UserInterface/External/CodeMirror/jsx.js: Added.

Include new mode from CodeMirror@d8926768.

1:01 PM Changeset in webkit [226908] by dino@apple.com
  • 3 edits
    2 adds in trunk

drawElements should be invalid if vertexAttrib0 doesn't have data
https://bugs.webkit.org/show_bug.cgi?id=181609
<rdar://problem/36392883>

Reviewed by Antoine Quint.

Source/WebCore:

If a vertex attribute has been enabled, but no data provided, then
draw validation should fail.

Test: fast/canvas/webgl/drawElements-empty-vertex-data.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateVertexAttributes): If there were
never any data in the vertex buffer, then we incorrectly compared with 0.

LayoutTests:

  • fast/canvas/webgl/drawElements-empty-vertex-data-expected.txt: Added.
  • fast/canvas/webgl/drawElements-empty-vertex-data.html: Added.
12:47 PM Changeset in webkit [226907] by sbarati@apple.com
  • 14 edits
    1 add in trunk

CheckStructure can be incorrectly subsumed by CheckStructureOrEmpty
https://bugs.webkit.org/show_bug.cgi?id=181177
<rdar://problem/36205704>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/check-structure-ir-ensures-empty-does-not-flow-through.js: Added.

(runNearStackLimit.t):
(runNearStackLimit):
(test.f):
(test):

Source/JavaScriptCore:

The semantics of CheckStructure are such that it does not allow the empty value to flow through it.
However, we may eliminate a CheckStructure if it's preceded by a CheckStructureOrEmpty. This doesn't
have semantic consequences when validation is turned off. However, with validation on, this trips up
our OSR exit machinery that says when an exit is allowed to happen.

Consider the following IR:

a: GetClosureVar Or any other node that produces BytecodeTop
...
c: CheckStructure(Cell:@a, {s2})
d: PutByOffset(KnownCell:@a, KnownCell:@a, @value)

In the TypeCheckHoistingPhase, we may insert CheckStructureOrEmptys like this:
a: GetClosureVar
e: CheckStructureOrEmpty(@a, {s1})
...
f: CheckStructureOrEmpty(@a, {s2})
c: CheckStructure(Cell:@a, {s2})
d: PutByOffset(KnownCell:@a, KnownCell:@a, @value)

This will cause constant folding to change the IR to:
a: GetClosureVar
e: CheckStructureOrEmpty(@a, {s1})
...
f: CheckStructureOrEmpty(@a, {s2})
d: PutByOffset(KnownCell:@a, KnownCell:@a, @value)

Our mayExit analysis determines that the PutByOffset should not exit. Note
that AI will determine the only value the PutByOffset can see in @a is
the empty value. Because KnownCell filters SpecCell and not SpecCellCheck,
when lowering the PutByOffset, we reach a contradiction in AI and emit
an OSR exit. However, because mayExit said we couldn't exit, we assert.

Note that if we did not run the TypeCheckHoistingPhase on this IR, AI
would have determined we would OSR exit at the second CheckStructure.

This patch makes it so constant folding produces the following IR:
a: GetClosureVar
e: CheckStructureOrEmpty(@a, {s1})
g: AssertNotEmpty(@a)
...
f: CheckStructureOrEmpty(@a, {s2})
h: AssertNotEmpty(@a)
d: PutByOffset(KnownCell:@a, KnownCell:@a, @value)

This modification will cause AI to know we will OSR exit before even reaching
the PutByOffset. Note that in the original IR, the GetClosureVar won't
actually produce the TDZ value. If it did, bytecode would have caused us
to emit a CheckNotEmpty before the CheckStructure/PutByOffset combo. That's
why this bug is about IR bookkeeping and not an actual error in IR analysis.
This patch introduces AssertNotEmpty instead of using CheckNotEmpty to be
more congruous with CheckStructure's semantics of crashing on the empty value
as input (on 64 bit platforms).

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

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

12:41 PM Changeset in webkit [226906] by commit-queue@webkit.org
  • 12 edits in trunk

FormDataElement::lengthInBytes should use ThreadableBlobRegistry
https://bugs.webkit.org/show_bug.cgi?id=181554

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-12
Reviewed by Chris Dumez.

Source/WebCore:

Covered by updated test.

Fix blobRegistry() use and add support for creating a response that may trigger the issue.

  • platform/network/FormData.cpp:

(WebCore::FormDataElement::lengthInBytes const): Was using directly blobRegistry() while ThreadableBlobRegistry is more appropriate
in case this is called from workers.

  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchResponse.h:
  • fileapi/Blob.h:
  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::createOpaqueWithBlobBodyResponse):

  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:

LayoutTests:

  • http/tests/workers/service/resources/service-worker-cache-api-worker.js:

(async):
(event.event.request.url.indexOf): Deleted.
(event.event.request.url.endsWith): Deleted.
(event.event.respondWith.promise.then): Deleted.

  • http/tests/workers/service/service-worker-cache-api.https-expected.txt:
  • http/tests/workers/service/service-worker-cache-api.https.html:
12:01 PM Changeset in webkit [226905] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Wrap CDMFairPlayStreaming and related classes in ENABLE(ENCRYPTED_MEDIA) checks
https://bugs.webkit.org/show_bug.cgi?id=181602

Reviewed by Maciej Stachowiak.

  • platform/graphics/avfoundation/CDMFairPlayStreaming.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
11:43 AM Changeset in webkit [226904] by commit-queue@webkit.org
  • 19 edits
    5 adds in trunk

WebProcess should pass the registration identifier and not the worker identifier for fetch events
https://bugs.webkit.org/show_bug.cgi?id=181591

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-12
Reviewed by Chris Dumez.

Source/WebCore:

Test: http/wpt/service-workers/update-service-worker.https.html

Store service worker registration identifier in ResourceLoaderOptions instead of service worker identifier.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):

  • loader/ResourceLoaderOptions.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::prepareFetch):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setSelectedServiceWorkerRegistrationIdentifierIfNeeded):
(WebCore::CachedResourceRequest::setNavigationServiceWorkerRegistrationData):
(WebCore::CachedResourceRequest::setSelectedServiceWorkerIdentifierIfNeeded): Deleted.

  • loader/cache/CachedResourceRequest.h:
  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::activeWorkerFromRegistrationID):

  • workers/service/server/SWServer.h:

Source/WebKit:

Use service worker registration identifier to compute the active service worker identifier responsible to handle the fetch event.

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • WebProcess/Storage/ServiceWorkerClientFetch.cpp:

(WebKit::ServiceWorkerClientFetch::start):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::startFetch):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::shouldHandleFetch):

LayoutTests:

  • http/wpt/service-workers/resources/empty.html: Added.
  • http/wpt/service-workers/update-service-worker.https-expected.txt: Added.
  • http/wpt/service-workers/update-service-worker.https.html: Added.
  • http/wpt/service-workers/update-worker.py: Added.

(main):

11:21 AM Changeset in webkit [226903] by Ryan Haddad
  • 4 edits in trunk/Source/WebKit

Unreviewed, rolling out r226826.

Breaks internal builds.

Reverted changeset:

"Implement MultiDocument protocol for restoring focus to a
WKWebView"
https://bugs.webkit.org/show_bug.cgi?id=181510
https://trac.webkit.org/changeset/226826

11:19 AM Changeset in webkit [226902] by Simon Fraser
  • 3 edits in trunk/LayoutTests

fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html is flakey
https://bugs.webkit.org/show_bug.cgi?id=181569
rdar://problem/34117680

Reviewed by Zalan Bujtas.

Wait a tick before starting the rotation, otherwise -[WKWebView _beginAnimatedResizeWithUpdates:]
can bail because the unobscuredRect is empty.

Also wait for both the rotation UI script to complete, and the receipt of the
orientationchange event.

  • fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html:
  • fast/events/ios/rotation/resources/rotation-utils.js:

(doTest):

11:05 AM Changeset in webkit [226901] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk/Source/WebCore

[Win][CMake] Remove all-in-one file for WebCore DerivedSources
https://bugs.webkit.org/show_bug.cgi?id=181582

Patch by Fujii Hironori <Fujii Hironori> on 2018-01-12
Reviewed by Alex Christensen.

Those source files are compiled in unified source build nowadays.

No new tests (No behavior change)

  • CMakeLists.txt: Removed calling PROCESS_ALLINONE_FILE.
  • DerivedSources.cpp: Removed.
  • WebCoreMacros.cmake: Removed a macro PROCESS_ALLINONE_FILE.
10:52 AM Changeset in webkit [226900] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo][CMake] Use ${CURL_LIBRARY} instead of specifying the library name libcurl_imp explicitly
https://bugs.webkit.org/show_bug.cgi?id=181578

Patch by Fujii Hironori <Fujii Hironori> on 2018-01-12
Reviewed by Alex Christensen.

vcpkg has libcurl.lib, not libcurl_imp.lib.

No new tests because no behavior change.

  • PlatformWinCairo.cmake: Link ${CURL_LIBRARY} instead of libcurl_imp.
10:49 AM Changeset in webkit [226899] by Wenson Hsieh
  • 10 edits in trunk/Source/WebKit

[WK2] Unify macOS and iOS codepaths in the UI process when starting a drag
https://bugs.webkit.org/show_bug.cgi?id=181574

Reviewed by Tim Horton.

Rearrange some macOS drag start logic in the UI process so that it uses the same codepaths in WebPageProxy as
iOS. Namely, startDrag should just forward the DragItem and drag image handle along to the appropriate views on
each platform (WKContentView and WebViewImpl).

There should be no change in behavior.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

Both macOS and iOS now funnel through this method.

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

(WebKit::WebViewImpl::startDrag):
(WebKit::WebViewImpl::dragImageForView): Deleted.

Rename dragImageForView to startDrag. Move the call to didStartDrag() here, and call dragCancelled() in the
case where we bailed from starting the drag (due to failing to create a drag image).

  • UIProcess/PageClient.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::setDragImage): Deleted.

Rename setDragImage to startDrag.

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

(WebKit::PageClientImpl::startDrag):
(WebKit::PageClientImpl::setDragImage): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::startDrag): Deleted.

10:30 AM Changeset in webkit [226898] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

WebGL video texture black in Safari 11.0.2 and wrong colored in Safari Preview 11.1
https://bugs.webkit.org/show_bug.cgi?id=181445
<rdar://problem/36383183>

Reviewed by Dean Jackson.

Tests: added compile-time correctness tests for YCbCrMatrix values.

Perform the derivation from YCbCr coefficients into matrices in constexpr expressions
at compile-time. This allows us to also perform compile-time correctness checks to catch
regressions which may cause incorrect color conversions.

Since we now have general-purpose derivation of matrix values from coefficients,
adding missing specificed matrices is trivial, so add support for SMPTE 240M and BT.2020
matrices.

  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::GLfloatColor::GLfloatColor):
(WebCore::GLfloatColor::abs):
(WebCore::GLfloatColor::isApproximatelyEqualTo const):
(WebCore::YCbCrMatrix::operator Vector<GLfloat> const):
(WebCore::YCbCrMatrix::YCbCrMatrix):
(WebCore::YCbCrMatrix::operator* const):
(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):

10:26 AM Changeset in webkit [226897] by achristensen@apple.com
  • 3 edits in trunk/Tools

REGRESSION (r226818): API test WebKitLegacy.LoadInvalidURLRequest is failing
https://bugs.webkit.org/show_bug.cgi?id=181595

This test was testing behavior of an invalid URL that WebCore parses but NSURL does not.
It was using example.com<> but after r226479 < and > are considered invalid by WebCore.
I change the < and > to $ to make this test pass and continue to test what it used to.

  • TestWebKitAPI/Tests/mac/LoadInvalidURLRequest.html:
  • TestWebKitAPI/Tests/mac/LoadInvalidURLRequest.mm:

(-[LoadInvalidURLWebFrameLoadDelegate webView:didFailProvisionalLoadWithError:forFrame:]):

9:39 AM Changeset in webkit [226896] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Skipped http/tests/resourceLoadStatistics/grandfathering.html on macOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=181482

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:32 AM Changeset in webkit [226895] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Remove unnecessary raw pointer in InspectorConsoleAgent
https://bugs.webkit.org/show_bug.cgi?id=181579
<rdar://problem/36193759>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-01-12
Reviewed by Brian Burg.

  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::clearMessages):
(Inspector::InspectorConsoleAgent::addConsoleMessage):
Switch from a raw pointer to m_consoleMessages.last().
Also move the expiration check into the if block since it can only
happen inside here when the number of console messages changes.

(Inspector::InspectorConsoleAgent::discardValues):
Also clear the expired message count when messages are cleared.

9:28 AM Changeset in webkit [226894] by jmarcell@apple.com
  • 9 edits in branches/safari-605-branch

Cherry-pick r226745. rdar://problem/36392368

8:36 AM Changeset in webkit [226893] by jmarcell@apple.com
  • 6 edits in branches/safari-605-branch

Cherry-pick r226825. rdar://problem/36458902

8:36 AM Changeset in webkit [226892] by jmarcell@apple.com
  • 48 edits
    5 moves
    1 add
    1 delete in branches/safari-605-branch/Source

Cherry-pick r226822. rdar://problem/36458924

7:21 AM Changeset in webkit [226891] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch

Cherry-pick r226813. rdar://problem/36458922

7:21 AM Changeset in webkit [226890] by jmarcell@apple.com
  • 8 edits in branches/safari-605-branch

Cherry-pick r226792. rdar://problem/36450742

7:21 AM Changeset in webkit [226889] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/LayoutTests

Cherry-pick r226785. rdar://problem/36450812

7:21 AM Changeset in webkit [226888] by jmarcell@apple.com
  • 4 edits in branches/safari-605-branch/LayoutTests

Cherry-pick r226771. rdar://problem/36450734

7:21 AM Changeset in webkit [226887] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/LayoutTests

Cherry-pick r226731. rdar://problem/36450734

5:26 AM Changeset in webkit [226886] by graouts@webkit.org
  • 21 edits
    2 adds in trunk

Add support for the frames() timing function
https://bugs.webkit.org/show_bug.cgi?id=181585
<rdar://problem/36463317>

Reviewed by Dean.

Source/WebCore:

Implement the frames() timing function as specified in the CSS Timing Functions Level 1
specification, specifically https://www.w3.org/TR/css-timing-1/#frames-timing-functions.
A frames timing function is a type of timing function that divides the input time into a
specified number of intervals of equal length.

Test: transitions/frames-timing-function.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createTimingFunctionValue):

  • css/CSSTimingFunctionValue.cpp:

(WebCore::CSSFramesTimingFunctionValue::customCSSText const):
(WebCore::CSSFramesTimingFunctionValue::equals const):

  • css/CSSTimingFunctionValue.h:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTimingFunction):

  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isFramesTimingFunctionValue const):

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeSteps):
(WebCore::consumeFrames):
(WebCore::consumeAnimationTimingFunction):

  • platform/animation/TimingFunction.cpp:

(WebCore::operator<<):
(WebCore::TimingFunction::transformTime const):

  • platform/animation/TimingFunction.h:

(WebCore::TimingFunction::isFramesTimingFunction const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::animationHasFramesTimingFunction):
(WebCore::GraphicsLayerCA::animationCanBeAccelerated const):

Source/WebKit:

Add the ability to endode and decode the frames() timing function.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<FramesTimingFunction>::encode):
(IPC::ArgumentCoder<FramesTimingFunction>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::Properties::encode const):
(WebKit::PlatformCAAnimationRemote::Properties::decode):

LayoutTests:

Add a new test that checks that the frames() timing function applies as expected
and expand an existing test to check that the frames() timing function is parsed
correctly. We also mark progressions in imported WPT tests.

  • imported/w3c/web-platform-tests/css-timing-1/frames-timing-functions-output-expected.txt:
  • imported/w3c/web-platform-tests/css-timing-1/frames-timing-functions-syntax-expected.txt:
  • transitions/frames-timing-function-expected.txt: Added.
  • transitions/frames-timing-function.html: Added.
  • transitions/transitions-parsing-expected.txt:
  • transitions/transitions-parsing.html:
4:16 AM Changeset in webkit [226885] by Yusuke Suzuki
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Create parallel SlotVisitors apriori
https://bugs.webkit.org/show_bug.cgi?id=180907

Reviewed by Saam Barati.

The number of SlotVisitors are capped with the number of HeapHelperPool's threads + 2.
If we create these SlotVisitors apropri, we do not need to create SlotVisitors dynamically.
Then we do not need to grab locks while iterating all the SlotVisitors.

In addition, we do not need to consider the case that the number of SlotVisitors increases
after setting up VisitCounters in MarkingConstraintSolver since the number of SlotVisitors
does not increase any more.

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::runBeginPhase):

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::forEachSlotVisitor):
(JSC::Heap::numberOfSlotVisitors): Deleted.

  • heap/MarkingConstraintSolver.cpp:

(JSC::MarkingConstraintSolver::didVisitSomething const):

3:26 AM Changeset in webkit [226884] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.18/WebDriverTests

Merge r226764 - Unreviewed. Update W3C WebDriver imported tests.

  • imported/w3c/importer.json:
  • imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py:
  • imported/w3c/webdriver/tests/sessions/new_session/support/create.py:
3:26 AM Changeset in webkit [226883] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.18/Tools

Merge r226711 - WebDriver: run-webdriver-tests doesn't handle test names with a '/' correctly
https://bugs.webkit.org/show_bug.cgi?id=181474

Reviewed by Carlos Alberto Lopez Perez.

We use os.path.basename() to get the subtest name. If the test name contains a slash we get part of the subtest
name as the name.

  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py:

(WebDriverTestRunnerW3C._subtest_name): Helper function to get the subtest name.
(WebDriverTestRunnerW3C.run): Use _subtest_name() instead of os.path.basename().

3:26 AM Changeset in webkit [226882] by Carlos Garcia Campos
  • 25 edits
    1 copy
    5 moves
    6 adds
    1 delete in releases/WebKitGTK/webkit-2.18/WebDriverTests

Merge r226708 - Unreviewed. Update W3C WebDriver imported tests.

  • imported/w3c/importer.json:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
  • imported/w3c/tools/wptrunner/wptrunner/environment.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/pytestrunner/runner.py:
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/update.py:
  • imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptlogging.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/webdriver/OWNERS:
  • imported/w3c/webdriver/interface/interface.html: Removed.
  • imported/w3c/webdriver/tests/actions/modifier_click.py:
  • imported/w3c/webdriver/tests/actions/mouse.py:
  • imported/w3c/webdriver/tests/actions/mouse_dblclick.py: Added.
  • imported/w3c/webdriver/tests/actions/sequence.py:
  • imported/w3c/webdriver/tests/actions/support/mouse.py: Added.
  • imported/w3c/webdriver/tests/cookies/add_cookie.py:
  • imported/w3c/webdriver/tests/cookies/get_named_cookie.py:
  • imported/w3c/webdriver/tests/element_retrieval/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/retrieval/init.py.
  • imported/w3c/webdriver/tests/element_retrieval/find_element.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/find_element.py.
  • imported/w3c/webdriver/tests/element_retrieval/find_element_from_element.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/find_element_from_element.py.
  • imported/w3c/webdriver/tests/element_retrieval/find_elements.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/find_elements.py.
  • imported/w3c/webdriver/tests/element_retrieval/find_elements_from_element.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/find_element_from_elements.py.
  • imported/w3c/webdriver/tests/element_send_keys/init.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/init.py.
  • imported/w3c/webdriver/tests/element_send_keys/interactability.py: Added.
  • imported/w3c/webdriver/tests/element_send_keys/scroll_into_view.py: Added.
  • imported/w3c/webdriver/tests/execute_script/cyclic.py: Added.
  • imported/w3c/webdriver/tests/get_window_rect.py:
  • imported/w3c/webdriver/tests/interface.html:
  • imported/w3c/webdriver/tests/navigation/current_url.py:
  • imported/w3c/webdriver/tests/support/asserts.py:
  • imported/w3c/webdriver/tests/support/fixtures.py:
2:15 AM Changeset in webkit [226881] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Each variant of a polymorphic inlined call should be exitOK at the top of the block
https://bugs.webkit.org/show_bug.cgi?id=181562
<rdar://problem/36445624>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/each-block-at-top-of-polymorphic-call-inlining-should-be-exitOK.js: Added.

(f):
(foo):

Source/JavaScriptCore:

Before this patch, the very first block in the switch for polymorphic call
inlining will have exitOK at the top. The others are not guaranteed to.
That was just a bug. They're all exitOK at the top. This will lead to crashes
in FixupPhase because we won't have a node in a block that has ExitOK, so
when we fixup various type checks, we assert out.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleInlining):

12:39 AM Changeset in webkit [226880] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

Lets do a slightly different fix (Requested by anttik on
#webkit).

Reverted changeset:

"REGRESSION(r225650): The scores of MotionMark tests Multiply
and Leaves dropped by 8%"
https://bugs.webkit.org/show_bug.cgi?id=181460
https://trac.webkit.org/changeset/226721

Note: See TracTimeline for information about the timeline view.