Performance and canvas
Revert 8a26ca4..30d7040

This rolls back to commit 8a26ca4a130597321891f281fecc489b8640d18b.
Revert "Revert 8a26ca4..30d7040"

This reverts commit 43a53184b55251b5c0f75d210fb34b1a340f6528.
Revert 8a26ca4..534b15f

This rolls back to commit 8a26ca4a130597321891f281fecc489b8640d18b.
Revert 30d7040..5d630c6

This rolls back to commit 30d70400e7eb461500d62bd6ef91f166283cdb78.