NavigationAction.cpp [plain text]
#include "config.h"
#include "NavigationAction.h"
#include "Document.h"
#include "Event.h"
#include "FrameLoader.h"
namespace WebCore {
NavigationAction::NavigationAction() = default;
NavigationAction::~NavigationAction() = default;
NavigationAction::NavigationAction(const NavigationAction&) = default;
NavigationAction::NavigationAction(NavigationAction&&) = default;
NavigationAction& NavigationAction::operator=(const NavigationAction&) = default;
NavigationAction& NavigationAction::operator=(NavigationAction&&) = default;
NavigationAction::NavigationAction(Document& source, const ResourceRequest& resourceRequest, InitiatedByMainFrame initiatedByMainFrame, NavigationType type, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, Event* event, const AtomicString& downloadAttribute)
: m_sourceDocument { makeRefPtr(source) }
, m_resourceRequest { resourceRequest }
, m_type { type }
, m_shouldOpenExternalURLsPolicy { shouldOpenExternalURLsPolicy }
, m_initiatedByMainFrame { initiatedByMainFrame }
, m_event { event }
, m_downloadAttribute { downloadAttribute }
{
}
static NavigationType navigationType(FrameLoadType frameLoadType, bool isFormSubmission, bool haveEvent)
{
if (isFormSubmission)
return NavigationType::FormSubmitted;
if (haveEvent)
return NavigationType::LinkClicked;
if (isReload(frameLoadType))
return NavigationType::Reload;
if (isBackForwardLoadType(frameLoadType))
return NavigationType::BackForward;
return NavigationType::Other;
}
NavigationAction::NavigationAction(Document& source, const ResourceRequest& resourceRequest, InitiatedByMainFrame initiatedByMainFrame, FrameLoadType frameLoadType, bool isFormSubmission, Event* event, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, const AtomicString& downloadAttribute)
: m_sourceDocument { makeRefPtr(source) }
, m_resourceRequest { resourceRequest }
, m_type { navigationType(frameLoadType, isFormSubmission, !!event) }
, m_shouldOpenExternalURLsPolicy { shouldOpenExternalURLsPolicy }
, m_initiatedByMainFrame { initiatedByMainFrame }
, m_event { event }
, m_downloadAttribute { downloadAttribute }
{
}
NavigationAction NavigationAction::copyWithShouldOpenExternalURLsPolicy(ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy) const
{
NavigationAction result(*this);
result.m_shouldOpenExternalURLsPolicy = shouldOpenExternalURLsPolicy;
return result;
}
}