107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch// found in the LICENSE file.
407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#include "config.h"
607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#include "core/events/ApplicationCacheErrorEvent.h"
707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
8c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
1007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdochstatic const String& errorReasonToString(blink::WebApplicationCacheHost::ErrorReason reason)
1107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch{
1207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    DEFINE_STATIC_LOCAL(String, errorManifest, ("manifest"));
1307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    DEFINE_STATIC_LOCAL(String, errorSignature, ("signature"));
1407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    DEFINE_STATIC_LOCAL(String, errorResource, ("resource"));
1507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    DEFINE_STATIC_LOCAL(String, errorChanged, ("changed"));
1607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    DEFINE_STATIC_LOCAL(String, errorAbort, ("abort"));
1707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    DEFINE_STATIC_LOCAL(String, errorQuota, ("quota"));
1807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    DEFINE_STATIC_LOCAL(String, errorPolicy, ("policy"));
1907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    DEFINE_STATIC_LOCAL(String, errorUnknown, ("unknown"));
2007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
2107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    switch (reason) {
2207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    case blink::WebApplicationCacheHost::ManifestError:
2307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch        return errorManifest;
2407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    case blink::WebApplicationCacheHost::SignatureError:
2507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch        return errorSignature;
2607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    case blink::WebApplicationCacheHost::ResourceError:
2707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch        return errorResource;
2807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    case blink::WebApplicationCacheHost::ChangedError:
2907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch        return errorChanged;
3007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    case blink::WebApplicationCacheHost::AbortError:
3107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch        return errorAbort;
3207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    case blink::WebApplicationCacheHost::QuotaError:
3307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch        return errorQuota;
3407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    case blink::WebApplicationCacheHost::PolicyError:
3507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch        return errorPolicy;
3607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    case blink::WebApplicationCacheHost::UnknownError:
3707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch        return errorUnknown;
3807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    }
3907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    ASSERT_NOT_REACHED();
4007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    return emptyString();
4107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch}
4207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
4307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben MurdochApplicationCacheErrorEventInit::ApplicationCacheErrorEventInit()
4407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    : status(0)
4507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch{
4607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch}
4707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
4807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben MurdochApplicationCacheErrorEvent::ApplicationCacheErrorEvent()
4907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch{
5007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch}
5107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
5207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben MurdochApplicationCacheErrorEvent::ApplicationCacheErrorEvent(blink::WebApplicationCacheHost::ErrorReason reason, const String& url, int status, const String& message)
5307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    : Event(EventTypeNames::error, false, false)
5407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    , m_reason(errorReasonToString(reason))
5507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    , m_url(url)
5607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    , m_status(status)
5707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    , m_message(message)
5807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch{
5907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch}
6007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
6107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben MurdochApplicationCacheErrorEvent::ApplicationCacheErrorEvent(const AtomicString& eventType, const ApplicationCacheErrorEventInit& initializer)
6207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    : Event(eventType, initializer)
6307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    , m_reason(initializer.reason)
6407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    , m_url(initializer.url)
6507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    , m_status(initializer.status)
6607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    , m_message(initializer.message)
6707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch{
6807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch}
6907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
7007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben MurdochApplicationCacheErrorEvent::~ApplicationCacheErrorEvent()
7107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch{
7207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch}
7307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
7407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdochvoid ApplicationCacheErrorEvent::trace(Visitor* visitor)
7507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch{
7607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    Event::trace(visitor);
7707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch}
7807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch
79c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
80