{"push_id":2046302454,"size":675,"distinct_size":17,"ref":"refs/heads/master","head":"e6f3aba5558ff94c8d7cb1b690fca64dcfa60fb0","before":"2e9b33bf96ecf2bd56d20338f431168fd8ea6918","commits":[{"sha":"fa768843f33c1962cdfa307caae933859c6a7ec3","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"Build a caching framework into the UIA NVDAObject class so as to allow for instantiating a UIA NVDAObject with a UIAElement containing prefetched UI Automation property values via a UI Automation CacheRequest, available for the remainder of the core cycle the NVDAObject was instantiated in. This is useful when instantiating an NVDAObject purely to  generate a control field, where the caller knows what properties are needed.\n\nAll code within UIA NVDAObject and its subclasses should use the new _getUIACacheablePropertyValue method to fetch UI Automation properties as this will check the cache first.\n\nMake use of the new Win 10 RS2 bulk-fetch UIA APIs available on IUIAutomationTextRange3 such as getChildrenBuildCache, getEnclosingElementBuildCache and getAttributeValues. When not available, compatibility code falls back to the older APIs, providing the same cached results, but over multiple calls.\n\n UIATextInfo._getTextWithFieldsForUIARange and related content fetching code has been updated to use cacheRequests where possible. E.g. getChildrenBuildCache, getEnclosingElementBuildCache etc.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/fa768843f33c1962cdfa307caae933859c6a7ec3"},{"sha":"509131315d76a14b8cd7b758d871a298e41f7eec","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"Edge: split out pre gap removal code into its own TextInfo class and use it in Windows builds less 15048. Windows builds above this now can use the generic UI Automation textWithFields code. Along with the added caching, these changes provide up to a 3x speed-up in reading lines in Microsoft Edge.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/509131315d76a14b8cd7b758d871a298e41f7eec"},{"sha":"f66ce5d067f1abba47ea553b328434afd4abdda6","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"Manually include precompiled UI Automation com interfaces.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/f66ce5d067f1abba47ea553b328434afd4abdda6"},{"sha":"f55b431c6a7a9b231e3a76022507051bd6a53199","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"UIA caching:  make sure to cache UIA_IsEnabledPropertyId  for control fields.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/f55b431c6a7a9b231e3a76022507051bd6a53199"},{"sha":"bb400d098c439c0149fe8f4bc1e1d1ce51ce9293","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"Address review actions.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/bb400d098c439c0149fe8f4bc1e1d1ce51ce9293"},{"sha":"46cd6e65bbbdc980a37c68717c27b74db498b1a8","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"UIA: fetching boundingRectangle via getCurrentPropertyValueEx rather than currentBoundingRectangle returns a tuple of left,top,width,height, rather than a specific rectangle object with members of left,top,right and bottom.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/46cd6e65bbbdc980a37c68717c27b74db498b1a8"},{"sha":"996ddb562e46ce01853ae9f0829d3f82292f7a68","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"UIA NVDAObject: location property must return int coordinates, not float.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/996ddb562e46ce01853ae9f0829d3f82292f7a68"},{"sha":"41c147362b402200dd56d41a9f278e2eb0f818aa","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"UIA NVDAObject:  don't use any UIA constants at class level unless UIA support is enabled.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/41c147362b402200dd56d41a9f278e2eb0f818aa"},{"sha":"a30c21720226d82a99d72a2a40c5251f69bdc58d","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"UI Automation client library cannot  support properties added in a future version of Windows, either in cache requests, or provide defaults for them. Therefore:  catch COMError when trhing to add properties to a controlFieldCacheRequest (E.g. sizeInSet on Windows 7), and also  reintroduce try blocks around some of the property fetches in  UIA NVDAObject's states property, much resembling  what it used to be, though still using _getUIACacheablePropertyValue.\n\nFixes #7013","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/a30c21720226d82a99d72a2a40c5251f69bdc58d"},{"sha":"0357e9276ae56ed42398c799f2636543bbeb0a03","author":{"name":"Michael Curran","email":"13eb74fa18c756eea65f5b71aa9b7ff6c2a9faf5@nvaccess.org"},"message":"UIA NVDAObject's _getUIACacheablePropertyValue: remove the 'onlyCached' parameter as it is really not needed.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/0357e9276ae56ed42398c799f2636543bbeb0a03"},{"sha":"7e21223bf286930d5a53a5f58a8d09e7804f29b3","author":{"name":"James Teh","email":"491103dc04b58bc9a2f69e22e06b020be16ede04@nvaccess.org"},"message":"Add initial unit testing framework.\n\nUnit tests and infrastructure are located in the tests/unit directory. See the docstring in the tests/unit/__init__.py file for details.\nYou can run tests using \"scons tests\". See the \"Running Tests\" section of readme.md for details.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/7e21223bf286930d5a53a5f58a8d09e7804f29b3"},{"sha":"f738b7d3acc9720cc5bc1929661cf47ddb4031f1","author":{"name":"James Teh","email":"491103dc04b58bc9a2f69e22e06b020be16ede04@nvaccess.org"},"message":"Fix \"'NoneType' object is not callable\" exceptions in WavePlayer.__del__ when unit tests finish (and when NVDA exits).\n\nThese have existed for a long time, but they aren't normally noticed when exiting NVDA, since we normally don't see stderr when exiting.\nTo fix this, nvwave and tones now register an atexit callback to clean up their WavePlayer instances before modules get cleaned up.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/f738b7d3acc9720cc5bc1929661cf47ddb4031f1"},{"sha":"baad666e414116f535ce9bc03047ca7710ad327d","author":{"name":"James Teh","email":"491103dc04b58bc9a2f69e22e06b020be16ede04@nvaccess.org"},"message":"Add some tests for the cursorManager module.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/baad666e414116f535ce9bc03047ca7710ad327d"},{"sha":"266c7513a6c630f5738bf39e78d31ce798d31dc1","author":{"name":"James Teh","email":"491103dc04b58bc9a2f69e22e06b020be16ede04@nvaccess.org"},"message":"Fix some obscure build system issues which were causing some idl and comInterfaces files to be rebuilt unnecessarily.\n\nThis is not a new problem, but it's particularly annoying for automated testing because running the tests often causes files to be rebuilt unnecessarily.\n1. The ISimpleDOM and MathPlayer interfaces have multiple idl files. The targets for the idl file have an implicit dependency on midl.exe, but its position in the dependencies is different in the run before the idl files are copied versus subsequent runs. I think this is an SCons bug/quirk, probably because before the copy, the idl file must be scanned after the midl tool is considered. Explicitly specifying these extra idls as dependencies doesn't help. The only workaround I've found is to ignore midl.exe as a dependency when checking whether the targets should be rebuilt.\n2. comInterfaces generates .pyc as well as .py files. We now tell SCons about the .pyc files as well so they get considered appropriately. Previously, the .py file could be removed, so SCons would rebuild the .py file. However, the .pyc still existed, so it was just loaded without generating a .py file. Subsequently, SCons would try to rebuild the .py file on every build.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/266c7513a6c630f5738bf39e78d31ce798d31dc1"},{"sha":"a8f946e0ff3a26c4fdd3eb8dec696bb4e388523c","author":{"name":"James Teh","email":"491103dc04b58bc9a2f69e22e06b020be16ede04@nvaccess.org"},"message":"AppVeyor: Run automated tests.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/a8f946e0ff3a26c4fdd3eb8dec696bb4e388523c"},{"sha":"bddfab64c3abd7bf3457f174f2cec796f3584fea","author":{"name":"James Teh","email":"491103dc04b58bc9a2f69e22e06b020be16ede04@nvaccess.org"},"message":"Address code review comments.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/bddfab64c3abd7bf3457f174f2cec796f3584fea"},{"sha":"af4f4fa4b74f82d85fcf385ff9bb83763549584c","author":{"name":"Joseph Lee","email":"b2912a184dd28fb6761a4b56abee0ba75d4e7637@gmail.com"},"message":"Speech module: remove reason_* constants. (PR #6878)\n\nPartial fix for #6846\r\n\r\nRemove deprecated `speech.REASON_*` constants, `controlTypes.REASON_*` should be used instead.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/af4f4fa4b74f82d85fcf385ff9bb83763549584c"},{"sha":"307e96092696dce34e43ff378ae63910f0bbbcb6","author":{"name":"Joseph Lee","email":"b2912a184dd28fb6761a4b56abee0ba75d4e7637@gmail.com"},"message":"Synth driver handler: remove deprecated i18n name attribute. (PR #6877)\n\npartial fix for #6846, and #5185\r\n\r\nRemoved deprecated `i18nName` for synth settings, replaced by `displayName` and `displayNameWithAccelerator`.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/307e96092696dce34e43ff378ae63910f0bbbcb6"},{"sha":"f62ed09b38cb6b160105d1a83a63db0b492fd766","author":{"name":"Joseph Lee","email":"b2912a184dd28fb6761a4b56abee0ba75d4e7637@gmail.com"},"message":"Removed config.validateConfig, config.conf.validator now uses Validator constructor. (PR #6876)\n\nPartial fix for #6846, and #667\r\n\r\nRemove deprecated `config.validateConfig`. \r\nAs there's no need to store a module-level `validator`, `validator` class instantiation will be done from `config.ConfigManager` constructor.","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/f62ed09b38cb6b160105d1a83a63db0b492fd766"},{"sha":"4a7e1bdbb30100148b261c36565e0560b21cae43","author":{"name":"Joseph Lee","email":"b2912a184dd28fb6761a4b56abee0ba75d4e7637@gmail.com"},"message":"Support Windows Calculator on Windows 10 Enterprise LTSB (Long-Term Servicing Branch) and Server (PR #6914)\n\nBecause UWP isn't fully there, Windows 10 Enterprise LTSB and Server comes with desktop version of calculator except for a different executable name (`win32calc`).","distinct":false,"url":"https://api.github.com/repos/ThomasStivers/nvda/commits/4a7e1bdbb30100148b261c36565e0560b21cae43"}]}
{"actor":{"display_login":"ThomasStivers"}}