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
Go to file
Morris Tseng f3d4ff499f Bug 1379920 - Introduce CanvasRenderer and its derived classes. r=nical,jrmuizel
This patch move common canvas interfaces out of layer. So I create a
base class CanvasRenderer which move interfaces from CanvasLayer.
CopyableCanvasRenderer from CopyableCanvasLayer, ClientCanvasRenderer
from ClientCanvasLayer and WebRenderCanvasRenderer from
WebRenderCanvasLayer. And finally, WebRenderCanvasRendererSync for the
non layers free mode and WebRenderCanvasRendererAsync for the layers
free mode.

Summary all changes in this patch.
* Move class CanvasLayer::Data to CanvasRenderer.h and rename it to
CanvasInitializeData. Because this class not only use by layer but also
* Move BasicCanvasLayer::UpdateSurface to
CopyableCanvasRenderer::ReadbackSurface.
* CanvasClient::Update now accepts ShareableCanvasRenderer as parameter.
not CanvasLayer.
use by layers-free mode. Move it out of layer's class makes more sense.
* Add InitializeCanvasRenderer in the canvas related classes to
initialize CanvasRenderer without involved layer.
* All canvas layer has function "CreateCanvasRendererInternal" that
initialize corresponding CanvasRenderer.

* Description of all CanvasRenderer classes:
** CanvasRenderer: Based classes.
** CopyableCanvasRenderer: Can readback canvas content to a
SourceSurface. Use by BasicCanvasLayer.
** ShareableCanvasRenderer: Provide IPC capabilities that allow sending
canvas content over IPC. This is pure virtual class because the IPC handling is
different in different LayerManager.
** ClientCanvasRenderer: Implement IPC handling for ClientLayerManager.
Use by ClientCanvasLayer.
** WebRenderCanvasRenderer: Implement IPC handling for
WebRenderLayerManager.
** WebRenderCanvasRendererSync: Use by WebRenderCanvasLayer.
** WebRenderCanvasRendererAsync: Use by layers-free mode in WebRender.

class diagram shows below:

                      +--------------+
                      |CanvasRenderer|
                      +-------+------+
                              ^
                              |
                  +----------------------+
                  |CopyableCanvasRenderer|
                  +----------------------+
                              ^
                              |
                  +-----------+-----------+
                  |ShareableCanvasRenderer|
                  +-----+-----------------+
                        ^      ^
          +-------------+      +-------+
          |                            |
+--------------------+       +---------+-------------+
|ClientCanvasRenderer|       |WebRenderCanvasRenderer|
+--------------------+       +--------+--+-----------+
                                      ^  ^
              +-----------------------+  +----+
              |                               |
+-------------+-------------+   +-------------+--------------+
|WebRenderCanvasRendererSync|   |WebRenderCanvasRendererAsync|
+---------------------------+   +----------------------------+

MozReview-Commit-ID: 5hqQ19W169r
2017-08-03 13:55:14 +08:00
.cargo
.vscode Bug 1377937 - Fix VSCode tasks on Windows (NPOTB, DONTBUILD). r=gps 2017-07-03 21:55:07 +03:00
accessible Merge m-c to inbound a=merge 2017-08-02 17:46:32 -07:00
addon-sdk Merge inbound to central, a=merge 2017-08-02 17:11:51 -07:00
browser Remove unused lazy imports. r=trivial (no bug) 2017-08-02 21:09:38 -07:00
build Bug 1386588 - Always print out the commands run by the clang build job. r=gps,a=KWierso 2017-08-03 08:14:02 +09:00
caps Bug 1326520 - Rename nsIURI.path to pathQueryRef. r=valentin.gosu 2017-07-29 20:50:21 +09:00
chrome Bug 1326520 - Rename nsIURI.path to pathQueryRef. r=valentin.gosu 2017-07-29 20:50:21 +09:00
config Update configs. IGNORE BROKEN CHANGESETS CLOSED TREE NO BUG a=release ba=release 2017-08-02 09:12:05 +01:00
db Bug 1371364 - Upgrade to SQLite 3.19.3. r=mak 2017-06-08 15:23:34 -04:00
devtools Merge inbound to central, a=merge 2017-08-02 17:11:51 -07:00
docshell Bug 1384825 : update browser_loadDisallowInherit.js for new data: URI origin model. r=smaug 2017-08-03 09:35:45 +08:00
dom Bug 1379920 - Introduce CanvasRenderer and its derived classes. r=nical,jrmuizel 2017-08-03 13:55:14 +08:00
editor Backed out changeset bcd223309de8 (bug 1360666) for asserting in stylo reftests a=backout 2017-08-02 18:14:56 -07:00
embedding
extensions Bug 1384835 (part 3, attempt 2) - Remove the Preferences::Get*CString() variants that return nsAdoptingCString. r=froydnj. 2017-07-31 14:28:48 +10:00
gfx Bug 1379920 - Introduce CanvasRenderer and its derived classes. r=nical,jrmuizel 2017-08-03 13:55:14 +08:00
gradle/wrapper
hal Bug 1382955 (part 3) - Remove a bunch of unused HAL stuff. r=gsvelto,kanru. 2017-08-02 10:09:32 +10:00
image Bug 1326520 - Rename nsIURI.path to pathQueryRef. r=valentin.gosu 2017-07-29 20:50:21 +09:00
intl Bug 1384834 (part 1) - Remove remaining uses of nsAdoptingString. r=erahm. 2017-07-28 11:21:45 +10:00
ipc Bug 1386422: Clean up error handling and stream positioning in StreamHandlerFromOBJREF; r=jimm 2017-08-01 15:43:26 -06:00
js Remove unused lazy imports. r=trivial (no bug) 2017-08-02 21:09:38 -07:00
layout Bug 1379920 - Introduce CanvasRenderer and its derived classes. r=nical,jrmuizel 2017-08-03 13:55:14 +08:00
media Bug 1326520 - Rename nsIURI.path to pathQueryRef. r=valentin.gosu 2017-07-29 20:50:21 +09:00
memory Merge inbound to central, a=merge 2017-08-02 17:11:51 -07:00
mfbt merge mozilla-inbound to mozilla-central a=merge 2017-07-27 10:57:25 +02:00
mobile Merge inbound to central, a=merge 2017-08-01 13:17:21 -07:00
modules Merge inbound to central, a=merge 2017-08-02 17:11:51 -07:00
mozglue Bug 1384819 (part 3) - Remove the return value from the stack walker functions. r=glandium. 2017-07-27 16:46:55 +10:00
netwerk Merge inbound to central, a=merge 2017-08-02 17:11:51 -07:00
nsprpub Bug 1372579, uplift NSPR_4_16_RTM, no code changes, only version numbers, r=me 2017-07-27 15:33:57 +02:00
other-licenses Bug 1381916 - Remove support for plugins on Android r=jchen,bsmedberg 2017-07-31 12:25:16 -05:00
parser Backed out changeset 548ed79f2337 (bug 1053321) for strange and terribly-reported failures in Android opt mochitest-15 and debug mochitest-36 2017-08-01 23:13:42 -07:00
probes
python Merge m-c to inbound a=merge 2017-08-02 17:46:32 -07:00
rdf Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
security Merge inbound to central, a=merge 2017-08-02 17:11:51 -07:00
services Merge autoland to central, a=merge 2017-08-02 15:47:58 -07:00
servo servo: Merge #17926 - stylo: Report a specific error for invalid CSS color values (from jdm:valueerr); r=heycam 2017-07-31 15:50:14 -05:00
startupcache Bug 1326520 - Rename nsIURI.path to pathQueryRef. r=valentin.gosu 2017-07-29 20:50:21 +09:00
storage Bug 1347963 - part 1 - introduce mozilla::RecursiveMutex; r=erahm 2017-03-14 14:05:51 -04:00
taskcluster Merge m-c to inbound a=merge 2017-08-02 17:46:32 -07:00
testing Bug 1381728 - Part 2: remove legacy web platform test for <object>. r=anne 2017-08-03 09:38:48 +08:00
third_party Bug 1383831 - Upgrade rust-url to version 1.5.1 r=froydnj 2017-08-02 13:44:48 +03:00
toolkit Bug 1386937: Fix typo in initialization check. r=trivial 2017-08-02 22:01:58 -07:00
tools Merge inbound to central, a=merge 2017-08-02 17:11:51 -07:00
uriloader Merge m-c to autoland, a=merge 2017-07-31 17:53:14 -07:00
view Backed out changeset 497dbf087ad5 (add diagnostic asserts) (bug 1354933) 2017-07-07 14:54:55 -05:00
widget Bug 1384834 (part 2) - Remove remaining uses of nsAdoptingCString. r=erahm. 2017-07-28 11:21:47 +10:00
xpcom Bug 1386499 - Remove some nsXPIDLCString uses from nsComponentManager. r=erahm. 2017-08-02 14:27:25 +10:00
xpfe Bug 1380294: Anchor non-tab tooltips to the correct remote browser. r=aswan 2017-08-01 15:01:06 -07:00
.clang-format Backed out changeset b14cbbf5256a (bug 1378250) on request from sylvestre 2017-07-05 16:55:27 +02:00
.clang-format-ignore Bug 1374730 - Follow-up to update some non-code mentions of webrender_traits to webrender_api. r=me and DONTBUILD 2017-07-26 09:56:52 -04:00
.clang-tidy
.cron.yml bug 1384794 - Don't schedule win nightlies explicitly, because we are scheduling all desktop at once now. r=aki a=bustage 2017-07-27 21:14:48 -04:00
.eslintignore Backed out changeset d0ed0997f4e0 (bug 1369801) 2017-07-27 18:14:48 +02:00
.eslintrc.js
.flake8
.gdbinit
.gdbinit_python Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted 2017-05-25 11:48:03 -04:00
.gitignore Bug 1382304: hg/gitignore captures/ dir. r=nalexander 2017-07-19 11:08:06 -07:00
.hgignore Bug 1382304: hg/gitignore captures/ dir. r=nalexander 2017-07-19 11:08:06 -07:00
.hgtags No bug - Tagging mozilla-central 320642944e42a889db13c6c55b404e32319d4de6 with FIREFOX_BETA_56_BASE a=release DONTBUILD CLOSED TREE 2017-08-02 08:35:53 +01:00
.inferconfig
.lldbinit Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted 2017-05-25 11:48:03 -04:00
.taskcluster.yml Bug 1328727: revert to --base-repository=https://hg.mozilla.org/mozilla-central; r=gps 2017-07-25 01:26:41 +00:00
.ycm_extra_conf.py
aclocal.m4
Android.mk
AUTHORS
build.gradle Bug 1255227 - Part 1: Stop using deprecated android-sdk-manager Gradle plugin. r=sebastian 2017-07-18 09:46:09 -07:00
client.mk Bug 1382511 - Add --output-sync=line to MOZ_MAKE_FLAGS where available. r=glandium 2017-07-25 17:23:25 -07:00
client.py
CLOBBER Update configs. IGNORE BROKEN CHANGESETS CLOSED TREE NO BUG a=release ba=release 2017-08-02 09:12:05 +01:00
configure.in
configure.py
GNUmakefile
gradle.properties
gradlew
LEGAL
LICENSE
mach
Makefile.in Bug 1382502 - Enable sccache on PGO builds. r=ted 2017-07-20 11:31:14 +09:00
moz.build bug 1370176, generic configuration for l10n, r=flod,gps 2017-06-05 10:28:33 +02:00
moz.configure Bug 1384396 - Detect Watchman Mercurial integration in configure; r=nalexander 2017-07-27 14:12:35 -07:00
mozilla-config.h.in Bug 1371266 - libpng should be built with -std=c89. r=glennrp 2017-06-08 06:29:03 -07:00
npm-shrinkwrap.json Bug 1380956 - List only the directly required dependencies for ESLint in the top-level package.json. r=ahal 2017-07-14 12:21:54 +01:00
old-configure.in Merge m-c to autoland, a=merge 2017-07-27 16:33:25 -07:00
package.json Bug 1380956 - List only the directly required dependencies for ESLint in the top-level package.json. r=ahal 2017-07-14 12:21:54 +01:00
README.txt
settings.gradle Backed out 2 changesets (bug 1355625) for causing bustage a=backout 2017-06-22 12:05:56 -07:00
test.mozbuild

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://nightly.mozilla.org/