| Index: loader/appcache2/DOMApplicationCache.h
|
| ===================================================================
|
| --- loader/appcache2/DOMApplicationCache.h (revision 0)
|
| +++ loader/appcache2/DOMApplicationCache.h (working copy)
|
| @@ -26,8 +26,10 @@
|
| #ifndef DOMApplicationCache_h
|
| #define DOMApplicationCache_h
|
|
|
| -#if ENABLE(OFFLINE_WEB_APPLICATIONS)
|
| +#if ENABLE(APPLICATION_CACHE)
|
|
|
| +#include "ApplicationCacheCommon.h"
|
| +#include "ApplicationCacheFrontend.h"
|
| #include "AtomicStringHash.h"
|
| #include "EventTarget.h"
|
| #include "EventListener.h"
|
| @@ -38,7 +40,6 @@
|
|
|
| namespace WebCore {
|
|
|
| -class ApplicationCache;
|
| class AtomicStringImpl;
|
| class DOMStringList;
|
| class Frame;
|
| @@ -47,32 +48,33 @@
|
|
|
| class DOMApplicationCache : public RefCounted<DOMApplicationCache>, public EventTarget {
|
| public:
|
| + // FIXME: integrate with workers
|
| static PassRefPtr<DOMApplicationCache> create(Frame* frame) { return adoptRef(new DOMApplicationCache(frame)); }
|
| void disconnectFrame();
|
|
|
| enum Status {
|
| - UNCACHED = 0,
|
| - IDLE = 1,
|
| - CHECKING = 2,
|
| - DOWNLOADING = 3,
|
| - UPDATEREADY = 4,
|
| - OBSOLETE = 5
|
| + UNCACHED = APPCACHE_UNCACHED,
|
| + IDLE = APPCACHE_IDLE,
|
| + CHECKING = APPCACHE_CHECKING,
|
| + DOWNLOADING = APPCACHE_DOWNLOADING,
|
| + UPDATEREADY = APPCACHE_UPDATEREADY,
|
| + OBSOLETE = APPCACHE_OBSOLETE
|
| };
|
|
|
| unsigned short status() const;
|
| -
|
| void update(ExceptionCode&);
|
| void swapCache(ExceptionCode&);
|
| -
|
| - PassRefPtr<DOMStringList> items();
|
| - bool hasItem(const KURL&, ExceptionCode&);
|
| - void add(const KURL&, ExceptionCode&);
|
| - void remove(const KURL&, ExceptionCode&);
|
|
|
| - virtual void addEventListener(const AtomicString& eventType, PassRefPtr<EventListener>, bool useCapture);
|
| - virtual void removeEventListener(const AtomicString& eventType, EventListener*, bool useCapture);
|
| + // Event attributes
|
| + void setAttributeEventListener(ApplicationCacheEventType type, PassRefPtr<EventListener> eventListener) { m_attributeEventListeners[type] = eventListener; }
|
| + EventListener* getAttributeEventListener(ApplicationCacheEventType type) const { return m_attributeEventListeners[type].get(); }
|
| + void clearAttributeEventListener(ApplicationCacheEventType type) { m_attributeEventListeners[type] = 0; }
|
| + void callEventListener(ApplicationCacheEventType type) { callListener(toEventName(type), getAttributeEventListener(type)); }
|
| +
|
| + // EventTarget impl
|
| + virtual void addEventListener(const AtomicString& eventName, PassRefPtr<EventListener>, bool useCapture);
|
| + virtual void removeEventListener(const AtomicString& eventName, EventListener*, bool useCapture);
|
| virtual bool dispatchEvent(PassRefPtr<Event>, ExceptionCode&);
|
| -
|
| typedef Vector<RefPtr<EventListener> > ListenerVector;
|
| typedef HashMap<AtomicString, ListenerVector> EventListenersMap;
|
| EventListenersMap& eventListeners() { return m_eventListeners; }
|
| @@ -80,68 +82,59 @@
|
| using RefCounted<DOMApplicationCache>::ref;
|
| using RefCounted<DOMApplicationCache>::deref;
|
|
|
| - void setOnchecking(PassRefPtr<EventListener> eventListener) { m_onCheckingListener = eventListener; }
|
| - EventListener* onchecking() const { return m_onCheckingListener.get(); }
|
| -
|
| - void setOnerror(PassRefPtr<EventListener> eventListener) { m_onErrorListener = eventListener; }
|
| - EventListener* onerror() const { return m_onErrorListener.get(); }
|
| -
|
| - void setOnnoupdate(PassRefPtr<EventListener> eventListener) { m_onNoUpdateListener = eventListener; }
|
| - EventListener* onnoupdate() const { return m_onNoUpdateListener.get(); }
|
| -
|
| - void setOndownloading(PassRefPtr<EventListener> eventListener) { m_onDownloadingListener = eventListener; }
|
| - EventListener* ondownloading() const { return m_onDownloadingListener.get(); }
|
| -
|
| - void setOnprogress(PassRefPtr<EventListener> eventListener) { m_onProgressListener = eventListener; }
|
| - EventListener* onprogress() const { return m_onProgressListener.get(); }
|
| -
|
| - void setOnupdateready(PassRefPtr<EventListener> eventListener) { m_onUpdateReadyListener = eventListener; }
|
| - EventListener* onupdateready() const { return m_onUpdateReadyListener.get(); }
|
| -
|
| - void setOncached(PassRefPtr<EventListener> eventListener) { m_onCachedListener = eventListener; }
|
| - EventListener* oncached() const { return m_onCachedListener.get(); }
|
| -
|
| - void setOnobsolete(PassRefPtr<EventListener> eventListener) { m_onObsoleteListener = eventListener; }
|
| - EventListener* onobsolete() const { return m_onObsoleteListener.get(); }
|
| -
|
| virtual ScriptExecutionContext* scriptExecutionContext() const;
|
| DOMApplicationCache* toDOMApplicationCache() { return this; }
|
|
|
| - void callCheckingListener();
|
| - void callErrorListener();
|
| - void callNoUpdateListener();
|
| - void callDownloadingListener();
|
| - void callProgressListener();
|
| - void callUpdateReadyListener();
|
| - void callCachedListener();
|
| - void callObsoleteListener();
|
| -
|
| + // Explicitly named attribute event listener helpers
|
| + void setOnchecking(PassRefPtr<EventListener> listener) { setAttributeEventListener(APPCACHE_CHECKING_EVENT, listener); }
|
| + void setOnerror(PassRefPtr<EventListener> listener) { setAttributeEventListener(APPCACHE_ERROR_EVENT, listener);}
|
| + void setOnnoupdate(PassRefPtr<EventListener> listener) { setAttributeEventListener(APPCACHE_NOUPDATE_EVENT, listener); }
|
| + void setOndownloading(PassRefPtr<EventListener> listener) { setAttributeEventListener(APPCACHE_DOWNLOADING_EVENT, listener); }
|
| + void setOnprogress(PassRefPtr<EventListener> listener) { setAttributeEventListener(APPCACHE_PROGRESS_EVENT, listener); }
|
| + void setOnupdateready(PassRefPtr<EventListener> listener) { setAttributeEventListener(APPCACHE_UPDATEREADY_EVENT, listener); }
|
| + void setOncached(PassRefPtr<EventListener> listener) { setAttributeEventListener(APPCACHE_CACHED_EVENT, listener); }
|
| + void setOnobsolete(PassRefPtr<EventListener> listener) { setAttributeEventListener(APPCACHE_OBSOLETE_EVENT, listener); }
|
| + EventListener* onchecking() const { return getAttributeEventListener(APPCACHE_CHECKING_EVENT); }
|
| + EventListener* onerror() const { return getAttributeEventListener(APPCACHE_ERROR_EVENT); }
|
| + EventListener* onnoupdate() const { return getAttributeEventListener(APPCACHE_NOUPDATE_EVENT); }
|
| + EventListener* ondownloading() const { return getAttributeEventListener(APPCACHE_DOWNLOADING_EVENT); }
|
| + EventListener* onprogress() const { return getAttributeEventListener(APPCACHE_PROGRESS_EVENT); }
|
| + EventListener* onupdateready() const { return getAttributeEventListener(APPCACHE_UPDATEREADY_EVENT); }
|
| + EventListener* oncached() const { return getAttributeEventListener(APPCACHE_CACHED_EVENT); }
|
| + EventListener* onobsolete() const { return getAttributeEventListener(APPCACHE_OBSOLETE_EVENT); }
|
| + void callCheckingListener() { callEventListener(APPCACHE_CHECKING_EVENT); }
|
| + void callErrorListener() { callEventListener(APPCACHE_ERROR_EVENT); }
|
| + void callNoUpdateListener() { callEventListener(APPCACHE_NOUPDATE_EVENT); }
|
| + void callDownloadingListener() { callEventListener(APPCACHE_DOWNLOADING_EVENT); }
|
| + void callProgressListener() { callEventListener(APPCACHE_PROGRESS_EVENT); }
|
| + void callUpdateReadyListener() { callEventListener(APPCACHE_UPDATEREADY_EVENT); }
|
| + void callCachedListener() { callEventListener(APPCACHE_CACHED_EVENT); }
|
| + void callObsoleteListener() { callEventListener(APPCACHE_OBSOLETE_EVENT); }
|
| +
|
| + static const AtomicString& toEventName(ApplicationCacheEventType eventType);
|
| + static ApplicationCacheEventType toEventType(const AtomicString& eventName);
|
| +
|
| private:
|
| DOMApplicationCache(Frame*);
|
| +
|
| void callListener(const AtomicString& eventType, EventListener*);
|
|
|
| virtual void refEventTarget() { ref(); }
|
| virtual void derefEventTarget() { deref(); }
|
|
|
| - ApplicationCache* associatedCache() const;
|
| + ApplicationCacheFrontend* appcacheFrontend() const { return m_appcacheFrontend; }
|
| bool swapCache();
|
|
|
| - RefPtr<EventListener> m_onCheckingListener;
|
| - RefPtr<EventListener> m_onErrorListener;
|
| - RefPtr<EventListener> m_onNoUpdateListener;
|
| - RefPtr<EventListener> m_onDownloadingListener;
|
| - RefPtr<EventListener> m_onProgressListener;
|
| - RefPtr<EventListener> m_onUpdateReadyListener;
|
| - RefPtr<EventListener> m_onCachedListener;
|
| - RefPtr<EventListener> m_onObsoleteListener;
|
| -
|
| + RefPtr<EventListener> m_attributeEventListeners[NUMBER_OF_APPCACHE_EVENT_TYPES];
|
| EventListenersMap m_eventListeners;
|
|
|
| Frame* m_frame;
|
| + ApplicationCacheFrontend* m_appcacheFrontend;
|
| +
|
| };
|
|
|
| } // namespace WebCore
|
|
|
| -#endif // ENABLE(OFFLINE_WEB_APPLICATIONS)
|
| +#endif // ENABLE(APPLICATION_CACHE)
|
|
|
| #endif // DOMApplicationCache_h
|
|
|