Commit Graph

239 Commits (2bdde4898687c15e9f2c7d0dc5c67f6c3a5ad716)

Author SHA1 Message Date
Will Hawkins 9c28cb632c Issue #7425 (et al): Cache the list of installed browsers
Cache the list of installed browsers. Calling `Browsers.all`
the application directly redundantly recalculates the list.
Accessing the list of installed browsers through this cache
will reduce that overhead.
5 years ago
Mugurell 8454f208af For #4977: Migrate fennec shortcuts (#7251)
* For #4977 - Support opening Fennec pinned website shortcuts in Fenix

Fennec's pinned website shortcuts are set to open the BrowserApp activity.
So we need a new activity alias to actually catch such Intents. Otherwise they
would open "org.mozilla.firefox/.App" without any way to inform that this is
the result of the user clicking on a pinned shortcut.
For actually checking if the newly received Intent is of a Fennec pinned
shortcut we introduce a new FennecBookmarkShortcutsIntentProcessor which will
prepare the Intent to open the shortcut's URL in a new tab.

* For #4977 - Don't keep IntentReceiverActivity on the back stack

For successive Fennec pinned shortcuts to create a new IntentReceiverActivity
and be processed as normal we need to not keep this as our task root.

* For #4977 - Test the FennecBookmarkShortcutsIntentProcessor
5 years ago
Mihai Branescu ea2411a88b Feature/#220 language menu (#7070)
* For #220
- Added advanced header + locale settings item in the settings fragment

* For #220
- Added locale selection page with lib state + handling of locale changes

* For #220
- Removed registering for locale changes in the manifest, allow system
to restart activity in that scenario

* For #220
- Added unit tests for locale settings page

* For #220: fixed an outdated unit test
ga-a

Co-authored-by: Severin Rudie <Baron-Severin@users.noreply.github.com>
5 years ago
Jonathan Almeida 0768fde945 No issue: Use SendTabFeature and FxaPushSupportFeature 5 years ago
Sawyer Blatz c7c4ad051a
For #6413: Adds more snackbar positioning logic (#7444)
* For #6413: Adds more snackbar positioning logic

* Refactor
5 years ago
Sawyer Blatz 3fb060f682
For #6413: Fixes snackbar positionining for bottom toolbar (#7415)
* For #6413: Fixes snackbar positionining for bottom toolbar

* For #6413: Cleans up snackbar usage
5 years ago
Michael Comella cf143489e1 For #6464: Replace use of BuildConfig.DEBUG with ReleaseChannel.channel.isDebug.
This fixes performance issues where StrictMode would greatly slow down
startup in the forPerformanceTest variants.
5 years ago
Michael Comella 37bafda602 For #6464: Add ReleaseChannel test to document assumptions. 5 years ago
Severin Rudie f562c81fb2 For 5334: test NotificationSessionObserver 5 years ago
Suraj Shah 6344a8892d For #7041 - Respect current mode when opening library items (#7311)
* Fixes #7041
Consumes `browserMode` from home activity for tap method of bookmark

* Fixes spaces

* Cleaning tests

* Cleaning tests
5 years ago
Jeffrey Starke 59a021f3a3 Consolidate duplicate mock initialization in intent processor tests. (#6374)
* Consolidate duplicate code in intent processor tests

* Resolve ktlint errors
5 years ago
Tiger Oakes ea486d7c66
Split out CustomTabToolbarIntegration (#7107) 5 years ago
Suraj Shah 6cb3879caf For #7048: Network info migration (#7091)
* Fixes #7048.
Adds extension function to check if online or not based on capabilities
Modified `buildDeviceList`
Modifies tests

* Fixing lint error for max length
Fixing test in AppRequestInterceptorTest.kt

* Adds suppression for deprecation
Moving away from using anko for ConnectivityManager instance

* Creates ConnectivityManager extension component

* Fixes #7180
Refactors test cases to fix static mocks
5 years ago
Afzal Najam b9656a978e Hide add folder option when in Desktop Bookmarks folder 5 years ago
Ryan Kelly 31f2e80ab0 Use feature-accounts-push, which replaces feature-sendtab. 5 years ago
ValentinTimisica b819cb11c9 For #4776: Added Unit tests for About Page. 5 years ago
Mihai Branescu c46bf84ac9 For #6330 Collections Numbering (#6453)
* For #6330 - Added logic for getting the recommended default collection name

* For #6330 - Added unit test for default collection number method
5 years ago
Tiger Oakes fe034226a3
For #5783 - Web Share with Fenix share sheet (#6883) 5 years ago
Tiger Oakes 3f7205e3cb
Extract IntentProcessorType to its own file and add tests (#7012) 5 years ago
Severin Rudie 7477de83e9 For #4844: fix file prefix url shortening 5 years ago
Michael Comella eef080a46c For perf-frontend-issues#33: Add HotStartPerformanceMonitorTest.
We really don't want our startup tests to subtlely change so I thought
it was worth writing some quick tests.
5 years ago
Jeff Boek 45c6e3a784 For #1607 - Passes "custom" as the search engine identifier for custom engines 5 years ago
Severin Rudie dfea877fb7 No issue: small installedSearchEngineIdentifiers readability refactor 5 years ago
Severin Rudie 2aa80eff95 No issue: tests installedSearchEngineIdentifiers 5 years ago
Severin Rudie d3ff98816d No issue: begin moving FenixSearchEngineProvider into a testing harness 5 years ago
Severin Rudie 5f393bd5d4
For #5334: added private custom tab processor (#6845)
* For #5334: added private custom tab processor

* For #5334 - Fixes up IntentReceiverActivity for handling intents

* For 5334: update styling for private custom tabbs

* For 5334: update tests to account for new processors

Note that two are still failing. These appear to be true failures, and will be corrected in a later commit.

* For 5334: fixes bug introduced by changes to IntentReceiverActivity

RCA: intent className and extra were previously set based on which processors matched, not which successfully processed. This patch reintroduces that behavior.

* For 5334: add tests for custom tabs processing
5 years ago
Gabriel 56b21426eb
For #5574 - Migrate SessionControl to LibState (#6651)
* For #5574 - Part 1: Port TabAction.SaveTabGroup to TabSessionInteractor and SessionControlController. (#6651)

- Introduces the TabSessionInteractor, SessionControlInteractor and SessionControlController classes.
- Removes the TabAction.SaveTabGroup.

* For #5574 - Part 2: Port TabAction.PrivateBrowsingLearnMore to TabSessionInteractor and SessionControlController (#6651)

* For #5574 - Part 3: Port TabAction.ShareTabs to TabSessionInteractor and SessionControlController (#6651)

* For #5574 - Part 4: Remove unused TabAction.Share and TabItemMenu (#6651)

In #2205, the tab overflow button was removed which would have shown the
TabItemMenu when clicked. So, we can remove TabItemMenu since it is not
used and as a result, we can also remove TabAction.Share since there are
no consumers.

* For #5574 - Part 5: Port TabAction.PlayMedia and TabAction.PauseMedia to TabSessionInteractor and SessionControlController (#6651)

* For #5574 - Part 6: Port TabAction.Select to TabSessionInteractor and SessionControlController (#6651)

* For #5574 - Part 7: Port Onboarding.Finish to OnboardingInteractor and SessionControlController (#6651)

* For #5574 - Part 8: Port TabAction.Close and TabAction.CloseAll to TabSessionInteractor and SessionControlController (#6651)

- Removes TabAction

* For #5574 - Part 9: Port CollectionAction.Delete to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 10: Port CollectionAction.ShareTabs to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 11: Port CollectionAction.AddTab and CollectionAction.Rename to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 12: Port CollectionAction.RemoveTab to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 13: Port CollectionAction.OpenTab to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 14: Port CollectionAction.CloseTabs to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 15: Introduce a HomeFragmentStore (#6651)

- We will hook up the HomeFragmentStore in later parts.
- Removes List<Tab>.toSessionBundle(context: Context) since it is unused.

* For #5574 - Part 16: Port CollectionAction.Collapse and CollectionAction.Expand to CollectionInteractor and SessionControlController (#6651)

- We assume the store is hooked up to the SessionControlController in this part,
but this work will be done in a later part.
- Removes CollectionAction.

* For #5574 - Part 20: Remove the architecture module. (#6651)

* For #5574 - Part 17:  Remove duplicate subscribeToTabCollections in BrowserFragment.kt (#6651)

There is a duplicate call of subscribeToTabCollections() in both HomeFragment and BrowserFragment.
In this patch, we remove the call in BrowserFragment to avoid passing the HomeFragmentStore to
BrowserFragment in order to dispatch the CollectionsChange event.

* For #5574 - Part 18: Delete SessionControlComponent and fix TabCollection and Tab imports (#6651)

* For #5574 - Part 19: Use the new HomeFragmentStore in the HomeFragment (#6651)

- Renames SessionControlUIView to SessionControlView

* For #5574 - Part 21: Fix white screen on home fragment (#6651)

* For #5574 - Part 22: Fix formatting in SessionControlInteractor and replace See with @see in SessionControlController (#6651)

* For #5574 - Part 23: Move to metrics.track call to the beginning of handleCollectionRemoveTab (#6651)

This ensures that the metrics.track will be called immediately before the tab is removed from the collection.

* For #5574 - Part 24: Use the sessionManager getter in SessionControlController (#6651)

* For #5574 - Part 25: Use mapNotNull in List<Tab>.toSessionBundle (#6651)

* For #5574 - Part 26: Simplify closeTab and closeAllTabs functions by assigning a deletionJob constant (#6651)

* For #5574 - Part 27: Replace listOf() with emptyList() in removeAllTabsWithUndo (#6651)

* For #5574 - Part 28: Replace the Context parameter with the HomeActivity in SessionControlController (#6651)

* For #5574 - Part 29: Add test for HomeFragmentStore, DefaultSessionControlController and SessionControlInteractor (#6651)

* For #5574 - Removes running CI against the architecture debug build varient
5 years ago
cesar 63cf034bfb test fixed 5 years ago
Gabriel Luong 85111f538a For #6857 - Replace BackHandler with UserInteractionHandler in InflationAwareFeature and InflationAwareFeatureTest 5 years ago
Tiger Oakes 7e8f079269
Use ShareData with ShareFragment (#6698) 5 years ago
Tiger Oakes cd3e077bc9 For #6763 - Fix early view access 5 years ago
Daphne Liu 4cfbaf2dc4 Switched to AC string extensions (#6258)
* Switched to AC string extensions

* Clean up imports
5 years ago
Sebastian Kaspari 8a330d413c Closes #4982: Migrate Gecko files before initializing engine. (#6738) 5 years ago
Pawel Obarzanek 667602f02a Closes mozilla-mobile#5458 Tests for IntentReceiverActivity to verify outcoming intent (#6130) 5 years ago
Pawel Obarzanek ee0ec6a8f8 Closes mozilla-mobile#4828 Initial tests for FragmentPreDrawMan… (#6134)
* Closes mozilla-mobile#4828 Initial tests for FragmentPreDrawManager

* Closes mozilla-mobile#4828 verify if addOnPreDrawListener was called
5 years ago
mcarare f18c047132 For #1019 Update unit tests and UI tests 5 years ago
Tiger Oakes bd475d54e5 Extract TP onboarding popup (#6700) 5 years ago
Jeff Boek 77667bf724
No Issue - Fixes NPE in tests (#6673) 5 years ago
Severin Rudie 8d68317388
4844 fix url elision (#6588)
* For #4844: add test cases for url elision

* For 4844: implement toShortUrl to pass test cases

* For 4844: update plumbing to use toShortUrl

* For 4844: adds/handles suggested url elision test case
5 years ago
Patrick Martin 5eb5cdf361 For #1695 - Detect HTML mime type for clipboard URL (#6612)
* For #1695 - Detect HTML mime type for clipboard URL
5 years ago
Tiger Oakes fdd7400ccc Use ViewModel for share fragment 5 years ago
Tiger Oakes 333ff8c941 Fixes #4528 - Prevent share menu from jumping
Plus a bunch of docs and refactoring
5 years ago
ekager d85ed27a3d Add override for Core val in test 5 years ago
ekager 6e907b1106 Update BackgroundServicesTest 5 years ago
Emily Kager c43f96096e For #5074 - Sync Logins, Uses KeySharedPreferences for Passwords Encryption Key 5 years ago
Arturo Mejia 0275ca0693 No issue: Do not prevent trackers duplication in the tracking
protection panel.
5 years ago
Severin Rudie 6909a76bcb
4281 remove qab (#6310)
* For #4281: small ToolbarMenu refactor

This makes it easier to see how items are ordered in the menuItems list

* For 4281: add QAB buttons to menu

* For 4281: removed menu back button per mocks

I double checked with UX, and we'll be relying on the hardware back button for its functionality

* For 4281: add content descriptions for bookmarking

* For 4281: updated BrowserToolbarController for new functionality

* For 4281: provided simple dependencies to browser controller

More complex changes will be in a following commit, for review readability

* For 4281: move toolbar controller dependencies up to BaseBrowserFragment

The functionality they control is being moved into the toolbar menu, which is shared by both normal tabs and custom ones

* For 4281: removed (now unused) code related to QAB

* For 4281: fix test compilation after QAB removal

Tests still need to be expanded to include added functionality

* For 4281: updated menu to show if url is bookmarked

This sloppy workaround is required because TwoStateButton requires that `isInPrimaryState` be a synchronous call, and checking whether or not the current site is bookmarked is quite slow (10-50 MS, in my tests).  After days of work and many attempted solutions, this was the least abhorrent among them.

https://github.com/mozilla-mobile/android-components/issues/4915 was opened against AC to evaluate potentially supporting async `isInPrimaryState` functions.
https://github.com/mozilla-mobile/fenix/issues/6370 was opened against Fenix to investigate the unexpectedly slow call to `BookmarkStorage`.

* For 4281: update reader mode switch

* For 4281: selectively show/hide menu items

* For 4281: add reader mode appearance

* For 4281: update bookmark button when it is clicked

* For 4281: removed unused QAB code

* For 4281: removed QAB robot, updated UI tests

* For 4281: removed QuickActionSheet metrics

Since this behavior now lives in the toolbar, it is tracked via Event.BrowserMenuItemTapped

* For 4281: fixed lint errors

* For 4281: add new strings for buttons added to menu

This is necessary because the location change (from QAB to toolbar menu) could affect the grammar in some languages

* For 4281: remove outdated TODOs

* For 4281: removed QAB container

* For 4281: removed back button reference from UI test

This button no longer exists

* For 4821: Fixes a visual defect (extra padding on top of toolbar)

* For 4281: update copy on reader mode

* For 4281: fixed review nits
5 years ago
mcarare 11ad1010a9 For #6323 Creating 1st collection from tab shows Name collection screen
Added a check for existence of at least a collection to select from.
5 years ago
Emily Kager d9615108ee For #6354 - Removes ETP Experiment, Removes Feature Flags, Sets Strict Default 5 years ago
Grisha Kruglov 40047315c2 For #6490 - track abnormal FxA behaviour via Sentry 5 years ago