Bug 859732 - 1/N: interface changes
Bug 859732 - 2/N: DOM & IPC changes.
Bug 859732 - 3/N: backend changes.
Bug 859732 - 4/4: fix test cases.