When doing a low precision update, send the display-port instead of the
critical display port so that more appropriate cancelling decisions can be
made.
When doing a low precision update, send the display-port instead of the
critical display port so that more appropriate cancelling decisions can be
made.
This is a rollup of the following patches
part 0: Add a dynamic cast to ColorLayer*
part 1: Add a Composer2D interface to enable implementations to more efficiently compose layer trees
part 2: Let widgets expose Composer2Ds, if they have them
part 3: Expose a layers ogl "friend" API that Composer2D will consume
part 4: Hook Composer2D into the LayerManagerOGL rendering pipeline
part 5: Implement all the goop to let widget/gonk use a Composer2D (HwcComposer2D)
This approach ends up calling BlitTextureImage three extra times instead of
changing BlitTextureImage to support rotated buffers.
Supporting rotated buffers in BlitTextureImage is somewhat tricky because of
TiledTextureImage, and calling it three more times shouldn't be too bad (it
should be better than having to repaint)
Unfortunately, the rectangle manipulation code is a bit hairy.
--HG--
extra : rebase_source : a1018a22932675b154b76533f403a1328aa29cb5
This adds a RoundedRect class that we use to do the offsetting. This class can
probably also be used elsewhere. With this patch we handle the Gmail checkboxes
in a single draw instead of in pieces like we currently do.
--HG--
extra : rebase_source : 8809f12b386eef2ce7364fb98e681fba343efdfe
The main bug fixed here is that in half of our interfaces, we use "is browser frame/element" to mean "browser or app", and in the other half, we use it to mean "is browser not app".
There's a related, functional bug also fixed here, which is that a browser process doesn't inherit its parent's app-id. This causes problems e.g. for IndexedDB: If a browser inside an app uses IndexedDB, the DB should have the app's app-id.
I also modified Tab{Parent,Child} and nsFrameLoader to call "app" "ownOrContainingApp", to emphasize that we might have inherited the app from a parent process. I left nsIDocShell::appId alone, because changing that would have necessitated changing nsILoadGroup and therefore a /lot/ of users in Necko; it's also not clear it would have clarified anything in those cases.
The main bug fixed here is that in half of our interfaces, we use "is browser frame/element" to mean "browser or app", and in the other half, we use it to mean "is browser not app".
There's a related, functional bug also fixed here, which is that a browser process doesn't inherit its parent's app-id. This causes problems e.g. for IndexedDB: If a browser inside an app uses IndexedDB, the DB should have the app's app-id.
I also modified Tab{Parent,Child} and nsFrameLoader to call "app" "ownOrContainingApp", to emphasize that we might have inherited the app from a parent process. I left nsIDocShell::appId alone, because changing that would have necessitated changing nsILoadGroup and therefore a /lot/ of users in Necko; it's also not clear it would have clarified anything in those cases.