IP Library Granted Patent US 11,157,678
Granted Patent B2
US 11,157,678 · App. 16/403,900 · Granted Oct 26, 2021

Scalable content rendering

Inventor: Efraim Nadiv (Tel-Aviv, IL)
Assignee: TABOOLA.COM LTD
G06F40/106G06F16/338G06F16/9577G06F40/117G06F40/166
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 11,157,678
App. No.
16/403,900
Granted
Oct 26, 2021
Kind
B2
Abstract

The presently disclosed subject matter includes a computer-implemented system and method for receiving content from another computer device and dynamically adapting display of the received content within a container of a formatted document, the container defining a restricted area within the formatted document designated for displaying the content. Sub-elements within at least one content item are identified and tagged, the tagging enables to acquire display parameters of tagged sub-elements and calculate therefor a required adaptation of the content item such that it can be fitted within the respective container.

Claims (43)

1. A computer program product comprising a non-transitory computer readable storage medium retaining program instructions, which program instructions, when read by a processor, cause the processor to perform:

obtaining a formatted document, wherein the formatted document comprises a container, wherein the container defining an area within the formatted document designed for displaying a content item, wherein the content item comprises a plurality of tagged sub-elements;

rendering, at a browser, at least a portion of the tagged sub-elements in the container;

based on said rendering, obtaining from the browser, display para meters of the portion of tagged sub-elements to identify a subset of tagged sub-elements from the portion of tagged elements that overflow the area defined by the container; and

in response to identifying the overflow, and based on the display parameters, adding a new sub-element to the content item to obtain an adapted content item, wherein the new sub-element comprises at least a first element and a second element, wherein the first element corresponds to at least one tagged sub-element from the subset of tagged sub-elements and the second element corresponds to at least one tagged sub-element from the portion of tagged sub-elements, wherein the adapted content item is adapted to be displayed within the area of the container.

2. The computer program product of claim 1 , wherein the area is a multi line area, wherein the new sub-element comprises at least a portion of a last visible line of the content item as defined by the tagged sub-elements, wherein the new sub-element is defined with an instruction to a rendering engine of the browser to automatically truncate an overflow of a single line.

3. The computer program product of claim 2 , wherein the adapted content item comprises two copies of the at least the portion of the last visible line, wherein a first copy is defined using the new sub-element and is visible in a rendered version of the adapted content item within the area of the container, and wherein the second copy is not visible in the rendered version of the adapted content item within the area of the container.

4. The computer program product of claim 1 , wherein the program instructions, when read by the processor, further cause the processor to perform: removing at least one tagged sub-element of the plurality of tagged sub-elements.

5. The computer program product of claim 1 , wherein said adding the new sub-element comprises determining a location to place the new sub-element based on the display parameters.

6. The computer program product of claim 1 , wherein said obtaining the formatted document comprises receiving from a server the formatted document, wherein the server preprocessed an original version of the formatted document to tag sub-elements of the content item.

7. The computer program product of claim 1 , wherein said obtaining the formatted document comprises:

obtaining an original version of the formatted document;

identifying sub-elements of the content item in the original version; and

tagging the sub-elements of the content item, thereby creating the tagged sub-elements.

8. The computer program product of claim 7 , wherein said tagging the sub-elements comprises: wrapping each sub-element with an HTML tag to thereby transform the sub-element into a Document Object Model (DOM) element.

9. The computer program product of claim 1 , wherein the content item includes textual content and the tagged sub-elements include tagged textual sub-elements.

10. The computer program product of claim 1 , wherein said identifying the overflow comprises:

determining, based on the display parameters, a position of at least one tagged sub-element with respect to the area of the respective container; and

determining that the position is indicative of the at least one tagged sub-element being located outside boundaries of the area.

11. The computer program product of claim 1 , wherein in response to said adding, the browser is configured to render the adapted content item in the area of the container exactly once, whereby dynamically adapting the content item on a user device based on the area of the container using at most a single reflow computation by the browser to fit within the area of the container.

12. The computer program product of claim 1 , wherein said rendering, said obtaining the display parameters, said identifying and said adding are performed with respect to a plurality of content items, wherein in response to said adding, the browser is configured to cause at most a single reflow computation, irrespective of a number of content items that are adapted due to a plurality of identified overflows, to fit within the areas of the respective containers.

13. The computer program product of claim 1 , wherein the program instructions, when read by the processor, further cause the processor to perform:

in response to a change in one or more display environment characteristics, automatically repeating said obtaining the display parameters, said identifying and said adding to thereby adapt the content item to fit within the area of the container.

14. The computer program product of claim 13 , wherein the program instructions, when read by the processor, further cause the processor to perform:

monitoring display environment characteristics, including at least one of:

a size of a window assigned for displaying the formatted document;

dimensions of the window assigned for displaying the formatted document;

a size of the area of the container; and

dimensions of the area of the container.

15. A method comprising:

obtaining a formatted document, wherein the formatted document comprises a container, wherein the container defining an area within the formatted document designed for displaying a content item, wherein the content item comprises a plurality of tagged sub-elements;

rendering, at a browser, at least a portion of the tagged sub-elements in the container;

based on said rendering, obtaining from the browser, display parameters of the portion of tagged sub-elements to identify a subset of tagged sub-elements from the portion of tagged elements that overflow the area defined by the container; and

in response to identifying the overflow, and based on the display parameters, adding a new sub-element to the content item to obtain an adapted content item, wherein the new sub-element comprises at least a first element and a second element, wherein the first element corresponds to at least one tagged sub-element from the subset of tagged sub-elements and the second element corresponds to at least one tagged sub-element from the portion of tagged sub-elements, wherein the adapted content item is adapted to be displayed within the area of the container.

16. The method of claim 15 , wherein the area is a multi line area, wherein the new sub-element comprises at least a portion of a last visible line of the content item as defined by the tagged sub-elements, wherein the new sub-element is defined with an instruction to a rendering engine of the browser to automatically truncate an overflow of a single line.

17. The method of claim 15 , wherein said adding the new sub-element comprises determining a location to place the new sub-element based on the display parameters.

18. An apparatus comprising a processor and a coupled memory, wherein said processor is configured to perform:

obtaining a formatted document, wherein the formatted document comprises a container, wherein the container defining an area within the formatted document designed for displaying a content item, wherein the content item comprises a plurality of tagged sub-elements;

rendering, at a browser, at least a portion of the tagged sub-elements in the container;

based on said rendering, obtaining from the browser, display parameters of the portion of tagged sub-elements to identify a subset of tagged sub-elements from the portion of tagged elements that overflow the area defined by the container; and

in response to identifying the overflow, and based on the display parameters, adding a new sub-element to the content item to obtain an adapted content item, wherein the new sub-element comprises at least a first element and a second element, wherein the first element corresponds to at least one tagged sub-element from the subset of tagged sub-elements and the second element corresponds to at least one tagged sub-element from the portion of tagged sub-elements, wherein the adapted content item is adapted to be displayed within the area of the container.

19. The apparatus of claim 18 , wherein the area is a multi line area, wherein the new sub-element comprises at least a portion of a last visible line of the content item as defined by the tagged sub-elements, wherein the new sub-element is defined with an instruction to a rendering engine of the browser to automatically truncate an overflow of a single line.

20. The apparatus of claim 18 , wherein said adding the new sub-element comprises determining a location to place the new sub-element based on the display parameters.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057570/0268) Recorded Mar 31, 2025
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: TABOOLA.COM LTD; PERFECT MARKET, INC.; CONNEXITY, INC.
Reel/Frame 070690/0269 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY BY ADDING THE THIRD ASSIGNOR PREVIOUSLY RECORDED AT REEL: 70553 FRAME: 219. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Mar 28, 2025
From: CONNEXITY, INC.; TABOOLA.COM LTD.; TABOOLA, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070671/0358 →
SECURITY AGREEMENT Recorded Mar 19, 2025
From: TABOOLA.COM LTD.; TABOOLA, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070553/0219 →
PATENT SECURITY AGREEMENT Recorded Sep 22, 2021
From: TABOOLA.COM LTD.; PERFECT MARKET, INC.; CONNEXITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 057570/0268 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jan 14, 2021
From: JPMORGAN CHASE BANK, N.A.
To: TABOOLA.COM LTD.; PERFECT MARKET INC.
Reel/Frame 055000/0624 →
PATENT SECURITY AGREEMENT Recorded Dec 17, 2019
From: TABOOLA.COM LTD.; PERFECT MARKET, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 051325/0253 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2019
From: NADIV, EFRAIM
To: TABOOLA.COM LTD
Reel/Frame 049091/0270 →