{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":642159234,"defaultBranch":"main","name":"MotionMark","ownerLogin":"WebKit","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-05-18T00:37:31.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6458?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1704824761.0","currentOid":""},"activityList":{"items":[{"before":"f3034d6f7754eefcebd5df76657082344fc629ee","after":"f1c7edb54b8d5aaa47303a577487a0a6bbe0e144","ref":"refs/heads/main","pushedAt":"2024-04-25T20:04:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Frame rate detection on MotionMark occasionally sees older devices as 90 fps instead of 60\nhttps://github.com/WebKit/MotionMark/issues/50\nrdar://127012351\n\nTo get the target frame rate we sample 300 rAFs and we get the average of their\nframe rates. We calculate the average incrementally using some sort of exponential\ndecay. The average starts very small but keeps increasing until it reaches the\nactual target frame rate and it is supposed to stay unchanged much. Then we compare\nthe final average rate with predefined frame rates and get the closest one.\n\nThe purpose of this incremental calculation was to show the target frame rate\nbeing calculated in the detectionProgressElement in the developer page.\n\nIn addition to having the incremental average very small for more than 100 frames,\nthe bigger problem is this incremental average calculation gives more weight to\nthe last frame. And if it is considerably large for any reason, the final average\nwill be wildly inaccurate.\n\nThe fix is to simplify the calculations:\n\n1. For count == 0: The firstTimeStamp will be recorded and and we won't update\n the detectionProgressElement.\n\n2. For count > 0:\n averageFrameLength = (timestamp - firstTimeStamp) / count;\n averageFrameRate = 1000 / averageFrameLength;","shortMessageHtmlLink":"Frame rate detection on MotionMark occasionally sees older devices as…"}},{"before":"3f6115f9ea26fc74e723cb2eb55580dd93bac3d9","after":"f3034d6f7754eefcebd5df76657082344fc629ee","ref":"refs/heads/main","pushedAt":"2024-04-15T17:08:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"x","shortMessageHtmlLink":"x"}},{"before":"d5d550272ea2afe1b5707c0c4b2223ede54b4827","after":"3f6115f9ea26fc74e723cb2eb55580dd93bac3d9","ref":"refs/heads/main","pushedAt":"2024-03-14T20:13:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Fixes #43: Initialize canvas size when running benchmarks directly","shortMessageHtmlLink":"Fixes #43: Initialize canvas size when running benchmarks directly"}},{"before":"c52acd4c645780fd77cdbbd572750a5abfee1f7d","after":"5d9c88136d59c11daf78d539c73e4e3e88c091ab","ref":"refs/heads/motionmark-release-1.3","pushedAt":"2024-01-10T20:51:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Add more changes to the 1.3 change list in the about page","shortMessageHtmlLink":"Add more changes to the 1.3 change list in the about page"}},{"before":"869e97cbcf2468bb84e9d3a286c841eaa8b834ff","after":"d5d550272ea2afe1b5707c0c4b2223ede54b4827","ref":"refs/heads/main","pushedAt":"2024-01-10T20:49:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Add more changes to the 1.3 change list in the about page","shortMessageHtmlLink":"Add more changes to the 1.3 change list in the about page"}},{"before":"37c610115c8c3fae8a74a18305727064c1fd4edc","after":"869e97cbcf2468bb84e9d3a286c841eaa8b834ff","ref":"refs/heads/main","pushedAt":"2024-01-10T19:53:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Fixed complexity runs throw an error\n\nThe `Controller` base class was trying to call `_previousFrameComplexity()` which\nwas only implemented on the `RampController` subclass.\n\nSince the `Controller` base class allocates the `Samples` object and records samples,\nwe know that all subclasses use the same sample format, so we can move the helper\nfunctions that access sample data into the `Controller` class.","shortMessageHtmlLink":"Fixed complexity runs throw an error"}},{"before":"046711af045128e3e54114490429d37d1418c72c","after":"c52acd4c645780fd77cdbbd572750a5abfee1f7d","ref":"refs/heads/motionmark-release-1.3","pushedAt":"2024-01-09T18:23:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Update the version number to 1.3","shortMessageHtmlLink":"Update the version number to 1.3"}},{"before":null,"after":"046711af045128e3e54114490429d37d1418c72c","ref":"refs/heads/motionmark-release-1.3","pushedAt":"2024-01-09T18:18:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Update the version number to 1.3","shortMessageHtmlLink":"Update the version number to 1.3"}},{"before":"37c610115c8c3fae8a74a18305727064c1fd4edc","after":"046711af045128e3e54114490429d37d1418c72c","ref":"refs/heads/apple-tentative-final-1.3","pushedAt":"2024-01-09T06:15:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Update the version number to 1.3","shortMessageHtmlLink":"Update the version number to 1.3"}},{"before":"a37f53941c2b71645f4f74de90c2bc321e62856c","after":"37c610115c8c3fae8a74a18305727064c1fd4edc","ref":"refs/heads/apple-tentative-final-1.3","pushedAt":"2024-01-09T06:11:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Ignore mutation frames when scoring\n\nThe RampController works by repeatedly changing the scene complexity, while measuring some\nnumber of animated frames at each complexity level. Currently, it tracks the duration of\nboth the mutation frames, and the animation frames, and both contribute to the score.\n\nThis has two issues: first, it increases noise in the results because there are two types\nof frames, and the mutation frames generally take longer. This noise can throw off the\nregression computation used to compute the score.\n\nSecond, it's not the intent of this benchmark to measure DOM mutation performance.\nMotionMark is focused on animation, so it makes sense to only measure the animation\nframes.\n\nThis change is implemented by having RampController keep track of which are the first\nframes after a complexity change, via `this._previousFrameComplexity`. Each frame is\nannotated as a \"mutation\" frame or an \"animation\" frame, which is stored as the first item\nin each sample.\n\nAt the two locations where we compute Regressions, we filter out the mutation frames so\nthat only animation frames contribute to the regression computations, and therefore the\nfinal score.\n\nAll frames are present in the output JSON, with \"m\" or \"a\" annotations. Mutation frames\nare colored gray in the complexity graph.","shortMessageHtmlLink":"Ignore mutation frames when scoring"}},{"before":"c401061575ae378480e7b2030028cf73515a8519","after":"37c610115c8c3fae8a74a18305727064c1fd4edc","ref":"refs/heads/main","pushedAt":"2024-01-09T06:09:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Ignore mutation frames when scoring\n\nThe RampController works by repeatedly changing the scene complexity, while measuring some\nnumber of animated frames at each complexity level. Currently, it tracks the duration of\nboth the mutation frames, and the animation frames, and both contribute to the score.\n\nThis has two issues: first, it increases noise in the results because there are two types\nof frames, and the mutation frames generally take longer. This noise can throw off the\nregression computation used to compute the score.\n\nSecond, it's not the intent of this benchmark to measure DOM mutation performance.\nMotionMark is focused on animation, so it makes sense to only measure the animation\nframes.\n\nThis change is implemented by having RampController keep track of which are the first\nframes after a complexity change, via `this._previousFrameComplexity`. Each frame is\nannotated as a \"mutation\" frame or an \"animation\" frame, which is stored as the first item\nin each sample.\n\nAt the two locations where we compute Regressions, we filter out the mutation frames so\nthat only animation frames contribute to the regression computations, and therefore the\nfinal score.\n\nAll frames are present in the output JSON, with \"m\" or \"a\" annotations. Mutation frames\nare colored gray in the complexity graph.","shortMessageHtmlLink":"Ignore mutation frames when scoring"}},{"before":"da952728b532387c1d93789f36a44115e2d3cb84","after":"c401061575ae378480e7b2030028cf73515a8519","ref":"refs/heads/main","pushedAt":"2024-01-09T03:35:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Simplify regression computation\n\nThe Regression class took index and function arguments to extract complexity and frame\nlength from the supplied data, which makes it hard to adjust in the face of frame skipping\nwhich will come in a future patch.\n\nSimplify by having the Regression class operate on a self-contained Array of x,y values\n(here, complexity and frame length). This also allows for removal of the complex logic\nthat tracks if it's iterating forwards or backwards.\n\nThe two callers, in `RampController` and `calculateScore()`, build the input Array\nby copying out of their respective data stores.\n\nThere should be no behavior change.","shortMessageHtmlLink":"Simplify regression computation"}},{"before":"b9253e7f262b545164fa6b996f6316542452af83","after":"da952728b532387c1d93789f36a44115e2d3cb84","ref":"refs/heads/main","pushedAt":"2024-01-08T23:48:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"The first frame of each ramp has an erroneously long frame duration\n\n`RampController.didFinishInterval()` is called before `Controller.update()`\ncalls `this._sampler.record()`. This results in _rampStartIndex being off by one,\npointing to the frame before start of the ramp, which in turn causes us to compute\na long frame duration for this frame. This long frame feeds into the ramp controller\nregression computation, throwing it off slightly, and adding noise.\n\nFix by having `Controller.update()` call `_sampler.record()` before it calls\n`didFinishInterval()`, which requires calling `_sampler.record()` in each of\nthe three code paths.","shortMessageHtmlLink":"The first frame of each ramp has an erroneously long frame duration"}},{"before":"d8685021ab4ffcd70f2bad1bbb24cac0adc96a79","after":"b9253e7f262b545164fa6b996f6316542452af83","ref":"refs/heads/main","pushedAt":"2024-01-08T23:43:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Clarify sample indexing in main.js\n\nUse named constants to index into the `samples` data, instead of inscrutable\n`samples[1][i]` etc.\n\nUse `sampleTimeIndex` etc for values used to index into `samples` data.\nUse `processedSampleTimeIndex` etc for values used to build `controllerSamples`.","shortMessageHtmlLink":"Clarify sample indexing in main.js"}},{"before":"d51d4b2d7556cf24d9be22e186b192258bb00bf6","after":"d8685021ab4ffcd70f2bad1bbb24cac0adc96a79","ref":"refs/heads/main","pushedAt":"2024-01-08T23:28:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Fix the frame rate axis of the time graph\n\nThe time graph right-hand Y scale (frame rate) currently has a lower bound of 30fps,\nbut the complexity graph has a lower bound of 15fps. Fix the time graph to use the\nsame lower bound, so that full ramps are visible.","shortMessageHtmlLink":"Fix the frame rate axis of the time graph"}},{"before":null,"after":"a37f53941c2b71645f4f74de90c2bc321e62856c","ref":"refs/heads/apple-tentative-final-1.3","pushedAt":"2024-01-05T23:18:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Ignoring mutation frames when scoring\n\nThe RampController works by repeatedly changing the scene complexity, while\nmeasuring some number of animated frames at each complexity level. Currently,\nit tracks the duration of both the mutation frames, and the animation frames,\nand both contribute to the score.\n\nThis has two issues: first, it increases noise in the results because there\nare two types of frames, and the mutation frames generally take longer. This\nnoise can throw off the regression computation used to compute the score.\n\nSecond, it's not the intent of this benchmark to measure DOM mutation performance.\nMotionMark is focused on animation, so it makes sense to only measure the\nanimation frames.\n\nThis change ignores the mutation frames for the purpose of scoring.","shortMessageHtmlLink":"Ignoring mutation frames when scoring"}},{"before":"2b2e9d4e89dbd83922e7960872e8ad5f2d23d043","after":"d51d4b2d7556cf24d9be22e186b192258bb00bf6","ref":"refs/heads/main","pushedAt":"2024-01-05T22:16:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Update the About page and add a non-60fps warning on the front page.\n\nUpdate the About page to suggest changing the display refresh frequency to 60fps\nif comparing browsers.\n\nRemove Focus from the list of subtests described.\n\nAdd the full list of 1.3 changes, linking to GitHub commits.\n\nOn the front page, if frame-rate detection detects a non-60fps rate, fix\nthe label below the Run button to suggest changing the display refresh rate.","shortMessageHtmlLink":"Update the About page and add a non-60fps warning on the front page."}},{"before":"465dd49026a40a7bd8d30d64a264492165c711e8","after":"2b2e9d4e89dbd83922e7960872e8ad5f2d23d043","ref":"refs/heads/main","pushedAt":"2024-01-05T19:04:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"On faster machines, the Multiply test can max out and stop producing useful results.\n\nf5d127cff37d174599ab4e954a6ebfbb7787aeb8 increased the number of rows to 55, but\ntesting shows that 68 is a better value to leave some headroom for future faster\nhardware and software.","shortMessageHtmlLink":"On faster machines, the Multiply test can max out and stop producing …"}},{"before":"c0a884c2df3287362a126484cd8c07c940015463","after":"465dd49026a40a7bd8d30d64a264492165c711e8","ref":"refs/heads/main","pushedAt":"2024-01-05T18:57:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Make the 'slope' profile the default profile.\n\nThe 'flat' profile was added back in https://commits.webkit.org/177081@main to work around issues in a test that is no longer used.\n\nThe consensus is that the 'flat' profile can generate bad estimated results. Remove this as a fallback profile.\n\nFixes #32","shortMessageHtmlLink":"Make the 'slope' profile the default profile."}},{"before":"ff00967f5d6e92624d4e50e92f719a5ad7de95b7","after":"c0a884c2df3287362a126484cd8c07c940015463","ref":"refs/heads/main","pushedAt":"2024-01-05T18:51:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Automatic frame rate detection\n\nFrame rate detection was added in this commit:\nhttps://github.com/WebKit/MotionMark/commit/85ca394752860796c5fde10145921a656c398660\nbut in a way that only worked in developer.html, and had various bugs.\n\nThis change makes automatic frame rate detection work in the same way when the benchmark is run from\nindex.html and developer.html. The `determineFrameRate` function is moved to\n`window.benchmarkController`, and called from the `initialize` functions in both cases; code is\nadded so that the button to run the benchmark is disabled until detection is complete; a label shows\nthe detected fps, or an error message in the event of failure.\n\nFor historical reasons, `developer.html` initialized `frame-rate` to 5/6 of `system-frame-rate`,\nresulting in a targetFPS of 50 when run from `developer.html`, which was different from the\n60fps target when run normally. Remove this so that targetFPS always matches system frame rate.\n\nThere was a lot of messiness in how targetFrameRate was propagated through the benchmark, and the\nanalysis functions, with lots of `|| 60` fallbacks. This change removes all those fallbacks, making\nerrors obvious when we would have silently fallen back to 60. So `options[\"frame-rate\"]` and\n`options[\"system-frame-rate\"]` should always be defined. (`system-frame-rate` only differs from\n`frame-rate` if the user makes changes in developer.html.)\n\nThe analysis functions use `targetFPS` everywhere. `calculateScore` had an insidious bug where we're\ntry to read `_targetFrameRate` off the wrong `this` object.\n\nWhen importing an older JS file that does not contain any frame-rate data, assume 60fps (and log).","shortMessageHtmlLink":"Automatic frame rate detection"}},{"before":"7a2dc1942532d7c8713e05e2a4f5450c039fe2f4","after":"99d5eb8ca8d52e407088e5cccb80b2fa53e64a61","ref":"refs/heads/apple-tentative-1.3","pushedAt":"2024-01-05T18:38:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Make the 'slope' profile the default profile.\n\nThe 'flat' profile was added back in https://commits.webkit.org/177081@main to work around issues in a test that is no longer used.\n\nThe consensus is that the 'flat' profile can generate bad estimated results. Remove this as a fallback profile.\n\nFixes #32","shortMessageHtmlLink":"Make the 'slope' profile the default profile."}},{"before":"3090053c0fca81a9feb037075ef934275c690f3e","after":"ff00967f5d6e92624d4e50e92f719a5ad7de95b7","ref":"refs/heads/main","pushedAt":"2024-01-05T18:34:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Fix instability in the Design subtest\n\nThe Design subtest projects out copies of a `` along a ray, where the step between copies is\nconstant, so the longest distance increases with test complexity. At higher complexities, this\nresults in clipping at the document boundary.\n\nThis clipping makes rendering additional copies cheap (since they are clipped out), which can result\nin the test computing artificially high complexities. This results in noisy or inaccurate test\nscores.\n\nFix by using a max distance computed from the height of the template element, and then spacing\nout the copies out to that distance. This ensures that all copies are inside the viewport. Adjust\nthe layout, shrinking the table vertically a little so there's more space for copies above and\nbelow, where it tends to clip.\n\nhttps://github.com/WebKit/MotionMark/pull/24","shortMessageHtmlLink":"Fix instability in the Design subtest"}},{"before":"9edd41ad33d24cc10b60576b8eb9626178f66122","after":"3090053c0fca81a9feb037075ef934275c690f3e","ref":"refs/heads/main","pushedAt":"2024-01-04T23:53:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Make the 'Paths' test workload more consistent\n\nThis test fixes a gradual change in the number of points having isSplit=true\nfrom 5% to 50% of points by starting with 50% of points with isSplit=true.\n\nFixes #30","shortMessageHtmlLink":"Make the 'Paths' test workload more consistent"}},{"before":"1613258d75ad67d7efa7cf596b3110f61e53e7b0","after":"7a2dc1942532d7c8713e05e2a4f5450c039fe2f4","ref":"refs/heads/apple-tentative-1.3","pushedAt":"2024-01-04T23:50:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Make the 'Paths' test workload more consistent\n\nThis test fixes a gradual change in the number of points having isSplit=true\nfrom 5% to 50% of points by starting with 50% of points with isSplit=true.\n\nFixes #30","shortMessageHtmlLink":"Make the 'Paths' test workload more consistent"}},{"before":"f7e7ee3cd683b5d1715f60f1a652224a9c4c72d4","after":"9edd41ad33d24cc10b60576b8eb9626178f66122","ref":"refs/heads/main","pushedAt":"2024-01-04T23:49:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Use 'display' style as the default visibility property for the Multiply test.\n\nThe Multiply test currently supports three different visibility property\noptions: opacity, display, visibility. The default behavior with no option\nspecified is to alternate between all three.\n\nThis change makes the 'display' property the default 'display'\n\nhttps://github.com/WebKit/MotionMark/pull/29","shortMessageHtmlLink":"Use 'display' style as the default visibility property for the Multip…"}},{"before":"de8ab946625934503d4c5022f620fd015dc52944","after":null,"ref":"refs/heads/revert-29-multiply_visibility_display","pushedAt":"2024-01-04T23:49:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"}},{"before":null,"after":"de8ab946625934503d4c5022f620fd015dc52944","ref":"refs/heads/revert-29-multiply_visibility_display","pushedAt":"2024-01-04T23:43:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Revert \"Use 'display' style as the default visibility property for the Multiply test.\"\n\nThis reverts commit 1613258d75ad67d7efa7cf596b3110f61e53e7b0.","shortMessageHtmlLink":"Revert \"Use 'display' style as the default visibility property for th…"}},{"before":"655c569c743dc3092102cf5c759b1d446105a74b","after":"1613258d75ad67d7efa7cf596b3110f61e53e7b0","ref":"refs/heads/apple-tentative-1.3","pushedAt":"2024-01-04T23:42:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Use 'display' style as the default visibility property for the Multiply test.\n\nThe Multiply test currently supports three different visibility property\noptions: opacity, display, visibility. The default behavior with no option\nspecified is to alternate between all three.\n\nThis change makes the 'display' property the default 'display'","shortMessageHtmlLink":"Use 'display' style as the default visibility property for the Multip…"}},{"before":"e15bbf1e075007a3e20d1bd56a97b80b812c48b8","after":"655c569c743dc3092102cf5c759b1d446105a74b","ref":"refs/heads/apple-tentative-1.3","pushedAt":"2023-09-15T18:59:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Fix iOS orientation detection\n\ndeveloper.html and index.html used a different class name for the \"Please rotate\nyour device\" tag, and the start button. This caused the JS to throw exceptions when\nrunning the orientation detection code.\n\nSo standardize these classes and ids between developer.html and index.html.","shortMessageHtmlLink":"Fix iOS orientation detection"}},{"before":"1e74ae74a0a2cb646ecc210b27787ef6dca7cc90","after":"f7e7ee3cd683b5d1715f60f1a652224a9c4c72d4","ref":"refs/heads/main","pushedAt":"2023-09-15T18:58:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"smfr","name":"Simon Fraser","path":"/smfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20968?s=80&v=4"},"commit":{"message":"Fix iOS orientation detection\n\ndeveloper.html and index.html used a different class name for the \"Please rotate\nyour device\" tag, and the start button. This caused the JS to throw exceptions when\nrunning the orientation detection code.\n\nSo standardize these classes and ids between developer.html and index.html.","shortMessageHtmlLink":"Fix iOS orientation detection"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOosqFQA","startCursor":null,"endCursor":null}},"title":"Activity · WebKit/MotionMark"}