From f2dd44083e9bec0af220d47e9aa3791527212667 Mon Sep 17 00:00:00 2001 From: CosmoX Date: Wed, 28 Oct 2026 23:23:49 -0700 Subject: [PATCH 1/3] Reduce renderer payload and optimize everyday snippet interactions --- app/containers/appContainer/index.js | 11 +- app/containers/codeArea/index.js | 44 +++++- app/containers/compatPanel/index.js | 4 +- app/containers/gistEditor/index.js | 15 +- app/containers/gistEditor/index.scss | 11 ++ app/containers/gistEditor/viewport.js | 11 ++ app/containers/gistEditorForm/index.js | 27 ++-- .../navigationPanelDetails/index.js | 148 ++++++++---------- app/containers/searchPage/index.js | 17 +- app/containers/snippet/index.js | 2 +- app/renderFixtures.js | 56 ++++++- configs/loaders/woff2Only.js | 18 +++ docs/screenshots/performance-everyday.png | Bin 0 -> 291837 bytes electron-builder.js | 22 +++ index.html | 2 - tests/configs/electronBuilder.test.js | 13 ++ tests/configs/woff2Only.test.js | 37 +++++ tests/containers/codeAreaLazyRenderer.test.js | 119 ++++++++++++++ tests/containers/compatPanel.test.js | 18 +++ tests/containers/criticalFlow.test.js | 106 +++++++++++++ tests/containers/editorViewport.test.js | 17 ++ tests/smoke/electron-packaged-smoke.js | 20 +++ tests/smoke/electron-render-smoke-main.js | 95 +++++++++++ tests/smoke/electron-render-smoke.js | 26 +++ webpack.config.js | 4 +- 25 files changed, 722 insertions(+), 121 deletions(-) create mode 100644 app/containers/gistEditor/viewport.js create mode 100644 configs/loaders/woff2Only.js create mode 100644 docs/screenshots/performance-everyday.png create mode 100644 tests/configs/woff2Only.test.js create mode 100644 tests/containers/codeAreaLazyRenderer.test.js create mode 100644 tests/containers/criticalFlow.test.js create mode 100644 tests/containers/editorViewport.test.js diff --git a/app/containers/appContainer/index.js b/app/containers/appContainer/index.js index 4683fc68..b39359e2 100644 --- a/app/containers/appContainer/index.js +++ b/app/containers/appContainer/index.js @@ -4,12 +4,11 @@ import { connect } from 'react-redux' import electronBridge from '../../utilities/electronBridge' import { updateUpdateAvailableBarStatus } from '../../actions/index' import AboutPage from '../aboutPage' -import Dashboard from '../dashboard' import FindInPage, { isFindInPageAvailable } from '../findInPage' import LoginPage from '../loginPage' import NavigationPanel from '../navigationPanel' import NavigationPanelDetails from '../navigationPanelDetails' -import React, { Component } from 'react' +import React, { Component, lazy, Suspense } from 'react' import SearchPage from '../searchPage' import SnippetPanel from '../snippetPanel' import { Pane, SplitPane } from 'react-split-pane' @@ -20,6 +19,7 @@ import './index.scss' import './scrollbar.scss' const conf = electronBridge.config +const Dashboard = lazy(() => import(/* webpackChunkName: "dashboard" */ '../dashboard')) const themeManager = new ThemeManager() themeManager.setTheme(conf.get('theme')) @@ -129,9 +129,12 @@ export class AppContainer extends Component { } renderDashboard () { - const { updateDashboardStatus } = this.props + const { dashboardModalStatus, updateDashboardStatus } = this.props + if (dashboardModalStatus !== 'ON') return null return ( - + + + ) } diff --git a/app/containers/codeArea/index.js b/app/containers/codeArea/index.js index 35289610..c85d5f7f 100644 --- a/app/containers/codeArea/index.js +++ b/app/containers/codeArea/index.js @@ -1,7 +1,6 @@ import HighlightJS from 'highlight.js' import hljsDefineSolidity from 'highlightjs-solidity' import hljsDefineGraphQL from 'highlightjs-graphql' -import AsciiDoc from '../../utilities/asciidoc' import Markdown from '../../utilities/markdown' import React, { Component } from 'react' import electronBridge from '../../utilities/electronBridge' @@ -63,11 +62,15 @@ resolveHighlightLanguage(hljsDefineGraphQL)(HighlightJS) // register graphql to export default class CodeArea extends Component { constructor (props) { super(props) + this.state = { asciiDoc: null } + this.isMountedForRendering = false this.codeAreaNode = null this.handleMarkdownImageError = this.handleMarkdownImageError.bind(this) } componentDidMount () { + this.isMountedForRendering = true + this.loadAsciiDocIfNeeded() if (this.codeAreaNode) { this.codeAreaNode.addEventListener('error', this.handleMarkdownImageError, true) } @@ -75,15 +78,32 @@ export default class CodeArea extends Component { } componentDidUpdate () { + this.loadAsciiDocIfNeeded() this.initializeMarkdownImageFallbacks() } componentWillUnmount () { + this.isMountedForRendering = false if (this.codeAreaNode) { this.codeAreaNode.removeEventListener('error', this.handleMarkdownImageError, true) } } + loadAsciiDocIfNeeded () { + const { filename, language } = this.props + if (adaptedLanguage(filename, language) !== 'AsciiDoc' || this.asciiDocLoad) return this.asciiDocLoad + + // The converter is large; ordinary snippets should not initialize it. + // Render the current props after loading, so switching snippets cannot + // display an earlier snippet's asynchronously generated HTML. + this.asciiDocLoad = import(/* webpackChunkName: "asciidoc" */ '../../utilities/asciidoc') + .then(module => { + if (this.isMountedForRendering) this.setState({ asciiDoc: module.default }) + }) + .catch(err => logger.error(`Failed to load AsciiDoc renderer with err ${err}`)) + return this.asciiDocLoad + } + initializeMarkdownImageFallbacks () { if (!this.codeAreaNode) return @@ -230,6 +250,7 @@ export default class CodeArea extends Component { } return `
${result.html}
` } catch (err) { + this.renderFailed = true logger.error(`Failed to render Jupyter Notebook content with err ${err}`) return this.createHighlightedCodeBlock(content, language, kTabLength) } @@ -240,9 +261,11 @@ export default class CodeArea extends Component { } createAsciiDocCodeBlock (content, language, kTabLength) { + if (!this.state.asciiDoc) return this.createHighlightedCodeBlock(content, language, kTabLength) try { - return `
${AsciiDoc.render(content)}
` + return `
${this.state.asciiDoc.render(content)}
` } catch (err) { + this.renderFailed = true logger.error(`Failed to render AsciiDoc content with err ${err}`) return this.createHighlightedCodeBlock(content, language, kTabLength) } @@ -277,8 +300,16 @@ export default class CodeArea extends Component { return `
${contentTable}
` } - renderCodeArea (filename, content, lang, kTabLength, siblingFiles) { + getRenderedContent (filename, content, lang, kTabLength, siblingFiles) { + // Keep only this component's most recent result. Callback changes and + // unrelated UI updates must not reparse Markdown, highlight code, or make + // synchronous notebook IPC calls for unchanged content. + const inputs = [filename, content, lang, kTabLength, siblingFiles, this.state.asciiDoc] + if (this.renderedContent && inputs.every((value, index) => value === this.renderedContent.inputs[index])) { + return this.renderedContent.html + } const language = adaptedLanguage(filename, lang) + this.renderFailed = false let htmlContent = '' switch (language) { case 'Jupyter Notebook': @@ -293,6 +324,13 @@ export default class CodeArea extends Component { default: htmlContent = this.createHighlightedCodeBlock(content, language, kTabLength) } + // Preserve retry behavior for transient renderer/IPC failures. + this.renderedContent = this.renderFailed ? null : { inputs, html: htmlContent } + return htmlContent + } + + renderCodeArea (filename, content, lang, kTabLength, siblingFiles) { + const htmlContent = this.getRenderedContent(filename, content, lang, kTabLength, siblingFiles) return (
{ this.codeAreaNode = node } } diff --git a/app/containers/compatPanel/index.js b/app/containers/compatPanel/index.js index 14ed18b8..a14a89c6 100644 --- a/app/containers/compatPanel/index.js +++ b/app/containers/compatPanel/index.js @@ -38,10 +38,10 @@ function Body (props) { } function Collapse (props) { - const { children, className, in: expanded, ...elementProps } = props + const { children, className, in: expanded, unmountOnExit = false, ...elementProps } = props return h('div', Object.assign({}, elementProps, { className: classNames('collapse', expanded && 'in', className) - }), children) + }), expanded || !unmountOnExit ? children : null) } Panel.Heading = Heading diff --git a/app/containers/gistEditor/index.js b/app/containers/gistEditor/index.js index f1e37cdf..79239379 100644 --- a/app/containers/gistEditor/index.js +++ b/app/containers/gistEditor/index.js @@ -149,12 +149,14 @@ import './index.scss' import electronBridge from '../../utilities/electronBridge' import { getEditorTheme } from '../../utilities/themeManager' +import { needsBoundedViewport } from './viewport' const { createMarkdownImageReference, getFilesFromTransfer } = require('../../utilities/imageAttachments') const conf = electronBridge.config const highlightTheme = getEditorTheme(conf.get('theme')) +const configuredEditorOptions = conf.get('editor') || {} const defaultOptions = Object.assign({}, { theme: highlightTheme, lineNumbers: true, @@ -164,7 +166,7 @@ const defaultOptions = Object.assign({}, { viewportMargin: Infinity, foldGutter: true, gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'] -}, conf.get('editor')) +}, configuredEditorOptions) class CodeMirrorEditor extends Component { constructor (props) { @@ -194,6 +196,8 @@ class CodeMirrorEditor extends Component { this.codeMirror.setOption(key, options[key]) } }) + + if (this.props.className !== prevProps.className) this.codeMirror.refresh() } componentWillUnmount () { @@ -226,7 +230,7 @@ class CodeMirrorEditor extends Component { } render () { - return
+ return
} } @@ -307,13 +311,18 @@ class GistEditor extends Component { render () { const { value, placeholder, readOnly } = this.props + const boundedViewport = needsBoundedViewport(value || '') const options = Object.assign({}, defaultOptions, { placeholder, - readOnly: Boolean(readOnly) + readOnly: Boolean(readOnly), + viewportMargin: boundedViewport && configuredEditorOptions.viewportMargin === undefined + ? 10 + : defaultOptions.viewportMargin }) return ( 20000) return true + + let lines = 1 + for (let index = 0; index < value.length; index++) { + if (value.charCodeAt(index) === 10 && ++lines > 200) return true + } + return false +} diff --git a/app/containers/gistEditorForm/index.js b/app/containers/gistEditorForm/index.js index 8c940ee0..9dc39788 100644 --- a/app/containers/gistEditorForm/index.js +++ b/app/containers/gistEditorForm/index.js @@ -1,9 +1,8 @@ import electronBridge from '../../utilities/electronBridge' import { Button, ListGroup, ListGroupItem } from 'react-bootstrap' -import GistEditor from '../gistEditor' import ImageFileView from '../imageFileView' import Panel from '../compatPanel' -import React, { Component } from 'react' +import React, { Component, lazy, Suspense } from 'react' import { copyValues, createFormState, @@ -37,6 +36,9 @@ const { createFileAttachment } = require('../../utilities/fileImports') export const NEW_GIST = 'NEW_GIST' export const UPDATE_GIST = 'UPDATE_GIST' +// Browsing snippets should not load CodeMirror or its language modes. +const GistEditor = lazy(() => import(/* webpackChunkName: "gist-editor" */ '../gistEditor')) + const conf = electronBridge.config const ipcRenderer = electronBridge.ipc const logger = electronBridge.logger @@ -70,7 +72,10 @@ class GistEditorForm extends Component { }) } - componentDidUpdate () { + componentDidUpdate (prevProps) { + // Local typing does not change initialData. Only compare original content + // when new input arrives, rather than serializing it on every keystroke. + if (prevProps.initialData === this.props.initialData) return const nextInitialValuesKey = getInitialValuesKey(this.props.initialData) if (nextInitialValuesKey !== this.state.initialValuesKey) { @@ -422,13 +427,15 @@ const renderContentField = ({ file, type, touched, error, warning, onChange, onI rawUrl={ file.raw_url } size={ file.size } truncated={ file.truncated } /> - : } + : { file.content } }> + + } { touched && ((error && {error}) || (warning && {warning})) }
diff --git a/app/containers/navigationPanelDetails/index.js b/app/containers/navigationPanelDetails/index.js index cb7d28ea..a59947ec 100644 --- a/app/containers/navigationPanelDetails/index.js +++ b/app/containers/navigationPanelDetails/index.js @@ -4,7 +4,7 @@ import { descriptionParser } from '../../utilities/parser' import electronBridge from '../../utilities/electronBridge' import { getFilteredGistIds } from '../../utilities/gistFilters' import { selectGist, fetchSingleGist, updatescrollRequestStatus } from '../../actions' -import React, { Component } from 'react' +import React, { Component, PureComponent } from 'react' import TagBadges from '../tagBadges' import { t } from '../../utilities/i18n' import { @@ -19,10 +19,35 @@ import './index.scss' const logger = electronBridge.logger const conf = electronBridge.config +class SnippetThumbnail extends PureComponent { + constructor (props) { + super(props) + this.handleClick = () => this.props.onSelect(this.props.entry.id) + this.setNode = node => this.props.onNode(this.props.entry.id, node) + } + + render () { + const { entry, active } = this.props + const className = active + ? (entry.isPublic ? 'active-snippet-thumnail-public' : 'active-snippet-thumnail-private') + : 'snippet-thumnail' + return ( +
  • +
    +
    { entry.title }
    + { entry.tags && } +
    +
  • + ) + } +} + class NavigationPanelDetails extends Component { constructor (props) { super(props) this.snippetNodes = {} + this.handleClicked = this.handleClicked.bind(this) + this.setSnippetNode = this.setSnippetNode.bind(this) } componentDidUpdate () { @@ -58,96 +83,57 @@ class NavigationPanelDetails extends Component { selectGist(gistId) } - decideSnippetListItemClass (gistId) { - if (gistId === this.props.activeGist) { - if (this.props.gists[gistId].brief.public) { - return 'active-snippet-thumnail-public' - } else { - return 'active-snippet-thumnail-private' - } - } - return 'snippet-thumnail' - } - - renderSnippetTags (gistId, customTags) { - if (!shouldShowTagsInSnippetList(conf)) { - return null + getSnippetEntries () { + const { gists, gistTags, activeGistFilters } = this.props + // Settings reads use synchronous IPC. Read each once, not once per row. + const sortingKey = conf.get('snippet:sorting') + const sortingReverse = conf.get('snippet:sortingReverse') + const showTags = shouldShowTagsInSnippetList(conf) + const colored = showTags && shouldColorTags(conf) + const inputs = [gists, gistTags, activeGistFilters, sortingKey, sortingReverse, showTags, colored] + if (this.snippetEntries && inputs.every((value, index) => value === this.snippetEntries.inputs[index])) { + return this.snippetEntries.entries } - const { gistTags } = this.props - const tags = getRegularTagsForGist(gistId, customTags, gistTags) - return ( - - ) + const entries = getFilteredGistIds(gistTags, activeGistFilters) + .map(id => gists[id]) + // Sync can update gists before its tag index. + .filter(Boolean) + .sort(compareGists(sortingKey, sortingReverse)) + .map(gist => { + const firstFilename = Object.keys(gist.brief.files)[0] + const descriptionSource = gist.brief.providerTitle !== undefined + ? gist.brief + : gist.brief.description || firstFilename + const { title, description, customTags } = descriptionParser(descriptionSource) + const id = gist.brief.id + return { + id, + title: title.length > 0 ? title : description, + isPublic: gist.brief.public, + tags: showTags ? getRegularTagsForGist(id, customTags, gistTags) : null, + colored + } + }) + // Retain only the current list. Selection changes do not rebuild metadata. + this.snippetEntries = { inputs, entries } + return entries } renderSnippetThumbnails () { - const { gists, gistTags, activeGistFilters } = this.props - const snippetThumbnails = [] - const filteredGistIds = getFilteredGistIds(gistTags, activeGistFilters) - - if (filteredGistIds.length === 0) { + const entries = this.getSnippetEntries() + if (!entries.length) { return ( -
  • +
  • { t('search.noResults') }
  • ) } - - const rawGists = [] - filteredGistIds.forEach((gistId) => { - // During the synchronization, gists will be updated before the gistTags, - // which introduces an interval where a gist exists in gistTags but not in - // the gists. This guard makes sure we push the gist only when it is already - // available in gists. - if (gists[gistId]) { - // Pick up the content inside the first [] as the snippet thumbnail's title. - // For example, "[Apple is delicious] It's affordable and healthy." will - // pick up "Apple is delicious" as the title. If no brackets are found, - // it shows to the original description. It provides users the flexibility - // to decide what to be shown in the thumbnail. - const gist = gists[gistId] - rawGists.push(gist) - } - }) - - const sortingKey = conf.get('snippet:sorting') - const sortingReverse = conf.get('snippet:sortingReverse') - rawGists.sort(compareGists(sortingKey, sortingReverse)) - - rawGists.forEach((gist) => { - const firstFilename = Object.keys(gist.brief.files)[0] - // '' will be converted to false, so this statement can handle situations - // for null, '' and undefined - const rawDescription = gist.brief.description || firstFilename - - const descriptionSource = gist.brief.providerTitle !== undefined - ? gist.brief - : rawDescription - const { title, description, customTags } = descriptionParser(descriptionSource) - const thumbnailTitle = title.length > 0 ? title : description - const gistId = gist.brief.id - snippetThumbnails.push( -
  • this.setSnippetNode(gistId, node) }> -
    -
    { thumbnailTitle }
    - { this.renderSnippetTags(gistId, customTags) } -
    -
  • - ) - }) - - return snippetThumbnails - } // renderSnippetThumbnails() + return entries.map(entry => ( + + )) + } render () { return ( diff --git a/app/containers/searchPage/index.js b/app/containers/searchPage/index.js index 6cbc8170..f893c91a 100644 --- a/app/containers/searchPage/index.js +++ b/app/containers/searchPage/index.js @@ -127,19 +127,11 @@ class SearchPage extends Component { } updateInputValue (evt) { - this.setState({ - selectedIndex: 0, - inputValue: evt.target.value - }) - } - - queryInputValue (evt) { const inputValue = evt.target.value - - const searchIndex = this.props.searchIndex - const results = searchIndex.fuseSearch(inputValue) this.setState({ - searchResults: results + selectedIndex: 0, + inputValue, + searchResults: this.props.searchIndex.fuseSearch(inputValue) }) } @@ -370,8 +362,7 @@ class SearchPage extends Component { autoFocus value={ this.state.inputValue } onChange={ this.updateInputValue.bind(this) } - onKeyDown={ this.handleKeyDown.bind(this) } - onKeyUp={ this.queryInputValue.bind(this) }/> + onKeyDown={ this.handleKeyDown.bind(this) }/> { this.renderResultCount() }
      diff --git a/app/containers/snippet/index.js b/app/containers/snippet/index.js index d7f2ced6..d924c34d 100755 --- a/app/containers/snippet/index.js +++ b/app/containers/snippet/index.js @@ -657,7 +657,7 @@ class Snippet extends Component {
    - +
    { getRenderableImageSource(normalizedGistFile) || isNativeBinaryImage(normalizedGistFile) ? `const value${line} = ${index + line};`).join('\n') + } + }, '2026-06-29T16:00:00Z') + } + const ids = Object.keys(library) + return { + activeGist: ids[0], + gists: library, + gistTags: { [Prefixed('All')]: ids, [Prefixed('JavaScript')]: ids, common: ids }, + pinnedTags: [], + searchWindowStatus: name === 'everyday-search' ? 'ON' : 'OFF', + initialSearchQuery: name === 'everyday-search' ? 'utility' : '' + } + } + case 'large-collapsed': + case 'large-editor': + return { + gistEditModalStatus: name === 'large-editor' ? 'ON' : 'OFF', + fileExpandStatus: { 'fixture-gist-1-large.js': false }, + gists: { + ...gists, + 'fixture-gist-1': createGist('fixture-gist-1', '[Large snippet fixture] #smoke', false, { + 'large.js': { + filename: 'large.js', + language: 'JavaScript', + content: Array.from({ length: 10000 }, (_, i) => `const item${i} = "example ${i}";`).join('\n') + } + }, '2026-06-29T16:00:00Z') + } + } + case 'asciidoc': + return { + gists: { + ...gists, + 'fixture-gist-1': createGist('fixture-gist-1', '[AsciiDoc fixture] #smoke', false, { + 'example.adoc': { + filename: 'example.adoc', + language: 'AsciiDoc', + content: '= On-demand AsciiDoc\n\n*Formatted after loading*\n\nA lightweight startup.' + } + }, '2026-06-29T16:00:00Z') + } + } case 'about': return { aboutModalStatus: 'ON' } case 'dashboard': @@ -449,7 +501,9 @@ export function getRenderFixture (name) { } : null, name, - searchIndexRecords, + searchIndexRecords: stateOverrides.gists + ? Object.values(stateOverrides.gists).map(gist => SearchIndex.buildSearchRecord(gist)) + : searchIndexRecords, state: Object.assign({}, getBaseState(), stateOverrides) } } diff --git a/configs/loaders/woff2Only.js b/configs/loaders/woff2Only.js new file mode 100644 index 00000000..908edba6 --- /dev/null +++ b/configs/loaders/woff2Only.js @@ -0,0 +1,18 @@ +// Electron supports WOFF2. Keep fallback formats only for font faces that do +// not provide WOFF2, rather than bundling multiple copies of the same font. +module.exports = function woff2Only (source) { + return source.replace(/@font-face\s*\{[^}]*\}/gi, face => { + const sources = [...face.matchAll(/\bsrc\s*:\s*([^;}]+)(?:;|(?=\}))/gi)] + const woff2 = sources.flatMap(match => match[1].split(',')) + .find(value => /format\(\s*(['"]?)woff2\1\s*\)/i.test(value)) + + if (!woff2) return face + + let replaced = false + return face.replace(/\bsrc\s*:\s*[^;}]+(?:;|(?=\}))/gi, () => { + if (replaced) return '' + replaced = true + return `src: ${woff2.trim()};` + }) + }) +} diff --git a/docs/screenshots/performance-everyday.png b/docs/screenshots/performance-everyday.png new file mode 100644 index 0000000000000000000000000000000000000000..f47bbbd4710608fd552ea05b217a70b654d42271 GIT binary patch literal 291837 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
    Pz4d$@oU)1X|O&J(1$EjPctbIWOQXt?H-HqZ6mT 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
    }n)Q6- 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

    aObG5cdN{ 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 [ + `!node_modules/${pattern}`, + `!node_modules/**/node_modules/${pattern}` + ]), ...topLevelRendererOnlyNodeModules.map(packageName => `!node_modules/${packageName}/**`) ], appId: 'com.cosmox.lepton', diff --git a/index.html b/index.html index 89a394ee..56f0f1e1 100644 --- a/index.html +++ b/index.html @@ -3,8 +3,6 @@ Lepton - -

    diff --git a/tests/configs/electronBuilder.test.js b/tests/configs/electronBuilder.test.js index e789196d..d2fca007 100644 --- a/tests/configs/electronBuilder.test.js +++ b/tests/configs/electronBuilder.test.js @@ -5,6 +5,19 @@ const require = createRequire(import.meta.url) const builderConfig = require('../../electron-builder') describe('electron-builder distribution config', () => { + it('excludes duplicate runtime builds while retaining notebook language sources', () => { + expect(builderConfig.files).toEqual(expect.arrayContaining([ + '!node_modules/prismjs/components/*.min.js', + '!node_modules/**/node_modules/prismjs/components/*.min.js', + '!node_modules/dompurify/dist/purify.cov.cjs.js', + '!node_modules/bluebird/js/browser/**', + '!node_modules/winston/dist/**' + ])) + expect(builderConfig.files).not.toContain('!node_modules/prismjs/**') + expect(builderConfig.files).not.toContain('!node_modules/prismjs/components/**') + expect(builderConfig.files).not.toContain('!node_modules/dompurify/dist/**') + }) + it('names release artifacts with platform and architecture', () => { expect(builderConfig.artifactName).toBe('${productName}-${version}-${os}-${arch}.${ext}') }) diff --git a/tests/configs/woff2Only.test.js b/tests/configs/woff2Only.test.js new file mode 100644 index 00000000..8a64cd1c --- /dev/null +++ b/tests/configs/woff2Only.test.js @@ -0,0 +1,37 @@ +import { createRequire } from 'node:module' +import { describe, expect, it } from 'vitest' + +const require = createRequire(import.meta.url) +const woff2Only = require('../../configs/loaders/woff2Only') + +describe('Electron font assets', () => { + it('handles unquoted format names emitted by production Sass', () => { + expect(woff2Only('@font-face{src:url(math.woff2) format(woff2),url(math.ttf) format(truetype)}')) + .toBe('@font-face{src: url(math.woff2) format(woff2);}') + }) + + it('keeps WOFF2 and removes legacy sources without changing font descriptors', () => { + const css = `@font-face { + font-family: Icons; + src: url('icons.eot'); + src: url('icons.eot?#iefix') format('embedded-opentype'), url('icons.woff2') format('woff2'), url('icons.ttf') format('truetype'); + font-weight: normal; + }` + const result = woff2Only(css) + expect(result).toContain("src: url('icons.woff2') format('woff2');") + expect(result).not.toMatch(/\.eot|\.ttf/) + expect(result).toContain('font-family: Icons;') + expect(result).toContain('font-weight: normal;') + }) + + it('preserves other faces and non-font URLs', () => { + const fallback = '@font-face { font-family: Other; src: url(other.woff) format("woff"); }' + const image = '.logo { background: url(logo.png); }' + const modern = '@font-face{font-family:Math;src:url(math.woff2) format("woff2"),url(math.woff) format("woff");font-style:italic;}' + const result = woff2Only(fallback + image + modern) + expect(result).toContain(fallback + image) + expect(result).toContain('src: url(math.woff2) format("woff2");') + expect(result).not.toContain('url(math.woff)') + expect(result).toContain('font-style:italic;') + }) +}) diff --git a/tests/containers/codeAreaLazyRenderer.test.js b/tests/containers/codeAreaLazyRenderer.test.js new file mode 100644 index 00000000..910d4cf2 --- /dev/null +++ b/tests/containers/codeAreaLazyRenderer.test.js @@ -0,0 +1,119 @@ +import { describe, expect, it, vi } from 'vitest' +import { createRequire } from 'node:module' + +const mocks = vi.hoisted(() => ({ notebookRender: vi.fn() })) + +vi.mock('../../app/utilities/electronBridge', () => ({ + default: { + config: { get: () => 'light' }, + logger: { error: vi.fn() }, + notebook: { render: mocks.notebookRender } + } +})) +vi.mock('../../app/utilities/themeManager', () => ({ getHighlightTheme: () => 'github' })) +vi.mock('highlightjs-solidity', () => ({ default: () => {} })) +vi.mock('highlightjs-graphql', () => ({ default: () => {} })) +vi.mock('../../app/utilities/markdown', () => ({ default: { render: text => text } })) +vi.mock('../../app/utilities/asciidoc', () => ({ + default: { render: text => `

    ${text}

    ` } +})) + +// CodeArea selects a theme through CommonJS; Node needs a CSS stub for that +// import. Electron smoke tests verify the real stylesheet and rendering. +const require = createRequire(import.meta.url) +const cssLoader = require.extensions['.css'] +require.extensions['.css'] = () => {} +let CodeArea +try { + CodeArea = (await import('../../app/containers/codeArea')).default +} finally { + if (cssLoader) require.extensions['.css'] = cssLoader + else delete require.extensions['.css'] +} + +function createCodeArea (language) { + const component = new CodeArea({ filename: 'example', language, content: 'original' }) + component.setState = vi.fn(update => { Object.assign(component.state, update) }) + return component +} + +describe('on-demand AsciiDoc rendering', () => { + it('does not load the converter for ordinary snippets, then loads on a format change', async () => { + const component = createCodeArea('JavaScript') + component.componentDidMount() + expect(component.asciiDocLoad).toBeUndefined() + component.props = { ...component.props, language: 'AsciiDoc' } + component.componentDidUpdate() + await component.asciiDocLoad + expect(component.createAsciiDocCodeBlock('latest', 'AsciiDoc', 4)).toContain('

    latest

    ') + expect(component.setState).toHaveBeenCalledTimes(1) + component.componentDidUpdate() + expect(component.setState).toHaveBeenCalledTimes(1) + }) + + it('keeps readable source while loading and does not update an unmounted component', async () => { + const component = createCodeArea('AsciiDoc') + expect(component.createAsciiDocCodeBlock('plain source', 'AsciiDoc', 4)).toContain('plain source') + component.componentDidMount() + component.componentWillUnmount() + await component.asciiDocLoad + expect(component.setState).not.toHaveBeenCalled() + }) +}) + +describe('snippet render caching', () => { + it('retries notebook rendering after an IPC failure instead of caching the fallback', () => { + mocks.notebookRender.mockReturnValueOnce({ status: false, error: 'Unavailable' }) + .mockReturnValue({ status: true, html: '

    Recovered notebook

    ' }) + const component = createCodeArea('Jupyter Notebook') + const render = () => component.getRenderedContent('example.ipynb', '{}', 'Jupyter Notebook', 4) + expect(render()).not.toContain('Recovered notebook') + expect(render()).toContain('Recovered notebook') + expect(render()).toContain('Recovered notebook') + expect(mocks.notebookRender).toHaveBeenCalledTimes(2) + }) + + it('reuses unchanged code and invalidates when content or rendering inputs change', () => { + const component = createCodeArea('JavaScript') + const highlight = vi.spyOn(component, 'createHighlightedCodeBlock') + const files = {} + const first = component.getRenderedContent('example.js', 'const a = 1', 'JavaScript', 4, files) + expect(component.getRenderedContent('example.js', 'const a = 1', 'JavaScript', 4, files)).toBe(first) + expect(highlight).toHaveBeenCalledTimes(1) + component.getRenderedContent('example.js', 'const a = 2', 'JavaScript', 4, files) + component.getRenderedContent('example.js', 'const a = 2', 'JavaScript', 2, files) + component.getRenderedContent('example.py', 'const a = 2', 'Python', 2, files) + expect(highlight).toHaveBeenCalledTimes(4) + }) + + it('invalidates Markdown when sibling attachments change', () => { + const component = createCodeArea('Markdown') + const markdown = vi.spyOn(component, 'createMarkdownCodeBlock') + const files = {} + component.getRenderedContent('notes.md', '![image](image.png)', 'Markdown', 4, files) + component.getRenderedContent('notes.md', '![image](image.png)', 'Markdown', 4, files) + expect(markdown).toHaveBeenCalledTimes(1) + component.getRenderedContent('notes.md', '![image](image.png)', 'Markdown', 4, { 'image.png': {} }) + expect(markdown).toHaveBeenCalledTimes(2) + }) + + it('replaces cached source after the AsciiDoc converter loads', async () => { + const component = createCodeArea('AsciiDoc') + const initial = component.getRenderedContent('example.adoc', 'Example', 'AsciiDoc', 4) + expect(initial).not.toContain('asciidoc-section') + component.componentDidMount() + await component.asciiDocLoad + expect(component.getRenderedContent('example.adoc', 'Example', 'AsciiDoc', 4)).toContain('

    Example

    ') + }) + + it('avoids repeated notebook IPC while keeping only the latest result', () => { + const component = createCodeArea('Jupyter Notebook') + const notebook = vi.spyOn(component, 'createJupyterNotebookCodeBlock').mockImplementation(content => content) + component.getRenderedContent('example.ipynb', 'first', 'Jupyter Notebook', 4) + component.getRenderedContent('example.ipynb', 'first', 'Jupyter Notebook', 4) + expect(notebook).toHaveBeenCalledTimes(1) + component.getRenderedContent('example.ipynb', 'second', 'Jupyter Notebook', 4) + component.getRenderedContent('example.ipynb', 'first', 'Jupyter Notebook', 4) + expect(notebook).toHaveBeenCalledTimes(3) + }) +}) diff --git a/tests/containers/compatPanel.test.js b/tests/containers/compatPanel.test.js index a7383bff..40d8e706 100644 --- a/tests/containers/compatPanel.test.js +++ b/tests/containers/compatPanel.test.js @@ -67,4 +67,22 @@ describe('React 19 panel compatibility', () => { expect(container.querySelector('.collapse').className).toContain('file-collapse') expect(container.textContent).toContain('Expanded file') }) + + it('releases collapsed content and recreates it when expanded', () => { + const render = expanded => act(() => { + root.render(h(Collapse, { in: expanded, unmountOnExit: true }, h('pre', null, 'Large file'))) + }) + render(false) + expect(container.querySelector('pre')).toBeNull() + render(true) + expect(container.querySelector('pre').textContent).toBe('Large file') + render(false) + expect(container.querySelector('pre')).toBeNull() + expect(container.innerHTML).not.toContain('unmountOnExit') + }) + + it('preserves mounted content for collapses that do not opt in', () => { + act(() => root.render(h(Collapse, { in: false }, h('pre', null, 'Keep mounted')))) + expect(container.querySelector('pre').textContent).toBe('Keep mounted') + }) }) diff --git a/tests/containers/criticalFlow.test.js b/tests/containers/criticalFlow.test.js new file mode 100644 index 00000000..9d295afb --- /dev/null +++ b/tests/containers/criticalFlow.test.js @@ -0,0 +1,106 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest' + +const mocks = vi.hoisted(() => ({ settings: {}, get: vi.fn() })) +vi.mock('../../app/utilities/electronBridge', () => ({ + default: { + config: { get: mocks.get }, + logger: { info: vi.fn(), error: vi.fn() }, + ipc: {}, + clipboard: {} + } +})) +vi.mock('../../app/utilities/snippetApi', () => ({ + getSnippetProvider: () => ({ type: 'github' }) +})) + +import ConnectedList from '../../app/containers/navigationPanelDetails' +import ConnectedSearch from '../../app/containers/searchPage' +import GistEditorForm from '../../app/containers/gistEditorForm' +import { createDefaultGistFilters } from '../../app/utilities/gistFilters' + +const List = ConnectedList.WrappedComponent +const Search = ConnectedSearch.WrappedComponent + +function synchronousState (component) { + component.setState = vi.fn((update, callback) => { + Object.assign(component.state, typeof update === 'function' ? update(component.state) : update) + if (callback) callback() + }) + return component +} + +beforeEach(() => { + mocks.settings = { 'snippet:sorting': 'description', 'snippet:sortingReverse': false } + mocks.get.mockImplementation(key => mocks.settings[key]) +}) + +describe('everyday snippet navigation', () => { + function makeList () { + const ids = Array.from({ length: 100 }, (_, index) => String(index)) + const gists = Object.fromEntries(ids.map(id => [id, { + brief: { id, description: `[Title ${id.padStart(3, '0')}] #common`, public: false, files: { 'helper.js': {} } } + }])) + return new List({ gists, gistTags: { 'lang@All': ids, common: ids }, activeGistFilters: createDefaultGistFilters(), activeGist: '0' }) + } + + it('reads settings per list rather than per row and reuses metadata on selection', () => { + const list = makeList() + const entries = list.getSnippetEntries() + expect(entries).toHaveLength(100) + expect(mocks.get).toHaveBeenCalledTimes(3) + list.props = { ...list.props, activeGist: '1' } + expect(list.getSnippetEntries()).toBe(entries) + const rows = list.renderSnippetThumbnails() + expect(rows[0].props.active).toBe(false) + expect(rows[1].props.active).toBe(true) + }) + + it('refreshes titles, sort preferences, and tags when their inputs change', () => { + const list = makeList() + const initial = list.getSnippetEntries() + mocks.settings['snippet:sortingReverse'] = true + expect(list.getSnippetEntries()[0].id).toBe('99') + mocks.settings['tag:showInSnippetList'] = true + mocks.settings['tag:colored'] = true + expect(list.getSnippetEntries()[0].tags).toContain('common') + list.props = { ...list.props, gists: { ...list.props.gists, 99: { brief: { ...list.props.gists[99].brief, description: '[Zebra]' } } } } + expect(list.getSnippetEntries()[0].title).toBe('Zebra') + expect(list.getSnippetEntries()).not.toBe(initial) + }) + + it('handles tag entries whose snippets have not arrived during sync', () => { + const list = makeList() + list.props = { ...list.props, gists: {} } + expect(list.getSnippetEntries()).toEqual([]) + }) +}) + +describe('search interaction', () => { + it('searches once per changed input, including paste, and not on arrow navigation', () => { + const fuseSearch = vi.fn(() => [{ id: 'a' }, { id: 'b' }]) + const search = synchronousState(new Search({ searchIndex: { fuseSearch } })) + search.updateInputValue({ target: { value: 'pasted query' } }) + expect(fuseSearch).toHaveBeenCalledExactlyOnceWith('pasted query') + expect(search.state.inputValue).toBe('pasted query') + search.handleKeyDown({ keyCode: 40, preventDefault: vi.fn() }) + expect(search.state.selectedIndex).toBe(1) + expect(fuseSearch).toHaveBeenCalledTimes(1) + search.updateInputValue({ target: { value: '' } }) + expect(fuseSearch).toHaveBeenCalledTimes(2) + expect(search.state.selectedIndex).toBe(0) + }) +}) + +describe('editor input reconciliation', () => { + it('skips initial-content serialization during typing but still accepts new initial data', () => { + const initialData = { get description () { return 'Original' }, gists: [{ filename: 'a.js', content: 'original' }] } + const form = synchronousState(new GistEditorForm({ initialData })) + const read = vi.spyOn(initialData, 'description', 'get') + form.componentDidUpdate({ initialData }) + expect(read).not.toHaveBeenCalled() + form.props = { initialData: { description: 'Replacement', gists: [{ filename: 'b.js', content: 'replacement' }] } } + form.componentDidUpdate({ initialData }) + expect(form.state.values.description).toBe('Replacement') + expect(form.state.values.gistFiles[0].content).toBe('replacement') + }) +}) diff --git a/tests/containers/editorViewport.test.js b/tests/containers/editorViewport.test.js new file mode 100644 index 00000000..50c03829 --- /dev/null +++ b/tests/containers/editorViewport.test.js @@ -0,0 +1,17 @@ +import { describe, expect, it } from 'vitest' +import { needsBoundedViewport } from '../../app/containers/gistEditor/viewport' + +describe('editor viewport sizing', () => { + it('keeps ordinary snippets at their natural height', () => { + expect(needsBoundedViewport()).toBe(false) + expect(needsBoundedViewport('const value = 42')).toBe(false) + expect(needsBoundedViewport('x\n'.repeat(199))).toBe(false) + expect(needsBoundedViewport('x'.repeat(20000))).toBe(false) + }) + + it('bounds both long documents and very long wrapped lines', () => { + expect(needsBoundedViewport('x\n'.repeat(200))).toBe(true) + expect(needsBoundedViewport('x\r\n'.repeat(200))).toBe(true) + expect(needsBoundedViewport('x'.repeat(20001))).toBe(true) + }) +}) diff --git a/tests/smoke/electron-packaged-smoke.js b/tests/smoke/electron-packaged-smoke.js index 8d68a7c3..43f39204 100644 --- a/tests/smoke/electron-packaged-smoke.js +++ b/tests/smoke/electron-packaged-smoke.js @@ -41,6 +41,26 @@ function createTempHome (locale = 'en') { } const PACKAGED_RENDER_FIXTURES = [ + { + name: 'large-editor', + selector: '.gist-editor-viewport .CodeMirror', + text: 'Large snippet fixture|large.js' + }, + { + name: 'edit', + selector: '.modal .gist-editor-form .CodeMirror', + text: 'Edit' + }, + { + name: 'new', + selector: '.modal .gist-editor-form .CodeMirror', + text: 'New' + }, + { + name: 'asciidoc', + selector: '.asciidoc-section strong', + text: 'On-demand AsciiDoc|Formatted after loading' + }, { name: 'active', selector: '.profile-image-section', diff --git a/tests/smoke/electron-render-smoke-main.js b/tests/smoke/electron-render-smoke-main.js index 3d592197..b40510e1 100644 --- a/tests/smoke/electron-render-smoke-main.js +++ b/tests/smoke/electron-render-smoke-main.js @@ -1390,6 +1390,99 @@ async function assertFixtureImageAttachments (window) { } } +async function assertEverydayInteractions (window) { + const fixture = process.env.LEPTON_RENDER_FIXTURE + if (!['everyday', 'everyday-search'].includes(fixture)) return + await window.webContents.executeJavaScript(`(async () => { + const frame = () => new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + if (${JSON.stringify(fixture)} === 'everyday') { + for (const index of [1, 50, 99, 0]) { + document.querySelectorAll('.snippet-thumnail-list-item > div')[index].click(); + await frame(); + const selected = document.querySelector('.active-snippet-thumnail-private, .active-snippet-thumnail-public'); + if (!selected.textContent.includes('Utility ' + String(index).padStart(3, '0'))) throw Error('Wrong sidebar selection'); + if (!document.querySelector('.code-table').textContent.includes('const value0 = ' + index + ';')) throw Error('Wrong snippet content'); + } + } else { + const input = document.querySelector('.search-box'); + // Model input/paste without a keyup event. + Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set.call(input, 'Utility 099'); + input.dispatchEvent(new Event('input', { bubbles: true })); + await frame(); + if (document.querySelectorAll('.result-group > li').length !== 1) throw Error('Search input did not update results'); + input.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', keyCode: 13, bubbles: true })); + await frame(); + if (document.querySelector('.search-box')) throw Error('Search selection did not close search'); + if (!document.querySelector('.code-table').textContent.includes('const value0 = 99;')) throw Error('Search opened wrong snippet'); + } + })()`) +} + +async function assertLargeSnippetRendering (window) { + const fixture = process.env.LEPTON_RENDER_FIXTURE + if (!['large-collapsed', 'large-editor'].includes(fixture)) return + + if (fixture === 'large-collapsed') { + await window.webContents.executeJavaScript(`(async () => { + const frame = () => new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + const toggle = document.querySelector('.file-expand'); + if (document.querySelector('.code-area')) throw Error('Collapsed file is mounted'); + for (let cycle = 0; cycle < 2; cycle++) { + toggle.click(); + await frame(); + const rows = document.querySelectorAll('.code-table tr'); + if (rows.length !== 10000 || !rows[9999].textContent.includes('item9999')) throw Error('Expanded file lost content'); + toggle.click(); + await frame(); + if (document.querySelector('.code-area')) throw Error('Collapsed file retained its renderer'); + } + })()`) + return + } + + await window.webContents.executeJavaScript(`(async () => { + const frame = () => new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + const cm = document.querySelector('.CodeMirror').CodeMirror; + const original = cm.getValue(); + const assertViewport = () => { + const bounds = cm.getWrapperElement().getBoundingClientRect(); + const visibleLines = document.querySelectorAll('.CodeMirror-code > div').length; + if (cm.lineCount() !== 10000 || cm.getOption('viewportMargin') !== 10 || visibleLines > 200 || bounds.height > 650) { + throw Error('Large editor is not bounded: ' + JSON.stringify({ visibleLines, height: bounds.height })); + } + }; + assertViewport(); + cm.setValue('const small = true'); + await frame(); + if (document.querySelector('.gist-editor-viewport') || cm.getOption('viewportMargin') !== Infinity) throw Error('Small editor did not restore natural height'); + cm.setValue(original); + await frame(); + assertViewport(); + cm.setCursor({ line: 9999, ch: cm.getLine(9999).length }); + cm.scrollIntoView(cm.getCursor(), 40); + cm.focus(); + await frame(); + if (cm.getViewport().to < 10000) throw Error('Last line is not reachable'); + })()`) + window.focus() + window.webContents.focus() + await window.webContents.executeJavaScript("document.querySelector('.CodeMirror').CodeMirror.focus()", true) + await window.webContents.insertText(' // viewport smoke') + await window.webContents.executeJavaScript(`(async () => { + const cm = document.querySelector('.CodeMirror').CodeMirror; + const frame = () => new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + const deadline = Date.now() + 2000; + while (!cm.getLine(9999).endsWith(' // viewport smoke') && Date.now() < deadline) await new Promise(resolve => setTimeout(resolve, 20)); + if (cm.lineCount() !== 10000 || !cm.getLine(9999).endsWith(' // viewport smoke')) throw Error('Typing at the end of the large file failed: ' + JSON.stringify({ line: cm.getLine(9999), focused: cm.hasFocus(), cursor: cm.getCursor() })); + cm.undo(); + await frame(); + if (cm.getLine(9999) !== 'const item9999 = "example 9999";') throw Error('Undo lost file content'); + cm.setCursor({ line: 0, ch: 0 }); + cm.scrollIntoView(cm.getCursor()); + await frame(); + })()`) +} + async function main () { let window @@ -1402,6 +1495,8 @@ async function main () { await waitForFixtureUi(window) await applyFixtureFilterClicks(window) assertFixtureRendererState(await getRendererState(window)) + await assertEverydayInteractions(window) + await assertLargeSnippetRendering(window) await assertFixtureLoginModeSwitch(window) await assertFixturePageFind(window) if (process.env.LEPTON_RENDER_FIXTURE === 'new-draft') { diff --git a/tests/smoke/electron-render-smoke.js b/tests/smoke/electron-render-smoke.js index cca72ab9..ac03ad62 100644 --- a/tests/smoke/electron-render-smoke.js +++ b/tests/smoke/electron-render-smoke.js @@ -38,6 +38,32 @@ function createTempHome (locale = 'en', configOverrides = {}) { } const RENDER_FIXTURES = [ + { + name: 'everyday', + selector: '.code-table', + text: 'Utility 000|helper.js' + }, + { + name: 'everyday-search', + selector: '.search-result-count', + text: '100 snippets found' + }, + { + name: 'large-collapsed', + selector: '.file-header .file-expand', + text: 'Large snippet fixture|large.js', + forbiddenSelector: '.code-area' + }, + { + name: 'large-editor', + selector: '.gist-editor-viewport .CodeMirror', + text: 'Large snippet fixture|large.js' + }, + { + name: 'asciidoc', + selector: '.asciidoc-section strong', + text: 'On-demand AsciiDoc|Formatted after loading' + }, { name: 'active', selector: '.active-layout .snippet-box', diff --git a/webpack.config.js b/webpack.config.js index 9253667d..b3c96f70 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -34,7 +34,7 @@ module.exports = { loader: 'babel-loader', options: { presets: [ - ['@babel/preset-env', { modules: false }], + ['@babel/preset-env', { modules: false, targets: { electron: '42' } }], '@babel/preset-react' ] } @@ -43,6 +43,8 @@ module.exports = { use: [ 'style-loader', 'css-loader', + // Run after Sass, before css-loader resolves and emits font assets. + path.resolve(__dirname, 'configs/loaders/woff2Only.js'), { loader: 'sass-loader', options: { From 88f91284b56ea2eb3084b702a0402ed26052f319 Mon Sep 17 00:00:00 2001 From: CosmoX Date: Thu, 29 Oct 2026 01:13:11 -0700 Subject: [PATCH 2/3] Preserve editor responsiveness while reducing search memory --- app/containers/gistEditorForm/index.js | 22 ++-- app/renderFixtures.js | 21 ++-- app/utilities/search/records.js | 9 +- tests/containers/criticalFlow.test.js | 1 + tests/performance/README.md | 26 +++++ tests/performance/electron-flow.cjs | 128 ++++++++++++++++++++++++ tests/performance/electron-search.cjs | 88 ++++++++++++++++ tests/performance/physicalFootprint.cjs | 12 +++ tests/utilities/search.test.js | 16 +++ 9 files changed, 296 insertions(+), 27 deletions(-) create mode 100644 tests/performance/README.md create mode 100644 tests/performance/electron-flow.cjs create mode 100644 tests/performance/electron-search.cjs create mode 100644 tests/performance/physicalFootprint.cjs diff --git a/app/containers/gistEditorForm/index.js b/app/containers/gistEditorForm/index.js index 9dc39788..1db9a33b 100644 --- a/app/containers/gistEditorForm/index.js +++ b/app/containers/gistEditorForm/index.js @@ -1,8 +1,9 @@ import electronBridge from '../../utilities/electronBridge' import { Button, ListGroup, ListGroupItem } from 'react-bootstrap' +import GistEditor from '../gistEditor' import ImageFileView from '../imageFileView' import Panel from '../compatPanel' -import React, { Component, lazy, Suspense } from 'react' +import React, { Component } from 'react' import { copyValues, createFormState, @@ -36,9 +37,6 @@ const { createFileAttachment } = require('../../utilities/fileImports') export const NEW_GIST = 'NEW_GIST' export const UPDATE_GIST = 'UPDATE_GIST' -// Browsing snippets should not load CodeMirror or its language modes. -const GistEditor = lazy(() => import(/* webpackChunkName: "gist-editor" */ '../gistEditor')) - const conf = electronBridge.config const ipcRenderer = electronBridge.ipc const logger = electronBridge.logger @@ -427,15 +425,13 @@ const renderContentField = ({ file, type, touched, error, warning, onChange, onI rawUrl={ file.raw_url } size={ file.size } truncated={ file.truncated } /> - : { file.content } }> - - } + : } { touched && ((error && {error}) || (warning && {warning})) }
    diff --git a/app/renderFixtures.js b/app/renderFixtures.js index 07b5d05d..8eee9ee9 100644 --- a/app/renderFixtures.js +++ b/app/renderFixtures.js @@ -300,17 +300,18 @@ function getBaseState () { function getFixtureOverrides (name) { switch (name) { case 'everyday': + case 'memory-flow': + case 'memory-search': case 'everyday-search': { const library = {} - for (let index = 0; index < 100; index++) { + const librarySize = name === 'memory-search' ? 1000 : 100 + const fileLines = name === 'memory-search' ? 100 : 20 + for (let index = 0; index < librarySize; index++) { const id = `everyday-${index}` - library[id] = createGist(id, `[Utility ${String(index).padStart(3, '0')}] #common Everyday helper`, false, { - 'helper.js': { - filename: 'helper.js', - language: 'JavaScript', - content: Array.from({ length: 20 }, (_, line) => `const value${line} = ${index + line};`).join('\n') - } - }, '2026-06-29T16:00:00Z') + const files = name === 'memory-flow' && index === 1 + ? { 'notes.md': { filename: 'notes.md', language: 'Markdown', content: '# Profile Markdown\n\n**Ready to read**' } } + : { 'helper.js': { filename: 'helper.js', language: 'JavaScript', content: Array.from({ length: fileLines }, (_, line) => `const value${line} = ${index + line};`).join('\n') } } + library[id] = createGist(id, `[Utility ${String(index).padStart(3, '0')}] #common Everyday helper`, false, files, '2026-06-29T16:00:00Z') } const ids = Object.keys(library) return { @@ -318,8 +319,8 @@ function getFixtureOverrides (name) { gists: library, gistTags: { [Prefixed('All')]: ids, [Prefixed('JavaScript')]: ids, common: ids }, pinnedTags: [], - searchWindowStatus: name === 'everyday-search' ? 'ON' : 'OFF', - initialSearchQuery: name === 'everyday-search' ? 'utility' : '' + searchWindowStatus: ['everyday-search', 'memory-search'].includes(name) ? 'ON' : 'OFF', + initialSearchQuery: name === 'memory-search' ? 'const' : name === 'everyday-search' ? 'utility' : '' } } case 'large-collapsed': diff --git a/app/utilities/search/records.js b/app/utilities/search/records.js index 6ea41b89..d75dd90d 100644 --- a/app/utilities/search/records.js +++ b/app/utilities/search/records.js @@ -206,6 +206,7 @@ function buildSearchMatch (record, match) { const key = match.key const matchedFile = getMatchedFile(record, match) const isContentMatch = key === 'files.content' + const excerpt = isContentMatch ? createHighlightedExcerpt(match.value, match.indices) : null const baseLabel = MATCH_KEY_LABELS[key] || key const fileLabel = matchedFile && matchedFile.filename ? `${baseLabel} in ${matchedFile.filename}` @@ -216,10 +217,10 @@ function buildSearchMatch (record, match) { label: fileLabel, filename: matchedFile ? matchedFile.filename : null, language: matchedFile ? matchedFile.language : null, - segments: createHighlightedSegments(match.value, match.indices), - excerpt: isContentMatch - ? createHighlightedExcerpt(match.value, match.indices) - : null + // The UI shows only an excerpt for content hits. Do not retain highlighted + // copies of every line in every matching file while search is open. + segments: excerpt ? excerpt.segments : createHighlightedSegments(match.value, match.indices), + excerpt } } diff --git a/tests/containers/criticalFlow.test.js b/tests/containers/criticalFlow.test.js index 9d295afb..d93974dd 100644 --- a/tests/containers/criticalFlow.test.js +++ b/tests/containers/criticalFlow.test.js @@ -12,6 +12,7 @@ vi.mock('../../app/utilities/electronBridge', () => ({ vi.mock('../../app/utilities/snippetApi', () => ({ getSnippetProvider: () => ({ type: 'github' }) })) +vi.mock('../../app/containers/gistEditor', () => ({ default: () => null })) import ConnectedList from '../../app/containers/navigationPanelDetails' import ConnectedSearch from '../../app/containers/searchPage' diff --git a/tests/performance/README.md b/tests/performance/README.md new file mode 100644 index 00000000..72f3bc9c --- /dev/null +++ b/tests/performance/README.md @@ -0,0 +1,26 @@ +# Local performance profiles + +Build the production renderer, then run the profiles on the same machine and +Electron version before and after a change: + +```sh +npm run webpack-prod +node node_modules/electron/cli.js tests/performance/electron-flow.cjs +node node_modules/electron/cli.js tests/performance/electron-search.cjs +``` + +Each run uses isolated configuration and user data. Repeat runs and compare +medians; do not run competing builds during measurement. Set +`LEPTON_PROFILE_REPO` to the path of another checkout with its own production +bundle and the same `memory-flow` and `memory-search` fixtures to compare it +with the same harness. + +The flow profile uses a 100-snippet fixture and measures the first Markdown +render, editor open, Vue mode, typing, and process working sets before and +after editing. The search profile uses 1,000 snippets of 100 lines each and +measures result rendering, a two-token search, heap, DOM nodes, and process +working sets. Working sets include shared pages, so their sum is an upper-bound +indicator rather than the app's unique physical memory. On macOS, the profiles +also report the system `footprint` summary when available; it includes GPU +allocations and may be unavailable without permission. These fixtures do not +measure authentication or network fetches. diff --git a/tests/performance/electron-flow.cjs b/tests/performance/electron-flow.cjs new file mode 100644 index 00000000..0b1d4105 --- /dev/null +++ b/tests/performance/electron-flow.cjs @@ -0,0 +1,128 @@ +// Run after npm run webpack-prod: node node_modules/electron/cli.js tests/performance/electron-flow.cjs +const fs = require('fs') +const os = require('os') +const path = require('path') +const { app, BrowserWindow } = require('electron') +const physicalFootprint = require('./physicalFootprint.cjs') + +const profileDir = fs.mkdtempSync(path.join(os.tmpdir(), 'lepton-performance-')) +process.env.XDG_CONFIG_HOME = profileDir +process.env.LEPTON_RENDER_FIXTURE = 'memory-flow' +fs.writeFileSync(path.join(profileDir, '.leptonrc'), JSON.stringify({ autoUpdate: false, logger: { level: 'error' } })) +app.setPath('userData', path.join(profileDir, 'user-data')) +process.on('exit', () => { + try { fs.rmSync(profileDir, { recursive: true, force: true }) } catch (_) {} +}) + +const repo = path.resolve(process.env.LEPTON_PROFILE_REPO || path.join(__dirname, '../..')) +const started = performance.now() +app.getAppPath = () => repo +require(path.join(repo, 'main.js')) +const wait = ms => new Promise(resolve => setTimeout(resolve, ms)) + +app.whenReady().then(async () => { + try { + while (!BrowserWindow.getAllWindows().length) await wait(10) + const window = BrowserWindow.getAllWindows()[0] + if (window.webContents.isLoading()) { + await new Promise(resolve => window.webContents.once('did-finish-load', resolve)) + } + const run = expression => window.webContents.executeJavaScript(expression, true) + await run(`(async () => { + const deadline = Date.now() + 30000; + const isReady = () => document.querySelectorAll('.snippet-thumnail-list-item').length === 100 && document.querySelector('.code-table'); + while (!isReady() && Date.now() < deadline) { + await new Promise(resolve => setTimeout(resolve, 5)); + } + if (!isReady()) throw Error('Browsing fixture did not render'); + await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + })()`) + const startupMs = performance.now() - started + window.webContents.debugger.attach('1.3') + await window.webContents.debugger.sendCommand('Performance.enable') + const memory = async () => { + await window.webContents.debugger.sendCommand('HeapProfiler.collectGarbage') + await wait(150) + const metrics = app.getAppMetrics() + const processes = metrics.map(metric => ({ + type: metric.type, + serviceName: metric.serviceName, + workingSetKiB: metric.memory.workingSetSize + })) + // Working sets include shared pages; their sum is not unique physical memory. + return { + processes, + physicalFootprintBytes: physicalFootprint(metrics), + sumWorkingSetKiB: processes.reduce((total, metric) => total + metric.workingSetKiB, 0) + } + } + const initialMemory = await memory() + const firstUse = await run(`(async () => { + const poll = async (condition, message) => { + const deadline = performance.now() + 10000; + while (!condition() && performance.now() < deadline) await new Promise(resolve => setTimeout(resolve, 1)); + if (!condition()) throw Error(message); + }; + const click = index => document.querySelectorAll('.snippet-thumnail-list-item > div')[index].click(); + const start = performance.now(); + click(1); + await poll(() => document.querySelector('.markdown-section h1')?.textContent === 'Profile Markdown', 'Markdown did not render'); + const markdownMs = performance.now() - start; + click(0); + await poll(() => document.querySelector('.code-table')?.textContent.includes('const value0 = 0;'), 'Snippet did not render'); + const editStart = performance.now(); + document.querySelector('.snippet-control[title="Edit"]').click(); + await poll(() => document.querySelector('.edit-modal .CodeMirror'), 'Editor did not render'); + const cm = document.querySelector('.edit-modal .CodeMirror').CodeMirror; + await poll(() => cm.getMode().name === 'javascript', 'JavaScript mode did not load'); + const editorMs = performance.now() - editStart; + const input = document.querySelector('.gist-editor-filename-area'); + const modeStart = performance.now(); + Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set.call(input, 'component.vue'); + input.dispatchEvent(new Event('input', { bubbles: true })); + await poll(() => cm.getMode().name === 'vue', 'Vue mode did not load'); + const vueMs = performance.now() - modeStart; + const typing = []; + for (let index = 0; index < 12; index++) { + const typingStart = performance.now(); + cm.replaceRange('a', cm.getCursor()); + await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + typing.push(performance.now() - typingStart); + } + return { markdownMs, editorMs, vueMs, typing }; + })()`) + const afterMemory = await memory() + await run("document.querySelector('.edit-modal .close').click()") + await wait(200) + const closedMemory = await memory() + const startMetrics = await window.webContents.debugger.sendCommand('Performance.getMetrics') + const switching = await run(`(async () => { + const times = []; + for (let index = 2; index < 14; index++) { + const start = performance.now(); + document.querySelectorAll('.snippet-thumnail-list-item > div')[index].click(); + await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + if (!document.querySelector('.code-table').textContent.includes('const value0 = ' + index + ';')) { + throw Error('Wrong snippet after selection'); + } + times.push(performance.now() - start); + } + return times; + })()`) + const endMetrics = await window.webContents.debugger.sendCommand('Performance.getMetrics') + const metricDelta = name => { + const before = startMetrics.metrics.find(metric => metric.name === name).value + const after = endMetrics.metrics.find(metric => metric.name === name).value + return (after - before) * 1000 + } + console.log('PROFILE=' + JSON.stringify({ + startupMs, initialMemory, firstUse, afterMemory, closedMemory, switching, + switchScriptMs: metricDelta('ScriptDuration'), + switchTaskMs: metricDelta('TaskDuration') + })) + app.exit(0) + } catch (error) { + console.error(error) + app.exit(1) + } +}) diff --git a/tests/performance/electron-search.cjs b/tests/performance/electron-search.cjs new file mode 100644 index 00000000..3bdbdc00 --- /dev/null +++ b/tests/performance/electron-search.cjs @@ -0,0 +1,88 @@ +// Run after npm run webpack-prod: node node_modules/electron/cli.js tests/performance/electron-search.cjs +const fs = require('fs') +const os = require('os') +const path = require('path') +const { app, BrowserWindow } = require('electron') +const physicalFootprint = require('./physicalFootprint.cjs') + +const profileDir = fs.mkdtempSync(path.join(os.tmpdir(), 'lepton-performance-')) +process.env.XDG_CONFIG_HOME = profileDir +process.env.LEPTON_RENDER_FIXTURE = 'memory-search' +fs.writeFileSync(path.join(profileDir, '.leptonrc'), JSON.stringify({ autoUpdate: false, logger: { level: 'error' } })) +app.setPath('userData', path.join(profileDir, 'user-data')) +process.on('exit', () => { + try { fs.rmSync(profileDir, { recursive: true, force: true }) } catch (_) {} +}) + +const repo = path.resolve(process.env.LEPTON_PROFILE_REPO || path.join(__dirname, '../..')) +const started = performance.now() +app.getAppPath = () => repo +require(path.join(repo, 'main.js')) +const wait = ms => new Promise(resolve => setTimeout(resolve, ms)) + +app.whenReady().then(async () => { + try { + while (!BrowserWindow.getAllWindows().length) await wait(10) + const window = BrowserWindow.getAllWindows()[0] + if (window.webContents.isLoading()) { + await new Promise(resolve => window.webContents.once('did-finish-load', resolve)) + } + const ui = await window.webContents.executeJavaScript(`(async () => { + const deadline = Date.now() + 30000; + while (document.querySelectorAll('.result-group > li').length !== 1000 && Date.now() < deadline) { + await new Promise(resolve => setTimeout(resolve, 10)); + } + const rows = document.querySelectorAll('.result-group > li').length; + if (rows !== 1000) throw Error('Expected 1000 search results, got ' + rows); + await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + return { + rows, + count: document.querySelector('.search-result-count').textContent, + match: document.querySelector('.search-match-excerpt').textContent + }; + })()`) + const readyMs = performance.now() - started + await wait(500) + window.webContents.debugger.attach('1.3') + await window.webContents.debugger.sendCommand('HeapProfiler.collectGarbage') + await wait(150) + const heap = await window.webContents.debugger.sendCommand('Runtime.getHeapUsage') + const dom = await window.webContents.debugger.sendCommand('Memory.getDOMCounters') + const metrics = app.getAppMetrics() + const processes = metrics.map(metric => ({ + type: metric.type, + serviceName: metric.serviceName, + workingSetKiB: metric.memory.workingSetSize + })) + const physicalFootprintBytes = physicalFootprint(metrics) + const queryMs = await window.webContents.executeJavaScript(`(async () => { + const input = document.querySelector('.search-box'); + const start = performance.now(); + Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set.call(input, 'const value0'); + input.dispatchEvent(new Event('input', { bubbles: true })); + input.dispatchEvent(new KeyboardEvent('keyup', { bubbles: true, key: '0', keyCode: 48 })); + const deadline = Date.now() + 30000; + const isUpdated = () => Array.from(document.querySelectorAll('.search-match-excerpt .search-match-highlight')) + .some(node => node.textContent === 'value0'); + while (!isUpdated() && Date.now() < deadline) await new Promise(resolve => setTimeout(resolve, 2)); + if (!isUpdated()) throw Error('Updated search did not render'); + await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + return performance.now() - start; + })()`) + console.log('PROFILE=' + JSON.stringify({ + readyMs, + queryMs, + ui, + heapBytes: heap.usedSize, + domNodes: dom.nodes, + processes, + physicalFootprintBytes, + // Working sets include shared pages; their sum is not unique physical memory. + sumWorkingSetKiB: processes.reduce((total, metric) => total + metric.workingSetKiB, 0) + })) + app.exit(0) + } catch (error) { + console.error(error) + app.exit(1) + } +}) diff --git a/tests/performance/physicalFootprint.cjs b/tests/performance/physicalFootprint.cjs new file mode 100644 index 00000000..ae394da8 --- /dev/null +++ b/tests/performance/physicalFootprint.cjs @@ -0,0 +1,12 @@ +const { spawnSync } = require('child_process') + +// macOS's footprint tool accounts for memory not visible in resident-set sums, +// including GPU allocations. Other platforms can still use working-set data. +module.exports = function physicalFootprint (metrics) { + if (process.platform !== 'darwin') return null + const args = ['--noCategories', '-f', 'bytes', ...metrics.flatMap(metric => ['-p', String(metric.pid)])] + const result = spawnSync('/usr/bin/footprint', args, { encoding: 'utf8', timeout: 10000 }) + if (result.error || result.status !== 0) return null + const match = result.stdout.match(/Summary Footprint:\s*(\d+)\s*B/) + return match ? Number(match[1]) : null +} diff --git a/tests/utilities/search.test.js b/tests/utilities/search.test.js index ef2b0c04..60f78f62 100644 --- a/tests/utilities/search.test.js +++ b/tests/utilities/search.test.js @@ -100,6 +100,22 @@ describe('search utility', () => { ]) }) + it('retains only excerpt highlights for content matches while searching the entire file', () => { + const content = Array.from({ length: 100 }, (_, i) => `const helper${i} = ${i};`).join('\n') + SearchIndex.resetFuseIndex([SearchIndex.buildSearchRecord({ + id: 'many-lines', description: 'Utility', + files: { 'helper.js': { filename: 'helper.js', language: 'JavaScript', content } } + })]) + const [result] = SearchIndex.fuseSearch('const helper99') + expect(result.id).toBe('many-lines') + const match = result.searchMeta.matches.find(match => match.key === 'files.content') + expect(match.segments).toBe(match.excerpt.segments) + expect(match.segments.length).toBeLessThan(10) + expect(match.excerpt.segments).toContainEqual({ text: 'const', match: true }) + expect(SearchIndex.fuseSearch('helper99')[0].searchMeta.bestMatch.excerpt.segments) + .toContainEqual({ text: 'helper99', match: true }) + }) + it('keeps image filenames searchable without indexing Base64 payloads', () => { const imageContent = Buffer.from([ 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, From 67f49fe94ee67b835afd88aa50776ec4916a74f1 Mon Sep 17 00:00:00 2001 From: CosmoX Date: Sat, 31 Oct 2026 16:29:05 -0700 Subject: [PATCH 3/3] Keep collapsed snippet contents mounted --- app/containers/compatPanel/index.js | 4 ++-- app/containers/snippet/index.js | 2 +- tests/containers/compatPanel.test.js | 20 +++++++++----------- tests/smoke/electron-render-smoke-main.js | 10 ++++++---- tests/smoke/electron-render-smoke.js | 3 +-- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/app/containers/compatPanel/index.js b/app/containers/compatPanel/index.js index a14a89c6..14ed18b8 100644 --- a/app/containers/compatPanel/index.js +++ b/app/containers/compatPanel/index.js @@ -38,10 +38,10 @@ function Body (props) { } function Collapse (props) { - const { children, className, in: expanded, unmountOnExit = false, ...elementProps } = props + const { children, className, in: expanded, ...elementProps } = props return h('div', Object.assign({}, elementProps, { className: classNames('collapse', expanded && 'in', className) - }), expanded || !unmountOnExit ? children : null) + }), children) } Panel.Heading = Heading diff --git a/app/containers/snippet/index.js b/app/containers/snippet/index.js index d924c34d..d7f2ced6 100755 --- a/app/containers/snippet/index.js +++ b/app/containers/snippet/index.js @@ -657,7 +657,7 @@ class Snippet extends Component { - +
    { getRenderableImageSource(normalizedGistFile) || isNativeBinaryImage(normalizedGistFile) ? { expect(container.textContent).toContain('Expanded file') }) - it('releases collapsed content and recreates it when expanded', () => { + it('retains the same mounted content while collapsed and expanded', () => { const render = expanded => act(() => { - root.render(h(Collapse, { in: expanded, unmountOnExit: true }, h('pre', null, 'Large file'))) + root.render(h(Collapse, { in: expanded }, h('pre', null, 'Keep mounted'))) }) render(false) - expect(container.querySelector('pre')).toBeNull() + const content = container.querySelector('pre') + expect(content.textContent).toBe('Keep mounted') + expect(container.querySelector('.collapse').classList.contains('in')).toBe(false) render(true) - expect(container.querySelector('pre').textContent).toBe('Large file') + expect(container.querySelector('pre')).toBe(content) + expect(container.querySelector('.collapse').classList.contains('in')).toBe(true) render(false) - expect(container.querySelector('pre')).toBeNull() - expect(container.innerHTML).not.toContain('unmountOnExit') - }) - - it('preserves mounted content for collapses that do not opt in', () => { - act(() => root.render(h(Collapse, { in: false }, h('pre', null, 'Keep mounted')))) - expect(container.querySelector('pre').textContent).toBe('Keep mounted') + expect(container.querySelector('pre')).toBe(content) + expect(container.querySelector('.collapse').classList.contains('in')).toBe(false) }) }) diff --git a/tests/smoke/electron-render-smoke-main.js b/tests/smoke/electron-render-smoke-main.js index b40510e1..b58d3490 100644 --- a/tests/smoke/electron-render-smoke-main.js +++ b/tests/smoke/electron-render-smoke-main.js @@ -1426,15 +1426,17 @@ async function assertLargeSnippetRendering (window) { await window.webContents.executeJavaScript(`(async () => { const frame = () => new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); const toggle = document.querySelector('.file-expand'); - if (document.querySelector('.code-area')) throw Error('Collapsed file is mounted'); + const content = document.querySelector('.code-area'); + if (!content || content.getClientRects().length) throw Error('Collapsed file is missing or visible'); for (let cycle = 0; cycle < 2; cycle++) { toggle.click(); await frame(); - const rows = document.querySelectorAll('.code-table tr'); - if (rows.length !== 10000 || !rows[9999].textContent.includes('item9999')) throw Error('Expanded file lost content'); + const rows = content.querySelectorAll('.code-table tr'); + if (document.querySelector('.code-area') !== content || !content.getClientRects().length || + rows.length !== 10000 || !rows[9999].textContent.includes('item9999')) throw Error('Expanded file lost its mounted content'); toggle.click(); await frame(); - if (document.querySelector('.code-area')) throw Error('Collapsed file retained its renderer'); + if (document.querySelector('.code-area') !== content || content.getClientRects().length) throw Error('Collapsed file did not retain hidden content'); } })()`) return diff --git a/tests/smoke/electron-render-smoke.js b/tests/smoke/electron-render-smoke.js index ac03ad62..3f0492c3 100644 --- a/tests/smoke/electron-render-smoke.js +++ b/tests/smoke/electron-render-smoke.js @@ -51,8 +51,7 @@ const RENDER_FIXTURES = [ { name: 'large-collapsed', selector: '.file-header .file-expand', - text: 'Large snippet fixture|large.js', - forbiddenSelector: '.code-area' + text: 'Large snippet fixture|large.js' }, { name: 'large-editor',