Windows 10: Improving interoperability with DOM L3 XPath

Discus and support Improving interoperability with DOM L3 XPath in Windows 10 News to solve the problem; As part of our ongoing focus on interoperability with the modern Web, we’ve been working on addressing an interoperability gap by writing an... Discussion in 'Windows 10 News' started by Brink, Mar 18, 2015.

  1. Brink
    Brink New Member

    Improving interoperability with DOM L3 XPath


    view raw XPath example with IE-specific code hosted with ❤ by GitHub

    In our new rendering engine, the script engine executes modern Web content, so a plugin-free, native implementation of XPath is required.

    Evaluating the Options
    We immediately began to cost the work to implement the entire feature. Our options included starting from scratch, integrating MSXML, or porting System.XML, but each of these was too costly for its own reasons. We decided to start implementing a subset of XPath while working on the full implementation at the same time.

    In order to know what subset of the standard to support, we used an internal crawler that captured the queries used across hundreds of thousands of the most popular sites on the Web. We found buckets of queries that had the form

    • //element1/element2/element3
    • //element[@attribute="value"]
    • .//*[contains(concat(" ", @class, " "), " classname ")]

    Each of these queries maps cleanly to a CSS Selector that could return the same results that would be returned from our performant Selectors API. Specifically, the queries above can be converted to

    • element1 > element2 > element3
    • element[attribute="value"]
    • *.classname

    The first native implementation of XPath thus involved supporting queries that can be converted to a CSS selector and exposing the results through the DOM L3 XPath interface objects. Alongside this implementation, we added telemetry to measure the rate of success across broader Web usage, which accounted for the number of successful queries, number of failed queries, and the query string of the first failure.

    Our telemetry from internal testing showed that 94% of queries successfully converted to selectors to unblock many Web sites. Of the failures reported through the telemetry, many took the form

    • //element[contains(@class, "className")]
    • //element[contains(concat(" ", normalize-space(@class), " "), " className ")]

    which can both be converted to the selector “element.className.” With these additional changes, the success rate improved to 97%, making our new engine ready for broader usage to support the modern Web.


    Improving interoperability with DOM L3 XPath [​IMG]
    Internal telemetry showing Xpath query success rates
    Addressing the Remainder
    While this supports the vast majority of the Web, converting XPath queries to Selectors is inherently limited. Additionally, we were still left with the 3% of failing queries that require support of more of XPath’s grammar, such as functions, support for non-element and document nodes, and more complex predicates. Several sites mention various polyfills for XPath, including Mozilla Development Network, for platforms that do not provide adequate support for XPath. One of the polyfills commonly cited is wicked-good-xpath (WGX), which is an implementation of XPath written purely in JavaScript. Running WGX against our internal set of tests across the XPath spec showed 91% compatibility with competitor native implementations. The idea of using WGX as a fallback for the remaining 3% became a compelling bet because it was performant and our tests already measured its functionality against other implementations. Further, wicked-good-xpath is an open source project under the MIT license, and our usage of it would align with our goals to embrace and contribute back to code from the open source community. However, JavaScript had never been used within IE to build this kind of platform feature before.

    In order to support WGX without polluting a Web page’s context, we created a separate, isolated script engine dedicated to WGX. With a few modifications to WGX that provide entry points for invoking functions and accessing results, we marshal the data from the page to the isolated engine and evaluate expressions with WGX. With WGX enabled to handle native XPath queries, we see immediate gains from sites missing content in our new engine rendering the modern Web.


    Improving interoperability with DOM L3 XPath [​IMG]

    Improving interoperability with DOM L3 XPath [​IMG]
    Before and after: Available prices for products now appear correctly on tomtom.com
    Improving interoperability with DOM L3 XPath [​IMG]

    Improving interoperability with DOM L3 XPath [​IMG]
    Before and after: Lottery numbers now correctly display where they were previously missing
    While browsing the Web with WGX, we found a few bugs that exhibit behavior which diverges from other browsers’ implementations as well as the W3C spec. We plan to make contributions back to the project that make WGX more interoperable with native implementations.

    Our new rendering engine now has support for XPath to run the modern Web to enable more functionality and show more content for our customers. With data-driven development from the modern Web, we landed on a data-driven outcome of a low-cost and performant implementation on existing technologies and standards as well as open source code. Grab the latest flight of the Windows 10 Technical Preview to try for yourself! You can reach us with feedback via the Internet Explorer Platform Suggestion Box on UserVoice, @IEDevChat on Twitter, and in the comments below.

    – Thomas Moore, Software Engineer, Internet Explorer Platform [/quote] Source: Improving interoperability with DOM L3 XPath - IEBlog - Site Home - MSDN Blogs


    :)
     
    Brink, Mar 18, 2015
    #1

  2. E51 Firmware 200.34.36 change-log

    Nokia E51 Änderungen Firmware 200.34.36

    New supported features:

    * Mail for exchange: Version update to 2.3.

    * WLAN: WPA/WPA2 pre-shared key support added.

    * VOIP: VoIP - Interoperability and stability improvements.

    * Telephony: AD-54 Headset support added.

    * UTF-8 title decode support added.

    * Multipart mixed support for WML1.X.

    Changes and improvements

    Bluetooth

    * General interoperability and stability improvements.

    * Improvements to car kit compatibility (CK-20W, BMW native kit).

    * Improvement to BH-601/BH-900 interoperability.

    Messaging

    * SMS compatibility improvement.

    * POP3 size setting support correction.

    * SMS details correction (sending time).

    * Preinstalled email account user experience improvement.

    * Mail for Exchange and EL2 improvements.

    Calendar / PIM

    * Improvement of Mail for Exchange synchronization.

    * Calendar stability improved.

    * Contacts improvement (long names with accents).

    * Contact search speed improved.

    * Active notes used experience improvement.

    * Switch application improvements.

    Office tools

    * Team Suite usability improvement.

    * Notes: Email interoperability improvement.

    * Sync stability improved.

    Backup & restore

    * Restore stability and usability correction.

    Performance

    * AT-command performance improvement.

    * Flash playback speed increase.

    * Contact indexing speed improved.

    Telephony

    * Improvements to IHF performance.

    * Headset improvements (BH-601, AD-54, HS-36W, BH-900).

    * Improvements to car kit compatibility (CK-20W, BMW native kit).

    * Speed Dial improvement.

    * Improvements to voice call stability.

    * Call diverts improvement.

    * SIM compatibility correction.

    * SIM-ATK correction.

    * Sim compatibility correction.

    * Enhanced Line 2 improvements.

    VOIP

    * Increased stability for VoIP calls.

    * Improvements in EasyVoIP application.

    * SIP profile correction.

    * SIP proxy registration correction.

    WLAN

    * WLAN roaming stability improvement.

    * Improved EAP-SIM interoperability.

    * Printing via WLAN stability improvement.

    * WEP key query correction.

    * Wi-Fi TLS authentication correction.

    WEB browser

    * General browser stability improvements.

    * Full screen video playback improvement.

    * Hotmail interoperability correction.

    * Gmail interoperability support.

    * Bookmark usability improvement.

    * RFC compliance improvements.

    * Several website user experience improvements

    * yahoo, amazon, nasdaq

    * Multiwindowing usability improvement.

    WAP browser

    * WTA Make Call correction.

    Networking

    * Emergency call HSDPA correction.

    * Improved GPRS stability.

    * Improved PDP management.

    Diverses

    * Real player MP4 correction.

    * DRM support improvements.

    * Time zone corrections.

    * PoC functionality and stability improvements.

    * Maps application user interface improvements.

    * Active Idle improvements.

    * Memory card operations stability and performance improvements.

    * Music playback experience improvements.

    * Several linguistic fixes.

    * VPN correction.

    * Volume hard key correction for embedded video.

    * Welcome application correction.

    * Enhancements to lipsynch.

    * Chat application corrections.

    * Instant messaging stability improvement.

    * Java MIDlet security and installer corrections.

    * OBEX push usability enhancement.

    * APAC minor usability enhancement.

    * Marlin interoperability enhancement.

    * MMS sync and PCSuite correction.

    * SVG support improved.
     
    mechwarrior---01, Mar 18, 2015
    #2
  3. orouborus Win User
    Improvement list E51 firmware 200.34.36

    time stamp still does not work.... tsk tsk tsk
     
    orouborus, Mar 18, 2015
    #3
Thema:

Improving interoperability with DOM L3 XPath

Loading...
  1. Improving interoperability with DOM L3 XPath - Similar Threads - Improving interoperability DOM

  2. domain user is shown as DOM\USER in login screen

    in Windows 10 Software and Apps
    domain user is shown as DOM\USER in login screen: while i try to login to my pc I have my username automatically shown like <DOM\USER> it used to be only USERNAME idk what happened and I searched for this problem but i can't seem to find anything.......
  3. AMD L3 cache problem in 22471?

    in Windows 10 Gaming
    AMD L3 cache problem in 22471?: Does famous AMD L3 cache problem addressed in 22471 build if not how to fix it? https://answers.microsoft.com/en-us/windows/forum/all/amd-l3-cache-problem-in-22471/5d5340c0-b752-49f4-a088-4012292a2bde
  4. AMD L3 cache problem in 22471?

    in Windows 10 Software and Apps
    AMD L3 cache problem in 22471?: Does famous AMD L3 cache problem addressed in 22471 build if not how to fix it? https://answers.microsoft.com/en-us/windows/forum/all/amd-l3-cache-problem-in-22471/5d5340c0-b752-49f4-a088-4012292a2bde
  5. "Improvements"

    in Windows 10 Network and Sharing
    "Improvements": Is anyone at Microsoft paying any attention to the huge demand for workarounds to get rid of new "features" in Windows 10? E.g., don't hide scroll bars, get rid of Quick Access, disable file grouping. Or are we to expect another 18 years of assuming all users are teenagers...
  6. Can't copy-paste in DOM explorer

    in Browsers and Email
    Can't copy-paste in DOM explorer: Hi everyone I hope someone can help me, as this seems to be a rare problem and I haven't found anything by googleing. I have a new Win 10 PC with IE 11, and now I can't copy-paste anymore with the keyboard controls in the DOM explorer (it only works with right mouse...
  7. Changing L3 Cache

    in Windows 10 Drivers and Hardware
    Changing L3 Cache: Hey, I have viewed through all 14 pages in performance & maintenance tutorial's but I haven't found the thread for changing L3 cache in Windows 10 environment. Anyone know how to change this? *Smile Sorry for making a thread where the same question was asked but I don't...
  8. Using Encrypted Media Extensions for interoperable protected media

    in Windows 10 News
    Using Encrypted Media Extensions for interoperable protected media: Media Source Extensions and Encrypted Media Extensions provide websites with new options for streaming premium audio and video. These specifications provide a framework for building media websites that can work across multiple browsers on a broad range of devices, including...
  9. Building a more interoperable Web with Microsoft Edge

    in Windows 10 News
    Building a more interoperable Web with Microsoft Edge: Over the past year the Microsoft Edge team has been hard at work on a new browser engine that will be better than ever at correctly, quickly, and reliably rendering the Web. As a user, your favorite web sites will just work, and as a web developer, you will find that...
  10. Working Toward Universal Interoperability in IoT

    in Windows 10 News
    Working Toward Universal Interoperability in IoT: Updated July 1, 2015 1:40 pm - Today’s Internet of Things landscape is a modern day Tower of Babel – a proliferation of communication protocols and data formats across the device ecosystem that make it difficult for devices to “speak the same language” and work together in...