Bug 1769952 - Fix running raptor on a Win10-64 VM r=sparky
[gecko.git] / dom / offline / nsDOMOfflineResourceList.cpp
blob89ab428becc2a4325ca162353738d4b63f465254
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #include "nsDOMOfflineResourceList.h"
8 #include "nsError.h"
9 #include "mozilla/Components.h"
10 #include "mozilla/dom/DOMStringList.h"
11 #include "nsMemory.h"
12 #include "nsNetUtil.h"
13 #include "nsNetCID.h"
14 #include "nsServiceManagerUtils.h"
15 #include "nsICookieJarSettings.h"
16 #include "nsIInterfaceRequestorUtils.h"
17 #include "nsContentUtils.h"
18 #include "nsILoadContext.h"
19 #include "nsIObserverService.h"
20 #include "nsIScriptGlobalObject.h"
21 #include "nsIWebNavigation.h"
22 #include "mozilla/dom/Document.h"
23 #include "mozilla/dom/Event.h"
24 #include "mozilla/dom/OfflineResourceListBinding.h"
25 #include "mozilla/EventDispatcher.h"
26 #include "mozilla/EventListenerManager.h"
27 #include "mozilla/Preferences.h"
28 #include "mozilla/BasePrincipal.h"
29 #include "mozilla/StaticPrefs_browser.h"
31 #include "nsXULAppAPI.h"
32 #define IS_CHILD_PROCESS() (GeckoProcessType_Default != XRE_GetProcessType())
34 using namespace mozilla;
35 using namespace mozilla::dom;
38 // nsDOMOfflineResourceList
41 NS_IMPL_CYCLE_COLLECTION_WEAK_INHERITED(nsDOMOfflineResourceList,
42 DOMEventTargetHelper)
44 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDOMOfflineResourceList)
45 NS_INTERFACE_MAP_ENTRY(nsIObserver)
46 NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
47 NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
49 NS_IMPL_ADDREF_INHERITED(nsDOMOfflineResourceList, DOMEventTargetHelper)
50 NS_IMPL_RELEASE_INHERITED(nsDOMOfflineResourceList, DOMEventTargetHelper)
52 nsDOMOfflineResourceList::nsDOMOfflineResourceList(
53 nsIURI* aManifestURI, nsIURI* aDocumentURI, nsIPrincipal* aLoadingPrincipal,
54 nsPIDOMWindowInner* aWindow)
55 : DOMEventTargetHelper(aWindow) {}
57 nsDOMOfflineResourceList::~nsDOMOfflineResourceList() { ClearCachedKeys(); }
59 JSObject* nsDOMOfflineResourceList::WrapObject(
60 JSContext* aCx, JS::Handle<JSObject*> aGivenProto) {
61 return OfflineResourceList_Binding::Wrap(aCx, this, aGivenProto);
64 void nsDOMOfflineResourceList::Disconnect() {}
66 already_AddRefed<DOMStringList> nsDOMOfflineResourceList::GetMozItems(
67 ErrorResult& aRv) {
68 if (IS_CHILD_PROCESS()) {
69 aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
70 return nullptr;
73 RefPtr<DOMStringList> items = new DOMStringList();
74 return items.forget();
77 bool nsDOMOfflineResourceList::MozHasItem(const nsAString& aURI,
78 ErrorResult& aRv) {
79 return false;
82 uint32_t nsDOMOfflineResourceList::GetMozLength(ErrorResult& aRv) {
83 if (IS_CHILD_PROCESS()) {
84 aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
85 return 0;
88 return 0;
91 void nsDOMOfflineResourceList::MozItem(uint32_t aIndex, nsAString& aURI,
92 ErrorResult& aRv) {
93 aRv.Throw(NS_ERROR_NOT_AVAILABLE);
96 void nsDOMOfflineResourceList::IndexedGetter(uint32_t aIndex, bool& aFound,
97 nsAString& aURI,
98 ErrorResult& aRv) {
99 if (IS_CHILD_PROCESS()) {
100 aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
101 return;
104 aFound = false;
107 void nsDOMOfflineResourceList::MozAdd(const nsAString& aURI, ErrorResult& aRv) {
110 void nsDOMOfflineResourceList::MozRemove(const nsAString& aURI,
111 ErrorResult& aRv) {}
113 uint16_t nsDOMOfflineResourceList::GetStatus(ErrorResult& aRv) {
114 return OfflineResourceList_Binding::UNCACHED;
117 void nsDOMOfflineResourceList::Update(ErrorResult& aRv) {}
119 void nsDOMOfflineResourceList::SwapCache(ErrorResult& aRv) {}
121 void nsDOMOfflineResourceList::FirePendingEvents() {}
123 void nsDOMOfflineResourceList::SendEvent(const nsAString& aEventName) {}
126 // nsDOMOfflineResourceList::nsIObserver
128 NS_IMETHODIMP
129 nsDOMOfflineResourceList::Observe(nsISupports* aSubject, const char* aTopic,
130 const char16_t* aData) {
131 return NS_OK;
134 nsresult nsDOMOfflineResourceList::GetCacheKey(const nsAString& aURI,
135 nsCString& aKey) {
136 nsCOMPtr<nsIURI> requestedURI;
137 nsresult rv = NS_NewURI(getter_AddRefs(requestedURI), aURI);
138 NS_ENSURE_SUCCESS(rv, rv);
140 return GetCacheKey(requestedURI, aKey);
143 nsresult nsDOMOfflineResourceList::GetCacheKey(nsIURI* aURI, nsCString& aKey) {
144 nsresult rv = aURI->GetAsciiSpec(aKey);
145 NS_ENSURE_SUCCESS(rv, rv);
147 // url fragments aren't used in cache keys
148 nsAutoCString::const_iterator specStart, specEnd;
149 aKey.BeginReading(specStart);
150 aKey.EndReading(specEnd);
151 if (FindCharInReadable('#', specStart, specEnd)) {
152 aKey.BeginReading(specEnd);
153 aKey = Substring(specEnd, specStart);
156 return NS_OK;
159 nsresult nsDOMOfflineResourceList::CacheKeys() { return NS_OK; }
161 void nsDOMOfflineResourceList::ClearCachedKeys() {}