summaryrefslogtreecommitdiffstats
path: root/dom/base/PlacesVisitRemoved.h
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/PlacesVisitRemoved.h')
-rw-r--r--dom/base/PlacesVisitRemoved.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/dom/base/PlacesVisitRemoved.h b/dom/base/PlacesVisitRemoved.h
new file mode 100644
index 0000000000..3b11dd5184
--- /dev/null
+++ b/dom/base/PlacesVisitRemoved.h
@@ -0,0 +1,69 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef mozilla_dom_PlacesVisitRemoved_h
+#define mozilla_dom_PlacesVisitRemoved_h
+
+#include "mozilla/dom/PlacesEvent.h"
+
+namespace mozilla {
+namespace dom {
+
+class PlacesVisitRemoved final : public PlacesEvent {
+ public:
+ explicit PlacesVisitRemoved() : PlacesEvent(PlacesEventType::Page_removed) {}
+
+ static already_AddRefed<PlacesVisitRemoved> Constructor(
+ const GlobalObject& aGlobal, const PlacesVisitRemovedInit& aInitDict) {
+ MOZ_ASSERT(
+ aInitDict.mReason == PlacesVisitRemoved_Binding::REASON_DELETED ||
+ aInitDict.mReason == PlacesVisitRemoved_Binding::REASON_EXPIRED,
+ "The reason should be REASON_DELETED or REASON_EXPIRED");
+ MOZ_ASSERT(
+ !(aInitDict.mIsRemovedFromStore && aInitDict.mIsPartialVisistsRemoval),
+ "isRemovedFromStore and isPartialVisistsRemoval are inconsistent");
+
+ RefPtr<PlacesVisitRemoved> event = new PlacesVisitRemoved();
+ event->mUrl = aInitDict.mUrl;
+ event->mPageGuid = aInitDict.mPageGuid;
+ event->mReason = aInitDict.mReason;
+ event->mTransitionType = aInitDict.mTransitionType;
+ event->mIsRemovedFromStore = aInitDict.mIsRemovedFromStore;
+ event->mIsPartialVisistsRemoval = aInitDict.mIsPartialVisistsRemoval;
+ return event.forget();
+ }
+
+ JSObject* WrapObject(JSContext* aCx,
+ JS::Handle<JSObject*> aGivenProto) override {
+ return PlacesVisitRemoved_Binding::Wrap(aCx, this, aGivenProto);
+ }
+
+ const PlacesVisitRemoved* AsPlacesVisitRemoved() const override {
+ return this;
+ }
+
+ void GetUrl(nsString& aUrl) const { aUrl = mUrl; }
+ void GetPageGuid(nsCString& aPageGuid) const { aPageGuid = mPageGuid; }
+ uint16_t Reason() const { return mReason; }
+ uint32_t TransitionType() const { return mTransitionType; }
+ bool IsRemovedFromStore() const { return mIsRemovedFromStore; }
+ bool IsPartialVisistsRemoval() const { return mIsPartialVisistsRemoval; }
+
+ nsString mUrl;
+ nsCString mPageGuid;
+ uint16_t mReason;
+ uint32_t mTransitionType;
+ bool mIsRemovedFromStore;
+ bool mIsPartialVisistsRemoval;
+
+ private:
+ ~PlacesVisitRemoved() = default;
+};
+
+} // namespace dom
+} // namespace mozilla
+
+#endif // mozilla_dom_PlacesVisitRemoved_h