Chromium needs to be able to inject its own storage event handler into StorageAreaImpl. This is because the process the StorageAreaImpl runs in is not the same process that the events need to be dispatched to.
Created attachment 39575 [details]
Comment on attachment 39575 [details]
> Index: WebCore/page/DOMWindow.cpp
> + RefPtr<StorageArea> storageArea = page->group().localStorage()->storageArea(document->securityOrigin(), new StorageEventDispatcherImpl);
I think it is generally better to use the Foo::create() pattern that returns
a PassRefPtr instead of passing a raw pointer. That way the ownership exchange
is more clearly documented and enforced by the code.
> Index: WebCore/storage/StorageEventDispatcher.h
> +#include "PlatformString.h"
> +#include "StorageArea.h"
> +#include <wtf/RefCounted.h>
nit: no new line after StorageArea.h
Created attachment 39622 [details]
Created attachment 39879 [details]
Fishd: Ugh....I accidentally re-uploaded which cleared the r+. :-( Sorry.
https://bugs.webkit.org/show_bug.cgi?id=29655 is a better way to solve this.