int PatchInit(int (* module_bootstart)(SceSize, void *), void *argp) { init_addr = ((u32)module_bootstart) - 0x1A54; MAKE_JUMP(init_addr + 0x1C5C, sceKernelStartModulePatched); ClearCaches(); return module_bootstart(4, argp); }
nsresult DOMStorageManager::Observe(const char* aTopic, const nsACString& aScopePrefix) { // Clear everything, caches + database if (!strcmp(aTopic, "cookie-cleared")) { ClearCaches(DOMStorageCache::kUnloadComplete, EmptyCString()); return NS_OK; } // Clear from caches everything that has been stored // while in session-only mode if (!strcmp(aTopic, "session-only-cleared")) { ClearCaches(DOMStorageCache::kUnloadSession, aScopePrefix); return NS_OK; } // Clear everything (including so and pb data) from caches and database // for the gived domain and subdomains. if (!strcmp(aTopic, "domain-data-cleared")) { ClearCaches(DOMStorageCache::kUnloadComplete, aScopePrefix); return NS_OK; } // Clear all private-browsing caches if (!strcmp(aTopic, "private-browsing-data-cleared")) { ClearCaches(DOMStorageCache::kUnloadPrivate, EmptyCString()); return NS_OK; } // Clear localStorage data beloging to an app. if (!strcmp(aTopic, "app-data-cleared")) { // sessionStorage is expected to stay if (mType == SessionStorage) { return NS_OK; } ClearCaches(DOMStorageCache::kUnloadComplete, aScopePrefix); return NS_OK; } if (!strcmp(aTopic, "profile-change")) { // For case caches are still referenced - clear them completely ClearCaches(DOMStorageCache::kUnloadComplete, EmptyCString()); mCaches.Clear(); return NS_OK; } if (!strcmp(aTopic, "low-disk-space")) { if (mType == LocalStorage) { mLowDiskSpace = true; } return NS_OK; } if (!strcmp(aTopic, "no-low-disk-space")) { if (mType == LocalStorage) { mLowDiskSpace = false; } return NS_OK; } #ifdef DOM_STORAGE_TESTS if (!strcmp(aTopic, "test-reload")) { if (mType != LocalStorage) { return NS_OK; } // This immediately completely reloads all caches from the database. ClearCaches(DOMStorageCache::kTestReload, EmptyCString()); return NS_OK; } if (!strcmp(aTopic, "test-flushed")) { if (!XRE_IsParentProcess()) { nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService(); if (obs) { obs->NotifyObservers(nullptr, "domstorage-test-flushed", nullptr); } } return NS_OK; } #endif NS_ERROR("Unexpected topic"); return NS_ERROR_UNEXPECTED; }