Linked by Thom Holwerda on Thu 16th Jul 2009 21:44 UTC
Google One of the more controversial features of Google's Chrome/Chromium web browser is the way it handles updates. Contrary to other browsers, updates on Chrome are installed silently and automatically, without asking for the user's consent. While convenient and effective, it was also a security risk and sometimes it slowed people's machines down. Google now proposes a fix called Courgette.
Thread beginning with comment 373815
To view parent comment, click here.
To read all comments associated with this story, please click here.
galvanash
Member since:
2006-01-25

How do we use this to generate a better diff? With bsdiff we would compute the new file, 'update' from the 'original' like this:

server:
diff = bsdiff(original, update)
transmit diff


client:
receive diff
update = bspatch(original, diff)


(The server would pre-compute diff so that it could be transmitted immediately)

Courgette transforms the program into the primitive assembly language and does the diffing at the assembly level:

server:
asm_old = disassemble(original)
asm_new = disassemble(update)
asm_new_adjusted = adjust(asm_new, asm_old)
asm_diff = bsdiff(asm_old, asm_new_adjusted)
transmit asm_diff


client:
receive asm_diff
asm_old = disassemble(original)
asm_new_adjusted = bspatch(asm_old, asm_diff)
update = assemble(asm_new_adjusted)




rsync does essentially the same thing as bsdiff.

Reply Parent Bookmark Score: 2