| import './index'; |
| import fetchMock from 'fetch-mock'; |
| import { BinaryRPCRequest, BinaryRPCResponse } from '../rpc_types'; |
| import { BinaryPageSk } from './binary-page-sk'; |
| import { CodesizeScaffoldSk } from '../codesize-scaffold-sk/codesize-scaffold-sk'; |
| |
| const fakeRpcDelayMillis = 300; |
| |
| const fakeRPCResponse: BinaryRPCResponse = { |
| metadata: { |
| version: 1, |
| timestamp: '2022-02-15T23:57:57Z', |
| swarming_task_id: '59189d06df0e9611', |
| swarming_server: 'https://chromium-swarm.appspot.com', |
| task_id: 'rG2vO5FkQOODEHgHf7W8', |
| task_name: 'CodeSize-dm-Debian10-Clang-x86_64-Debug', |
| compile_task_name: 'Build-Debian10-Clang-x86_64-Debug', |
| binary_name: 'dm', |
| bloaty_cipd_version: 'version:1', |
| bloaty_args: ['build/dm', '-d', 'compileunits,symbols', '-n', '0', '--tsv'], |
| patch_issue: '', |
| patch_server: '', |
| patch_set: '', |
| repo: 'https://skia.googlesource.com/skia.git', |
| revision: '34e3b35eb460e8668bb063adeefdc1fed857d075', |
| commit_timestamp: '2022-02-15T23:42:43Z', |
| author: 'Alice (alice@google.com)', |
| subject: |
| '[codesize] Define more CodeSize tasks for testing purposes (both for CQ and waterfall).', |
| }, |
| rows: [ |
| // This is based on the first few hundred rows of production data on Aug 17 2022 |
| { name: 'ROOT', parent: '', size: 0 }, |
| { name: 'third_party', parent: 'ROOT', size: 0 }, |
| { name: 'third_party/externals', parent: 'third_party', size: 0 }, |
| { |
| name: 'third_party/externals/harfbuzz', |
| parent: 'third_party/externals', |
| size: 0, |
| }, |
| { |
| name: 'third_party/externals/harfbuzz/src', |
| parent: 'third_party/externals/harfbuzz', |
| size: 0, |
| }, |
| { |
| name: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| parent: 'third_party/externals/harfbuzz/src', |
| size: 0, |
| }, |
| { |
| name: 'OT::OffsetTo<>::sanitize<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 11221, |
| }, |
| { |
| name: 'OT::ArrayOf<>::sanitize<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 6835, |
| }, |
| { |
| name: 'OT::ArrayOf<>::sanitize_shallow()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 6421, |
| }, |
| { |
| name: 'hb_sanitize_context_t::try_set<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 4563, |
| }, |
| { |
| name: 'hb_sanitize_context_t::check_struct<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 4440, |
| }, |
| { |
| name: 'hb_sanitize_context_t::check_range<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 3649, |
| }, |
| { |
| name: 'OT::OffsetTo<>::neuter()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 3306, |
| }, |
| { |
| name: 'OT::hb_kern_machine_t<>::kern()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 3290, |
| }, |
| { |
| name: 'OT::hb_accelerate_subtables_context_t::dispatch<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 3264, |
| }, |
| { |
| name: 'OT::hb_accelerate_subtables_context_t::hb_applicable_t::init<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 3027, |
| }, |
| { |
| name: 'OT::Layout::GSUB_impl::Ligature<>::apply()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 2283, |
| }, |
| { |
| name: 'hb_sanitize_context_t::check_array<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 2001, |
| }, |
| { |
| name: 'OT::OffsetTo<>::operator()()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1845, |
| }, |
| { |
| name: 'OT::Layout::GPOS_impl::PairPosFormat2_4<>::apply()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1611, |
| }, |
| { |
| name: 'OT::Layout::GSUB_impl::Sequence<>::apply()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1461, |
| }, |
| { |
| name: 'hb_ot_map_t::apply<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1448, |
| }, |
| { |
| name: 'OT::OffsetTo<>::sanitize_shallow()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1350, |
| }, |
| { |
| name: 'OT::Layout::GPOS_impl::PairSet<>::apply()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1328, |
| }, |
| { |
| name: 'OT::Layout::GPOS_impl::CursivePosFormat1::apply()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1277, |
| }, |
| { |
| name: 'OT::hb_accelerate_subtables_context_t::apply_to<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1266, |
| }, |
| { |
| name: 'OT::Layout::GPOS_impl::MarkMarkPosFormat1_2<>::apply()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1084, |
| }, |
| { |
| name: 'AAT::KerxTable<>::apply()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1071, |
| }, |
| { |
| name: 'OT::match_input<>()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1048, |
| }, |
| { |
| name: 'OT::Layout::GPOS_impl::MarkBasePosFormat1_2<>::apply()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1033, |
| }, |
| { |
| name: 'OT::Layout::GPOS_impl::MarkLigPosFormat1_2<>::apply()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 1003, |
| }, |
| { |
| name: 'OT::Layout::GPOS_impl::PairPosFormat2_4<>::sanitize()', |
| parent: 'third_party/externals/harfbuzz/src/hb-ot-layout.cc', |
| size: 980, |
| }, |
| { name: 'skia', parent: 'ROOT', size: 0 }, |
| { name: 'skia/src', parent: 'skia', size: 0 }, |
| { name: 'skia/src/core', parent: 'skia/src', size: 0 }, |
| { name: 'skia/src/core/SkOpts.cpp', parent: 'skia/src/core', size: 0 }, |
| { |
| name: '(anonymous namespace)::xfer_aa<>()', |
| parent: 'skia/src/core/SkOpts.cpp', |
| size: 7137, |
| }, |
| { |
| name: '(anonymous namespace)::Sk4pxXfermode<>::xfer32()', |
| parent: 'skia/src/core/SkOpts.cpp', |
| size: 5972, |
| }, |
| { |
| name: 'sse2::interpret_skvm()', |
| parent: 'skia/src/core/SkOpts.cpp', |
| size: 5793, |
| }, |
| { |
| name: '_ZN4sse24lowpL17bilerp_clamp_8888EmPPvmmDv8_tS3_S3_S3_S3_S3_S3_S3_', |
| parent: 'skia/src/core/SkOpts.cpp', |
| size: 2518, |
| }, |
| { |
| name: 'sse2::blit_mask_d32_a8()', |
| parent: 'skia/src/core/SkOpts.cpp', |
| size: 1804, |
| }, |
| { |
| name: 'skia/src/core/SkPictureData.cpp', |
| parent: 'skia/src/core', |
| size: 0, |
| }, |
| { |
| name: 'SkPictureData::parseBuffer()', |
| parent: 'skia/src/core/SkPictureData.cpp', |
| size: 1981, |
| }, |
| { |
| name: 'SkPictureData::readBuffer()', |
| parent: 'skia/src/core/SkPictureData.cpp', |
| size: 156, |
| }, |
| ], |
| }; |
| |
| fetchMock.post( |
| (url, opts) => { |
| const request = JSON.parse(opts.body?.toString() || '') as BinaryRPCRequest; |
| return ( |
| url === '/rpc/binary/v1' && |
| request.commit === fakeRPCResponse.metadata.revision && |
| request.patch_issue === fakeRPCResponse.metadata.patch_issue && |
| request.patch_set === fakeRPCResponse.metadata.patch_set && |
| request.binary_name === fakeRPCResponse.metadata.binary_name && |
| request.compile_task_name === fakeRPCResponse.metadata.compile_task_name |
| ); |
| }, |
| () => |
| new Promise((resolve) => |
| setTimeout( |
| () => resolve(JSON.stringify(fakeRPCResponse)), |
| fakeRpcDelayMillis |
| ) |
| ) |
| ); |
| |
| const queryString = |
| `?commit=${fakeRPCResponse.metadata.revision}&` + |
| `patch_issue=${fakeRPCResponse.metadata.patch_issue}&` + |
| `patch_set=${fakeRPCResponse.metadata.patch_set}&` + |
| `binary_name=${fakeRPCResponse.metadata.binary_name}&` + |
| `compile_task_name=${fakeRPCResponse.metadata.compile_task_name}`; |
| window.history.pushState(null, '', queryString); |
| |
| // Add the page under test only after all RPCs are mocked out. |
| const scaffold = new CodesizeScaffoldSk(); |
| document.body.appendChild(scaffold); |
| scaffold.appendChild(new BinaryPageSk()); |