blob: cf247812e6706587c3a84a57f68c57ec830ae192 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "config.h"
#include "core/events/ApplicationCacheErrorEvent.h"
namespace blink {
static const String& errorReasonToString(WebApplicationCacheHost::ErrorReason reason)
{
DEFINE_STATIC_LOCAL(String, errorManifest, ("manifest"));
DEFINE_STATIC_LOCAL(String, errorSignature, ("signature"));
DEFINE_STATIC_LOCAL(String, errorResource, ("resource"));
DEFINE_STATIC_LOCAL(String, errorChanged, ("changed"));
DEFINE_STATIC_LOCAL(String, errorAbort, ("abort"));
DEFINE_STATIC_LOCAL(String, errorQuota, ("quota"));
DEFINE_STATIC_LOCAL(String, errorPolicy, ("policy"));
DEFINE_STATIC_LOCAL(String, errorUnknown, ("unknown"));
switch (reason) {
case WebApplicationCacheHost::ManifestError:
return errorManifest;
case WebApplicationCacheHost::SignatureError:
return errorSignature;
case WebApplicationCacheHost::ResourceError:
return errorResource;
case WebApplicationCacheHost::ChangedError:
return errorChanged;
case WebApplicationCacheHost::AbortError:
return errorAbort;
case WebApplicationCacheHost::QuotaError:
return errorQuota;
case WebApplicationCacheHost::PolicyError:
return errorPolicy;
case WebApplicationCacheHost::UnknownError:
return errorUnknown;
}
ASSERT_NOT_REACHED();
return emptyString();
}
ApplicationCacheErrorEvent::ApplicationCacheErrorEvent()
{
}
ApplicationCacheErrorEvent::ApplicationCacheErrorEvent(WebApplicationCacheHost::ErrorReason reason, const String& url, int status, const String& message)
: Event(EventTypeNames::error, false, false)
, m_reason(errorReasonToString(reason))
, m_url(url)
, m_status(status)
, m_message(message)
{
}
ApplicationCacheErrorEvent::ApplicationCacheErrorEvent(const AtomicString& eventType, const ApplicationCacheErrorEventInit& initializer)
: Event(eventType, initializer)
, m_status(0)
{
if (initializer.hasReason())
m_reason = initializer.reason();
if (initializer.hasURL())
m_url = initializer.url();
if (initializer.hasStatus())
m_status = initializer.status();
if (initializer.hasMessage())
m_message = initializer.message();
}
ApplicationCacheErrorEvent::~ApplicationCacheErrorEvent()
{
}
DEFINE_TRACE(ApplicationCacheErrorEvent)
{
Event::trace(visitor);
}
} // namespace blink