diff --git a/app/src/main/assets/high_risk_error_pages.html b/app/src/main/assets/high_risk_error_pages.html
new file mode 100644
index 000000000..c1eb16e2d
--- /dev/null
+++ b/app/src/main/assets/high_risk_error_pages.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/assets/high_risk_error_style.css b/app/src/main/assets/high_risk_error_style.css
new file mode 100644
index 000000000..1a8563114
--- /dev/null
+++ b/app/src/main/assets/high_risk_error_style.css
@@ -0,0 +1,120 @@
+/* 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/. */
+
+html,
+body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+ --moz-vertical-spacing: 10px;
+ --moz-background-height: 32px;
+}
+
+body {
+ background-size: 64px var(--moz-background-height);
+ background-repeat: repeat-x;
+ background-color: #c50042;
+ color: #ffffff;
+ padding: 0 40px;
+ font-size: 14px;
+ -moz-text-size-adjust: none;
+ font-family: sharp-sans;
+}
+
+ul {
+ /* Shove the list indicator so that its left aligned, but use outside so that text
+ * doesn't don't wrap the text around it */
+ padding: 0 1em;
+ margin: 0;
+ list-style-type: disc;
+}
+
+#errorShortDesc,
+li:not(:last-of-type) {
+ /* Margins between the li and buttons below it won't be collapsed. Remove the bottom margin here. */
+ margin: var(--moz-vertical-spacing) 0;
+}
+
+h1 {
+ margin: 0;
+ padding: 0;
+ margin: var(--moz-vertical-spacing) 0;
+ color: #ffffff;
+ font-family: sharp-sans;
+ font-weight: bold;
+ font-size: 20px;
+ line-height: 24px;
+}
+
+p {
+ line-height: 20px;
+ margin: var(--moz-vertical-spacing) 0;
+ color: #ffffff;
+}
+
+button {
+ display: block;
+ height: 36px;
+ width: 100%;
+ border-radius: 5px;
+ border-color: #e3e3e7;
+ font-family: sans-serif;
+ background-color: #e6e6eb;
+ color: #2f2c61;
+ font-size: 14px;
+ font-weight: bold;
+ margin: var(--moz-vertical-spacing) auto;
+ text-aligned:center;
+ vertical-aligned:center;
+ background-image: none;
+}
+
+button.inProgress {
+ background-image: linear-gradient(-45deg, #dfe8ee, #dfe8ee 33%,
+ #ecf0f3 33%, #ecf0f3 66%,
+ #dfe8ee 66%, #dfe8ee);
+ background-size: 37px 5px;
+ background-repeat: repeat-x;
+ animation: progress 6s linear infinite;
+}
+
+@keyframes progress {
+ from { background-position: 0 100%; }
+ to { background-position: 100% 100%; }
+}
+
+#errorPageContainer {
+ /* If the page is greater than 550px center the content.
+ * This number should be kept in sync with the media query for tablets below */
+ max-width: 550px;
+ margin: 0 auto;
+ transform: translateY(var(--moz-background-height));
+ padding-bottom: var(--moz-vertical-spacing);
+
+ min-height: calc(100% - var(--moz-background-height) - var(--moz-vertical-spacing));
+ display: flex;
+ flex-direction: column;
+}
+
+/* On large width devices, apply specific styles here. Often triggered by landscape mode or tablets */
+@media (min-width: 550px) {
+ button {
+ margin: var(--moz-vertical-spacing) var(--moz-vertical-spacing);
+ min-width: 400px;
+ width: auto;
+ }
+
+ /* If the device is tall as well, add some padding to make content feel a bit more centered */
+ @media (min-height: 550px) {
+ #errorPageContainer {
+ padding-top: 64px;
+ min-height: calc(100% - 64px);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ }
+}
+
+
diff --git a/app/src/main/assets/low_and_medium_risk_error_pages.html b/app/src/main/assets/low_and_medium_risk_error_pages.html
new file mode 100644
index 000000000..67ab3a284
--- /dev/null
+++ b/app/src/main/assets/low_and_medium_risk_error_pages.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/assets/low_and_medium_risk_error_style.css b/app/src/main/assets/low_and_medium_risk_error_style.css
new file mode 100644
index 000000000..f4d0de178
--- /dev/null
+++ b/app/src/main/assets/low_and_medium_risk_error_style.css
@@ -0,0 +1,133 @@
+/* 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/. */
+
+html,
+body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+ --moz-vertical-spacing: 10px;
+ --moz-background-height: 32px;
+}
+
+body {
+ background-size: 64px var(--moz-background-height);
+ background-repeat: repeat-x;
+ background-color: #f9f9fb;
+ color: #15141A;
+ padding: 0 40px;
+ font-size: 14px;
+ -moz-text-size-adjust: none;
+ font-family: sans-serif;
+}
+
+ul {
+ /* Shove the list indicator so that its left aligned, but use outside so that text
+ * doesn't don't wrap the text around it */
+ padding: 0 1em;
+ margin: 0;
+ list-style-type: disc;
+}
+
+#errorShortDesc,
+li:not(:last-of-type) {
+ /* Margins between the li and buttons below it won't be collapsed. Remove the bottom margin here. */
+ margin: var(--moz-vertical-spacing) 0;
+}
+
+h1 {
+ margin: 0;
+ padding: 0;
+ margin: var(--moz-vertical-spacing) 0;
+ color: #312a65;
+ font-family: sans-serif;
+ font-weight: bold;
+ font-size: 20px;
+ line-height: 24px;
+}
+
+p {
+ line-height: 20px;
+ margin: var(--moz-vertical-spacing) 0;
+}
+
+
+button {
+ display: block;
+ height: 36px;
+ width: 100%;
+ border-radius: 5px;
+ border-color: #312A65;
+ font-family: sans-serif;
+ background-color: #312A65;
+ color: #FFFFFF;
+ font-size: 14px;
+ font-weight: bold;
+ margin: var(--moz-vertical-spacing) auto;
+ text-aligned:center;
+ vertical-aligned:center;
+}
+
+hr {
+ color: #EDEDF0;
+ margin-left: -40px;
+ margin-right: -40px;
+}
+
+.buttonSecondary {
+ display: block;
+ width: 100%;
+ height: 36px;
+ border-radius: 5px;
+ border-color: #E0E0E6;
+ font-family: sans-serif;
+ font-weight: bold;
+ background-color: #E0E0E6;
+ color: #20123A;
+ text-aligned:center;
+ vertical-aligned:center;
+ margin: var(--moz-vertical-spacing) auto;
+}
+
+#errorPageContainer {
+ /* If the page is greater than 550px center the content.
+ * This number should be kept in sync with the media query for tablets below */
+ max-width: 550px;
+ margin: 0 auto;
+ min-height: 100%;
+}
+
+/* On large width devices, apply specific styles here. Often triggered by landscape mode or tablets */
+@media (min-width: 550px) {
+ button {
+ margin: var(--moz-vertical-spacing) auto;
+ min-width: 400px;
+ width: auto;
+ }
+
+ .buttonSecondary {
+ margin: var(--moz-vertical-spacing) auto;
+ min-width: 400px;
+ width: auto;
+ }
+
+ /* If the device is tall as well, add some padding to make content feel a bit more centered */
+ @media (min-height: 550px) {
+ #errorPageContainer {
+ padding-top: 64px;
+ min-height: calc(100% - 64px);
+ }
+ }
+}
+
+#badCertTechnicalInfo {
+ overflow: auto;
+ white-space: pre-line;
+}
+
+#advancedPanelButtonContainer {
+ display: flex;
+ justify-content: center;
+}
+
diff --git a/app/src/main/java/org/mozilla/fenix/AppRequestInterceptor.kt b/app/src/main/java/org/mozilla/fenix/AppRequestInterceptor.kt
index 783211e9e..260525fbb 100644
--- a/app/src/main/java/org/mozilla/fenix/AppRequestInterceptor.kt
+++ b/app/src/main/java/org/mozilla/fenix/AppRequestInterceptor.kt
@@ -6,7 +6,7 @@ package org.mozilla.fenix
import android.content.Context
import android.net.ConnectivityManager
-import androidx.annotation.RawRes
+import androidx.annotation.StringRes
import androidx.core.content.getSystemService
import mozilla.components.browser.errorpages.ErrorPages
import mozilla.components.browser.errorpages.ErrorType
@@ -14,8 +14,8 @@ import mozilla.components.concept.engine.EngineSession
import mozilla.components.concept.engine.request.RequestInterceptor
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components
-import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.isOnline
+import org.mozilla.fenix.ext.settings
class AppRequestInterceptor(private val context: Context) : RequestInterceptor {
override fun onLoadRequest(
@@ -60,20 +60,18 @@ class AppRequestInterceptor(private val context: Context) : RequestInterceptor {
uri: String?
): RequestInterceptor.ErrorResponse? {
val improvedErrorType = improveErrorType(errorType)
-
val riskLevel = getRiskLevel(improvedErrorType)
context.components.analytics.metrics.track(Event.ErrorPageVisited(improvedErrorType))
- return RequestInterceptor.ErrorResponse.Content(
- ErrorPages.createErrorPage(
- context,
- improvedErrorType,
- uri = uri,
- htmlResource = riskLevel.htmlRes,
- cssResource = riskLevel.cssRes
- )
+ val errorPageUri = ErrorPages.createUrlEncodedErrorPage(
+ context = context,
+ errorType = improvedErrorType,
+ uri = uri,
+ htmlResource = riskLevel.htmlRes
)
+
+ return RequestInterceptor.ErrorResponse.Uri(errorPageUri)
}
/**
@@ -124,9 +122,17 @@ class AppRequestInterceptor(private val context: Context) : RequestInterceptor {
ErrorType.ERROR_SAFEBROWSING_UNWANTED_URI -> RiskLevel.High
}
- private enum class RiskLevel(@RawRes val htmlRes: Int, @RawRes val cssRes: Int) {
- Low(R.raw.low_risk_error_pages, R.raw.low_and_medium_risk_error_style),
- Medium(R.raw.medium_and_high_risk_error_pages, R.raw.low_and_medium_risk_error_style),
- High(R.raw.medium_and_high_risk_error_pages, R.raw.high_risk_error_style),
+ internal enum class RiskLevel(val htmlRes: String) {
+
+ Low(LOW_AND_MEDIUM_RISK_ERROR_PAGES),
+ Medium(LOW_AND_MEDIUM_RISK_ERROR_PAGES),
+ High(HIGH_RISK_ERROR_PAGES),
+ }
+
+
+ companion object {
+ internal const val LOW_AND_MEDIUM_RISK_ERROR_PAGES = "low_and_medium_risk_error_pages.html"
+ internal const val HIGH_RISK_ERROR_PAGES = "high_risk_error_pages.html"
}
}
+
diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
index d70a110b0..4df8affcd 100644
--- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
+++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
@@ -164,6 +164,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity() {
// NB: There are ways for the user to install new products without leaving the browser.
BrowsersCache.resetAll()
}
+
/**
* Handles intents received when the activity is open.
*/
diff --git a/app/src/main/res/layout/fragment_turn_on_sync.xml b/app/src/main/res/layout/fragment_turn_on_sync.xml
index 384496443..f8578da03 100644
--- a/app/src/main/res/layout/fragment_turn_on_sync.xml
+++ b/app/src/main/res/layout/fragment_turn_on_sync.xml
@@ -59,6 +59,7 @@
style="@style/Widget.MaterialComponents.Button.TextButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
+ android:minHeight="48dp"
android:layout_marginTop="16dp"
android:letterSpacing="0"
android:text="@string/sign_in_ready_for_scan"
@@ -79,6 +80,7 @@
style="@style/ThemeIndependentMaterialGreyButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
+ android:minHeight="48dp"
android:layout_marginTop="8dp"
android:text="@string/sign_in_with_email"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/raw/high_risk_error_style.css b/app/src/main/res/raw/high_risk_error_style.css
deleted file mode 100644
index a84513735..000000000
--- a/app/src/main/res/raw/high_risk_error_style.css
+++ /dev/null
@@ -1,227 +0,0 @@
-/* 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/. */
-
-html,
-body {
- margin: 0;
- padding: 0;
- height: 100%;
- --moz-vertical-spacing: 10px;
- --moz-background-height: 32px;
-}
-
-body {
- background-size: 64px var(--moz-background-height);
- background-repeat: repeat-x;
- background-color: #c50042;
- color: #ffffff;
- padding: 0 40px;
- font-size: 14px;
- -moz-text-size-adjust: none;
- font-family: sharp-sans;
-}
-
-ul {
- /* Shove the list indicator so that its left aligned, but use outside so that text
- * doesn't don't wrap the text around it */
- padding: 0 1em;
- margin: 0;
- list-style-type: disc;
-}
-
-#errorShortDesc,
-li:not(:last-of-type) {
- /* Margins between the li and buttons below it won't be collapsed. Remove the bottom margin here. */
- margin: var(--moz-vertical-spacing) 0;
-}
-
-li > button {
- /* Removing the normal padding on the li so this stretched edge to edge. */
- margin-left: -1em;
- margin-right: -1em;
- width: calc(100% + 2em);
-}
-
-/* Push the #ignoreWarningButton to the bottom on the blocked site page */
-.blockedsite > #errorPageContainer > #errorLongContent {
- flex: 1;
-}
-
-h1 {
- margin: 0;
- padding: 0;
- margin: var(--moz-vertical-spacing) 0;
- color: #ffffff;
- font-family: sharp-sans;
- font-weight: bold;
- font-size: 20px;
- line-height: 24px;
-}
-
-p {
- line-height: 20px;
- margin: var(--moz-vertical-spacing) 0;
- color: #ffffff;
-}
-
-button {
- /* Force buttons to display: block here to try and enforce collapsing margins */
- display: block;
- height: 36px;
- width: 100%;
- border-radius: 5px;
- border-color: #e3e3e7;
- font-family: sharp-sans;
- background-color: #e6e6eb;
- color: #2f2c61;
- font-size: 14px;
- font-weight: bold;
- position: fixed;
- bottom: 20px;
- text-aligned:center;
- vertical-aligned:center;
- background-image: none;
-}
-
-button.inProgress {
- background-image: linear-gradient(-45deg, #dfe8ee, #dfe8ee 33%,
- #ecf0f3 33%, #ecf0f3 66%,
- #dfe8ee 66%, #dfe8ee);
- background-size: 37px 5px;
- background-repeat: repeat-x;
- animation: progress 6s linear infinite;
-}
-
-@keyframes progress {
- from { background-position: 0 100%; }
- to { background-position: 100% 100%; }
-}
-
-.certerror {
- background-image: linear-gradient(-45deg, #f0d000, #f0d000 33%,
- #fedc00 33%, #fedc00 66%,
- #f0d000 66%, #f0d000);
-}
-
-.blockedsite {
- background-image: linear-gradient(-45deg, #9b2e2e, #9b2e2e 33%,
- #a83232 33%, #a83232 66%,
- #9b2e2e 66%, #9b2e2e);
- background-color: #b14646;
- color: white;
-}
-
-#errorPageContainer {
- /* If the page is greater than 550px center the content.
- * This number should be kept in sync with the media query for tablets below */
- max-width: 550px;
- margin: 0 auto;
- transform: translateY(var(--moz-background-height));
- padding-bottom: var(--moz-vertical-spacing);
-
- min-height: calc(100% - var(--moz-background-height) - var(--moz-vertical-spacing));
- display: flex;
- flex-direction: column;
-}
-
-/* Expanders have a structure of
- *
- *
Title
- *
Content
- *
- *
- * This shows an arrow to the right of the h2 element, and hides the content when collapsed="true". */
-.expander {
- margin: var(--moz-vertical-spacing) 0;
- background-image: url("chrome://browser/skin/images/dropmarker.svg");
- background-repeat: no-repeat;
- /* dropmarker.svg is 10x7. Ensure that its centered in the middle of an 18x18 box */
- background-position: 3px 5.5px;
- background-size: 10px 7px;
- padding-left: 18px;
-}
-
-div[collapsed="true"] > .expander {
- background-image: url("chrome://browser/skin/images/dropmarker-right.svg");
- /* dropmarker.svg is 7x10. Ensure that its centered in the middle of an 18x18 box */
- background-size: 7px 10px;
- background-position: 5.5px 4px;
-}
-
-div[hidden] > .expander,
-div[hidden] > .expander + *,
-div[collapsed="true"] > .expander + * {
- display: none;
-}
-
-.blockedsite h1 {
- border-bottom-color: #9b2e2e;
-}
-
-.blockedsite button {
- background-color: #9b2e2e;
- color: white;
-}
-
-/* Style warning button to look like a small text link in the
- bottom. This is preferable to just using a text link
- since there is already a mechanism in browser.js for trapping
- oncommand events from unprivileged chrome pages (ErrorPageEventHandler).*/
-#ignoreWarningButton {
- width: calc(100% + 40px);
- -moz-appearance: none;
- background: #b14646;
- border: none;
- text-decoration: underline;
- margin: 0;
- margin-inline-start: -20px;
- font-size: smaller;
- border-radius: 0;
-}
-
-/* On large screen devices (hopefully a 7+ inch tablet, we already center content (see #errorPageContainer above).
- Apply tablet specific styles here */
-@media (min-width: 550px) {
- button {
- min-width: 160px;
- width: auto;
- }
-
- /* If the tablet is tall as well, add some padding to make content feel a bit more centered
- border-box value of box-sizing property makes height property include both content and padding */
- @media (min-height: 550px) {
- #errorPageContainer {
- padding-top: 64px;
- min-height: calc(100% - 64px);
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- }
-}
-
-#searchbox {
- padding: 0;
- display: flex;
- margin: var(--moz-vertical-spacing) -1em;
-}
-
-#searchbox > input {
- flex: 3;
- padding: 0em 3em 0em 1em;
- width: 100%;
- border: none;
- font-family: sans-serif;
- background-image: none;
- background-color: white;
- border-radius-top-right: none;
- border-radius-bottom-right: none;
-}
-
-#searchbox > button {
- flex: 1;
- margin: 0;
- width: auto;
-}
-
diff --git a/app/src/main/res/raw/low_and_medium_risk_error_style.css b/app/src/main/res/raw/low_and_medium_risk_error_style.css
deleted file mode 100644
index 3486910e7..000000000
--- a/app/src/main/res/raw/low_and_medium_risk_error_style.css
+++ /dev/null
@@ -1,220 +0,0 @@
-/* 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/. */
-
-html,
-body {
- margin: 0;
- padding: 0;
- height: 100%;
- --moz-vertical-spacing: 10px;
- --moz-background-height: 32px;
-}
-
-body {
- background-size: 64px var(--moz-background-height);
- background-repeat: repeat-x;
- background-color: #f9f9fb;
- color: #15141A;
- padding: 0 40px;
- font-size: 14px;
- -moz-text-size-adjust: none;
- font-family: sharp-sans;
-}
-
-ul {
- /* Shove the list indicator so that its left aligned, but use outside so that text
- * doesn't don't wrap the text around it */
- padding: 0 1em;
- margin: 0;
- list-style-type: disc;
-}
-
-#errorShortDesc,
-li:not(:last-of-type) {
- /* Margins between the li and buttons below it won't be collapsed. Remove the bottom margin here. */
- margin: var(--moz-vertical-spacing) 0;
-}
-
-li > button {
- /* Removing the normal padding on the li so this stretched edge to edge. */
- margin-left: -1em;
- margin-right: -1em;
- width: calc(100% + 2em);
-}
-
-/* Push the #ignoreWarningButton to the bottom on the blocked site page */
-#errorLongContent {
- flex: 1;
-}
-
-h1 {
- margin: 0;
- padding: 0;
- margin: var(--moz-vertical-spacing) 0;
- color: #312a65;
- font-family: sharp-sans;
- font-weight: bold;
- font-size: 20px;
- line-height: 24px;
-}
-
-p {
- line-height: 20px;
- margin: var(--moz-vertical-spacing) 0;
-}
-
-button {
- /* Force buttons to display: block here to try and enforce collapsing margins */
- display: block;
- flex: 0;
- height: 36px;
- width: 100%;
- border-radius: 5px;
- border-color: #312a65;
- font-family: sharp-sans;
- background-color: #312a65;
- color: #FFFFFF;
- line-height:16px;
- font-size: 14px;
- font-weight: bold;
- text-aligned:center;
- vertical-aligned:center;
- background-image: none;
- margin-bottom: 20px;
-}
-
-button.inProgress {
- background-image: linear-gradient(-45deg, #dfe8ee, #dfe8ee 33%,
- #ecf0f3 33%, #ecf0f3 66%,
- #dfe8ee 66%, #dfe8ee);
- background-size: 37px 5px;
- background-repeat: repeat-x;
- animation: progress 6s linear infinite;
-}
-
-@keyframes progress {
- from { background-position: 0 100%; }
- to { background-position: 100% 100%; }
-}
-
-.certerror {
- background-image: linear-gradient(-45deg, #f0d000, #f0d000 33%,
- #fedc00 33%, #fedc00 66%,
- #f0d000 66%, #f0d000);
-}
-
-.blockedsite {
- background-image: linear-gradient(-45deg, #9b2e2e, #9b2e2e 33%,
- #a83232 33%, #a83232 66%,
- #9b2e2e 66%, #9b2e2e);
- background-color: #b14646;
- color: white;
-}
-
-#errorPageContainer {
- /* If the page is greater than 550px center the content.
- * This number should be kept in sync with the media query for tablets below */
- max-width: 550px;
- margin: 0 auto;
- min-height: 100%;
- display: flex;
- flex-direction: column;
-}
-
-/* Expanders have a structure of
- *
- *
Title
- *
Content
- *
- *
- * This shows an arrow to the right of the h2 element, and hides the content when collapsed="true". */
-.expander {
- margin: var(--moz-vertical-spacing) 0;
- background-image: url("chrome://browser/skin/images/dropmarker.svg");
- background-repeat: no-repeat;
- /* dropmarker.svg is 10x7. Ensure that its centered in the middle of an 18x18 box */
- background-position: 3px 5.5px;
- background-size: 10px 7px;
- padding-left: 18px;
-}
-
-div[collapsed="true"] > .expander {
- background-image: url("chrome://browser/skin/images/dropmarker-right.svg");
- /* dropmarker.svg is 7x10. Ensure that its centered in the middle of an 18x18 box */
- background-size: 7px 10px;
- background-position: 5.5px 4px;
-}
-
-div[hidden] > .expander,
-div[hidden] > .expander + *,
-div[collapsed="true"] > .expander + * {
- display: none;
-}
-
-.blockedsite h1 {
- border-bottom-color: #9b2e2e;
-}
-
-.blockedsite button {
- background-color: #9b2e2e;
- color: white;
-}
-
-/* Style warning button to look like a small text link in the
- bottom. This is preferable to just using a text link
- since there is already a mechanism in browser.js for trapping
- oncommand events from unprivileged chrome pages (ErrorPageEventHandler).*/
-#ignoreWarningButton {
- width: calc(100% + 40px);
- -moz-appearance: none;
- background: #b14646;
- border: none;
- text-decoration: underline;
- margin: 0;
- margin-inline-start: -20px;
- font-size: smaller;
- border-radius: 0;
-}
-
-/* On large screen devices (hopefully a 7+ inch tablet, we already center content (see #errorPageContainer above).
- Apply tablet specific styles here */
-@media (min-width: 550px) {
- button {
- min-width: 160px;
- width: auto;
- }
-
- /* If the tablet is tall as well, add some padding to make content feel a bit more centered */
- @media (min-height: 550px) {
- #errorPageContainer {
- padding-top: 64px;
- min-height: calc(100% - 64px);
- }
- }
-}
-
-#searchbox {
- padding: 0;
- display: flex;
- margin: var(--moz-vertical-spacing) -1em;
-}
-
-#searchbox > input {
- flex: 3;
- padding: 0em 3em 0em 1em;
- width: 100%;
- border: none;
- font-family: sans-serif;
- background-image: none;
- background-color: white;
- border-radius-top-right: none;
- border-radius-bottom-right: none;
-}
-
-#searchbox > button {
- flex: 1;
- margin: 0;
- width: auto;
-}
-
diff --git a/app/src/main/res/raw/low_risk_error_pages.html b/app/src/main/res/raw/low_risk_error_pages.html
deleted file mode 100644
index 27b70ccee..000000000
--- a/app/src/main/res/raw/low_risk_error_pages.html
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
- %pageTitle%
-
-
-
-
-
-
-
-
-
-
%messageShort%
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/raw/medium_and_high_risk_error_pages.html b/app/src/main/res/raw/medium_and_high_risk_error_pages.html
deleted file mode 100644
index dd741e5db..000000000
--- a/app/src/main/res/raw/medium_and_high_risk_error_pages.html
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
- %pageTitle%
-
-
-
-
-
-
-
-
-
-
%messageShort%
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/test/java/org/mozilla/fenix/AppRequestInterceptorTest.kt b/app/src/test/java/org/mozilla/fenix/AppRequestInterceptorTest.kt
index 7755d9290..294fc1a69 100644
--- a/app/src/test/java/org/mozilla/fenix/AppRequestInterceptorTest.kt
+++ b/app/src/test/java/org/mozilla/fenix/AppRequestInterceptorTest.kt
@@ -5,7 +5,6 @@
package org.mozilla.fenix
import android.net.ConnectivityManager
-import androidx.annotation.RawRes
import androidx.core.content.getSystemService
import assertk.assertThat
import assertk.assertions.isEqualTo
@@ -20,6 +19,8 @@ import mozilla.components.support.test.robolectric.testContext
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
+import org.mozilla.fenix.AppRequestInterceptor.Companion.HIGH_RISK_ERROR_PAGES
+import org.mozilla.fenix.AppRequestInterceptor.Companion.LOW_AND_MEDIUM_RISK_ERROR_PAGES
import org.mozilla.fenix.ext.isOnline
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
@@ -67,8 +68,7 @@ class AppRequestInterceptorTest {
val actualPage = createActualErrorPage(error)
val expectedPage = createExpectedErrorPage(
error = error,
- html = R.raw.low_risk_error_pages,
- css = R.raw.low_and_medium_risk_error_style
+ html = LOW_AND_MEDIUM_RISK_ERROR_PAGES
)
assertThat(actualPage).isEqualTo(expectedPage)
@@ -85,8 +85,7 @@ class AppRequestInterceptorTest {
val actualPage = createActualErrorPage(error)
val expectedPage = createExpectedErrorPage(
error = error,
- html = R.raw.medium_and_high_risk_error_pages,
- css = R.raw.low_and_medium_risk_error_style
+ html = LOW_AND_MEDIUM_RISK_ERROR_PAGES
)
assertThat(actualPage).isEqualTo(expectedPage)
@@ -104,8 +103,7 @@ class AppRequestInterceptorTest {
val actualPage = createActualErrorPage(error)
val expectedPage = createExpectedErrorPage(
error = error,
- html = R.raw.medium_and_high_risk_error_pages,
- css = R.raw.high_risk_error_style
+ html = HIGH_RISK_ERROR_PAGES
)
assertThat(actualPage).isEqualTo(expectedPage)
@@ -114,11 +112,15 @@ class AppRequestInterceptorTest {
private fun createActualErrorPage(error: ErrorType): String {
val errorPage = interceptor.onErrorRequest(session = mockk(), errorType = error, uri = null)
- as RequestInterceptor.ErrorResponse.Content
- return errorPage.data
+ as RequestInterceptor.ErrorResponse.Uri
+ return errorPage.uri
}
- private fun createExpectedErrorPage(error: ErrorType, @RawRes html: Int, @RawRes css: Int): String {
- return ErrorPages.createErrorPage(testContext, error, null, html, css)
+ private fun createExpectedErrorPage(error: ErrorType, html: String): String {
+ return ErrorPages.createUrlEncodedErrorPage(
+ context = testContext,
+ errorType = error,
+ htmlResource = html
+ )
}
}