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

Timeline



Nov 20, 2017:

11:59 PM Changeset in webkit [225065] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK+ make distcheck.

  • gtk/manifest.txt.in: Add generate-inspector-gresource-manifest.py to the tarball.
6:49 PM Changeset in webkit [225064] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

Add declspec within WebKit API
https://bugs.webkit.org/show_bug.cgi?id=179893

Reviewed by Darin Adler.

  • Shared/API/c/WKDeclarationSpecifiers.h:
6:48 PM Changeset in webkit [225063] by don.olmstead@sony.com
  • 2 edits in trunk/Source/JavaScriptCore

Detect declspec within JSBase.h
https://bugs.webkit.org/show_bug.cgi?id=179892

Reviewed by Darin Adler.

  • API/JSBase.h:
6:29 PM Changeset in webkit [225062] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed, mark one more GTK test as passing

  • platform/gtk/TestExpectations:
5:27 PM Changeset in webkit [225061] by guijemont@igalia.com
  • 2 edits in trunk/JSTests

Skip stress/unshiftCountSlowCase-correct-postCapacity.js on embedded Linux
https://bugs.webkit.org/show_bug.cgi?id=179744

Reviewed by Michael Catanzaro.

This test uses too much memory for our buildbots on these platforms
and gets OOM-killed.

  • stress/unshiftCountSlowCase-correct-postCapacity.js:

Skip if $memoryLimited and linux.

5:25 PM Changeset in webkit [225060] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE] Disable ACCELERATED_2D_CANVAS in FeatureList.pm
https://bugs.webkit.org/show_bug.cgi?id=179889

Reviewed by Darin Adler.

  • Scripts/webkitperl/FeatureList.pm:
5:24 PM Changeset in webkit [225059] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Layout Test js/intl-datetimeformat.html is failing on High Sierra (GMT vs. UTC)
https://bugs.webkit.org/show_bug.cgi?id=179208

Patch by Andy VanWagoner <andy@thetalecrafter.com> on 2017-11-20
Reviewed by Darin Adler.

Use time zones that are unambiguous in datetimeformat tests.

  • js/intl-datetimeformat-expected.txt:
  • js/script-tests/intl-datetimeformat.js:
  • platform/mac/TestExpectations:
4:59 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
4:58 PM Changeset in webkit [225058] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Unreviewed GTK test gardening

3:55 PM Changeset in webkit [225057] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Better unreviewed WPE test gardening

I gave this test a TIMEOUT expectation because there is an XHR timeout, but that was dumb
because the test itself does not time out.

  • platform/wpe/TestExpectations:
3:54 PM Changeset in webkit [225056] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed WPE test gardening

  • platform/wpe/TestExpectations:
3:51 PM Changeset in webkit [225055] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed, speculative attempt to fix run-gtk-tests after r225047
https://bugs.webkit.org/show_bug.cgi?id=173772

  • jhbuild/jhbuildutils.py:

(enter_jhbuild_environment_if_available):

2:02 PM Changeset in webkit [225054] by mario@webkit.org
  • 11 edits
    1 add in trunk

[GTK] New API to add, retrieve and delete cookies via WebKitCookieManager
https://bugs.webkit.org/show_bug.cgi?id=177932

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Implemented setCookie(), getCookies() and deleteCookie() in the Soup
backend, and refactored some utility functions and conversions out of
NetworkStorageSessionSoup into a new CookieSoup.cpp file, so
that we now can convert between SoupCookie* and WebCore::Cookie
easily from anywhere (this is now needed from the UI Process).

  • platform/Cookie.h: Add declarations for the new conversions.
  • platform/SourcesSoup.txt: Add CookieSoup.cpp.
  • platform/network/soup/CookieSoup.cpp: Added.

(WebCore::Cookie::Cookie): New constructor, creates a WebCore::Cookie out of a SoupCookie*.
(WebCore::msToSoupDate): Moved from NetworkStorageSessionSoup.cpp.
(WebCore::Cookie::toSoupCookie): New, based on toSoupCookie() from NetworkStorageSessionSoup.cpp.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::setCookies): Used the new implicit conversion.
(WebCore::NetworkStorageSession::setCookie): Newly implemented.
(WebCore::NetworkStorageSession::deleteCookie): Newly implemented.
(WebCore::NetworkStorageSession::getCookies): Newly implemented.

Source/WebKit:

Added new API to WebKitCookieManager to add, retrieve and delete complete
cookies into/out-of a running session, and updated documentation sections.

  • UIProcess/API/glib/WebKitCookieManager.cpp:

(webkit_cookie_manager_add_cookie): New function.
(webkit_cookie_manager_add_cookie_finish): Ditto.
(webkit_cookie_manager_get_cookies): Ditto.
(webkit_cookie_manager_get_cookies_finish): Ditto.
(webkit_cookie_manager_delete_cookie): Ditto.
(webkit_cookie_manager_delete_cookie_finish): Ditto.

  • UIProcess/API/gtk/WebKitCookieManager.h: Added new functions.
  • UIProcess/API/wpe/WebKitCookieManager.h: Ditto.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Ditto.

Tools:

Added new test cases to cover the newly added API for WebKitCookieManager:
webkit_cookie_manager_add_cookie, webkit_cookie_manager_get_cookies and
webkit_cookie_manager_delete_cookie.

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerAddCookie): Added.
(testCookieManagerGetCookies): Added.
(testCookieManagerDeleteCookie): Added.
(serverCallback): Small update to avoid hardcoding strings we reuse.
(beforeAll): Added the new test cases to the test suite.

1:20 PM Changeset in webkit [225053] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Win] Update ruby JSC test writer for gigacage changes
https://bugs.webkit.org/show_bug.cgi?id=178757

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2017-11-20
Reviewed by Keith Miller.

  • Scripts/webkitruby/jsc-stress-test-writer-ruby.rb:

Add additionalEnv to ruby test writer Plan

11:28 AM WebKitGTK/GCCRequirement edited by Michael Catanzaro
(diff)
9:18 AM Changeset in webkit [225052] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Remove slow repaint object from FrameView when style changes.
https://bugs.webkit.org/show_bug.cgi?id=179871

Reviewed by Antti Koivisto.

Source/WebCore:

The "oldStyleSlowScroll" value does not need to be computed. We already know its value
by checking the HashSet. This code is also unnecessarily complicated and error prone
(could lead to UAF errors by leaving stale renderers in the slow paint list).

Test: fast/repaint/slow-repaint-object-crash.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

LayoutTests:

  • fast/repaint/slow-repaint-object-crash-expected.txt: Added.
  • fast/repaint/slow-repaint-object-crash.html: Added.
9:17 AM WebKitGTK/2.18.x edited by Adrian Perez de Castro
(diff)
8:33 AM WebKitGTK/DependenciesPolicy edited by Michael Catanzaro
(diff)
8:33 AM WebKitGTK/DependenciesPolicy edited by Michael Catanzaro
(diff)
8:30 AM WebKitGTK/DependenciesPolicy edited by Michael Catanzaro
(diff)
8:26 AM WebKitGTK/GCCRequirement edited by Michael Catanzaro
(diff)
8:26 AM WebKitGTK/GCCRequirement edited by Michael Catanzaro
(diff)
8:25 AM WebKitGTK/GCCRequirement created by Michael Catanzaro
7:57 AM Changeset in webkit [225051] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

[WPE] GLContextEGLWPE.cpp:44:96: error: invalid cast from type ‘GLNativeWindowType {aka long long unsigned int}’ to type ‘EGLNativeWindowType {aka unsigned int}
https://bugs.webkit.org/show_bug.cgi?id=179511

Reviewed by Žan Doberšek.

r217208 changed the definition of GLNativeWindowType from EGLNativeWindowType to uint64_t for platform WPE.
This built fine on a 64-bit platform since uint64_t matches the size of a pointer, but fails on 32-bits.

This switches back the definition to EGLNativeWindowType.
And we need to include <EGL/eglplatform.h> first in order to get a definition for EGLNativeWindowType itself.

This commit pretty much reverts the changes r217208 did on platform/graphics/GLContext.h

No new tests, it is a build fix.

  • platform/graphics/GLContext.h:
7:46 AM Changeset in webkit [225050] by Michael Catanzaro
  • 7 edits in trunk

Remove ENABLE_ALLINONE_BUILD option
https://bugs.webkit.org/show_bug.cgi?id=179823

Reviewed by Darin Adler.

.:

  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

  • CMakeLists.txt:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
4:32 AM Changeset in webkit [225049] by emilio
  • 8 edits in trunk

Incorrect computed style in pseudo-elements with display: contents
https://bugs.webkit.org/show_bug.cgi?id=179812

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt:
  • web-platform-tests/cssom/getComputedStyle-pseudo.html: Extended the testcase to cover this bug.

Source/WebCore:

Bug 178513 gave them an anon renderer as the main renderer. Unfortunately, the
style of that box is exposed via getComputedStyle, so that needs to be handled
somehow to return the correct style.

Tests: imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::styledRenderer const):

Don't return a display: contents pseudo anon box.

  • dom/Element.cpp:

(WebCore::Element::hasDisplayContents const):

Just look at the rare data style.

(WebCore::Element::existingComputedStyle const):

Look at the rare data first. This also fixes an inefficiency in the
sense that before then we'd compare the anon box style to the
pseudo-element style during style update, that may be more changes
than needed.

  • style/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolvePseudoStyle):

Move the anon box creation to render tree update instead of style
resolution.

3:22 AM Changeset in webkit [225048] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

Unreviewed. Fix WPE build after r225047.

Remove changes from an old patch committed by mistake in r225047.

  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:

(WTR::PlatformWebView::windowSnapshotImage):

3:03 AM Changeset in webkit [225047] by Carlos Garcia Campos
  • 8 edits
    1 copy
    1 move
    3 adds in trunk/Tools

[WPE] Add run-wpe-tests script to run WPE glib API tests
https://bugs.webkit.org/show_bug.cgi?id=173772

Reviewed by Michael Catanzaro.

Move common code from run-gtk-tests to api_test_runner.py, to be shared by both run-gtk-tests and un-wpe-tests.

  • Scripts/run-gtk-tests:

(GtkTestRunner):
(GtkTestRunner.init):
(GtkTestRunner._start_accessibility_daemons):
(GtkTestRunner._setup_testing_environment):
(GtkTestRunner._tear_down_testing_environment):
(GtkTestRunner.is_glib_test):
(GtkTestRunner.is_google_test):

  • Scripts/run-wpe-tests: Added.

(WPETestRunner):
(WPETestRunner.init):
(WPETestRunner.is_glib_test):
(WPETestRunner.is_google_test):

  • Scripts/webkitpy/port/headlessdriver.py: Added.

(HeadlessDriver):
(HeadlessDriver._setup_environ_for_test):
(HeadlessDriver._start):

  • Scripts/webkitpy/port/headlessdriver_unittest.py: Added.

(HeadlessDriverTest):
(HeadlessDriverTest.make_driver):
(HeadlessDriverTest.make_environment):
(HeadlessDriverTest.test_environment_needed_variables):
(HeadlessDriverTest.test_environment_forbidden_variables):

  • Scripts/webkitpy/port/wpe.py:

(WPEPort._driver_class):

  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:

(WTR::PlatformWebView::windowSnapshotImage):

  • glib/api_test_runner.py: Copied from Tools/Scripts/run-gtk-tests.

(SkippedTest):
(SkippedTest.init):
(SkippedTest.str):
(SkippedTest.skip_entire_suite):
(SkippedTest.skip_for_build_type):
(TestTimeout):
(TestRunner):
(TestRunner.init):
(TestRunner._test_programs_base_dir):
(TestRunner._get_tests_from_dir):
(TestRunner._get_tests):
(TestRunner._create_driver):
(TestRunner._setup_testing_environment):
(TestRunner._tear_down_testing_environment):
(TestRunner._test_cases_to_skip):
(TestRunner._should_run_test_program):
(TestRunner._kill_process):
(TestRunner._start_timeout):
(TestRunner._start_timeout._alarm_handler):
(TestRunner._stop_timeout):
(TestRunner._waitpid):
(TestRunner._run_test_glib):
(TestRunner._run_test_glib.parse_line):
(TestRunner._run_test_glib.parse_line.set_test_result):
(TestRunner._get_tests_from_google_test_suite):
(TestRunner._run_google_test):
(TestRunner._run_google_test_suite):
(TestRunner.is_glib_test):
(TestRunner.is_google_test):
(TestRunner._run_test):
(TestRunner.run_tests):
(add_options):

  • glib/common.py: Renamed from Tools/gtk/common.py.

(get_build_path.is_valid_build_directory):

  • gtk/generate-gtkdoc:
  • gtk/jhbuildrc:
  • gtk/ycm_extra_conf.py:
1:51 AM Changeset in webkit [225046] by Carlos Garcia Campos
  • 6 edits
    1 add in trunk/Tools

[WPE] Build C API tests
https://bugs.webkit.org/show_bug.cgi?id=179817

Reviewed by Michael Catanzaro.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/PlatformWebView.h:
  • TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp:

(TestWebKitAPI::Util::URLForNonExistentResource):
(TestWebKitAPI::Util::isKeyDown):

  • TestWebKitAPI/wpe/PlatformWebViewWPE.cpp: Added.

(TestWebKitAPI::PlatformWebView::PlatformWebView):
(TestWebKitAPI::PlatformWebView::~PlatformWebView):
(TestWebKitAPI::PlatformWebView::initialize):
(TestWebKitAPI::PlatformWebView::page const):
(TestWebKitAPI::PlatformWebView::resizeTo):
(TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress):
(TestWebKitAPI::PlatformWebView::simulateAltKeyPress):
(TestWebKitAPI::PlatformWebView::simulateRightClick):
(TestWebKitAPI::PlatformWebView::simulateMouseMove):

1:47 AM Changeset in webkit [225045] by Carlos Garcia Campos
  • 11 edits
    2 moves
    2 adds in trunk/Tools

[WPE] Add env var WPE_USE_HEADLESS_VIEW_BACKEND
https://bugs.webkit.org/show_bug.cgi?id=173770

Reviewed by Michael Catanzaro.

Move HeadlessViewBackend implementation to a common place and build it as a private static library to be used by
WTR, GLib API tests and eventually C API tests too. WTR uses the HeadlessViewBackend unconditionally, but GLib
API tests use it only when WPE_USE_HEADLESS_VIEW_BACKEND environment variable is present and not "0".

  • CMakeLists.txt: Include wpe/HeadlessViewBackend directory for developer builds.
  • TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:

(testAutomationSessionRequestSession):

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerEphemeral):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:

(testPrivateBrowsing):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextProxySettings):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewWebContext):
(testWebViewEphemeral):

  • TestWebKitAPI/glib/PlatformWPE.cmake:
  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::createWebViewBackend):
(Test::createWebView):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::initializeWebView):

  • WebKitTestRunner/PlatformWPE.cmake:
  • wpe/HeadlessViewBackend/CMakeLists.txt: Added.
  • wpe/HeadlessViewBackend/HeadlessViewBackend.cpp: Renamed from Tools/WebKitTestRunner/wpe/HeadlessViewBackend.cpp.

(HeadlessViewBackend::HeadlessViewBackend):

  • wpe/HeadlessViewBackend/HeadlessViewBackend.h: Renamed from Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h.
12:38 AM WebKitGTK/2.18.x edited by Adrian Perez de Castro
(diff)
12:16 AM Changeset in webkit [225044] by Carlos Garcia Campos
  • 22 edits
    3 adds in trunk

[WPE] webkit_web_view_new() should enable specifying wpe_view_backend object
https://bugs.webkit.org/show_bug.cgi?id=178655

Reviewed by Michael Catanzaro.

Source/WebKit:

Update all WebKitWebView constructors to receive a WebKitWebViewBackend as argument. It's now required to
provide a backend to create a web view, but it can be NULL to use the default one. WebKitWebViewBackend is a
boxed type wrapping a struct wpe_view_backend* used as construct only property of WebKitWebView. The view always
takes the ownership of the WebKitWebViewBackend which owns the struct wpe_view_backend*. An optional
GDestroyNotify and user data pointer can be passed to the WebKitWebViewBackend constructor to provide a custom
deleter for the backend. In the C API the struct wpe_view_backend* is also mandatory now, but it can't be NULL
and it's owned by the caller, not the view.

  • PlatformWPE.cmake:
  • UIProcess/API/C/wpe/WKView.cpp:

(WKViewCreate):

  • UIProcess/API/C/wpe/WKView.h:
  • UIProcess/API/glib/WebKitWebView.cpp:

(_WebKitWebViewPrivate::~_WebKitWebViewPrivate):
(webkitWebViewConstructed):
(webkitWebViewSetProperty):
(webkitWebViewGetProperty):
(webkit_web_view_class_init):
(webkitWebViewCreatePage):
(webkit_web_view_get_backend):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):
(WKWPE::View::~View):

  • UIProcess/API/wpe/WebKitWebView.h:
  • UIProcess/API/wpe/WebKitWebViewBackend.cpp: Added.

(_WebKitWebViewBackend::_WebKitWebViewBackend):
(_WebKitWebViewBackend::~_WebKitWebViewBackend):
(webkitWebViewBackendRef):
(webkitWebViewBackendUnref):
(webkitWebViewBackendCreateDefault):
(webkit_web_view_backend_new):
(webkit_web_view_backend_get_wpe_backend):

  • UIProcess/API/wpe/WebKitWebViewBackend.h: Added.
  • UIProcess/API/wpe/WebKitWebViewBackendPrivate.h: Added.
  • UIProcess/API/wpe/WebKitWebViewWPE.cpp:

(webkit_web_view_new):
(webkit_web_view_new_with_context):
(webkit_web_view_new_with_related_view):
(webkit_web_view_new_with_settings):
(webkit_web_view_new_with_user_content_manager):

  • UIProcess/API/wpe/webkit.h:

Tools:

Update unit tests to create web views using helper methods that have a different implementation for GTK and
WPE. Also add a new test case to check the new API to create a WebKitWebView with a WPE backend. Use
WKViewCreate in WTR and fix a memory leak in HeadlessViewBackend.

  • TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:

(testAutomationSessionRequestSession):

  • TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:

(testWebKitWebViewSessionState):
(testWebKitWebViewSessionStateWithFormData):
(testWebKitWebViewNavigationAfterSessionRestore):

  • TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:

(testWebResourceGetDataError):

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:

(testWebViewNewWithUserContentManager):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextEphemeral):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewWebContext):
(testWebViewWebContextLifetime):
(testWebViewWebBackend):
(testWebViewSettings):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataEphemeral):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::createWebView):

  • WebKitTestRunner/wpe/HeadlessViewBackend.cpp:

(HeadlessViewBackend::~HeadlessViewBackend):

  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:

(WTR::PlatformWebView::PlatformWebView):

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

[GTK][WPE] webkit_cookie_manager_delete_all_cookies doesn't delete the cookies if called before a web process is running
https://bugs.webkit.org/show_bug.cgi?id=175265

Reviewed by Michael Catanzaro.

Source/WebKit:

This is what happens:

1- We create our WebKitWebContext that creates its WebProcessPool.
2- We set a persistent cookies storage.
3- We ask the website data store to delete all cookies, but since website data store is a web process observer

and we haven't spawned any web process yet, it creates a new WebProcessPool with the default configuration
(no persistent cookies) and sends the message to delete the cookies there.

4- The network process of the second process pool does nothing because it doesn't have cookies at all.

We need to set the primary data store of the WebProcessPool when WebKitWebContext is constructed to ensure that
one is used before the web process is launched.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed):

Tools:

Add test case.

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerPersistentStorageDeleteAll):
(serverCallback):
(beforeAll):

Nov 19, 2017:

9:10 PM Changeset in webkit [225042] by timothy_horton@apple.com
  • 18 edits in trunk

Remove unused TOUCH_ICON_LOADING feature flag
https://bugs.webkit.org/show_bug.cgi?id=179873

Reviewed by Simon Fraser.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
7:53 PM Changeset in webkit [225041] by Ms2ger@igalia.com
  • 2 edits
    5 adds in trunk/LayoutTests

[WPE] Enable the XMLHttpRequest/ directory of web-platform-tests.
https://bugs.webkit.org/show_bug.cgi?id=179820

Reviewed by Sam Weinig.

Added test expectations are copied from platform/gtk/

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-get-head-async-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-get-head-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt: Added.
5:41 PM Changeset in webkit [225040] by Yusuke Suzuki
  • 8 edits in trunk

Add CPU(UNKNOWN) to cover all the unknown CPU types
https://bugs.webkit.org/show_bug.cgi?id=179243

Reviewed by JF Bastien.

.:

Drop SH4, S390, and S390X explicit support. They are handled as CPU(UNKNOWN).

  • CMakeLists.txt:

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/WTF:

This patch adds a new CPU type, CPU(UNKNOWN) to cover all the unknown CPUs.
This CPU architecture tells conservative assumption to make JSC work on all
the unknown generic CPUs. And we make several CPUs (ALPHA, SH4, S390, S390X, IA64, IA64_32)
UNKNOWN.

We also make InlineASM available only for !CPU(UNKNOWN). In an unknown CPU, inline asm is not useful.

And we also introduce a generic way to detect 64bit pointer environment by using
SIZEOF_POINTER predefined macro, or UINTPTR_MAX > UINT32_MAX.

  • wtf/InlineASM.h:
  • wtf/Platform.h:
  • wtf/dtoa/utils.h:
5:31 PM Changeset in webkit [225039] by timothy_horton@apple.com
  • 19 edits in trunk

Remove unused LEGACY_VENDOR_PREFIXES feature flag
https://bugs.webkit.org/show_bug.cgi?id=179872

Reviewed by Darin Adler.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
5:08 PM Changeset in webkit [225038] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Fix potential thread safety issue in ThreadSafeIdentified
https://bugs.webkit.org/show_bug.cgi?id=179879

Reviewed by Darin Adler.

Fix potential thread safety issue in ThreadSafeIdentified. Protect static std::atomic
initialization with an std::call_once() given that we build with
--fno-threadsafe-statics.

  • wtf/Identified.h:

(WTF::Identified::Identified):
(WTF::Identified::generateIdentifier):
(WTF::ThreadSafeIdentified::ThreadSafeIdentified):
(WTF::ThreadSafeIdentified::generateIdentifier):

4:56 PM Changeset in webkit [225037] by Darin Adler
  • 38 edits in trunk/Source

Eliminate some cases of double hashing, other related refactoring
https://bugs.webkit.org/show_bug.cgi?id=179867

Reviewed by Sam Weinig.

Source/WebCore:

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::objectStore): Use get instead of find.

  • Modules/mediasource/MediaSourceRegistry.cpp:

(WebCore::MediaSourceRegistry::unregisterURL): Use take instead of find/remove.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::~AXObjectCache): Call setAXObjectID instead of
using the removeAXID, which doesn't do anything else useful in the destructor.
(WebCore::AXObjectCache::remove): Use take instead of get/remove. Also rearrange
logic to eliminate the removeAXID function.
(WebCore::AXObjectCache::removeAXID): Deleted. This only did two things,
setAXObjectID(0) and remove from m_idsInUse, and was only called in one place
besides the destructor. Clearer to not have this funtion.
(WebCore::AXObjectCache::visiblePositionForTextMarkerData): Use m_idsInUse
directly instead of using a function.

  • accessibility/AXObjectCache.h: Deleted removeAXID and isIDinUse.
  • dom/Document.cpp:

(WebCore::Document::removedLastRef): Call UserActionElementSet::clear instead
of UserActionElementSet::documentDidRemoveLastRef; new name fo the same function.
(WebCore::Document::updateHoverActiveState): Use a reference when calling
setInActiveChain.

  • dom/Element.cpp:

(WebCore::Element::isUserActionElementInActiveChain const): Pass reference
instead of pointer.
(WebCore::Element::isUserActionElementActive const): Ditto.
(WebCore::Element::isUserActionElementFocused const): Ditto.
(WebCore::Element::isUserActionElementHovered const): Ditto.
(WebCore::Element::setActive): Ditto.
(WebCore::Element::setFocus): Ditto.
(WebCore::Element::setHovered): Ditto.
(WebCore::Element::clearHoverAndActiveStatusBeforeDetachingRenderer): Ditto.

  • dom/GenericEventQueue.cpp:

(WebCore::GenericEventQueue::resume): Removed unneeded speical case for
empty vector.

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet): Updated now that
parseAttributes returns an optional instead of using a boolean "OK" out argument.

  • dom/SelectorQuery.cpp:

(WebCore::SelectorQueryCache::add): Use get instead of find.

  • dom/UserActionElementSet.cpp:

(WebCore::UserActionElementSet::didDetach): Deleted. Moved to class definition and
named clearActiveAndHovered.
(WebCore::UserActionElementSet::clear): Renamed documentDidRemoveLastRef to clear.
(WebCore::UserActionElementSet::hasFlag const): Renamed from hasFlags and also
take reference and enumeration instead of pointer and unsigned. Makes it clearer
this does not allow null and that it works on a single flag, not a set of flags.
(WebCore::UserActionElementSet::clearFlags): Changed argument types to reference
and OptionSet to make it clear this works on a set of flags.
(WebCore::UserActionElementSet::setFlags): Ditto.

  • dom/UserActionElementSet.h: Updated for changes above. Also made some name

changes, and used an enum class instead of an enum.

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::saveFormControlState const): Updated since
FormControlState is now just a vector, not a class.

  • html/FileInputType.cpp:

(WebCore::FileInputType::filesFromFormControlState): Ditto.
(WebCore::FileInputType::restoreFormControlState): Removed unneeded check that
valueSize is a multiple of 2. Code will ignore any extra strings at the end, so
there is no need for the validity check.

  • html/FormController.cpp:

(WebCore::serializeFormControlStateTo): Made a non-member function since
FormControlState is now just a vector, not a class.
(WebCore::deserializeFormControlState): Ditto. Also return optional instead
of relying on a special failure state.
(WebCore::SavedFormState::deserialize): Updated for above changes.
(WebCore::SavedFormState::serializeTo const): Ditto.
(WebCore::SavedFormState::appendControlState): Use add instead of both find and add
to avoid double hashing.
(WebCore::SavedFormState::takeControlState): Removed unneeded check for empty
hash table and tweaked coding style.
(WebCore::SavedFormState::referencedFilePaths const): Renamed to remove "get".
(WebCore::FormKeyGenerator::formKey): Use ensure instead of find and add.
(WebCore::FormController::formElementsCharacterCount const): Don't call
saveFormControlState for non-text-form-controls since we ignored those values.
(WebCore::FormController::willDeleteForm): Take a reference.
(WebCore::FormController::restoreControlStateFor): Update since FormControlState
is now a vector.
(WebCore::FormController::restoreControlStateIn): Use is/downcast and update
since FormControlState is now a vector.
(WebCore::FormController::referencedFilePaths): Renamed to remove "get".
(WebCore::FormController::registerFormElementWithState):Take a reference.
(WebCore::FormController::unregisterFormElementWithState): Ditto.

  • html/FormController.h: Removed FormControlState class since it was just a

Vector<String> with various unneeded features, such as a "failure" state,
and a never-looked-at type of "skip" or "restore". Updated for other changes
above.

  • html/HTMLFormControlElementWithState.cpp:

(WebCore::HTMLFormControlElementWithState::insertedIntoAncestor): Pass reference.
(WebCore::HTMLFormControlElementWithState::removedFromAncestor): Ditto.

  • html/HTMLFormControlElementWithState.h: Updated for the above. Also added

support for using is/downcast on this.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::~HTMLFormElement): Pass reference.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::saveFormControlState const): Use reserveInitialCapacit
and uncheckedAppend.
(WebCore::HTMLSelectElement::restoreFormControlState): Updated since state is now
a vector.

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::saveFormControlState const): Ditto.

  • html/HiddenInputType.cpp:

(WebCore::HiddenInputType::saveFormControlState const): Ditto.

  • html/InputType.cpp:

(WebCore::InputType::saveFormControlState const): Ditto.

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::forcePseudoState): Use get instead of find/end and got
rid of uneeded special case. In another overload, ue add and remove instead of
a find followed by a set or a remove.
(WebCore::InspectorCSSAgent::asInspectorStyleSheet): Use ensure instead of find/set.
(WebCore::InspectorCSSAgent::didRemoveDOMNode): Use take instead of find/remove.
(WebCore::InspectorCSSAgent::didModifyDOMAttr): Use get instead of find.

  • inspector/agents/InspectorCSSAgent.h: Removed unneeded NodeToInspectorStyleSheet

typedef and changed value type to Ref instead of RefPtr.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::unbind): Use remove instead of contains/remove.
(WebCore::InspectorDOMAgent::nodeForId): Use isValidKey instead of just checking for
0 and use get instead of find.
(WebCore::InspectorDOMAgent::setAttributesAsText): Take out bogus const.
(WebCore::InspectorDOMAgent::moveTo): Ditto.
(WebCore::InspectorDOMAgent::resolveNode): Ditto.
(WebCore::InspectorDOMAgent::isWhitespace): Added FIXME. Use is<Text> instead of
slower nodeType.

  • inspector/agents/InspectorDOMAgent.h: Removed bogus const.
  • inspector/agents/InspectorLayerTreeAgent.cpp:

(WebCore::InspectorLayerTreeAgent::bind): Use ensure instead of get/set.
(WebCore::InspectorLayerTreeAgent::unbind): Use take instead of find/remove.
(WebCore::InspectorLayerTreeAgent::bindPseudoElement): Use ensure instead of get/set.
(WebCore::InspectorLayerTreeAgent::unbindPseudoElement): Use take instead of
find/remove.

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::getCookies): Use add instead of contains/add.
(WebCore::InspectorPageAgent::frameDetached): Use take instead of find/remove.
(WebCore::InspectorPageAgent::frameId): Use ensure instead of get/set.
(WebCore::InspectorPageAgent::loaderId): Use ensure instead of get/set.
(WebCore::InspectorPageAgent::findFrameWithSecurityOrigin): Got rid of unneeded
local variable.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::sessionID const): Tweaked coding style and added
a null check for page.
(WebCore::CachedResourceLoader::requestResource): Call page directly on the frame
instead of first getting the main frame. Also use take instead of find/remove.
(WebCore::CachedResourceLoader::removeCachedResource): Rewrite assertion.

  • platform/graphics/FontGenericFamilies.cpp:

(WebCore::setGenericFontFamilyForScript): Use remove instead of find/remove.
Simplified the logic a bit in the add case.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::pauseAnimation): Use add instead of find/add.
Removed code that said "if (action != Remove) action = Pause" since that is a
no-op; there are only two actions, Remove and Pause.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsScript): Use makeString instead of StringBuilder.
(WebCore::RenderThemeMac::systemColor const): Rewrote to use ensure instead of add.
Also crunched the code a little.

  • testing/Internals.cpp:

(WebCore::Internals::getReferencedFilePaths const): Updated function name.

  • xml/parser/XMLDocumentParser.h: Updated for change below.
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::attributesStartElementNsHandler): Updated to use std::optional instead of
a separate boolean for AttributeParseState.
(WebCore::parseAttributes): Ditto. Also changed the return value to work the same way.

Source/WTF:

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::containsOnlyWhitespace): Added FIXME.

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

Clean up gradient code in preparation for conic gradients
https://bugs.webkit.org/show_bug.cgi?id=179595

Patch by Sam Weinig <sam@webkit.org> on 2017-11-19
Reviewed by Darin Adler.

  • Switches Gradient to use a Varient with type specific data structs and makes the points / radii immutable.
  • Replaces CSSGradientValue::addStops with template function CSSGradientValue::computeStops which dispatches to a helper adoptor struct which is passed in for gradient type specific values, rather than switching on type in the function itself. In addition, the function no longer mutates a Gradient, but rather mutates type specific the data struct (e.g. Linear or Radial for now).
  • css/CSSGradientValue.cpp:

(WebCore::LinearGradientAdaptor::LinearGradientAdaptor):
(WebCore::RadialGradientAdaptor::RadialGradientAdaptor):

Add helper structs for the now templatized CSSGradientValue::computeStops that
implement type specific functionality.

(WebCore::CSSGradientValue::computeStops):

Renamed from addStops. Now takes a GradientAdaptor wrapper which abstracts out
the gradient type specific functionlity.

(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):
(WebCore::CSSConicGradientValue::createGradient):

Update to call computeStops and use new Gradient create function.

  • css/CSSGradientValue.h:

Update for new signature for computeStops.

  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::CanvasGradient):

Update to use new Gradient create function.

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildArrayForCanvasGradient):

Update to get gradient point / radii information from the data accessor.

  • platform/graphics/Gradient.cpp:

(WebCore::Gradient::Gradient):

Update constructors to the new data structs.

(WebCore::Gradient::type const):

Add helper to get the type of the varient, need for inspector code.

(WebCore::Gradient::adjustParametersForTiledDrawing):
(WebCore::Gradient::isZeroSize const):
(WebCore::Gradient::hash const):

Update to switch on the underlying variant to get data values.

(WebCore::Gradient::addColorStop):

Simplify by having one addColorStop call the other.

(WebCore::Gradient::setSortedColorStops):

Added. Replaces setStopsSorted. Used now that CSSGradientValue computes and sorts
its color stops before creating the gradient.

  • platform/graphics/Gradient.h:

(WebCore::Gradient::create):

Replace create functions with ones that take data structs.

(WebCore::Gradient::data const):

Add accessor for the underlying variant.

(WebCore::Gradient::isRadial const): Deleted.

Replaced by type accessor.

(WebCore::Gradient::p0 const): Deleted.
(WebCore::Gradient::p1 const): Deleted.
(WebCore::Gradient::setP0): Deleted.
(WebCore::Gradient::setP1): Deleted.
(WebCore::Gradient::startRadius const): Deleted.
(WebCore::Gradient::endRadius const): Deleted.
(WebCore::Gradient::setStartRadius): Deleted.
(WebCore::Gradient::setEndRadius): Deleted.

Point and radii are now immutable.

(WebCore::Gradient::setStopsSorted): Deleted.

Replaced by setSortedColorStops function.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::fillRect):

Pass the GraphicsContext by reference.

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::Gradient::createPlatformGradient):

Update to switch on the underlying variant to get data values.

(WebCore::Gradient::fill):

Pass the GraphicsContext by reference.

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::platformDestroy):

Use nullptr.

(WebCore::Gradient::fill):

Pass the GraphicsContext by reference.

(WebCore::Gradient::paint):

Update to switch on the underlying variant to get data values.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::strokeRect):

Pass the GraphicsContext by reference.

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::generateGradient):

Update to switch on the underlying variant to get data values.

(WebCore::Gradient::fill):

Pass the GraphicsContext by reference.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintProgressBar):

  • rendering/svg/RenderSVGResourceLinearGradient.cpp:

(WebCore::RenderSVGResourceLinearGradient::buildGradient const):

  • rendering/svg/RenderSVGResourceRadialGradient.cpp:

(WebCore::RenderSVGResourceRadialGradient::buildGradient const):

Update for new Gradient create function signature.

1:57 PM Changeset in webkit [225035] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Use TypedArrayView's setRange() in FETurbulence
https://bugs.webkit.org/show_bug.cgi?id=179878

Reviewed by Sam Weinig.

Writing the 4 component values at once makes the function about 10% faster.

  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::fillRegion const):

1:56 PM Changeset in webkit [225034] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Fix potential thread safety issue in generateThreadSafeObjectIdentifier()
https://bugs.webkit.org/show_bug.cgi?id=179877

Reviewed by Sam Weinig.

Fix potential thread safety issue in generateThreadSafeObjectIdentifier().
Protect std::atomic initialization with an std::call_once() given that we
build with --fno-threadsafe-statics.

  • wtf/ObjectIdentifier.h:

(WTF::generateThreadSafeObjectIdentifier):

7:06 AM WebKitGTK/2.18.x edited by Adrian Perez de Castro
(diff)
12:19 AM Changeset in webkit [225033] by Yusuke Suzuki
  • 5 edits
    2 deletes in trunk/Tools

Unreviewed, rolling out r225016.

Break webkit-patch on Ubuntu and Debian Linux

Reverted changeset:

"webkitpy: Better name-version mapping (Part 1)"
https://bugs.webkit.org/show_bug.cgi?id=179621
https://trac.webkit.org/changeset/225016

12:07 AM Changeset in webkit [225032] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

[WTF] Use system endianess information instead of relying CPU information
https://bugs.webkit.org/show_bug.cgi?id=179861

Reviewed by JF Bastien.

Currently, we use known CPU information to determine endianess of the current
architecture. But this means that unknown CPU does not work well in WebKit
withou modifying code. Instead, we use compiler or system's macro to determine
endianess. This paves the way to dropping many CPUs in Platform.h by replacing
them with CPU(UNKNOWN)[1].

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

  • wtf/Platform.h:
Note: See TracTimeline for information about the timeline view.