Commit Graph

1447 Commits

Author SHA1 Message Date
Dewei Zhu 41d205c69e Use bigint for 'commit_order' field in 'commits' table to support larger range.
https://bugs.webkit.org/show_bug.cgi?id=228133

Reviewed by Ryosuke Niwa.

'integer' in postgres has range from -2147483648 to +2147483647 which is not big enough.
Use 'bigint' to support wider range (-9223372036854775808 to 9223372036854775807).
SQL query for migration:
    `ALTER TABLE commits ALTER commit_order TYPE bigint;`

* init-database.sql: Update 'integer' to 'bigint' for 'commit_order'.
* migrate-database.sql: Added migration SQL for this change.
* server-tests/api-report-commits-tests.js: Add a unit test.

Canonical link: https://commits.webkit.org/239837@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-07-21 11:35:17 +00:00
Myles C. Maxfield 2844fd464d Release MotionMark 1.2!!! 🎉
https://bugs.webkit.org/show_bug.cgi?id=226741

Reviewed by Geoff Garen.

Simply update the link to point to it.

* index.html:

Canonical link: https://commits.webkit.org/238570@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-06-07 21:20:34 +00:00
Myles C. Maxfield fc3e1d08cf [MotionMark] Publish r278436 as a part of MotionMark 1.2
https://bugs.webkit.org/show_bug.cgi?id=226626

Reviewed by Simon Fraser.

Controller.filterOutOutliers must pass a compare function to Array.sort()
because it filters an array of numbers.

* MotionMark1.2/tests/resources/main.js:
(filterOutOutliers):


Canonical link: https://commits.webkit.org/238487@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278467 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-06-04 16:36:34 +00:00
Dewei Zhu 89b0ae63bb [perf dashboard] Add sequential mode for perf dashboard A/B testing.
https://bugs.webkit.org/show_bug.cgi?id=223886

Reviewed by Ryosuke Niwa.

Add 'testgroup_repetition_type' to 'analysis_test_groups' table to store repetition type which defaults to 'alternating'.
Add support to schedule 'sequential' A/B testing which schedules all iterations for the first configuration (A)
before the iterations for the second configuration (B).
Before this patch, all A/B testing alternated between two different configurations for each iteration.
Add retry logic for 'sequential' A/B testing.

Update syncing script to not proceed with next configuration the current configuration successfully completed
more iterations than the initially requested or retries exceeded the list.

Fix a potential race in syncing script that 'Promise.all' may cause test group not scheduled in order.

* browser-tests/test-group-form-tests.js: Updated and added unit tests.
* init-database.sql: Added 'testgroup_repetition_type' field to 'analysis_test_groups' table.
* migrate-database.sql: Updated migration script to conditionally add 'testgroup_repetition_type' field.
* public/api/test-groups.php: Added 'repetitionType' field in api return value.
* public/include/build-requests-fetcher.php: Fetching build requests under a triggerable should include test
group with all test groups finished but still need retry. This will allow syncing script to resolve the build
request by ID and block other request to be scheduled on the builder.
* public/include/commit-sets-helpers.php: Added code to create build requests based on test mode.
* public/privileged-api/add-build-requests.php: Added support to only add build requests to one commit set.
* public/privileged-api/create-analysis-task.php: Added 'repetitionType' support.
* public/privileged-api/create-test-group.php: Added 'repetitionType' support.
* public/privileged-api/update-test-group.php:
* public/shared/common-component-base.js:
* public/v3/components/custom-configuration-test-group-form.js: Added 'repetitionType' support.
(CustomConfigurationTestGroupForm.prototype.startTesting):
* public/v3/components/customizable-test-group-form.js:
(CustomizableTestGroupForm.prototype.startTesting):
* public/v3/components/test-group-form.js:
(TestGroupForm.prototype.startTesting):
* public/v3/models/analysis-task.js:
(AnalysisTask.async create):
(AnalysisTask):
* public/v3/models/build-request.js:
(BuildRequest):
(BuildRequest.prototype.updateSingleton): Allow build request order to be updated.
* public/v3/models/test-group.js:
(TestGroup):
(TestGroup.prototype.updateSingleton):
(TestGroup.prototype.repetitionType):
(TestGroup.prototype.repetitionCountForCommitSet): Refactored `repetitionCount` since repetition may be different
between configurations.
(TestGroup.prototype.hasRetries): A helper function to tell if a test group has retry runs.
(TestGroup.prototype.additionalRepetitionNeededToReachInitialRepetitionCount):
(TestGroup.prototype.successfulTestCount):
(TestGroup.prototype.isFirstTestRequest):
(TestGroup.prototype.precedingBuildRequest):
(TestGroup.prototype.retryCountForCommitSet):
(TestGroup.prototype.retryCountsAreSameForAllCommitSets):
(TestGroup.prototype.async _createAlternatingRetriesForTestGroup): Moved from 'retry-failed-build-requests' module.
(TestGroup.async _createSequentialRetriesForTestGroup): Moved from 'retry-failed-build-requests' module.
(TestGroup.prototype.async cancelPendingRequests):
(TestGroup.prototype.async didSendNotification):
(TestGroup.prototype.async addMoreBuildRequests):
(TestGroup.async createWithTask):
(TestGroup.async createWithCustomConfiguration):
(TestGroup.async createAndRefetchTestGroups):
(TestGroup.prototype.async scheduleMoreRequestsOrClearFlag): Moved from 'retry-failed-build-requests' module.
(TestGroup.async fetchById): Added support to fetch test group by ID.
* public/v3/pages/analysis-task-page.js:
(AnalysisTaskChartPane.prototype.didConstructShadowTree):
(AnalysisTaskResultsPane.prototype.didConstructShadowTree):
(AnalysisTaskConfiguratorPane.prototype.setTestGroups):
(AnalysisTaskConfiguratorPane):
(AnalysisTaskTestGroupPane.prototype.didConstructShadowTree):
(AnalysisTaskTestGroupPane.prototype._renderCurrentTestGroup):
(AnalysisTaskTestGroupPane.prototype._retrySummary):
(AnalysisTaskPage.prototype.didConstructShadowTree):
(AnalysisTaskPage.prototype.async _retryCurrentTestGroup):
(AnalysisTaskPage.prototype.async _bisectCurrentTestGroup):
(AnalysisTaskPage.set const):
(AnalysisTaskPage.prototype.async _createTestGroupAfterVerifyingCommitSetList):
(AnalysisTaskPage.prototype.async _createCustomTestGroup):
* public/v3/pages/chart-pane.js:
(ChartPane.prototype.didConstructShadowTree):
(ChartPane.prototype.async _analyzeRange):
* public/v3/pages/create-analysis-task-page.js:
(CreateAnalysisTaskPage.prototype.async _createAnalysisTaskWithGroup):
* server-tests/api-build-requests-tests.js: Added a unit test.
* server-tests/api-upload-root-tests.js: Updated unit tests.
* server-tests/privileged-api-add-build-requests-tests.js: Updated and added unit tests.
* server-tests/privileged-api-create-analysis-task-tests.js: Added unit tests.
* server-tests/privileged-api-create-test-group-tests.js: Updated and added unit tests.
* server-tests/privileged-api-update-test-group-tests.js: Updated and added unit tests.
* server-tests/resources/common-operations.js:
(async assertThrows):
* server-tests/resources/mock-data.js:
(MockData.addMockData):
(MockData.set addMockBuildRequestsWithRoots):
(MockData.set addAnotherMockTestGroup):
(MockData.set mockTestSyncConfigWithSingleBuilder):
(MockData.sampleBuildData):
* server-tests/tools-buildbot-triggerable-tests.js: Updated and added unit tests.
* server-tests/tools-sync-buildbot-integration-tests.js: Updated unit tests.
(async createTestGroupWithPatch):
(createTestGroupWihOwnedCommit):
* tools/js/buildbot-syncer.js:
(BuildbotSyncer.prototype.scheduleRequestInGroupIfAvailable):
(BuildbotSyncer.prototype.pullBuildbot):
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable):
(BuildbotTriggerable.prototype.async syncOnce):
(BuildbotTriggerable.prototype.async _scheduleRequest):
(BuildbotTriggerable.prototype._shouldDeferSequentialTestingRequestWithNewCommitSet):
* tools/js/measurement-set-analyzer.js:
(MeasurementSetAnalyzer.prototype.async _analyzeMeasurementSet):
(MeasurementSetAnalyzer):
* tools/js/retry-failed-build-requests.js: Removed.
* tools/run-analysis.js: Use updated API to retry.
(async analysisLoop):
(async processTestGroupMayNeedMoreRequests):
* tools/sync-buildbot.js: Added command line option '--max-retry-factor'.
* unit-tests/analysis-task-tests.js: Updated unit tests.
* unit-tests/buildbot-syncer-tests.js: Updated unit tests.
(createSampleBuildRequest):
* unit-tests/measurement-set-analyzer-tests.js:
* unit-tests/retry-failed-build-requests-tests.js: Moved unit tests to test-group-tests.js.
* unit-tests/test-groups-tests.js: Added unit tests from 'retry-failed-build-requests-tests.js'.

Canonical link: https://commits.webkit.org/238151@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278072 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-26 01:23:22 +00:00
Dewei Zhu 3bfe3232e3 Fix a bug that incorrect timestamp is reported for Git repositories.
https://bugs.webkit.org/show_bug.cgi?id=225987

Reviewed by Ryosuke Niwa.

'datetime.fromtimestamp' will use the current timezone.
However, '/api/report-commits' will interprete it as a timestamp string from UTC.
In order to keep the consistency, we should always use 'datetime.utcfromtimestamp'.

* tools/sync-commits.py: Use 'datetime.utcfromtimestamp' instead of 'datetime.fromtimestamp'.
(GitRepository._revision_from_tokens):

Canonical link: https://commits.webkit.org/238034@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277901 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-22 00:13:39 +00:00
Sam Sneddon c36e81851e Fix Python 3.6+ DeprecationWarnings about unknown escapes
https://bugs.webkit.org/show_bug.cgi?id=226018

Reviewed by Jonathan Bedard.

Fix Python 3.6+ DeprecationWarnings about unknown escapes

PerformanceTests:

* JetStream2/RAMification.py:
* JetStream2/RexBench/FlightPlanner/convert-nfdc.py:
* RexBench/FlightPlanner/convert-nfdc.py:

Source/JavaScriptCore:

* wasm/generateWasmB3IRGeneratorInlinesHeader.py:

Source/WebCore:

No new tests.

* Modules/webgpu/WHLSL/WHLSLBuildStandardLibraryFunctionMap.py:

Tools:

* CISupport/build-webkit-org/loadConfig.py:
(getTagsForBuilder):
* CISupport/build-webkit-org/steps.py:
(RunGLibAPITests.commandComplete):
(RunWebDriverTests.commandComplete):
* CISupport/ews-app/ews/common/bugzilla.py:
(BugzillaBeautifulSoup._parse_attachment_ids_request_query):
* CISupport/ews-app/ews/common/buildbot.py:
(Buildbot._get_display_name_from_builder_name):
* CISupport/ews-build/loadConfig.py:
(getTagsForBuilder):
* CISupport/ews-build/steps.py:
(CleanUpGitIndexLock.start):
(FindModifiedLayoutTests):
(BuildLogLineObserver.__init__):
(PushCommitToWebKitRepo):
* CISupport/ews-build/steps_unittest.py:
* Scripts/ic-stats.py:
* Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
(Svn):
* Scripts/webkitpy/common/checkout/changelog.py:
(parse_bug_id_from_changelog):
(ChangeLogEntry):
(update_with_unreviewed_message):
(set_reviewer):
* Scripts/webkitpy/common/checkout/diff_parser.py:
(git_diff_to_svn_diff):
* Scripts/webkitpy/common/checkout/diff_test_data.py:
* Scripts/webkitpy/common/checkout/scm/commitmessage.py:
(_first_non_empty_line_after_index):
(CommitMessage.description):
* Scripts/webkitpy/common/checkout/scm/git.py:
(Git.commit_success_regexp):
(Git.timestamp_of_revision):
(Git.git_commit_from_svn_revision):
* Scripts/webkitpy/common/checkout/scm/scm.py:
(SCM.strip_r_from_svn_revision):
* Scripts/webkitpy/common/checkout/scm/svn.py:
(SVN.commit_success_regexp):
(SVN.revisions_changing_file):
* Scripts/webkitpy/common/checksvnconfigfile.py:
(check):
* Scripts/webkitpy/common/config/contributionareas.py:
(ContributionAreas._split_camelcase):
* Scripts/webkitpy/common/config/urls.py:
* Scripts/webkitpy/common/find_files_unittest.py:
(TestWinNormalize.assert_filesystem_normalizes):
* Scripts/webkitpy/common/net/bugzilla/bug.py:
(Bug.commit_revision):
* Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(BugzillaQueries._parse_attachment_ids_request_query):
(Bugzilla._parse_bug_id_from_attachment_page):
(Bugzilla._parse_attachment_id_from_add_patch_to_bug_response):
(Bugzilla._check_create_bug_response):
* Scripts/webkitpy/common/net/buildbot/buildbot.py:
(BuildBot._parse_current_build_cell):
* Scripts/webkitpy/common/net/credentials.py:
(Credentials._parse_security_tool_output):
* Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:
(ParsedJSONResultsTest):
* Scripts/webkitpy/common/system/crashlogs.py:
(CrashLogs.get_timestamp_from_log):
* Scripts/webkitpy/common/system/crashlogs_unittest.py:
* Scripts/webkitpy/common/system/platforminfo.py:
(PlatformInfo.available_sdks):
* Scripts/webkitpy/common/system/user.py:
(User._wait_on_list_response):
* Scripts/webkitpy/common/watchlist/watchlistparser.py:
(WatchListParser._rule_definitions_as_set):
* Scripts/webkitpy/layout_tests/models/test_expectations.py:
(TestExpectationParser):
(TestExpectationParser._parse_modifiers):
(TestExpectationParser._tokenize_line):
* Scripts/webkitpy/performance_tests/perftest.py:
(PerfTest):
* Scripts/webkitpy/port/base.py:
(Port._natural_sort_key):
* Scripts/webkitpy/port/driver.py:
(DriverOutput):
(Driver._check_for_driver_timeout):
(Driver._check_for_driver_crash_or_unresponsiveness):
* Scripts/webkitpy/port/image_diff.py:
(ImageDiffer._read):
* Scripts/webkitpy/port/win.py:
(WinPort.write_registry_value):
* Scripts/webkitpy/pytest.ini:
* Scripts/webkitpy/style/checker.py:
(CheckerDispatcher._should_skip_file_path):
* Scripts/webkitpy/style/checkers/changelog.py:
(ChangeLogChecker.check_entry):
* Scripts/webkitpy/style/checkers/cmake.py:
(CMakeChecker._process_line):
(CMakeChecker._check_no_space_cmds):
(CMakeChecker._check_one_space_cmds):
(CMakeChecker._check_non_lowercase_cmd):
(CMakeChecker._check_list_order):
* Scripts/webkitpy/style/checkers/cpp.py:
(FileInfo.repository_name):
(check_for_non_standard_constructs):
(check_spacing):
(check_language):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
* Scripts/webkitpy/style/checkers/jstest.py:
(map_functions_to_dict):
(strip_trailing_blank_lines_and_comments):
* Scripts/webkitpy/style/checkers/messagesin.py:
(MessagesInChecker.check_WTF_prefix):
* Scripts/webkitpy/style/patchreader.py:
(PatchReader.check):
* Scripts/webkitpy/test/runner.py:
* Scripts/webkitpy/test/runner_unittest.py:
(FakeLoader.__init__):
* Scripts/webkitpy/tool/commands/analyzechangelog.py:
(AnalyzeChangeLog._enumerate_changelogs):
* Scripts/webkitpy/tool/commands/queries.py:
(PrintBaselines.__init__):
(FindResolvedBugs.execute):
* Scripts/webkitpy/tool/commands/upload.py:
(MarkBugFixed._determine_bug_id_and_svn_revision):
* Scripts/webkitpy/tool/steps/promptforbugortitle.py:
(PromptForBugOrTitle.run):
* Scripts/webkitpy/w3c/test_converter.py:
(_W3CTestConverter.__init__):
(_W3CTestConverter.read_webkit_prefixed_css_property_list):
(_W3CTestConverter.legacy_read_webkit_prefixed_css_property_list):
* Scripts/webkitpy/w3c/test_parser.py:
(TestParser.support_files):
* lldb/lldb_dump_class_layout.py:
(LLDBDebuggerInstance._get_first_file_architecture):

Websites/browserbench.org:

* JetStream2.0/RexBench/FlightPlanner/convert-nfdc.py:


Canonical link: https://commits.webkit.org/237995@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277853 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-21 10:16:11 +00:00
Zhifei Fang e009fd0eb9 Need to use default git pull to remove the fake svn commit when syncing with SVN
https://bugs.webkit.org/show_bug.cgi?id=226039

Reviewed by Jonathan Bedard.

* tools/sync-commits.py:
(GitRepository._fetch_remote):


Canonical link: https://commits.webkit.org/237972@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277826 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-20 21:46:44 +00:00
Zhifei Fang f52dba5f13 Clean up git svn mapping when git pull
https://bugs.webkit.org/show_bug.cgi?id=225934

Reviewed by Ryosuke Niwa.

* tools/sync-commits.py:
(GitRepository._fetch_remote):


Canonical link: https://commits.webkit.org/237880@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277679 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-18 21:25:44 +00:00
Zhifei Fang 42eaf14497 Commits updater should ignore null revision identifier
https://bugs.webkit.org/show_bug.cgi?id=225911

Reviewed by Ryosuke Niwa.

* public/include/commit-updater.php:
* server-tests/api-report-commits-tests.js:


Canonical link: https://commits.webkit.org/237872@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-18 19:56:03 +00:00
Myles C. Maxfield e6d567f9ca [MotionMark] Apply r277406 to Websites/browserbench.org/MotionMark1.2
https://bugs.webkit.org/show_bug.cgi?id=225722

Rubber-stamped by Geoffrey Garen.

Just copy over the change, so the website gets updated.

This doesn't bump the version number, which is okay, because we never actually
"released" version 1.2; we just made a folder on a website, and didn't update any
links to point to it.

* MotionMark1.2/resources/runner/tests.js:

Canonical link: https://commits.webkit.org/237659@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277409 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-12 23:27:30 +00:00
Zhifei Fang f0c74d400e Add support for syncing repo with commit revision label.
https://bugs.webkit.org/show_bug.cgi?id=221982

Reviewed by Ryosuke Niwa.

Add new syncing option reportRevisionIdentifier, which will let the script try to sync the commit revision identifier from the commit message.
Add new syncing option reportSVNRevision, which will let the script try to report SVN revision from a git-svn repo.

* tools/sync-commits.py:
(main):
(load_repository):
(GitRepository.__init__):
(GitRepository.fetch_next_commit):
(GitRepository._git_hash_to_svn_revision):
(GitRepository._svn_revision_to_git_hash):
(GitRepository._revision_from_tokens):
(GitRepository._fetch_all_hashes):


Canonical link: https://commits.webkit.org/237491@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277220 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-08 01:08:08 +00:00
Myles C. Maxfield 1b457991af Copy PerformanceTests/MotionMark to WebSites/browserbench.org/MotionMark1.2
https://bugs.webkit.org/show_bug.cgi?id=225287

Reviewed by Maciej Stachowiak and Ryosuke Niwa.

This patch copies the files, and also updates the version in WebSites/browserbench.org
to "1.2." It also updates the "about" page to include a description of the changes.

No existing links have been updated to point to this new version.

* MotionMark1.2/about.html: Added.
* MotionMark1.2/developer.html: Added.
* MotionMark1.2/index.html: Added.
* MotionMark1.2/resources/debug-runner/d3.min.js: Added.
* MotionMark1.2/resources/runner/benchmark-runner.js: Added.
(BenchmarkRunnerState.Utilities.createClass):
(this.next.currentSuite):
(this.next.currentTest):
(this.next.isFirstTest):
(this.next.next):
(this.next.frame.onload):
(this.next.prepareCurrentTest):
(this.next):
(BenchmarkRunner.Utilities.createClass):
(_appendFrame):
(_removeFrame):
(_runBenchmarkAndRecordResults):
(step):
(runAllSteps):
(this._runNextIteration):
(runMultipleIterations):
(_finalize):
* MotionMark1.2/resources/runner/crystal.svg: Added.
* MotionMark1.2/resources/runner/lines.svg: Added.
* MotionMark1.2/resources/runner/logo.svg: Added.
* MotionMark1.2/resources/runner/motionmark.css: Added.
(html,):
(body):
(body.showing-intro,):
(body.showing-test-container):
(body.images-loaded):
(@media screen and (min-width: 667px) body):
(@media screen and (min-width: 667px) body.showing-intro,):
(@media screen and (min-width: 1025px) body.showing-intro,):
(::selection):
(.hidden):
(section):
(section.selected):
(.logo):
(.logo svg):
(.logo div):
(body.images-loaded .logo svg):
(@media screen and (min-width: 667px) .logo svg):
(@media screen and (min-width: 667px) .logo div):
(section .body):
(section .body p):
(@media screen and (min-width: 667px) section .body):
(@media screen and (min-width: 667px) section button):
(button):
(body.images-loaded button):
(button:hover):
(button:active):
(button:disabled):
(@media print button):
(.portrait-orientation-check):
(@media screen and (max-device-width: 1025px) and (orientation: portrait) .portrait-orientation-check):
(@media screen and (max-device-width: 1025px) and (orientation: portrait) .landscape-orientation-check):
(@keyframes background-fade):
(@keyframes background-color):
(12%, 20%):
(22%, 30%):
(32%, 40%):
(42%, 50%):
(52%, 60%):
(62%, 70%):
(72%, 80%):
(82%, 90%):
(92%, 100%):
(@keyframes foreground-color):
(#intro, #about):
(#intro):
(body.images-loaded #intro):
(#about .body):
(#about li):
(#about button):
(#about h3):
(#about #log):
(#about #log li):
(@media screen and (min-width: 667px) #about .body):
(@media screen and (min-width: 667px) #about ol, #about ul):
(#intro a, #about a,):
(.frame-container):
(.frame-container > iframe):
(body.small .frame-container):
(body.medium .frame-container):
(body.large .frame-container):
(#results):
(#results .body):
(#results .score-container):
(#results .table-container):
(#results .table-container > div):
(#results .score):
(#results .confidence):
(#results table):
(#results table td,):
(#results table td.suites-separator):
(#results table tr:nth-child(even)):
(#results #results-header):
(#results #results-score):
(#results #results-data span):
(#results #results-header td,):
(#results #results-score td,):
(#results #results-score td):
(@media screen and (min-width: 667px) #results .score,):
(.detail span):
(body.small .detail .small,):
(#overlay):
(@supports (-webkit-backdrop-filter: blur(10px))):
(#overlay > div):
(#overlay > div div):
* MotionMark1.2/resources/runner/motionmark.js: Added.
(ResultsDashboard.Utilities.createClass):
(this._processData.push):
(this._processData._processData):
(this._processData.findRegression):
(this._processData.):
(this._processData.calculateScore):
(this._processData.get data):
(this._processData.get results):
(this._processData.get options):
(this._processData.get version):
(this._processData._getResultsProperty):
(this._processData.get score):
(this._processData.get scoreLowerBound):
(this._processData.get scoreUpperBound):
(this._processData):
(ResultsTable.Utilities.createClass):
(this.clear.clear):
(this.clear._addHeader):
(this.clear._addBody):
(this.clear._addEmptyRow):
(this.clear):
(this.clear._addIteration):
(this.clear.showIterations):
(window.benchmarkRunnerClient.initialize):
(window.benchmarkRunnerClient.willStartFirstIteration):
(window.benchmarkRunnerClient.didRunSuites):
(window.benchmarkRunnerClient.didRunTest):
(window.benchmarkRunnerClient.didFinishLastIteration):
(window.sectionsManager.showSection):
(window.sectionsManager.setSectionVersion):
(window.sectionsManager.setSectionScore):
(window.sectionsManager.populateTable):
(window.benchmarkController.initialize):
(window.benchmarkController.determineCanvasSize):
(window.benchmarkController.addOrientationListenerIfNecessary):
(window.benchmarkController._orientationChanged):
(window.benchmarkController.updateStartButtonState):
(window.benchmarkController._startBenchmark):
(window.benchmarkController.startBenchmark):
(window.benchmarkController.showResults):
(window.benchmarkController.handleKeyPress):
(window.benchmarkController.hideDebugInfo):
(window.benchmarkController.data.onclick):
(window.benchmarkController.button.onclick):
(window.benchmarkController.showDebugInfo):
(window.benchmarkController.selectResults):
* MotionMark1.2/resources/runner/tests.js: Added.
(Headers.details.text):
(Suite):
(suiteFromName):
* MotionMark1.2/resources/statistics.js: Added.
(Pseudo.resetRandomSeed):
(Pseudo.random):
(Statistics.sampleMean):
(Statistics.unbiasedSampleStandardDeviation):
(Statistics.geometricMean):
(Statistics.cdf):
(Statistics.erf):
(Statistics.largestDeviationPercentage):
(Experiment.Utilities.createClass):
(this.reset.reset):
(this.reset.get sampleCount):
(this.reset.sample):
(this.reset.mean):
(this.reset.standardDeviation):
(this.reset.cdf):
(this.reset.percentage):
(this.reset.concern):
(this.reset.score):
(this.reset):
(Regression.Utilities.createClass):
(valueAt):
(setBest):
(_calculateRegression):
(bootstrap):
* MotionMark1.2/resources/strings.js: Added.
* MotionMark1.2/tests/3d/resources/webgl.js: Added.
(Stage.call.initialize):
(Stage.call._getFunctionSource):
(Stage.call._resetIfNecessary):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call.complexity):
(Stage.call):
* MotionMark1.2/tests/3d/resources/webgpu.js: Added.
(constant.float.uniforms.register):
(Stage.call.initialize):
(Stage.call._getFunctionSource):
(Stage.call._resetIfNecessary):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call.complexity):
(Stage.call):
(new.WebGLStage.waitUntilReady):
(new.WebGLStage):
* MotionMark1.2/tests/3d/triangles-webgl.html: Added.
* MotionMark1.2/tests/3d/triangles-webgpu.html: Added.
* MotionMark1.2/tests/bouncing-particles/bouncing-canvas-images.html: Added.
* MotionMark1.2/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
* MotionMark1.2/tests/bouncing-particles/bouncing-css-images.html: Added.
* MotionMark1.2/tests/bouncing-particles/bouncing-css-shapes.html: Added.
* MotionMark1.2/tests/bouncing-particles/bouncing-svg-images.html: Added.
* MotionMark1.2/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
* MotionMark1.2/tests/bouncing-particles/bouncing-tagged-images.html: Added.
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
(_draw):
(BouncingCanvasParticlesStage.call.initialize):
(BouncingCanvasParticlesStage.call.createParticle):
(BouncingCanvasParticlesStage.call):
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
(applyRotation):
(applyClipping):
(_draw):
(animate):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.animate):
(BouncingParticlesStage.call):
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
(this._color1.Stage.randomColor._applyFill):
(this._color1.Stage.randomColor._drawShape):
(this._color1.Stage.randomColor._draw):
(this._color1.Stage.randomColor):
(BouncingCanvasParticlesStage.call.initialize):
(BouncingCanvasParticlesStage.call.createParticle):
(BouncingCanvasParticlesStage.call):
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
(this._move._move):
(this._move.animate):
(this._move):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.createParticle):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
(switch):
(this._move._createSpan):
(this._move._move):
(this._move.animate):
(this._move):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.createParticle):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-particles.js: Added.
(BouncingParticle):
(BouncingParticle.prototype.get center):
(BouncingParticle.prototype.animate):
(initialize):
(parseShapeParameters):
(animate):
(tune):
(complexity):
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
(BouncingSvgParticlesStage.call.initialize):
(BouncingSvgParticlesStage.call.createParticle):
(BouncingSvgParticlesStage.call):
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
(_applyClipping):
(_move):
(animate):
(BouncingParticlesStage.call._createDefs):
(BouncingParticlesStage.call._ensureDefsIsCreated):
(BouncingParticlesStage.call._createClipStar):
(BouncingParticlesStage.call.ensureClipStarIsCreated):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
(this._move._createShape):
(this._move._applyFill):
(this._move):
(BouncingSvgParticlesStage.call.initialize):
(BouncingSvgParticlesStage.call.createGradient):
(BouncingSvgParticlesStage.call.createParticle):
(BouncingSvgParticlesStage.call.particleWillBeRemoved):
(BouncingSvgParticlesStage.call):
* MotionMark1.2/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.
(this._move._move):
(this._move.animate):
(this._move):
(BouncingParticlesStage.call.):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.img.onload):
(BouncingParticlesStage.call._loadImage):
(BouncingParticlesStage.call.createParticle):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
(new.BouncingTaggedImagesStage.waitUntilReady):
(new.BouncingTaggedImagesStage):
* MotionMark1.2/tests/bouncing-particles/resources/image1.jpg: Added.
* MotionMark1.2/tests/bouncing-particles/resources/image2.jpg: Added.
* MotionMark1.2/tests/bouncing-particles/resources/image3.jpg: Added.
* MotionMark1.2/tests/bouncing-particles/resources/image4.jpg: Added.
* MotionMark1.2/tests/bouncing-particles/resources/image5.jpg: Added.
* MotionMark1.2/tests/dom/compositing-transforms.html: Added.
* MotionMark1.2/tests/dom/focus.html: Added.
* MotionMark1.2/tests/dom/leaves.html: Added.
* MotionMark1.2/tests/dom/multiply.html: Added.
* MotionMark1.2/tests/dom/particles.html: Added.
* MotionMark1.2/tests/dom/resources/compositing-transforms.js: Added.
(this._move._move):
(this._move.animate):
(this._move):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.createParticle):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
* MotionMark1.2/tests/dom/resources/dom-particles.js: Added.
(Particle.call.reset):
(Particle.call.move):
(Particle.call):
(ParticlesStage.call.initialize):
(ParticlesStage.call.createParticle):
(ParticlesStage.call.willRemoveParticle):
(ParticlesStage.call):
* MotionMark1.2/tests/dom/resources/focus.js: Added.
(FocusElement.Utilities.createClass):
(hide):
(show):
(animate):
(Stage.call.initialize):
(Stage.call.complexity):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call.getBlurValue):
(Stage.call.getOpacityValue):
(Stage.call):
* MotionMark1.2/tests/dom/resources/leaves.js: Added.
(SuperLeaf.call.move):
(SuperLeaf.call):
(switch):
* MotionMark1.2/tests/dom/resources/multiply.js: Added.
(switch):
* MotionMark1.2/tests/master/canvas-stage.html: Added.
* MotionMark1.2/tests/master/design.html: Added.
* MotionMark1.2/tests/master/focus.html: Added.
* MotionMark1.2/tests/master/image-data.html: Added.
* MotionMark1.2/tests/master/leaves.html: Added.
* MotionMark1.2/tests/master/multiply.html: Added.
* MotionMark1.2/tests/master/resources/canvas-stage.js: Added.
(initialize):
(tune):
(animate):
(complexity):
* MotionMark1.2/tests/master/resources/canvas-tests.js: Added.
(CanvasLineSegment.Utilities.createClass):
(draw):
(CanvasArc.Utilities.createClass):
(CanvasLinePoint.Utilities.createClass):
(randomPoint):
(SimpleCanvasStage.call.initialize):
(SimpleCanvasStage.call.animate):
(SimpleCanvasStage.call):
(switch):
* MotionMark1.2/tests/master/resources/compass.svg: Added.
* MotionMark1.2/tests/master/resources/compass100.png: Added.
* MotionMark1.2/tests/master/resources/console.svg: Added.
* MotionMark1.2/tests/master/resources/console100.png: Added.
* MotionMark1.2/tests/master/resources/contribute.svg: Added.
* MotionMark1.2/tests/master/resources/contribute100.png: Added.
* MotionMark1.2/tests/master/resources/debugger.svg: Added.
* MotionMark1.2/tests/master/resources/debugger100.png: Added.
* MotionMark1.2/tests/master/resources/design.js: Added.
(initialize):
(tune):
(animate):
(complexity):
* MotionMark1.2/tests/master/resources/focus.js: Added.
(FocusElement.Utilities.createClass):
(this.animate.hide):
(this.animate.show):
(this.animate.animate):
(this.animate):
(Stage.call.initialize):
(Stage.call.complexity):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call):
* MotionMark1.2/tests/master/resources/image-data.js: Added.
(initialize):
(_loadImage):
(tune):
(_createTestElement):
(_refreshElement):
(animate):
(_getRandomNeighboringPixelIndex):
(complexity):
(new.ImageDataStage.waitUntilReady):
(new.ImageDataStage):
* MotionMark1.2/tests/master/resources/inspector.svg: Added.
* MotionMark1.2/tests/master/resources/inspector100.png: Added.
* MotionMark1.2/tests/master/resources/layout.svg: Added.
* MotionMark1.2/tests/master/resources/layout100.png: Added.
* MotionMark1.2/tests/master/resources/leaves.js: Added.
(Particle.call.reset):
(Particle.call.animate):
(Particle.call.move):
(Particle.call):
(initialize):
(img.onload):
(_loadImage):
(animate):
(createParticle):
(willRemoveParticle):
(new.ParticlesStage.waitUntilReady):
(new.ParticlesStage):
* MotionMark1.2/tests/master/resources/multiply.js: Added.
(initialize):
(_addTile):
(complexity):
(tune):
(animate):
* MotionMark1.2/tests/master/resources/particles.js: Added.
(Particle):
(Particle.prototype.reset):
(Particle.prototype.animate):
(Particle.prototype.move):
(animate):
(tune):
(complexity):
* MotionMark1.2/tests/master/resources/performance.svg: Added.
* MotionMark1.2/tests/master/resources/performance100.png: Added.
* MotionMark1.2/tests/master/resources/script.svg: Added.
* MotionMark1.2/tests/master/resources/script100.png: Added.
* MotionMark1.2/tests/master/resources/shortcuts.svg: Added.
* MotionMark1.2/tests/master/resources/shortcuts100.png: Added.
* MotionMark1.2/tests/master/resources/standards.svg: Added.
* MotionMark1.2/tests/master/resources/standards100.png: Added.
* MotionMark1.2/tests/master/resources/storage.svg: Added.
* MotionMark1.2/tests/master/resources/storage100.png: Added.
* MotionMark1.2/tests/master/resources/styles.svg: Added.
* MotionMark1.2/tests/master/resources/styles100.png: Added.
* MotionMark1.2/tests/master/resources/suits.js: Added.
(this.initialize.initialize):
(this.initialize.reset):
(this.initialize.move):
(this.initialize):
(ParticlesStage.call.initialize):
(ParticlesStage.call.createParticle):
(ParticlesStage.call.willRemoveParticle):
(ParticlesStage.call):
* MotionMark1.2/tests/master/resources/timeline.svg: Added.
* MotionMark1.2/tests/master/resources/timeline100.png: Added.
* MotionMark1.2/tests/master/suits.html: Added.
* MotionMark1.2/tests/resources/main.js: Added.
(Sampler.Utilities.createClass):
(record):
(processSamples):
(Controller.Utilities.createClass):
(set isFrameLengthEstimatorEnabled):
(start):
(recordFirstSample):
(mark):
(containsMark):
(filterOutOutliers):
(_measureAndResetInterval):
(update):
(registerFrameTime):
(intervalHasConcluded):
(didFinishInterval):
(tune):
(shouldStop):
(results):
(_processComplexitySamples):
(_processMarks):
(_processControllerSamples):
(_getComplexity):
(_getFrameLength):
(Stage.Utilities.createClass):
(Stage.Utilities.createClass.initialize):
(Stage.Utilities.createClass.get element):
(Stage.Utilities.createClass.get size):
(Stage.Utilities.createClass.complexity):
(Stage.Utilities.createClass.tune):
(Stage.Utilities.createClass.animate):
(Stage.Utilities.createClass.clear):
(random):
(randomBool):
(randomSign):
(randomInt):
(randomPosition):
(randomSquareSize):
(randomVelocity):
(randomAngle):
(randomColor):
(randomStyleMixBlendMode):
(randomStyleFilter):
(randomElementInArray):
(rotatingColor):
(dateFractionalValue):
(dateCounterValue):
(randomRotater):
(Rotater.Utilities.createClass):
(get interval):
(next):
(degree):
(rotateZ):
(rotate):
(Benchmark.Utilities.createClass):
(get stage):
(get timestamp):
(backgroundColor):
(run):
(waitUntilReady):
(_animateLoop):
* MotionMark1.2/tests/resources/math.js: Added.
(this._gain.error.sample):
(this._gain.error.reset):
(this._gain.error):
(PIDController.Utilities.createClass):
(_yPosition):
(_distanceUltimate):
(_distance):
(_gainIncrement):
(_updateStage):
(_tuneP):
(_tunePID):
(_tune):
(_saturate):
(tune):
* MotionMark1.2/tests/resources/stage.css: Added.
(html):
(body):
(#stage):
(#center-text):
* MotionMark1.2/tests/resources/star.svg: Added.
* MotionMark1.2/tests/resources/yin-yang.png: Added.
* MotionMark1.2/tests/resources/yin-yang.svg: Added.
* MotionMark1.2/tests/simple/resources/simple-canvas-paths.js: Added.
(CanvasLineSegment.Utilities.createClass):
(this._lineWidth.Stage.randomInt.draw):
(this._lineWidth.Stage.randomInt):
(CanvasLinePoint.Utilities.createClass):
(draw):
(CanvasQuadraticSegment.Utilities.createClass):
(CanvasQuadraticPoint.Utilities.createClass):
(CanvasBezierSegment.Utilities.createClass):
(CanvasBezierPoint.Utilities.createClass):
(CanvasArcToSegment.Utilities.createClass):
(CanvasArcToSegmentFill.Utilities.createClass):
(CanvasArcToSegment.call.draw):
(CanvasArcToSegment.call):
(CanvasArcSegment.Utilities.createClass):
(CanvasArcSegmentFill.Utilities.createClass):
(CanvasArcSegment.call.draw):
(CanvasArcSegment.call):
(CanvasRect.Utilities.createClass):
(CanvasRectFill.Utilities.createClass):
(CanvasRect.call.draw):
(CanvasRect.call):
(CanvasEllipse.Utilities.createClass):
(CanvasEllipseFill.Utilities.createClass):
(CanvasEllipse.call.draw):
(CanvasEllipse.call):
(CanvasStroke.Utilities.createClass):
(this._object.new.draw):
(this._object.new):
(CanvasFill.Utilities.createClass):
(SimpleCanvasStage.call.animate):
(SimpleCanvasStage.call):
(SimpleCanvasStage.call.initialize):
(SimpleCanvasPathStrokeStage.call.initialize):
(SimpleCanvasPathStrokeStage.call):
(initialize):
(animate):
(switch):
* MotionMark1.2/tests/simple/resources/simple-canvas.js: Added.
(tune):
(animate):
(complexity):
* MotionMark1.2/tests/simple/resources/tiled-canvas-image.js: Added.
(CanvasImageTile.Utilities.createClass):
(getImageData):
(putImageData):
(Stage.call.initialize):
(Stage.call._setupTiles):
(Stage.call._nextTilePosition):
(Stage.call.tune):
(Stage.call._drawBackground):
(Stage.call.animate):
(Stage.call.complexity):
(Stage.call):
* MotionMark1.2/tests/simple/simple-canvas-paths.html: Added.
* MotionMark1.2/tests/simple/tiled-canvas-image.html: Added.
* MotionMark1.2/tests/svg/suits.html: Added.
* MotionMark1.2/tests/svg/suits.js: Added.
(this.initialize.move):
(this.initialize):
(this.initialize.reset):
(switch):
* MotionMark1.2/tests/template/resources/template-canvas.js: Added.
(TemplateCanvasObject):
(TemplateCanvasObject.prototype._draw):
(TemplateCanvasObject.prototype.animate):
(Stage.call.initialize):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call):
(new.TemplateCanvasStage.waitUntilReady):
(new.TemplateCanvasStage):
* MotionMark1.2/tests/template/resources/template-css.js: Added.
(Stage.call.initialize):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call):
* MotionMark1.2/tests/template/resources/template-svg.js: Added.
(Stage.call.initialize):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call):
* MotionMark1.2/tests/template/template-canvas.html: Added.
* MotionMark1.2/tests/template/template-css.html: Added.
* MotionMark1.2/tests/template/template-svg.html: Added.
* MotionMark1.2/tests/text/design-6.html: Added.
* MotionMark1.2/tests/text/design-6.js: Added.
(switch):
(dataset.forEach):
* MotionMark1.2/tests/text/design.html: Added.
* MotionMark1.2/tests/text/design.js: Added.
(switch):
(dataset.forEach):

Canonical link: https://commits.webkit.org/237235@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276889 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-03 03:11:56 +00:00
Jonathan Bedard 29c1ff6651 Bugzilla needs to linkify identifiers (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=224312
<rdar://problem/75845629>

Reviewed by Aakash Jain.

* extensions/Commits/Extension.pm:
(bug_format_comment): Add regex to replace identifiers with a commits.webkit.org link.
(_replace_reference): This function replaces both revisions and identifiers.
(_replace_revision): Renamed _replace_reference.


Canonical link: https://commits.webkit.org/237068@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276640 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-04-27 15:34:44 +00:00
Jonathan Bedard 75a8791fb7 Bugzilla needs to linkify identifiers (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=224312
<rdar://problem/75845629>

Reviewed by Dewei Zhu.

* extensions/Commits: Moved from Trac.
* extensions/Commits/Config.pm: Changed Plugin name.
* extensions/Commits/Extension.pm: Ditto.
(_replace_revision): Use commit.webkit.org instead of trac.
* extensions/Trac: Moved to Commits.


Canonical link: https://commits.webkit.org/236983@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276536 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-04-24 00:18:32 +00:00
Zhifei Fang ab46e31307 Support Commit revision identifier in the Chart
https://bugs.webkit.org/show_bug.cgi?id=224496

Reviewed by Dewei Zhu.

In the measurement-set, we include the commit info but not the commit revision identifier column.
Make the API return the commit revision identifier as part of the commit data.

* browser-tests/customizable-test-group-form-tests.js: Fix flaky tests.
* browser-tests/index.html: Add commit revision identifier info.
* browser-tests/time-series-chart-tests.js: Fix flaky tests.
* public/api/measurement-set.php: Make this API provide commit revision identifier info.
* public/include/build-requests-fetcher.php: Ditto.
* public/v3/models/commit-set.js: Make the commit model can be constructed with the API respose format.
* server-tests/api-measurement-set-tests.js: Adding test for commit revision identifier.
* server-tests/api-build-requests-tests.js: Ditto.
* unit-tests/analysis-task-tests.js: Ditto.
(measurementCluster):
* unit-tests/commit-set-tests.js: Ditto.
* unit-tests/measurement-adaptor-tests.js: Ditto.
* unit-tests/measurement-set-tests.js: Ditto.


Canonical link: https://commits.webkit.org/236545@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275993 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-04-15 03:06:39 +00:00
Zhifei Fang af6d04af4e Add commit revision label support
https://bugs.webkit.org/show_bug.cgi?id=222897

Reviewed by Ryosuke Niwa.

Add new column revision label.
Make all commit api also can work with revision label.
Change the commit label display with commit revision label.

* browser-tests/commit-log-viewer-tests.js: Fix a failed test case, while requesting the remote api,
we should wait for those promises resolved and then wait for commponent to render.
* init-database.sql: Add new column revision_identifier.
* migrate-database.sql: Add new column revision_identifier.
* public/include/commit-log-fetcher.php: Make api that works with revision should work with revision label.
* public/include/commit-updater.php: Ditto.
* public/include/report-processor.php: Make the processor can also insert revision label.
* public/v3/models/commit-log.js:
(CommitLog.prototype.updateSingleton):
(CommitLog.prototype.revisionIdentifier):
(CommitLog.prototype.label): Make the label include revision label and revision.
(CommitLog.prototype.diff): Make the diff label include revision label and revision.
* server-tests/api-commits-tests.js:
* server-tests/api-report-commits-tests.js:
* server-tests/api-report-tests.js:
(reportWithRevisionIdentifierCommit):
* unit-tests/commit-log-tests.js:


git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Canonical link: https://commits.webkit.org/236004@main
2021-04-01 00:50:11 +00:00
Dewei Zhu b9646b69fe [perf dashboard] Remove v1 and v2 code.
https://bugs.webkit.org/show_bug.cgi?id=223617

Reviewed by Ryosuke Niwa.

Remove v1 and v2 code from perf dashboard.
Remove detect-changes.js script since run-analysis.js is the v3 version equivalent.

* public/index.html: Keep the redirection to v3.
* public/js/helper-classes.js: Removed.
* public/js/jquery.colorhelpers.js: Removed.
* public/js/jquery.flot.categories.js: Removed.
* public/js/jquery.flot.crosshair.js: Removed.
* public/js/jquery.flot.errorbars.js: Removed.
* public/js/jquery.flot.fillbetween.js: Removed.
* public/js/jquery.flot.js: Removed.
* public/js/jquery.flot.navigate.js: Removed.
* public/js/jquery.flot.plugins.js: Removed.
* public/js/jquery.flot.resize.js: Removed.
* public/js/jquery.flot.selection.js: Removed.
* public/js/jquery.flot.stack.js: Removed.
* public/js/jquery.flot.symbol.js: Removed.
* public/js/jquery.flot.threshold.js: Removed.
* public/js/jquery.flot.time.js: Removed.
* public/js/jquery.js: Removed.
* public/v2/analysis.js: Removed.
* public/v2/app.css: Removed.
* public/v2/app.js: Removed.
* public/v2/chart-pane.css: Removed.
* public/v2/commits-viewer.js: Removed.
* public/v2/data.js: Removed.
* public/v2/index.html: Keep the redirection to v3.
* public/v2/interactive-chart.js: Removed.
* public/v2/js/d3/LICENSE: Removed.
* public/v2/js/d3/d3.js: Removed.
* public/v2/js/d3/d3.min.js: Removed.
* public/v2/js/ember-data.js: Removed.
* public/v2/js/ember.js: Removed.
* public/v2/js/handlebars.js: Removed.
* public/v2/js/jquery.min.js: Removed.
* public/v2/manifest.js: Removed.
* public/v2/popup.js: Removed.
* public/v2/statistics-strategies.js: Removed.
* tools/detect-changes.js: Removed.

Canonical link: https://commits.webkit.org/235679@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274907 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-23 23:05:32 +00:00
Dewei Zhu b8badda33f [perf dashboard] Remove non-inclusive words from perf dashboard.
https://bugs.webkit.org/show_bug.cgi?id=223505

Reviewed by Ryosuke Niwa.

Removed most of non-inclusive terminology and replaced it with 'worker'.
Make impacted APIs backward compatible during transition.
The non-inclusive terminology will be removed after transition.

* ReadMe.md: Removed non-inclusive words.
* init-database.sql: Rename tables with non-inclusive words.
* migrate-database.sql: Added migration SQL for existing database.
* public/admin/build-workers.php: Renamed from Websites/perf.webkit.org/public/admin/build-slaves.php.
* public/api/build-requests.php:
* public/api/measurement-set.php:
* public/api/report-commits.php:
* public/api/runs.php:
* public/api/update-triggerable.php:
* public/api/upload-root.php:
* public/include/admin-header.php:
* public/include/json-header.php:
* public/include/report-processor.php:
* public/privileged-api/add-build-requests.php:
* public/privileged-api/create-analysis-task.php:
* public/privileged-api/create-test-group.php:
* public/privileged-api/update-test-group.php:
* public/v2/js/ember.js:
* server-tests/api-build-requests-tests.js:
* server-tests/api-commits-tests.js:
* server-tests/api-report-commits-tests.js:
* server-tests/api-report-tests.js:
(emptyReport):
(reportWitMismatchingCommitTime):
(reportWithOneSecondCommitTimeDifference):
(emptyWorkerReport):
(emptySlaveReport): Deleted.
* server-tests/api-test-groups.js:
* server-tests/api-update-triggerable-tests.js:
(updateWithOSXRepositoryGroup):
(updateWithMacWebKitRepositoryGroups):
* server-tests/api-upload-root-tests.js:
(makeReport):
(addWorkerAndCreateRootFile):
* server-tests/privileged-api-add-build-requests-tests.js:
(async createAnalysisTask):
(async addTriggerableAndCreateTask):
* server-tests/privileged-api-create-analysis-task-tests.js:
* server-tests/privileged-api-create-test-group-tests.js:
(createAnalysisTask):
* server-tests/privileged-api-update-test-group-tests.js:
(async createAnalysisTask):
(async addTriggerableAndCreateTask):
* server-tests/resources/common-operations.js:
* server-tests/resources/mock-data.js:
(MockData.addMockConfiguration):
(MockData.set mockTestSyncConfigWithSingleBuilder):
(MockData.sampleBuildData):
* server-tests/resources/test-server.js:
(TestServer.prototype.testConfig):
* server-tests/tools-buildbot-triggerable-tests.js:
* server-tests/tools-os-build-fetcher-tests.js:
* server-tests/tools-sync-buildbot-integration-tests.js:
(createTriggerable):
* tools/detect-changes.js:
(loadServerConfig):
* tools/js/buildbot-syncer.js:
(BuildbotBuildEntry.prototype.buildTag):
(BuildbotSyncer):
(BuildbotSyncer.prototype.scheduleRequest):
(BuildbotSyncer.prototype.scheduleRequestInGroupIfAvailable):
(BuildbotSyncer.prototype.pullBuildbot):
(BuildbotSyncer._loadConfig):
(BuildbotSyncer._validateAndMergeConfig):
(BuildbotBuildEntry.prototype.slaveName): Deleted.
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable):
(BuildbotTriggerable.prototype.updateTriggerable):
(BuildbotTriggerable.prototype.async syncOnce):
(BuildbotTriggerable.prototype.async _scheduleRequest):
(BuildbotTriggerable.prototype._scheduleRequestIfWorkerIsAvailable):
(BuildbotTriggerable.prototype._scheduleRequestWithLog):
(BuildbotTriggerable._testGroupMapForBuildRequests):
(BuildbotTriggerable.prototype._scheduleRequestIfSlaveIsAvailable): Deleted.
* tools/js/database.js:
* tools/js/os-build-fetcher.js:
(prototype.async _reportCommits):
* tools/js/privileged-api.js:
(NodePrivilegedAPI.prototype.sendRequest):
(NodePrivilegedAPI.configure):
(NodePrivilegedAPI):
* tools/pull-os-versions.py:
(OSBuildFetcher.fetch_and_report_new_builds):
* tools/run-analysis.js:
(async analysisLoop):
* tools/sync-buildbot.js:
(syncLoop.const.makeTriggerable):
(syncLoop):
* tools/sync-commits.py:
(Repository.fetch_commits_and_submit):
* tools/sync-os-versions.js:
(syncLoop):
* tools/util.py:
(submit_commits):
* unit-tests/analysis-task-tests.js:
* unit-tests/buildbot-syncer-tests.js:
(sampleiOSConfig):
(sampleBuildData):
(async const):
* unit-tests/checkconfig.js:
* unit-tests/measurement-set-analyzer-tests.js:
* unit-tests/privileged-api-tests.js:
* unit-tests/retry-failed-build-requests-tests.js:
* unit-tests/test-groups-tests.js:

Canonical link: https://commits.webkit.org/235601@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-22 21:23:38 +00:00
Dewei Zhu 3b604ed079 [perf dashboard] Perf dashboard should be compatible with newer version of postgres.
https://bugs.webkit.org/show_bug.cgi?id=223567

Reviewed by Ryosuke Niwa.

Newer version of postgres requires explicit ROW expression while updating a single column
using multi-column update syntax. However, 'ROW' is not supported in postgres < 10. In order
to keep compatibility, using a separate query when only updating one row.

* public/include/db.php: Use 'column = value' when there is only one column to update.

Canonical link: https://commits.webkit.org/235600@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274799 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-22 21:23:28 +00:00
Ryosuke Niwa 28234304b9 [perf dashboard] Use async/await in tests for TimeSeriesChart and InteractiveTimeSeriesChart
https://bugs.webkit.org/show_bug.cgi?id=222876

Reviewed by Sam Weinig.

Use async/await instead of chaining promises manually in the browser tests for
TimeSeriesChart and InteractiveTimeSeriesChart for better readability.

* browser-tests/interactive-time-series-chart-tests.js:
* browser-tests/time-series-chart-tests.js:


Canonical link: https://commits.webkit.org/235055@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-09 05:24:29 +00:00
Ryosuke Niwa a47008dcd2 [perf dashboard] Modernize TimeSeries and TimeSeriesView
https://bugs.webkit.org/show_bug.cgi?id=222872

Reviewed by Dewei Zhu.

Declare instance fields in class declarations, use const/let instead of var, and use generators
for forward and backward iterations instead of manually implementing the iterator protocol.

This patch also splits FilteredTimeSeriesView out of TimeSeriesView.

* public/v3/models/time-series.js:
(TimeSeries): Moved the declaration of _data instance field to the class declaration.
(TimeSeries.prototype.constructor): Deleted.
(TimeSeries.prototype.extendToFuture):
(TimeSeries.prototype.valuesBetweenRange):
(TimeSeries.prototype.findById):
(TimeSeries.prototype.findPointAfterTime):
(TimeSeriesView): Declared the instance fields in the class declaration.
(TimeSeriesView.prototype.constructor): Removed filteredData from the argument since it's split
out to FilteredTimeSeriesView now.
(TimeSeriesView.prototype.get _data): Added. An abstraction needed for FilteredTimeSeriesView.
(TimeSeriesView.prototype._findIndexForPoint): Ditto. Moved out of the constructor.
(TimeSeriesView.prototype.filter): Return a FilteredTimeSeriesView.
(TimeSeriesView.prototype.viewTimeRange): Use _subRange to return either TimeSeriesView or
FilteredTimeSeriesView which ever is needed.
(TimeSeriesView.prototype._subRange): An abstraction needed for FilteredTimeSeriesView.
(TimeSeriesView.prototype.Symbol.iterator): Made this a generator instead of implementing
the iterator protocol directly.
(TimeSeriesView.prototype._reverse): Ditto.
(FilteredTimeSeriesView): Added.
(FilteredTimeSeriesView.prototype.constructor): Added. Assert that afterEndingIndex is less than
the length of the filtered data. This assertion was missing in TimeSeries prior to this patch
when filteredData is specified.
(FilteredTimeSeriesView.prototype.get _data): Added.
(FilteredTimeSeriesView.prototype._subRange): Added. Instantiate FilteredTimeSeriesView with
the same filtered data.
(FilteredTimeSeriesView.prototype._findIndexForPoint): Moved from TimeSeriesView's constructor.
(FilteredTimeSeriesView.prototype._buildPointIndexMap): Moved from TimeSeriesView.


Canonical link: https://commits.webkit.org/234983@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274047 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-07 02:28:29 +00:00
Ryosuke Niwa fb2e8c14bf [perf dashboard] Some browser tests are flaky or failing
https://bugs.webkit.org/show_bug.cgi?id=222874

Reviewed by Dewei Zhu.

There were two tests in TimeSeriesChart tests that were intermittently failing due to the test
not reliably waiting for the iframe's resize to take effect and not waiting for the time series'
fetching logic to run 'til completion before waiting for canvas charts to be re-drawn. Fixing
these by adding code to wait for these conditons.

All browser tests for markup-component.js was broken in r274036 as `require` function is not
available in browsers. Added a workaround in BrowsingContext to add a make assert.ok function
using expect(~).to.be.true().

* browser-tests/index.html:
(BrowsingContext.prototype.constructor):
(waitForElementResize): Added.
* browser-tests/time-series-chart-tests.js: Fixed bugs in the tests.


Canonical link: https://commits.webkit.org/234982@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274046 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-07 02:25:25 +00:00
Ryosuke Niwa 1ed6ec5a31 [perf dashboard] Modernize DataModelObject and LabeledObject
https://bugs.webkit.org/show_bug.cgi?id=222871

Reviewed by Dewei Zhu.

Use const/let instead of var, async/await instead of Promise.then, and Map instead
of a regular object for a dictionary.

Also define instance fields in the class declaration instead of simply adding them
in the class constructors, and set the default parameter values instead of relying
on the unspecified argument being undefined.

* public/v3/models/data-model.js:
(DataModelObject.ensureSingleton):
(DataModelObject.namedStaticMap):
(DataModelObject.ensureNamedStaticMap):
(DataModelObject.findById):
(DataModelObject.listForStaticMap):
(DataModelObject.async cachedFetch):
(DataModelObject):
(LabeledObject.sortByName):
(DataModelObject.cachedFetch): Deleted.


Canonical link: https://commits.webkit.org/234980@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-07 00:27:54 +00:00
Ryosuke Niwa 7af0be0ba6 [perf dashboard] Modernize MeasurementSet
https://bugs.webkit.org/show_bug.cgi?id=222857

Reviewed by Dewei Zhu.

Modernized MeasurementSet by using new instance field syntax, let/const instead of var,
async/await instead of then/catch, and Map instead of an object as a dictionary.

* public/v3/models/measurement-set.js:
(Array.prototype.includes): Deleted this polyfill which was needed for an old node.js.
(MeasurementSet): Moved the initialization of instance variables here. Also use Map
for this._allFetches instead of using a regular object as a dictionary.
(MeasurementSet.findSet): Use Map for MeasurementSet mapping.
(MeasurementSet.prototype.findClusters): Use const and let instead of var.
(MeasurementSet.prototype.async fetchBetween): Use async & await instead of Promise.then.
(MeasurementSet.prototype._ensureClusterPromise): Use let/const instead of var.
(MeasurementSet.prototype._urlForCache): Renamed from _constructUrl and removed the argument
for useCache since this function is now only used for feteching JSON caches.
(MeasurementSet.async _fetchPrimaryCluster): Use async/await and let/const. Consolidated
the API call to re-generate new JSON files and inlined API path here.
(MeasurementSet.async _fetchSecondaryCluster): Use async/await.
(MeasurementSet._addFetchedCluster): Use let/const instead of var.
(MeasurementSet.async fetchSegmentation): Use async/await and let/const.
(MeasurementSet.async _cachedClusterSegmentation): Ditto.
(MeasurementSet.prototype.async _invokeSegmentationAlgorithm): Ditto.
* unit-tests/measurement-set-tests.js:
(beforeEach): Updated the logic to reset measurement sets since the static variable was
renamed in MeasurementSet.findSet above.
* unit-tests/resources/mock-v3-models.js:
(MockModels.inject): Ditto.


Canonical link: https://commits.webkit.org/234979@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274043 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-07 00:25:00 +00:00
Zhifei Fang a0d6c992e5 Make server test run with new node version
https://bugs.webkit.org/show_bug.cgi?id=222463

Change assert.equal to assert.strictEqual since node deprecated this API
Add a new function console.assert to make sure it will throw an error

Reviewed by Ryosuke Niwa.

* public/v3/models/repository.js:
(Repository.sortByNamePreferringOnesWithURL):
(Repository):
* server-tests/admin-platforms-tests.js:
* server-tests/admin-reprocess-report-tests.js:
* server-tests/api-build-requests-tests.js:
(return.TestServer.remoteAPI.getJSON.string_appeared_here.then):
* server-tests/api-commits-tests.js:
(assertCommitIsSameAsOneSubmitted):
(return.TestServer.remoteAPI.getJSON.string_appeared_here.then):
* server-tests/api-manifest-tests.js:
(return.TestServer.remoteAPI.getJSON.string_appeared_here.then):
* server-tests/api-measurement-set-tests.js:
* server-tests/api-report-commits-tests.js:
(emptyReport.then):
(async initialReportCommits):
(async setUpTestsWithExpectedStatus):
(async testWithExpectedFailure):
* server-tests/api-report-tests.js:
(emptyReport.then):
* server-tests/api-test-groups.js:
* server-tests/api-update-triggerable-tests.js:
(update.then):
(then.response.db.selectAll.string_appeared_here.then):
(then.db.selectAll.string_appeared_here.then):
(then.Manifest.fetch.then):
* server-tests/api-upload-root-tests.js:
* server-tests/api-uploaded-file-tests.js:
(return.TestServer.remoteAPI.getJSON.string_appeared_here.then):
* server-tests/privileged-api-add-build-requests-tests.js:
(async createAnalysisTask):
(const.commitSet.of.updatedGroups.0.requestedCommitSets):
* server-tests/privileged-api-create-analysis-task-tests.js:
* server-tests/privileged-api-create-test-group-tests.js:
(createAnalysisTask):
(return.createAnalysisTask.string_appeared_here.then):
(return.addTriggerableAndCreateTask.string_appeared_here.then):
(string_appeared_here.then):
* server-tests/privileged-api-upate-run-status.js:
* server-tests/privileged-api-update-test-group-tests.js:
(async createAnalysisTask):
* server-tests/privileged-api-upload-file-tests.js:
(TestServer.testConfig.uploadFileLimitInMB.1.then):
* server-tests/resources/common-operations.js:
(async assertThrows):
* server-tests/resources/temporary-file.js:
(TemporaryFile.makeTemporaryFileOfSizeInMB):
* server-tests/tools-buildbot-triggerable-tests.js:
(assertRequestAndResolve):
(then.refetchManifest.then):
(getBuilderNameToIDMapPromise.then):
* server-tests/tools-os-build-fetcher-tests.js:
* server-tests/tools-sync-buildbot-integration-tests.js:
(assertAndResolveRequest):
* tools/js/assert-override.js: Added.
(makeConsoleAssertThrow):
* tools/js/buildbot-syncer.js:
(BuildbotBuildEntry.prototype.initialize):
(BuildbotBuildEntry.prototype.buildRequestStatusIfUpdateIsNeeded):
(BuildbotBuildEntry):
(BuildbotSyncer.prototype.scheduleRequest):
(BuildbotSyncer._loadConfig):
(BuildbotSyncer._parseRepositoryGroup):
(BuildbotSyncer._validateAndMergeConfig):
(BuildbotSyncer):
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype._validateRequests):
* tools/js/markup-component.js:
(const.MarkupDocument.new.MarkupDocument.prototype._idForClone):
(const.MarkupDocument.new.MarkupDocument.prototype.markup):
* tools/js/os-build-fetcher.js:
(prototype._addOwnedCommitsForBuild):
* tools/js/remote.js:
(NodeRemoteAPI.prototype.configure):
* tools/js/v3-models.js:
* unit-tests/commit-set-tests.js:


Canonical link: https://commits.webkit.org/234972@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274036 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-06 14:31:56 +00:00
Dewei Zhu 50982a704b Fix a bug that a syncing script may try to reuse a delete root.
https://bugs.webkit.org/show_bug.cgi?id=222144

Reviewed by Ryosuke Niwa.

UploadedFile.deletedAt is not returned by API which makes UploadedFile instance always claims
the file it not deleted.
Fix a logical bug in CommitSet.areAllRootsAvailable.

* public/include/uploaded-file-helpers.php: Include 'deletedAt' filed in the API response.
* public/v3/models/commit-set.js:
(CommitSet.prototype.areAllRootsAvailable): Fixed an syntax error and a logical bug.
* server-tests/api-build-requests-tests.js: Added check on 'deletedAt' to be set on deleted files.
* unit-tests/commit-set-tests.js: Added unit tests for CommitSet.areAllRootsAvailable.
* unit-tests/resources/mock-v3-models.js: Cleared static map for UploadedFile.

Canonical link: https://commits.webkit.org/234315@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273118 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-02-19 02:10:28 +00:00
Ling Ho db140950f9 WebKit nighly archives page not working for Big Sur
https://bugs.webkit.org/show_bug.cgi?id=222016
<rdar://problem/74037376>

Reviewed by Alexey Proskuryakov.

* wp-content/themes/webkit/build-archives.php:


Canonical link: https://commits.webkit.org/234219@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273018 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-02-17 19:57:23 +00:00
Dean Johnson 01b0ccad19 [perf.webkit.org] Do not schedule jobs to Buildbot if the last job failed
https://bugs.webkit.org/show_bug.cgi?id=221943

Patch by Dean Johnson <dean_johnson@apple.com> on 2021-02-16
Reviewed by Dewei Zhu.

* server-tests/resources/mock-data.js:
(MockData.sampleBuildData): Allow options.results to be specified.
* server-tests/tools-buildbot-triggerable-tests.js:
(async const): Add tests for new functionality. Existing tests still pass.
* tools/js/buildbot-syncer.js:
(BuildbotBuildEntry.prototype.initialize): Track the 'results' key from a build.
(BuildbotBuildEntry.prototype.result): Make the build result available.
(BuildbotSyncer): Track the last completed build.
(BuildbotSyncer.prototype.lastCompletedBuildSuccessful): Check if the last completed
build was successful.
(BuildbotSyncer.prototype.pullBuildbot):
* tools/js/buildbot-triggerable.js: Do not schedule a job to a builder who failed
its last completedd build.
(BuildbotTriggerable.prototype._scheduleRequestIfSlaveIsAvailable):

Canonical link: https://commits.webkit.org/234174@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272971 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-02-17 02:27:23 +00:00
Dewei Zhu 9e70042c0f 'sync-commits.py' should be able to limit reporting scope to a specific branch on a Git repository.
https://bugs.webkit.org/show_bug.cgi?id=221799

Reviewed by Ryosuke Niwa.

Fetching git commits with 'git log --all ...' may end up fetching commits from branches created for
pull requests. Add 'branch' variable to allow us to limit to a certain branch.

* tools/sync-commits.py: Added 'branch' variable to GitRepository so that we can fetch from a specific branch.
If branch is not specified, it will still use '--all' to list commits.
(load_repository):
(GitRepository.__init__):
(GitRepository._fetch_all_hashes):

Canonical link: https://commits.webkit.org/234050@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-02-12 23:03:34 +00:00
Roy Reapor d605526623 perf.webkit.org/tools/js/analysis-results-notifier.js should allow sending of completion emails regardless of test name
https://bugs.webkit.org/show_bug.cgi?id=221712

Patch by Roy Reapor <rreapor@apple.com> on 2021-02-12
Reviewed by Dewei Zhu.

Rule `platforms` and `tests` can be undefined, an empty array, or an array of strings. Undefined will match everything.
Empty array will match nothing. Array of strings will match items in the array.

Rule will not match if either `tests` or `platforms` is an empty array.

* tools/js/analysis-results-notifier.js:
(AnalysisResultsNotifier._validateRules.isUnderfinedOrEmptyArrayOrArrayOfStrings):
- `platforms` and `tests` can now be undefined or an empty array officially
(AnalysisResultsNotifier._validateRules):
- switched to `assert.ok()`. `console.assert()` no longer throws since node v10 (https://github.com/facebook/jest/issues/5634)
- both rule `platforms` and `tests` must pass `isUnderfinedOrEmptyArrayOrArrayOfStrings()`. previously, rules like `{tests: [1, 3], platforms: ['speedometer']}` passes validation.
(AnalysisResultsNotifier._applyUpdate):
- switched to `assert.ok()`. `console.assert()` no longer throws since node v10 (https://github.com/facebook/jest/issues/5634)
(AnalysisResultsNotifier._validateRules.isNonemptyArrayOfStrings): Deleted.
* unit-tests/analysis-results-notifier-tests.js:
- added a bunch of unittests
- specify the exact regex match for `assert.throws()` and `assert.doesNotThrow()` argument.

Canonical link: https://commits.webkit.org/234049@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-02-12 22:29:04 +00:00
Martin Robinson e8c3679e4e scroll-snap demo should use new spec
https://bugs.webkit.org/show_bug.cgi?id=184046

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-11
Reviewed by Wenson Hsieh.

Update the scroll-snap demo to reflect the modern specification. This
demo isn't currently linked from the site, but if it's every linked again
it will now reflect the current specification.

This maintains the old CSS so that the demo continues to work with
old versions of Safari.

* demos/scroll-snap/index.html: Update the descriptions in the demo to reflect
the newest version of the specification.

Canonical link: https://commits.webkit.org/233982@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272742 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-02-11 19:33:25 +00:00
Beth Dakin 34e8b102ef Remove non-inclusive language from webkit.org/blog-files/css-jit-introduction/html5-single-page-microbenchmark.html
https://bugs.webkit.org/show_bug.cgi?id=221154

Reviewed by Geoffrey Garen.

* blog-files/css-jit-introduction/html5-single-page-microbenchmark.html:


Canonical link: https://commits.webkit.org/233502@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272089 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-01-30 01:16:04 +00:00
Dewei Zhu 8dd5823bd0 BuildbotTriggerable should not update build requests from another triggerable.
https://bugs.webkit.org/show_bug.cgi?id=220762

Reviewed by Ryosuke Niwa.

BuildbotTriggerable._pullBuildbotOnAllSyncers assumes 'BuildRequest.all()' returns all build requests under current triggerable.
However, this assumption got broken when root reuse change was introduced because build requests under same analysis task are
fetched. Thus, 'BuildRequest.all()' may contain build requests those are not under current triggerable. And those build requests
will be updated to 'failedIfNotCompleted'.
Update 'api/build-requests' so that 'url' and 'status_description' fields are not cleared if update does not specify them.

* public/api/build-requests.php: Added logic to avoid updating 'url' and 'status_description' if they are not specified.
* server-tests/api-build-requests-tests.js: Added an unit test.
* server-tests/resources/mock-data.js:
(MockData.async set addMockBuildRequestsForTwoTriggerablesUnderOneAnalysisTask):
* server-tests/tools-buildbot-triggerable-tests.js: Added an unit test.
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype.async syncOnce): Fixed a typo.
(BuildbotTriggerable._pullBuildbotOnAllSyncers): Instead of iterating over 'BuildRequest.all()', only set 'failedIfNotCompleted'
for build requests those are under current triggerable and satisfy the condition.


Canonical link: https://commits.webkit.org/233165@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271639 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-01-20 08:31:54 +00:00
Ling Ho 3d7cd7378c Bugzilla patch upload no longer displays the agreement for some users
https://bugs.webkit.org/show_bug.cgi?id=220678

Reviewed by Alexey Proskuryakov.

* template/en/default/attachment/patchlegalese.html.tmpl:


Canonical link: https://commits.webkit.org/233091@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271552 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-01-16 03:47:52 +00:00
Jonathan Davis bad96566f9 Limit failed login attempts on webkit.org blog
https://bugs.webkit.org/show_bug.cgi?id=220032

Reviewed by Timothy Hatcher.

* wp-content/plugins/limit-logins.php: Added.


Canonical link: https://commits.webkit.org/232774@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-01-05 22:42:53 +00:00
Jonathan Davis 497955c291 Disable public APIs on webkit.org blog
https://bugs.webkit.org/show_bug.cgi?id=220028

Reviewed by Timothy Hatcher.

* wp-content/plugins/disable-public-apis.php: Added.


Canonical link: https://commits.webkit.org/232773@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271176 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-01-05 22:40:20 +00:00
Jonathan Davis 774ac7b192 Enforce strong password changes on webkit.org blog
https://bugs.webkit.org/show_bug.cgi?id=220027

Reviewed by Timothy Hatcher.

* wp-content/plugins/strong-passwords.php: Added.


Canonical link: https://commits.webkit.org/232772@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271175 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-01-05 22:37:34 +00:00
Beth Dakin 1a778c935f Remove non-inclusive language from copy of JetStream 2.0 in Websites/
https://bugs.webkit.org/show_bug.cgi?id=220257

Reviewed by Darin Adler.

* JetStream2.0/code-load/inspector-payload.js:
(WebInspector.DOMNode.WebInspector.Resource.WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.styleFormatter):
(WebInspector.DOMNode.WebInspector.Resource.WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.isAllowlistedProperty):
(WebInspector.DOMNode.WebInspector.Resource.WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.isWhitelistedProperty): Deleted.
* JetStream2.0/web-tooling-benchmark/browser.js:
* JetStream2.0/web-tooling-benchmark/cli.js:


Canonical link: https://commits.webkit.org/232769@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271172 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-01-05 20:57:49 +00:00
Dewei Zhu 87bd6a6c1f 'AnalysisTask._commitSetsInSamePlatformGroup' should not fetch an invalid platform and metric config for a MeasurementSet.
https://bugs.webkit.org/show_bug.cgi?id=219721

Reviewed by Ryosuke Niwa.

Selected test group on analysis task page may not highlight when 'AnalysisTask._commitSetsInSamePlatformGroup' fetches
an invalid platform and metric config for a MeasurementSet.

* public/v3/models/analysis-task.js: Added a logic to avoid fetching MeasurementSet with an invalid config.
(AnalysisTask.prototype._commitSetsInSamePlatformGroup):

Canonical link: https://commits.webkit.org/232377@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270714 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-12-11 23:34:24 +00:00
Ryan Haddad 3084c99312 Add Big Sur to WebKit Build Archives page
https://bugs.webkit.org/show_bug.cgi?id=219789

Reviewed by Alexey Proskuryakov.

* wp-content/themes/webkit/build-archives.php:
Add Big Sur, remove High Sierra since we aren't producing new archives for it.

Canonical link: https://commits.webkit.org/232350@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-12-11 18:50:30 +00:00
Dewei Zhu 1df4437b73 Add max age for a root to be reused.
https://bugs.webkit.org/show_bug.cgi?id=219628

Reviewed by Ryosuke Niwa.

In order to prevent reusing a stale root, we should set a limit on the age of a root to be reused.
* public/include/manifest-generator.php: Added 'maxRootReuseAgeInDays' to manifest.
* public/v3/models/build-request.js: Added root age check.
(BuildRequest.prototype.async findBuildRequestWithSameRoots):
* public/v3/models/commit-set.js: Extended 'areAllRootsAvailable' with root age check.
(CommitSet.prototype.areAllRootsAvailable):
* public/v3/models/manifest.js:
(Manifest.fetch): Made it async.
(Manifest.async fetchRawResponse): Extract fetching raw manifest out so that 'maxRootReuseAgeInDays'
can be read without resetting other data models. Also added code to only fetch from API if requesting
/data/manifest.json returns 404.
(Manifest._didFetchManifest):
* server-tests/api-manifest-tests.js: Updated unit tests.
* unit-tests/build-request-tests.js: Updated unit tests and add new tests.
* unit-tests/manifest-test.js: Added unit tests.

Canonical link: https://commits.webkit.org/232274@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270607 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-12-09 23:13:28 +00:00
Dewei Zhu ec25a93d32 'run-analysis' script should schedule retries for A/B tests even after chart analysis failure.
https://bugs.webkit.org/show_bug.cgi?id=219116

Reviewed by Ryosuke Niwa.

Anlyzing charts and schedule retries for A/B tests on run-analysis script are independent task.
It should not skip scheduling retries even when chart analysis part fails.

* tools/run-analysis.js:
(async analysisLoop): Change the logic so that chart analysis failure will not stop scheduling retries.
Fix a typo for 'notificationRemoteAPI'.

Canonical link: https://commits.webkit.org/231849@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270140 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-11-21 01:27:13 +00:00
Dewei Zhu 9be763abed Fix a bug that platform groups cannot be updated on 'admin/platform'.
https://bugs.webkit.org/show_bug.cgi?id=219118

Reviewed by Ryosuke Niwa.

Admins should be able to update platform group on 'admin/platform'.
Update the assertion on BuildbotTriggerable._pullBuildbotOnAllSyncers so that when there is no
corresponding entry in buildRequestByGroup, the test group for the request should be finished.

* public/admin/platforms.php:
* tools/js/buildbot-triggerable.js: Updated the assert statement.
(BuildbotTriggerable.prototype._pullBuildbotOnAllSyncers):

Canonical link: https://commits.webkit.org/231847@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-11-21 00:51:51 +00:00
Dewei Zhu 5b7ba69522 BuildbotTriggerable should not process a completed build request from a completed test group.
https://bugs.webkit.org/show_bug.cgi?id=219016

Reviewed by Ryosuke Niwa.

BuildBotTriggerable._pullBuildbotOnAllSyncers relies on buildReqeustsByGroup to contain all build requests found by
BuildRequest.findById. However, since re-use root change is landed, above assumption is no longer valid. BuildRequest.all()
may includes build requests under same analysis task. Thus, `_pullBuildbotOnAllSyncers` will fail due to 'info' is undefined.

* server-tests/tools-buildbot-triggerable-tests.js: Added a unit test.
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype._pullBuildbotOnAllSyncers): Added logic to stop processing the build request if it's not
from incomplete build requests under a triggerable.

Canonical link: https://commits.webkit.org/231645@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269892 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-11-17 04:33:06 +00:00
Dewei Zhu b60df63300 Performance dashboard should avoid building same configuration under one analysis task.
https://bugs.webkit.org/show_bug.cgi?id=218413

Reviewed by Ryosuke Niwa.

Add logic in syncing script to reuse already built roots from same build request under current analysis task.
If there is another same build request scheduled/running, will defer scheduling current build request.

* public/admin/platforms.php: Fixed newer version of PHP warns on accessing invalid key in an array.
* public/admin/tests.php: Added a null check against $selected_parent.
* public/api/build-requests.php: Extended this API to allow reusing roots from existing build request.
* public/v3/models/build-request.js:
(BuildRequest.prototype.async findBuildRequestWithSameRoots): Find build type build request with same commit set
which can/will be reused under current analysis task.
* public/v3/models/commit-set.js:
(CommitSet.prototype.equalsIgnoringRoot): Added a helper function which checks commit set equality ignoring the root.
(CommitSet.prototype.equals): Use '_equalsOptionallyIgnoringRoot' as underlying implementation.
(CommitSet.prototype._equalsOptionallyIgnoringRoot): Implementation for both equals and equalsIngnoringRoot.
* server-tests/api-build-requests-tests.js: Added unit tests.
* server-tests/resources/mock-data.js: Added new mock data for new unit tests.
(MockData.addMockConfiguration):
(MockData.addMockData):
(MockData.set addMockBuildRequestsWithRoots):
(MockData.set addTwoMockTestGroupWithOwnedCommits):
(MockData.mockTestSyncConfigWithPatchAcceptingBuilder):
* server-tests/tools-buildbot-triggerable-tests.js: Added unit tests.
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype.async syncOnce):
(BuildbotTriggerable.prototype.async _scheduleRequest): A helper function to reuse the roots if there are built
roots available for same build type build request. If there is another build scheduled for same build request,
will defer scheduling the build request.
* unit-tests/build-request-tests.js: Add unit tests.

Canonical link: https://commits.webkit.org/231628@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269871 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-11-16 20:32:08 +00:00
Jonathan Davis 99f7099dfa Input sanitization improvements for Payment Request demo
https://bugs.webkit.org/show_bug.cgi?id=218470

Reviewed by Andy Estes.

* demos/payment-request/merchant-validation.php:


Canonical link: https://commits.webkit.org/231133@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-11-03 02:09:19 +00:00
Dewei Zhu 0cb6a559be Refactor 'platforms' table to contain group information.
https://bugs.webkit.org/show_bug.cgi?id=193132

Reviewed by Ryosuke Niwa.

Group 'platforms' so that bisecting can use commit sets from other platforms which are in the same platform group.
This will help to enhance the bisecting capability to higher granularity.
Added admin page to manage platform groups.
Updated platform admin page to allow update platform group.
SQL query to update existing database:
'''
BEGIN;
CREATE TABLE platform_groups (
    platformgroup_id serial PRIMARY KEY,
    platformgroup_name varchar(64) NOT NULL,
    CONSTRAINT platform_group_name_must_be_unique UNIQUE (platformgroup_name));

ALTER TABLE platforms ADD COLUMN platform_group integer REFERENCES platform_groups DEFAULT NULL;
END;
'''

* init-database.sql: Added 'platform_group' column to 'platforms' table.
Added 'platform_groups' table.
* migrate-database.sql: Updated migration script accordingly.
* public/admin/platform-groups.php: Added a page to manage platform groups.
* public/admin/platforms.php: Added support to update platform group in admin page.
* public/include/admin-header.php: Added link to page that maneges platform groups.
* public/include/manifest-generator.php: Added 'platformGroup' in manifest.
* public/v3/index.html: Included 'platform-groups.js'.
* public/v3/models/analysis-task.js:
(AnalysisTask.prototype.async.commitSetsFromTestGroupsAndMeasurementSet):
Included measurement commit sets from other platforms in the same platform group.
(AnalysisTask.prototype._commitSetForOtherPlatformsInSameGroup):
Helper function to find measurment commit set for other platforms in same platform group.
* public/v3/models/manifest.js: Added step to build 'PlatformGroup' instances.
* public/v3/models/platform-group.js: Added 'PlatformGroup' to represent entries in 'platform_groups' table.
(PlatformGroup):
(PlatformGroup.prototype.addPlatform):
(PlatformGroup.prototype.platforms):
* public/v3/models/platform.js: Added itself to 'PlatformGroup' in constructor if it belongs
to a group.
(Platform.prototype.group): Return the platform group of current platform.
* public/v3/models/time-series.js: Added helper function to show view between a given time range.
(TimeSeries.prototype.viewBetweenTime):
* server-tests/api-manifest-tests.js: Updated unit test to also test platform group initialization.
* tools/js/database.js: Added prefix for 'platform_groups'.
* tools/js/v3-models.js: Added import for platform group.

Canonical link: https://commits.webkit.org/230971@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269083 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-28 01:00:35 +00:00
Dewei Zhu 6dba7ea899 Fix and update performance dashboard tests
https://bugs.webkit.org/show_bug.cgi?id=218222

Reviewed by Ryosuke Niwa.

* public/api/upload-root.php: Add a null check against empty array
when accessing invalid key which will show warning since php 7.4.
Per https://wiki.php.net/rfc/notice-for-non-valid-array-container.
* server-tests/tools-sync-buildbot-integration-tests.js:
Fixed a unit test that assumes build request IDs under one test group is
one after another. This assumption is wrong when 'StartServers' under
'mpm_prefork_module' is set more than one in apache config.
Fixed antoher incorrect unit test.
* unit-tests/analysis-results-notifier-tests.js:
Fixed unit tests which incorrectly used 'assert.throws' per
https://nodejs.org/docs/latest-v7.x/api/assert.html#assert_assert_throws_block_error_message.

Canonical link: https://commits.webkit.org/230917@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269026 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-27 08:21:48 +00:00
Jonathan Davis 413c0dec79 Add an STP callout to Web Inspector documentation
https://bugs.webkit.org/show_bug.cgi?id=216105

Reviewed by Devin Rousso.

* wp-content/themes/webkit/single-web_inspector_page.php:
* wp-content/themes/webkit/style.css:
(article .meta .icon):


Canonical link: https://commits.webkit.org/228899@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266497 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-03 01:04:44 +00:00
Jonathan Davis b5f63f0ad7 Disable unused RPC services
https://bugs.webkit.org/show_bug.cgi?id=215779

Reviewed by Alexey Proskuryakov.

* .htaccess:


Canonical link: https://commits.webkit.org/228560@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266084 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-08-24 21:06:20 +00:00