11

How to serialize a complete process?

In specially if the process is a Chrome's tab (with its rendered DOM). Is it possible to completely serialize Chrome tab/(tab's DOM) and then to deserialize it again? So that the tab do not need to request HTML via HTTP(S) from the tab's URL again and also do not need to build DOM in the RAM, but instead, just load the DOM and send to render (to OS/GPU?).

Update:

I know, that it looks inefficiently (i.e. each tab process takes about 80 mb of RAM and so much more in a serialized form), but still it is interesting if it is possible to achieve? Hypothetical application: fine-grained serialization of a web-application to the disk and restore it afterwards like it would not (possibly except session tokens) be closed

Update2:

I have just found a thread about the idea behind the question: http://mac-os-forge.2317878.n4.nabble.com/DOM-Serialization-td173772.html . But there is no result in the end of discussion (just somebody found this impractical). The thread is from 2010.

Update3:

there is a question similar to this (just related to iOS app, still about Web View serialization): UIWebView serialization after content has been rendered . Still no solution.

Update4:

Somebody tells about

DOM Level 3 defines Load & Save interface of DOM

http://marc.info/?l=webkit-dev&m=126432160427677

is it something related to save and load the rendered DOM memory model?

Update5:

here [Rendering in Webkit (2009): https://www.youtube.com/watch?v=RVnARGhhs9w] the guy talks about different trees appearing while rendering process (Source Text -> DOM Tree -> RenderObject tree -> RenderStyles -> LineBoxes/Layers). So is it possible to serialize the last structures (RenderStyles -> LineBoxes/Layers) and recreate only them when restoring the tab, not the complete rendering process again? As possible application I find the "Duplicate Tab" command implementation: now it works in the way of rendering from the beginning on the complete page again (from the URL loading). It would be also nice that "Duplicating Tab" would just clone the data structures and re-render only the graphics, not the data structures themselves.

Update6:

this question is very similar: How to save a tab's memory state in Firefox/Chrome?

Update7:

would "process migration" be something reasonable for the solution?

static
  • 8,126
  • 15
  • 63
  • 89

1 Answers1

0

Extracted from http://www.chromium.org/developers/design-documents/oop-iframes/oop-iframes-rendering#TOC-Background

"As each node is added to the DOM tree, the attach() method is called on it which creates an associated renderer "

So you will always need to recreate the DOM in RAM since it is not used as input to a previously existing renderer but also triggers render/s creation.

earizon
  • 2,099
  • 19
  • 29