IP Library › Granted Patent US 9,411,782
Granted Patent B2
US 9,411,782 · App. 13/673,792 · Granted Aug 9, 2016

Real time web development testing and reporting system

Inventors: Mike Harris (Santa Rosa, CA); Charles C. Scheinost (Forest Knolls, CA); Tom Juhasz (Bainbridge Island, WA); Matthew Hamlin (San Francisco, CA); Amit Kishnani (Foster City, CA); Bruce Bowman (San Jose, CA); Joshua Hatwich (San Francisco, CA)
Assignee: Adobe Systems Incorporated
G06F17/211G06F17/2211G06F17/2725G06F17/3089
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,411,782
App. No.
13/673,792
Granted
Aug 9, 2016
Kind
B2
Abstract

Elements of the geometry of the image of a webpage as rendered on at least one target browser are compared with elements of a baseline geometry of the webpage to determine the differences between elements of the baseline geometry of the webpage and elements of the respective geometries of the image of the webpage as rendered on the at least one target browser. The elements of the image may be determined by a software tool for determining elements of a document geometry, such as a DOM geometry service. Code such as JavaScript may be injected into the webpage for use in determining the elements of the geometry of the image of the webpage. A list of issues that web developers face may be generated and the above differences between respective elements may allow arriving at a solution for at least some of the issues in order to provide testing of webpage information in real time.

Claims (29)

1. A method comprising:

at a server, receiving a request comprising an identification of a webpage and at least one target browser on which the webpage is to be rendered;

in response to the request, retrieving the webpage and injecting code into the webpage, wherein the injected code is used by the at least one target browser to determine elements of a geometry of an image of the webpage rendered on the at least one target browser;

determining the elements of the geometry of the image of the webpage rendered on the at least one target browser, wherein the elements of the geometry of the image of the webpage rendered on the at least one target browser are determined by the at least one target browser based on the injected code, and wherein the elements of the geometry of the image of the webpage rendered on the at least one target browser are determined in real time as a user input is received at a client machine, the user input comprising a user interaction with the webpage at the client machine and causing the server to perform a corresponding operation at the at least one target browser, the corresponding operation altering the elements of the geometry of the image of the webpage rendered on the at least one target browser; and

communicating, from the server to the client machine, the elements of the geometry of the image of the webpage rendered on the at least one target browser for comparison with elements of a baseline geometry of the webpage to determine differences between the elements of the baseline geometry of the webpage and the elements of the geometry of the image of the webpage rendered on the at least one target browser, wherein the comparison is performed by an application executing at the client machine, wherein the determined differences are presented by the client machine in real time as the user input is received, wherein the application executing at the client machine generates a report including a list of errors associated with the image of the webpage rendered on the at least one target browser, and wherein the application executing at the client machine is configured to receive an indication that a first error from the list of errors is a false positive.

2. The method of claim 1 , wherein the injected code comprises a scripting language and is injected by an editable proxy module.

3. The method of claim 1 , wherein the at least one target browser comprises a plurality of browsers, at least some of which are of different types.

4. The method of claim 3 , wherein the elements of the geometry of the image of the webpage rendered on the at least one target browser are provided by a software tool for determining elements of a document geometry, and wherein the determining is performed as a background process in real time as the user input is received.

5. The method of claim 4 , wherein the software tool performs at least one of the following: generating a unique identifier, calculating a position and a size of an element, determining if an element is a link and recording an associated href attribute, or writing information for each element to an XML document.

6. The method of claim 1 , wherein in response to a selection of a second error from the list of errors, the application executing at the client machine provides a visual indication of a portion of the image of the webpage that is associated with the selected error.

7. A non-transitory machine-readable storage device having embedded therein a set of instructions, which, when executed by a server, causes execution of the following operations:

providing a webpage for rendering on at least one target browser, wherein the webpage is injected with code that is used by the at least one target browser to determine elements of a geometry of an image of the webpage as rendered on the at least one target browser;

determining the elements of the geometry of the image of the webpage as rendered on the at least one target browser, wherein the elements of the geometry of the image of the webpage as rendered on the at least one target browser are determined by the at least one target browser based on the injected code, and wherein the elements of the geometry of the image of the webpage as rendered on the at least one target browser are determined in real time as a user input comprising a user interaction with the webpage at a client machine is received, the user input causing a corresponding operation to be performed by the server at the at least one target browser; and

communicating the elements of the geometry of the image of the webpage as rendered on the at least one target browser for comparison with elements of a baseline geometry of the webpage to determine differences between the elements of the baseline geometry of the webpage and the elements of the geometry of the image of the webpage as rendered on the at least one target browser, wherein a report including a list of errors associated with the image of the webpage as rendered on the at least one target browser is generated, and wherein in response to a selection of an error from the list of errors, a visual indication of a portion of the image of the webpage that is associated with the selected error is provided.

8. The machine-readable storage device of claim 7 , wherein the injected code comprises a scripting language code that is injected into the webpage by an editable proxy.

9. The machine-readable storage device of claim 8 , wherein communicating the elements of the geometry of the image of the webpage comprises communicating the elements of the geometry of the image of the webpage to at least one of components in the server or components in the client machine, wherein the at least one of the components in the server or the components in the client machine performs the comparison, and at least some of the differences are for display at the client machine.

10. The machine-readable storage device of claim 8 , wherein the elements of the geometry of the image of the webpage as rendered on the at least one target browser are provided by a software tool for determining elements of a document geometry.

11. The machine-readable storage device of claim 10 , wherein the software tool performs at least one of the following: generating a unique identifier, calculating a position and a size of an element, determining if an element is a link and recording an associated href attribute, or writing information for each element to an XML document.

12. A system comprising:

one or more processors; and

one or more computer storage media storing computer-executable instructions that, when executed by the one or more processors, implement a method comprising:

at a server, providing a webpage for rendering on at least one target browser, wherein the webpage is injected with code that is used by the at least one target browser to determine elements of a geometry of an image of the webpage as rendered on the at least one target browser;

determining the elements of the geometry of the image of the webpage as rendered on the at least one target browser, wherein the elements of the geometry of the image of the webpage as rendered on the at least one target browser are determined by the at least one target browser based on the injected code, and wherein the elements of the geometry of the image of the webpage as rendered on the at least one target browser are determined in real time as a user input comprising a user interaction with the webpage at a client machine is received, the user input causing a corresponding operation to be performed by the server at the at least one target browser; and

communicating elements of a baseline geometry of the webpage and the elements of the geometry of the image of the webpage as rendered on the at least one target browser in order to determine, via a comparison, differences between the elements of the baseline geometry and the elements of the geometry of the image of the webpage as rendered on the at least one target browser and to generate a report including a list of errors associated with the image of the webpage as rendered on the at least one target browser, wherein in response to a selection of an error from the list of errors, a visual indication of a portion of the image of the webpage that is associated with the selected error is provided.

13. The system of claim 12 , wherein the injected code comprises a scripting language.

14. The system of claim 12 , wherein the elements of the baseline geometry of the webpage and the elements of the geometry of the image of the webpage as rendered on the at least one target browser are communicated to at least one of components at the server or components at the client machine, wherein the at least one of the components at the server or the components at the client machine performs the comparison, and at least some of the differences are for display at the client machine.

15. The system of claim 14 , wherein determining the elements of the geometry of the image of the webpage is performed by a software tool comprising a document object model geometry service.

16. The system of claim 15 , wherein the document object model geometry service performs at least one of the following: generating a unique identifier, calculating a position and a size of an element, determining if an element is a link and recording an associated href attribute, or writing information for each element to an XML document.

17. The system of claim 16 , wherein the comparison comprises comparing the geometry of the image of the webpage as rendered on the at least one target browser against the elements of the baseline geometry, and wherein a solution to at least one error from the list of errors is provided in real time.

Assignments (2)
CHANGE OF NAME Recorded Apr 8, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048867/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2014
From: HARRIS, MIKE; SCHEINOST, CHARLES C.; JUHASZ, TOM; HAMLIN, MATTHEW; KISHNANI, AMIT; BOWMAN, BRUCE; HATWICH, JOSHUA
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 032671/0250 →
Continuity (1)
Related Publication 20140136944A1 · May 15, 2014