Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
Перейти к файлу
Ryan Hunt 2dd7814423 Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical
This commit moves ContentClient from creating a CapturedBufferState for
buffer operations, to performing all of those operations on the
DrawTarget(Capture). Creating a DrawTargetCapture is now performed
by the RotatedBuffer when we BeginPaint, all operations are performed
on this capture, and then it's returned to the ClientPaintedLayer
as a PaintTask.

This commit is an involved refactoring of ContentClient and RotatedBuffer
to get this all to work. Here are the major parts:

1. RotatedBuffer is refactored to always perform operations on a single
   DrawTarget, which may be a single DT, dual DT, or capture.
2. RotatedBuffer adds BeginCapture and EndCapture methods to switch
   which DT is used in operations
3. ContentClient uses the RB capture methods when we are async painting
4. CC::BeginPaint is refactored to only perform capturing on a single
   RotatedBuffer. This is because we can't have the output of one
   PaintTask be the input of a different PaintTask due to the design
   of the Snapshot API.
      a. This can occur, today, by doing a FinalizeFrame only to later
         fail to Unrotate the buffer, causing a new RB to be created
         and painted into
      b. The previous PaintThread code worked because it used the
         buffer operations which didn't use Snapshot's
      c. This is fixed by not doing FinalizeFrame on a buffer if we
         realize we cannot unrotate it, and switching to initializing
         a buffer using the front buffer which should be up to date.
      d. I don't like touching this code, but it passes reftests,
         might be a performance improvement, and I've tested it on
         known regressions from the last time I messed up this code.
5. CC::PrepareForPaint is inlined into BeginPaint because dual draw
   targets can be cleared correctly from a previous commit
6. The code paths in ClientPaintedLayer are unified because we no
   longer need to special case this beyond setting the correct
   ContentClient flag.
7. CapturedPaintState and CapturedBufferState are removed in favor
   of PaintTask. Additionally EndLayer is no longer needed as all
   quadrants of a rotated buffer are in the same capture, so we
   don't need special case flushing code.

MozReview-Commit-ID: 9UI40dwran

--HG--
extra : rebase_source : 809d9816970648468de972c30b0c230c2f21e27b
extra : source : 405ad351821813333c0e989b93e2aeb49ba8552c
2018-07-26 11:23:26 -05:00
.cargo Bug 1468950 - Update serde_derive patch for changes in WR PR 2819. r=Gankro 2018-06-21 08:15:40 -04:00
.vscode
accessible Bug 1362034 - Tests for addTab() to provide the correct triggering principal. r=ckerschb r?=gijs 2018-07-06 21:16:29 +01:00
browser Backed out changeset 435661644b2d (bug 1481401) For Eslint failure on PanelMultiView.jsm CLOSED TREE 2018-08-10 00:02:02 +03:00
build Bug 1464170 - Support PGO in clang builds on Linux. r=dmajor 2018-08-10 05:54:11 +09:00
caps Bug 1446940 part 5. Stop getting docshells from windows via getInterface in dom/editor/etc code. r=kmag 2018-08-01 13:07:11 -04:00
chrome Bug 1479544. Remove nsIXULChromeRegistry::ReloadChrome. r=mossop 2018-08-03 15:14:43 +00:00
config Bug 1481956: Allow SIMPLE_PROGRAMS to embed manifest from source directory; r=froydnj 2018-08-08 16:16:35 -06:00
db Bug 1467121 - Upgrade to SQLite 3.24.0. r=mak 2018-06-06 09:52:32 -04:00
devtools Bug 1362034 - Fixup for tests for addTab() to provide the correct triggering principal. 2018-08-09 22:05:51 +01:00
docshell Bug 1362034 - Have addTab() provide the correct triggering principal. r=ckerschb r=Gijs 2018-07-06 15:14:54 +01:00
dom Bug 1479354 - Null-check this.listener when reporting cached geolocation values r=jdm 2018-07-31 20:23:24 +07:00
editor Bug 1478604 - Fix RepaintSelectionRunner so that it does something for non-presShell impls. r=masayuki 2018-08-07 12:55:21 +00:00
embedding
extensions Bug 1480699 - Use IPDL's promise instead in PRemoteSpellcheckEngine. r=masayuki 2018-07-31 16:36:43 +09:00
gfx Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical 2018-07-26 11:23:26 -05:00
gradle/wrapper Bug 1476165 - Part 2: Update Android Gradle plugin to version 3.1.0. r=nalexander,snorp 2018-07-17 13:20:19 +01:00
hal Bug 1480177 Lowercase includes to fix MinGW Build Errors r=froydnj 2018-07-30 22:43:24 -05:00
image Bug 1474900: Assert there are no pending locks when destroying the image proxy. r=tnikkel 2018-08-07 12:54:15 +02:00
intl Bug 1480881 - Upgrade Gecko to Fluent 0.6. r=stas 2018-08-07 00:08:29 +00:00
ipc Merge mozilla-central to mozilla inbound. a=merge 2018-08-09 01:10:56 +03:00
js Bug 1482135 - Always root Scope::Data pointers when creating scopes r=jandem 2018-08-09 18:19:47 +01:00
layout Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-08-09 13:06:13 +03:00
media Bug 1433158 - Disable avx512 in libvpx; r=jya 2018-08-07 11:29:17 -04:00
memory Bug 1090497 - Re-enable warnings as errors on clang-cl. r=froydnj 2018-07-31 22:10:07 +09:00
mfbt Bug 1481005 - Explicitly delete dtor of AlignmentFinder::Alinger to avoid MSVC warning breaking debug builds. r=froydnj 2018-08-07 17:58:39 +00:00
mobile Backed out changeset d3978309484a (bug 1480920) For Android build bustages CLOSED TREE 2018-08-09 23:59:05 +03:00
modules Bug 1478732 - Backed out changeset 9de74f5039a4 r=backout 2018-08-09 18:56:02 +02:00
mozglue Bug 1481719 - Disable profile-instr-out-of-date warnings explicitly rather than allowing all warnings where they appear. r=dmajor 2018-08-09 06:07:33 +09:00
netwerk Bug 1482129 - Exempt stylesheets, fonts and images when canceling loading of slow HTTP requests of tracking resources; r=valentin 2018-08-09 14:03:10 -04:00
nsprpub Bug 1477680, land NSPR 4.20 beta snapshot 607196c7ef66, r=me 2018-07-23 16:05:53 +02:00
other-licenses Bug 1478568 part 1: Update IAccessible2 so we can use new roles (IA2_ROLE_BLOCK_QUOTE, etc.). r=MarcoZ 2018-07-27 10:27:44 +10:00
parser Bug 1480628 - Remove nsIWebShellServices; r=nika 2018-08-07 15:12:55 -07:00
python Bug 1476661 - Ensure H2 dependencies are packaged alongside wptserve where needed, r=jgraham 2018-08-09 11:38:37 +01:00
security Merge inbound to mozilla-central. a=merge 2018-08-07 00:58:13 +03:00
services Merge inbound to mozilla-central. a=merge 2018-08-09 13:02:05 +03:00
servo Bug 1464786 - Implement flow-relative values for resize property. r=emilio 2018-08-08 23:40:06 +00:00
startupcache Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
storage Bug 1476009: Remove unnecessary initialization. r=mak 2018-07-16 17:56:02 +01:00
taskcluster Bug 1477706: [test-verify] Move logic for finding locally changed files to a helper; r=ahal 2018-08-03 10:07:04 -06:00
testing Bug 1362034 - Tests for addTab() to provide the correct triggering principal. r=ckerschb r?=gijs 2018-07-06 21:16:29 +01:00
third_party Backed out changeset 08fa47a24e89 (bug 1445451) for failing Btup 2018-08-09 02:20:25 +03:00
toolkit Bug 1362034 - Have addTab() provide the correct triggering principal. r=ckerschb r=Gijs 2018-07-06 15:14:54 +01:00
tools Bug 1477706: [try-select] Let taskgraph know that it is being called from try-select; r=ahal 2018-08-03 10:25:42 -06:00
uriloader Bug 1446940 part 5. Stop getting docshells from windows via getInterface in dom/editor/etc code. r=kmag 2018-08-01 13:07:11 -04:00
view Bug 1462784 - Remove EVENTS category. r=njn 2018-05-18 17:36:30 -04:00
widget Bug 1481148 - Make TSFTextStore::MaybeHackNoErrorLayoutBugs() keep hacking the result of GetTextExt() even on Win10 build 17643 and later for ATOK 2016 and newer r=m_kato 2018-08-07 15:56:17 +09:00
xpcom Bug 1399789 - nsSubstringSplitter/nsCSubstringSplitter is not defined anymore; r=erahm 2018-08-09 14:18:22 +02:00
xpfe/appshell Bug 1479570. Get Add a getter to get a docshell from nsIWindowlessBrowser. r=kmag 2018-08-03 00:05:07 +00:00
.arcconfig Bug 1460463 - Update .arcconfig to make history mutable; r=gps 2018-05-09 23:49:52 +00:00
.clang-format
.clang-format-ignore Bug 1464452 - Add richtext to the list of thirdparties r=andi 2018-05-25 09:01:11 -07:00
.cron.yml Bug 1477021 - Schedule pipfile updates to run once per week. r=sfraser 2018-07-27 15:12:36 +00:00
.eslintignore Bug 1474414 - Move most of browser/extensions/activity-stream to browser/components/newtab r=Mardak 2018-07-26 20:50:49 -07:00
.eslintrc.js Bug 1436303 - Enable mozilla/no-define-cc-etc for some DevTools files;r=ochameau,standard8 2018-06-08 16:46:59 +02:00
.flake8 Backed out changeset 4738f8111a82 (bug 1478338) for linting failure at builds/worker/checkouts/gecko/build/moz.configure/android-ndk.configure:8 on a CLOSED TREE 2018-07-25 16:56:19 +03:00
.gdbinit
.gdbinit_python
.gitignore Bug 1475904 - Add .swp files (for open, unnamed vim buffers) to .gitignore. r=froydnj 2018-07-16 12:26:13 +10:00
.hgignore Bug 1469801 - Add gcov-related files to .hgignore. r=jmaher (DONTBUILD) 2018-06-20 11:05:46 +01:00
.hgtags No bug - Tagging mozilla-central 4f6e597104dabedfecfafa2ab63dc79fd7f8bc7a with FIREFOX_NIGHTLY_62_END a=release DONTBUILD CLOSED TREE 2018-06-25 09:31:32 -07:00
.lldbinit Bug 1481555: Use lldb's python API to summarise nsAtoms. r=froydnj 2018-08-08 15:11:22 +00:00
.mailmap
.taskcluster.yml Bug 1470886 - only produce tasks for recognized tasks_for; r=tomprince 2018-07-03 18:07:42 +00:00
.yamllint
.ycm_extra_conf.py
AUTHORS
CLOBBER Bug 1435409 - use our own clang rather than the NDK clang to build Android; r=nalexander 2018-07-27 09:52:53 -05:00
Cargo.lock Backed out changeset 08fa47a24e89 (bug 1445451) for failing Btup 2018-08-09 02:20:25 +03:00
Cargo.toml Bug 1474871 - Link dump_syms against rustc-demangle. r=ted 2018-07-12 10:23:12 +09:00
GNUmakefile
LEGAL
LICENSE
Makefile.in Bug 1464170 - Support PGO in clang builds on Linux. r=dmajor 2018-08-10 05:54:11 +09:00
Pipfile Bug 1472201 - Vendor pytest 3.6.2 and dependencies; r=ahal 2018-06-29 15:37:31 +01:00
Pipfile.lock Bug 1472201 - Vendor pytest 3.6.2 and dependencies; r=ahal 2018-06-29 15:37:31 +01:00
README.txt Bug 1460030 - Update the nightly URL in the README.txt file r=kohei 2018-05-08 21:22:10 +02:00
aclocal.m4
build.gradle Backed out changeset d3978309484a (bug 1480920) For Android build bustages CLOSED TREE 2018-08-09 23:59:05 +03:00
client.mk Bug 1461836 - Write out complete configure dependencies from configure for consumption by make and non-make backends. r=mshal 2018-05-21 14:01:50 -07:00
client.py
configure.in
configure.py Bug 1461836 - Write out complete configure dependencies from configure for consumption by make and non-make backends. r=mshal 2018-05-21 14:01:50 -07:00
gradle.properties
gradlew
mach
moz.build Bug 1346026 - Vendor pipenv 2018.5.18 and transient dependencies; r=ahal 2018-05-17 19:06:20 +01:00
moz.configure Bug 1480771 - Take CLOBBER into account when deciding whether to re-run configure. r=gps,firefox-build-system-reviewers 2018-08-06 21:38:43 +00:00
mozilla-config.h.in Bug 1463637: Remove mozilla-config.h hacks for Hunspell extra includes. r=ted 2018-05-22 20:36:39 -07:00
old-configure.in Bug 1481505 - add aarch64 bits to DEFINES and DSO_LDOPTS; r=dmajor 2018-08-08 16:37:05 -04:00
package-lock.json Bug 1471540 - Update eslint-plugin-react to 7.10.0. r=ahal 2018-07-25 18:09:41 +00:00
package.json Bug 1471540 - Update eslint-plugin-react to 7.10.0. r=ahal 2018-07-25 18:09:41 +00:00
settings.gradle
test.mozbuild

README.txt

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://developer.mozilla.org/en/Mozilla_Source_Code_Directory_Structure

For information on how to build Mozilla from the source code, see:

    https://developer.mozilla.org/en/docs/Build_Documentation

To have your bug fix / feature added to Mozilla, you should create a patch and
submit it to Bugzilla (https://bugzilla.mozilla.org). Instructions are at:

    https://developer.mozilla.org/en/docs/Creating_a_patch
    https://developer.mozilla.org/en/docs/Getting_your_patch_in_the_tree

If you have a question about developing Mozilla, and can't find the solution
on https://developer.mozilla.org, you can try asking your question in a
mozilla.* Usenet group, or on IRC at irc.mozilla.org. [The Mozilla news groups
are accessible on Google Groups, or news.mozilla.org with a NNTP reader.]

You can download nightly development builds from the Mozilla FTP server.
Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy. Firefox nightlies, for example, can be found at:

    https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
            - or -
    https://www.mozilla.org/firefox/channel/desktop/#nightly