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

Timeline



Dec 17, 2017:

9:24 PM Changeset in webkit [226017] by Yusuke Suzuki
  • 8 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Use IsoSpace for JSWeakMap and JSWeakSet to use finalizeUnconditionally
https://bugs.webkit.org/show_bug.cgi?id=180916

Reviewed by Darin Adler.

This patch drops UnconditionalFinalizer for JSWeakMap and JSWeakSetby using IsoSpace.
Since these cells always require calling finalizeUnconditionally, we do not need to
track cells by using IsoCellSet.

Currently we still have WeakReferenceHarvester in JSWeakMap and JSWeakSet. We should
avoid using a global linked-list for this in the future.

(JSC::Heap::finalizeUnconditionalFinalizersInIsoSubspace):
(JSC::Heap::finalizeUnconditionalFinalizers):

  • heap/Heap.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • runtime/WeakMapImpl.cpp:

(JSC::WeakMapImpl<WeakMapBucket>::visitChildren):
(JSC::WeakMapImpl<WeakMapBucket>::finalizeUnconditionally): Deleted.

  • runtime/WeakMapImpl.h:

(JSC::WeakMapImpl::isWeakMap):
(JSC::WeakMapImpl::isWeakSet):
(JSC::WeakMapImpl::subspaceFor):

  • runtime/WeakMapImplInlines.h: Added.

(JSC::WeakMapImpl<WeakMapBucket>::finalizeUnconditionally):

7:44 PM Changeset in webkit [226016] by wilander@apple.com
  • 22 edits
    5 adds in trunk

Storage Access API: Make document.hasStorageAccess() retrieve current status from the network process
https://bugs.webkit.org/show_bug.cgi?id=180681
<rdar://problem/35982161>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction.html

http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction.html

This change makes an asynchronous request to the network process
to see if storage access has been granted for this frame, on this
page, for this domain.

  • dom/Document.cpp:

(WebCore::Document::hasStorageAccess):

  • page/ChromeClient.h:

Source/WebKit:

This change makes an asynchronous request to the network process
to see if storage access has been granted for this frame, on this
page, for this domain.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::hasStorageAccessForPrevalentDomains):
(WebKit::NetworkProcess::updateStorageAccessForPrevalentDomains):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::hasStorageAccessForPrevalentDomains):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::hasStorageAccess):

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

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::hasStorageAccessForPrevalentDomainsHandler):
(WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback):
(WebKit::WebsiteDataStore::hasStorageAccess):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::hasStorageAccess):

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

(WebKit::WebPage::hasStorageAccess):

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

This change makes an asynchronous request to the network process
to see if storage access has been granted for this frame, on this
page, for this domain.

  • http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction.html: Added.
  • http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction.html: Added.
  • http/tests/storageAccess/resources/has-storage-access-iframe.html: Added.
  • platform/mac-wk2/TestExpectations:

New tests marked as [ Pass ].
All http/tests/storageAccess/ tests marked [ HighSierra+ ] since
document.hasStorageAccess() now requires code that relies on cookie
partitioning.

3:22 PM Changeset in webkit [226015] by mark.lam@apple.com
  • 12 edits
    4 adds in trunk

Enhance Ref and RefPtr to be able to work with smart pointers.
https://bugs.webkit.org/show_bug.cgi?id=180762
<rdar://problem/36027122>

Reviewed by JF Bastien and Darin Adler.

Source/WTF:

This is so we can use them with ConstExprPoisoned pointers to make PoisonedRef
and PoisonedRefPtr.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/DumbPtrTraits.h: Added.

(WTF::DumbPtrTraits::exchange):
(WTF::DumbPtrTraits::swap):
(WTF::DumbPtrTraits::unwrap):

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

(WTF::ConstExprPoisonedPtrTraits::exchange):
(WTF::ConstExprPoisonedPtrTraits::swap):
(WTF::ConstExprPoisonedPtrTraits::unwrap):

  • wtf/Ref.h:

(WTF::Ref::~Ref):
(WTF::Ref::Ref):
(WTF::Ref::ptrAllowingHashTableEmptyValue const):
(WTF::Ref::ptrAllowingHashTableEmptyValue):
(WTF::Ref::operator-> const):
(WTF::Ref::get const):
(WTF::Ref::operator T& const):
(WTF::=):
(WTF::U>::swap):
(WTF::swap):
(WTF::U>::replace):
(WTF::static_reference_cast):
(WTF::adoptRef):
(WTF::is):
(WTF::Ref<T>::swap): Deleted.
(WTF::Ref<T>::replace): Deleted.
(WTF::GetPtrHelper<Ref<T>>::getPtr): Deleted.

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

(WTF::RefPtr::RefPtr):
(WTF::RefPtr::~RefPtr):
(WTF::RefPtr::get const):
(WTF::RefPtr::operator* const):
(WTF::RefPtr::operator-> const):
(WTF::U>::RefPtr):
(WTF::U>::leakRef):
(WTF::=):
(WTF::U>::swap):
(WTF::swap):
(WTF::operator==):
(WTF::operator!=):
(WTF::static_pointer_cast):
(WTF::adoptRef):
(WTF::is):
(WTF::RefPtr<T>::RefPtr): Deleted.
(WTF::RefPtr<T>::leakRef): Deleted.
(WTF::RefPtr<T>::swap): Deleted.

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Poisoned.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/PoisonedRef.cpp: Added.

(TestWebKitAPI::TEST):
(TestWebKitAPI::passWithRef):
(TestWebKitAPI::PoisonedRefCheckingRefLogger::PoisonedRefCheckingRefLogger):
(TestWebKitAPI::PoisonedRefCheckingRefLogger::ref):
(TestWebKitAPI::PoisonedRefCheckingRefLogger::deref):
(TestWebKitAPI::DerivedPoisonedRefCheckingRefLogger::DerivedPoisonedRefCheckingRefLogger):

  • TestWebKitAPI/Tests/WTF/PoisonedRefPtr.cpp: Added.

(TestWebKitAPI::TEST):
(TestWebKitAPI::f1):
(TestWebKitAPI::ConstRefCounted::create):
(TestWebKitAPI::returnConstRefCountedRef):
(TestWebKitAPI::returnRefCountedRef):
(TestWebKitAPI::PoisonedRefPtrCheckingRefLogger::PoisonedRefPtrCheckingRefLogger):
(TestWebKitAPI::loggerName):
(TestWebKitAPI::PoisonedRefPtrCheckingRefLogger::ref):
(TestWebKitAPI::PoisonedRefPtrCheckingRefLogger::deref):

1:15 PM Changeset in webkit [226014] by Chris Dumez
  • 4 edits in trunk

Strip fragment identifier from ServiceWorker's scriptURL
https://bugs.webkit.org/show_bug.cgi?id=180887

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more check is passing.

  • web-platform-tests/service-workers/service-worker/serviceworkerobject-scripturl.https-expected.txt:

Source/WebCore:

Strip fragment identifier from ServiceWorker's scriptURL to match Firefox and Chrome.
This behavior does not appear to be specified so I filed:

No new tests, rebaselined existing test.

  • workers/service/server/SWServerWorker.cpp:

(WebCore::m_script):

1:11 PM Changeset in webkit [226013] by Antti Koivisto
  • 4 edits
    14 moves
    1 add in trunk/Source/WebCore

Move render tree updating related files under rendering/updating/
https://bugs.webkit.org/show_bug.cgi?id=180918

Reviewed by Darin Adler.

  • CMakeLists.txt:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderTreeBuilder.cpp: Removed.
  • rendering/RenderTreeBuilder.h: Removed.
  • rendering/updating: Added.
  • rendering/updating/RenderTreeBuilder.cpp: Copied from Source/WebCore/rendering/RenderTreeBuilder.cpp.
  • rendering/updating/RenderTreeBuilder.h: Copied from Source/WebCore/rendering/RenderTreeBuilder.h.
  • rendering/updating/RenderTreePosition.cpp: Copied from Source/WebCore/style/RenderTreePosition.cpp.
  • rendering/updating/RenderTreePosition.h: Copied from Source/WebCore/style/RenderTreePosition.h.
  • rendering/updating/RenderTreeUpdater.cpp: Copied from Source/WebCore/style/RenderTreeUpdater.cpp.
  • rendering/updating/RenderTreeUpdater.h: Copied from Source/WebCore/style/RenderTreeUpdater.h.
  • rendering/updating/RenderTreeUpdaterFirstLetter.cpp: Copied from Source/WebCore/style/RenderTreeUpdaterFirstLetter.cpp.
  • rendering/updating/RenderTreeUpdaterFirstLetter.h: Copied from Source/WebCore/style/RenderTreeUpdaterFirstLetter.h.
  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp: Copied from Source/WebCore/style/RenderTreeUpdaterGeneratedContent.cpp.
  • rendering/updating/RenderTreeUpdaterGeneratedContent.h: Copied from Source/WebCore/style/RenderTreeUpdaterGeneratedContent.h.
  • rendering/updating/RenderTreeUpdaterListItem.cpp: Copied from Source/WebCore/style/RenderTreeUpdaterListItem.cpp.
  • rendering/updating/RenderTreeUpdaterListItem.h: Copied from Source/WebCore/style/RenderTreeUpdaterListItem.h.
  • rendering/updating/RenderTreeUpdaterMultiColumn.cpp: Copied from Source/WebCore/style/RenderTreeUpdaterMultiColumn.cpp.
  • rendering/updating/RenderTreeUpdaterMultiColumn.h: Copied from Source/WebCore/style/RenderTreeUpdaterMultiColumn.h.
  • style/RenderTreePosition.cpp: Removed.
  • style/RenderTreePosition.h: Removed.
  • style/RenderTreeUpdater.cpp: Removed.
  • style/RenderTreeUpdater.h: Removed.
  • style/RenderTreeUpdaterFirstLetter.cpp: Removed.
  • style/RenderTreeUpdaterFirstLetter.h: Removed.
  • style/RenderTreeUpdaterGeneratedContent.cpp: Removed.
  • style/RenderTreeUpdaterGeneratedContent.h: Removed.
  • style/RenderTreeUpdaterListItem.cpp: Removed.
  • style/RenderTreeUpdaterListItem.h: Removed.
  • style/RenderTreeUpdaterMultiColumn.cpp: Removed.
  • style/RenderTreeUpdaterMultiColumn.h: Removed.
12:57 PM Changeset in webkit [226012] by mark.lam@apple.com
  • 6 edits
    1 delete in trunk/Source/JavaScriptCore

Hollow out stub implementation of InspectorBackendDispatcher::sendResponse().
https://bugs.webkit.org/show_bug.cgi?id=180901
<rdar://problem/36087649>

Reviewed by Darin Adler.

We only need to keep a deprecated implementation of InspectorValues,
InspectorObjects, and InspectorBackendDispatcher::sendResponse() around so that
older versions of Safari can link against and run with a build of the latest code
in WebKit trunk. Older versions of System Safari used InspectorValues (via
WebInspector.framework) for two things:

  1. Augmented JSContexts SPIs (via WebInspector.framework).
  2. maybe WebDriver.

Neither of these are used when running SafariForWebKitDevelopment. Since neither
are used, we can stub out the symbols (InspectorValues, InspectorObjects,
InspectorBackendDispatcher::sendResponse) to do nothing, and
SafariForWebKitDevelopment will still continue to launch with trunk WebKit, and
run without any observable bad behavior.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • SourcesCocoa.txt:
  • inspector/InspectorBackendDispatcher.cpp:
  • inspector/InspectorBackendDispatcher.h:
  • inspector/cocoa/DeprecatedInspectorValues.cpp:

(Inspector::InspectorValue::null):
(Inspector::InspectorValue::create):
(Inspector::InspectorValue::asValue):
(Inspector::InspectorValue::asObject):
(Inspector::InspectorValue::asArray):
(Inspector::InspectorValue::parseJSON):
(Inspector::InspectorValue::toJSONString const):
(Inspector::InspectorValue::asBoolean const):
(Inspector::InspectorValue::asDouble const):
(Inspector::InspectorValue::asInteger const):
(Inspector::InspectorValue::asString const):
(Inspector::InspectorValue::writeJSON const):
(Inspector::InspectorValue::memoryCost const):
(Inspector::InspectorObjectBase::openAccessors):
(Inspector::InspectorObjectBase::memoryCost const):
(Inspector::InspectorObjectBase::getBoolean const):
(Inspector::InspectorObjectBase::getString const):
(Inspector::InspectorObjectBase::getObject const):
(Inspector::InspectorObjectBase::getArray const):
(Inspector::InspectorObjectBase::getValue const):
(Inspector::InspectorObjectBase::remove):
(Inspector::InspectorObject::create):
(Inspector::InspectorArrayBase::get const):
(Inspector::InspectorArrayBase::memoryCost const):
(Inspector::InspectorArray::create):
(Inspector::BackendDispatcher::sendResponse):
(Inspector::InspectorObjectBase::~InspectorObjectBase): Deleted.
(Inspector::InspectorObjectBase::asObject): Deleted.
(Inspector::InspectorObjectBase::writeJSON const): Deleted.
(Inspector::InspectorObjectBase::InspectorObjectBase): Deleted.
(Inspector::InspectorArrayBase::~InspectorArrayBase): Deleted.
(Inspector::InspectorArrayBase::asArray): Deleted.
(Inspector::InspectorArrayBase::writeJSON const): Deleted.
(Inspector::InspectorArrayBase::InspectorArrayBase): Deleted.

  • inspector/cocoa/DeprecatedInspectorValues.h: Removed.
11:35 AM Changeset in webkit [226011] by Yusuke Suzuki
  • 14 edits in trunk/Source

[JSC][WebCore][CSSJIT] Remove VM reference in CSSJIT
https://bugs.webkit.org/show_bug.cgi?id=180917

Reviewed by Sam Weinig.

Source/JavaScriptCore:

We do not need to hold JIT flags in VM. We add
static VM::{canUseJIT,canUseAssembler,canUseRegExpJIT} functions.

  • interpreter/AbstractPC.cpp:

(JSC::AbstractPC::AbstractPC):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiNativeCall):
(JSC::JITThunks::ctiNativeConstruct):
(JSC::JITThunks::ctiNativeTailCall):
(JSC::JITThunks::ctiNativeTailCallWithoutSavedTags):
(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):
(JSC::JITThunks::hostFunctionStub):

  • llint/LLIntEntrypoint.cpp:

(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::shouldJIT):
(JSC::LLInt::entryOSR):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/RegExp.cpp:

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

  • runtime/VM.cpp:

(JSC::VM::canUseAssembler):
(JSC::VM::canUseJIT):
(JSC::VM::canUseRegExpJIT):
(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::canUseJIT): Deleted.
(JSC::VM::canUseRegExpJIT): Deleted.

Source/WebCore:

Remove VM reference in CSSJIT. CSSJIT should not be
bound to a specific VM.

No behavior change.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ruleMatches):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::compileSelector):

  • cssjit/SelectorCompiler.h:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::compileSelector):
(WebCore::SelectorDataList::execute const):

  • dom/SelectorQuery.h:
2:53 AM Changeset in webkit [226010] by Yusuke Suzuki
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Number of SlotVisitors can increase after setting up m_visitCounters
https://bugs.webkit.org/show_bug.cgi?id=180906

Reviewed by Filip Pizlo.

The number of SlotVisitors can increase after setting up m_visitCounters.
If it happens, our m_visitCounters misses the visit count of newly added
SlotVisitors. It accidentally decides that constraints are converged.
This leads to random assertion hits in Linux environment.

In this patch, we compare the number of SlotVisitors in didVisitSomething().
If the number of SlotVisitors is changed, we conservatively say we did
visit something.

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

(JSC::Heap::numberOfSlotVisitors):

  • heap/MarkingConstraintSet.h:
  • heap/MarkingConstraintSolver.cpp:

(JSC::MarkingConstraintSolver::didVisitSomething const):

Dec 16, 2017:

6:54 PM Changeset in webkit [226009] by commit-queue@webkit.org
  • 4 edits
    1 copy
    6 adds in trunk/Tools

Add a script to automate W3c web-platform-tests pull request creations from WebKit commits
https://bugs.webkit.org/show_bug.cgi?id=169462

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-16
Reviewed by Darin Adler.

Adding some git helper routines used by WPT exporter.
Copying WPT github utility files from Chromium.
Updating web.py/web_mock.py to cope with these new files.

Implementing test exporter in test_exporter.py.
This script takes a WebKit commit as input and will create a WPT commit in a local WPT clone.
It will then push the commit to a public GitHub repository identified by a username parameter.
This parameter is passed through the command line or searched through git config/environment variables.

The script can optionally create a pull request to the official WPT GitHub repository.
User must provide a GitHub token to allow the script to make the PR on behalf of the user.
In that case, a comment is added to the corresponding bugzilla if a bug ID is given or can be found from the change log,
to easily link the pull request with the bugzilla bug.

  • Scripts/export-w3c-test-changes: Added.
  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.reset_hard):
(Git):
(Git.am):
(Git.commit):
(Git.format_patch):
(Git.request_pull):
(Git.remote):
(Git.push):
(Git.checkout_new_branch):

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

(Web.request): Copied from Chromium.

  • Scripts/webkitpy/common/net/web_mock.py: Copied needed code from Chromium.
  • Scripts/webkitpy/w3c/test_exporter.py: Added.

(TestExporter):
(TestExporter.init):
(TestExporter._init_repository):
(TestExporter.download_and_commit_patch):
(TestExporter.clean):
(TestExporter.create_branch_with_patch):
(TestExporter.push_to_public_repository):
(TestExporter.make_pull_request):
(TestExporter.delete_local_branch):
(TestExporter.create_git_patch):
(TestExporter.create_upload_remote_if_needed):
(TestExporter.do_export):
(parse_args):
(configure_logging):
(configure_logging.LogHandler):
(configure_logging.LogHandler.format):
(main):

  • Scripts/webkitpy/w3c/test_exporter_unittest.py: Added.

(TestExporterTest):
(TestExporterTest.MockBugzilla):
(TestExporterTest.MockBugzilla.init):
(TestExporterTest.MockBugzilla.fetch_bug_dictionary):
(TestExporterTest.MockBugzilla.post_comment_to_bug):
(TestExporterTest.MockGit):
(TestExporterTest.MockGit.clone):
(TestExporterTest.MockGit.init):
(TestExporterTest.MockGit.fetch):
(TestExporterTest.MockGit.checkout):
(TestExporterTest.MockGit.reset_hard):
(TestExporterTest.MockGit.push):
(TestExporterTest.MockGit.format_patch):
(TestExporterTest.MockGit.delete_branch):
(TestExporterTest.MockGit.checkout_new_branch):
(TestExporterTest.MockGit.am):
(TestExporterTest.MockGit.commit):
(TestExporterTest.MockGit.remote):
(TestExporterTest.test_export):

  • Scripts/webkitpy/w3c/common.py: Copied from chromium.
  • Scripts/webkitpy/w3c/wpt_github.py: Copied from chromium.
  • Scripts/webkitpy/w3c/wpt_github_mock.py: Copied from chromium.
  • Scripts/webkitpy/w3c/wpt_github_unittest.py: Copied from chromium.
12:57 PM Changeset in webkit [226008] by mitz@apple.com
  • 22 edits
    1 add in trunk

WKWebView has no equivalent of -[WebView setAlwaysShowVerticalScroller:]
https://bugs.webkit.org/show_bug.cgi?id=180613
<rdar://problem/35946124>

Reviewed by Geoff Garen.

Source/WebCore:

Test: TestWebKitAPI/Tests/WebKitCocoa/WKWebViewAlwaysShowsScroller.mm

  • platform/ScrollView.h: Exported setScrollbarModes.

Source/WebKit:

Added _alwaysShowsHorizontalScroller and _alwaysShowsVerticalScroller properties to
WKWebView.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const): Encode new alwaysShowsHorizontalScroller

and alwaysShowsVerticalScroller parameters.

(WebKit::WebPageCreationParameters::decode): Decode new parameters.

  • Shared/WebPageCreationParameters.h: Added new alwaysShowsHorizontalScroller and alwaysShowsVerticalScroller boolean parameters.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _alwaysShowsHorizontalScroller]): New accessor that calls through to the

WebPageProxy.

(-[WKWebView _setAlwaysShowsHorizontalScroller:]): Ditto.
(-[WKWebView _alwaysShowsVerticalScroller]): Ditto.
(-[WKWebView _setAlwaysShowsVerticalScroller:]): Ditto.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Declare new properties.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setAlwaysShowsHorizontalScroller): Update member variable and send

a message to the page.

(WebKit::WebPageProxy::setAlwaysShowsVerticalScroller): Ditto.
(WebKit::WebPageProxy::creationParameters): Initialize new parameters from the new member

variables.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::alwaysShowsHorizontalScroller const): New getter.
(WebKit::WebPageProxy::alwaysShowsVerticalScroller const): Ditto.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Factor

alwaysShowsHorizontalScroller and alwaysShowsVerticalScroller into the initial scroller
modes and scroller locks when creating the FrameView.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Initialize new m_alwaysShowsHorizontalScroller and

m_alwaysShowsVerticalScroller member variables from the corresponding new creation
parameters.

(WebKit::WebPage::setAlwaysShowsHorizontalScroller): Update the member variable and set

new scrollbar mode on the frame view if needed.

(WebKit::WebPage::setAlwaysShowsVerticalScroller): Ditto.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::alwaysShowsHorizontalScroller const): New getter.
(WebKit::WebPage::alwaysShowsVerticalScroller const): Ditto.

  • WebProcess/WebPage/WebPage.messages.in: Added new messages.

Source/WebKitLegacy/mac:

  • WebKit.mac.exp: Removed WebCoreScrollbarAlwaysOn, which is no longer being used by any clients.
  • WebView/WebDynamicScrollBarsView.h: Ditto.
  • WebView/WebDynamicScrollBarsView.mm: Ditto.

Tools:

  • MiniBrowser/mac/MainMenu.xib: Added Always Show {Horizontal,Vertical} Scroller menu items to the View menu.
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]): Set the state of the new menu items based

on -alwaysShow{Horizontal,Vertical}Scroller.

(-[WK1BrowserWindowController toggleAlwaysShowsHorizontalScroller:]): Toggle the value.
(-[WK1BrowserWindowController toggleAlwaysShowsVerticalScroller:]): Ditto.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]): Set the state of the new menu items based

on the new property.

(-[WK2BrowserWindowController toggleAlwaysShowsHorizontalScroller:]): Toggle the property.
(-[WK2BrowserWindowController toggleAlwaysShowsVerticalScroller:]): Ditto.

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

(TEST):

11:07 AM Changeset in webkit [226007] by Antti Koivisto
  • 57 edits
    1 copy
    1 add in trunk/Source/WebCore

Introduce RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=180817

Reviewed by Zalan Bujtas.

RenderTreeBuilder is responsible of building the render tree, including construction of various anonymous
renderers. Renderer subtype specific render tree construction code will eventually move there.

This patch adds RenderTreeBuilder class and passes it as a parameter for all addChild implementations.
Future patches can then mechanically move the building code from renderers to RenderTreeBuilder.

It also moves one addChild implementation (RenderRuby::addChild -> RenderTreeBuilder::rubyRunInsertChild)
to RenderTreeBuilder as a test.

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::addChildToContinuation):
(WebCore::RenderBlock::addChild):
(WebCore::RenderBlock::addChildIgnoringContinuation):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::addChild):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::moveChildTo):

  • rendering/RenderButton.cpp:

(WebCore::RenderButton::addChild):
(WebCore::RenderButton::setText):

  • rendering/RenderButton.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::addChild):

  • rendering/RenderElement.h:

(WebCore::RenderElement::addChildIgnoringContinuation):

  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):
(WebCore::RenderFullScreen::createPlaceholder):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::addChild):

  • rendering/RenderGrid.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::addChild):
(WebCore::RenderInline::addChildIgnoringContinuation):
(WebCore::RenderInline::splitInlines):
(WebCore::RenderInline::splitFlow):
(WebCore::RenderInline::addChildToContinuation):
(WebCore::RenderInline::childBecameNonInline):

  • rendering/RenderInline.h:
  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::createInnerBlock):
(RenderMenuList::addChild):
(RenderMenuList::setText):

  • rendering/RenderMenuList.h:
  • rendering/RenderMultiColumnFlow.cpp:

(WebCore::RenderMultiColumnFlow::processPossibleSpannerDescendant):

  • rendering/RenderQuote.cpp:

(WebCore::RenderQuote::updateTextRenderer):
(WebCore::RenderQuote::updateRenderer):

  • rendering/RenderQuote.h:
  • rendering/RenderRuby.cpp:

(WebCore::RenderRubyAsInline::addChild):
(WebCore::RenderRubyAsBlock::addChild):

  • rendering/RenderRuby.h:
  • rendering/RenderRubyBase.h:
  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::rubyBaseSafe):
(WebCore::RenderRubyRun::addChild): Deleted.

  • rendering/RenderRubyRun.h:
  • rendering/RenderTable.cpp:

(WebCore::RenderTable::addChild):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::addChild):

  • rendering/RenderTableRow.h:
  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::addChild):

  • rendering/RenderTableSection.h:
  • rendering/RenderTreeBuilder.cpp: Added.

(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::~RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::rubyRunInsertChild):

  • rendering/RenderTreeBuilder.h: Added.

(WebCore::RenderTreeBuilder::current):

  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingValue::adjustTextNodeSizes):

  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):

  • rendering/mathml/RenderMathMLFenced.h:
  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::addChild):

  • rendering/svg/RenderSVGContainer.h:
  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::addChild):

  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::addChild):

  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::addChild):

  • rendering/svg/RenderSVGText.h:
  • style/RenderTreePosition.cpp:

(WebCore::RenderTreePosition::insert): Deleted.

  • style/RenderTreePosition.h:

(WebCore::RenderTreePosition::RenderTreePosition):
(WebCore::RenderTreePosition::nextSibling const):
(WebCore::RenderTreePosition::canInsert const): Deleted.

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateAfterDescendants):
(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::RenderTreeUpdater::createTextRenderer):
(WebCore::RenderTreeUpdater::updateTextRenderer):
(WebCore::createTextRenderer): Deleted.

  • style/RenderTreeUpdater.h:
  • style/RenderTreeUpdaterFirstLetter.cpp:

(WebCore::updateFirstLetterStyle):
(WebCore::createFirstLetterRenderer):

  • style/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updateQuotesUpTo):
(WebCore::createContentRenderers):
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):

  • style/RenderTreeUpdaterListItem.cpp:

(WebCore::RenderTreeUpdater::ListItem::updateMarker):

  • style/RenderTreeUpdaterListItem.h:
  • style/RenderTreeUpdaterMultiColumn.cpp:

(WebCore::RenderTreeUpdater::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeUpdater::MultiColumn::destroyFragmentedFlow):

11:05 AM Changeset in webkit [226006] by Ms2ger@igalia.com
  • 3 edits
    7 adds in trunk/LayoutTests

Enable wpt fetch tests on WPE.
https://bugs.webkit.org/show_bug.cgi?id=180905

Unreviewed test gardening.

New expectations are copied from GTK.

  • TestExpectations: mark test as flaky on all platforms.
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/http-cache/cc-request-expected.txt: Added.
10:59 AM Changeset in webkit [226005] by romain.bellessort@crf.canon.fr
  • 7 edits in trunk

[Readable Streams API] Fix filling of descriptor from queue
https://bugs.webkit.org/show_bug.cgi?id=172717

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated test expectations.

  • web-platform-tests/streams/readable-byte-streams/detached-buffers-expected.txt: Updated.
  • web-platform-tests/streams/readable-byte-streams/detached-buffers.dedicatedworker-expected.txt: Updated.
  • web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated.
  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt: Updated.

Source/WebCore:

Fixed the filling of descriptor from queue (step 10.d at [1]). When first implemented,
spec comprised a bug and code was not reachable. Spec has now been fixed and code can
now be reached.

[1] https://streams.spec.whatwg.org/#readable-byte-stream-controller-fill-pull-into-descriptor-from-queue

No new tests (covered by WPT tests, whose expectations have been updated).

  • Modules/streams/ReadableByteStreamInternals.js:

(readableByteStreamControllerFillDescriptorFromQueue): Updated.

10:57 AM Changeset in webkit [226004] by commit-queue@webkit.org
  • 3 edits
    8 deletes in trunk/LayoutTests

Skip SharedWorker and NavigationPreload service worker tests
https://bugs.webkit.org/show_bug.cgi?id=180902

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

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/chunked-encoding.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/empty-preload-response-body.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/get-state.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/request-headers.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/resource-timing.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/shared-worker-controlled.https-expected.txt:

LayoutTests:

10:54 AM Changeset in webkit [226003] by beidson@apple.com
  • 5 edits in trunk/Source

Implement getting ServiceWorker registrations for the WKWebsiteDataStore API
https://bugs.webkit.org/show_bug.cgi?id=180886

Reviewed by Chris Dumez.

Source/WebCore:

No new tests (API test coming soon).

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::registrationStoreImportComplete):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::getOriginsWithRegistrations):
(WebCore::SWServer::performGetOriginsWithRegistrationsCallbacks):

  • workers/service/server/SWServer.h:

Source/WebKit:

  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::fetchWebsiteData):

10:33 AM Changeset in webkit [226002] by commit-queue@webkit.org
  • 4 edits in trunk

[WinCairo] Move the destination of WinCairoRequirements.zip into WebKitLibraries and register it and related files as git ignore files.
https://bugs.webkit.org/show_bug.cgi?id=180875

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-12-16
Reviewed by Alex Christensen.

.:

Add files extracted from WinCairoRequirements.zip

  • .gitignore:

Tools:

Bug fix. Specify the download destination correctly.

  • Scripts/update-webkit-wincairo-libs.py:
10:31 AM Changeset in webkit [226001] by jiewen_tan@apple.com
  • 2 edits
    6 adds in trunk/LayoutTests/imported/w3c

[CredentialManagement] Import Credential Management Web Platform Tests
https://bugs.webkit.org/show_bug.cgi?id=172015
<rdar://problem/36083577>

Reviewed by Youenn Fablet.

  • resources/import-expectations.json:
  • web-platform-tests/credential-management/credentialscontainer-create-basics.https-expected.txt: Added.
  • web-platform-tests/credential-management/credentialscontainer-create-basics.https.html: Added.
  • web-platform-tests/credential-management/idl.https-expected.txt: Added.
  • web-platform-tests/credential-management/idl.https.html: Added.
  • web-platform-tests/credential-management/w3c-import.log: Added.
10:20 AM Changeset in webkit [226000] by keith_miller@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Indexing should only be computed when the new structure has an indexing header.
https://bugs.webkit.org/show_bug.cgi?id=180895

Reviewed by Saam Barati.

If we don't have an indexing header then we point the butterfly
sizeof(IndexingHeader) past the end of the butterfly. This makes
the computation of the offset simpler since it doesn't depend on
the indexing headeriness of the butterfly.

  • jit/JITOperations.cpp:
  • runtime/JSObject.cpp:

(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToArrayStorage):

  • runtime/JSObject.h:

(JSC::JSObject::setButterfly):
(JSC::JSObject::nukeStructureAndSetButterfly):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::prepareToPutDirectWithoutTransition):
(JSC::JSObject::putDirectInternal):

9:57 AM Changeset in webkit [225999] by Brent Fulgham
  • 4 edits in trunk

Plugin processes are repeatedly spun up to do nothing
https://bugs.webkit.org/show_bug.cgi?id=180885
<rdar://problem/36082564>

Reviewed by Geoffrey Garen.

Source/WebKit:

Tested by TestWebKitAPI.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData): Don't ask plugins to remove data when no websites are
passed to the function.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(runTestWithWebsiteDataStore): Check that deleting website data did not
trigger any plugin processes to start up.

9:54 AM Changeset in webkit [225998] by Yusuke Suzuki
  • 18 edits in trunk

Remove unnecessary boolean result of start() functions
https://bugs.webkit.org/show_bug.cgi?id=180856

Reviewed by Darin Adler.

Source/WebCore:

No behavior change.

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::~AsyncAudioDecoder):

  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::databaseThread):

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::start):
Now Thread::create always succeeds (if it fails, WebKit crashes).
DatabaseThread::start() now always returns true. So, we do not need
to return bool.

  • Modules/webdatabase/DatabaseThread.h:
  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::start):

  • platform/network/curl/CurlDownload.h:
  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::start):

  • platform/network/curl/ResourceHandleCurlDelegate.cpp:

(WebCore::ResourceHandleCurlDelegate::start):

  • platform/network/curl/ResourceHandleCurlDelegate.h:

Source/WebKitLegacy/win:

It always returns true.

  • WebDownloadCurl.cpp:

(WebDownload::start):

Source/WTF:

CrossThreadTaskHandler's Thread is just released without calling
either waitForCompletion or detach. It means that this resource
of the thread is not released.

  • benchmarks/ConditionSpeedTest.cpp:
  • wtf/CrossThreadTaskHandler.cpp:

(WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):

  • wtf/CrossThreadTaskHandler.h:

Tools:

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:
8:37 AM Changeset in webkit [225997] by Chris Dumez
  • 15 edits
    3 adds
    1 delete in trunk

Add optimization when updating a SW registration results in the exact same script
https://bugs.webkit.org/show_bug.cgi?id=180891

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that all checks are passing.

  • web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:

Source/WebCore:

Add optimization when updating a SW registration results in the exact same script:

No new tests, rebaselined existing test.

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):

LayoutTests:

Skip bad WPT test that is timing out for us and Firefox. I'll file an upstream PR
to fix it.

  • http/tests/workers/service/controller-change.html:
  • http/tests/workers/service/registration-updateViaCache-all-importScripts.html:
  • http/tests/workers/service/registration-updateViaCache-all.html:
  • http/tests/workers/service/registration-updateViaCache-imports-importScripts.html:
  • http/tests/workers/service/registration-updateViaCache-none-importScripts.html:
  • http/tests/workers/service/registration-updateViaCache-none.html:
  • http/tests/workers/service/resources/self_registration_update-worker.js: Removed.
  • http/tests/workers/service/resources/self_registration_update-worker.php: Added.
  • http/tests/workers/service/resources/service-worker-fetch-worker.js:
  • http/tests/workers/service/resources/updating-fetch-worker.php: Added.
  • http/tests/workers/service/resources/updating-worker.php: Added.
  • http/tests/workers/service/self_registration_update.html:
  • http/tests/workers/service/service-worker-registration-gc-event.html:

Undate WebKit-specific tests to reflect behavior change.

1:26 AM Changeset in webkit [225996] by commit-queue@webkit.org
  • 6 edits
    3 adds in trunk

Service worker script fetch request should set the Service-Worker header
https://bugs.webkit.org/show_bug.cgi?id=180889

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

Source/WebCore:

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

Update WorkerScriptLoader to take a request instead of an URL.
Updates Worker implementation and use it in ServiceWorkerJob to set the missing request header.

  • workers/Worker.cpp:

(WebCore::Worker::create):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadAsynchronously):

  • workers/WorkerScriptLoader.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::fetchScriptWithContext):

LayoutTests:

  • http/wpt/service-workers/check-service-worker-header.https-expected.txt: Added.
  • http/wpt/service-workers/check-service-worker-header.https.html: Added.
  • http/wpt/service-workers/check-service-worker-header.py: Added.
Note: See TracTimeline for information about the timeline view.