author Masayuki Nakano <masayuki@d-toybox.com>
Mon, 23 Jul 2018 22:04:54 +0900
changeset 428496 4d3ed6d8b8742ca8bafe403d1161da4ca9bdb351
parent 423047 1e045c12a8fe10f10ea9a29020296e06dc1e65f7
child 432592 d6d71f8bede06f31c8a5c28ecf1e3c29deb3234d
permissions -rw-r--r--
Bug 1477898 - Make AutoRestoreEditorState not call EditorBase::SetFlags() since the virtual call cost appears in profile r=m_kato Unfortunately, EditorBase::SetFlags() is virtual call even though AutoRestoreEditorState always works only with TextEditor (the method is overridden only by HTMLEditor). And AutoRestoreEditorState is a hot path when <input>.value or <textarea>.value is set a lot. Fortunately, EditorBase::Flags() can be an inline method. So, we can make both constructor and destructor of the class check if it'll change flags actually. Additionally, this patch fixes nsTextEditorState::PrepareEditor() too. MozReview-Commit-ID: 7S4hLRRrbfB

# .hgignore - List of filenames hg should ignore

# Filenames that should be ignored wherever they appear

# Vim swap files.

# Emacs directory variable files.

# User files that may appear at the root

# Empty marker file that's generated when we check out NSS

# Build directories

# gecko.log is generated by various test harnesses

# Build directories for js shell

# SpiderMonkey configury
# SpiderMonkey test result logs
# SpiderMonkey clone of the webassembly spec repository

# Java HTML5 parser classes

# SVN directories

# Ignore the files and directory that Eclipse IDE creates

# Ignore the files and directory that JetBrains IDEs create.
# Android Monitor in Android Studio creates a captures/ directory.

# Gradle cache.

# Local Gradle configuration properties.

# Python stuff installed at build time.

# Git repositories

# Ignore chrome.manifest files from the devtools loader

# Ignore node_modules directories in devtools

# git checkout of libstagefright

# Tag files generated by GNU Global

# Git clone directory for updating web-platform-tests

# Third party metadata for web-platform-tests

# Android Gradle artifacts.

# XCode project cruft

# Rust/Cargo output from running `cargo` directly

# Ignore mozharness execution files

# Ignore tox generated dir

# Ignore ESLint node_modules

# Ignore talos virtualenv and tp5n files.
# The tp5n set is supposed to be decompressed at
# testing/talos/talos/tests/tp5n in order to run tests like tps
# locally. Similarly, running talos requires a Python package virtual
# environment. Both the virtual environment and tp5n files end up littering
# the status command, so we ignore them.

# Ignore talos webkit benchmark files; source is copied from in-tree /third_party
# into testing/talos/talos/tests/webkit/PerformanceTests/ when run locally
# i.e. speedometer, motionmark, stylebench

# Ignore toolchains.json created by tooltool.

# Ignore files created when running a reftest.

# tup database

# Ignore sync tps logs and reports

# Ignore Visual Studio Code workspace files.


# Ignore Infer output

# https://bz.mercurial-scm.org/show_bug.cgi?id=5322

# Ignore various raptor performance framework files