======
From eb29a25dd6dddc511388bf883c9b95843ecdb823 Mon Sep 17 00:00:00 2001
From: Adrian Johnson <ajohnson@redneon.com>
Date: Tue, 16 Nov 2010 13:18:39 +0000
Subject: win32: Use a font_face hash table to provide unique font faces
Similar to the freetype and toy font backends, use a hash table
to map logfont,hfont to font faces.
This fixes the multiple embedding of the same font in PDF.
https://bugs.freedesktop.org/show_bug.cgi?id=24849
======
From 6e3e329170ab4b96bc0d587c8071e869e228e758 Mon Sep 17 00:00:00 2001
From: Adrian Johnson <ajohnson@redneon.com>
Date: Thu, 18 Nov 2010 12:37:45 +0000
Subject: win32: fix font_face hashing
some bugs were discovered while testing with firefox
======
From 101fab7cd8a90f7cf3d8113c792b3f8c2a9afb7d Mon Sep 17 00:00:00 2001
From: Andrea Canciani <ranma42@gmail.com>
Date: Wed, 15 Jun 2011 09:37:36 +0000
Subject: win32-font: Improve static data reset function
The hashtable is guaranteed to only contain font faces which are
currently referenced, hence there is no need to remove any font face
when it is reset (just like for toy-font).
This makes the function simpler and fixes the assertion
Assertion failed: predicate != NULL, file cairo-hash.c, line 373
hit by multiple tests (the first one being "clear").
See https://bugs.freedesktop.org/show_bug.cgi?id=38049
======
--HG--
extra : rebase_source : 73172c901f80e2f6e9f52035e1d6eab2a220642f
When rendering progressively, make sure that any previously visible area that
is still visible is updated at the same time. This helps maintain visual
coherency on pages that invalidate previously visible areas while scrolling,
and when losing layers between updates.
This supersedes the previous method of only doing progressive updates while
scrolling.
FrameMetrics changed at some point so that the content rect and scroll offset
are stored pre-multiplied by the render resolution. The display-port calculation
in this function appears to have always been wrong(?)
Now that the region can be more complicated due to tile prioritisation, the
previous code for draw order doesn't work as intended. Robustify/simplify the
code by making it region-based.
When progressively updating tiles, prioritise tiles that intersect with the
current viewport before off-screen tiles. New content is still prioritised
over stale content.
This is a rollup of the following patches
- Change the interpretation of FrameMetrics.mZoom to a "resolution-indepedent zoom", instead of a resolution-depedent scale factor. r=roc
- Remove mention of "meta" from TabChild. r=roc
- Remove some useless logging. r=roc
- Tag FrameMetrics with its composition bounds at paint time. r=roc
- Add a helper to calculate the render resolution for a FrameMetrics. r=roc
- Add a helper to compute the approximate CSS dimensions a FrameMetrics will cover during composition. r=roc
- BrowserElementScrolling doesn't actually care about zoom or resolution. r=roc
- Accept the viewport that content has calculated, when it's received the latest widget geometry update. r=roc
- Mechanically separate uses of zoom/resolution based on new definitions. r=roc
- Convert GetViewportInfo()'s resolution-dependent scale into resolution-indepedent zoom. r=roc
- Reinterpret defaultZoom == 0.0 as "intrinsic scale". r=jwir3,roc