diff --git a/lawnchair/res/drawable/ic_firefox.xml b/lawnchair/res/drawable/ic_firefox.xml
new file mode 100644
index 00000000000..247d797bcfe
--- /dev/null
+++ b/lawnchair/res/drawable/ic_firefox.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/lawnchair/res/drawable/ic_firefox_tinted.xml b/lawnchair/res/drawable/ic_firefox_tinted.xml
new file mode 100644
index 00000000000..4beb0fdbdac
--- /dev/null
+++ b/lawnchair/res/drawable/ic_firefox_tinted.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/lawnchair/res/drawable/ic_iceraven.xml b/lawnchair/res/drawable/ic_iceraven.xml
new file mode 100644
index 00000000000..7308766f81f
--- /dev/null
+++ b/lawnchair/res/drawable/ic_iceraven.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/lawnchair/res/drawable/ic_iceraven_tinted.xml b/lawnchair/res/drawable/ic_iceraven_tinted.xml
new file mode 100644
index 00000000000..72268352ec1
--- /dev/null
+++ b/lawnchair/res/drawable/ic_iceraven_tinted.xml
@@ -0,0 +1,14 @@
+
+
+
+
\ No newline at end of file
diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml
index 94343b59ec2..c9cabd6e6a2 100644
--- a/lawnchair/res/values/strings.xml
+++ b/lawnchair/res/values/strings.xml
@@ -566,6 +566,8 @@
YouTube
Pixel Search
Yandex
+ Firefox
+ Iceraven
%1$s and Lawnchair have a revenue share agreement.\n\nSearching with %1$s helps support Lawnchair.
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Firefox.kt b/lawnchair/src/app/lawnchair/qsb/providers/Firefox.kt
new file mode 100644
index 00000000000..99c610793ad
--- /dev/null
+++ b/lawnchair/src/app/lawnchair/qsb/providers/Firefox.kt
@@ -0,0 +1,25 @@
+package app.lawnchair.qsb.providers
+
+import android.content.Intent
+import app.lawnchair.qsb.ThemingMethod
+import com.android.launcher3.R
+
+data object Firefox : QsbSearchProvider(
+ id = "Firefox",
+ name = R.string.search_provider_firefox,
+ icon = R.drawable.ic_firefox,
+ themedIcon = R.drawable.ic_firefox_tinted,
+ themingMethod = ThemingMethod.TINT,
+ packageName = "org.mozilla.firefox",
+ action = "org.mozilla.fenix.OPEN_TAB",
+ className = "org.mozilla.fenix.IntentReceiverActivity",
+ website = "https://play.google.com/store/apps/details?id=org.mozilla.firefox",
+ type = QsbSearchProviderType.APP,
+ supportVoiceIntent = false,
+) {
+
+ override fun handleCreateVoiceIntent(): Intent =
+ Intent(action)
+ .addFlags(INTENT_FLAGS)
+ .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity")
+}
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Iceraven.kt b/lawnchair/src/app/lawnchair/qsb/providers/Iceraven.kt
new file mode 100644
index 00000000000..c51b0e00b43
--- /dev/null
+++ b/lawnchair/src/app/lawnchair/qsb/providers/Iceraven.kt
@@ -0,0 +1,25 @@
+package app.lawnchair.qsb.providers
+
+import android.content.Intent
+import app.lawnchair.qsb.ThemingMethod
+import com.android.launcher3.R
+
+data object Iceraven : QsbSearchProvider(
+ id = "Iceraven",
+ name = R.string.search_provider_iceraven,
+ icon = R.drawable.ic_iceraven,
+ themedIcon = R.drawable.ic_iceraven_tinted,
+ themingMethod = ThemingMethod.TINT,
+ packageName = "io.github.forkmaintainers.iceraven",
+ action = "org.mozilla.fenix.OPEN_TAB",
+ className = "org.mozilla.fenix.IntentReceiverActivity",
+ website = "github.com/fork-maintainers/iceraven-browser/releases/latest",
+ type = QsbSearchProviderType.APP,
+ supportVoiceIntent = true,
+) {
+
+ override fun handleCreateVoiceIntent(): Intent =
+ Intent(action)
+ .addFlags(INTENT_FLAGS)
+ .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity")
+}
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt b/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt
index 585b8f5f911..1020c1fa082 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt
@@ -133,6 +133,8 @@ sealed class QsbSearchProvider(
Bing,
Brave,
Yandex,
+ Firefox,
+ Iceraven,
Startpage,
)