summaryrefslogtreecommitdiff
path: root/Source/WebCore/loader/NavigationAction.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/loader/NavigationAction.h')
-rw-r--r--Source/WebCore/loader/NavigationAction.h65
1 files changed, 41 insertions, 24 deletions
diff --git a/Source/WebCore/loader/NavigationAction.h b/Source/WebCore/loader/NavigationAction.h
index 5e21e0140..3702dc550 100644
--- a/Source/WebCore/loader/NavigationAction.h
+++ b/Source/WebCore/loader/NavigationAction.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006-2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,7 +10,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * 3. Neither the name of Apple Inc. ("Apple") nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
@@ -26,40 +26,57 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef NavigationAction_h
-#define NavigationAction_h
+#pragma once
#include "Event.h"
#include "FrameLoaderTypes.h"
#include "URL.h"
#include "ResourceRequest.h"
+#include "UserGestureIndicator.h"
#include <wtf/Forward.h>
namespace WebCore {
- class NavigationAction {
- public:
- NavigationAction();
- explicit NavigationAction(const ResourceRequest&);
- NavigationAction(const ResourceRequest&, NavigationType);
- NavigationAction(const ResourceRequest&, FrameLoadType, bool isFormSubmission);
- NavigationAction(const ResourceRequest&, NavigationType, PassRefPtr<Event>);
- NavigationAction(const ResourceRequest&, FrameLoadType, bool isFormSubmission, PassRefPtr<Event>);
+class NavigationAction {
+public:
+ WEBCORE_EXPORT NavigationAction();
+ WEBCORE_EXPORT explicit NavigationAction(const ResourceRequest&);
+ WEBCORE_EXPORT NavigationAction(const ResourceRequest&, NavigationType);
+ WEBCORE_EXPORT NavigationAction(const ResourceRequest&, FrameLoadType, bool isFormSubmission);
- bool isEmpty() const { return m_resourceRequest.url().isEmpty(); }
+ NavigationAction(const ResourceRequest&, ShouldOpenExternalURLsPolicy);
+ NavigationAction(const ResourceRequest&, NavigationType, Event*);
+ NavigationAction(const ResourceRequest&, NavigationType, Event*, ShouldOpenExternalURLsPolicy);
+ NavigationAction(const ResourceRequest&, NavigationType, Event*, ShouldOpenExternalURLsPolicy, const AtomicString& downloadAttribute);
+ NavigationAction(const ResourceRequest&, NavigationType, ShouldOpenExternalURLsPolicy);
+ NavigationAction(const ResourceRequest&, FrameLoadType, bool isFormSubmission, Event*);
+ NavigationAction(const ResourceRequest&, FrameLoadType, bool isFormSubmission, Event*, ShouldOpenExternalURLsPolicy);
+ NavigationAction(const ResourceRequest&, FrameLoadType, bool isFormSubmission, Event*, ShouldOpenExternalURLsPolicy, const AtomicString& downloadAttribute);
- URL url() const { return m_resourceRequest.url(); }
- const ResourceRequest& resourceRequest() const { return m_resourceRequest; }
+ NavigationAction copyWithShouldOpenExternalURLsPolicy(ShouldOpenExternalURLsPolicy) const;
- NavigationType type() const { return m_type; }
- const Event* event() const { return m_event.get(); }
+ bool isEmpty() const { return m_resourceRequest.url().isEmpty(); }
- private:
- ResourceRequest m_resourceRequest;
- NavigationType m_type;
- RefPtr<Event> m_event;
- };
+ URL url() const { return m_resourceRequest.url(); }
+ const ResourceRequest& resourceRequest() const { return m_resourceRequest; }
-}
+ NavigationType type() const { return m_type; }
+ const Event* event() const { return m_event.get(); }
-#endif
+ bool processingUserGesture() const { return m_userGestureToken ? m_userGestureToken->processingUserGesture() : false; }
+ RefPtr<UserGestureToken> userGestureToken() const { return m_userGestureToken; }
+
+ ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy() const { return m_shouldOpenExternalURLsPolicy; }
+
+ const AtomicString& downloadAttribute() const { return m_downloadAttribute; }
+
+private:
+ ResourceRequest m_resourceRequest;
+ NavigationType m_type { NavigationType::Other };
+ RefPtr<Event> m_event;
+ RefPtr<UserGestureToken> m_userGestureToken;
+ ShouldOpenExternalURLsPolicy m_shouldOpenExternalURLsPolicy { ShouldOpenExternalURLsPolicy::ShouldNotAllow };
+ AtomicString m_downloadAttribute;
+};
+
+} // namespace WebCore