FrameLoadState.cpp [plain text]
#include "config.h"
#include "FrameLoadState.h"
namespace WebKit {
FrameLoadState::~FrameLoadState()
{
}
void FrameLoadState::addObserver(Observer& observer)
{
auto result = m_observers.add(observer);
ASSERT_UNUSED(result, result.isNewEntry);
}
void FrameLoadState::removeObserver(Observer& observer)
{
auto result = m_observers.remove(observer);
ASSERT_UNUSED(result, result);
}
void FrameLoadState::didStartProvisionalLoad(const URL& url)
{
ASSERT(m_provisionalURL.isEmpty());
m_state = State::Provisional;
m_provisionalURL = url;
}
void FrameLoadState::didExplicitOpen(const URL& url)
{
m_url = url;
m_provisionalURL = { };
}
void FrameLoadState::didReceiveServerRedirectForProvisionalLoad(const URL& url)
{
ASSERT(m_state == State::Provisional);
m_provisionalURL = url;
}
void FrameLoadState::didFailProvisionalLoad()
{
ASSERT(m_state == State::Provisional);
m_state = State::Finished;
m_provisionalURL = { };
m_unreachableURL = m_lastUnreachableURL;
}
void FrameLoadState::didCommitLoad()
{
ASSERT(m_state == State::Provisional);
m_state = State::Committed;
m_url = m_provisionalURL;
m_provisionalURL = { };
}
void FrameLoadState::didFinishLoad()
{
ASSERT(m_state == State::Committed);
ASSERT(m_provisionalURL.isEmpty());
m_state = State::Finished;
Vector<Observer*> observersCopy;
for (auto& observer : m_observers)
observersCopy.append(&observer);
for (auto* observer : observersCopy)
observer->didFinishLoad();
}
void FrameLoadState::didFailLoad()
{
ASSERT(m_state == State::Committed);
ASSERT(m_provisionalURL.isEmpty());
m_state = State::Finished;
}
void FrameLoadState::didSameDocumentNotification(const URL& url)
{
m_url = url;
}
void FrameLoadState::setUnreachableURL(const URL& unreachableURL)
{
m_lastUnreachableURL = m_unreachableURL;
m_unreachableURL = unreachableURL;
}
}