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

Timeline



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.

Dec 15, 2017:

11:22 PM Changeset in webkit [225995] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

WK1 webrtc/datachannel bufferedAmount tests might time out
https://bugs.webkit.org/show_bug.cgi?id=180882

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-15

  • platform/mac-wk1/TestExpectations: marking tests as flaky.
6:05 PM Changeset in webkit [225994] by Ryan Haddad
  • 57 edits
    2 deletes in trunk/Source/WebCore

Unreviewed, rolling out r225969.

This change introduced LayoutTest crashes.

Reverted changeset:

"Introduce RenderTreeBuilder"
https://bugs.webkit.org/show_bug.cgi?id=180817
https://trac.webkit.org/changeset/225969

4:51 PM Changeset in webkit [225993] by Chris Dumez
  • 3 edits
    100 deletes in trunk/LayoutTests

Drop service workers stubs tests
https://bugs.webkit.org/show_bug.cgi?id=180893

Reviewed by Youenn Fablet.

These tests either do not test anything or are bad and fails in other browsers too.
There is little point in running them.

  • resources/import-expectations.json:
  • web-platform-tests/service-workers/stub-3.1-service-worker-obj-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.1-service-worker-obj.html: Removed.
  • web-platform-tests/service-workers/stub-3.1.1-service-worker-scope-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.1.1-service-worker-scope.html: Removed.
  • web-platform-tests/service-workers/stub-3.1.2-service-worker-url-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.1.2-service-worker-url.html: Removed.
  • web-platform-tests/service-workers/stub-3.1.3-service-worker-state-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.1.3-service-worker-state.html: Removed.
  • web-platform-tests/service-workers/stub-3.1.4-service-worker-on-state-change-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.1.4-service-worker-on-state-change.html: Removed.
  • web-platform-tests/service-workers/stub-3.2-navigator-service-worker-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2-navigator-service-worker.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.1-navigator-service-worker-installing-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.1-navigator-service-worker-installing.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.10-navigator-service-worker-oncontrollerchange-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.10-navigator-service-worker-oncontrollerchange.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.11-navigator-service-worker-onreloadpage-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.11-navigator-service-worker-onreloadpage.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.12-navigator-service-worker-onerror-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.12-navigator-service-worker-onerror.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.2-navigator-service-worker-waiting-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.2-navigator-service-worker-waiting.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.3-navigator-service-worker-active-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.3-navigator-service-worker-active.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.4-navigator-service-worker-controller-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.4-navigator-service-worker-controller.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.5-navigator-service-worker-ready-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.5-navigator-service-worker-ready.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.6-navigator-service-worker-getAll-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.6-navigator-service-worker-getAll.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.7-navigator-service-worker-register-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.7-navigator-service-worker-register.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.8-navigator-service-worker-unregister-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.8-navigator-service-worker-unregister.html: Removed.
  • web-platform-tests/service-workers/stub-3.2.9-navigator-service-worker-onupdatefound-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-3.2.9-navigator-service-worker-onupdatefound.html: Removed.
  • web-platform-tests/service-workers/stub-4.1-service-worker-global-scope-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.1-service-worker-global-scope.html: Removed.
  • web-platform-tests/service-workers/stub-4.1.1-service-worker-global-scope-caches-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.1.1-service-worker-global-scope-caches.html: Removed.
  • web-platform-tests/service-workers/stub-4.1.2-service-worker-global-scope-clients-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.1.2-service-worker-global-scope-clients.html: Removed.
  • web-platform-tests/service-workers/stub-4.1.3-service-worker-global-scope-scope-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.1.3-service-worker-global-scope-scope.html: Removed.
  • web-platform-tests/service-workers/stub-4.1.4-service-worker-global-scope-fetch-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.1.4-service-worker-global-scope-fetch.html: Removed.
  • web-platform-tests/service-workers/stub-4.1.5-service-worker-global-scope-update-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.1.5-service-worker-global-scope-update.html: Removed.
  • web-platform-tests/service-workers/stub-4.1.6-service-worker-global-scope-unregister-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.1.6-service-worker-global-scope-unregister.html: Removed.
  • web-platform-tests/service-workers/stub-4.1.7-service-worker-global-scope-onmessage-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.1.7-service-worker-global-scope-onmessage.html: Removed.
  • web-platform-tests/service-workers/stub-4.2-client-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.2-client.html: Removed.
  • web-platform-tests/service-workers/stub-4.3-service-worker-clients-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.3-service-worker-clients.html: Removed.
  • web-platform-tests/service-workers/stub-4.3.1-get-serviced-method-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.3.1-get-serviced-method.html: Removed.
  • web-platform-tests/service-workers/stub-4.3.2-reloadall-method-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.3.2-reloadall-method.html: Removed.
  • web-platform-tests/service-workers/stub-4.4-request-objects-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.4-request-objects.html: Removed.
  • web-platform-tests/service-workers/stub-4.5-response-objects-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.5-response-objects.html: Removed.
  • web-platform-tests/service-workers/stub-4.5.2-response-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.5.2-response.html: Removed.
  • web-platform-tests/service-workers/stub-4.5.4-opaque-response-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.5.4-opaque-response.html: Removed.
  • web-platform-tests/service-workers/stub-4.6-cache-objects-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.6-cache-objects.html: Removed.
  • web-platform-tests/service-workers/stub-4.6.1-cache-lifetimes-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.6.1-cache-lifetimes.html: Removed.
  • web-platform-tests/service-workers/stub-4.6.2-cache-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.6.2-cache.html: Removed.
  • web-platform-tests/service-workers/stub-4.6.3-cache-storage-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.6.3-cache-storage.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.1-install-phase-event-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.1-install-phase-event.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.1.1-wait-until-method-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.1.1-wait-until-method.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.2-install-event-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.2-install-event.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.2.1-install-event-section-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.2.1-install-event-section.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.2.2-replace-method-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.2.2-replace-method.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.3-activate-event-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.3-activate-event.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.4.2-respond-with-method-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.4.2-respond-with-method.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.4.3-default-method-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.4.3-default-method.html: Removed.
  • web-platform-tests/service-workers/stub-4.7.4.4-is-reload-attribute-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-4.7.4.4-is-reload-attribute.html: Removed.
  • web-platform-tests/service-workers/stub-5.1-origin-relativity-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-5.1-origin-relativity.html: Removed.
  • web-platform-tests/service-workers/stub-5.2-cross-origin-resources-expected.txt: Removed.
  • web-platform-tests/service-workers/stub-5.2-cross-origin-resources.html: Removed.
4:48 PM Changeset in webkit [225992] by Chris Dumez
  • 15 edits in trunk

Support updating a service worker registration's updateViaCache flag
https://bugs.webkit.org/show_bug.cgi?id=180888

Reviewed by Brady Eidson.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

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

Source/WebCore:

Support updating a service worker registration's updateViaCache flag to match other browsers:

No new tests, rebaselined existing test.

  • workers/service/SWClientConnection.cpp:

(WebCore::SWClientConnection::setRegistrationUpdateViaCache):

  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::setUpdateViaCache):

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::runRegisterJob):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::setUpdateViaCache):

  • workers/service/server/SWServerRegistration.h:

Source/WebKit:

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::setRegistrationUpdateViaCache):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
4:32 PM Changeset in webkit [225991] by david_quesada@apple.com
  • 2 edits in trunk/Tools

Unreviewed, adding myself to contributors.json

  • Scripts/webkitpy/common/config/contributors.json:
4:00 PM Changeset in webkit [225990] by Ryan Haddad
  • 31 edits in trunk

Unreviewed, rolling out r225941.

This change introduced LayoutTest crashes and assertion
failures.

Reverted changeset:

"Web Inspector: replace HTMLCanvasElement with
CanvasRenderingContext for instrumentation logic"
https://bugs.webkit.org/show_bug.cgi?id=180770
https://trac.webkit.org/changeset/225941

3:14 PM Changeset in webkit [225989] by achristensen@apple.com
  • 13 edits in trunk

Introduce SPI _WKWebsitePolicies.websiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=180880
<rdar://problem/35535328>

Reviewed by Andy Estes.

Source/WebKit:

The SPI doesn't do anything yet, but it already has some restrictions and tests!
WKWebView._updateWebsitePolicies can't be used to update a WKWebsiteDataStore. Only during navigation.
Even during navigation, we are only supporting the default and ephemeral data stores right now.
This functionality won't be supported in the C API. This is enforced with RELEASE_ASSERTs.
If we change our minds, we can change them and add restrictions similar to the ObjC restrictions.

  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):

  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::WebsitePolicies):
(API::WebsitePolicies::setWebsiteDataStore):
(API::WebsitePolicies::data):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/C/WKFramePolicyListener.cpp:

(WKFramePolicyListenerUseWithPolicies):

  • UIProcess/API/C/WKPage.cpp:

(WKPageUpdateWebsitePolicies):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateWebsitePolicies:]):

  • UIProcess/API/Cocoa/_WKWebsitePolicies.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.mm:

(-[_WKWebsitePolicies websiteDataStore]):
(-[_WKWebsitePolicies setWebsiteDataStore:]):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[WebsitePoliciesWebsiteDataStoreDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[WebsitePoliciesWebsiteDataStoreDelegate webView:startURLSchemeTask:]):
(-[WebsitePoliciesWebsiteDataStoreDelegate webView:stopURLSchemeTask:]):
(TEST):

2:48 PM Changeset in webkit [225988] by jmarcell@apple.com
  • 1 delete in tags/Safari-605.1.18.1/Safari-605.1.18

Removing tag (mistakenly placed inside of tag).

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

Fix GTK build.

  • UIProcess/API/glib/WebKitPolicyDecision.cpp:

(webkit_policy_decision_use):

1:48 PM Changeset in webkit [225986] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.18.1/Safari-605.1.18

New tag.

1:32 PM Changeset in webkit [225985] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Add a release assert that Timer::m_wasDeleted is false in setNextFireTime
https://bugs.webkit.org/show_bug.cgi?id=180860
<rdar://problem/36066500>

Reviewed by David Kilzer.

Turn an exist debug-only assertion into a release assertion to help diagnose a crash
which appears to be caused by a freed timer getting scheduled back into the timer heap.

  • platform/Timer.cpp:

(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::setNextFireTime):

  • platform/Timer.h:
1:27 PM Changeset in webkit [225984] by Brent Fulgham
  • 8 edits in trunk/Source/WebKit

Avoid waking plugin process up unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=180819
<rdar://problem/36051548>

Reviewed by Geoffrey Garen.

WebKit purges data from origins marked as prevalent on an hourly interval. This includes waking up plugins
and removing relevant data stored in those plugins. This causes multiple plugin processes to be spawned,
even though the user is not interacting with any plugins.

Instead, we should delay removing data from plugins until they are loaded due to the user interacting with
a website using a plugin.

Make the following changes:

  1. When looking for plugin data related to prevalent sites, only examine plugin data if the relevant plugin is already running.
  2. When the state of the active plugins changes, trigger a data removal check.
  • Shared/WebsiteData/WebsiteDataFetchOption.h: Add a new option 'DoNotCreateProcesses'
  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::getPluginProcessConnection): Pass new argument 'Launch', since we always
want to launch processes in this case.
(WebKit::PluginProcessManager::fetchWebsiteData): Pass a new parameter 'processAccessType' so that the
caller can specify if they only want to examine already-active plugins, or if they want to spawn new
processes. Call the completion handler if we need to exit early when no process exists.
(WebKit::PluginProcessManager::deleteWebsiteData): Always launch new processes.
(WebKit::PluginProcessManager::deleteWebsiteDataForHostNames): Ditto.
(WebKit::PluginProcessManager::getOrCreatePluginProcess): Accept new parameter indicating if new processes
shoudl be launched. Also switch to C++ style loops.

  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores): Use the
new 'DoNotCreatePrcesses' access type.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::removeDataRecords): Update the active plugin count when we
remove data.
(WebKit::WebResourceLoadStatisticsStore::shouldRemoveDataRecords const): Return true if the active plugin
process count changed since the last time data was removed.

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

(WebKit::WebsiteDataStore::fetchDataAndApply): Check fetch option for new 'DoNotCreateProcesses' flag,
and tell the PluginProcessManager which mode we are using.

1:18 PM Changeset in webkit [225983] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Elements animated on-screen are missing sometimes
https://bugs.webkit.org/show_bug.cgi?id=180773
rdar://problem/34923438

Reviewed by Zalan Bujtas.

After r225310 it was still possible for elements to be missing backing store when brought
on-screen via an animation. This occurred if a child element was outside the bounds of the
element being animated.

Fix by making sure that GraphicsLayer's "animatedExtent" took composited child layers into account.

As for r225310, no test because this is timing sensitive and hard to reliably make a test for.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

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

(WebCore::RenderLayerBacking::updateGeometry):

1:15 PM Changeset in webkit [225982] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit

Make sure only WebsiteDataStores with valid SessionIDs register themselves.
https://bugs.webkit.org/show_bug.cgi?id=180869

Reviewed by Chris Dumez.

Some code in WebsiteDataStore assumes an invalid SessionID is a possibility,
but we didn't account for that in the map added in r225935.

Seems prudent to make sure we're not doing hash table operations with invalid keys.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::maybeRegisterWithSessionIDMap):
(WebKit::WebsiteDataStore::existingNonDefaultDataStoreForSessionID):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
1:12 PM Changeset in webkit [225981] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Rotating when zoomed in with fingers down can result in a broken tab
https://bugs.webkit.org/show_bug.cgi?id=180859
rdar://problem/34532817

Reviewed by Tim Horton.

If you zoom in fully, then, with two fingers down, rotate the iPhone and rotate back,
then the tab can get into a broken state where the WKContentView has a non-zero position
which may push it entirely off-screen. The tab never recovers.

This is caused by a bug in UIKit (rdar://problem/36065495) so work around it by always
re-setting the position of the content view after zooming. We initialize contentView.frame
from self.bounds, so setting the position (via "center") to the bounds origin should always be safe.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):

1:11 PM Changeset in webkit [225980] by beidson@apple.com
  • 14 edits in trunk/Source/WebKit

API test WebKit.WebsiteDataStoreCustomPaths is failing
https://bugs.webkit.org/show_bug.cgi?id=180870

Reviewed by Chris Dumez.

To avoid unintentionally creating the default WebsiteDataStore we need to pass around the
relevant SessionID to more places.

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::start):

  • UIProcess/ServiceWorkerProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::getStorageProcessConnection):
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getStorageProcessConnection):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::messageSenderConnection):

  • WebProcess/Databases/WebDatabaseProvider.cpp:

(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::handleFetch):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureWebToStorageProcessConnection):
(WebKit::WebProcess::establishWorkerContextConnectionToStorageProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
12:35 PM Changeset in webkit [225979] by webkit@devinrousso.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas Tab should be turned on by default
https://bugs.webkit.org/show_bug.cgi?id=180594
<rdar://problem/35938917>

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WI.loaded):

12:12 PM Changeset in webkit [225978] by Chris Dumez
  • 10 edits in trunk/LayoutTests

Unreviewed, rebaseline Service Workers flaky tests.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/about-blank-replacement.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:

LayoutTests:

11:58 AM Changeset in webkit [225977] by achristensen@apple.com
  • 16 edits
    1 move
    3 adds in trunk/Source/WebKit

Move WebKit::WebsitePolicies to API::WebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=180873

Reviewed by Joseph Pecoraro.

It's just an API data object now. I need it to be in the API namespace so we can
give it references to other API namespace objects without weird layering violations.

  • CMakeLists.txt:
  • Shared/WebsiteAutoplayPolicy.h: Added.
  • Shared/WebsiteAutoplayQuirk.h: Added.
  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::fromWebsitePolicies): Deleted.

  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIWebsitePolicies.cpp: Added.

(API::WebsitePolicies::~WebsitePolicies):
(API::WebsitePolicies::data):

  • UIProcess/API/APIWebsitePolicies.h: Copied from Source/WebKit/UIProcess/WebsitePolicies.h.
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKFramePolicyListener.cpp:

(WKFramePolicyListenerUseWithPolicies):

  • UIProcess/API/C/WKPage.cpp:

(WKPageUpdateWebsitePolicies):

  • UIProcess/API/C/WKWebsitePolicies.cpp:

(WKWebsitePoliciesGetTypeID):
(WKWebsitePoliciesCreate):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateWebsitePolicies:]):

  • UIProcess/API/Cocoa/_WKWebsitePolicies.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.mm:

(-[_WKWebsitePolicies dealloc]):
(-[_WKWebsitePolicies init]):

  • UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h:

(WebKit::wrapper): Deleted.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

  • UIProcess/WebFormSubmissionListenerProxy.cpp:
  • UIProcess/WebsitePolicies.h: Removed.
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:
11:57 AM Changeset in webkit [225976] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

imported/w3c/web-platform-tests/service-workers/service-worker/update.https.html is sometimes crashing in Debug builds
https://bugs.webkit.org/show_bug.cgi?id=180867

Reviewed by Brady Eidson.

Fix assertion to make sure the worker is terminating if it is already in m_runningOrTerminatingWorkers.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::runServiceWorker):

11:36 AM Changeset in webkit [225975] by Chris Dumez
  • 16 edits in trunk

Service Worker Registration promise is sometimes not rejected when the script load fails
https://bugs.webkit.org/show_bug.cgi?id=180849

Reviewed by Brady Eidson.

LayoutTests/imported/w3c:

Rebaseline tests that are now passing.

  • web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-iframe.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-security-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt:

Source/WebCore:

Service Worker Registration promise is sometimes not rejected when the script load fails.
This was caused by the ServiceWorkerJob sometimes passing a null ResourceError to the
StorageProcess, even though the load failed.

No new tests, rebaselined exisiting tests.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::notifyError):

  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::notifyFinished):

LayoutTests:

Fix WebKit-specific tests that had invalid URLs for workers. We failed to notice this
before because we were wrongly resolving the registration promise.

  • http/tests/workers/service/basic-register-expected.txt:
  • http/tests/workers/service/basic-unregister-then-register-again-no-reuse.html:
  • http/tests/workers/service/registration-clear-redundant-worker.html:
  • http/tests/workers/service/resources/basic-register.js:
  • http/tests/workers/service/service-worker-gc-event.html:
  • http/tests/workers/service/service-worker-registration-gc-event.html:
7:39 AM Changeset in webkit [225974] by mitz@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

libwebrtc installs an extra copy of encoder_vcp.h under /usr/local/include
https://bugs.webkit.org/show_bug.cgi?id=180858

Reviewed by Anders Carlsson.

  • libwebrtc.xcodeproj/project.pbxproj: Demoted the header from Private to Project. A script build phase copies it to the correct location under /usr/local/include/webrtc.
7:38 AM Changeset in webkit [225973] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

WebRTC Stats should not be console logged from a background thread
https://bugs.webkit.org/show_bug.cgi?id=180845

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

Ensuring console log are done in the main thread.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):

6:27 AM Changeset in webkit [225972] by nael.ouedraogo@crf.canon.fr
  • 2 edits in trunk/Tools

[GTK] Add proxy option to Minibrowser
https://bugs.webkit.org/show_bug.cgi?id=180750

Reviewed by Michael Catanzaro.

Add command line option to set proxy settings in GTK minibrowser.

  • MiniBrowser/gtk/main.c:

(main):

5:58 AM Changeset in webkit [225971] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, 32bit JSEmpty is not nullptr + CellTag
https://bugs.webkit.org/show_bug.cgi?id=180804

Add 32bit path for WeakMapGet.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileWeakMapGet):

5:14 AM Changeset in webkit [225970] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebDriver

WebDriver: add support for accept/dismiss and notify unhandled prompt behavior
https://bugs.webkit.org/show_bug.cgi?id=179999

Reviewed by Carlos Alberto Lopez Perez.

They work as accept and dismiss, but unexpected alert open is still reported.

  1. User Prompts

https://w3c.github.io/webdriver/webdriver-spec.html#dfn-known-prompt-handling-approaches-table

  • Capabilities.h: Add DismissAndNotify and AcceptAndNotify to UnhandledPromptBehavior enum.
  • Session.cpp:

(WebDriver::Session::handleUnexpectedAlertOpen): Move default implementation to dismissAndNotifyAlert and
acceptAndNotifyAlert and use dismissAndNotifyAlert by default.
(WebDriver::Session::dismissAndNotifyAlert):
(WebDriver::Session::acceptAndNotifyAlert):

  • Session.h:
  • WebDriverService.cpp:

(WebDriver::deserializeUnhandledPromptBehavior): Handle accept/dismiss and notify.
(WebDriver::WebDriverService::newSession): Ditto.

4:35 AM Changeset in webkit [225969] 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):

12:28 AM Changeset in webkit [225968] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: clicking above selector should prepend new property
https://bugs.webkit.org/show_bug.cgi?id=180628
<rdar://problem/35954570>

Reviewed by Devin Rousso.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property):
(.spreadsheet-style-declaration-editor .property-toggle):
(.spreadsheet-style-declaration-editor .property.has-warning .warning):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:

(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration :matches(.header, .header-media)):
(.spreadsheet-css-declaration :matches(.header, .header-media):first-child):
When header-media element is present, header element should have padding-top set to 0.

(.spreadsheet-css-declaration .header.editing-selector .origin):
(.spreadsheet-css-declaration .close-brace):

Note: See TracTimeline for information about the timeline view.