Hi,
I am working on GUI automation component of a performance monitoring product.
One of the common approaches to monitoring application is periodically capture
text from the control where changes are expected (content area of the browser
for Web applications). Text capturing ideally captures all text, including not
selectable and user input.
In the product I work on this is achieved by (1) forcing the application to
re-draw the texts in the window or part of the window of interest and (2)
hooking the functions that responsible for text drawing during the time
interval of the capturing is performed. Hooking is performed by modifying the
first bytes of the binary code of the hooked functions to jump to the hooking
functions, which process the same parameters and then jump back to allow the
hooked function to perform their job.
In relation to Firefox, his worked well with releases up to 10 ESR (starting
from 10, we implement support only to ESR releases), even though with each Ff
release forcing the text to be redrawn was more and more difficult.
In relation to this I have questions related to both Ff17 and Ff24 (I assume
that some answers might be not the same for these releases):
Which functions/technologies are drawing the text?
Is drawing performed by "normal" Windows APIs, like DrawTextEx or
ExtTextOut, or this is no longer the case?
Does Ff use some Microsoft technology which was not used before?
Does Ff use its own text drawing functions?
Does it delegates drawing to another process?
BTW. In relation to these questions, even if I disable use of Direct2D and
Direct Write according to
http://forums.mozillazine.org/viewtopic.php?t=1775755, I still see DWrite.dll
loaded into Firefox.exe process.
Does Ff caches drawn text, say, in memory device contexts, so that in case the
window or a region needs to be repainted, text does not need to be redrawn and
widow device context is updated through functions like BitBlt? If so, can such
caching be disabled programmatically or through configuration?
Does Ff patch Windows DLLs?
Are there other approaches to capturing text form Ff you can suggest?
Any help is very much appreciated.
Thank you,
Yuriy Look | Software Developer | Compuware APM
[email protected]<mailto:[email protected]> 313 227 3107
...............................................................................................................................
Simply Smarter APM |
Compuware.com/APM<http://www.compuware.com/en_us/application-performance-management.html?utm_source=signature&utm_medium=email>
| Facebook<http://www.facebook.com/CompuwareAPM> |
Twitter<http://www.twitter.com/CompuwareAPM> |
APMblog<http://apmblog.compuware.com/?utm_source=signature&utm_medium=email> |
Google+<http://gplus.to/CompuwareAPM>
_______________________________________________
dev-platform mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-platform