Commit Graph

1447 Commits

Author SHA1 Message Date
Dewei Zhu 49ff2ac608 Test freshness page should improve the ability to correlating issues from same builder.
https://bugs.webkit.org/show_bug.cgi?id=195242

Reviewed by Ryosuke Niwa.

Added the ability to highlight indicators with same builder when mouse is hovering over one indicator.
This is a very useful visualization for correlating issues specific to a builder.
Added tooltip with latest build link when hovering over an indicator.

* public/v3/components/freshness-indicator.js:
(FreshnessIndicator): Removed 'summary' field as it's no longer needed.
Added 'highlighted' field.
(FreshnessIndicator.prototype.update): Added 'highlighted' argument.
(FreshnessIndicator.prototype.didConstructShadowTree): Make indicator to dispatch mouse enter and leave
messages so that UI can highlight corresponding cells.
(FreshnessIndicator.prototype.render):
(FreshnessIndicator.cssTemplate):
* public/v3/pages/test-freshness-page.js: Added tooltip to show latest build time and build link.
Added logic to manually compute table body height.
(TestFreshnessPage):
(TestFreshnessPage.prototype.didConstructShadowTree):
(TestFreshnessPage.prototype._fetchTestResults):
(TestFreshnessPage.prototype.render):
(TestFreshnessPage.prototype._renderTooltip):
(TestFreshnessPage.prototype._constructTableCell):
(TestFreshnessPage.cssTemplate):

Canonical link: https://commits.webkit.org/210023@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-03-14 03:07:40 +00:00
Ryosuke Niwa 57ec392bea Codify the naming convention for fooIfExists
https://bugs.webkit.org/show_bug.cgi?id=194930

Reviewed by Darin Adler.

Updating the coding style guideline after the discussion following
https://lists.webkit.org/pipermail/webkit-dev/2013-June/025056.html

* code-style.md:


Canonical link: https://commits.webkit.org/209545@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-03-01 19:21:15 +00:00
Dewei Zhu 0182c0fe7d The table head of test freshness page should not scroll with the page.
https://bugs.webkit.org/show_bug.cgi?id=195092

Reviewed by Ryosuke Niwa.

Fix the location of the freshness table head to make it easier to corelate cell with test.

* public/v3/pages/test-freshness-page.js: Changed some style rules to make the table head fixed.
(TestFreshnessPage.prototype._renderTable):
(TestFreshnessPage.cssTemplate):

Canonical link: https://commits.webkit.org/209445@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242126 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-02-27 07:33:22 +00:00
Jonathan Davis 68304812c7 Added macOS Mojave builds to the WebKit Build Archives.
https://bugs.webkit.org/show_bug.cgi?id=190908

Reviewed by Lucas Forschler.

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


Canonical link: https://commits.webkit.org/209239@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241839 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-02-20 22:25:23 +00:00
Jonathan Davis 3efac7ca2a Fixed animation positioning when homepage animation completes
https://bugs.webkit.org/show_bug.cgi?id=194395

Reviewed by Devin Rousso.

* wp-content/themes/webkit/front-header.php:


Canonical link: https://commits.webkit.org/208846@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241178 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-02-08 01:21:34 +00:00
Jonathan Davis 005a6fa35f Disable the WP emoji polyfill
https://bugs.webkit.org/show_bug.cgi?id=194394

Reviewed by Devin Rousso.

* wp-content/themes/webkit/functions.php:


Canonical link: https://commits.webkit.org/208843@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241174 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-02-08 00:55:08 +00:00
Jonathan Davis 9d472f88ce Fixed responsive design issues for the Contribute drop-down menu and pagination
https://bugs.webkit.org/show_bug.cgi?id=194393

Reviewed by Devin Rousso.

The short viewport breakpoint styles should apply for small width
windows as well, and pagination styles need to accommodate wrapped
text labels.

* wp-content/themes/webkit/style.css:
(.pagination .page-numbers,):
(@media only screen and (max-height: 415px) and (max-width: 920px)):
(@media only screen and (max-height: 415px)): Deleted.


Canonical link: https://commits.webkit.org/208842@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241173 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-02-08 00:52:47 +00:00
Jonathan Davis 7ce2ca9291 Add demos for Intersection Observer API
https://bugs.webkit.org/show_bug.cgi?id=194219

Reviewed by Simon Fraser.

* demos/intersection-observer/lazy-image-load/index.html: Added.
* demos/intersection-observer/lazy-image-load/scripts.js: Added.
(ImageLoader):
(ImageLoader.prototype.findImages):
(ImageLoader.prototype.smallURLForImage):
(ImageLoader.prototype.largeURLForImage):
(ImageLoader.prototype.setupObserver):
(ImageLoader.prototype.intersectionsChanged):
* demos/intersection-observer/lazy-image-load/style.css: Added.
(body):
(section):
(header):
(.main):
(.main img):
(.stories):
(.world, .local):
(.world):
(.local):
(.ad):
(.contents):
(.sidebar):
(.links):
(.main-story):
(.main-story img):
(.top-story):
(.top-story img):
(.mid-story img):
(.link-group):
(.link-group img):
(.link-group ul):
(.link-group li):
(footer):
(footer ul):
(footer a):
(.footer-col):
* demos/intersection-observer/simple/script.js: Added.
(addToLog):
(clearLog):
(stringFromRect):
(intersectedCallback):
* demos/intersection-observer/simple/simple-observer-iframe.html: Added.
* demos/intersection-observer/simple/simple-observer-root-margin.html: Added.
* demos/intersection-observer/simple/simple-observer.html: Added.
* demos/intersection-observer/simple/styles.css: Added.
(body):
(.results):
(.results button):
(h2):
(#logging):
* demos/intersection-observer/triggered-animation/index.html: Added.
* demos/intersection-observer/triggered-animation/script.js: Added.
(AnimationManager):
(AnimationManager.prototype.setupObserver):
(AnimationManager.prototype.intersectionsChanged):
* demos/intersection-observer/triggered-animation/style.css: Added.
(body):
(p):
(.animation-container h1):
(.animation-container):
(.animation-container .box):
(.slide.box):
(.animation-container.visible > .slide.box):
(.slide.animation-container div:nth-of-type(1)):
(.slide.animation-container div:nth-of-type(2)):
(.slide.animation-container div:nth-of-type(3)):
(.spin):
(.animation-container.visible .spin):
(@keyframes spin):
(to):
(.animation-container.svg):
(.animation-container.svg path):
(.animation-container.svg.visible):
(@keyframes stroke-move):
(.animation-container.svg circle):
(.animation-container.svg.visible circle):
(.animation-container.svg circle:nth-of-type(2)):
(.animation-container.svg circle:nth-of-type(3)):
(.animation-container.svg circle:nth-of-type(4)):
(.animation-container.svg circle:nth-of-type(5)):
(@keyframes circle-scale):


Canonical link: https://commits.webkit.org/208694@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-02-04 18:55:31 +00:00
Jonathan Davis f4a1a82175 Source/WebCore:
Updated feature status for several features
https://bugs.webkit.org/show_bug.cgi?id=193794

Reviewed by Joseph Pecoraro.

Updated feature status for the following: CSS Font Display,
CSS Text Decoration Level 4, SVG in OpenType Fonts, Web SQL,
File and Directory Entries API, MediaStream Recording API,
Readable Streams, Subresource Integrity, Visual Viewport API,
and Web Audio.

* features.json:

Websites/webkit.org:
Added feature status entry for "Removed in Preview"
https://bugs.webkit.org/show_bug.cgi?id=193794

Reviewed by Joseph Pecoraro.

* wp-content/themes/webkit/status.php:


Canonical link: https://commits.webkit.org/208322@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240482 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-25 18:46:49 +00:00
Dewei Zhu dcccae82a1 Analyzing a chart that does not exist should not halt whole run-analysis script.
https://bugs.webkit.org/show_bug.cgi?id=193563

Reviewed by Ryosuke Niwa.

Halting whole run-analysis script while there is any invalid chart specified in Manifest makes the script fragile.
Run-analysis is also responsible for adding retry and sending notification which should not be block by this error.
Skipping analyzing the corresponding configuration seems reasonable.

* public/v3/models/measurement-set.js:
(MeasurementSet.prototype._ensureClusterPromise): Only add callback when callback is specified.
This will help to fix 'UnhandledPromiseRejectionWarning' while running the test.
* tools/js/measurement-set-analyzer.js:
(MeasurementSetAnalyzer.prototype.async._analyzeMeasurementSet): Catch the exception while failing to fetch a measurement set and skip the analysis for this config.
* unit-tests/measurement-set-analyzer-tests.js: Added unit tests for this.

Canonical link: https://commits.webkit.org/208219@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240319 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-23 04:28:57 +00:00
Dewei Zhu 603cff4199 Updating commit in OSBuildFetcher should respect revision range in config.
https://bugs.webkit.org/show_bug.cgi?id=193558

Reviewed by Ryosuke Niwa.

OSBuildFetcher._fetchAvailableBuilds should filter out commits those are not in
revision range specified by cofnig.

* server-tests/tools-os-build-fetcher-tests.js: Added a unit test for this change.
* tools/js/os-build-fetcher.js:
(prototype.async._fetchAvailableBuilds): Filter out commits from update list if commit
revision is out of range.

Canonical link: https://commits.webkit.org/208122@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240200 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-19 09:08:11 +00:00
Dewei Zhu 59cf7580f6 Test group results notification should not say a build request to build had failed even when it had successfully completed.
https://bugs.webkit.org/show_bug.cgi?id=193064

Reviewed by Ryosuke Niwa.

Should show 'Build completed' or 'Build failed' for build type build requests.

* browser-tests/test-group-result-page-tests.js: Added a unit test to guard this bug.
* tools/js/test-group-result-page.js: Show 'Build completed' or 'Build failed' for build type build requests.

Canonical link: https://commits.webkit.org/208104@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-18 23:26:52 +00:00
Ling Ho d2a59db127 Update Bugzilla running on bugs.webkit.org and bugs.webkit-uat.org to version 5.0.4
https://bugs.webkit.org/show_bug.cgi?id=193477
<rdar://problem/37618737>

Patch by Ling Ho <lingho@apple.com> on 2019-01-18
Reviewed by Lucas Forschler.

* Bugzilla/Config.pm:
(write_params):
(read_param_file):
* Bugzilla/Constants.pm:
* Bugzilla/DB/Sqlite.pm:
(sql_date_format):
* Bugzilla/Install/Filesystem.pm:
(update_filesystem):
(_update_old_mining_filenames):
* Bugzilla/Install/Requirements.pm:
(REQUIRED_MODULES):
* Bugzilla/JobQueue.pm:
(subprocess_worker):
(kill_worker):
* Bugzilla/Migrate.pm:
(parse_date):
* Bugzilla/Template.pm:
(_concatenate_css):
(_concatenate_js):
* Bugzilla/Util.pm:
(read_text):
(write_text):
(datetime_from):
* contrib/jb2bz.py:
(process_reply_file):
(maybe_add_attachment):
(process_text_plain):
(process_multi_part):
(process_jitterbug):
(process_mime_body): Deleted.
* docs/en/rst/conf.py:
* docs/en/rst/installing/linux.rst:
* docs/en/rst/installing/mac-os-x.rst:
* docs/en/rst/installing/migrating-from-2.inc.rst:
* docs/en/rst/installing/migrating.rst:
* docs/en/rst/installing/quick-start.rst:
* docs/en/rst/installing/upgrading-with-git.rst:
* docs/en/rst/installing/windows.rst:
* docs/en/rst/integrating/extensions.rst:
* docs/en/rst/integrating/skins.rst:
* editflagtypes.cgi:
(get_products_and_components):
* taskgraph.json:
* template/en/default/pages/release-notes.html.tmpl:

Canonical link: https://commits.webkit.org/208091@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-18 20:39:32 +00:00
Dewei Zhu 7890b97eda Add UI in analysis task page to show commit testability information.
https://bugs.webkit.org/show_bug.cgi?id=192972

Reviewed by Ryosuke Niwa.

Add UI in custom analysis task configuration and customizable test group form to show testability information.
Fix a bug in 'CustomAnalysisTaskConfigurator._updateCommitSetMap' that 'currentComparison' is incorrectly set.
SQL to update existing database:
    ALTER TABLE commits ADD COLUMN IF NOT EXISTS commit_testability varchar(128) DEFAULT NULL;

* browser-tests/custom-analysis-task-configurator-tests.js: Added a unit test for the bug in
'CustomAnalysisTaskConfigurator._updateCommitSetMap'.
Added a unit test to make sure 'CustomAnalysisTaskConfigurator' still works when commit fetching never returns.
* browser-tests/index.html: Imported ''custom-analysis-task-configurator-tests.js'.
* init-database.sql: Increase 'commit_testability' field length from 64 characters to 128.
* public/v3/components/custom-analysis-task-configurator.js: Added UI to show testability information.
(CustomAnalysisTaskConfigurator):
(CustomAnalysisTaskConfigurator.prototype._didUpdateSelectedPlatforms): Should reset related field for corresponding
repositories that user does not specify revision.
(CustomAnalysisTaskConfigurator.prototype._updateMapFromSpecifiedRevisionsForConfiguration): A helper function
to update '_specifiedCommits' and '_invalidRevisionsByConfiguration' per '_specifiedRevisions'.
(CustomAnalysisTaskConfigurator.prototype.render):
(CustomAnalysisTaskConfigurator.prototype._updateCommitSetMap): Fixed a bug that 'currentComparison' is incorrectly set.
(CustomAnalysisTaskConfigurator.prototype._computeCommitSet):
(CustomAnalysisTaskConfigurator.prototype.async._fetchCommitsForConfiguration):
(CustomAnalysisTaskConfigurator.prototype.async._resolveRevision):
(CustomAnalysisTaskConfigurator.prototype._buildRevisionTable):
(CustomAnalysisTaskConfigurator.prototype._buildTestabilityList):
(CustomAnalysisTaskConfigurator.prototype._selectRepositoryGroup):
(CustomAnalysisTaskConfigurator.prototype._buildRevisionInput):
(CustomAnalysisTaskConfigurator.cssTemplate):
* public/v3/components/customizable-test-group-form.js: Added UI to show testability information.
(CustomizableTestGroupForm.prototype._renderCustomRevisionTable):
(CustomizableTestGroupForm.prototype._constructTestabilityRows.):
(CustomizableTestGroupForm.prototype._constructTestabilityRows):
(CustomizableTestGroupForm.prototype._constructRevisionRadioButtons):
Changing either revision editor or radio button should trigger a re-render as testability
information for updated revision may change.
(CustomizableTestGroupForm.cssTemplate):
* public/v3/models/commit-set.js:
(IntermediateCommitSet.prototype.commitsWithTestability): Renamed from 'commitsWithTestabilityWarnings'.
(IntermediateCommitSet.prototype.commitsWithTestabilityWarnings): Deleted.

Canonical link: https://commits.webkit.org/208032@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240104 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-17 05:56:18 +00:00
Saam Barati d5b7a6b356 Merge the latest version of JetStream2.0 to browserbench.org.
Rubber-stamped by Ryosuke Niwa.

* JetStream2.0: Copied from PerformanceTests/JetStream2.



Canonical link: https://commits.webkit.org/207798@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-10 01:38:56 +00:00
Dewei Zhu 55866b7cb7 Extend commits table to contain testability information.
https://bugs.webkit.org/show_bug.cgi?id=191557

Reviewed by Ryosuke Niwa.

Added the ability to store testability message in commits table.
Refactored '/api/report-commits' to support update commit only.
Updated os version syncing script to be able to update testability information.

* init-database.sql: Added 'commit_testability' field to 'commits' table.
* public/api/report-commits.php: Refactor this api to allow only update existing commits.
* public/include/commit-log-fetcher.php: Expose testability warning information in this API.
* public/include/commit-updater.php: Added 'CommitUpdater' to manage commit insert and update.
* public/v3/models/commit-log.js: CommitLog object should expose testability warning information.
(CommitLog.prototype.updateSingleton):
(CommitLog.prototype.testability):
* public/v3/models/commit-set.js: Added 'commitsWithTestability' and 'commits' to CommitSet and
IntermediateCommitSet instances.
(CommitSet.prototype.commitsWithTestability):
(CommitSet.prototype.commits):
(IntermediateCommitSet.prototype.commitsWithTestability):
(IntermediateCommitSet.prototype.commits):
* server-tests/api-report-commits-tests.js: Added unit tests for '/api/report-commits' when `insert=false`.
* server-tests/tools-os-build-fetcher-tests.js: Added and updated unit tests.
* tools/js/os-build-fetcher.js: Added the ability to update commit testability warnings.
(async.fetchReportAndUpdateCommits):
(prototype.async.fetchReportAndUpdateBuilds):
(prototype.async._fetchAvailableBuilds):
(prototype.async._commitsForAvailableBuilds):
(prototype._commitsWithinRange):
(prototype.async._reportCommits):
(fetchAndReportAllInOrder): Deleted.
(prototype.fetchAndReportNewBuilds): Deleted.
(prototype._fetchAvailableBuilds): Deleted.
(prototype._commitsForAvailableBuilds): Deleted.
(prototype._submitCommits): Deleted.
* tools/sync-os-versions.js:
* unit-tests/commit-log-tests.js: Added a unit test for 'testability'.
* unit-tests/commit-set-tests.js: Added unit tests for 'commitsWithTestability'.

Canonical link: https://commits.webkit.org/207523@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239485 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-12-21 02:05:39 +00:00
Jonathan Davis bf53665946 Ensure new styles are served on webkit.org.
https://bugs.webkit.org/show_bug.cgi?id=192953

Patch by Jon Davis <jond@apple.com> on 2018-12-20
Rubber-stamped by Devin Rousso.

* tabicon.svg: Removed as vector icons are no longer preferred.
* wp-content/themes/webkit/header.php: Updated stylesheet datestamp.

Canonical link: https://commits.webkit.org/207508@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239468 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-12-20 23:18:26 +00:00
Jonathan Davis 5de53ab357 Added a dark mode color scheme.
https://bugs.webkit.org/show_bug.cgi?id=192930

Reviewed by Timothy Hatcher.

* .htaccess: Added convenience redirects for /features and /css-features
* wp-content/themes/webkit/build-archives.php: Customized dark color styles for the page.
* wp-content/themes/webkit/css-status.php: Implemented new design and dark styles support.
* wp-content/themes/webkit/front-header.php: Added dark color styles.
* wp-content/themes/webkit/functions.php: Added new feature status navigation menu.
* wp-content/themes/webkit/header.php: Specify support for light and dark color schemes.
* wp-content/themes/webkit/images/chevron-dark.svg: Added.
* wp-content/themes/webkit/images/chevron.svg: Switch to HSL color.
* wp-content/themes/webkit/images/filter.svg: Added.
* wp-content/themes/webkit/images/icons.svg: Use currentColor for dark mode.
* wp-content/themes/webkit/images/invert-lightness.svg: Added.
* wp-content/themes/webkit/images/search.svg: Added.
* wp-content/themes/webkit/sitemap.php: Customized dark color styles for the page.
* wp-content/themes/webkit/status.php: Updated design and dark styles support.
* wp-content/themes/webkit/style.css: Added dark style rules and switched to custom properties.
(:root):
(@media(prefers-color-scheme:dark)):
(body):
(a):
(a,):
(hr):
(code):
(main):
(a[name]):
(p > a[name]::before):
(a[name]:hover):
(a[name]:hover::before):
(p:hover > a[name]::before):
(input[type=text]):
(input[type=submit]):
(.screen-reader-text:focus):
(.pagination .page-numbers,):
(.pagination .menu-item a):
(.pagination .page-numbers:not(.current, .dots):hover):
(.pagination .dots,):
(.connected.pagination .menu-item):
(.connected.pagination .menu-item:hover a):
(.connected.pagination .menu-item:first-child a):
(.connected.pagination .menu-item:last-child a):
(.connected.pagination .menu-item.current-menu-item a,):
(.menu-feature-pages-container):
(.nextrouter):
(.nextrouter.previous):
(.nextrouter:hover,):
(.nextrouter a):
(.nextrouter-copy):
(.nextrouter .label):
(.nextrouter .link):
(.tiles):
(.tile):
(.tile .background-image):
(.tile .background-image svg):
(.tile.category-web-inspector svg):
(.tile.category-performance svg):
(.tile.category-javascript svg):
(.tile.category-css svg):
(.tile.category-standards svg):
(.tile.category-contributing svg):
(.tile.category-storage svg):
(.tile.category-layout svg):
(.tile.category-safari-technology-preview svg):
(.tile.category-accessibility svg):
(.tile.category-security svg):
(.tile.category-privacy svg):
(.tile .background-image.loaded):
(.tile:not(.has-post-thumbnail) .background-image,):
(.featured-tile .tile-content):
(.background-vignette):
(.tag-window .background-image):
(.tag-window .background-vignette):
(.featured-tile.tag-dark .background-vignette):
(.featured-tile.tag-dark .tile-content):
(.featured-tile.tag-dark .tile-content a):
(.icon-tile .icon):
(.icon-tile,):
(.gray-tile):
(.gray-tile a):
(.amber-tile):
(.blue-tile):
(.twitter-tile):
(.icon.twitter-icon):
(pre):
(code .keyword,):
(code .keyword.builtin,):
(code .keyword.type):
(code .preprocessor):
(code .comment):
(code .comment .doc):
(code .identifier):
(code .string,):
(code .escaped):
(code .number,):
(code .regex,):
(code .attribute.value):
(code .operator):
(code .keyword.operator):
(code .whitespace):
(code .error):
(code .doctype):
(code .property):
(code.xml .comment,):
(code.xml .preprocessor .keyword):
(code.xml .meta,):
(code.cpp .preprocessor .identifier):
(pre::-moz-selection,):
(pre::selection, pre span::selection):
(code.css .attribute,):
(code.css .keyword):
(code.css .number):
(article h1,):
(article .byline p):
(article thead, article tfoot):
(article tr):
(article blockquote):
(.post .bodycopy > p:last-child:after):
(article div.note):
(article .foreword):
(article .cliptop):
(article .clipbottom):
(article .clipright):
(article .clipleft):
(article .mattewhite):
(article .mattewhite:not(.widescreen)):
(figure.table):
(article figcaption):
(article figcaption::before):
(.table-of-contents):
(.site-logo):
(.feature-header:after,):
(header nav a,):
(header nav a:hover,):
(.sub-menu-layer):
(.sub-menu-layer:after):
(.sub-menu-layer:before):
(@media only screen and (max-width: 920px)):
(header .menu):
(header nav a):
(header .menu > .menu-item > .sub-menu):
(@media only screen and (max-width: 690px)):
(article .scrollable):
(@media only screen and (max-width: 600px)):
(.table-of-contents label:after):
(@media only screen and (max-width: 415px)):
(article .invert-brightness,):
(.preserve-color, video):
(.preserve-color:hover,):
(.nextrouter .link,):
(.search-input):
(.filters-toggle-button):
(a > code): Deleted.
(.pagination .page-numbers): Deleted.
(.nextrouter:hover): Deleted.
(.nextrouter.previous:hover): Deleted.
(.icon-tile, .icon-tile a): Deleted.
(.gray-tile, .gray-tile a): Deleted.
(code .string, code .char): Deleted.
(code .number, code .tag): Deleted.
(code .regex, code .attribute): Deleted.
(code.xml .meta, code.xml .meta .keyword): Deleted.
(code::-moz-selection, code span::-moz-selection): Deleted.
(code::selection, code span::selection): Deleted.
(article h1 a): Deleted.
(.feature-header:after): Deleted.
(.feature.opened .feature-header:after): Deleted.
* wp-content/themes/webkit/team.php: Customized dark color styles for the page.


Canonical link: https://commits.webkit.org/207489@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239448 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-12-20 18:14:52 +00:00
Simon Fraser 43872962fa webkit.org/css-status is broken
https://bugs.webkit.org/show_bug.cgi?id=192278

Reviewed by Zalan Bujtas.

Remove a stray '='.

* wp-content/themes/webkit/css-status.php:


Canonical link: https://commits.webkit.org/206927@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238783 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-12-01 20:08:22 +00:00
Ryosuke Niwa 5e87036da5 Manifest file can contain a test metric which references a non-existent test
https://bugs.webkit.org/show_bug.cgi?id=191796

Reviewed by Dewei Zhu.

The bug was caused by a race condition between the manifest file fetching the list of tests and test metrics
and new tests and test metrics being added. Because we would fetch tests before test metrics, it was possible
for new test metrics which references a test not included in the fetched tests to be present in the test metrics.

Fixed the bug by changing the order of the queries so that test metrics are fetched before tests. This guarantees
that any test referenced by a test metric always exists and thefore included in the manifest file.

Unfortunately no new tests beucase this involes a race condition.

* public/include/manifest-generator.php:


Canonical link: https://commits.webkit.org/206508@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-17 01:14:26 +00:00
Dewei Zhu 5b1b4d8c3b Add cache for CommitLog objects to avoid refetching same commit.
https://bugs.webkit.org/show_bug.cgi?id=191621

Reviewed by Ryosuke Niwa.

Added a cache for fully fetched commit log objects to avoid refetching.

* public/v3/models/commit-log.js:
(CommitLog): Added assertion for id.
Removed unused 'remoteId' as it has been removed since r198479.
(CommitLog.async.fetchBetweenRevisions): Turned it into async function.
(CommitLog.async.fetchForSingleRevision): Added the logic to check cache before fetching.
(CommitLog._constructFromRawData): Added logic to add entries to cache.
* public/v3/models/commit-set.js: Fixed measurement set not passing commit id while constructing a
commit log object.
* public/v3/models/repository.js: Added the ability to track fetched commit for certain repository.
(Repository.commitForRevision): Returns a commit for given revision.
(Repository.setCommitForRevision): Sets commit for a given revision.
* unit-tests/commit-log-tests.js: Added unit tests for this change.
Fixed existing tests.
* unit-tests/commit-set-range-bisector-tests.js: Fixed unit tests.
* unit-tests/commit-set-tests.js: Fixed unit tests.

Canonical link: https://commits.webkit.org/206371@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-14 07:36:34 +00:00
Dewei Zhu 7dde5a2305 commit time returned by '/api/measurement-set' should match the one returned by '/api/commits'.
https://bugs.webkit.org/show_bug.cgi?id=191457

Reviewed by Dean Jackson and Ryosuke Niwa.

Commit time returned by '/api/measurement-set' sometimes is calculated by 'epoch from ..'.
This function will return a floating number with 5 or 6 decimal digits due to double precision limitations.
However, some commits may be reported with 6 decimal decimal.
So the commit time for those commits will be rounded to 5 decimal digits.
In order to avoid front end assertion failure in CommitLog, Database::to_js_time need to
match this behavior.

* public/include/db.php: Change the behavior to match that of postgres.
Added logic to avoid losing precision in php.
* server-tests/api-measurement-set-tests.js: Added unit tests for this bug.
(queryPlatformAndMetric): Fix a bug that arguments are not used at all.

Canonical link: https://commits.webkit.org/206368@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238164 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-14 05:31:45 +00:00
Jonathan Davis 1fb3d96381 Clean-up stray whitespace in theme files
https://bugs.webkit.org/show_bug.cgi?id=191430

Reviewed by Dean Jackson.

* wp-content/themes/webkit/css-status.php:
* wp-content/themes/webkit/footer.php:
* wp-content/themes/webkit/front-page.php:
* wp-content/themes/webkit/includes.php:
* wp-content/themes/webkit/nightly-start.php:
* wp-content/themes/webkit/nightly-survey.php:
* wp-content/themes/webkit/page.php:
* wp-content/themes/webkit/scripts/global.js:
* wp-content/themes/webkit/scripts/searchbuilds.js:
(initsearch):
(initsearch.displayError):
* wp-content/themes/webkit/single.php:
* wp-content/themes/webkit/sitemap.php:
* wp-content/themes/webkit/team.php:
* wp-content/themes/webkit/widgets/icon.php:
* wp-content/themes/webkit/widgets/page.php:


Canonical link: https://commits.webkit.org/206270@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238056 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-09 22:34:47 +00:00
Dewei Zhu 77e16f132f "/api/report" does not check commit time correctly.
https://bugs.webkit.org/show_bug.cgi?id=191351

Reviewed by Ryosuke Niwa.

Test result report API does not convert formated time string to timestamp correctly
which result in not checking commit time correctly.

* public/include/report-processor.php: Use 'strtotime' instead of 'floatval'.
Accepts the time delta within 1 seconds.
* server-tests/api-report-tests.js: Added unit tests.
(reportWitMismatchingCommitTime):
(reportWithOneSecondCommitTimeDifference):

Canonical link: https://commits.webkit.org/206190@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237953 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-08 00:39:38 +00:00
Dewei Zhu f527e63293 Custom test group form should use commit set map before customization as the behavior of radio buttons.
https://bugs.webkit.org/show_bug.cgi?id=191347

Reviewed by Ryosuke Niwa.

The radio button behavior should always set the same revision while editing the revision input.
That means we should not use the intermediate commit set map but use the commit set map before
"Customize" link is clicked.

* browser-tests/customizable-test-group-form-tests.js: Added a unit test for this bug.
* public/v3/components/customizable-test-group-form.js: Pass uncustomized commit set so that the radio button
behavoir preserves.
(CustomizableTestGroupForm):
(CustomizableTestGroupForm.prototype.setCommitSetMap):
(CustomizableTestGroupForm.prototype.didConstructShadowTree):
(CustomizableTestGroupForm.prototype.render):
(CustomizableTestGroupForm.prototype._renderCustomRevisionTable):
(CustomizableTestGroupForm.prototype._constructTableBodyList):
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithoutOwner):
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithOwner):
(CustomizableTestGroupForm.prototype._constructRevisionRadioButtons):

Canonical link: https://commits.webkit.org/206187@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-08 00:30:15 +00:00
Dewei Zhu 22e6baef7e Customizable test group form should not reset manually edited commit value sometimes.
https://bugs.webkit.org/show_bug.cgi?id=190863

Reviewed by Ryosuke Niwa.

After changing the radio button and manually editing the commit value, commit value should not be reset
while changing the name of the test group.
Add the logic to prompt warning when manually typed commit does not exist.

* browser-tests/customizable-test-group-form-tests.js: Added a unit test for this bug.
* browser-tests/index.html:
* public/v3/components/customizable-test-group-form.js: Should always update commit set as long as
the repository of that row does not have a owner repository.
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithoutOwner):
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithOwner):
(CustomizableTestGroupForm.prototype._constructRevisionRadioButtons):

Canonical link: https://commits.webkit.org/206154@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-07 05:58:15 +00:00
Jonathan Davis 4cd209a7e4 Follow-up fix for the webkit.org blog index page
https://bugs.webkit.org/show_bug.cgi?id=191216

Reviewed by Timothy Hatcher.

* wp-content/themes/webkit/index.php:


Canonical link: https://commits.webkit.org/206018@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237758 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-02 23:20:42 +00:00
Jonathan Davis 813421f707 Improved the SVG icons to use SVG symbols
https://bugs.webkit.org/show_bug.cgi?id=191205

Reviewed by Timothy Hatcher.

This change makes it far easier to add new SVG icons to the
icons.svg sprite and provides better positioning control
over the icons within the blog post tile frame.

* wp-content/themes/webkit/front-page.php:
* wp-content/themes/webkit/functions.php:
* wp-content/themes/webkit/header.php:
* wp-content/themes/webkit/images/icons.svg:
* wp-content/themes/webkit/index.php:
* wp-content/themes/webkit/loop.php:
* wp-content/themes/webkit/style.css:
(@supports ( -webkit-backdrop-filter: blur(10px) )):
(footer):
(#icons):
(.tile .background-image):
(.tile .background-image svg):
(.tile.category-web-inspector svg):
(.tile.category-performance svg):
(.tile.category-javascript svg):
(.tile.category-css svg):
(.tile.category-standards svg):
(.tile.category-contributing svg):
(.tile.category-storage svg):
(.tile.category-layout svg):
(.tile.category-safari-technology-preview svg):
(.tile.category-accessibility svg):
(.tile.category-security svg):
(.tile.category-privacy svg):
(header .menu-item-has-children .label-toggle::after):
(@media only screen and (max-width: 920px)):
(.main-menu.label-toggle):
(header .menu):
(@media only screen and (max-width: 690px)):
(@media only screen and (max-width: 415px)):
(@media only screen and (max-height: 415px)):
(.tile.category-web-inspector .background-image): Deleted.
(.tile.category-performance .background-image): Deleted.
(.tile.category-javascript .background-image): Deleted.
(.tile.category-css .background-image): Deleted.
(.tile.category-standards .background-image): Deleted.
(.tile.category-contributing .background-image): Deleted.
(.tile.category-storage .background-image): Deleted.
(.tile.category-layout .background-image): Deleted.
(.tile.category-safari-technology-preview .background-image): Deleted.
(.tile.category-accessibility .background-image): Deleted.
(.tile.tag-console .background-image,): Deleted.
(.tile.tag-console .background-image): Deleted.
(.tile.tag-debugger .background-image): Deleted.
(.tile.tag-shortcuts .background-image): Deleted.
(.tile.tag-timeline .background-image): Deleted.
* wp-content/themes/webkit/widgets/post.php:


Canonical link: https://commits.webkit.org/206012@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237752 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-02 21:43:42 +00:00
Jonathan Davis c0631977d5 Prevent homepage animation for users that prefer reduced motion
https://bugs.webkit.org/show_bug.cgi?id=188211

Reviewed by Timothy Hatcher.

* wp-content/themes/webkit/front-header.php:


Canonical link: https://commits.webkit.org/205963@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-01 18:02:56 +00:00
Jonathan Davis 37fb7cd251 Source/WebCore:
Changed "Under Development" status to use "In Development" instead
https://bugs.webkit.org/show_bug.cgi?id=187615

Reviewed by Joseph Pecoraro.

* features.json: Updated CSS Painting API Level 1 and CSS Properties and Values API Level 1.

Websites/webkit.org:
Added support for "deprecated" feature status
https://bugs.webkit.org/show_bug.cgi?id=187615

Reviewed by Joseph Pecoraro.

* wp-content/themes/webkit/status.php:


Canonical link: https://commits.webkit.org/205759@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237418 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-25 17:09:23 +00:00
Dewei Zhu 74c5e3032e Unreviewed, rolling out r236996.
Temporarily rollout to fix a manifest generation bug.
"lastModified" field for certain platform & metric configurations may be missing.

Reverted changeset:

"ManifestGenerator shouldn't need more than 1GB of memory or
run for 30 seconds"
https://bugs.webkit.org/show_bug.cgi?id=190393
https://trac.webkit.org/changeset/236996

Canonical link: https://commits.webkit.org/205577@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237206 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-16 22:58:03 +00:00
Devin Rousso 32c86db78a Add a demo for WebInspector scanvas debugging.
* demos/canvas-debugging/index.html: Added.

Canonical link: https://commits.webkit.org/205465@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237091 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-12 23:54:17 +00:00
Ryosuke Niwa 61758cbec1 Perf dashboard: add a test for aggregating subtests without a matching metric in /api/report
https://bugs.webkit.org/show_bug.cgi?id=190544

Rubber-stamped by Keith Miller and unofficially reviewed by Dewei Zhu.

Added tests for reporting results to /api/report where a test with aggregated metrics has a subtest
without a matching metric type. The aggregation should simply skip such a subtest instead of returning
an error or aggregating with a mismatching metric type.

* server-tests/api-report-tests.js:
(.makeReport): Extracted out of a test case.


Canonical link: https://commits.webkit.org/205460@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237086 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-12 23:10:39 +00:00
Ryosuke Niwa ec4eb8e811 Build fix after r236956. Use array_get to avoid warnings.
* public/include/report-processor.php:



Canonical link: https://commits.webkit.org/205439@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237065 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-12 06:33:57 +00:00
Jon Lee 53fc535398 Update default hyperlink for MotionMark to MotionMark 1.1
https://bugs.webkit.org/show_bug.cgi?id=190491

Reviewed by Ryosuke Niwa.

* index.html:


Canonical link: https://commits.webkit.org/205438@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237064 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-12 06:13:46 +00:00
Dewei Zhu f7e8a32691 Performance dashboard should show added iterations due failed build requests.
https://bugs.webkit.org/show_bug.cgi?id=190419

Reviewed by Ryosuke Niwa.

Added UI to show added build requests due to previous failed build requests.
Updated the retry/bisect button to default to initial repetition count when test group is created.

* public/v3/pages/analysis-task-page.js: Added a div to show added build requests.
Retry and bisect button should default to initial repetion count.
(AnalysisTaskTestGroupPane.prototype._renderCurrentTestGroup):
(AnalysisTaskTestGroupPane.cssTemplate):

Canonical link: https://commits.webkit.org/205378@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-10 03:43:47 +00:00
Ryosuke Niwa c8fc8ed0dc ManifestGenerator shouldn't need more than 1GB of memory or run for 30 seconds
https://bugs.webkit.org/show_bug.cgi?id=190393

Reviewed by Antti Koivisto and unofficially reviewed by Dewei Zhu.

This patch reduces the runtime of /api/manifest from 13s to 7s and reduces the memory requirement from
1GB to 400MB for the internal dashboard in my local testing.

The biggest perf win comes from avoid running a complex query over test_configurations to compute
the latest modified date across different test configuration types ("current" vs. "baseline").
Instead, we now fetch the entire table row by row and compute the latest modified date in memory.

Also call intval in many more places to avoid generating double quotes, which is a pretty significant
proportion of the JSON file size at this point.

Finally, use references in more places to avoid deep copying of arrays.

* public/include/manifest-generator.php:
(ManifestGenerator::generate): Skip the generation of "dashboard" since it's only used by v1 UI.
(ManifestGenerator::tests): Don't copy each row.
(ManifestGenerator::metrics): Ditto.
(ManifestGenerator::platforms): Implement the aforementioned optimization. Instead of grouping
test configurations for a given metric and platform together, fetch them all and do in-memory
processing in PHP. Avoid more copying as well.
(ManifestGenerator::repositories): Avoid more copying.
(ManifestGenerator::bug_trackers): Ditto.
(ManifestGenerator::fetch_triggerables): Ditto.


Canonical link: https://commits.webkit.org/205377@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236996 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-10 03:15:39 +00:00
Ryosuke Niwa efdb7c0080 /api/report takes 15+ minutes submitting some test results
https://bugs.webkit.org/show_bug.cgi?id=190382

Rubber-stamped by Alexey Proskuryakov and unofficially reviewed by Dewei Zhu.

The issue was that recursively_ensure_tests would issue thousands of dependent queries.

Since most reporting of results would be happening after all the tests and test metrics had been created,
simply fetch the list of all tests and test metrics upfront in memory.

This would slow-down the reporting of other test results but in practice doesn't matter (an extra few seconds
of overhead) but for slow reporting, it can significantly reduce the runtime from ~10 minutes to ~10 seconds.

* public/include/report-processor.php:
(ReportProcessor::process): Call fetch_tests before recursively_ensure_tests.
(ReportProcessor::fetch_tests): Added. This builds up a mapping of tests based on a parent test ID as well as
a mapping of metrics per test based on its name and then its aggregator's name.
(ReportProcessor::recursively_ensure_tests): Added. Use the in-memory maps built in fetch_tests when possible.
(ReportProcessor::aggregator_list_if_exists): Take a reference instead of passing it by value.
(TestRunsGenerator::add_aggregated_metric): Now takes metric ID. The code to add the test metric had been moved
to recursively_ensure_tests.


Canonical link: https://commits.webkit.org/205339@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236956 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-09 02:17:42 +00:00
Justin Fan d0fbbe4777 WebGPU: Rename old WebGPU prototype to WebMetal
https://bugs.webkit.org/show_bug.cgi?id=190325
.:

Reviewed by Dean Jackson.

* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

* Configurations/FeatureDefines.xcconfig:
* inspector/protocol/Canvas.json:
* inspector/scripts/codegen/generator.py:

Source/WebCore:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Existing WebGPU tests also renamed to reflect WebGPU -> WebMetal change.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* Sources.txt:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSWebMetalRenderPassAttachmentDescriptorCustom.cpp: Renamed from Source/WebCore/bindings/js/JSWebGPURenderPassAttachmentDescriptorCustom.cpp.
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
* bindings/js/JSWebMetalRenderingContextCustom.cpp: Renamed from Source/WebCore/bindings/js/JSWebGPURenderingContextCustom.cpp.
(WebCore::JSWebMetalRenderingContext::visitAdditionalChildren):
* bindings/js/WebCoreBuiltinNames.h:
* dom/Document.cpp:
(WebCore::Document::getCSSCanvasContext):
* dom/Document.h:
* dom/Document.idl:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::isWebMetalType):
(WebCore::HTMLCanvasElement::createContextWebMetal):
(WebCore::HTMLCanvasElement::getContextWebMetal):
(WebCore::HTMLCanvasElement::isWebGPUType): Deleted.
(WebCore::HTMLCanvasElement::createContextWebGPU): Deleted.
(WebCore::HTMLCanvasElement::getContextWebGPU): Deleted.
* html/HTMLCanvasElement.h:
* html/HTMLCanvasElement.idl:
* html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::isWebMetal const):
(WebCore::CanvasRenderingContext::isWebGPU const): Deleted.
* html/canvas/WebGPURenderingContext.cpp: Removed.
* html/canvas/WebMetalBuffer.cpp: Renamed from Source/WebCore/html/canvas/WebGPUBuffer.cpp.
(WebCore::WebMetalBuffer::create):
(WebCore::WebMetalBuffer::WebMetalBuffer):
* html/canvas/WebMetalBuffer.h: Renamed from Source/WebCore/html/canvas/WebGPUBuffer.h.
* html/canvas/WebMetalBuffer.idl: Renamed from Source/WebCore/html/canvas/WebGPUBuffer.idl.
* html/canvas/WebMetalCommandBuffer.cpp: Renamed from Source/WebCore/html/canvas/WebGPUCommandBuffer.cpp.
(WebCore::WebMetalCommandBuffer::create):
(WebCore::WebMetalCommandBuffer::WebMetalCommandBuffer):
(WebCore::WebMetalCommandBuffer::~WebMetalCommandBuffer):
(WebCore::WebMetalCommandBuffer::commit):
(WebCore::WebMetalCommandBuffer::presentDrawable):
(WebCore::WebMetalCommandBuffer::createRenderCommandEncoderWithDescriptor):
(WebCore::WebMetalCommandBuffer::createComputeCommandEncoder):
(WebCore::WebMetalCommandBuffer::completed):
* html/canvas/WebMetalCommandBuffer.h: Renamed from Source/WebCore/html/canvas/WebGPUCommandBuffer.h.
* html/canvas/WebMetalCommandBuffer.idl: Renamed from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl.
* html/canvas/WebMetalCommandQueue.cpp: Renamed from Source/WebCore/html/canvas/WebGPUCommandQueue.cpp.
(WebCore::WebMetalCommandQueue::create):
(WebCore::WebMetalCommandQueue::WebMetalCommandQueue):
(WebCore::WebMetalCommandQueue::createCommandBuffer):
* html/canvas/WebMetalCommandQueue.h: Renamed from Source/WebCore/html/canvas/WebGPUCommandQueue.h.
* html/canvas/WebMetalCommandQueue.idl: Renamed from Source/WebCore/html/canvas/WebGPUCommandQueue.idl.
* html/canvas/WebMetalComputeCommandEncoder.cpp: Renamed from Source/WebCore/html/canvas/WebGPUComputeCommandEncoder.cpp.
(WebCore::GPUSizeMake):
(WebCore::WebMetalComputeCommandEncoder::create):
(WebCore::WebMetalComputeCommandEncoder::WebMetalComputeCommandEncoder):
(WebCore::WebMetalComputeCommandEncoder::setComputePipelineState):
(WebCore::WebMetalComputeCommandEncoder::setBuffer):
(WebCore::WebMetalComputeCommandEncoder::dispatch):
(WebCore::WebMetalComputeCommandEncoder::endEncoding):
* html/canvas/WebMetalComputeCommandEncoder.h: Renamed from Source/WebCore/html/canvas/WebGPUComputeCommandEncoder.h.
* html/canvas/WebMetalComputeCommandEncoder.idl: Renamed from Source/WebCore/html/canvas/WebGPUComputeCommandEncoder.idl.
* html/canvas/WebMetalComputePipelineState.cpp: Renamed from Source/WebCore/html/canvas/WebGPUComputePipelineState.cpp.
(WebCore::WebMetalComputePipelineState::create):
(WebCore::WebMetalComputePipelineState::WebMetalComputePipelineState):
* html/canvas/WebMetalComputePipelineState.h: Renamed from Source/WebCore/html/canvas/WebGPUComputePipelineState.h.
* html/canvas/WebMetalComputePipelineState.idl: Renamed from Source/WebCore/html/canvas/WebGPUComputePipelineState.idl.
* html/canvas/WebMetalDepthStencilDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.cpp.
(WebCore::WebMetalDepthStencilDescriptor::create):
(WebCore::WebMetalDepthStencilDescriptor::depthWriteEnabled const):
(WebCore::WebMetalDepthStencilDescriptor::setDepthWriteEnabled):
(WebCore::WebMetalDepthStencilDescriptor::depthCompareFunction const):
(WebCore::WebMetalDepthStencilDescriptor::setDepthCompareFunction):
* html/canvas/WebMetalDepthStencilDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.h.
* html/canvas/WebMetalDepthStencilDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.idl.
* html/canvas/WebMetalDepthStencilState.cpp: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilState.cpp.
(WebCore::WebMetalDepthStencilState::create):
(WebCore::WebMetalDepthStencilState::WebMetalDepthStencilState):
(WebCore::WebMetalDepthStencilState::label const):
(WebCore::WebMetalDepthStencilState::setLabel):
* html/canvas/WebMetalDepthStencilState.h: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilState.h.
* html/canvas/WebMetalDepthStencilState.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineState.idl.
* html/canvas/WebMetalDrawable.cpp: Renamed from Source/WebCore/html/canvas/WebGPUDrawable.cpp.
(WebCore::WebMetalDrawable::create):
(WebCore::WebMetalDrawable::WebMetalDrawable):
* html/canvas/WebMetalDrawable.h: Renamed from Source/WebCore/html/canvas/WebGPUDrawable.h.
(WebCore::WebMetalDrawable::texture):
* html/canvas/WebMetalDrawable.idl: Renamed from Source/WebCore/html/canvas/WebGPUDrawable.idl.
* html/canvas/WebMetalEnums.cpp: Renamed from Source/WebCore/html/canvas/WebGPUEnums.cpp.
(WebCore::toWebMetalCompareFunction):
(WebCore::web3DCompareFunctionName):
(WebCore::toGPUCompareFunction):
* html/canvas/WebMetalEnums.h: Renamed from Source/WebCore/html/canvas/WebGPUEnums.h.
* html/canvas/WebMetalEnums.idl: Renamed from Source/WebCore/html/canvas/WebGPUEnums.idl.
* html/canvas/WebMetalFunction.cpp: Renamed from Source/WebCore/html/canvas/WebGPUFunction.cpp.
(WebCore::WebMetalFunction::create):
(WebCore::WebMetalFunction::WebMetalFunction):
* html/canvas/WebMetalFunction.h: Renamed from Source/WebCore/html/canvas/WebGPUFunction.h.
* html/canvas/WebMetalFunction.idl: Renamed from Source/WebCore/html/canvas/WebGPUFunction.idl.
* html/canvas/WebMetalLibrary.cpp: Renamed from Source/WebCore/html/canvas/WebGPULibrary.cpp.
(WebCore::WebMetalLibrary::create):
(WebCore::WebMetalLibrary::WebMetalLibrary):
(WebCore::WebMetalLibrary::functionNames const):
(WebCore::WebMetalLibrary::functionWithName const):
* html/canvas/WebMetalLibrary.h: Renamed from Source/WebCore/html/canvas/WebGPULibrary.h.
* html/canvas/WebMetalLibrary.idl: Renamed from Source/WebCore/html/canvas/WebGPULibrary.idl.
* html/canvas/WebMetalRenderCommandEncoder.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderCommandEncoder.cpp.
(WebCore::WebMetalRenderCommandEncoder::create):
(WebCore::WebMetalRenderCommandEncoder::WebMetalRenderCommandEncoder):
(WebCore::WebMetalRenderCommandEncoder::setRenderPipelineState):
(WebCore::WebMetalRenderCommandEncoder::setDepthStencilState):
(WebCore::WebMetalRenderCommandEncoder::setVertexBuffer):
(WebCore::WebMetalRenderCommandEncoder::setFragmentBuffer):
(WebCore::WebMetalRenderCommandEncoder::drawPrimitives):
(WebCore::WebMetalRenderCommandEncoder::endEncoding):
* html/canvas/WebMetalRenderCommandEncoder.h: Renamed from Source/WebCore/html/canvas/WebGPURenderCommandEncoder.h.
* html/canvas/WebMetalRenderCommandEncoder.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderCommandEncoder.idl.
* html/canvas/WebMetalRenderPassAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.cpp.
(WebCore::WebMetalRenderPassAttachmentDescriptor::WebMetalRenderPassAttachmentDescriptor):
(WebCore::WebMetalRenderPassAttachmentDescriptor::loadAction const):
(WebCore::WebMetalRenderPassAttachmentDescriptor::setLoadAction):
(WebCore::WebMetalRenderPassAttachmentDescriptor::storeAction const):
(WebCore::WebMetalRenderPassAttachmentDescriptor::setStoreAction):
(WebCore::WebMetalRenderPassAttachmentDescriptor::texture const):
(WebCore::WebMetalRenderPassAttachmentDescriptor::setTexture):
* html/canvas/WebMetalRenderPassAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.h.
* html/canvas/WebMetalRenderPassAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.idl.
* html/canvas/WebMetalRenderPassColorAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.cpp.
(WebCore::WebMetalRenderPassColorAttachmentDescriptor::create):
(WebCore::WebMetalRenderPassColorAttachmentDescriptor::WebMetalRenderPassColorAttachmentDescriptor):
(WebCore::WebMetalRenderPassColorAttachmentDescriptor::descriptor const):
(WebCore::WebMetalRenderPassColorAttachmentDescriptor::clearColor const):
(WebCore::WebMetalRenderPassColorAttachmentDescriptor::setClearColor):
* html/canvas/WebMetalRenderPassColorAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.h.
* html/canvas/WebMetalRenderPassColorAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.idl.
* html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.cpp.
(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::create):
(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::WebMetalRenderPassDepthAttachmentDescriptor):
(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::clearDepth const):
(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::setClearDepth):
(WebCore::WebMetalRenderPassDepthAttachmentDescriptor::descriptor const):
* html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.h.
* html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.idl.
* html/canvas/WebMetalRenderPassDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDescriptor.cpp.
(WebCore::WebMetalRenderPassDescriptor::create):
(WebCore::WebMetalRenderPassDescriptor::depthAttachment):
(WebCore::WebMetalRenderPassDescriptor::colorAttachments):
* html/canvas/WebMetalRenderPassDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDescriptor.h.
* html/canvas/WebMetalRenderPassDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDescriptor.idl.
* html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.cpp.
(WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::create):
(WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::WebMetalRenderPipelineColorAttachmentDescriptor):
(WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::pixelFormat const):
(WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::setPixelFormat):
* html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.h.
* html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.idl.
* html/canvas/WebMetalRenderPipelineDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.cpp.
(WebCore::WebMetalRenderPipelineDescriptor::create):
(WebCore::WebMetalRenderPipelineDescriptor::vertexFunction const):
(WebCore::WebMetalRenderPipelineDescriptor::setVertexFunction):
(WebCore::WebMetalRenderPipelineDescriptor::fragmentFunction const):
(WebCore::WebMetalRenderPipelineDescriptor::setFragmentFunction):
(WebCore::WebMetalRenderPipelineDescriptor::colorAttachments):
(WebCore::WebMetalRenderPipelineDescriptor::depthAttachmentPixelFormat const):
(WebCore::WebMetalRenderPipelineDescriptor::setDepthAttachmentPixelFormat):
(WebCore::WebMetalRenderPipelineDescriptor::reset):
* html/canvas/WebMetalRenderPipelineDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.h.
* html/canvas/WebMetalRenderPipelineDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.idl.
* html/canvas/WebMetalRenderPipelineState.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineState.cpp.
(WebCore::WebMetalRenderPipelineState::create):
(WebCore::WebMetalRenderPipelineState::WebMetalRenderPipelineState):
(WebCore::WebMetalRenderPipelineState::label const):
(WebCore::WebMetalRenderPipelineState::setLabel):
* html/canvas/WebMetalRenderPipelineState.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineState.h.
* html/canvas/WebMetalRenderPipelineState.idl: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilState.idl.
* html/canvas/WebMetalRenderingContext.cpp: Added.
(WebCore::WebMetalRenderingContext::create):
(WebCore::WebMetalRenderingContext::WebMetalRenderingContext):
(WebCore::WebMetalRenderingContext::canvas const):
(WebCore::WebMetalRenderingContext::initializeNewContext):
(WebCore::WebMetalRenderingContext::clampedCanvasSize const):
(WebCore::WebMetalRenderingContext::hasPendingActivity const):
(WebCore::WebMetalRenderingContext::stop):
(WebCore::WebMetalRenderingContext::activeDOMObjectName const):
(WebCore::WebMetalRenderingContext::canSuspendForDocumentSuspension const):
(WebCore::WebMetalRenderingContext::platformLayer const):
(WebCore::WebMetalRenderingContext::markLayerComposited):
(WebCore::WebMetalRenderingContext::reshape):
(WebCore::WebMetalRenderingContext::createLibrary):
(WebCore::WebMetalRenderingContext::createRenderPipelineState):
(WebCore::WebMetalRenderingContext::createDepthStencilState):
(WebCore::WebMetalRenderingContext::createComputePipelineState):
(WebCore::WebMetalRenderingContext::createCommandQueue):
(WebCore::WebMetalRenderingContext::nextDrawable):
(WebCore::WebMetalRenderingContext::createBuffer):
(WebCore::WebMetalRenderingContext::createTexture):
* html/canvas/WebMetalRenderingContext.h: Renamed from Source/WebCore/html/canvas/WebGPURenderingContext.h.
* html/canvas/WebMetalRenderingContext.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderingContext.idl.
* html/canvas/WebMetalSize.h: Renamed from Source/WebCore/html/canvas/WebGPUSize.h.
* html/canvas/WebMetalSize.idl: Renamed from Source/WebCore/html/canvas/WebGPUSize.idl.
* html/canvas/WebMetalTexture.cpp: Renamed from Source/WebCore/html/canvas/WebGPUTexture.cpp.
(WebCore::WebMetalTexture::create):
(WebCore::WebMetalTexture::WebMetalTexture):
* html/canvas/WebMetalTexture.h: Renamed from Source/WebCore/html/canvas/WebGPUTexture.h.
* html/canvas/WebMetalTexture.idl: Renamed from Source/WebCore/html/canvas/WebGPUTexture.idl.
* html/canvas/WebMetalTextureDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPUTextureDescriptor.cpp.
(WebCore::WebMetalTextureDescriptor::create):
(WebCore::WebMetalTextureDescriptor::WebMetalTextureDescriptor):
(WebCore::WebMetalTextureDescriptor::width const):
(WebCore::WebMetalTextureDescriptor::setWidth):
(WebCore::WebMetalTextureDescriptor::height const):
(WebCore::WebMetalTextureDescriptor::setHeight):
(WebCore::WebMetalTextureDescriptor::sampleCount const):
(WebCore::WebMetalTextureDescriptor::setSampleCount):
(WebCore::WebMetalTextureDescriptor::textureType const):
(WebCore::WebMetalTextureDescriptor::setTextureType):
(WebCore::WebMetalTextureDescriptor::storageMode const):
(WebCore::WebMetalTextureDescriptor::setStorageMode):
(WebCore::WebMetalTextureDescriptor::usage const):
(WebCore::WebMetalTextureDescriptor::setUsage):
* html/canvas/WebMetalTextureDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPUTextureDescriptor.h.
* html/canvas/WebMetalTextureDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPUTextureDescriptor.idl.
* inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::buildObjectForCanvas):
* inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::requestContent):
(WebCore::contextAsScriptValue):
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebMetalEnabled):
(WebCore::RuntimeEnabledFeatures::webMetalEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebGPUEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webGPUEnabled const): Deleted.
* platform/Logging.h:
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer):
(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):
* platform/graphics/cocoa/WebMetalLayer.h: Renamed from Source/WebCore/platform/graphics/cocoa/WebGPULayer.h.
* platform/graphics/cocoa/WebMetalLayer.mm: Renamed from Source/WebCore/platform/graphics/cocoa/WebGPULayer.mm.
(-[WebMetalLayer initWithGPUDevice:]):
* platform/graphics/gpu/GPUBuffer.cpp:
(WebCore::GPUBuffer::~GPUBuffer):
* platform/graphics/gpu/GPUBuffer.h:
* platform/graphics/gpu/GPUCommandBuffer.cpp:
(WebCore::GPUCommandBuffer::~GPUCommandBuffer):
* platform/graphics/gpu/GPUCommandBuffer.h:
* platform/graphics/gpu/GPUCommandQueue.cpp:
(WebCore::GPUCommandQueue::~GPUCommandQueue):
* platform/graphics/gpu/GPUCommandQueue.h:
* platform/graphics/gpu/GPUComputeCommandEncoder.cpp:
(WebCore::GPUComputeCommandEncoder::~GPUComputeCommandEncoder):
* platform/graphics/gpu/GPUComputeCommandEncoder.h:
* platform/graphics/gpu/GPUComputePipelineState.cpp:
(WebCore::GPUComputePipelineState::~GPUComputePipelineState):
* platform/graphics/gpu/GPUComputePipelineState.h:
* platform/graphics/gpu/GPUDepthStencilDescriptor.cpp:
(WebCore::GPUDepthStencilDescriptor::~GPUDepthStencilDescriptor):
* platform/graphics/gpu/GPUDepthStencilDescriptor.h:
* platform/graphics/gpu/GPUDepthStencilState.cpp:
(WebCore::GPUDepthStencilState::~GPUDepthStencilState):
* platform/graphics/gpu/GPUDepthStencilState.h:
* platform/graphics/gpu/GPUDevice.cpp:
(WebCore::GPUDevice::~GPUDevice):
* platform/graphics/gpu/GPUDevice.h:
(WebCore::GPUDevice::layer const):
* platform/graphics/gpu/GPUDrawable.cpp:
(WebCore::GPUDrawable::~GPUDrawable):
* platform/graphics/gpu/GPUDrawable.h:
* platform/graphics/gpu/GPUEnums.h:
* platform/graphics/gpu/GPUFunction.cpp:
(WebCore::GPUFunction::~GPUFunction):
* platform/graphics/gpu/GPUFunction.h:
* platform/graphics/gpu/GPULibrary.cpp:
(WebCore::GPULibrary::~GPULibrary):
* platform/graphics/gpu/GPULibrary.h:
* platform/graphics/gpu/GPURenderCommandEncoder.cpp:
(WebCore::GPURenderCommandEncoder::~GPURenderCommandEncoder):
* platform/graphics/gpu/GPURenderCommandEncoder.h:
* platform/graphics/gpu/GPURenderPassAttachmentDescriptor.cpp:
(WebCore::GPURenderPassAttachmentDescriptor::~GPURenderPassAttachmentDescriptor):
* platform/graphics/gpu/GPURenderPassAttachmentDescriptor.h:
* platform/graphics/gpu/GPURenderPassColorAttachmentDescriptor.cpp:
(WebCore::GPURenderPassColorAttachmentDescriptor::~GPURenderPassColorAttachmentDescriptor):
* platform/graphics/gpu/GPURenderPassColorAttachmentDescriptor.h:
* platform/graphics/gpu/GPURenderPassDepthAttachmentDescriptor.cpp:
(WebCore::GPURenderPassDepthAttachmentDescriptor::~GPURenderPassDepthAttachmentDescriptor):
* platform/graphics/gpu/GPURenderPassDepthAttachmentDescriptor.h:
* platform/graphics/gpu/GPURenderPassDescriptor.cpp:
(WebCore::GPURenderPassDescriptor::~GPURenderPassDescriptor):
* platform/graphics/gpu/GPURenderPassDescriptor.h:
* platform/graphics/gpu/GPURenderPipelineColorAttachmentDescriptor.cpp:
(WebCore::GPURenderPipelineColorAttachmentDescriptor::~GPURenderPipelineColorAttachmentDescriptor):
* platform/graphics/gpu/GPURenderPipelineColorAttachmentDescriptor.h:
* platform/graphics/gpu/GPURenderPipelineDescriptor.cpp:
(WebCore::GPURenderPipelineDescriptor::~GPURenderPipelineDescriptor):
* platform/graphics/gpu/GPURenderPipelineDescriptor.h:
* platform/graphics/gpu/GPURenderPipelineState.cpp:
(WebCore::GPURenderPipelineState::~GPURenderPipelineState):
* platform/graphics/gpu/GPURenderPipelineState.h:
* platform/graphics/gpu/GPUSize.h:
* platform/graphics/gpu/GPUTexture.cpp:
(WebCore::GPUTexture::~GPUTexture):
* platform/graphics/gpu/GPUTexture.h:
* platform/graphics/gpu/GPUTextureDescriptor.cpp:
(WebCore::GPUTextureDescriptor::~GPUTextureDescriptor):
* platform/graphics/gpu/GPUTextureDescriptor.h:
* platform/graphics/metal/GPUBufferMetal.mm:
(WebCore::GPUBuffer::GPUBuffer):
* platform/graphics/metal/GPUCommandBufferMetal.mm:
* platform/graphics/metal/GPUCommandQueueMetal.mm:
* platform/graphics/metal/GPUComputeCommandEncoderMetal.mm:
* platform/graphics/metal/GPUComputePipelineStateMetal.mm:
(WebCore::GPUComputePipelineState::GPUComputePipelineState):
* platform/graphics/metal/GPUDepthStencilDescriptorMetal.mm:
* platform/graphics/metal/GPUDepthStencilStateMetal.mm:
(WebCore::GPUDepthStencilState::setLabel const):
* platform/graphics/metal/GPUDeviceMetal.mm:
(WebCore::GPUDevice::reshape const):
* platform/graphics/metal/GPUDrawableMetal.mm:
(WebCore::GPUDrawable::release):
* platform/graphics/metal/GPUFunctionMetal.mm:
* platform/graphics/metal/GPULibraryMetal.mm:
(WebCore::GPULibrary::GPULibrary):
* platform/graphics/metal/GPURenderCommandEncoderMetal.mm:
(WebCore::GPURenderCommandEncoder::GPURenderCommandEncoder):
* platform/graphics/metal/GPURenderPassAttachmentDescriptorMetal.mm:
* platform/graphics/metal/GPURenderPassColorAttachmentDescriptorMetal.mm:
* platform/graphics/metal/GPURenderPassDepthAttachmentDescriptorMetal.mm:
* platform/graphics/metal/GPURenderPassDescriptorMetal.mm:
* platform/graphics/metal/GPURenderPipelineColorAttachmentDescriptorMetal.mm:
* platform/graphics/metal/GPURenderPipelineDescriptorMetal.mm:
* platform/graphics/metal/GPURenderPipelineStateMetal.mm:
(WebCore::GPURenderPipelineState::setLabel const):
* platform/graphics/metal/GPUTextureDescriptorMetal.mm:
* platform/graphics/metal/GPUTextureMetal.mm:
(WebCore::GPUTexture::GPUTexture):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setWebMetalEnabled):
(WebCore::InternalSettings::setWebGPUEnabled): Deleted.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebCore/PAL:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

* Configurations/FeatureDefines.xcconfig:

Source/WebInspectorUI:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.
For WebInspector, add WebMetal to valid enums for canvas types.

* UserInterface/Models/Canvas.js:
(WI.Canvas.fromPayload):
(WI.Canvas.displayNameForContextType):

Source/WebKit:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

* Configurations/FeatureDefines.xcconfig:
* Shared/WebPreferences.yaml:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

* Configurations/FeatureDefines.xcconfig:
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences webMetalEnabled]):
(-[WebPreferences setWebMetalEnabled:]):
(-[WebPreferences webGPUEnabled]): Deleted.
(-[WebPreferences setWebGPUEnabled:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
* TestWebKitAPI/Tests/WebCore/mac/GPUBuffer.mm:
* TestWebKitAPI/Tests/WebCore/mac/GPUCommandQueue.mm:
* TestWebKitAPI/Tests/WebCore/mac/GPUDevice.mm:
* TestWebKitAPI/Tests/WebCore/mac/GPUFunction.mm:
* TestWebKitAPI/Tests/WebCore/mac/GPULibrary.mm:
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setWebMetalEnabled):
(WTR::TestRunner::setWebGPUEnabled): Deleted.
* WebKitTestRunner/InjectedBundle/TestRunner.h:

Websites/webkit.org:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

* demos/webgpu/shared.js: Removed.
* demos/webmetal/2d.html: Renamed from Websites/webkit.org/demos/webgpu/2d.html.
* demos/webmetal/2d.jpg: Renamed from Websites/webkit.org/demos/webgpu/2d.jpg.
* demos/webmetal/2d.js: Renamed from Websites/webkit.org/demos/webgpu/2d.js.
(init):
* demos/webmetal/circle.svg: Renamed from Websites/webkit.org/demos/webgpu/circle.svg.
* demos/webmetal/cubes.html: Renamed from Websites/webkit.org/demos/webgpu/cubes.html.
* demos/webmetal/cubes.jpg: Renamed from Websites/webkit.org/demos/webgpu/cubes.jpg.
* demos/webmetal/cubes.js: Renamed from Websites/webkit.org/demos/webgpu/cubes.js.
(init):
* demos/webmetal/gl-matrix-min.js: Renamed from Websites/webkit.org/demos/webgpu/gl-matrix-min.js.
* demos/webmetal/hello.html: Renamed from Websites/webkit.org/demos/webgpu/hello.html.
* demos/webmetal/hello.jpg: Renamed from Websites/webkit.org/demos/webgpu/hello.jpg.
* demos/webmetal/hello.js: Renamed from Websites/webkit.org/demos/webgpu/hello.js.
(init):
* demos/webmetal/index.html: Renamed from Websites/webkit.org/demos/webgpu/index.html.
* demos/webmetal/shared.css: Renamed from Websites/webkit.org/demos/webgpu/shared.css.
* demos/webmetal/shared.js: Added.
(const.hasWebMetal):
(const.checkForWebMetal):
* demos/webmetal/simple.html: Renamed from Websites/webkit.org/demos/webgpu/simple.html.
* demos/webmetal/simple.jpg: Renamed from Websites/webkit.org/demos/webgpu/simple.jpg.
* demos/webmetal/simple.js: Renamed from Websites/webkit.org/demos/webgpu/simple.js.
(init):
* experimental-features.html:

LayoutTests:

<rdar://problem/44990443>

Reviewed by Dean Jackson.

Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

* fast/canvas/webgpu/webgpu-runtime-flag-expected.txt: Removed.
* fast/canvas/webmetal/webmetal-dispatch-expected.txt: Renamed from LayoutTests/fast/canvas/webgpu/webgpu-dispatch-expected.txt.
* fast/canvas/webmetal/webmetal-dispatch.html: Renamed from LayoutTests/fast/canvas/webgpu/webgpu-dispatch.html.
* fast/canvas/webmetal/webmetal-runtime-flag-expected.txt: Added.
* fast/canvas/webmetal/webmetal-runtime-flag.html: Renamed from LayoutTests/fast/canvas/webgpu/webgpu-runtime-flag.html.
* inspector/canvas/create-context-webmetal-expected.txt: Renamed from LayoutTests/inspector/canvas/create-context-webgpu-expected.txt.
* inspector/canvas/create-context-webmetal.html: Renamed from LayoutTests/inspector/canvas/create-context-webgpu.html.
* inspector/canvas/resolveCanvasContext-webgpu-expected.txt: Removed.
* inspector/canvas/resolveCanvasContext-webmetal-expected.txt: Added.
* inspector/canvas/resolveCanvasContext-webmetal.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu.html.
* platform/gtk/TestExpectations:
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:


Canonical link: https://commits.webkit.org/205337@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-09 01:37:30 +00:00
Jer Noble 2383aa4a79 Radar links should be clickable on bugs.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=190293
<rdar://problem/45020184>

Reviewed by Lucas Forschler.

Add a new Extension which formats bug comments and makes radar:// links clickable.

* extensions/Radar/Config.pm: Added.
* extensions/Radar/Extension.pm: Added.
(bug_format_comment):
(_replace_radar):


Canonical link: https://commits.webkit.org/205283@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236890 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-06 00:02:48 +00:00
Dewei Zhu 45b1c1666a Add retry for test groups with failed build requests.
https://bugs.webkit.org/show_bug.cgi?id=190188

Reviewed by Ryosuke Niwa.

Added retry logic in run-analysis script.
Current retry logic will only be triggered when there is at least one successful build request for each commit set
in a test group.

* init-database.sql: Added 'testgroup_initial_repetition_count' and 'testgroup_may_need_more_requests'.
SQL to update existing database:
'''
BEGIN;
    ALTER TABLE analysis_test_groups
        ADD COLUMN testgroup_initial_repetition_count integer DEFAULT NULL,
        ADD COLUMN testgroup_may_need_more_requests boolean DEFAULT FALSE;
    UPDATE analysis_test_groups SET testgroup_initial_repetition_count = (
        SELECT DISTINCT(COUNT(*)) FROM build_requests WHERE request_group = testgroup_id AND request_order >= 0 GROUP BY request_commit_set
    );
    ALTER TABLE analysis_test_groups ALTER COLUMN testgroup_initial_repetition_count DROP DEFAULT, ALTER COLUMN testgroup_may_need_more_requests SET NOT NULL;
END;
'''
'testgroup_initial_repetition_count' represents the number of successful build request for each commit set when
test group is created.
'testgroup_may_need_more_requests' will be set when any build request in test group is set to 'failed'.
* public/api/build-requests.php: Added the logic to set 'testgroup_may_need_more_requests'.
* public/api/test-groups.php: Updated 'ready-for-notification' to 'ready-for-further-processing' so that it returns finished test
groups those either have 'needs_notification' or  'may_need_more_requests' set.
* public/include/commit-sets-helpers.php: Set 'initial_repetition_count' to repetition count.
* public/privileged-api/update-test-group.php: Added APIs to add build request for a test group and
update 'may_need_more_requests' flag.
* public/v3/models/test-group.js:
(TestGroup): Added '_mayNeedMoreRequests' and '_initialRepetitionCount' field.
Refactored code that interacts with '/api/update-test-group'.
(TestGroup.prototype.updateSingleton):
(TestGroup.prototype.mayNeedMoreRequests):
(TestGroup.prototype.initialRepetitionCount):
(TestGroup.prototype.async._updateBuildRequest):
(TestGroup.prototype.updateName):
(TestGroup.prototype.updateHiddenFlag):
(TestGroup.prototype.async.didSendNotification):
(TestGroup.prototype.async.addMoreBuildRequests):
(TestGroup.prototype.async.clearMayNeedMoreBuildRequests): Added API to clear 'may_need_more_requests' flag.
(TestGroup.fetchAllReadyForFurtherProcessing): Refactored 'TestGroup.fetchAllWithNotificationReady' to return test groups either
have 'needs_notification' or  'may_need_more_requests' set.
(TestGroup.fetchAllThatMayNeedMoreRequests): Fetches test groups those may need more build requests.
* server-tests/api-test-groups.js: Added unit tests.
* server-tests/privileged-api-add-build-requests-tests.js: Added unit tests for 'add-build-requests' API.
* server-tests/privileged-api-update-test-group-tests.js: Added unit tests.
* server-tests/resources/mock-data.js:
(MockData.addMockData):
* server-tests/resources/test-server.js:
(TestServer.prototype._determinePgsqlDirectory): Fixed a bug that 'childProcess.execFileSync' may return a buffer.
* tools/run-analysis.js: Added logic to add extra build request before sennding notification.
* tools/js/retry-failed-build-requests.js:
(async.createAdditionalBuildRequestsForTestGroupsWithFailedRequests): Module that add extra build requests.
* unit-tests/retry-failed-build-requests-tests.js: Added.
* unit-tests/test-groups-tests.js: Added unit tests.

Canonical link: https://commits.webkit.org/205257@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-05 00:17:49 +00:00
Dewei Zhu f9e389e673 Apache can return a corrupt manifest file while ManifestGenerator::store is running
https://bugs.webkit.org/show_bug.cgi?id=189822

Reviewed by Ryosuke Niwa.

Updating a file on performance dashboard should be transactional between php and apache.
Otherwise, partial content may be served.

* public/api/measurement-set.php: Adapted invocation of 'generate_json_date_with_elapsed_time_if_needed'.
* public/api/runs.php: Adapted invocation of 'generate_json_date_with_elapsed_time_if_needed'.
* public/include/db.php: Make creating file transactionaly by taking advantage of
'move/rename' operation is atomic in OS.
Added logic to avoid overwriting file if all content except specified filed are identical.
* public/include/json-header.php: Added a helper function that added 'status' but does not
convert content to json.
* public/include/manifest-generator.php: Adapted invocation of 'generate_json_date_with_elapsed_time_if_needed'.
* public/shared/statistics.js: Removed unnecessary logging.
(Statistics.new.sampleMeanAndVarianceFromMultipleSamples):
* server-tests/api-manifest-tests.js: Updated one unit test.

Canonical link: https://commits.webkit.org/204906@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236454 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-25 05:12:13 +00:00
Fujii Hironori 64ef25a61c Update code style guidelines for using namespace inside a namespace definition
https://bugs.webkit.org/show_bug.cgi?id=189298

Reviewed by Ryosuke Niwa.

"using namespace" statements should be inside namespace definitions for
unified source builds.

* code-style.md(#using-position):

Canonical link: https://commits.webkit.org/204336@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235717 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-06 02:54:58 +00:00
Dean Jackson dbcdaf7976 Add support for USDZ to webkit.org for a sample file
https://bugs.webkit.org/show_bug.cgi?id=189217

Rubber-stamped by Anders Carlsson.

Use the accepted MIME-type for USDZ files, and provide a
simple example file.

* .htaccess: Serve USD with a MIME-type that we will accept.
* demos/ar/heart.usdz: Added.

Canonical link: https://commits.webkit.org/204227@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235579 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-01 00:16:57 +00:00
Ross Kirsling 2a0edee6d2 EWS bubbles are being hidden due to lack of space.
https://bugs.webkit.org/show_bug.cgi?id=188607

Reviewed by Daniel Bates.

* PrettyPatch/PrettyPatch.rb:
* code-review.js:
* js/status-bubble.js: Added.
Refactor Review Patch page so that the postMessage to resize EWS iframes may be used on other pages too.

* template/en/default/attachment/edit.html.tmpl:
* template/en/default/attachment/list.html.tmpl:
Resize EWS iframes via postMessage on bug page and attachment details page.


Canonical link: https://commits.webkit.org/203965@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235262 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-08-23 23:57:56 +00:00
Dewei Zhu dbb245f061 Show t-test results based on individual measurements to analysis task page.
https://bugs.webkit.org/show_bug.cgi?id=188425

Reviewed by Ryosuke Niwa.

Added comparison for individual iterations in analysis task page.
Added comparison for individual iterations for notification on A/B tests completion.
Refactored t-distribution inverse lookup to any degree of freedom with 5 significant figures.

* public/shared/statistics.js: Refactored t-distribution inverse lookup function and adapted this
change to all invocations.
(Statistics.new.this.supportedConfidenceIntervalProbabilities):
(Statistics.new.this.supportedOneSideTTestProbabilities):
(Statistics.new.this.confidenceIntervalDelta):
(Statistics.new.sampleMeanAndVarianceForMultipleSamples):
(Statistics.new.this.probabilityRangeForWelchsT):
(Statistics.new.this.probabilityRangeForWelchsTFromTwoSampleSets):
(Statistics.new.this._determinetwoSidedProbabilityBoundaryForWelchsT):
(Statistics.new.this.computeWelchsT):
(Statistics.new.this._computeWelchsTFromStatistics):
(Statistics.new.this.minimumTForOneSidedProbability): Function that does t-distribution inverse lookup.
* public/v3/components/analysis-results-viewer.js: Adapted TestGroup.compareTestResults change.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._measurementsForCommitSet):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._computeTestGroupStatus):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._valuesForCommitSet): Deleted.
* public/v3/components/test-group-results-viewer.js: Show both comparisions for both individual and mean.
(TestGroupResultsViewer.prototype._renderResultsTable):
(TestGroupResultsViewer.prototype._buildRowForMetric.):
(TestGroupResultsViewer.prototype._buildValueMap):
* public/v3/models/test-group.js:
(TestGroup.compareTestResults): Added comparison for individual iterations.
* tools/js/test-group-result-page.js:
(TestGroupResultPage.prototype._constructTableForMetric):
(TestGroupResultPage.prototype.get styleTemplate):
(TestGroupResultPage):
(TestGroupResultPage.prototype._URLForAnalysisTask): Renamed to '_resultsForTestGroup'
* unit-tests/statistics-tests.js: Updated and added unit tests.

Canonical link: https://commits.webkit.org/203958@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235255 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-08-23 23:11:10 +00:00
Jon Lee 7c75b13fe8 Add MotionMark 1.1 to browserbench
https://bugs.webkit.org/show_bug.cgi?id=188585
<rdar://problem/43308076>

Patch by Jon Lee <jonlee@apple.com> on 2018-08-14
Rubber-stamped by Ryosuke Niwa.

* MotionMark1.1/: Added.


Canonical link: https://commits.webkit.org/203661@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-08-14 23:26:06 +00:00
Jonathan Davis cf90829458 Disable some vestibular trigger animations when prefers-reduced-motion is active.
https://bugs.webkit.org/show_bug.cgi?id=186529

Reviewed by Dean Jackson.

* wp-content/themes/webkit/style.css:
(@media (prefers-reduced-motion)): Added to honor reduced motion settings.
(article,): Added to only use fade-in animation and prevent motion.


Canonical link: https://commits.webkit.org/203132@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234155 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-07-24 17:31:18 +00:00
Dewei Zhu c7da67b3a9 CustomConfigurationTestGroupForm should dispatch different arguments based on whether analysis task is created.
https://bugs.webkit.org/show_bug.cgi?id=187675

Reviewed by Ryosuke Niwa.

This change will fix the bug that no notification will be sent for any test groups except the
first one in any custom perf-try A/B task.

* public/v3/components/custom-configuration-test-group-form.js:
(CustomConfigurationTestGroupForm.prototype.startTesting): Conditionally includes taskName based on
whether or not analysis task is created.

Canonical link: https://commits.webkit.org/202931@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233884 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-07-17 05:07:34 +00:00
Dewei Zhu 18cdc22184 MeasurementSet should merge last four segments into two if values are identical.
https://bugs.webkit.org/show_bug.cgi?id=187311

Reviewed by Ryosuke Niwa.

If last four segments has the same value, MeasurmentSet should merge them.

* public/v3/models/measurement-set.js: Added the logic to conditionally merge last segments.
(MeasurementSet.prototype.fetchSegmentation):
* unit-tests/measurement-set-tests.js: Added a unit test for this change.

Canonical link: https://commits.webkit.org/202641@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-07-06 05:57:48 +00:00
Dewei Zhu 047df8617e Manifest.reset should clear static map for BugTracker and Bug objects.
https://bugs.webkit.org/show_bug.cgi?id=187186

Reviewed by Ryosuke Niwa

If static maps of BugTracker and Bug objects are not cleared up, updating singleton
of Bug object will fail assertion.

* public/v3/models/manifest.js: Clear static map for BugTracker and Bug.
(Manifest.reset):
* server-tests/api-manifest-tests.js: Added a unit test for this change.

Canonical link: https://commits.webkit.org/202541@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233456 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-07-03 03:55:24 +00:00
Dewei Zhu d712acb3f9 Fix a bug in range bisector that start commit may be counted twice.
https://bugs.webkit.org/show_bug.cgi?id=187205

Reviewed by Darin Adler.

Range bisector counted start commit twice if start commit is the same as end commit.

* public/v3/commit-set-range-bisector.js:
(CommitSetRangeBisector.async.commitSetClosestToMiddleOfAllCommits):
* unit-tests/commit-set-range-bisector-tests.js: Added a unit test for this change.

Canonical link: https://commits.webkit.org/202540@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-07-03 03:55:21 +00:00
Dewei Zhu 97efe2721f Fix a bug ComponentBase that wrong content template may be used.
https://bugs.webkit.org/show_bug.cgi?id=187159

Reviewed by Ryosuke Niwa.

ComponentBase uses '_parsed' to mark whether content and style templates of a class
is parsed. However, derived class parsing will be skipped as 'Derive._parsed' is available
via prototype chain whenever the base class is parsed.

* browser-tests/component-base-tests.js: Added unit tests.
* public/v3/components/base.js: Added 'hasOwnProperty' to make sure current class is parsed.
(ComponentBase.prototype._ensureShadowTree):

Canonical link: https://commits.webkit.org/202420@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-28 22:14:39 +00:00
Dewei Zhu 7e775c0d76 MeasurementSetAnalyzer should check triggerable availability before creating confirming A/B tests.
https://bugs.webkit.org/show_bug.cgi?id=187028

Reviewed by Ryosuke Niwa.

If the triggerable is not available, MeasurmentSetAnalyzer should only create analysis task without
confirming A/B tests.

* tools/js/measurement-set-analyzer.js: Added logic to check triggerable availability.
(MeasurementSetAnalyzer.prototype.async._analyzeMeasurementSet):
(MeasurementSetAnalyzer):
* unit-tests/measurement-set-analyzer-tests.js: Updated unit tests and added a new unit test for this change.

Canonical link: https://commits.webkit.org/202413@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233326 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-28 21:15:48 +00:00
Daniel Bates 1d19751ed9 EWS for security bugs
https://bugs.webkit.org/show_bug.cgi?id=186291
<rdar://problem/40829658>

Rubber-stamped by Lucas Forschler.

Substitute "review" for "r" as the name of the Bugzilla flag to look at to determine
if we should CC the feeder EWS on the associated bug.

* extensions/EWS/Extension.pm:
(isReviewFlag):

Canonical link: https://commits.webkit.org/202201@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233109 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-22 23:32:16 +00:00
Manuel Rego Casasnovas 57dfe64e0c [WPE] Some fixups on webkit.org page
https://bugs.webkit.org/show_bug.cgi?id=186844

Unreviewed as the content is not modified, only some minor fixups on the format.

* wpe.md: Remove title as it's already provided by the website CMS.
Avoid breaking lines at 80 chars as it's not rendered as expected.

Canonical link: https://commits.webkit.org/202121@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233021 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-20 20:24:56 +00:00
Manuel Rego Casasnovas 1bda46ffca [WPE] Add page for webkit.org
https://bugs.webkit.org/show_bug.cgi?id=186844

Reviewed by Michael Catanzaro.

* wpe.md: Added.


Canonical link: https://commits.webkit.org/202112@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233012 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-20 15:51:51 +00:00
Daniel Bates 9571ad2e97 EWS for security bugs
https://bugs.webkit.org/show_bug.cgi?id=186291
<rdar://problem/40829658>

Reviewed by Lucas Forschler

Part 2 of 2.

Adds a new Bugzilla extension that will automatically CC the EWS feeder queue
on each bug that has a patch up for review, including security bugs. This allows
the WebKit OpenSource Project to use an unprivileged Bugzilla account for the
EWS feeder queue.

* extensions/EWS/Config.pm: Added.
* extensions/EWS/Extension.pm: Added.
(new): Initialize some bookkeeping variables we use to track whether we have seen
a value change event for the review flag and whether we need to CC the feeder. The latter
we need to track because we can only make changes to the CC list in the callback
bug_start_of_update().
(object_before_set): This callback is called each time a setter is called on a Bugzilla
object. Check if the review flag was set to ? and do some bookkeeping. Although tempting
to do such work in the callback flag_end_of_update() instead of object_before_set() doing
such work would come AFTER we get callback bug_start_of_update() and hence after we have
committed the CC list of the bug to the database. Moreover, the "interface to [flag_end_of_update()]
is UNSTABLE and it may change in the future" according to <d7cf1c9194/Bugzilla/Hook.pm (L797)>.
(bug_start_of_update): Add the EWS feeder queue to the list of CC members of the bug, if needed.
(config_add_panels): Adds a new panel to the Administration Parameters screen.
(isReviewFlag): Helper function that returns whether the specified Bugzilla::Object represents
the review flag.
* extensions/EWS/docs/en/rst/index-admin.rst: Added.
* extensions/EWS/lib/ParamsPanelUI.pm: Added.
(checkUser): Helper function to determine if there exists a Bugzilla user corresponding to
the specified login name.
(get_param_list): Add configurable field to the Administration Parameters screen to specify
the login name of the EWS feeder queue.
* extensions/EWS/template/en/default/admin/params/ews.html.tmpl: Added.

Canonical link: https://commits.webkit.org/202080@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232980 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-19 20:35:03 +00:00
Roy Reapor 66bba095d1 Use new jQuery file layout
https://bugs.webkit.org/show_bug.cgi?id=186636

Patch by Roy Reapor <rreapor@apple.com> on 2018-06-14
Reviewed by Aakash Jain.

Tools:

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/rebaseline.html:
* TestResultServer/static-dashboards/run-embedded-unittests.html:

Websites/webkit.org:

* ajax/libs/jqueryui/jquery-ui-1.8.15.css: Removed.
* ajax/libs/jqueryui/jquery-ui-1.8.15.min.js: Removed.

Canonical link: https://commits.webkit.org/201969@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-15 01:20:48 +00:00
Jonathan Davis 03e2d70256 Minor layout fix for WebKit Feature Status Page
https://bugs.webkit.org/show_bug.cgi?id=186539

Reviewed by Timothy Hatcher.

* wp-content/themes/webkit/status.php: Added padding below the bottom paragraph.


Canonical link: https://commits.webkit.org/201956@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232851 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-14 20:26:38 +00:00
Roy Reapor 1611da7ac8 jQuery UI image assets are missing on webkit.org website.
https://bugs.webkit.org/show_bug.cgi?id=185949

Patch by Roy Reapor <rreapor@apple.com> on 2018-06-14
Reviewed by Aakash Jain.

* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_flat_75_ffffff_40x100.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_65_ffffff_1x400.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_75_dadada_1x400.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_222222_256x240.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_2e83ff_256x240.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_454545_256x240.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_888888_256x240.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_cd0a0a_256x240.png: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery-ui.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.accordion.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.all.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.autocomplete.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.base.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.button.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.core.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.datepicker.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.dialog.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.progressbar.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.resizable.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.selectable.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.slider.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.tabs.min.css: Added.
* ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.theme.min.css: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery-ui.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.blind.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.bounce.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.clip.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.core.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.drop.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.explode.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.fade.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.fold.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.highlight.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.pulsate.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.scale.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.shake.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.slide.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.effects.transfer.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.accordion.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.autocomplete.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.button.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.core.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.datepicker.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.dialog.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.draggable.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.droppable.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.mouse.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.position.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.progressbar.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.resizable.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.selectable.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.slider.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.sortable.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.tabs.min.js: Added.
* ajax/libs/jqueryui/1.8.15/ui/jquery.ui.widget.min.js: Added.



Canonical link: https://commits.webkit.org/201950@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-14 18:02:43 +00:00
Dewei Zhu 3f51803776 Extend test group rule to support 'userInitiated' field.
https://bugs.webkit.org/show_bug.cgi?id=186544

Reviewed by Ryosuke Niwa.

Added support for rule specifying whether or not test group is user initiated.

* tools/js/analysis-results-notifier.js: Rule now support 'userInitiated' field.
(AnalysisResultsNotifier.prototype.async.sendNotificationsForTestGroups):
(AnalysisResultsNotifier.prototype._applyRules):
(AnalysisResultsNotifier._matchesRule):
* unit-tests/analysis-results-notifier-tests.js: Added unit tests for this change.

Canonical link: https://commits.webkit.org/201872@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232740 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-12 03:27:45 +00:00
Dewei Zhu cc3dcb9f9f CommitSet range bisector should use commits occur in commit sets which specify the range as valid commits for commits without ordering.
https://bugs.webkit.org/show_bug.cgi?id=186062

Reviewed by Ryosuke Niwa.

For commits without ordering, we should use the commits occurs in the commit sets which specify the range as valid commits.
Commit sets in range should only contain those valid commits for corresponding repositories.

* public/v3/commit-set-range-bisector.js: Updated logic to add check on commits without ordering.
(CommitSetRangeBisector.async.commitSetClosestToMiddleOfAllCommits):
* unit-tests/commit-set-range-bisector-tests.js: Added a unit test for this case.

Canonical link: https://commits.webkit.org/201795@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-08 18:23:17 +00:00
Dewei Zhu fee53c510a Related task may not have a metric or platform.
https://bugs.webkit.org/show_bug.cgi?id=186426

Reviewed by Ryosuke Niwa.

Related task in the related task list can be a custom analysis task which
may not have platform or metric.

* public/v3/pages/analysis-task-page.js: Added null checks for platform and metric.
(AnalysisTaskPage.prototype._renderRelatedTasks):

Canonical link: https://commits.webkit.org/201788@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232617 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-08 06:02:47 +00:00
Dewei Zhu 26ff3ffb8a Fix browser test failed assertions and a bug in 'common-component-base'
https://bugs.webkit.org/show_bug.cgi?id=186423

Reviewed by Ryosuke Niwa.

Fixed serveral assertion failures in browser tests.
Fixed a bug in common-component-base that null/undefined as attribute value is not allowed.

* browser-tests/chart-revision-range-tests.js: Should not import 'lazily-evaluated-function.js' twice.
* browser-tests/chart-status-evaluator-tests.js: Should not import 'lazily-evaluated-function.js' twice.
* browser-tests/component-base-tests.js: Added a unit test for element attributes being null or undefined.
* browser-tests/index.html: Make mocked data from makeSampleCluster also contains commit_order.
* public/shared/common-component-base.js: Make it allow to take null as attribute value.
(CommonComponentBase.createElement):

Canonical link: https://commits.webkit.org/201785@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232614 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-08 04:40:42 +00:00
Dewei Zhu 853907d100 Added sending notification feature when test group finishes.
https://bugs.webkit.org/show_bug.cgi?id=184340

Reviewed by Ryosuke Niwa.

Added 'testgroup_needs_notification' filed to 'analysis_test_group' table to indicate whether a test group
has a pending notification.
Added 'testgroup_notification_sent_at' to record the last notification sent time.
SQL queries to update existing database are:
    'ALTER TABLE analysis_test_groups ADD COLUMN testgroup_needs_notification boolean NOT NULL DEFAULT FALSE;'
    'ALTER TABLE analysis_test_groups ADD COLUMN testgroup_notification_sent_at timestamp DEFAULT NULL;'
Updated 'run-analysis' script to be able to send notification when test group finishes.
Added 'Notify on completion' checkbox while creating/retrying/bisecting a test group.

* browser-tests/test-group-form-tests.js: Updated existing tests and added a new test.
* browser-tests/test-group-result-page-tests.js: Added unit tests for TestGroupResultPage.
* init-database.sql: Added 'testgroup_needs_notification' filed to 'analysis_test_group' table.
* public/api/test-groups.php: Added '/api/test-groups/ready-for-notification' API to 'test-group' to show all
test groups that need to send notification. Only the ones with 'completed', 'failed' or 'cancelled' status and its
'testgroup_needs_notification' is true will be returned by this API.
* public/include/build-requests-fetcher.php: Added 'fetch_requests_for_groups' to return test groups with given ids.
* public/include/commit-sets-helpers.php: Updated the logic to support setting 'testgroup_needs_notification'
while create an analysis_test_groups.
* public/privileged-api/create-analysis-task.php: Updated the logic to support setting 'testgroup_needs_notification'.
* public/privileged-api/create-test-group.php: Updated the logic to support setting 'testgroup_needs_notification'.
* public/privileged-api/update-test-group.php: Updated the logic to support updating 'testgroup_needs_notification'.
Extended this API to allow authentication both from CSRF token and slave.
* public/v3/components/custom-configuration-test-group-form.js:
(CustomConfigurationTestGroupForm.prototype.startTesting): Pass 'notifyOnCompletion' information which represents
'testgroup_needs_notification' from API perspective.
* public/v3/components/customizable-test-group-form.js:
(CustomizableTestGroupForm.prototype.startTesting): Pass 'notifyOnCompletion' information which represents
'testgroup_needs_notification' from API perspective.
(CustomizableTestGroupForm.cssTemplate): Added space between 'Notify on completion' checkbox and test group iteration selection list.
* public/v3/components/test-group-form.js:
(TestGroupForm): Added '_notifyOnCompletion' instance variable.
(TestGroupForm.prototype.didConstructShadowTree): Added 'onchange' event for notify on completion checkbox.
(TestGroupForm.prototype.startTesting): Pass 'notifyOnCompletion' information which represents
'testgroup_needs_notification' from API perspective.
(TestGroupForm.cssTemplate): Added space between 'Notify on completion' checkbox and test group iteration selection list.
* public/v3/models/analysis-results.js: Export 'AnalysisResults'.
(AnalysisResults.fetch): Update API path to use absolute url.
(AnalysisResults):
* public/v3/models/analysis-task.js:
(AnalysisTask.async.create): Extend this function to take notifyOnCompletion as argument which will be used as
'needsNotification' to send to server.
(AnalysisTask):
* public/v3/models/test-group.js:
(TestGroup): Added '_needsNotification' field.
(TestGroup.prototype.updateSingleton): Added logic to update '_needsNotification' field.
(TestGroup.prototype.needsNotification): Returns '_needsNotification' field.
(TestGroup.prototype.author): Returns author information.
(TestGroup.prototype.async.didSendNotification): API that updates 'testgroup_needs_notification' to true.
(TestGroup.prototype.async.fetchTask): API to fetch the task when it has not been fetched.
(TestGroup.createWithTask): Updated this function to accept 'notifyOnCompletion' which will be used as
'needsNotification' to send to server.
(TestGroup.createWithCustomConfiguration): Updated this function to accept 'notifyOnCompletion' which will be used as
'needsNotification' to send to server.
(TestGroup.createAndRefetchTestGroups): Updated this function to accept 'notifyOnCompletion' which will be used as
'needsNotification' to send to server.
(TestGroup.fetchAllWithNotificationReady): New function that invokes '/api/test-groups/ready-for-notification'.
* public/v3/pages/analysis-task-page.js: Update logic to 'notifyOnCompletion' around
(AnalysisTaskChartPane.prototype.didConstructShadowTree):
(AnalysisTaskResultsPane.prototype.didConstructShadowTree):
(AnalysisTaskTestGroupPane.prototype.didConstructShadowTree):
(AnalysisTaskPage.prototype.didConstructShadowTree):
(AnalysisTaskPage.prototype._retryCurrentTestGroup):
(AnalysisTaskPage.prototype.async._bisectCurrentTestGroup):
(AnalysisTaskPage.prototype._createTestGroupAfterVerifyingCommitSetList.set const):
(AnalysisTaskPage.prototype._createTestGroupAfterVerifyingCommitSetList):
(AnalysisTaskPage.prototype._createCustomTestGroup):
* public/v3/pages/chart-pane.js: Added 'Notify on completion' checkbox.
(ChartPane.prototype.didConstructShadowTree):
(ChartPane.prototype.async._analyzeRange):
* public/v3/pages/create-analysis-task-page.js: Adapted API change.
(CreateAnalysisTaskPage.prototype._createAnalysisTaskWithGroup):
* server-tests/api-test-groups.js: Added tests for '/api/test-groups/ready-for-notification'.
* server-tests/privileged-api-create-analysis-task-tests.js: Updated tests to adapt this change.
Added new tests.
* server-tests/privileged-api-create-test-group-tests.js: Added new tests.
* server-tests/privileged-api-update-test-group-tests.js: Added unit test for 'update-test-group' API.
* server-tests/resources/mock-data.js: addMockData should set 'testgroup_needs_notification' to be true.
* server-tests/tools-sync-buildbot-integration-tests.js: Updated tests to adapt this change.
(async.createTestGroupWihPatch):
(createTestGroupWihOwnedCommit):
* tools/js/analysis-results-notifier.js: Added notifier to send notification for completed test groups.
(AnalysisResultsNotifier):
(AnalysisResultsNotifier.prototype.async.sendNotificationsForTestGroups):
(AnalysisResultsNotifier.prototype._sendNotification): Invoke remote API to send notification.
(AnalysisResultsNotifier.prototype._constructMessageByRules):
(AnalysisResultsNotifier._matchesRule):
(AnalysisResultsNotifier._applyUpdate):
(AnalysisResultsNotifier.async._messageForTestGroup): Build html as message body for a test group.
(AnalysisResultsNotifier._URLForAnalysisTask): Returns URL for an analysis task.
(AnalysisResultsNotifier._instantiateNotificationTemplate):
* tools/js/test-group-result-page.js: Added 'TestGroupResultPage' and 'BarGraph' to show test group result.
(TestGroupResultPage):
(TestGroupResultPage.prototype.async.setTestGroup):
(TestGroupResultPage._urlForAnalysisTask):
(TestGroupResultPage.prototype._URLForAnalysisTask):
(TestGroupResultPage.prototype.constructTables):
(TestGroupResultPage.prototype._constructTableForMetric):
(TestGroupResultPage.):
(TestGroupResultPage.prototype.get pageContent):
(TestGroupResultPage.prototype.get styleTemplate):
(BarGraph):
(BarGraph.prototype.setWidth):
(BarGraph.prototype._constructBarGraph):
(BarGraph.prototype.get pageContent):
(BarGraph.prototype.get styleTemplate):
* tools/js/measurement-set-analyzer.js: Adapted 'AnalysisTask.create' change.
(MeasurementSetAnalyzer.prototype.async._analyzeMeasurementSet):
(MeasurementSetAnalyzer):
* tools/js/v3-models.js:
* tools/run-analysis.js: Added the logic that sends notification for completed test groups.
(main):
(async.analysisLoop):
* unit-tests/analysis-task-tests.js:
* unit-tests/analysis-results-notifier-tests.js: Added a unit test for 'AnalysisResultsNotifier' and 'NotificationService'.
* unit-tests/measurement-set-analyzer-tests.js: Updated unit tests per this change.
* unit-tests/test-groups-tests.js: Added unit tests for 'TestGroup.needsNotification'.
* unit-tests/resources/mock-remote-api.js: Only set 'privilegedAPI' when it exits.

Canonical link: https://commits.webkit.org/201783@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232612 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-08 03:44:28 +00:00
Ryosuke Niwa 0f49408247 Add the basic support for writing components in node.js
https://bugs.webkit.org/show_bug.cgi?id=186299

Reviewed by Antti Koivisto.

Add the basic support for writing components in node.js for generating rich email notifications.

To do this, this patch introduces MarkupComponentBase and MarkupPage which implement similar API
to ComponentBase and Page classes of v3 UI code. This enables us to share code between frontend
and the backend in the future. Because there is no support for declarative custom elements or
shadow root in HTML, MarkupComponentBase uses a similar but distinct concept of "content" tree
to represent the "DOM" tree for a component. When generating the HTML, MarkupComponentBase and
MarkupPage collectively transforms stylesheets and flattens the tree into a single HTML. In order
to keep this flatteneing logic simple, MarkupComponentBase only supports a very small subset of
CSS selectors to select elements by their local names and class names.

Specifically, each class name and element name based selectors are replaced by a globally unique
class name based selector, and each element which matches the selector is applied of the same
globally unique class name. The transformation is applied when constructing the "content" tree
as well as calls to renderReplace.

Because much of v3 frontend code relies on DOM API, this patch also implements the simplest form
of a fake DOM API as MarkupNode, MarkupParentNode, MarkupElement, and MarkupText. In order to avoid
reimplementing HTML & CSS parsers, this patch introduces the concept of content and style templates
to ComponentBase which are JSON alternatives to HTML & CSS template strings which can be used in
both frontend & backend.

* browser-tests/close-button-tests.js: Include CommonComponentBase.
* browser-tests/commit-log-viewer-tests.js: Ditto.
* browser-tests/component-base-tests.js: Ditto. Added a test cases for content & style templates.
(async.importComponentBase): Added.
* browser-tests/editable-text-tests.js: Include CommonComponentBase.
* browser-tests/index.html:
* browser-tests/markup-page-tests.js: Added.
* browser-tests/page-router-tests.js: Include CommonComponentBase.
* browser-tests/page-tests.js: Ditto.
* browser-tests/test-group-form-tests.js: Ditto.
* public/shared/common-component-base.js: Added.
(CommonComponentBase): Extracted out of ComponentBase.
(CommonComponentBase.prototype.renderReplace): Added.
(CommonComponentBase.renderReplace): Moved from ComponentBase.
(CommonComponentBase.prototype._recursivelyUpgradeUnknownElements): Moved and renamed from
ComponentBase's _recursivelyReplaceUnknownElementsByComponents.
(CommonComponentBase.prototype._upgradeUnknownElement): Extracted out of the same function.
(CommonComponentBase._constructStylesheetFromTemplate): Added.
(CommonComponentBase._constructNodeTreeFromTemplate): Added.
(CommonComponentBase.prototype.createElement): Added.
(CommonComponentBase.createElement): Moved from ComponentBase.
(CommonComponentBase._addContentToElement): Moved from ComponentBase.
(CommonComponentBase.prototype.createLink): Added.
(CommonComponentBase.createLink): Moved from ComponentBase.
(CommonComponentBase._context): Added. Set to document in a browser and MarkupDocument in node.js.
(CommonComponentBase._isNode): Added. Set to a function which does instanceof Node/MarkupNode check.
(CommonComponentBase._baseClass): Added. Set to ComponentBase or MarkupComponentBase.
* public/v3/components/base.js:
(ComponentBase):
(ComponentBase.prototype._ensureShadowTree): Added the support for the content and style templates.
Also avoid parsing the html template each time a component is instantiated by caching the result.
* public/v3/index.html:
* tools/js/markup-component.js: Added.
(MarkupDocument): Added. A fake Document.
(MarkupDocument.prototype.createContentRoot): A substitude for attachShadow.
(MarkupDocument.prototype.createElement):
(MarkupDocument.prototype.createTextNode):
(MarkupDocument.prototype._idForClone):
(MarkupDocument.prototype.reset):
(MarkupDocument.prototype.markup):
(MarkupDocument.prototype.escapeAttributeValue):
(MarkupDocument.prototype.escapeNodeData):
(MarkupNode): Added. A fake Node. Each node gets an unique ID.
(MarkupNode.prototype._markup):
(MarkupNode.prototype.clone): Implemented by the leave class.
(MarkupNode.prototype._cloneNodeData):
(MarkupNode.prototype.remove):
(MarkupParentNode): Added. An equivalent of ContainerNode in WebCore.
(MarkupParentNode.prototype.get childNodes):
(MarkupParentNode.prototype._cloneNodeData):
(MarkupParentNode.prototype.appendChild):
(MarkupParentNode.prototype.removeChild):
(MarkupParentNode.prototype.removeAllChildren):
(MarkupParentNode.prototype.replaceChild):
(MarkupContentRoot): Added. Used like a shadow tree.
(MarkupContentRoot.prototype._markup): Added.
(MarkupElement): Added. A fake Element. It also implements a subset of IDL attributes implemented by
subclasses such as HTMLInputElement for simplicity.
(MarkupElement.prototype.get id): Added.
(MarkupElement.prototype.get localName): Added.
(MarkupElement.prototype.clone): Added.
(MarkupElement.prototype.appendChild): Added.
(MarkupElement.prototype.addEventListener): Added.
(MarkupElement.prototype.setAttribute): Added.
(MarkupElement.prototype.getAttribute): Added.
(MarkupElement.prototype.get attributes): Added.
(MarkupElement.prototype.get textContent): Added.
(MarkupElement.prototype.set textContent): Added.
(MarkupElement.prototype._serializeStyle): Added.
(MarkupElement.prototype._markup): Added. Flattens the tree with content tree like copy & paste so
this can't be used to implement innerHTML.
(MarkupElement.prototype.get value): Added.
(MarkupElement.prototype.set value): Added.
(MarkupElement.prototype.get style): Added. Returns a fake writeonly CSSStyleDeclaration.
(MarkupElement.prototype.set style): Added.
(MarkupElement.get selfClosingNames): Added. A small list of self-closing tags for the HTML generation.
(MarkupText): Added.
(MarkupText.prototype.clone): Added.
(MarkupText.prototype._markup): Added.
(MarkupText.prototype.get data): Added.
(MarkupText.prototype.set data): Added.
(MarkupComponentBase): Added.
(MarkupComponentBase.prototype.element): Added. Like ComponentBase's element.
(MarkupComponentBase.prototype.content): Added. Like ComponentBase's content.
(MarkupComponentBase.prototype._findElementRecursivelyById): Added. A fake getElementById.
(MarkupComponentBase.prototype.render): Added. Like ComponentBase's render.
(MarkupComponentBase.prototype.runRenderLoop): Added. In ComponentBase, we use requestAnimationFrame.
In MarkupComponentBase, we keep rendering until the queue drains empty.
(MarkupComponentBase.prototype.renderReplace): Added. Like ComponentBase's renderReplace but applies
the transformation of classes to workaround the lack of shadow tree support in scriptless HTML.
(MarkupComponentBase.prototype._applyStyleOverrides): Added. Recursively applies the transformation.
(MarkupComponentBase.prototype._ensureContentTree): Added. Like ComponentBase's _ensureShadowTree.
(MarkupComponentBase.reset): Added.
(MarkupComponentBase._parseTemplates): Added. Parses the content & style templates, and generates the
transformed fake DOM tree and stylesheet text whereby selectors in each component is modified to be
unique across all components. The function to apply the necessary changes to an element is saved in
the global map of components, and later used in renderReplace via _applyStyleOverrides.
(MarkupComponentBase.defineElement): Added. Like ComponentBase's defineElement.
(MarkupComponentBase.prototype.createEventHandler): Added.
(MarkupComponentBase.createEventHandler): Added.
(MarkupPage): Added. The top-level component responsible for generating a DOCTYPE, head, and body.
(MarkupPage.prototype.pageTitle): Added.
(MarkupPage.prototype.content): Added. Overrides the one in MarkupComponentBase to return what would
be the content of the body element as opposed to the html element for the connivance of subclasses,
and to match the behavior of the frontend Page class.
(MarkupPage.prototype.render): Added.
(MarkupPage.prototype._updateComponentsStylesheet): Added. Concatenates the transformed stylesheet of
all components used.
(MarkupPage.get contentTemplate): Added.
(MarkupPage.prototype.generateMarkup): Added. Enqueues the page to render, spin the render loop, and
generates the HTML. We enqueue the page twice in order to invoke _updateComponentsStylesheet after
all subcomponent had finished rendering.
* unit-tests/markup-component-base-tests.js: Added.
* unit-tests/markup-element-tests.js: Added.
(.createElement): Added.
* unit-tests/markup-page-tests.js: Added.


Canonical link: https://commits.webkit.org/201761@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232588 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-07 18:25:35 +00:00
Antoine Quint 101767badd [Web Animations] Only expose CSSAnimation and CSSTransition if the WebAnimationsCSSIntegration runtime flag is enabled
https://bugs.webkit.org/show_bug.cgi?id=186305

Reviewed by Dean Jackson.

Source/WebCore:

* animation/CSSAnimation.idl:
* animation/CSSTransition.idl:

Websites/webkit.org:

Add a test for the WebAnimationsCSSIntegration runtime flag.

* experimental-features.html:

Canonical link: https://commits.webkit.org/201718@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232537 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-06 08:20:10 +00:00
Dean Jackson 6668941ba9 Add a demo for passive touch listeners.
* demos/passive-touches/index.html: Added.

Canonical link: https://commits.webkit.org/201605@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232402 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-01 18:55:45 +00:00
Dewei Zhu 8e2e483588 OSBuildFetcher should respect maxRevision while finding OS builds to report.
https://bugs.webkit.org/show_bug.cgi?id=185925

Reviewed by Ryosuke Niwa.

* server-tests/tools-os-build-fetcher-tests.js: Fix a typo in the unit tests.
Added unit tests for this change. Aslo convert an existing test using async.
* tools/js/os-build-fetcher.js:
(prototype._fetchAvailableBuilds): It should also use 'maxRevision' to filter builds to be reported.
It should use 'minRevisionOrder' when no commit has ever been submitted.
(prototype._commitsForAvailableBuilds): Takes 'maxOrder' as fifth argument.
'minOrder' and 'maxOrder' should be inclusive.

Canonical link: https://commits.webkit.org/201378@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232142 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-24 01:18:20 +00:00
Dewei Zhu 218559bcca Update ChartPane per change r231087.
https://bugs.webkit.org/show_bug.cgi?id=185570

Reviewed by Ryosuke Niwa.

On r231087 we change the return type of AnalysisTask.create, ChartPane needs to adapt
this change.

* public/v3/pages/chart-pane.js: Adapted the change that AnalysisTask.create now returns
an AnalysisTask object.
(ChartPane.prototype.async._analyzeRange):

Canonical link: https://commits.webkit.org/201377@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-24 01:18:17 +00:00
Roy Reapor b82957e38d Remove Source Sans Pro from WebKit website
https://bugs.webkit.org/show_bug.cgi?id=185871

Patch by Roy Reapor <rreapor@apple.com> on 2018-05-23
Reviewed by Aakash Jain.

* demos/spring/index.html:

Canonical link: https://commits.webkit.org/201376@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232140 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-24 00:53:08 +00:00
Roy Reapor 55209fa02c Test infrastructure websites should use jQuery and jQuery UI hosted on webkit.org
https://bugs.webkit.org/show_bug.cgi?id=185788

Patch by Roy Reapor <rreapor@apple.com> on 2018-05-22
Reviewed by Aakash Jain.

Tools:

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/index.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/rebaseline.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/summary-mock.html:
* TestResultServer/static-dashboards/run-embedded-unittests.html:
* TestResultServer/static-dashboards/run-unittests.html:

Websites/webkit.org:

* ajax/libs/jquery/jquery-1.6.2.min.js: Added.
* ajax/libs/jqueryui: Added.
* ajax/libs/jqueryui/jquery-ui-1.8.15.css: Added.

Canonical link: https://commits.webkit.org/201336@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232085 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-22 23:42:21 +00:00
Wenson Hsieh 57777fe61d Add some additional demo content to webkit.org
https://bugs.webkit.org/show_bug.cgi?id=185892

Reviewed by Tim Horton.

Adds three demo pages, and some placeholder assets.

* demos/extrazoom/article/constitution.jpg: Added.
* demos/extrazoom/article/index.html: Added.
* demos/extrazoom/login/index.html: Added.
* demos/extrazoom/login/webkit.svg: Added.
* demos/extrazoom/recipes/butterchicken.jpg: Added.
* demos/extrazoom/recipes/chowder.jpg: Added.
* demos/extrazoom/recipes/hummus.jpg: Added.
* demos/extrazoom/recipes/index.html: Added.
* demos/extrazoom/recipes/padthai.jpg: Added.
* demos/extrazoom/recipes/pizza.jpg: Added.
* demos/extrazoom/recipes/salmon.jpg: Added.
* demos/extrazoom/recipes/steak.jpg: Added.
* demos/extrazoom/recipes/tacos.jpg: Added.


Canonical link: https://commits.webkit.org/201335@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232084 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-22 23:37:44 +00:00
Roy Reapor 690e1821cf Host jquery on webkit.org instead of 3rd party
https://bugs.webkit.org/show_bug.cgi?id=185691

Patch by Roy Reapor <rreapor@apple.com> on 2018-05-22
Reviewed by Alexey Proskuryakov.

* PrettyPatch/PrettyPatch.rb:
* code-review-test.html:

Canonical link: https://commits.webkit.org/201319@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232068 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-22 16:34:23 +00:00
Dewei Zhu 4ff938da6c CommitLogViewer._preceedingCommit should not always be null
https://bugs.webkit.org/show_bug.cgi?id=185540

Reviewed by Ryosuke Niwa.

Fix the bug introduced in r227746 that CommitLogViewer._preceedingCommit is always null.

* browser-tests/index.html: Fix expected measurement-set url.
* public/v3/components/commit-log-viewer.js:
(CommitLogViewer.prototype._fetchCommitLogs): CommitLogViewer._preceedingCommit should be set
when fetching for preceeding revision succeeds.

Canonical link: https://commits.webkit.org/201045@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231715 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-11 20:15:08 +00:00
Dewei Zhu ae36184bf1 Range bisector should check the commits for repositories without change in specified range.
https://bugs.webkit.org/show_bug.cgi?id=185269

Reviewed by Ryosuke Niwa.

For repositories without a change in the specified range, we still need to use them to filter commit
sets. Before this change, code does not apply filtering by those repositories against commit set. As
a result, commit sets with different commits for those repositories may be chosen as bisecting commit set.

* public/v3/commit-set-range-bisector.js: Updated the logic to verify range for repositories without
change in range.
(CommitSetRangeBisector.async.commitSetClosestToMiddleOfAllCommits):
* unit-tests/commit-set-range-bisector-tests.js: Added a unit test to guard against this change.

Canonical link: https://commits.webkit.org/200966@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-09 20:58:27 +00:00
Dewei Zhu 93a571ae9d Create analysis task should sync analysis task status after creation.
https://bugs.webkit.org/show_bug.cgi?id=185222

Reviewed by Ryosuke Niwa.

* public/v3/models/analysis-task.js:
(AnalysisTask.async.create): Fetch newly-created analysis task right about its creation.
(AnalysisTask):
* tools/js/measurement-set-analyzer.js:
(MeasurementSetAnalyzer.prototype.async._analyzeMeasurementSet): Adjust as 'AnalysisTask.create' now
returns an anlysis task instance.
(MeasurementSetAnalyzer):
* unit-tests/analysis-task-tests.js: Added a unit test for this change.
(async):
* unit-tests/measurement-set-analyzer-tests.js: Update unit tests accordingly.
Fix a typo in one previous unit test.
(async):

Canonical link: https://commits.webkit.org/200731@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231296 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-03 07:06:16 +00:00
Dewei Zhu 780bf260fb Write a script that detects chart changes by using v3 API.
https://bugs.webkit.org/show_bug.cgi?id=184419

Reviewed by Ryosuke Niwa.

Added a script that detects chart changes and schedule confirming analysis task.

* browser-tests/async-task-tests.js: Added a unit test for 'AsyncTask'.
* browser-tests/index.html: Added import for 'AsyncTask' for testing.
* public/shared/statistics.js: Make 'findRangesForChangeDetectionsWithWelchsTTest' defaults to 0.99 one sided possibility.
(Statistics.new.this.findRangesForChangeDetectionsWithWelchsTTest):
* public/v3/async-task.js:
(AsyncTask.isAvailable): Helper function to determine whether AsyncTask is available or not as 'Worker' is
not available in nodejs.
(AsyncTask):
* public/v3/models/bug.js: Export as a module.
* public/v3/models/measurement-set.js:
(MeasurementSet.prototype._invokeSegmentationAlgorithm): Added a check to avoid using AsyncTask when running in NodeJs.
(MeasurementSet):
* server-tests/resources/common-operations.js: Added a helper function to assert certain exception is thrown.
(async.assertThrows):
* tools/js/measurement-set-analyzer.js: Added 'MeasurementSetAnalyzer' module for analyzing measurement set.
(MeasurementSetAnalyzer):
(MeasurementSetAnalyzer.prototype.async.analyzeOnce):
(MeasurementSetAnalyzer.measurementSetListForAnalysis):
(MeasurementSetAnalyzer.prototype.async._analyzeMeasurementSet):
* tools/js/v3-models.js: Added import for 'Bug' object.
* tools/run-analysis.js: Added this script to detect measurement set changes.
(main):
(async.analysisLoop):
* unit-tests/measurement-set-analyzer-tests.js: Added unit tests for 'MeasurementSetAnalyzer'.
* unit-tests/resources/mock-v3-models.js: Reset 'MeasurementSet._set' every time.
Update mock platform to include lastModifiedByMetric information.
(MockModels.inject):

Canonical link: https://commits.webkit.org/200671@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-02 06:16:16 +00:00
Ryosuke Niwa 3460bf37ba Creating a custom analysis task after fetching all analysis tasks fail
https://bugs.webkit.org/show_bug.cgi?id=184641

Reviewed by Saam Barati.

The bug was caused by AnalysisTask._fetchSubset not fetching the analysis task when all analysis tasks
had previously been fetched (AnlaysisTask._fetchAllPromise is set) even when noCache is set to true.
Fixed it by ignornig _fetchAllPromise when noCache is set to true.

This patch also adds noCache argument to AnalysisTask.fetchById and reverts the inadvertent change in
r226836 to always set noCache to true in this function.

* public/v3/models/analysis-task.js:
(AnalysisTask.fetchById): Added noCache argument instead of always specifying true, and modernized the code.
(AnalysisTask._fetchSubset): Fixed the bug. See above description.
* public/v3/models/test-group.js:
(TestGroup.createWithTask): Set noCache to true when calling AnalysisTask.fetchById here.
* unit-tests/analysis-task-tests.js: Added test cases for AnalysisTask.fetchById, including a test
to make sure it doesn't fetch the specified analysis task when noCache is set to false and all analysis
tasks had previously been fetched for the aforementioned revert of the inadvertent change in r226836.
(sampleAnalysisTasks): Renamed from sampleAnalysisTasks as the result contains multiple analysis tasks.
* unit-tests/test-groups-tests.js: Added a test case for TestGroup.createWithTask


Canonical link: https://commits.webkit.org/200638@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231183 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-30 23:56:21 +00:00
Ryosuke Niwa 744b1a67ef REGRESSION(r230960): Browser tests under TimeSeriesChart fetchMeasurementSets all fail
https://bugs.webkit.org/show_bug.cgi?id=185125

Reviewed by Saam Barati.

The bug was caused by mock-remote-api.js always loading PrivilegedAPI using require, which doesn't work in a browser.
Fixed the bug by explicitly requiring the right kind of PrivilegedAPI in each unit test instead.

* unit-tests/analysis-task-tests.js:
* unit-tests/buildbot-syncer-tests.js:
* unit-tests/commit-log-tests.js:
* unit-tests/commit-set-range-bisector-tests.js:
* unit-tests/commit-set-tests.js:
* unit-tests/measurement-set-tests.js:
* unit-tests/privileged-api-tests.js:
* unit-tests/resources/mock-remote-api.js:
(MockRemoteAPI.inject): Take PrivilegedAPI instead of the type string. Also fixed a bug that _token wasn't unset
after each unit test, and superfluous initializations of originalRemoteAPI and originalPrivilegedAPI.
* unit-tests/test-groups-tests.js:


Canonical link: https://commits.webkit.org/200637@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231180 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-30 23:43:45 +00:00
Dewei Zhu 680343a2a0 MeasurementSet._constructUrl should construct absolute url.
https://bugs.webkit.org/show_bug.cgi?id=185137

Reviewed by Ryosuke Niwa.

MeasurementSet._constructUrl should not construct an url with relative path.

* public/v3/models/measurement-set.js: Should use '/api/measurement-set...' and '/data/measurement-set-...'
for uncached and cached fetching.
* unit-tests/measurement-set-tests.js: Updated unit tests.
(const.set MeasurementSet):

Canonical link: https://commits.webkit.org/200629@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231169 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-30 21:06:05 +00:00
Dewei Zhu a76679c8d7 Extend create-analysis-test API to be able to create with confirming test group.
https://bugs.webkit.org/show_bug.cgi?id=184958

Reviewed by Ryosuke Niwa.

Extend create-analysis-test API to be able to create an analysis task with confirming test group.
Update create analysis task UI in chart pane to adapt this new API.
Refactored '/privileged-api/create-test-group' API to share some creating test group logic with '/privileged-api/create-analysis-task' API.
Moved the shared logic to commit-sets-helpers.php.

* public/api/analysis-tasks.php: Use 'require_once' instead of 'require'.
* public/include/commit-sets-helpers.php: Added.
(create_test_group_and_build_requests): A helper function that creates test group and build requests for a analysis
task. In long term, this should be a class to avoid passing long argument list around.
(insert_commit_sets_and_construct_configuration_list): Based on commit sets returns build and test configurations.
(insert_build_request_for_configuration): Insert build requests based on configuration.
(commit_sets_from_revision_sets): Returns commit sets from given revision set list.
* public/privileged-api/create-analysis-task.php: Added the ability to create analysis task with confirming test
groups when repetition count is specified.
* public/privileged-api/create-test-group.php: Moved shared function to commit-sets-helpers.php.
* public/v3/models/analysis-task.js:
(AnalysisTask.create): Instead of accepting run ids, it now accepts points and test group name and confirming iterations.
It will conditionally add test group information into parameter when confirming iterations is a positive number.
(AnalysisTask):
* public/v3/models/commit-set.js:
(CommitSet.revisionSetsFromCommitSets): Move 'TestGroup._revisionSetsFromCommitSets' since CommitSet class is more
appropriate place and it will be shared by both TestGroup and AnalysisTask
(CommitSet):
* public/v3/models/test-group.js:
(TestGroup.createWithTask): Adapt 'CommitSet.revisionSetsFromCommitSets'.
(TestGroup.createWithCustomConfiguration): Adapt 'CommitSet.revisionSetsFromCommitSets'.
(TestGroup.createAndRefetchTestGroups): Adapt 'CommitSet.revisionSetsFromCommitSets'.
(TestGroup._revisionSetsFromCommitSets): Deleted and moved to 'CommitSet.revisionSetsFromCommitSets'.
* public/v3/pages/chart-pane.js:
(ChartPane.prototype.didConstructShadowTree): Added the logic to disable options when checkbox for creating confirming
test group is unchecked.
(ChartPane.prototype._analyzeRange): Conditionally create confirming test group from UI.
(ChartPane.cssTemplate):
* server-tests/privileged-api-create-analysis-task-tests.js: Added unit tests. Added a unit test for 'NodePrivilegedAPI'.
* unit-tests/analysis-task-tests.js: Added unit tests.
* unit-tests/commit-set-tests.js: Added unit test for 'CommitSet.revisionSetsFromCommitSets'.
* unit-tests/resources/mock-remote-api.js: Reset csrf token when BrowserPrivilegedAPI is used.
(MockRemoteAPI.inject):

Canonical link: https://commits.webkit.org/200553@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-27 06:22:00 +00:00
Ross Kirsling a65d83898f Update code style guidelines to mention braced initialization style.
https://bugs.webkit.org/show_bug.cgi?id=185053

Reviewed by Ryosuke Niwa.

* code-style.md:
Add a clause to the Spacing section about braced initialization.
(Also, fix an erroneous element ID on a neighboring line.)


Canonical link: https://commits.webkit.org/200551@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231085 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-27 04:00:01 +00:00
Dewei Zhu 6092fcc1e7 Tool scripts should not use PrivilegedAPI from 'public/v3/privileged-api.js'.
https://bugs.webkit.org/show_bug.cgi?id=184766

Reviewed by Ryosuke Niwa.

For tools, we should not use PrivilegedAPI for tools as current PrivilegedAPI
is used by UI and it is unnecessary to generate CSRF token for tools.
Will post a followup patch that creates a PrivilegedAPI used by tools.
Make a change on TestServer.inject and MockRemoteAPI.inject to allow specifying
BrowserPrivilegedAPI or NodePrivilegedAPI in the test. Currently defaults to
BrowserPrivilegedAPI as this is the test behavior before this change.

* server-tests/resources/common-operations.js: Allow passing type of privileged api
information to TestServer.inject.
* server-tests/resources/test-server.js: Conditionally inject PrivilegedAPI based on
type of privileged api.
(TestServer.prototype.inject):
(TestServer):
* server-tests/tools-buildbot-triggerable-tests.js: Updated 'prepareServerTest' invocation.
* server-tests/tools-os-build-fetcher-tests.js: Updated 'prepareServerTest' invocation.
* server-tests/tools-sync-buildbot-integration-tests.js: Temporarily injecting
BrowserPrivilegedAPI for mocking UploadedFile. The actual script does not rely on
BrowserPrivilegedAPI at all.
(async.createTestGroupWihPatch):
(beforeEach):
* tools/js/privileged-api.js: Added NodePrivilegedAPI
(NodePrivilegedAPI.prototype.sendRequest):
(NodePrivilegedAPI.configure): Configure the slave name and password.
(NodePrivilegedAPI):
* tools/js/v3-models.js: Removed the import of PrivilegedAPI.
* unit-tests/privileged-api-tests.js:. Added unit tests for NodePrivilegedAPI.
* unit-tests/resources/mock-remote-api.js: Conditionally inject PrivilegedAPI based on
the type of privileged api.
(MockRemoteAPI.inject):

Canonical link: https://commits.webkit.org/200433@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230960 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-24 17:17:42 +00:00
Dewei Zhu 1fa350d82d Revision information returned by querying measurement set api with analysis task id should contain commit order.
https://bugs.webkit.org/show_bug.cgi?id=184902

Reviewed by Ryosuke Niwa

This is a bug fix for r230719 which does not cover the case while querying `measurement-set.php?analysisTask=$task_id`

* public/api/measurement-set.php: AnalysisResultsFetcher.fetch_commits results should contains commit order.
* server-tests/api-measurement-set-tests.js: Added unit test for this change.

Canonical link: https://commits.webkit.org/200414@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-24 02:34:11 +00:00
Dewei Zhu f13d7e6f6c Add a bisect button to automatically schedule bisecting A/B tasks.
https://bugs.webkit.org/show_bug.cgi?id=183888

Reviewed by Ryosuke Niwa.

Extended AnalysisTask's ability to figure out bisecting A/B tasks based on existing data points and test groups.
Updated analysis page UI to show bisect button which will only appear when the middle commit set of the range in
test group can be found.

Finding middle commit set algorithm is described as follows:
1. Find all commits from multiple repositories among the ranges specified by two commit sets in test group. In
the meanwhile, merge all commits that have commit time into a single list. For commits only have commit order,
put those commits into separate lists.
2. Filter all the available commit sets in current analysis task by keeping the ones have exact repositories
as the two commit sets in specified test group, and every commit of a commit set is in side the commit range.
After filtering the commit sets, sort the remaining ones and only keep one commit set if multiple commit sets
are equal to each other.
3. Among commits processed by step 2, find the commit sets that have the commit which is closest to the middle of
all commits that have commit time created from step 1.
4. Among commits processed by step 3, find the commit sets that have the commit which is closest to the middle of
commits that only have commit order and categorized by repository. We have to iterate through repository as commit
order is not granted to be comparable between different repositories.
5. If more than one commit sets are found, choose the middle commit set.

* public/v3/commit-set-range-bisector.js: Added.
(CommitSetRangeBisector.async.commitSetClosestToMiddleOfAllCommits): Instead of naively returning the middle of
existing commit set array, this function selects a bisect bisection points that is closest to actually middle of
the revision range based on all revisions reported to performance dashboard.
(CommitSetRangeBisector._findCommitSetsWithinRange): Helper function to find commit sets those are in specified range.
(CommitSetRangeBisector._orderCommitSetsByTimeAndOrderThenDeduplicate): Helper function to sort and deduplicate commit sets.
(CommitSetRangeBisector._closestCommitSetsToBisectingCommitByTime): Helper function to find the commit sets those
are closest to the middle of among all the commits in the range that have commit time.
(CommitSetRangeBisector._findCommitSetsClosestToMiddleOfCommitsWithOrder): Helper function which goes through all
repositories the commit of which has commit order, and find the commit sets those are closest to the middle of
commits for each repository.
(CommitSetRangeBisector._buildCommitToCommitSetMap): Helper function to builder mapping from a commit to commit
sets those contain this commit.
(CommitSetRangeBisector._findCommitClosestToMiddleIndex): Helper function to find closest commit to the middle of index.
(CommitSetRangeBisector):
* public/v3/index.html: Imports 'public/v3/commit-set-range-bisector.js'.
* public/v3/models/analysis-task.js:
(AnalysisTask.prototype.async.commitSetsFromTestGroupsAndMeasurementSet): Aggregates all existing commit sets in
test groups of current analysis tasks.
* public/v3/models/commit-log.js:
(CommitLog.prototype.hasCommitTime): A helper function determine whether a commit has a commit time. For commit
that does not have time, server will return commit time as zero. As it is unrealistic for a commit has commit time
0, it would be safe to assume a valid commit time is greater than 0.
(CommitLog.prototype.hasCommitOrder): Returns whether a commit has a commit oder.
(CommitLog.hasOrdering): Determine whether we can order two commits by commit time or commit order.
(CommitLog.orderTwoCommits): Order two commits incrementally.
* public/v3/models/commit-set.js:
(CommitSet.prototype.hasSameRepositories): A helper function to determine whether a commit set has same repositories
as current repository.
(CommitSet.containsRootOrPatchOrOwnedCommit): A helper function to determine whether current commit set has root,
patch or owned commit.
(CommitSet.commitForRepository): This function defined twice identically, remove one of them.
* public/v3/models/test-group.js: Make '_computeRequestedCommitSets' a static function as it does not use any
instance variables.
* public/v3/pages/analysis-task-page.js: Added bisect button.
(AnalysisTaskTestGroupPane):
(AnalysisTaskTestGroupPane.prototype.didConstructShadowTree):
(AnalysisTaskTestGroupPane.prototype.setTestGroups): Update 'setTestGroups' to update _bisectingCommitSetByTestGroup
when the test groups changes.
(AnalysisTaskTestGroupPane.prototype._renderCurrentTestGroup): Added code to conditionally show bisect button.
Bisect button will only show when there is a middle commit set for that test group.
(AnalysisTaskTestGroupPane.htmlTemplate):
(AnalysisTaskTestGroupPane.cssTemplate):
(AnalysisTaskPage.prototype.didConstructShadowTree):
(AnalysisTaskPage.prototype._retryCurrentTestGroup):
(AnalysisTaskPage.prototype.async._bisectCurrentTestGroup): A callback when bisect button is clicked.
* tools/js/v3-models.js:
* unit-tests/commit-log-tests.js: Added unit tests for 'CommitLog.hasCommitTime', 'CommitLog.hasCommitOrder',
'CommitLog.orderTwoCommits', 'CommitLog.hasOrdering'.
* unit-tests/commit-set-range-bisector-tests.js: Unit tests for 'CommitSetRangeBisector.commitSetClosestToMiddleOfAllCommits'.
* unit-tests/commit-set-tests.js: Added unit tests for 'CommitSet.hasSameRepositories' and 'CommitSet.containsRootOrPatchOrOwnedCommit'.

Canonical link: https://commits.webkit.org/200299@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-19 22:16:23 +00:00
Dewei Zhu 0bc5c6ce6f Commit order should always be returned by api.
https://bugs.webkit.org/show_bug.cgi?id=184674

Reviewed by Ryosuke Niwa.

Commit order sometimes missing in CommitLog object before this change.
This makes ordering commits logic become unnecessarily complicate.
This change will ensure commit order is always fetched for a CommitLog object.
Change measurement-set API to contain commit order information.
Change commits API to contain commit order information.

* public/api/measurement-set.php: Includes commit order information.
* public/include/commit-log-fetcher.php:
* public/v3/models/commit-log.js: Added a function to return order information.
(CommitLog.prototype.updateSingleton): This function should update commit order.
(CommitLog.prototype.order): Returns the order of commit.
* public/v3/models/commit-set.js:
(MeasurementCommitSet): Update MeasurementCommitSet to contain commit order information when creating CommitLog object.
* server-tests/api-measurement-set-tests.js: Updated unit tests.
* unit-tests/analysis-task-tests.js: Update unit tests to contain commit order information in mock data.
(measurementCluster):
* unit-tests/commit-log-tests.js: Added unit tests for CommitLog.order.
* unit-tests/commit-set-tests.js: Added commit order in MeasurementCommitSet.
* unit-tests/measurement-adaptor-tests.js: Updated unit tests to contain commit order information in mock data.
* unit-tests/measurement-set-tests.js: Updated unit tests to contain commit order information in mock data.

Canonical link: https://commits.webkit.org/200208@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230719 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-17 17:23:18 +00:00
Ryosuke Niwa c3369228c3 Make it possible to hide some repository groups
https://bugs.webkit.org/show_bug.cgi?id=184632

Reviewed by Saam Barati.

Added the ability to hide repository groups in the custom analysis task configurator from the admin page.
Hidden repositroy groups will continue to function for existing test groups. This is purely an UI change.

* init-database.sql: Added repositorygroup_hidden as a new column to triggerable_repository_groups.
* public/admin/triggerables.php: Added a form field to hide a repository group.
* public/include/manifest-generator.php: Include hidden state in the manifest file.
* public/v3/components/custom-analysis-task-configurator.js:
(CustomAnalysisTaskConfigurator.prototype._renderRepositoryPanes): Filter out hidden repository groups.
* public/v3/models/triggerable.js:
(prototype.isHidden): Added.
* server-tests/api-manifest-tests.js: Updated an existing test case to test a hidden repository group.


Canonical link: https://commits.webkit.org/200164@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230666 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-16 06:58:36 +00:00
Dewei Zhu 8a7176b2a4 Added 'CommitSet.diff' which will be shared between multiple independent incoming changes.
https://bugs.webkit.org/show_bug.cgi?id=184368

Reviewed by Ryosuke Niwa.

'CommitSet.diff' will be used in multiple independent incoming changes.
It would be easier to make this a separate change to parallelize the changes depends on this API.

* public/v3/models/commit-set.js:
(CommitSet.prototype.createNameWithoutCollision): Moved from 'AnalysisTaskPage' and make it more generic.
(CommitSet.prototype.diff): Describe differences between 2 commit sets including commit, root and patch differences.
* public/v3/pages/analysis-task-page.js: Move 'AnalysisTaskPage._createRetryNameForTestGroup' to CommitSet in a more generic form.
(AnalysisTaskPage.prototype._retryCurrentTestGroup): Use 'CommitSet.withoutRootPatchOrOwnedCommit' instead.
(AnalysisTaskPage.prototype._createRetryNameForTestGroup): Moved to CommitSet in a more generic form.
* unit-tests/commit-set-tests.js: Added unit tests for 'CommitSet.diff'.

Canonical link: https://commits.webkit.org/199971@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230441 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-09 16:27:52 +00:00
Dewei Zhu ac1bb1219b Fix a bug introduced in r230295 that A/B test result is not shown.
https://bugs.webkit.org/show_bug.cgi?id=184350

Reviewed by Ryosuke Niwa.

result.label should be assigned in `TestGroup._computeRequestedCommitSets`.

* public/v3/models/test-group.js:
(TestGroup.prototype._computeRequestedCommitSets):

Canonical link: https://commits.webkit.org/199904@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230322 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-06 03:18:07 +00:00
Dewei Zhu d3f7a2d02c Added UI to show potential regressions in chart with t-testing against segmentations.
https://bugs.webkit.org/show_bug.cgi?id=184131

Reviewed by Ryosuke Niwa.

Added UI in the chart-pane so that user can use new option in trendline which not only
shows the segmentation, but also t-test against potential changes indicated by segmentation.

Fix a bug in AnalysisTaskPage that chart is not updated when change type of task changes.

* public/shared/statistics.js: Added a function to t-test certain range based on segmentation results.
(Statistics.supportedOneSideTTestProbabilities):
(Statistics.findRangesForChangeDetectionsWithWelchsTTest): The argument `segmentations`, every 2 items in the list defines
segmentation, that is why the index incremental is 2 in this funcion.
* public/v3/components/chart-pane-base.js: Will select the range if user clicks on a suggested annotation.
(ChartPaneBase.prototype.configure):
(ChartPaneBase.prototype._didClickAnnotation):
* public/v3/components/chart-styles.js:
(ChartStyles.annotationFillStyleForTask): Added 'annotationFillStyleForTask' to determine the fillStyle for annotation based on change type of a analysis task.
* public/v3/components/interactive-time-series-chart.js:
(InteractiveTimeSeriesChart.prototype._findAnnotation): Also need to search among suggested annotaions.
* public/v3/components/time-series-chart.js: Introduced 'suggested annotaion' which does not have an existing task and is suggested by t-test based on segmentation.
(TimeSeriesChart):
(TimeSeriesChart.prototype.setSuggestedAnnotations):
(TimeSeriesChart.prototype.allAnnotations): Returns both annotations with and without analysis task.
(TimeSeriesChart.prototype._layoutAnnotationBars): Should take all annotations in the calculation.
* public/v3/models/measurement-set.js:
(MeasurementSet.prototype.metricId): Returns metric id.
* public/v3/models/metric.js:
(Metric.prototype.summarizeForValues): Added helper function to summarize a given value
* public/v3/models/test-group.js:
(TestGroup.prototype.compareTestResults): Adapted to use 'Metric.summarizeForValues'.
* public/v3/pages/chart-pane.js: Added 'Segmentation with t-test analysis' to 'ChartTrendLineTypes'.
(ChartPane.prototype._renderTrendLinePopover):
(ChartPane.prototype.async._updateTrendLine): make it an async function.
* unit-tests/statistics-tests.js: Added unit tests for 'findRangesForChangeDetectionsWithWelchsTTest'.

Canonical link: https://commits.webkit.org/199881@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230295 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-05 04:49:21 +00:00
Andy Estes 1149fe7486 Unreviewed. Correct the path to merchant-validation-config.php.
* demos/payment-request/merchant-validation.php:

Canonical link: https://commits.webkit.org/199865@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-04 21:20:17 +00:00
Andy Estes 377c8d8caa Add Payment Request demo content.
Rubber-stamped by Zalan Bujtas.

* demos/payment-request/demo.js: Added.
(string_appeared_here.async.applePayButtonClicked):
* demos/payment-request/index.html: Added.
* demos/payment-request/merchant-validation.php: Added.
* demos/payment-request/squirrelfish.png: Added.
* demos/payment-request/style.css: Added.
(@supports (-webkit-appearance: -apple-pay-button)):
(.apple-pay-not-supported::before):
(.hidden):
(#black-buttons > .apple-pay-button):
(#white-buttons > .apple-pay-button):
(#demo):
(#description):

Canonical link: https://commits.webkit.org/199861@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-04 19:51:42 +00:00
Aakash Jain 047ed30901 Remove deprecated Buildbot 0.8 code from Perf syncing scripts
https://bugs.webkit.org/show_bug.cgi?id=183915

Reviewed by Ryosuke Niwa.

* server-tests/resources/mock-data.js:
(MockData.buildbotBuildersURLDeprecated): Deleted.
(MockData.mockBuildbotBuildersDeprecated): Deleted.
(MockData.pendingBuildDeprecated): Deleted.
(MockData.runningBuildDeprecated): Deleted.
(MockData.finishedBuildDeprecated): Deleted.
* tools/js/buildbot-syncer.js:
(BuildbotBuildEntryDeprecated): Deleted.
(BuildbotBuildEntryDeprecated.prototype.initialize): Deleted.
(BuildbotBuildEntryDeprecated.prototype.url): Deleted.
(BuildbotSyncer.prototype.scheduleBuildOnBuildbotDeprecated): Deleted.
(BuildbotSyncer.prototype._pullRecentBuildsDeprecated): Deleted.
(BuildbotSyncer.prototype.pathForPendingBuildsJSONDeprecated): Deleted.
(BuildbotSyncer.prototype.pathForBuildJSONDeprecated): Deleted.
(BuildbotSyncer.prototype.pathForForceBuildDeprecated): Deleted.
(BuildbotSyncer.prototype.url): Deleted.
(BuildbotSyncer.prototype.urlForBuildNumberDeprecated): Deleted.
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype.getBuilderNameToIDMapDeprecated): Deleted.
* unit-tests/buildbot-syncer-tests.js:
(smallPendingBuildDeprecated): Deleted.
(smallInProgressBuildDeprecated): Deleted.
(smallFinishedBuildDeprecated): Deleted.
(samplePendingBuildRequestDeprecated): Deleted.
(sampleInProgressBuildDeprecated): Deleted.
(sampleFinishedBuildDeprecated): Deleted.


Canonical link: https://commits.webkit.org/199774@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230151 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-02 09:09:08 +00:00
Jonathan Davis cc75d9c52e Add support for an overridable byline in blog posts
https://bugs.webkit.org/show_bug.cgi?id=183799

Reviewed by Timothy Hatcher.

* wp-content/themes/webkit/functions.php:


Canonical link: https://commits.webkit.org/199458@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229816 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-03-21 18:44:35 +00:00
Aakash Jain c7ae3c1d60 Update Perf buildbot syncing scripts for Buildbot 0.9
https://bugs.webkit.org/show_bug.cgi?id=175969

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype.initSyncers): Switch from Deprecated version to new version of getBuilderNameToIDMap.
* tools/js/buildbot-syncer.js:
(BuildbotSyncer.prototype.scheduleRequestInGroupIfAvailable): Switch from Deprecated version to new version of scheduleRequest.
(BuildbotSyncer.prototype.pullBuildbot): Switch from Deprecated version to new version of pathForPendingBuilds, _pullRecentBuilds
and BuildbotBuildEntry. Parse the pending build-requests data in Buildbot 0.9 format.
* unit-tests/buildbot-syncer-tests.js: Updated as per Buildbot 0.9 code.
* server-tests/tools-sync-buildbot-integration-tests.js: Ditto.
* server-tests/tools-buildbot-triggerable-tests.js: Ditto.
* server-tests/resources/mock-data.js: Ditto.
(MockData.pendingBuildsUrl): Method to construct pendingBuildsUrl in Buildbot 0.9 format.
(MockData.recentBuildsUrl): Ditto for recent builds url.
(MockData.statusUrl): Ditto for status url.
(MockData.builderIDForName): Method to get builder ID from builder name.



Canonical link: https://commits.webkit.org/199388@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-03-20 00:20:46 +00:00
Aakash Jain ed912b891c BuildbotBuildEntry creates an incorrect url for pending builds
https://bugs.webkit.org/show_bug.cgi?id=183670

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotBuildEntry.prototype.initialize): Fetch buildrequestid from Buildbot.
(BuildbotBuildEntry.prototype.url): Construct url for pending build using buildrequestid from Buildbot.
* unit-tests/buildbot-syncer-tests.js: Updated unit-test.



Canonical link: https://commits.webkit.org/199354@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-03-16 23:48:37 +00:00
Aakash Jain 736265431a Add support for boolean properties in BuildbotSyncer while submitting build request to Buildbot 0.9 server
https://bugs.webkit.org/show_bug.cgi?id=183638

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotSyncer._parseRepositoryGroupPropertyTemplate): Allow boolean properties.
* server-tests/tools-sync-buildbot-integration-tests.js: Tests for boolean properties.
* unit-tests/buildbot-syncer-tests.js: Ditto.


Canonical link: https://commits.webkit.org/199298@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229618 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-03-15 03:17:37 +00:00
Dewei Zhu f2694b56b9 Create analysis task should use build time as fallback when commit time is not available.
https://bugs.webkit.org/show_bug.cgi?id=183309

Reviewed by Ryosuke Niwa.

Added the ability to schedule analysis task for the range without commit time.

* public/privileged-api/create-analysis-task.php: Use build time as fallback.
* server-tests/privileged-api-create-analysis-task-tests.js: Added a unit test for this change.

Canonical link: https://commits.webkit.org/199203@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229501 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-03-10 04:44:56 +00:00
Aakash Jain 0a387a975c BuildbotBuildEntry for buildbot 0.9 uses incorrect buildrequestid
https://bugs.webkit.org/show_bug.cgi?id=183194

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotBuildEntry.prototype.initialize): Updated _buildRequestId to use correct build-request-id, as set in syncer._buildRequestPropertyName.
(BuildbotSyncer.prototype.pathForPendingBuilds): Updated url to fetch properties for build-requests.
* unit-tests/buildbot-syncer-tests.js:
(sampleBuildData): Updated sampleBuildData with correct build-request-id in properties. Added
properties to samplePendingBuildRequestData.



Canonical link: https://commits.webkit.org/199191@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-03-09 23:45:11 +00:00
Aakash Jain 56886825e8 Rename samplePendingBuild to samplePendingBuildRequest
https://bugs.webkit.org/show_bug.cgi?id=183171

Reviewed by Ryosuke Niwa.

* unit-tests/buildbot-syncer-tests.js:
(samplePendingBuildRequests): Renamed from samplePendingBuild.
(samplePendingBuildRequestDeprecated): Renamed from samplePendingBuildDeprecated.
(samplePendingBuild): Deleted.
(samplePendingBuildDeprecated): Deleted.


Canonical link: https://commits.webkit.org/198904@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229101 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-02-28 21:54:56 +00:00
Jonathan Davis 1ce360e58d Add widescreen layout class for the Downloads page
https://bugs.webkit.org/show_bug.cgi?id=182948

Reviewed by Alexey Proskuryakov.

* wp-content/themes/webkit/downloads.php: Added .widescreen for full-width layout.


Canonical link: https://commits.webkit.org/198718@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@228820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-02-20 16:37:21 +00:00
Ling Ho e23ffdda97 Apply Bugzilla patches for CVE-2018-5123
https://bugs.webkit.org/show_bug.cgi?id=182884

Patch by Ling Ho <lingho@apple.com> on 2018-02-16
Reviewed by Alexey Proskuryakov.

* Bugzilla/CGI.pm:
(_prevent_unsafe_response):
(header):
* attachment.cgi:

Canonical link: https://commits.webkit.org/198646@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@228584 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-02-16 23:12:13 +00:00
Jonathan Davis b5e8d45a5e Added a redirect for /nightly to /downloads/.
https://bugs.webkit.org/show_bug.cgi?id=182743
<rdar://problem/35126697>

Reviewed by Lucas Forschler.

* .htaccess:


Canonical link: https://commits.webkit.org/198529@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@228433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-02-13 22:17:29 +00:00
Aakash Jain 37934a172d Add support for submitting build request to Buildbot 0.9 server in BuildbotSyncer
https://bugs.webkit.org/show_bug.cgi?id=182218

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotSyncer.prototype.scheduleRequest): Added assert to ensure forcescheduler property is always defined. Builds can not
be scheduled on Buildbot without this property. Updated unit-tests and server-tests accordingly.
(BuildbotSyncer.prototype.scheduleBuildOnBuildbotDeprecated): Method to schedule build request on Buildbot 0.8 server.
(BuildbotSyncer.prototype.scheduleBuildOnBuildbot): Method to schedule build request on Buildbot 0.9 server.
(BuildbotSyncer.prototype.pathForForceBuildDeprecated): Path for scheudling build on Buildbot 0.8 server.
(BuildbotSyncer.prototype.pathForForceBuild): Path for scheudling build on Buildbot 0.9 server.
* unit-tests/buildbot-syncer-tests.js:
(smallConfiguration): Added test-case for scheduleBuildOnBuildbot. Also added forcescheduler property in sample data.
* server-tests/resources/mock-data.js: Added forcescheduler property in sample data.
* server-tests/tools-buildbot-triggerable-tests.js: Updated server-tests to take care of added forcescheduler property.



Canonical link: https://commits.webkit.org/198280@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@228099 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-02-05 17:14:13 +00:00
Aakash Jain 82a8c41859 Add support for fetching recent builds in Buildbot 0.9 format in BuildbotSyncer
https://bugs.webkit.org/show_bug.cgi?id=179743

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotSyncer.prototype._pullRecentBuildsDeprecated): Renamed from _pullRecentBuilds. This method fetch
from Buildbot 0.8 server.
(BuildbotSyncer.prototype._pullRecentBuilds): Method to fetch recent builds from Buildbot 0.9 server.
(BuildbotSyncer.prototype.pathForRecentBuilds): URL for fetching recent builds from Buildbot 0.9 server.
(BuildbotSyncer.prototype.pathForBuildJSONDeprecated): Renamed from pathForBuildJSON.
* unit-tests/buildbot-syncer-tests.js:
(_pullRecentBuilds.it): unit-test - should not fetch recent builds when count is zero.
(_pullRecentBuilds.it): unit-test - should pull the right number of recent builds.
(_pullRecentBuilds.it): unit-test - should handle unexpected error while fetching recent builds.
(_pullRecentBuilds.it): unit-test - should create BuildbotBuildEntry after fetching recent builds.



Canonical link: https://commits.webkit.org/198279@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@228098 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-02-05 16:53:22 +00:00
Aakash Jain a27dd2a272 Create BuildbotBuildEntry in Buildbot syncer in Buildbot 0.9 format
https://bugs.webkit.org/show_bug.cgi?id=182036

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotBuildEntry): Class for Buildbot entry in Buildbot 0.9 data format.
(BuildbotBuildEntryDeprecated): Renamed from BuildbotBuildEntry, sub-classed from BuildBotEntry. Handles Buildbot 0.8 data format.
(BuildbotBuildEntryDeprecated.prototype.url): URL in buildbot 0.8 format.
(BuildbotSyncer.prototype.builderID): Added.
(BuildbotSyncer.prototype.pathForPendingBuildsJSONDeprecated): Renamed from BuildbotSyncer.prototype.pathForPendingBuildsJSON.
(BuildbotSyncer.prototype.pathForPendingBuilds): Path for pending builds in Buildbot 0.9 format.
(BuildbotSyncer.prototype.urlForBuildNumberDeprecated): Deprecated. Renamed from urlForBuildNumber.
(BuildbotSyncer.prototype.urlForBuildNumber): Updated in Buildbot 0.9 format.
(BuildbotSyncer.prototype.urlForPendingBuild): Buildbot 0.9 has individual webpage for pending buildrequests as well. URL to that page.
* unit-tests/buildbot-syncer-tests.js: Renamed BuildbotBuildEntry to BuildbotBuildEntryDeprecated.
(sampleBuildData): Sample build data. Common method for in-progress and finished build data.
(samplePendingBuildData): Sample data for a pending build. Separate method so that we can easily create sample data with multiple builds.
(sampleInProgressBuildData): Ditto for in-progress build.
(sampleFinishedBuildData): Ditto for finished build.
(samplePendingBuild): Sample data for single pending build.
(sampleInProgressBuild): Ditto for in-progress build.
(sampleFinishedBuild): Ditto for finished build.
(samplePendingBuildDeprecated): Renamed from samplePendingBuild.
(sampleInProgressBuildDeprecated): Renamed from sampleInProgressBuild.
(sampleFinishedBuildDeprecated): Renamed from sampleFinishedBuild.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for pending build.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for in-progress build.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for finished build.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for mix of in-progress and finished build.


Canonical link: https://commits.webkit.org/198214@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227996 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-02-02 07:06:19 +00:00
Dewei Zhu a37a1709c2 Should chose the best match during 'route' if there are multiple matches.
https://bugs.webkit.org/show_bug.cgi?id=182326

Reviewed by Ryosuke Niwa.

r227749 made a change that 'analysisCategoryPage' will be added before 'analysisTaskPage'.
As route names for both pages starts with 'analysis', whichever added first will be chosen.
For a route like 'analysis/task/1'. As a result, 'analysisCategoryPage' will be chosen and
this is not expected behavior. Adding the logic on the cases when route name does not extact
match the route name, always choose the longest mathcing route name.

Also modernized the code of 'page-router.js' to use const & let instead of var.

Added a browser test to guard against this bug.

* browser-tests/index.html: Import 'page-router-tests.js'.
* browser-tests/page-router-tests.js: Added unit test to guard against this bug.
* public/v3/pages/page-router.js:
(PageRouter.prototype.route): Added logic to find best matching in the case of inexact match.
(PageRouter.prototype.pageDidOpen):
(PageRouter.prototype._updateURLState):
(PageRouter.prototype._serializeToHash):
(PageRouter.prototype._deserializeFromHash):
(PageRouter.prototype._serializeHashQueryValue):
(PageRouter.prototype._deserializeHashQueryValue):
(PageRouter.prototype._countOccurrences):
(PageRouter):

Canonical link: https://commits.webkit.org/198160@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227938 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-31 23:41:37 +00:00
Dewei Zhu 3f2ccc8f37 Should fetch owner commits in build-requests-fetcher.
https://bugs.webkit.org/show_bug.cgi?id=182266

Reviewed by Ryosuke Niwa.

In a build request, owner commit of a commit is not always one of a commit in the commit set.
Build request api should contain owner commits in the 'commits' field of the return value.

* public/include/build-requests-fetcher.php: Added logic to fetch owner commits and added them into 'commits'.
* server-tests/api-build-requests-tests.js: Added a unit test.
* server-tests/resources/mock-data.js:
(MockData.set addTestGroupWithOwnerCommitNotInCommitSet): Added a test group with a build request, the commit set of which does
not contain owner commit of one commit.

Canonical link: https://commits.webkit.org/198083@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227777 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-30 10:07:04 +00:00
Ryosuke Niwa e291a52547 Add the support for reporting Speedometer 2.0 results to perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=182089
<rdar://problem/36172346>

Rubber-stamped by Chris Dumez.

Apparently, this has always worked since the very first version of the perf dashboard added in r163688.
The relevant code is at the line 313 of report-processor.php now.

Added regression tests for this feature since we didn't have any tests four years ago.

* server-tests/api-report-tests.js:


Canonical link: https://commits.webkit.org/198057@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227750 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-29 20:38:37 +00:00
Ryosuke Niwa 34475f1868 REGRESSION(r225898): The perf dashboard fails to open when there are no summary pages
https://bugs.webkit.org/show_bug.cgi?id=182210

Rubber-stamped by Chris Dumez.

The bug was caused by TestFreshnessPage unconditionally assuming that summaryPageConfiguration is set.
Fixed it by not creating TestFreshnessPage when there are no summary pages specified.

Also modernized the code to use const & let instead of var.

* public/v3/main.js:
(main):


Canonical link: https://commits.webkit.org/198056@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227749 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-29 20:35:11 +00:00
Ryosuke Niwa 1f28a07a49 Perf dashboard's page title can be set to a previously visited page
https://bugs.webkit.org/show_bug.cgi?id=182209

Rubber-stamped by Chris Dumez.

Before this patch, opening a page and navigating away from it could result in the page title
getting set to that of the previously visited page after the new page had been opened.

This bug was caused by Page.render keep setting document.title even though the page is no longer
the currently open page of the router. Fixed it by exiting early in Page.enqueueToRender when
this page is not the currently open page of the router.

Also added basic tests for Page.

* browser-tests/index.html:
* browser-tests/page-tests.js: Added.
* public/v3/pages/page.js:
(Page): Removed the unused second constructor argument.
(Page.prototype.enqueueToRender): Fixed the bug.
(Page.prototype.render): Use const instead of var.


Canonical link: https://commits.webkit.org/198054@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227747 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-29 20:31:06 +00:00
Ryosuke Niwa 7906f2e53e CommitLogViewer should not fetch commits in serial
https://bugs.webkit.org/show_bug.cgi?id=182207

Rubber-stamped by Chris Dumez.

Fetch both the commits in the range as well as the preceding commit at once instead of
fetching the preceding commit only after the commits in the range had been fetched.

* browser-tests/commit-log-viewer-tests.js: Fixed the tcoest case after r224227.
* public/v3/components/commit-log-viewer.js:
(CommitLogViewer.prototype._fetchCommitLogs): Fetch commits in parallel.


Canonical link: https://commits.webkit.org/198053@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227746 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-29 20:27:56 +00:00
Aakash Jain 80c2803f0d Update code style guidelines for Python
https://bugs.webkit.org/show_bug.cgi?id=179387

Rubber-stamped by Alexey Proskuryakov.

* code-style.md:



Canonical link: https://commits.webkit.org/197915@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227576 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-24 22:47:42 +00:00
Dewei Zhu cbaa0697b6 Check existence of 'node_modules_dir' before creating it.
https://bugs.webkit.org/show_bug.cgi?id=182040

Reviewed by Aakash Jain.

Fix the bug introduced in r227395.

* tools/run-tests.py: Added directory existence check.

Canonical link: https://commits.webkit.org/197912@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227573 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-24 22:35:39 +00:00
Dewei Zhu 070d324a37 Fix the bug that 'TestGroupResultsViewer' creates unnecessary rows.
https://bugs.webkit.org/show_bug.cgi?id=181967

Reviewed by Ryosuke Niwa.

Fixed a bug caused by a typo in CommitSet.equals, which makes it returns incorrect results for most
comparison between a CommitSet and a MeasurementCommitSet.

MeasurementCommitSet does not have full information for the commits, thus, it cannot build mappings
between root/patch/owner commit/requires build to repository. When querying whether a given repository
needs to be built, MeasurementCommitSet will return undefined. Due to 'undefined != false', this
equality check will fail. Making 'CommitSet.requiresBuildForRepository' defaults to 'false' would fix
this bug.

* public/v3/models/commit-set.js:
(CommitSet.prototype.requiresBuildForRepository): Make it return false when key does not exist
instead of 'undefined'.
(CommitSet.prototype.equals): Fixed the typo that causes the bug.
Use wrapped functions instead of querying the mapping directly.
* unit-tests/commit-set-tests.js: Added unit tests.

Canonical link: https://commits.webkit.org/197908@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227568 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-24 22:17:33 +00:00
Dewei Zhu 8cc4faf408 'run-test.py' script should make sure 'node_modules' directory exists before installing node packages.
https://bugs.webkit.org/show_bug.cgi?id=181808

Reviewed by Ryosuke Niwa.

'run-test.py' will fail if 'node_modules' does not exist before running this script.
Instead of calling 'os.chdir' to change directory, use 'cwd' in subprocess instead.

* tools/run-tests.py: Added the logic to ensure 'node_modules' exists.
Also use 'cwd' in subprocess.call instead of calling 'os.chdir' ahead.

Canonical link: https://commits.webkit.org/197803@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227395 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-23 04:39:10 +00:00
Dewei Zhu fb6ec544c9 Extend 'ifBuilt' config key to set property based on whether certain repositories are built or not.
https://bugs.webkit.org/show_bug.cgi?id=181906

Reviewed by Ryosuke Niwa.

Before this change, 'ifBuilt' will always set specified property for test properties as long as there
is a build type build in the same build request group. However, this is no longer valid as we don't
want to set specified property for testing when only owned commit is built in previous build.
'ifBuilt' needs to conditionally set property based on whether certain required repositories are built.
Empty required repository list means no requirement on repository to set property.

* tools/js/buildbot-syncer.js:
(BuildbotSyncer.prototype._propertiesForBuildRequest):In the case of 'built', only set property when
repository requirment is meet and there is a 'build' root request in the same build request group.
(BuildbotSyncer._parseRepositoryGroup): Extend 'ifBuild' to pass information based on contition.
* unit-tests/buildbot-syncer-tests.js: Added unit tests.

Canonical link: https://commits.webkit.org/197782@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-22 22:08:03 +00:00
Dewei Zhu 2c00bae566 Should reject updating a build request which has an associated build.
https://bugs.webkit.org/show_bug.cgi?id=181893

Reviewed by Ryosuke Niwa.

Current code does not prevent submitting to same build request multiple times.
This could lead to a build losing its associated build request.
As a result, this build will be visible in charts which is not right.
Added a check when a build request is reported.
Addressed a 'FIXME' for the race condition inside ReportProcessor->resolve_build_id by surrounding
it with a database transaction.

* public/include/report-processor.php:
Wrap adding platform and resolve_build_id with a database transaction.
Add a check to make sure only a build request has no associated build can be updated.
* server-tests/api-report-tests.js: Added unit tests accordingly.

Canonical link: https://commits.webkit.org/197750@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227283 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-22 07:38:16 +00:00
Dewei Zhu 0f2feae9dc Should allow updating a build-request to 'canceled'.
https://bugs.webkit.org/show_bug.cgi?id=181819

Reviewed by Ryosuke Niwa.

It's possible syncing script update a build-request to 'canceled' state.

* public/api/build-requests.php: Added 'canceled' as an acceptable update state.
* server-tests/api-build-requests-tests.js: Added a unit test to update a build-request to 'canceled'.

Canonical link: https://commits.webkit.org/197710@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227234 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-19 22:12:23 +00:00
Aakash Jain 725e64db44 Add support for builderNameToIDMap in BuildbotSyncer
https://bugs.webkit.org/show_bug.cgi?id=176526

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotSyncer._loadConfig): Added builderNameToIDMap parameter. It would be used later on.
(BuildbotSyncer._resolveBuildersWithPlatforms): Ditto.
(BuildbotSyncer._validateAndMergeConfig): Added builderID as a valid config parameter.
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype.getBuilderNameToIDMap): Method to fetch BuilderNameToIDMap from Buildbot 0.9.
(BuildbotTriggerable.prototype.getBuilderNameToIDMapDeprecated): Method to fetch BuilderNameToIDMap from Buildbot 0.8.
(BuildbotTriggerable.prototype.initSyncers): Updated to use getBuilderNameToIDMap.
* unit-tests/buildbot-syncer-tests.js: Updated unit-tests.
* server-tests/resources/mock-data.js:
(MockData.buildbotBuildersURLDeprecated): URL for fetching Builders list.
(MockData.buildbotBuildersURL): Ditto for Buildbot 0.9
(MockData.mockBuildbotBuildersDeprecated): Sample builders data for Buildbot 0.8
(MockData.mockBuildbotBuilders): Ditto for Buildbot 0.9
* server-tests/tools-buildbot-triggerable-tests.js: Added test for getBuilderNameToIDMap. Updated tests to handle
newly added promise for fetching builders list from Buildbot.
* server-tests/tools-sync-buildbot-integration-tests.js: Ditto.



Canonical link: https://commits.webkit.org/197660@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227184 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-19 05:42:39 +00:00
Ryosuke Niwa 81afe6292e Charts can be empty when values are all identical
https://bugs.webkit.org/show_bug.cgi?id=181828

Reviewed by Alexey Proskuryakov.

Fixed the bug that when SampleVarianceUpperTriangularMatrix can store -Infinity as the initial cost
of some entries when the sample standard deviation between two points turns out to be 0,
and cause splitIntoSegmentsUntilGoodEnough to return undefiend because no segmentation has a finite cost.

Also fixed the bug that the time series chart fails to show any data points when all data points have
identical values as the entire y-coordinate gets collapsed to an empty value range by adjusting the max value
when min & max values are identical.

* public/v3/components/time-series-chart.js:
(TimeSeriesChart.prototype._ensureValueRangeCache): Raise the max slightly when min & max are identical
to avoid the chart becoming empty. Otherwise valueDiff in _computeVerticalRenderingMetrics becomes 0
and value-to-y-coordinate conversion always results in NaN.
* public/shared/statistics.js:
(Statistics..SampleVarianceUpperTriangularMatrix):
* unit-tests/statistics-tests.js: Added a test case.


Canonical link: https://commits.webkit.org/197658@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-19 04:46:45 +00:00
Ryosuke Niwa ff73dd67d3 Don't fetch more than two builds to check duplicity of builds in ReportProcessor
https://bugs.webkit.org/show_bug.cgi?id=181786

Reviewed by Wenson Hsieh.

Limit the number of builds to check to avoid using a lot of memory with a long delay.

* public/include/report-processor.php:
(ReportProcessor::resolve_build_id):


Canonical link: https://commits.webkit.org/197647@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227166 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-18 23:01:46 +00:00
Ryosuke Niwa 7960a267eb Rename config.json to config.json.sample
https://bugs.webkit.org/show_bug.cgi?id=181785

Reviewed by Wenson Hsieh.

* .gitignore: Added config.json.
* ReadMe.md: Updated the instruction.
* config.json.sample: Renamed from config.json.


Canonical link: https://commits.webkit.org/197619@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-18 07:24:43 +00:00
Ryosuke Niwa 4c5574c1ca Unreviewed build fixes in TestGroupResultsViewer.
* public/v3/components/test-group-results-viewer.js:
(TestGroupResultsViewer.prototype.render): _renderCurrentMetricsLazily was never called.
(TestGroupResultsViewer.prototype._buildRowForMetric): Don't try to render null or NaN.


Canonical link: https://commits.webkit.org/197616@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-18 06:45:31 +00:00
Ryosuke Niwa 39fea8bd16 Fix perf dashboard tests for node v8
https://bugs.webkit.org/show_bug.cgi?id=181782

Reviewed by Wenson Hsieh.

Fixed the various tests for node.js v8, which is the latest LTS version.

* server-tests/api-manifest-tests.js: Replaced the missing Triggerable.acceptsTest by Triggerable.acceptedTests
after r226836.
* server-tests/api-measurement-set-tests.js: Added "Z" to the end timestamps to force UTF timezone now that Date
in node.js parses using the local timezone by default.
* server-tests/resources/test-server.js:
(TestServer.prototype._restoreDataDirectory): Fixed the bug that this function was erroneously using the async
function to rename a directory per new warnings. This code was racy, and it used to cause a test error occasionally.
* server-tests/tools-os-build-fetcher-tests.js: Fixed the assertions to make it work in the latest node.js.
* unit-tests/measurement-set-tests.js:
(waitForMeasurementSet): Wait for setTimeout to cycle through all microtasks instead of just two microtask cycles.


Canonical link: https://commits.webkit.org/197615@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227122 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-18 06:06:50 +00:00
Ryosuke Niwa 134cc52361 ΩUpdate the default hyperlink for Speedometer to Speedometer 2.0.
Rubber-stamped by Saam Barati.

* index.html:


Canonical link: https://commits.webkit.org/197512@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226960 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-16 02:36:48 +00:00
Ryosuke Niwa aad1fea8ac Cannot trigger Dromaeo tests on internal perf try bots
https://bugs.webkit.org/show_bug.cgi?id=179712

Reviewed by Chris Dumez.

The bug was caused by CustomAnalysisTaskConfigurator only showing the top-level tests that are triggerable
instead of the list of highest level tests that are triggerable.

* public/v3/components/custom-analysis-task-configurator.js:
(CustomAnalysisTaskConfigurator.prototype.selectTests): Update the test group name when a new test is picked.
(CustomAnalysisTaskConfigurator.prototype.selectPlatform):
(CustomAnalysisTaskConfigurator.prototype._didUpdateSelectedPlatforms): Extracted from selectPlatform.
(CustomAnalysisTaskConfigurator.prototype._renderTriggerableTests): Include the list of all highest-level tests
which are triggerable.
(CustomAnalysisTaskConfigurator.prototype._renderRadioButtonList): Added labelForObject which returns the label
to be used in the list items. For tests, we want to use the full name, not just its label.
* public/v3/models/analysis-task.js:
(AnalysisTask.fetchById):
* public/v3/models/triggerable.js:
(Triggerable.prototype.acceptedTests): Added.
(Triggerable.prototype.acceptsTest): Deleted.


Canonical link: https://commits.webkit.org/197440@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226836 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-12 02:13:53 +00:00
Ryosuke Niwa 5b5673042a Merge the latest version of Speedometer 2.0 to browserbench.org against at r226694.
Rubber-stamped by Keith Miller.

* Speedometer2.0: Replaced with PerformanceTests/Speedometer.


Canonical link: https://commits.webkit.org/197328@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226695 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-10 05:02:36 +00:00
Michael Catanzaro 981423f065 == Rolled over to ChangeLog-2018-01-01 ==
Canonical link: https://commits.webkit.org/197044@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226320 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-02 04:27:34 +00:00
Dewei Zhu 740276c85a Test freshness page should use build time instead of commit time to determine the freshness of the data point.
https://bugs.webkit.org/show_bug.cgi?id=181156

Reviewed by Alexey Proskuryakov.

Build time is a better data point freshness indicator. Test freshness page is designed to highlight test failures.
Using commit time will result in including the compiling and test running time which does not quite match the
definition of data point fresshness.

* public/v3/pages/test-freshness-page.js:
(TestFreshnessPage.prototype._fetchTestResults): Use build time instead of commit time.

Canonical link: https://commits.webkit.org/197027@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226303 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-27 22:55:43 +00:00
Dewei Zhu fa0cb4a593 Add UI for A/B testing on owned commits.
https://bugs.webkit.org/show_bug.cgi?id=177993

Reviewed by Ryosuke Niwa.

Customizable test group form should support specifying and A/B testing owned commits.
Introduce 'IntermediateCommitSet' to achieve the goal of specifying owned commits for A/B test.
In order to support configure A/B testing that may need to add/remove owned commits, CommitSet may be the
closest thing we can get. However, it is a subclass of DataModelObject, which means CommitSet is a representation
of 'commit_sets' table and can only be updated from server data. Thus, we want something like CustomCommitSet that
is not a representation of database table, but unlike CustomCommitSet, it should store information about commits
rather than a revision. As a result, IntermediateCommitSet is introduced. For a longer term, we may replace
CustomCommitSet with IntermediateCommitSet as it carries more information and could potentially simplify some
CustomCommitSet related APIs by using commit id instead of commit revision.
Extend ButtonBase class so that we can enable/disable a button.

* public/v3/components/button-base.js:
(ButtonBase):
(ButtonBase.prototype.setDisabled): Enable/disable a button.
(ButtonBase.prototype.render):
(ButtonBase.cssTemplate): Added css rule for disabled button.
* public/v3/components/combo-box.js: Added.
(ComboBox):
(ComboBox.prototype.didConstructShadowTree): Setup text field.
(ComboBox.prototype.render):
(ComboBox.prototype._candidateNameForCurrentIndex): Returns candidate name based on current index.
(ComboBox.prototype._candidateElementForCurrentIndex): Returns a list element based on current index.
(ComboBox.prototype._autoCompleteIfOnlyOneMatchingItem): Supports auto completion.
(ComboBox.prototype._moveCandidate): Supports arrow up/down.
(ComboBox.prototype._updateCandidateList): Hide/unhide candidate list and high-light selected candidate.
(ComboBox.prototype._renderCandidateList): Render candidate list base on value on text field.
(ComboBox.htmlTemplate):
(ComboBox.cssTemplate):
* public/v3/components/customizable-test-group-form.js:
(CustomizableTestGroupForm):
(CustomizableTestGroupForm.prototype.didConstructShadowTree): Only fetch the full commits when we about to create a customized A/B tests.
(CustomizableTestGroupForm.prototype._computeCommitSetMap): Compute the CustomCommitSet based on IntermediateCommitSet and
other revision related information in some map.
(CustomizableTestGroupForm.prototype.render):
(CustomizableTestGroupForm.prototype._renderCustomRevisionTable):
(CustomizableTestGroupForm.prototype._constructTableBodyList): This function builds table body for each highest level repository.
It will also include the owned repository rows in the same table body if the commits for highest level repository owns other commits.
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithoutOwner): Build a table row for a highest level repository.
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithOwner): Build a table row for repository with owner.
(CustomizableTestGroupForm.prototype._constructTableRowForIncompleteOwnedCommits): Build a table row for an unspecified repository.
(CustomizableTestGroupForm.prototype._constructRevisionRadioButtons): Update the logic to support build radio buttons for the owned repository rows.
(CustomizableTestGroupForm.cssTemplate):
* public/v3/components/minus-button.js: Added.
(MinusButton):
(MinusButton.buttonContent):
* public/v3/components/owned-commit-viewer.js:
(OwnedCommitViewer.prototype._renderOwnedCommitTable):
* public/v3/components/plus-button.js: Added.
(PlusButton):
(PlusButton.buttonContent):
* public/v3/index.html: Added new components.
* public/v3/models/commit-log.js: Added owner and owned commit information.
(CommitLog):
(CommitLog.prototype.ownedCommits): Returns a list of commits owned by current commit.
(CommitLog.prototype.ownerCommit): Return owner commit of current commit.
(CommitLog.prototype.setOwnerCommits): Set owner commit of current commit.
(CommitLog.prototype.label): Remove unnecessary 'else'.
(CommitLog.prototype.diff): Remove unused 'fromRevisionForURL' and tiny code cleanup.
(CommitLog.prototype.ownedCommitForOwnedRepository):
(CommitLog.prototype.fetchOwnedCommits): Sets the owner for those owned commits. The owner of a commit with multiple owner
commits will be overwritten by each time this function is called.
(CommitLog.ownedCommitDifferenceForOwnerCommits): A more generic version of diffOwnedCommits. diffOwnedCommits only accepts 2 commits,
but ownedCommitDifferenceForOwnerCommits supports multiple commits.
(CommitLog.diffOwnedCommits): Deleted and should use 'CommitLog.ownedCommitDifferenceForOwnerCommits' instead.
* public/v3/models/commit-set.js:
(CommitSet.prototype.topLevelRepositories):
(CommitSet.prototype.commitForRepository):
(IntermediateCommitSet): Take CommitSet as argument, note the commit from CommitSet doesn't contains full information of the commit.
Always call 'fetchFullCommits' once before any further usages.
(IntermediateCommitSet.prototype.fetchCommitLogs): Fetch all commits information in current commit set.
(IntermediateCommitSet.prototype._fetchCommitLogAndOwnedCommits): Fetch commit log and owned commits if necessary.
(IntermediateCommitSet.prototype.updateRevisionForOwnerRepository): Updates a commit for a repository by given a revision of the repository.
(IntermediateCommitSet.prototype.setCommitForRepository): Sets a commit for a repository in commit set.
(IntermediateCommitSet.prototype.removeCommitForRepository): Removes a commit for a repository in commit set.
(IntermediateCommitSet.prototype.ownsCommitsForRepository): Returns whether the commit for repository owns commits.
(IntermediateCommitSet.prototype.repositories): Returns all repositories in the commit set.
(IntermediateCommitSet.prototype.highestLevelRepositories): Returns all repositories those don't have an owner.
(IntermediateCommitSet.prototype.commitForRepository): Returns a commit for a given repository.
(IntermediateCommitSet.prototype.ownedRepositoriesForOwnerRepository): Returns all repositories owned by a given repository in current commit set.
(IntermediateCommitSet.prototype.ownerCommitForRepository): Returns owner commit for a given owned repository.
* tools/js/v3-models.js: Added import for 'IntermediateCommitSet'.
* unit-tests/commit-log-tests.js: Updated unittest which tests 'ownerCommit' function.
* unit-tests/commit-set-tests.js: Added unit tests for IntermediateCommitSet.

Canonical link: https://commits.webkit.org/196983@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226259 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-22 06:25:24 +00:00
Dewei Zhu f82a1651f0 Add a test freshness page.
https://bugs.webkit.org/show_bug.cgi?id=180126

Reviewed by Ryosuke Niwa.

Added a page to show freshness of a test.
The test freshness page reports on the same set of tests as the one shown in the summary page.
Use a logistic function to evaluate the freshness of the data points.
This function has the desired property which increase dramatically when it close to the center of the graph.
'acceptableLastDataPointDurationInHour' configs the center of the graph.

* public/include/manifest-generator.php:
* public/v3/components/freshness-indicator.js: Added.
(FreshnessIndicator): A cell of the test freshness table, color will transit from green to red.
(FreshnessIndicator.prototype.update): Update the the data point information and triggers
the cell to re-render if anything changes.
(FreshnessIndicator.prototype._renderIndicator): Re-render the indicator.
(FreshnessIndicator.prototype.render): Render the box color base on a logistic function.
(FreshnessIndicator.prototype._createIndicator):
(FreshnessIndicator.htmlTemplate):
(FreshnessIndicator.cssTemplate):
* public/v3/index.html:
* public/v3/main.js: Added test freshness page.
(main):
* public/v3/models/build-request.js: Refactored waitingTime function to make it reusable.
(BuildRequest.formatTimeInterval): Format time interval in million seconds to more user friendly text.
(BuildRequest.prototype.waitingTime):
* public/v3/pages/test-freshness-page.js: Added.
(TestFreshnessPage):
(TestFreshnessPage.prototype.name):
(TestFreshnessPage.prototype._loadConfig): Load config from summary page configurations.
(TestFreshnessPage.prototype.open):
(TestFreshnessPage.prototype._fetchTestResults):
(TestFreshnessPage.prototype.render):
(TestFreshnessPage.prototype._renderTable):
(TestFreshnessPage.prototype._isValidPlatformMetricCombination): Return whether a platform
and metric combination is valid.
(TestFreshnessPage.prototype._constructTableCell):
(TestFreshnessPage.cssTemplate):
(TestFreshnessPage.prototype.routeName):
* server-tests/api-manifest-tests.js: Added 'warningHourBaseline' so that we can config the
parameter of logistic funciton.
* unit-tests/build-request-tests.js: Added unit tests for formatTimeInterval.

Canonical link: https://commits.webkit.org/196700@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-14 09:49:37 +00:00
Dean Jackson f1e96d7322 Add a runtime feature flag for ImageBitmap and OffscreenCanvas
https://bugs.webkit.org/show_bug.cgi?id=180652
<rdar://problem/35969611>

Reviewed by Antoine Quint.

Source/WebCore:

Add a RuntimeEnabledFeature for these interfaces, and link the bindings
to the feature.

Test: fast/canvas/offscreen-enabled.html

* bindings/js/WebCoreBuiltinNames.h:
* html/ImageBitmap.idl:
* html/OffscreenCanvas.idl:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setImageBitmapOffscreenCanvasEnabled):
(WebCore::RuntimeEnabledFeatures::imageBitmapOffscreenCanvasEnabled const):
* page/WindowOrWorkerGlobalScope.idl:

Source/WebKit:

Add an experimental feature flag for these interfaces.

* Shared/WebPreferences.yaml:

Websites/webkit.org:

Simple test to validate if these interfaces are enabled.

* experimental-features.html:

LayoutTests:

* fast/canvas/offscreen-enabled-expected.txt: Added.
* fast/canvas/offscreen-enabled.html: Added.

Canonical link: https://commits.webkit.org/196562@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225746 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-11 18:07:48 +00:00
Dean Jackson 595571d9e6 Include gl-matrix directly since github doesn't serve the correct mime type
https://bugs.webkit.org/show_bug.cgi?id=180102
<rdar://problem/35301622>

Reviewed by Antoine Quint.

* demos/webgpu/cubes.html:
* demos/webgpu/gl-matrix-min.js: Added.
* demos/webgpu/simple.html:

Canonical link: https://commits.webkit.org/196096@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225235 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-11-28 21:10:14 +00:00
Jonathan Davis dd89029357 Update safe area CSS for webkit.org
https://bugs.webkit.org/show_bug.cgi?id=179615

Reviewed by Alexey Proskuryakov.

* wp-content/themes/webkit/style.css:
(@media only screen and (max-height: 415px)):
(@supports(padding:max(0px))):


Canonical link: https://commits.webkit.org/195661@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224774 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-11-13 21:29:47 +00:00
Jonathan Davis c5c19707fb Add a new landing page design and site-wide design detail updates for webkit.org
https://bugs.webkit.org/show_bug.cgi?id=179558

Reviewed by Alexey Proskuryakov.

* wp-content/themes/webkit/404.php: Removed unnecessary prefixed CSS.
* wp-content/themes/webkit/444.php: Removed unnecessary prefixed CSS.
* wp-content/themes/webkit/css-status.php: Removed unnecessary prefixed CSS.
* wp-content/themes/webkit/footer.php: Added new page wrapper container.
* wp-content/themes/webkit/front-header.php: Redesigned landing hero.
* wp-content/themes/webkit/functions.php: Added support for configurable non-breaking words.
* wp-content/themes/webkit/header.php: Added viewport-fit, changed web font, changed logo title.
* wp-content/themes/webkit/images/chevron.svg: Added.
* wp-content/themes/webkit/images/circular.svg: Added.
* wp-content/themes/webkit/images/compass.svg: Added.
* wp-content/themes/webkit/images/download-white.svg: Added.
* wp-content/themes/webkit/images/template.svg: Added.
* wp-content/themes/webkit/loop.php: Updated "read more" link presentation.
* wp-content/themes/webkit/nightly-start.php: Adjusted header background colors.
* wp-content/themes/webkit/nightly-survey.php: Adjusted header background colors.
* wp-content/themes/webkit/nightly.php: Adjusted header background colors.
* wp-content/themes/webkit/page.php: Page clean up.
* wp-content/themes/webkit/single.php: Updated "read more" link presentation.
* wp-content/themes/webkit/status.php: Removed unnecessary prefixed CSS, improved page title.
* wp-content/themes/webkit/style.css: Redesigned.
(html):
(body):
(strong):
(em):
(code):
(main):
(h1,):
(input[type=text]):
(input[type=submit]):
(header):
(.home header):
(@supports ( -webkit-backdrop-filter: blur(10px) )):
(.sub-menu-layer):
(.nextrouter .link,):
(.pagination):
(.pagination::after):
(.pagination .page-numbers):
(.pagination .dots,):
(.pagination .next-button):
(.nextrouter):
(.nextrouter:hover):
(.nextrouter.previous):
(.nextrouter.previous:hover):
(.nextrouter .bodycopy):
(.nextrouter a):
(.nextrouter a:hover):
(.nextrouter-copy):
(.nextrouter .label):
(.nextrouter .title):
(.nextrouter .link):
(.nextrouter a:hover .link):
(footer):
(.tiles):
(.tile):
(.third-tile):
(.two-thirds-tile):
(.tile .background-image):
(.tile .background-image.has-featured-image):
(.tile .featured-image):
(.tile:not(.has-post-thumbnail) .background-image,):
(.tile h1):
(.tile h2):
(.tile .summary,):
(pre):
(article):
(article::after):
(article h1):
(article h2):
(article h3):
(article h4):
(article h5):
(article h6):
(article h2 + h3,):
(article figcaption):
(article figcaption::before):
(.table-of-contents):
(article .table-of-contents label):
(.table-of-contents ul):
(.table-of-contents ul li):
(.table-of-contents ul li > ul):
(.site-logo):
(footer nav):
(header nav li):
(header nav a,):
(header .menu-item-has-children .label-toggle::after):
(header .menu-item):
(@media only screen and (max-width: 1180px)):
(article .byline):
(@media only screen and (max-width: 920px)):
(.main-menu.label-toggle):
(header .menu):
(header nav a):
(header .menu-main-menu-container >  ul > li):
(header .sub-menu-layer):
(@media only screen and (max-width: 690px)):
(.third-tile,):
(@media only screen and (max-width: 600px)):
(.table-of-contents label:after):
(@media only screen and (max-width: 415px)):
(@media only screen and (max-height: 415px)):
(@supports(padding:max(0px))):
(header .menu .menu-item > .sub-menu):
(.sub-menu-layer .menu-item:first-child,):
(#template):
(#compass):
(.tile .featured-image,): Deleted.
(.site-logo .tagline): Deleted.
(.timeline): Deleted.
(.timeline:after): Deleted.
(.timeline *): Deleted.
(.timeline:before): Deleted.
(.timeline > li): Deleted.
(.timeline > li:before): Deleted.
(.timeline .content): Deleted.
(.timeline figure): Deleted.
(.timeline .time): Deleted.
(.timeline h2, .timeline h3): Deleted.
(.timeline .time::before): Deleted.
(.timeline img): Deleted.
(@media (min-width: 900px)): Deleted.
(.timeline > li.force-clear): Deleted.
(.timeline > li:nth-child(odd)): Deleted.
(.timeline > li:nth-child(even)): Deleted.
(.timeline > li:nth-child(2),): Deleted.
(.timeline li .time): Deleted.
(.timeline li:nth-child(odd) .time): Deleted.
(.timeline li:nth-child(even) .time): Deleted.
(.timeline li:nth-child(even) .time::before): Deleted.
(.timeline > li:nth-child(even):before): Deleted.
(@media (max-width: 900px)): Deleted.
(.timeline li .time::before): Deleted.
(.hero .logo,): Deleted.
(.home .hero): Deleted.
(.home.admin-bar .hero): Deleted.
(@media only screen and (max-width: 320px)): Deleted.
* wp-content/themes/webkit/widgets/post.php: Updated "read more" link presentation.


Canonical link: https://commits.webkit.org/195644@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224757 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-11-13 17:40:31 +00:00
Dewei Zhu 59a84ef417 Add platform argument for syncing script.
https://bugs.webkit.org/show_bug.cgi?id=179162

Reviewed by Ryosuke Niwa.

Syncing script should pass platform name to buildbot if platform argument is specified in configuration.

* server-tests/tools-sync-buildbot-integration-tests.js:
(return.createTriggerable.configWithPlatformName.then): Added unit test for platform argument.
* tools/js/buildbot-syncer.js:
(BuildbotSyncer): Add '_platformPropertyName' property.
(BuildbotSyncer.prototype.scheduleRequest): Add '_platformPropertyName' to build property if specified.
(BuildbotSyncer._loadConfig): Read '_plaformPropertyName' from config.

Canonical link: https://commits.webkit.org/195459@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224551 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-11-07 22:57:05 +00:00
Dewei Zhu 77f7d7e854 Limit the number of results to be submitted in one submission.
https://bugs.webkit.org/show_bug.cgi?id=179045

Reviewed by Ryosuke Niwa.

Submitting results for a large number of builds with owned commit information may exceed the size limit of php.
Added a way to split the results into groups of certain sizes, and submit them one by one.

* server-tests/tools-os-build-fetcher-tests.js: Updated the unit tests.
* tools/js/os-build-fetcher.js: Added '_maxNumberOfResultsPerSubmit' which can be specified by a configuration but also use 20 as default value.
(prototype.fetchAndReportNewBuilds): Instead of submitting all results once, split them into groups and submit them one by one.
(prototype._fetchAvailableBuilds): 'label' is already quoted, should remove unnecessary quotes.
(prototype._addOwnedCommitsForBuild): Added logging to log the size of owned commits.

Canonical link: https://commits.webkit.org/195185@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-31 10:01:18 +00:00
Dewei Zhu a9a22623d7 OwnedCommitViewer should include the preceding commit.
https://bugs.webkit.org/show_bug.cgi?id=179047

Reviewed by Ryosuke Niwa.

OwnedCommitViewer shows the difference between owned commits.
To show changes made by first owned commit, we need to have the preceding commit information.

* public/v3/components/commit-log-viewer.js:
(CommitLogViewer):
(CommitLogViewer.prototype._fetchCommitLogs): Fetch preceding commit if the commits fetched is not a single commit.
(CommitLogViewer.prototype.render):
(CommitLogViewer.prototype._renderCommitList): Conditionally rendering preceding commit in commit list.

Canonical link: https://commits.webkit.org/195184@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224227 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-31 09:44:39 +00:00
Tim Horton 1e99c664dd Update safe area inset demo pages to use env()
https://bugs.webkit.org/show_bug.cgi?id=179041

Reviewed by Simon Fraser.

* demos/safe-area-insets/1-default.html:
* demos/safe-area-insets/2-viewport-fit.html:
* demos/safe-area-insets/3-safe-area-constants.html:
* demos/safe-area-insets/4-min-max.html:
* demos/safe-area-insets/safe-areas.html:
Update to use env() instead of constant(), but keep constant() around
for backwards-compatibility.

Adjust the colors on the safe areas test page to look a little less holiday-like.


Canonical link: https://commits.webkit.org/195179@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224219 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-31 03:22:18 +00:00
Dewei Zhu 2b53e5ed93 Fix a bug in syncing script that test/build syncer is never set.
https://bugs.webkit.org/show_bug.cgi?id=178772

Reviewed by Ryosuke Niwa.

Neither 'buildSyncer' nor 'testSyncer' is ever set.
Added a unit test to cover this case.

* server-tests/tools-sync-buildbot-integration-tests.js:
(createTriggerable): Refactor it to allow customized name.
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype._pullBuildbotOnAllSyncers): Update syncer info accordingly.
(BuildbotTriggerable._testGroupMapForBuildRequests): Initialize build and test syncer to null.

Canonical link: https://commits.webkit.org/194970@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223975 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-25 19:48:57 +00:00
Dewei Zhu 1c13d6b026 Owner commit does not necessarily exist in the same commit set for an owned commit.
https://bugs.webkit.org/show_bug.cgi?id=178763

Reviewed by Ryosuke Niwa.

Remove the check based on previous incorrect assumption.
Added unit tests to cover this change.

* public/privileged-api/create-test-group.php:
* server-tests/privileged-api-create-test-group-tests.js:
(return.addTriggerableAndCreateTask.string_appeared_here.then.id.taskId.id.then):

Canonical link: https://commits.webkit.org/194942@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223946 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-25 01:34:34 +00:00
Dewei Zhu 78f1d73dbd Update perf dashboard upload logic to support uploading binaries from owned commits.
https://bugs.webkit.org/show_bug.cgi?id=178610

Reviewed by Ryosuke Niwa.

Update build requests to 'completed' only when all commit set items are satisfied.
Extend 'repositoryList' parameter to be able to specified own commit information.
Items in 'repositoryList' can either be a string for top level repository,
or a dictionary with two keys: 'ownerRepository' and 'ownedRepository'.

* public/api/upload-root.php: Extend upload logic for support uploading binaries from owned commits.
* server-tests/api-upload-root-tests.js: Added unit tests.
* server-tests/tools-sync-buildbot-integration-tests.js: Added unit tests.

Canonical link: https://commits.webkit.org/194860@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-24 00:22:57 +00:00
Daniel Bates 2a39714004 No nightlies listed on nightly.webkit.org when using shipping Safari on macOS Sierra and OS X El Capitan
https://bugs.webkit.org/show_bug.cgi?id=178372

Reviewed by Tim Horton.

The Build Archive page depends on the collections (e.g. HTMLCollection) being
iterable so as to support iteration using ES6 for-of loop. Such support postdates
the version of WebKit shipped in macOS Sierra and OS X El Capitan. We should
make <https://webkit.org/build-archives/> work for these OSes since we still publish
nightlies for them.

* wp-content/themes/webkit/build-archives.php: Use Array.prototype.slice() to
convert the HTMLCollection to an array that can be iterated using a ES6 for-of loop.

Canonical link: https://commits.webkit.org/194595@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-17 03:26:36 +00:00
Dewei Zhu 3f04cc1c01 Add try-bot button on perf analysis status page.
https://bugs.webkit.org/show_bug.cgi?id=177995

Reviewed by Ryosuke Niwa.

Add 'Create' button on analysis status top-left corner to create trybot analysis task.

* public/v3/pages/analysis-category-toolbar.js:
(AnalysisCategoryToolbar.cssTemplate):

Canonical link: https://commits.webkit.org/194264@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222992 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-06 19:54:51 +00:00
Megan Gardner fd464fdca5 Update Webkit Style webpage to include Obj-C blocks
https://bugs.webkit.org/show_bug.cgi?id=177906

Reviewed by Tim Horton.

* code-style.md:



Canonical link: https://commits.webkit.org/194208@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222935 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-05 22:32:55 +00:00
Jonathan Davis 078d331dac Add a WebKit Build Archives page
https://bugs.webkit.org/show_bug.cgi?id=177654

Reviewed by Alexey Proskuryakov.

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


Canonical link: https://commits.webkit.org/194000@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222717 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-02 17:26:38 +00:00
Dewei Zhu ca06813305 Update syncing script to be able to build binary for commit set with owned commits.
https://bugs.webkit.org/show_bug.cgi?id=177225

Reviewed by Ryosuke Niwa.

Added support for syncing script to be able to schedule builds to build binary for owned commits.
Introduces 'ifRepositorySet' and 'ownedRevisions' in 'buildProperties'.
'ifRepositorySet' will conditionaly set a build property if at least one of the repositories it specified requires build.
'ownedRevisions' specifies owned commits revision informations.

* public/v3/models/commit-set.js:
(CommitSet): Added '_ownerRepositoryToOwnedRepositoriesMap'.
(CommitSet.prototype.updateSingleton): Reset '_ownerRepositoryToOwnedRepositoriesMap'.
(CommitSet.prototype._updateFromObject): Only update '_repositoryToCommitOwnerMap' and '_ownerRepositoryToOwnedRepositoriesMap' when 'commitOwner' exists.
(CommitSet.prototype.ownerCommitForRepository): Returns a sorted list of top level repositories.
(CommitSet.prototype.ownedRepositoriesForOwnerRepository): Returns owned repositories given a owner repository.
(CustomCommitSet.prototype.ownerCommitForRepository): Returns a sorted list of top level repositories.
* public/v3/models/triggerable.js:
(prototype.accepts): It should only check against top-level repositories. Removed a deprecated 'FIXME'.
* server-tests/tools-sync-buildbot-integration-tests.js: Added unit test for building owned commits binary.
(createTriggerable): Added conditional 'ifRepositorySet' and 'ownedRevisions' in the repository groups.
* tools/js/buildbot-syncer.js:
(BuildbotSyncer.prototype._propertiesForBuildRequest):
    Added logic to conditionaly create build property for 'ifRepositorySet'.
    Added logic to create 'ownedRevisions' based on the owner repositories it specified.
(BuildbotSyncer._parseRepositoryGroup): Build property template should be able to handle 'ifRepositorySet' and 'ownedRevisions'.
* unit-tests/buildbot-syncer-tests.js: Added unit tests for 'ifRepositorySet' and 'ownedRevisions'.
* unit-tests/commit-set-tests.js: Added unit tests for 'topLevelRepositoriesSortedByNamePreferringOnesWithURL'.
* unit-tests/resources/mock-v3-models.js: Added a repository group contains 'ios', 'webkit' and 'ownerRepository'.

Canonical link: https://commits.webkit.org/193932@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-29 07:34:41 +00:00
Ryosuke Niwa 3eb75bb6cf Merge the latest version of Speedometer 2.0 to browserbench.org against at r222534.
Rubber-stamped by Saam Barati (a while ago).

* Speedometer2.0: Replaced with PerformanceTests/Speedometer.


Canonical link: https://commits.webkit.org/193929@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222645 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-29 02:42:46 +00:00
Tim Horton d9b00bfac3 Update some links in demos
* demos/safe-area-insets/1-default.html:
* demos/safe-area-insets/2-viewport-fit.html:
* demos/safe-area-insets/3-safe-area-constants.html:
* demos/safe-area-insets/4-min-max.html:


Canonical link: https://commits.webkit.org/193690@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-22 16:33:11 +00:00
Tim Horton bf3ffca18f Add some blog post resources
https://bugs.webkit.org/show_bug.cgi?id=177333

Reviewed by Sam Weinig.

* demos/safe-area-insets/1-default.html: Added.
* demos/safe-area-insets/2-viewport-fit.html: Added.
* demos/safe-area-insets/3-safe-area-constants.html: Added.
* demos/safe-area-insets/4-min-max.html: Added.
* demos/safe-area-insets/safe-areas.html: Added.
* demos/safe-area-insets/style.css: Added.


Canonical link: https://commits.webkit.org/193678@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-22 01:08:24 +00:00
Dewei Zhu 12ec07a274 Use 'owned commit' instead of 'sub commit' whenever refers to a commit owned by another commit.
https://bugs.webkit.org/show_bug.cgi?id=177178

Reviewed by Ryosuke Niwa.

We use both 'owned commit' and 'sub commit' to refer to a commit owned by an another commit. We should use one term instead of two.
Renaming 'subCommit' to 'ownedCommit', 'ownsSubCommit' to 'ownsCommit' and 'sub-commit' to 'owned-commit'.

* browser-tests/commit-log-viewer-tests.js:
* public/api/commits.php:
* public/api/report-commits.php:
* public/include/commit-log-fetcher.php:
* public/v3/components/commit-log-viewer.js:
(CommitLogViewer.prototype._renderCommitList):
* public/v3/components/owned-commit-viewer.js: Renamed from Websites/perf.webkit.org/public/v3/components/sub-commit-viewer.js.
(OwnedCommitViewer):
(OwnedCommitViewer.prototype.didConstructShadowTree):
(OwnedCommitViewer.prototype._toggleVisibility):
(OwnedCommitViewer.prototype.render):
(OwnedCommitViewer.prototype._renderOwnedCommitTable):
(OwnedCommitViewer.htmlTemplate):
(OwnedCommitViewer.cssTemplate):
* public/v3/index.html:
* public/v3/models/commit-log.js:
(CommitLog):
(CommitLog.prototype.updateSingleton):
(CommitLog.prototype.ownsCommits):
(CommitLog.prototype.fetchOwnedCommits):
(CommitLog.prototype._buildOwnedCommitMap):
(CommitLog.diffOwnedCommits):
(CommitLog.prototype.ownsSubCommits): Deleted.
(CommitLog.prototype.fetchSubCommits): Deleted.
(CommitLog.prototype._buildSubCommitMap): Deleted.
(CommitLog.diffSubCommits): Deleted.
* server-tests/api-commits-tests.js:
* server-tests/api-report-commits-tests.js:
* server-tests/tools-os-build-fetcher-tests.js:
(return.waitForInvocationPromise.then):
(string_appeared_here.return.waitForInvocationPromise.then):
* tools/js/os-build-fetcher.js:
(prototype._fetchAvailableBuilds):
(prototype._addOwnedCommitsForBuild):
(prototype._addSubCommitsForBuild): Deleted.
* unit-tests/commit-log-tests.js:
(return.commit.fetchOwnedCommits.then):
(return.fetchingPromise.then):
(return.commit.fetchSubCommits.then): Deleted.

Canonical link: https://commits.webkit.org/193549@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222227 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-19 21:47:41 +00:00
Dewei Zhu 7631cb192a Performance Dashboard backend should support A/B testing for owned components.
https://bugs.webkit.org/show_bug.cgi?id=175978

Reviewed by Ryosuke Niwa.

Add backend change for Performance Dashboard to support A/B testing for owned components.
Added 'commitset_commit_owner' and 'commitset_requires_build' columns to 'commit_set_items' table.
'commitset_commit_owner' referrs to determine a commit with owner.
'commitset_requires_build' indicates whether a root build is required.
This will be set true whenever commit_set_item specifies a patch file,
or commit_set_item is commit with owner commit,
or any other commit from same repository and in same build-request group requires build.
SQL for updating existing database:
    'BEGIN;
        ALTER TABLE commit_set_items ADD COLUMN commitset_commit_owner integer REFERENCES commits DEFAULT NULL, ADD COLUMN commitset_requires_build boolean DEFAULT FALSE;
        UPDATE commit_set_items SET commitset_requires_build = TRUE WHERE commitset_patch_file IS NOT NULL;
        UPDATE commit_set_items SET commitset_requires_build = TRUE WHERE commitset_set IN (SELECT requests1.request_commit_set FROM build_requests as requests1 JOIN build_requests as requests2 ON requests1.request_group = requests2.request_group JOIN commit_set_items as item ON item.commitset_set = requests2.request_commit_set  WHERE item.commitset_patch_file IS NOT NULL);
        ALTER TABLE commit_set_items ADD CONSTRAINT commitset_item_with_patch_must_requires_build CHECK (commitset_patch_file IS NULL OR commitset_requires_build = TRUE),
            ADD CONSTRAINT commitset_item_with_owned_commit_must_requires_build CHECK (commitset_commit_owner IS NULL OR commitset_requires_build = TRUE);
    END;'

* init-database.sql: Updated 'commit_set_items' table.
* public/admin/triggerables.php: Only top level repository should show on triggerables page.
* public/include/build-requests-fetcher.php: Added 'commitOwner' and 'requireBuild' to 'revision_items'. Added 'commitOwner' field to a commit.
* public/include/db.php: Should be able to insert boolean value to database without explicted convert to 't' or 'f'.
* public/privileged-api/create-test-group.php:
    Added logic to process 'commitOwner' and 'requireBuild' in 'commit_set_items'.
    Removed a 'FIXME' that has been addressed before this commit.
* public/v3/models/build-request.js:
(BuildRequest.constructBuildRequestsFromData): Set 'commitOwner' field for a commit set item.
* public/v3/models/commit-set.js:
(CommitSet): Added maps for repository to commit owner and whether a repository requires builds.
(CommitSet.prototype.updateSingleton):
(CommitSet.prototype._updateFromObject):
(CommitSet.prototype.ownerRevisionForRepository): Returns owner revision for a given repository in current commit set.
(CommitSet.prototype.requiresBuildForRepository): Returns whether a repository need to build.
(CommitSet.prototype.equals): Equality check should include 2 new maps.
(CustomCommitSet): CustomCommitSet should be able to store commit with an owner commit.
(CustomCommitSet.prototype.setRevisionForRepository): Added each revision list entry should have 'ownerRevision'(null by default).
(CustomCommitSet.prototype.equals): Equality check should also check the equality of 'ownerRevision'.
(CustomCommitSet.prototype.ownerRevisionForRepository): Returns a owner revision for a given repository.
* public/v3/models/repository.js:
(Repository.prototype.findOwnedRepositoryByName): Return an repository owned by current repository with a given name.
* public/v3/models/test-group.js: Added 'ownerRevision' field in each entry of revisionSet.
* server-tests/api-build-requests-tests.js: Added tests.
* server-tests/privileged-api-create-test-group-tests.js: Added tests.
* server-tests/privileged-api-upload-file-tests.js: Fix unit tests by setting'requires_build' field to be true when updating commit_set_item which has a patch..
* server-tests/resources/mock-data.js: Added mock build requests with commit sets contain owned commits.
(MockData.jscRepositoryId): Returns id for JavaScriptsCore repository.
(MockData.addMockConfiguration): Added mock JavaScriptCore and owned JavaScriptCore repositories and commits associated with them.
(MockData.ownedJSCRepositoryId): Added a JavaScriptCore repository with WebKit as owner.
(MockData.addMockConfiguration): Added mock data for test cases those require a commit with a owner commit.
(MockData.addTestGroupWithOwnedCommits): Added mock data for analysis tasks, the build requires of which contains owned commits.
(MockData.set addAnotherTriggerable): Added another triggerable which has mac, webkit and javascript core repositories as triggerable repository group.
(MockData.set addAnotherMockTestGroup): Added another mock test group.
* tools/js/v3-models.js: Import CustomCommitSet.
* unit-tests/resources/mock-v3-models.js: Added an owned webkit repository.
* unit-tests/commit-set-tests.js: Added unit tests CustomCommitSet.

Canonical link: https://commits.webkit.org/193541@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222219 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-19 20:14:45 +00:00
Dewei Zhu 90f123c0e5 Should not mark a platform as missing in summary page if all expecting metrics are exlucded.
https://bugs.webkit.org/show_bug.cgi?id=176970

Reviewed by Ryosuke Niwa.

In summary page, if all metrics for a test are excluded in excludedConfigurations for a platform, this platform should not be marked as missing.

* public/v3/pages/summary-page.js:
(SummaryPageConfigurationGroup):


Canonical link: https://commits.webkit.org/193445@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222123 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-16 01:11:27 +00:00
Ryosuke Niwa 399dc37a08 Analysis task page shows an empty results for an irrelevant top-level test
https://bugs.webkit.org/show_bug.cgi?id=175252

Reviewed by Antti Koivisto.

The bug was caused by TestGroupResultsViewer always listing every top-level test which has a result for the
entire analysis task. Since a custom analysis task (perf try bots) allows multiple tests to be tested in each
group, we have to only list the tests which contains results in a particular test group.

* public/v3/components/test-group-results-viewer.js:
(TestGroupResultsViewer.prototype.render): Find the tests that have results for the current test group instead
of for any test group in this analysis task.
any test
* public/v3/models/analysis-results.js:
(AnalysisResults):
(AnalysisResults.prototype.topLevelTestsForTestGroup): Renamed from highestTests. Now takes a test group
as an argument.
(AnalysisResults.prototype._computedTopLevelTests): Renamed from _computeHighestTests. Filters the results
with the specified test group.


Canonical link: https://commits.webkit.org/193216@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221871 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-11 19:26:00 +00:00
Jonathan Davis aedb18e30a Minor design changes for browserbench.org landing page
https://bugs.webkit.org/show_bug.cgi?id=176612

Reviewed by Darin Adler.

* index.html:
* resources/main.css: Shrink the logos and arrange them into a grid.
(main):
(.benchmarks):
(.benchmarks a):
(.benchmark):
(.benchmark:hover):
(.benchmark img):
(#ares-6-logo): Deleted.
(#motionmark-logo): Deleted.
(#speedometer-logo): Deleted.
(#jetstream-logo): Deleted.


Canonical link: https://commits.webkit.org/193189@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221840 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-10 23:34:16 +00:00
Aakash Jain 654fa1a550 Add initSyncers method in BuildbotTriggerable
https://bugs.webkit.org/show_bug.cgi?id=176125

Reviewed by Ryosuke Niwa.

* tools/sync-buildbot.js:
(syncLoop): Use initSyncers() which returns a promise. Modified to handle the promise.
* tools/js/buildbot-triggerable.js:
(BuildbotTriggerable): Invokes initSyncers() appropriately.
(BuildbotTriggerable.prototype.initSyncers): Returns a promise which initialize all the syncers.
* server-tests/tools-buildbot-triggerable-tests.js: Updated tests to handle initSyncers().
* server-tests/tools-sync-buildbot-integration-tests.js: Ditto.


Canonical link: https://commits.webkit.org/193076@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221717 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-07 04:23:35 +00:00
Ryosuke Niwa 36093d0fc7 Add a button to show two weeks of data to perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=176438

Reviewed by Saam Barati.

Add "2W" button to show 14 days of data on dashboard pages.

* public/v3/pages/dashboard-toolbar.js:
(DashboardToolbar):


Canonical link: https://commits.webkit.org/193025@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221664 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-06 05:25:14 +00:00
Ryosuke Niwa 0f5acf9b64 Build fix. OS X "revision" can have a space.
* public/include/commit-log-fetcher.php:


Canonical link: https://commits.webkit.org/192741@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221312 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-29 21:28:04 +00:00
Ryosuke Niwa 459557a6b4 Make it possible to specify A/B testing revision with a partial hash
https://bugs.webkit.org/show_bug.cgi?id=176047

Rubber-stamped by Chris Dumez.

Added the support for specifying a partial hash in A/B testing instead of the full hash.

* public/include/commit-log-fetcher.php:
(CommitLogFetcher::find_commit_id_by_revision): Extracted from associate-commit.php.
* public/privileged-api/associate-commit.php:
(main):
* public/privileged-api/create-test-group.php:
(main): Use find_commit_id_by_revision here to support scheduling an A/B testing with a partial hash.
* server-tests/privileged-api-create-test-group-tests.js:
(createAnalysisTask): Make it possible to customize revision string in some test cases.
* server-tests/resources/test-server.js:
(TestServer.prototype._stopApache): Fixed the bug that cleanup step always fails whenever the test file
runs more than 8s.


Canonical link: https://commits.webkit.org/192740@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221311 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-29 21:18:49 +00:00
Ryosuke Niwa 4f2d76305b Build fix. Creating trying a test group no longer updates the page.
* public/v3/models/test-group.js:
(TestGroup.createWithCustomConfiguration): Added the missing ignoreCache=true.



Canonical link: https://commits.webkit.org/192677@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-26 23:26:16 +00:00
Ryosuke Niwa dae510703a Build fix. Copy the missing statistics.js for Speedometer 2.0.
* resources/statistics.js: Copied from PerformanceTests/resources/statistics.js.



Canonical link: https://commits.webkit.org/192582@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221130 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-24 06:17:22 +00:00
Ryosuke Niwa 8f4a5757d5 Merge the latest version of Speedometer 2.0 to browserbench.org against at r221126.
Rubber-stamped by Yusuke Suzuki.

* Speedometer2.0: Replaced with PerformanceTests/Speedometer.
* Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/app.js:
* Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/todomvc.css:
* Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/footer.js:
* Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/index.js:
* Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/item.js:
* Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/util.js:
(export.uuid):



Canonical link: https://commits.webkit.org/192579@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-24 02:12:48 +00:00
Ryosuke Niwa 3fbf4f6ae8 Merge the latest version of Speedometer 2.0 to browserbench.org against at r221119.
Rubber-stamped by Joseph Pecoraro.

* Speedometer2.0: Replaced with PerformanceTests/Speedometer.


Canonical link: https://commits.webkit.org/192572@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-24 00:09:28 +00:00
Ryosuke Niwa c55bc5a50f Merge the latest version of Speedometer 2.0 to browserbench.org against at r221056.
Rubber-stamped by Joseph Pecoraro.

* Speedometer2.0: Replaced with PerformanceTests/Speedometer.
* Speedometer2.0/resources/main.js:
(window.benchmarkClient.didFinishLastIteration):
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.9debb1b0a94f14d0ebe9.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.9debb1b0a94f14d0ebe9.js.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.a55034b424c795b1a9a8.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.a55034b424c795b1a9a8.js.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.bade2cb8992d8a68d0d7.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.bade2cb8992d8a68d0d7.js.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.9debb1b0a94f14d0ebe9.css: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.9debb1b0a94f14d0ebe9.css.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.bade2cb8992d8a68d0d7.css: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.bade2cb8992d8a68d0d7.css.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js:
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/store.js:



Canonical link: https://commits.webkit.org/192512@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-23 00:00:06 +00:00
Dewei Zhu df2947433c Performance Dashboard should be compatible with PHP 7.
https://bugs.webkit.org/show_bug.cgi?id=175813

Reviewed by Ryosuke Niwa.

Use `file_get_contents('php://input')` instead of '$HTTP_RAW_POST_DATA'.
Update test harness script to load right php module in httpd.

* ReadMe.md: JSON example format fix.
* public/api/report-commits.php: Stop using '$HTTP_RAW_POST_DATA'.
* public/api/report.php: Stop using '$HTTP_RAW_POST_DATA'.
* public/api/update-triggerable.php: Stop using '$HTTP_RAW_POST_DATA'.
* public/include/json-header.php: Stop using '$HTTP_RAW_POST_DATA'.
* public/include/report-processor.php: Stop using '$HTTP_RAW_POST_DATA'.
* server-tests/resources/test-server.conf: Load php5 or php7 module conditionally.
* server-tests/resources/test-server.js: Pass PHP version info while launching httpd.
(TestServer.prototype._startApache):
* tools/remote-cache-server.py: Pass PHP version info while launching httpd.
(start_httpd):
* tools/remote-server-relay.conf: Load php5 or php7 module conditionally.
* tools/sync-buildbot.js:
(syncLoop.const.makeTriggerable):
(syncLoop):

Canonical link: https://commits.webkit.org/192508@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221053 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-22 23:04:19 +00:00
Ryosuke Niwa 01559b166f Merge the latest version of Speedometer 2.0 to browserbench.org
Rubber-stamped by Joseph Pecoraro.

* Speedometer2.0: Replaced with PerformanceTests/Speedometer.
* Speedometer2.0/resources/benchmark-runner.js:
* Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/inline.b342d102ba4a53bf2002.bundle.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/main.779eb2f1ddbe23ac61c7.bundle.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/polyfills.2d45a4c73c85e24fe474.bundle.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/vendor.b4be818cb6d8028f9192.bundle.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js:
* Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js:
* Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js:
* Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js:
* Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css:
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/config/environment.js:
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js:
* Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js:
* Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.d43d2909.css: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.946269ff.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.677b45842d9f8b96e5b23c18969233b7.css: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.b0e835874bc8949670d1.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.84b2b4fceb74ab1f91f3.js: Removed.
* Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.a52517c5aa98e7fbea2e.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css.map: Removed.
* Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/store.js:



Canonical link: https://commits.webkit.org/192458@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221001 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-22 04:12:14 +00:00
Ross Kirsling cf3e903984 Add Sony to domain affiliations on team page
https://bugs.webkit.org/show_bug.cgi?id=175806

Patch by Ross Kirsling <ross.kirsling@sony.com> on 2017-08-21
Reviewed by Alex Christensen.

* wp-content/themes/webkit/team.php:

Canonical link: https://commits.webkit.org/192456@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220999 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-22 02:25:12 +00:00
Ryosuke Niwa 9b3fccb87b REGRESSION(r219640): Speedometer no longer runs on Safari 7
https://bugs.webkit.org/show_bug.cgi?id=175749

Reviewed by Joseph Pecoraro.

PerformanceTests:

Use regular string instead of template literal to make the script compatible with older versions of Safari.

* Speedometer/resources/benchmark-runner.js:
(BenchmarkRunner.prototype._runTest):

Websites/browserbench.org:

Fix the bug on browserbench.org.

* Speedometer/resources/benchmark-runner.js:
(BenchmarkRunner.prototype._runTest):


Canonical link: https://commits.webkit.org/192411@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-19 03:05:57 +00:00
Ryosuke Niwa 1aa3f7792e Number each section in ReadMe.md and add more clarifications
https://bugs.webkit.org/show_bug.cgi?id=175687

Rubber-stamped by Joseph Pecoraro.

Numbered each section and added more clarifications per issues Aakash encountered.

* ReadMe.md:



Canonical link: https://commits.webkit.org/192351@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220882 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-17 22:03:37 +00:00
Ryosuke Niwa db98284507 Build fix. Make the test work with the latest versions of node modules.
* server-tests/privileged-api-upload-file-tests.js:



Canonical link: https://commits.webkit.org/192348@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-17 21:23:46 +00:00
Filip Pizlo 753a4af6de Caging shouldn't have to use a patchpoint for adding
https://bugs.webkit.org/show_bug.cgi?id=175483

Reviewed by Mark Lam.
Source/JavaScriptCore:


Caging involves doing a Add(ptr, largeConstant). All of B3's heuristics for how to deal with
constants and associative operations dictate that you always want to sink constants. For example,
Add(Add(a, constant), b) always becomes Add(Add(a, b), constant). This is profitable because in
typical code, it reveals downstream optimizations. But it's terrible in the case of caging, because
we want the large constant (which is shared by all caging operations) to be hoisted. Reassociating to
sink constants obscures the constant in this case. Currently, moveConstants is not smart enough to
reassociate, so instead of sinking largeConstant, it tries (and often fails) to sink some other
constants instead. Without some hacks, this is a 5% Kraken regression and a 1.6% Octane regression.
It's not clear that moveConstants could ever be smart enough to rematerialize that constant and then
hoist it - that would require quite a bit of algebraic reasoning. But the only case we know of where
our current constant reassociation heuristics are wrong is caging. So, we can get away with some
hacks for just stopping B3's reassociation only in this specific case.

Previously, we achieved this by concealing the Add(ptr, largeConstant) inside a patchpoint. That's
OK, but patchpoints are expensive. They require a SharedTask instance. They require callbacks from
the backend, including during register allocation. And they cannot be CSE'd. We do want B3 to know
that if we cage the same pointer in two places, both places will compute the same value.

This patch improves the situation by introducing the Opaque opcode. This is handled by LowerToAir as
if it was Identity, but all prior phases treat it as an unknown pure unary idempotent operation. I.e.
they know that Opaque(x) == Opaque(x) and that Opaque(Opaque(x)) == Opaque(x). But they don't know
that Opaque(x) == x until LowerToAir. So, you can use Opaque exactly when you know that B3 will mess
up your code but Air won't. (Currently we know of no cases where Air messes things up on a large
enough scale to warrant new opcodes.)

This change is perf-neutral, but may start to help as I add more uses of caged() in the FTL. It also
makes the code a bit less ugly.

* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::shouldCopyPropagate):
(JSC::B3::Air::LowerToAir::lower):
* b3/B3Opcode.cpp:
(WTF::printInternal):
* b3/B3Opcode.h:
* b3/B3ReduceStrength.cpp:
* b3/B3Validate.cpp:
* b3/B3Value.cpp:
(JSC::B3::Value::effects const):
(JSC::B3::Value::key const):
(JSC::B3::Value::isFree const):
(JSC::B3::Value::typeFor):
* b3/B3Value.h:
* b3/B3ValueKey.cpp:
(JSC::B3::ValueKey::materialize const):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::caged):
* ftl/FTLOutput.cpp:
(JSC::FTL::Output::opaque):
* ftl/FTLOutput.h:

Websites/webkit.org:


Write documentation for the new Opaque opcode.

* docs/b3/intermediate-representation.html:



Canonical link: https://commits.webkit.org/192206@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-12 18:44:48 +00:00
Jonathan Davis 02df470f40 Fixed superscript rendering for blog posts
https://bugs.webkit.org/show_bug.cgi?id=175285

Reviewed by Filip Pizlo.

* wp-content/themes/webkit/style.css:
(sup): Added.


Canonical link: https://commits.webkit.org/192004@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-07 22:31:32 +00:00
James Craig 232bef82a0 2017-08-06 James Craig <jcraig@apple.com>
Update prefers-reduced-motion demos to link back to blog post
        https://bugs.webkit.org/show_bug.cgi?id=175251

        Unreviewed, added some cross links to older demo files.

        * blog-files/prefers-reduced-motion/axi.htm:
        * blog-files/prefers-reduced-motion/prm.htm:



Canonical link: https://commits.webkit.org/191981@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-06 23:24:17 +00:00
Jonathan Davis 44d6513c38 Fixed loading feature status page queries and anchor link URLs
https://bugs.webkit.org/show_bug.cgi?id=175156

Reviewed by Simon Fraser.

* wp-content/themes/webkit/status.php:


Canonical link: https://commits.webkit.org/191938@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220280 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-04 18:32:09 +00:00
Ryosuke Niwa 63049de8b0 Build fix. Fixed a typo. task.id() isn't a thing in this function.
* public/v3/models/test-group.js:
(TestGroup.createWithCustomConfiguration):



Canonical link: https://commits.webkit.org/191789@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220080 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-31 23:30:25 +00:00
Frédéric Wang 129d4a1286 Unreviewed, minor adjustments to the previous demo.
Patch by Frederic Wang <fwang@igalia.com> on 2017-07-26

* demos/frames/index.html: Added. Index page for the list of demos.
* demos/frames/sandboxing/index.html: Minor fixes.

Canonical link: https://commits.webkit.org/191679@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-26 14:23:21 +00:00
Frédéric Wang 448df68a40 Unreviewed, add demos (frame sandboxing and scrolling) for a blog post.
Patch by Frederic Wang <fwang@igalia.com> on 2017-07-26

* demos/frames/sandboxing/am-i-sandboxed.html: Added.
* demos/frames/sandboxing/framebusting-success.html: Added.
* demos/frames/sandboxing/framebusting-without-user-activation.html: Added.
* demos/frames/sandboxing/index.html: Added.
* demos/frames/scrollable-iframes.html: Added.
* demos/frames/scrollingElement.html: Added.

Canonical link: https://commits.webkit.org/191677@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-26 13:43:25 +00:00
Jiewen Tan 3505f74304 Unreviewed, add the final demo page for a WebCrypto API blog post
* demos/webcrypto/pbkdf2.html: Added.

Canonical link: https://commits.webkit.org/191502@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219693 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-20 17:18:56 +00:00
Jiewen Tan 996c38161c Unreviewed, add yet another demo page for a WebCrypto API blog post
* demos/webcrypto/aes-gcm.html:
* demos/webcrypto/alice.png: Added.
* demos/webcrypto/bob.png: Added.
* demos/webcrypto/ecdh.html: Added.

Canonical link: https://commits.webkit.org/191499@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219690 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-20 16:42:39 +00:00
Jiewen Tan ea6c9bee6c Unreviewed, add another demo page for a WebCrypto API blog post
* demos/webcrypto/aes-gcm.html: Added.
* demos/webcrypto/asynchronous-execution.html:
* demos/webcrypto/common.js: Added.

Canonical link: https://commits.webkit.org/191495@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219686 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-20 15:46:51 +00:00
Jiewen Tan 9e8ee57cf2 Unreviewed, add a demo page for a WebCrypto API blog post
* demos/webcrypto/asynchronous-execution-worker.js: Added.
* demos/webcrypto/asynchronous-execution.html: Added.

Canonical link: https://commits.webkit.org/191491@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-20 14:25:34 +00:00
Ryosuke Niwa 1adca3541e Merge r219640 into Speedometer 1.0.
* Speedometer/resources/benchmark-runner.js:
(BenchmarkRunner.prototype._writeMark):
(BenchmarkRunner.prototype._runTest):
(BenchmarkRunner.prototype._runTestAndRecordResults):


Canonical link: https://commits.webkit.org/191454@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219643 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-19 00:33:07 +00:00
Saam Barati 77ac766bb8 Fix ambiguous description text in ARES-6 about the data the benchmark measures
https://bugs.webkit.org/show_bug.cgi?id=174510

Rubber stamped by Filip Pizlo.

* ARES-6/about.html:


Canonical link: https://commits.webkit.org/191334@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-14 17:47:28 +00:00
Ryosuke Niwa dc8e2630f2 Another build fix.
* public/v3/components/chart-pane-base.js:
(ChartPaneBase.prototype._updateCommitLogViewer):



Canonical link: https://commits.webkit.org/191222@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-12 03:00:04 +00:00
Ryosuke Niwa 40ffbf5f0e Build fix. It looks like the code here is racy.
* public/v3/components/chart-pane-base.js:
(ChartPaneBase.prototype.configure):
(ChartPaneBase.prototype.setOpenRepository):



Canonical link: https://commits.webkit.org/191221@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-12 02:38:03 +00:00
Ryosuke Niwa ac6599906b Show the roots built by perf try bots on results page
https://bugs.webkit.org/show_bug.cgi?id=174305

Reviewed by Joseph Pecoraro.

Show build products created by a perf try bots so that we can download them for local testing.

* public/v3/components/test-group-revision-table.js:
(TestGroupRevisionTable.prototype._renderTable): Find the set of repositories for which a patch is applied.
Show build products for all commit sets for such a repository since when WebKit is built with a patch in
one configuration, the other configuration also needs to be built for consistency.
(TestGroupRevisionTable.prototype._buildCommitCell): Added the hyperlink for build products.
(TestGroupRevisionTable.prototype._buildFileInfo): Takes a string to override the file's label. Since all
build products made by bots tend to have the same filename, we show the label of "Build product" instead.
(TestGroupRevisionTable.prototype._mergeCellsWithSameCommitsAcrossRows): Fixed a bug that any entry with
a patch wasn't getting merged since it was comparing against the result commit set, which does not contain
the patch (only requested commit set contains a patch).


Canonical link: https://commits.webkit.org/191211@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-11 22:54:55 +00:00
Ryosuke Niwa 463edf873f Address Antti's review comment.
* public/v3/models/analysis-results.js:
(AnalysisResults.prototype.containsTest):


Canonical link: https://commits.webkit.org/191165@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219322 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-11 03:46:16 +00:00
Ryosuke Niwa 59a2a422fd A/B testing results page show results for the top-level tests instead of the one being analyzed
https://bugs.webkit.org/show_bug.cgi?id=174304

Reviewed by Antti Koivisto.

When a specific subtest is analyzed (e.g. Images subtest of MotionMark), then TestGroupResultsViewer
should expand and highlight that specific subtest instead of simply showing the top-level test's score.
This is especially misleading since AnalysisResultsViewer (stacking bars for each test group) uses
the score of the specific subtest being analyzed.

Fixed the bug by passing in the metric associated with the analysis task from AnalysisTaskPage to
TestGroupResultsViewer via AnalysisTaskTestGroupPane. Also made TestGroupResultsViewer.setAnalysisResults
auto-expand the tests that are ancestors of the specified metric. Without that, the test won't be shown
to the user until the ancestor tests are expanded by the user.

Also fixed the bug that we were always listing sub-tests regardless of whether they have results or not.
Since tests tend to change over time, we shouldn't show a test if it doesn't have any results associated.

* public/v3/components/test-group-results-viewer.js:
(TestGroupResultsViewer.prototype.setAnalysisResults): Expand the ancestor tests of the metric.
(TestGroupResultsViewer.prototype._buildRowsForTest): Exit early if this test doesn't have any results.
* public/v3/models/analysis-results.js:
(AnalysisResults.prototype.containsTest): Added.
* public/v3/pages/analysis-task-page.js:
(AnalysisTaskTestGroupPane.prototype.setAnalysisResults): Takes a metric to pass it to the results viewer.
(AnalysisTaskPage.prototype._assignTestResultsIfPossible):


Canonical link: https://commits.webkit.org/191164@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219321 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-11 03:45:00 +00:00
Ryosuke Niwa 0b99ef5b22 Safari 10.1 fails to upload a patch on perf try bots page
https://bugs.webkit.org/show_bug.cgi?id=174214

Reviewed by Chris Dumez.

Added the workaround to make the analysis task page work on Safari 10.1

* public/v3/components/instant-file-uploader.js:
(InstantFileUploader.prototype._uploadFiles): Convert files to an array since for-of doesn't work otherwise on Safari 10.1.
* public/v3/models/uploaded-file.js:
(UploadedFile._computeSHA256Hash): Fallback to crypto.webkitSubtle since crypto.subtle isn't available on Safari 10.1 or 11.


Canonical link: https://commits.webkit.org/191075@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-07 02:59:11 +00:00
Ryosuke Niwa 64182975dc Fix a typo pointed out by Andreas Kling.
* public/v3/components/instant-file-uploader.js:
(InstantFileUploader.prototype._uploadFiles):
* public/v3/models/uploaded-file.js:
(UploadedFile.fetchUploadedFileWithIdenticalHash): Renamed from fetchUnloadedFileWithIdenticalHash.


Canonical link: https://commits.webkit.org/190964@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219112 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-04 04:08:16 +00:00
Ryosuke Niwa b19d29b3a2 Add an admin page to manage uploaded files
https://bugs.webkit.org/show_bug.cgi?id=174089

Reviewed by Andreas Kling.

Add an admin page to see the disk usage per user as well as the total, and to prune any zombie files (ones marked
as deleted but aren't actually deleted in the filesystem).

* public/admin/files.php: Added.
(format_size): Added.
* public/include/admin-header.php:


Canonical link: https://commits.webkit.org/190945@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219093 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 21:16:01 +00:00
Ryosuke Niwa 2a5adb6296 Roots uploaded by bots don't get author specified properly
https://bugs.webkit.org/show_bug.cgi?id=174087

Reviewed by Andreas Kling.

When a root file is uploaded from the bot, we manually specify the remote user to upload_file_in_transaction.
However, this was getting ignored by create_uploaded_file_from_form_data since it was always calling
remote_user_name to get the user name off of $_SERVER.

Fixed the bug by passing in the user name from upload_file_in_transaction to create_uploaded_file_from_form_data.

* public/include/uploaded-file-helpers.php:
(create_uploaded_file_from_form_data): Take the remote user as an argument instead of calling remote_user_name.
(upload_file_in_transaction):
* server-tests/api-upload-root-tests.js: Updated an existing test cases to make sure root files' author is set.
(createTestGroupWihPatch): Manually override the author of a test group for testing.


Canonical link: https://commits.webkit.org/190944@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219092 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 21:14:52 +00:00
Ryosuke Niwa bd9e8f9e5b Prune unused uploaded files when the file quota is reached
https://bugs.webkit.org/show_bug.cgi?id=174086

Reviewed by Andreas Kling.

Made /privileged-api/uploaded-file and /api/upload-root automatically delete old uploaded files when
uploading a new file results in the file quota to be exceeded. Also added the notion of the total quota
to avoid running out of a disk when there are hundreds of users each uploading near their quota.

* config.json: Added a sample total disk quota of 100GB.
* public/include/uploaded-file-helpers.php:
(query_file_usage_for_user): Renamed from query_total_file_size.
(query_total_file_usage): Added.
(upload_file_in_transaction):
(delete_file): Added.
(prune_old_files): Added.
* server-tests/privileged-api-upload-file-tests.js: Added tests for deleting old uploaded files as well as
tests for the total quota.
* server-tests/resources/test-server.js:
(TestServer.prototype.testConfig): Added uploadTotalQuotaInMB to the test configuration.


Canonical link: https://commits.webkit.org/190943@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219091 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 21:13:42 +00:00
Jon Lee 3afacc6e2e Add a WebRTC example for a blog post
https://bugs.webkit.org/show_bug.cgi?id=174049

Reviewed by Youenn Fablet.

Example does a typical WebRTC video call, but uses canvas to do some image effects.
Image effects will last for 30 seconds.
After that time, the video stream is directly sent.
This illustrates using RTCPeerConnection, replaceTrack and canvas capture.

* blog-files/webrtc/pc-with-effects/LICENSE: Added.
* blog-files/webrtc/pc-with-effects/glfx.js: Added.
* blog-files/webrtc/pc-with-effects/index.html: Added.
* blog-files/webrtc/pc-with-effects/main.css: Added.
* blog-files/webrtc/pc-with-effects/main.js: Added.


Canonical link: https://commits.webkit.org/190895@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219040 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-01 04:53:14 +00:00
Ryosuke Niwa dab46ee9f6 UploadedFile should include the file extension in its url
https://bugs.webkit.org/show_bug.cgi?id=174009

Reviewed by Chris Dumez.

Some command line tools such as darwinup use the file extension to determine the file type.
Include the file extension in the URL of an uploaded file to make it work with these tools.

* public/include/uploaded-file-helpers.php:
(format_uploaded_file): Include the file extension.
* public/v3/models/uploaded-file.js:
(UploadedFile):
(UploadedFile.prototype.url): Return the URL with hthe file extension specified. /api/uploaded-file
already supports having the file extension specified.
* server-tests/tools-sync-buildbot-integration-tests.js: Updated test cases.
* unit-tests/buildbot-syncer-tests.js: Ditto.


Canonical link: https://commits.webkit.org/190842@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@218987 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-06-30 04:43:00 +00:00
Saam Barati 4550f689db Add a Object rest/spread test to the experimental features test page
https://bugs.webkit.org/show_bug.cgi?id=173947

Rubber stamped by Dean Jackson.

* experimental-features.html:



Canonical link: https://commits.webkit.org/190780@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@218904 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-06-29 00:08:46 +00:00
Carlos Alberto Lopez Perez ef2b23bbf5 pretty patch doesn't show image diffs with newer versions of git
https://bugs.webkit.org/show_bug.cgi?id=173691

A new security check added in git >= 2.3.3 causes it to abort
when the tool runs "git apply" to generate the images.
Detect if git supports the flag --unsafe-paths and pass it.

Reviewed by Darin Adler.

* PrettyPatch/PrettyPatch.rb:


Canonical link: https://commits.webkit.org/190594@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@218711 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-06-22 19:38:39 +00:00