1
0
Fork 0

Bug 1643132 - Remove native "Report site issue" functionality.

This will be replaced by the WebCompat team's system extension that ships as an android-component.
master
Dennis Schubert 2020-06-03 21:15:06 +02:00 committed by Emily Kager
parent f40e0acf96
commit d046d908fc
11 changed files with 1 additions and 139 deletions

View File

@ -257,7 +257,5 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
companion object {
private const val SHARED_TRANSITION_MS = 200L
private const val TAB_ITEM_TRANSITION_NAME = "tab_item"
const val REPORT_SITE_ISSUE_URL =
"https://webcompat.com/issues/new?url=%s&label=browser-fenix"
}
}

View File

@ -420,7 +420,7 @@ sealed class Event {
data class BrowserMenuItemTapped(val item: Item) : Event() {
enum class Item {
SETTINGS, HELP, DESKTOP_VIEW_ON, DESKTOP_VIEW_OFF, FIND_IN_PAGE, NEW_TAB,
NEW_PRIVATE_TAB, SHARE, REPORT_SITE_ISSUE, BACK, FORWARD, RELOAD, STOP, OPEN_IN_FENIX,
NEW_PRIVATE_TAB, SHARE, BACK, FORWARD, RELOAD, STOP, OPEN_IN_FENIX,
SAVE_TO_COLLECTION, ADD_TO_TOP_SITES, ADD_TO_HOMESCREEN, QUIT, READER_MODE_ON,
READER_MODE_OFF, OPEN_IN_APP, BOOKMARK, READER_MODE_APPEARANCE, ADDONS_MANAGER,
BOOKMARKS, HISTORY, SYNC_TABS

View File

@ -20,7 +20,6 @@ import mozilla.appservices.places.BookmarkRoot
import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager
import mozilla.components.browser.state.selector.findTab
import mozilla.components.browser.state.selector.selectedTab
import mozilla.components.concept.engine.EngineView
import mozilla.components.concept.engine.prompt.ShareData
import mozilla.components.support.ktx.kotlin.isUrl
@ -28,7 +27,6 @@ import org.mozilla.fenix.NavGraphDirections
import org.mozilla.fenix.R
import org.mozilla.fenix.browser.BrowserAnimator
import org.mozilla.fenix.browser.BrowserAnimator.Companion.getToolbarNavOptions
import org.mozilla.fenix.browser.BrowserFragment
import org.mozilla.fenix.browser.BrowserFragmentDirections
import org.mozilla.fenix.browser.readermode.ReaderModeController
import org.mozilla.fenix.collections.SaveCollectionStep
@ -215,15 +213,6 @@ class DefaultBrowserToolbarController(
findInPageLauncher()
activity.components.analytics.metrics.track(Event.FindInPageOpened)
}
ToolbarMenu.Item.ReportIssue -> {
val selectedTab = activity.components.core.store.state.selectedTab
selectedTab?.let {
val currentUrl = it.content.url
val reportUrl = String.format(BrowserFragment.REPORT_SITE_ISSUE_URL, currentUrl)
val private = it.content.private
reportSiteIssue(reportUrl, private)
}
}
ToolbarMenu.Item.AddonsManager -> {
navController.nav(
@ -346,14 +335,6 @@ class DefaultBrowserToolbarController(
}
}
private fun reportSiteIssue(reportUrl: String, private: Boolean) {
if (private) {
activity.components.useCases.tabsUseCases.addPrivateTab.invoke(reportUrl)
} else {
activity.components.useCases.tabsUseCases.addTab.invoke(reportUrl)
}
}
@SuppressWarnings("ComplexMethod")
private fun trackToolbarItemInteraction(item: ToolbarMenu.Item) {
val eventItem = when (item) {
@ -370,7 +351,6 @@ class DefaultBrowserToolbarController(
}
ToolbarMenu.Item.FindInPage -> Event.BrowserMenuItemTapped.Item.FIND_IN_PAGE
ToolbarMenu.Item.ReportIssue -> Event.BrowserMenuItemTapped.Item.REPORT_SITE_ISSUE
ToolbarMenu.Item.OpenInFenix -> Event.BrowserMenuItemTapped.Item.OPEN_IN_FENIX
ToolbarMenu.Item.Share -> Event.BrowserMenuItemTapped.Item.SHARE
ToolbarMenu.Item.SaveToCollection -> Event.BrowserMenuItemTapped.Item.SAVE_TO_COLLECTION

View File

@ -26,10 +26,8 @@ import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.concept.storage.BookmarksStorage
import mozilla.components.support.ktx.android.content.getColorFromAttr
import org.mozilla.fenix.R
import org.mozilla.fenix.Config
import org.mozilla.fenix.FeatureFlags
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.ReleaseChannel
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
import org.mozilla.fenix.ext.asActivity
import org.mozilla.fenix.ext.components
@ -183,10 +181,6 @@ class DefaultToolbarMenu(
?.browsingModeManager?.mode == BrowsingMode.Normal
val shouldDeleteDataOnQuit = Settings.getInstance(context)
.shouldDeleteBrowsingDataOnQuit
val shouldShowWebcompatReporter = Config.channel !in setOf(
ReleaseChannel.FenixProduction,
ReleaseChannel.FennecProduction
)
val menuItems = listOfNotNull(
historyItem,
@ -195,7 +189,6 @@ class DefaultToolbarMenu(
settings,
if (shouldDeleteDataOnQuit) deleteDataOnQuit else null,
BrowserMenuDivider(),
if (shouldShowWebcompatReporter) reportIssue else null,
findInPage,
addToTopSites,
addToHomescreen.apply { visible = ::canAddToHomescreen },
@ -292,14 +285,6 @@ class DefaultToolbarMenu(
onItemTapped.invoke(ToolbarMenu.Item.FindInPage)
}
private val reportIssue = BrowserMenuImageText(
label = context.getString(R.string.browser_menu_report_issue),
imageResource = R.drawable.ic_report_issues,
iconTintColorResource = primaryTextColor()
) {
onItemTapped.invoke(ToolbarMenu.Item.ReportIssue)
}
private val saveToCollection = BrowserMenuImageText(
label = context.getString(R.string.browser_menu_save_to_collection_2),
imageResource = R.drawable.ic_tab_collection,

View File

@ -17,7 +17,6 @@ interface ToolbarMenu {
object Forward : Item()
object Reload : Item()
object Stop : Item()
object ReportIssue : Item()
object OpenInFenix : Item()
object SaveToCollection : Item()
object AddToTopSites : Item()

View File

@ -64,7 +64,6 @@ interface QuickSettingsController {
* @param addNewTab [AddNewTabUseCase] callback allowing for loading a URL in a new tab.
* @param requestRuntimePermissions [OnNeedToRequestPermissions] callback allowing for requesting
* specific Android runtime permissions.
* @param reportSiteIssue callback allowing to report an issue with the current web page.
* @param displayPermissions callback for when [WebsitePermissionsView] needs to be displayed.
* @param dismiss callback allowing to request this entire Fragment to be dismissed.
*/
@ -81,7 +80,6 @@ class DefaultQuickSettingsController(
private val reload: ReloadUrlUseCase,
private val addNewTab: AddNewTabUseCase,
private val requestRuntimePermissions: OnNeedToRequestPermissions = { },
private val reportSiteIssue: () -> Unit,
private val displayPermissions: () -> Unit,
private val dismiss: () -> Unit
) : QuickSettingsController {

View File

@ -87,7 +87,6 @@ class QuickSettingsSheetDialogFragment : AppCompatDialogFragment() {
requestPermissions(permissions, REQUEST_CODE_QUICK_SETTINGS_PERMISSIONS)
tryToRequestPermissions = true
},
reportSiteIssue = ::launchIntentReceiver,
displayPermissions = ::showPermissionsView,
dismiss = ::dismiss
)

View File

@ -34,17 +34,5 @@
android:textColor="?accentBright"
android:visibility="gone"
tools:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/reportSiteIssueAction" />
<TextView
android:id="@+id/reportSiteIssueAction"
style="@style/QuickSettingsText.Icon"
android:layout_width="match_parent"
android:layout_height="@dimen/quicksettings_item_height"
android:gravity="top"
android:paddingStart="48dp"
android:paddingEnd="0dp"
android:text="@string/browser_menu_report_issue"
android:textColor="?accentUsedOnDarkBackground"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -105,8 +105,6 @@
<string name="browser_menu_new_tab">New tab</string>
<!-- Browser menu button that saves the current tab to a collection -->
<string name="browser_menu_save_to_collection_2">Save to collection</string>
<!-- Browser menu button that opens a dialog to report issues with the current site -->
<string name="browser_menu_report_issue">Report site issue</string>
<!-- Browser menu button that open a share menu to share the current site -->
<string name="browser_menu_share">Share</string>
<!-- Share menu title, displayed when a user is sharing their current site -->

View File

@ -36,7 +36,6 @@ import mozilla.components.concept.engine.EngineView
import mozilla.components.feature.search.SearchUseCases
import mozilla.components.feature.session.SessionUseCases
import mozilla.components.feature.tab.collections.TabCollection
import mozilla.components.feature.tabs.TabsUseCases
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Before
@ -45,7 +44,6 @@ import org.junit.runner.RunWith
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.browser.BrowserAnimator
import org.mozilla.fenix.browser.BrowserFragment
import org.mozilla.fenix.browser.BrowserFragmentDirections
import org.mozilla.fenix.browser.readermode.ReaderModeController
import org.mozilla.fenix.collections.SaveCollectionStep
@ -422,84 +420,6 @@ class DefaultBrowserToolbarControllerTest {
verify { metrics.track(Event.FindInPageOpened) }
}
@Test
fun handleToolbarReportIssuePressInNormalMode() {
val tabsUseCases: TabsUseCases = mockk(relaxed = true)
val addTabUseCase: TabsUseCases.AddNewTabUseCase = mockk(relaxed = true)
val browserStore =
BrowserStore(
BrowserState(
tabs = listOf(
createTab(
url = "https://mozilla.org",
private = false,
id = "tab1"
)
),
selectedTabId = "tab1"
)
)
val item = ToolbarMenu.Item.ReportIssue
every { activity.components.core.store } returns browserStore
every { activity.components.useCases.tabsUseCases } returns tabsUseCases
every { tabsUseCases.addTab } returns addTabUseCase
controller.handleToolbarItemInteraction(item)
verify { metrics.track(Event.BrowserMenuItemTapped(Event.BrowserMenuItemTapped.Item.REPORT_SITE_ISSUE)) }
verify {
// Hardcoded URL because this function modifies the URL with an apply
addTabUseCase.invoke(
String.format(
BrowserFragment.REPORT_SITE_ISSUE_URL,
"https://mozilla.org"
)
)
}
}
@Test
fun handleToolbarReportIssuePressInPrivateMode() {
val tabsUseCases: TabsUseCases = mockk(relaxed = true)
val addPrivateTabUseCase: TabsUseCases.AddNewPrivateTabUseCase = mockk(relaxed = true)
val browserStore =
BrowserStore(
BrowserState(
tabs = listOf(
createTab(
url = "https://mozilla.org",
private = true,
id = "tab1"
)
),
selectedTabId = "tab1"
)
)
val item = ToolbarMenu.Item.ReportIssue
every { activity.components.core.store } returns browserStore
every { activity.components.useCases.tabsUseCases } returns tabsUseCases
every { tabsUseCases.addPrivateTab } returns addPrivateTabUseCase
controller.handleToolbarItemInteraction(item)
verify { metrics.track(Event.BrowserMenuItemTapped(Event.BrowserMenuItemTapped.Item.REPORT_SITE_ISSUE)) }
verify {
// Hardcoded URL because this function modifies the URL with an apply
addPrivateTabUseCase.invoke(
String.format(
BrowserFragment.REPORT_SITE_ISSUE_URL,
"https://mozilla.org"
)
)
}
}
@Test
fun handleToolbarSaveToCollectionPressWhenAtLeastOneCollectionExists() {
val item = ToolbarMenu.Item.SaveToCollection

View File

@ -51,7 +51,6 @@ class DefaultQuickSettingsControllerTest {
private val reload = mockk<SessionUseCases.ReloadUrlUseCase>(relaxed = true)
private val addNewTab = mockk<TabsUseCases.AddNewTabUseCase>(relaxed = true)
private val requestPermissions = mockk<(Array<String>) -> Unit>(relaxed = true)
private val reportIssue = mockk<() -> Unit>(relaxed = true)
private val displayPermissions = mockk<() -> Unit>(relaxed = true)
private val dismiss = mockk<() -> Unit>(relaxed = true)
private val controller = DefaultQuickSettingsController(
@ -66,7 +65,6 @@ class DefaultQuickSettingsControllerTest {
reload = reload,
addNewTab = addNewTab,
requestRuntimePermissions = requestPermissions,
reportSiteIssue = reportIssue,
displayPermissions = displayPermissions,
dismiss = dismiss
)
@ -147,7 +145,6 @@ class DefaultQuickSettingsControllerTest {
reload = reload,
addNewTab = addNewTab,
requestRuntimePermissions = requestPermissions,
reportSiteIssue = reportIssue,
displayPermissions = displayPermissions,
dismiss = dismiss
)