Canvas isn't "a term that is generic for the goods and/or services identified in the application". "Software as a Service" would be, and so would "Collaboration Software".
A company called "Chainsaw" could be a lumberjack company. One called "Chisels" could provide stone masonry services. This, despite the fact that those are generic words for tools that would be reasonably expected to be in use for those kinds of work.
In your example, a chainsaw company could produce a product called Chainsaw, but it couldn't (shouldn't be able to, at least) gain a trademark for that name.
The users are using the canvas, not the company.
Would you say that a chainsaw renting company could call itself "Chainsaw" (because it "uses" chainsaws as a means to provide the user with sawing capabilities)?
That's why you can't register a trademark for "electric car" or "autonomous vehicle" or "html web page" for an electric car, autonomous vehicle or html web page business.
If you could, other manufacturers would not be able to describe their goods without infringing your mark. Since the product in question is metaphorically like a canvas, but is neither 1) a heavy-duty, plain-weave fabric; nor 2) the <canvas> html tag, another company could create a competing product and market it without using the word canvas, no problem. Hence, the generic exclusion would not apply.
(IANAL. However, was married to a trademark attorney for over ten years, picked up some things. Also, wikipedia. https://en.wikipedia.org/wiki/Trademark_distinctiveness#Gene...)