Commit Graph

408 Commits (b668769eb40a4ab6dd87a285376090d8d3d8d488)

Author SHA1 Message Date
Rohan Maity 7ffaefd3fd [fenix] For https://github.com/mozilla-mobile/fenix/issues/20596 remove startup timeline probes 3 years ago
Mugurell 5b99139048 [fenix] For https://github.com/mozilla-mobile/fenix/issues/17917 - Migrate `home` from Kotlin synthetics to View Binding. 3 years ago
codrut.topliceanu 4082b5eb90 [fenix] For https://github.com/mozilla-mobile/fenix/issues/20098: Allow PB PiP video screenshots
...when `Allow screenshots in private browsing` is enabled
3 years ago
Rohan Maity 620d034134 [fenix] For https://github.com/mozilla-mobile/fenix/issues/20596 remove perf.startup probes 3 years ago
Arturo Mejia d4a2d1ac83 [fenix] For https://github.com/mozilla-mobile/fenix/issues/20764 add screen for opting out of experiments 3 years ago
Grisha Kruglov 39561f3644 [fenix] External source support
Adds handling of information about external referrer (package, category)
when dealing with external intents.
3 years ago
Michael Comella 68bef957b5 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/20461: remove app_received_intent probe. 3 years ago
Sebastian Kaspari 6ea19d4b17 [fenix] Run ktlintFormat to adapt to latest formatting rules. 3 years ago
Arturo Mejia cef6144944 [fenix] Put the Start On home setting behind a feature flag. 3 years ago
Roger Yang 9df7c99ed2 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/19847: Add telemetry for the default browser notification 3 years ago
Marc Leclair 4cbc383520 [fenix] For https://github.com/mozilla-mobile/fenix/issues/19804: Restore logic to original behavior 3 years ago
Marc Leclair e4d8d3e9a7 [fenix] For https://github.com/mozilla-mobile/fenix/issues/19804: checkDefaultBrowser moved to helper function 3 years ago
Marc Leclair 6e811abdef [fenix] For https://github.com/mozilla-mobile/fenix/issues/19804: Changed `var isDefaultBrowser` to a function
The change to the function makes it so when the Settings.kt class is initialized, the isDefaultBrowser, which calls the
BrowserCache, won't get called right away. `isDefaultBrowser()` is known to take quite a while on start up on the G5+ (approx
30-40ms).
3 years ago
Michael Comella f59df714f8 [fenix] For https://github.com/mozilla-mobile/fenix/issues/20127: remove app_opened_all_startup integration. 3 years ago
Roger Yang 048abd7f4c [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/19846: Show Default Browser Notification if browser is not default 3 years ago
Roger Yang 63775af142 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/19921: Update appcompat and fragment dependencies to 1.3.x 3 years ago
Arturo Mejia 5ad8dd91e0 [fenix] For https://github.com/mozilla-mobile/fenix/issues/19881 add telemetry for start on Home. 3 years ago
Christian Sadilek 1b6aa1dfff [fenix] Issue https://github.com/mozilla-mobile/fenix/issues/17800: Cleanup and fix request desktop site from home 3 years ago
Sebastian Kaspari e25cfcdc48 [fenix] Complete browser-state migration and remove browser-session dependency.
Co-authored-by: Christian Sadilek <christian.sadilek@gmail.com>
3 years ago
Arturo Mejia 42e0c6d672 [fenix] For https://github.com/mozilla-mobile/fenix/issues/19789 Start on Home after some amount of time 3 years ago
Jonathan Almeida 57df4f3fcc [fenix] Issue https://github.com/mozilla-mobile/fenix/issues/19112: Remove old Synced Tabs code 3 years ago
Jonathan Almeida aa8d5795b2 [fenix] Issue https://github.com/mozilla-mobile/fenix/issues/19112: Remove old tab tray code 3 years ago
Jonathan Almeida 5dd7d94432 [fenix] Issue https://github.com/mozilla-mobile/fenix/issues/19647: Navigate to browser from home via Synced Tabs page 3 years ago
Mihai Adrian Carare 43965a3255 [fenix] For https://github.com/mozilla-mobile/fenix/issues/18507 - Prevent screenshots on credit card screens. (https://github.com/mozilla-mobile/fenix/pull/19560) 3 years ago
mcarare 42d3d1edb1 [fenix] For https://github.com/mozilla-mobile/fenix/issues/19258: Replace default Android back button with a custom icon. 3 years ago
Sebastian Kaspari 7c11a19369 [fenix] Issue https://github.com/mozilla-mobile/fenix/issues/19040: Remove Leanplum (Nightly) 3 years ago
Sebastian Kaspari 692611fa13 [fenix] Remove browser-search references. 3 years ago
mcarare 7caceac997 [fenix] For https://github.com/mozilla-mobile/fenix/issues/18496: Set activity theme in onCreate before call to super. 3 years ago
Michael Comella 5d92d409e3 [fenix] For https://github.com/mozilla-mobile/fenix/issues/18836: address onCreate method length detekt issue. 3 years ago
Michael Comella e83004d81b [fenix] For https://github.com/mozilla-mobile/fenix/issues/18836: add & integrate StartupTypeTelemetry. 3 years ago
Michael Comella 1035ad0fd0 [fenix] For https://github.com/mozilla-mobile/fenix/issues/18836: add StartupPathProvider + tests. 3 years ago
MarcLeclair 4c45f615bb [fenix] 16900 make navgraph inflation asynchronous (https://github.com/mozilla-mobile/fenix/pull/18889)
* For https://github.com/mozilla-mobile/fenix/issues/16900: implement async navgraph inflation

For https://github.com/mozilla-mobile/fenix/issues/16900: removed nav graph from xml

For https://github.com/mozilla-mobile/fenix/issues/16900: inflate navGraph programatically

For https://github.com/mozilla-mobile/fenix/issues/16900: Made NavGraph inflation asynchronous

For https://github.com/mozilla-mobile/fenix/issues/16900: Changed to block with runBlocking

For https://github.com/mozilla-mobile/fenix/issues/16900: Refactored blocking call into a function

For 16900: NavGraph inflation is now async

We now attach the nav graph (or check if its attached) on every nav call ( an extension function for NavController).
This is done by checking the value of the job stored in PerfNavController.map which keeps track of the job with the NavController as a Key.
If the job hasn't been completed, it will block the main thread until the job is done. The job itself is responsible for attaching the navgraph
to the navcontroller (and the inflation of the latter too)

For 16900: rebased upstream master

For 16900: Rebase on master

For https://github.com/mozilla-mobile/fenix/issues/16900: Fixed Async Navgraph navigation per review comments.

1)The Asynchronous method is now found in NavGraphProvider.kt. It creates a job on the IO dispatcher
2)The Job is tracked through a WeakHashMap from Controller --> NavGraph
3)The Coroutine scope doesn't use MainScope() anymore
4)The Coroutine is cancelled if the Activity is destroyed
5)The tests mockk the blockForNavGraphInflation method through the FenixReoboelectricTestApplication instead of calling the mock every setup()

For https://github.com/mozilla-mobile/fenix/issues/16900: inflateNavGraphAsync now takes navController

For https://github.com/mozilla-mobile/fenix/issues/16900: Pass lifecycleScope to NavGraphProvider

For https://github.com/mozilla-mobile/fenix/issues/16900: removed unused mock

For https://github.com/mozilla-mobile/fenix/issues/16900: Added linter rules for navigate calls

We need linting rules to make sure no one calls the NavController.navigate() methods

For https://github.com/mozilla-mobile/fenix/issues/16900: Added TestRule to help abstract the mocks in the code

For 16900: Fix linting problems

For https://github.com/mozilla-mobile/fenix/issues/16900: Cleaned duplicated code in tests

For https://github.com/mozilla-mobile/fenix/issues/16900: cleaned up NavGraphTestRule for finished test

For https://github.com/mozilla-mobile/fenix/issues/16900: had to revert an accidentally edited file

For https://github.com/mozilla-mobile/fenix/issues/16900: rebased master

* For https://github.com/mozilla-mobile/fenix/issues/16900: Review nits for async navgraph

This is composed of squash commits, the original messages can be found below:

-> DisableNavGraphProviderAssertionRule + kdoc.

Use test rule in RobolectricApplication.

Fix failing CrashReporterControllerTest

Fix blame by -> navigate in tests.

This commit was generated by the following commands only:
```
find app/src/test -type f -exec sed -i '' "/import org.mozilla.fenix.ext.navigateBlockingForAsyncNavGraph/d" {} \;
find app/src/test -type f -exec sed -i "" "s/navigateBlockingForAsyncNavGraph/navigate/g" {} \;
git checkout app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
```

Fix various blame

This is expected to be squashed into the first commit so, if so, it'd
fix the blame.

Move test rule to helpers pkg.

add missing license header

Add import change I missed

fix unused imports

Replace robolectricTestrunner with test rule.

Improve navGraphProvider docs

Remove unnecessary rule as defined by robolectric.

add clarifying comment to robolectric

remove unnecessary space

* For https://github.com/mozilla-mobile/fenix/issues/16900: nit fixes for MozillaNavigateCheck and lint fixes

3 squash commits:
 *Changed violation message and fixed the lint rule for MozillaNavigateCheck
 *Added suppression to NavController.kt
 *Fixed detekt violations

* For 16900: Fixed failing tests

Co-authored-by: Michael Comella <michael.l.comella@gmail.com>
3 years ago
Michael Comella c04e4f392d [fenix] For https://github.com/mozilla-mobile/fenix/issues/18836: replace StartupActivityStateProvider with StartupStateProvider.
The StartupActivityStateProvider uses an imperative implementation,
driven by callbacks, to set the state of the application. This is hard
to follow as you need to understand which callbacks will be called in
which order. For example, to make sense of an implementation like this,
COLD, WARM, AND HOT would likely need to be implemented in separate
ActivityLifecycleCallbacks.

I feel the StartupStateProvider is an improvement because it leverages
the StartupActivityLog to query a linear state for a more understandable
implementation. Furthermore, it seems accessible to write COLD, WARM,
and HOT in the same class because they can all be approached the same
way.
3 years ago
MarcLeclair 7ab0ea8c7f [fenix] For https://github.com/mozilla-mobile/fenix/issues/17759: Added min SDK 23 to avoid crashes on android 5.0 and 5.1 (https://github.com/mozilla-mobile/fenix/pull/18832)
* For https://github.com/mozilla-mobile/fenix/issues/17759: Added min SDK 23 to avoid crashes on android 5.0 and 5.1

* For https://github.com/mozilla-mobile/fenix/issues/17759: fixed Android code from INT to actual version name
3 years ago
Mihai Adrian Carare 4da13e56c1 [fenix] For https://github.com/mozilla-mobile/fenix/issues/17800 - Request desktop site from home screen. (https://github.com/mozilla-mobile/fenix/pull/18653) 3 years ago
Michael Comella c5bfc690d7 [fenix] For https://github.com/mozilla-mobile/fenix/issues/18426: record cold start duration telemetry. 3 years ago
Vitaly V. Pinchuk 49c057097e [fenix] For https://github.com/mozilla-mobile/fenix/issues/18395: Dismiss contextual menu when entering/exiting Reader Mode 3 years ago
Arturo Mejia 597b246961 [fenix] Revert "For https://github.com/mozilla-mobile/fenix/issues/17805 - Fix adjustResize deprecation (https://github.com/mozilla-mobile/fenix/pull/18252)"
This reverts commit 72754a50
3 years ago
Michael Comella 3b2bda7c81 [fenix] For https://github.com/mozilla-mobile/fenix/issues/18426: add measurement probes for long-running lifecycle methods.
In addition to the existing probes for onCreate, this should cover all
lifecycle methods that take a long time in our profiles.
3 years ago
Michael Comella 1f67254b10 [fenix] For https://github.com/mozilla-mobile/fenix/issues/18426: add telemetry for app.onCreate subsections.
Hopefully this will help us understand behavior of the
`application_on_create` probe, specifically that it seems to take longer
in telemetry than in does locally compared to `home_activity_on_create`
(comparing the medians to local runs)..
3 years ago
Roger Yang 4abb852190 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/17531: Use shared preference to store top sites count for telemetry (https://github.com/mozilla-mobile/fenix/pull/18557) 3 years ago
Codrut Topliceanu 4fb1bbf431 [fenix] For https://github.com/mozilla-mobile/fenix/issues/17805 - Fix adjustResize deprecation (https://github.com/mozilla-mobile/fenix/pull/18252)
* For https://github.com/mozilla-mobile/fenix/issues/17805 - Fix adjustResize deprecation

To handle the deprecation of `adjustResize` I've moved it from `styles.xml` and `AndroidManifest.xml` to `Activity.kt` as a fallback for devices with Android < 11. For Android 11 and up `setDecorFitsSystemWindows(false)` and `OnApplyWindowInsetsListener` will be used to handle app insets. Normal use activities should call `enableSystemInsetsHandling` in `onCreate` as to properly display system bars and for proper keyboard handling.
3 years ago
Michael Comella 3ae7379a5f [fenix] For https://github.com/mozilla-mobile/fenix/issues/17969: add duration probes for App.onCreate and HomeActivity.onCreate. 3 years ago
Michael Comella b62dfc086b [fenix] For https://github.com/mozilla-mobile/fenix/issues/17816: add profiler marker for onPreDraw via HomeActivity.onStart.
This may be useful for MAIN start up to determine when the user begins
seeing content.
3 years ago
Michael Comella 6895920bde [fenix] For https://github.com/mozilla-mobile/fenix/issues/17816: add profiler marker for 2x Activity.onCreate.
The IntentReceiverActivity one is particularly useful to quickly determine
when we can begin executing code in the WARM VIEW case (i.e. "Set selection
begin here").

The HomeActivity one is useful for COLD start up analysis in similar
ways and to see the Activity transitions in WARM VIEW.
3 years ago
ekager 466a163f05 [fenix] For https://github.com/mozilla-mobile/fenix/issues/17785 - Use screenshots setting when adding secure flag 3 years ago
Jonathan Almeida fb997764ca [fenix] Issue https://github.com/mozilla-mobile/fenix/issues/1340: Forward Activity results to the fragment 3 years ago
MarcLeclair c441f2af27 [fenix] 16373 Count the # of inflations done on startup (https://github.com/mozilla-mobile/fenix/pull/16778)
* For https://github.com/mozilla-mobile/fenix/issues/16373: Added performance Inflater to counter # of inflations

This class is quite straight forward. The only thing that I have to point out is the onCreateView method. It usually
calls its super if you don't override it. The problem with that is that the super.onCreateView actually uses
android.view. as a prefix for the XML element it tries to inflate. So if we have an element that isn't part
of that package, it'll crash. As I said in the code, a good example is ImageButton. Calling android.view.ImageButton
will make the app crash. The method is implemented the same way that PhoneLayoutInflater does (Another example
is the AsyncLayoutInflater)

* For https://github.com/mozilla-mobile/fenix/issues/16373: Added test for PerformanceInflater

This test got quite awkward / complicated fast.  I wanted to test the  to make sure we don't break *any* of our layouts
and to do so, I decided to just retrieve all our XML in our /res/layout folder. However, this gets quite a bit outside of a unit test scope.
The point was to get every layouts and get their LayoutID through the resources using the testContext we have. It gets even weirder, since some
of the XML tags have special implementation in android. One of them is the <fragment> tag. That tag actually is inflated by the OS using the Factory2
that the Activity.java implements. In order to get around the fragment issue, we just return a basic FrameLayout since the system LayoutInflater doesn't deal
won't ever get a <fragment> tag to inflate. Another issue was the <merge> tag. In order to inflate those, you need 1) a root view and 2) attach your view to it.
In order to be able to test those layouts file, I had to create an empty FrameLayout and use it as the root view for testing. Again, I know this is beyond the spirit of a unit test but if we use this inflater, I think it should make sure that no layouts are broken by it.

* For https://github.com/mozilla-mobile/fenix/issues/16373: Overrode getSystemService to return PerformanceInflater

This allows PerformanceInflater to be called in every inflation to keep track of the number of inflations we do.

* For https://github.com/mozilla-mobile/fenix/issues/16373: Added UI test for # of inflations

* For https://github.com/mozilla-mobile/fenix/issues/16373: Lint fix

* For #167373: Changed the LayoutInflater cloneInContext to take this instead of inflater

The inflater parameter is set on the first call from the OS from  the Window object. However, the activity itself sets multiple factories on the inflater
during its creation (usually through AppCompatDelegateImpl.java). This means that, once we initially set the inflater with a null check, we pass an inflater
that has no factory initially. However, since we keep a reference to it, when cloneInContext was called, it cloned the inflater with the original inflater
which didn't have any factories set up. This meant that the app would crash on either browserFragment creation or any thing that required appCompat (such as
ImageView and ImageButton). Now, passing itself with a cloneInContext means we keep all the factories initially set by the activity or the fragment.

* For https://github.com/mozilla-mobile/fenix/issues/16373: Fixed code issues for PR. No behavior change

* For https://github.com/mozilla-mobile/fenix/issues/16373: fixed some code nits
3 years ago
Gabriel Luong 29e329d8f1 [fenix] For https://github.com/mozilla-mobile/fenix/issues/16941 - [Telemetry] Bookmark Counts (https://github.com/mozilla-mobile/fenix/pull/16942) 4 years ago
Christian Sadilek c549b71c2a [fenix] For https://github.com/mozilla-mobile/fenix/issues/16032: Support installing recommended add-ons from AMO 4 years ago
Sebastian Kaspari d50140272a [fenix] Integrate new search code from Android Components into Fenix. 4 years ago
ekager 49a98cb413 [fenix] For https://github.com/mozilla-mobile/fenix/issues/12062 - Remove feature flag for return to browser (https://github.com/mozilla-mobile/fenix/pull/16622) 4 years ago
Christian Sadilek df087718e1 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/16053: Fix crash when closing private tabs via notification 4 years ago
Christian Sadilek 70852916d6 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/16430: ExternalAppBrowserActivity should not handle incoming intents 4 years ago
ekager 6ff5ec846b [fenix] For https://github.com/mozilla-mobile/fenix/issues/12062 - Feature Flag return to browser (https://github.com/mozilla-mobile/fenix/pull/16099) 4 years ago
Christian Sadilek 8ec056ffb9 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/11286: Add TelemetryMiddleware to remove Session[Manager] observers 4 years ago
ekager 5baed32e13 [fenix] For https://github.com/mozilla-mobile/fenix/issues/15265 - Save cached top sites for metrics ping 4 years ago
ekager 6ee2d5a8dd [fenix] For https://github.com/mozilla-mobile/fenix/issues/12062 - Launch back to browser if we previoulsy had tabs 4 years ago
sraturi e97a48b48f [fenix] for https://github.com/mozilla-mobile/fenix/issues/10069 added AppLaunchTimeMeasurement.kt to handle logic of startup time for cold, warm, and hot startup types. 4 years ago
ekager c5a6e86f9b [fenix] For https://github.com/mozilla-mobile/fenix/issues/15600 - Move removal of timed out sessions to immediately after restoration 4 years ago
Michael Comella a50cf27648 [fenix] For https://github.com/mozilla-mobile/fenix/issues/13959: fix startup crash by using arg Context.
The `context` member function returns null in attachBaseContext so we
need to use the Context that's being attached instead.
4 years ago
Michael Comella 8a9472e540 [fenix] For https://github.com/mozilla-mobile/fenix/issues/13959: move resetAfter into StrictModeManager.
In a followup PR, we need to add state to strictModeManager (the
number of suppressions). This is much simpler to do when this is defined
as a class rather than an object. However, when this is defined as a
class, `resetAfter` needs access to the strictModeManager. Instead of
passing it in as an argument, it made sense to move this function onto
the strictModeManager instead.

Since folks are used to calling:
```
StrictMode.ThreadPolicy.allowThreadDiskReads().resetAfter
```

We're going to have to add a lint check to prevent them from doing that.
4 years ago
Michael Comella 5f8943f76c [fenix] For https://github.com/mozilla-mobile/fenix/issues/13959: change StrictModeManager to class from object.
I originally tried to create this PR leaving this as an object to keep
the change simple but it wasn't worth it - once the object started to
keep state, we'd need to manually reset the state between runs. Also,
the tests were already getting hacky with static mocking so it was
easier to address some of those issues this way too.
4 years ago
Michael Comella b2c01e442f [fenix] For https://github.com/mozilla-mobile/fenix/issues/13959: rename to attachListenerToDisablePenaltyDeath for clarity. 4 years ago
Grisha Kruglov 5bb231cc70 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/15436: Auto-close tabs during startup on the main thread 4 years ago
Elise Richards 609857c5f1 [fenix] For https://github.com/mozilla-mobile/fenix/issues/14280, https://github.com/mozilla-mobile/fenix/issues/14743: Remove old search fragment (https://github.com/mozilla-mobile/fenix/pull/15169)
* Remove search fragment

* Use new folder to search dialog

* Rebase and lint

* Update tests with search dialog nav directions

* Rename interactor to match naming convention. Remove old controller and point everything to the dialog controller.
4 years ago
Grisha Kruglov 661a48a940 [fenix] Update breaking changes in the FxA/Sync integration 4 years ago
ekager 71abc5c450 [fenix] For https://github.com/mozilla-mobile/fenix/issues/2486 - Adds Recently Closed Tabs 4 years ago
ekager be4a268120 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/14895 - Adds paste to context menu ordering preference 4 years ago
ekager b8e2bfebd4 [fenix] For https://github.com/mozilla-mobile/fenix/issues/4118 - Creates setting for auto closing tabs 4 years ago
Kainalu Hagiwara 5cc77fdef1 [fenix] For https://github.com/mozilla-mobile/fenix/issues/13498 - Use custom long press back handling for Huawei devices. (https://github.com/mozilla-mobile/fenix/pull/14387) 4 years ago
Sachin 8025efc0d7 [fenix] for https://github.com/mozilla-mobile/fenix/issues/12573, added startup type and hasSavedInstance keys to app_startup_type telemetry (https://github.com/mozilla-mobile/fenix/pull/13494) 4 years ago
Jeff Boek 4e2b53b340 [fenix] For https://github.com/mozilla-mobile/fenix/issues/13507 - Performance fixes for the ReviewPromptController 4 years ago
Jeff Boek bf08d65510 [fenix] For https://github.com/mozilla-mobile/fenix/issues/13507 - Extracts review prompt behavior into ReviewPromptController 4 years ago
Tiger Oakes 744cec9650 [fenix] For https://github.com/mozilla-mobile/fenix/issues/9056: Search from custom tab 4 years ago
Sebastian Kaspari 430e249c22 [fenix] Add diagnostic breadcrumbs for debugging "Display already aquired" crashes.
For:
https://github.com/mozilla-mobile/android-components/issues/7960
4 years ago
sraturi 3b46908756 [fenix] for https://github.com/mozilla-mobile/fenix/issues/13479, added a VisualCompletenessQueue.kt class to handle all the functionality related to visual completeness 4 years ago
Jonathan Almeida 73c7e9c3f7 [fenix] For https://github.com/mozilla-mobile/fenix/issues/12287: Add Synced Tabs to Tabs Tray 4 years ago
Tiger Oakes 1f7bb1af2e [fenix] Use AC version of PrivateNotificationService (https://github.com/mozilla-mobile/fenix/pull/12459) 4 years ago
Sawyer Blatz 928c37f8b2 [fenix] For https://github.com/mozilla-mobile/fenix/issues/11531: Fixes some issues with default event not firing 4 years ago
Sebastian Kaspari 0f7251593e [fenix] Validate deep links. 4 years ago
ekager a42bb3c9de [fenix] For https://github.com/mozilla-mobile/fenix/issues/6313 - Removes unused browser animations, improve delayed paint interactions 4 years ago
Jeff Boek 4f119b055d [fenix] Wires up controller, store and interactor. (https://github.com/mozilla-mobile/fenix/pull/13324)
* For https://github.com/mozilla-mobile/fenix/issues/13320 - Wires up the search store, controller and interactor for the new search experience

* For https://github.com/mozilla-mobile/fenix/issues/13323 - Navigates to new search experience from the browser when enabled
4 years ago
Tiger Oakes e1a2dc51c8 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/12522: Reuse exceptions code (https://github.com/mozilla-mobile/fenix/pull/13047) 4 years ago
Sawyer Blatz 10a4dd6381 [fenix] Add documentation 4 years ago
Sawyer Blatz 51a33c9efe [fenix] For https://github.com/mozilla-mobile/fenix/issues/12103: Add ChangedDefaultBrowser event for leanplum 4 years ago
sraturi adfcf08a49 [fenix] for https://github.com/mozilla-mobile/fenix/issues/11830 created class containing the logic for sending AllStartup telemetry logic
lint check

renamed the intentReceived telemetry to appOpenedAllSource

added comments

removed unused code

moved lifecycle process to AppAllSourceStartTelemetry

moved tracking event out of init function

lint fix

moved appAllStartTelemetry to components

added bit more info about the metrics

added the  onReceivedIntent metric back

minor fix

change discriptions based on the comments frm MR

wrote test cases for AppAllSourceStartTelemetry.kt

lint fix

test case to mock application going background

post rebase:

post rebase:

fixed nit from comments

fixed nit from comments

fixed nit from comments

lint fix

lint fix
4 years ago
Jonathan Almeida 312addd8be [fenix] For https://github.com/mozilla-mobile/fenix/issues/10925: Fix breaking APIs in tabs tray 4 years ago
Kainalu Hagiwara 9d3f8a7e0f [fenix] For https://github.com/mozilla-mobile/fenix/issues/1048 - Add ability to view tab history by long-pressing the back or forward button. 4 years ago
Tiger Oakes 75817b004c [fenix] Use AC RunWhenReadyQueue (https://github.com/mozilla-mobile/fenix/pull/12800) 4 years ago
Tiger Oakes adbadba250 [fenix] Move settings in components (https://github.com/mozilla-mobile/fenix/pull/12675) 4 years ago
Michael Comella e85dd6a09c [fenix] No issue: correct position of StartupTimeline; add warning. 4 years ago
Sawyer Blatz 80b4fb0808 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10466: Add search privately to top of list (https://github.com/mozilla-mobile/fenix/pull/12744) 4 years ago
Christian Sadilek 250c95eb28 [fenix] Update Android Components to 51.0.20200717190031 4 years ago
Elise Richards 5b46f572df [fenix] For https://github.com/mozilla-mobile/fenix/issues/10173: login duplicates and save (https://github.com/mozilla-mobile/fenix/pull/11208)
* Extract controller into it's own class. Implement find dupes and filter based on username.

Create edit login controller. Add text watchers and check for duplicates.

Edit controller test

* Find duplicates and save to store

* Retrieve duplicates from AC and check list on username text changed

Move duplicates logic into the controller

* Add glean pings for delete and edit. Move logic for login manipulation into the datastore.

* Use correct threads in controller. Enable save button when applicable.

Save enabled in datastore.

Move login data to datastore

Rebase with password error states

Update metrics to be more specific for edit

* Create logins controller for AC calls

* Interactor and controller methods for edit login. Add edit view to separate out some layout manipulation.

Inflate view in edit fragment. Double layout showing up.

Edit view

Controller tests

Controller tests passing

Interactor tests

Lint and detekt cleanup

* Remove datastore and use storage controller for all logins calls to password storage.

Addressed comments

Lint
:

Rebase - 1
4 years ago
Tiger Oakes 034a9dae8f [fenix] Update Kotlin dependency (https://github.com/mozilla-mobile/fenix/pull/10806) 4 years ago
mcarare bfd879be4a [fenix] For https://github.com/mozilla-mobile/fenix/issues/12503: Open addon permissions link in app. 4 years ago
ekager 772f69c5f5 [fenix] For https://github.com/mozilla-mobile/fenix/issues/7094 - Adds save login exceptions 4 years ago
Sawyer Blatz ca02217039 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10466: Put call & email at top of context list 4 years ago
Nazım Can Altınova 5a1c31e13f [fenix] Add profiler markers for HomeActivity.load and DefaultTabTrayController.onNewTabTapped 4 years ago
Sawyer Blatz bdcd04cc6a [fenix] Update app/src/main/java/org/mozilla/fenix/HomeActivity.kt
Co-authored-by: Tiger Oakes <contact@tigeroakes.com>
4 years ago
Sawyer Blatz 33ea9d02aa [fenix] No issue: Update AC version 4 years ago
ekager ddf56f9bc6 [fenix] For https://github.com/mozilla-mobile/fenix/issues/11303 - Change copy login origin to open in browser 4 years ago
MickeyMoz d0e3833d3b [fenix] Update Android Components version to 50.0.20200708130551. 4 years ago
Tiger Oakes c3391dd74d [fenix] Add method to test fragments in roboletric (https://github.com/mozilla-mobile/fenix/pull/12261) 4 years ago
Mihai Adrian Carare f827336f2e [fenix] For https://github.com/mozilla-mobile/fenix/issues/11996: Open all links from add-on details in Fenix. (https://github.com/mozilla-mobile/fenix/pull/12080)
* For https://github.com/mozilla-mobile/fenix/issues/11996: Open add-on homepage link in Fenix.

* For https://github.com/mozilla-mobile/fenix/issues/11996: Open add-on details links in Fenix.
4 years ago
Tiger Oakes d49982cec9 [fenix] For https://github.com/mozilla-mobile/fenix/issues/11903: Enforce private theme in custom tabs 4 years ago
Sachin 10a018b0b2 [fenix] for https://github.com/mozilla-mobile/fenix/issues/11830 added new metric for collecting startup method from all startup phases (https://github.com/mozilla-mobile/fenix/pull/11940)
* for https://github.com/mozilla-mobile/fenix/issues/11830 added new metric for collecting startup method

move all source startup telemetry into its own logic and added an UNKOWN state

* switched back to onNewIntent solution

* renamed the metric
4 years ago
Grisha Kruglov f18c517551 [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/11909: Metrics for recording number of recently used PWAs 4 years ago
ValentinTimisica 069326e4ff [fenix] For https://github.com/mozilla-mobile/fenix/issues/11892: Remove dynamic calls to setupNavigationToolbar
This is a speculative fix for 11892 crash.
The side effect is that the back button will be visible in bookmarks root.
4 years ago
Christian Sadilek 7d50b70b61 [fenix] For https://github.com/mozilla-mobile/fenix/issues/9100: Follow-up to fix memory leak in NotificationSessionObserver
The observer was moved and is now bound to the activity and its
context. If the activity is re-created we leak the observer and
therefore the activity itself.

With this we make sure to stop the observer and also don't use
the activity context to begin with.
4 years ago
Mihai Branescu 8a13fbbfb3 [fenix] For https://github.com/mozilla-mobile/fenix/issues/9100 - Private browsing notification fixes
Co-authored-by: Seef <Saif Dara>
4 years ago
Tiger Oakes 9818176c34 [fenix] For https://github.com/mozilla-mobile/fenix/issues/11534 - Don't check lastUsed mode for screenshots (https://github.com/mozilla-mobile/fenix/pull/11827) 4 years ago
ValentinTimisica 574e7436d9 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10462: Removes back button from bookmarks and history fragments (https://github.com/mozilla-mobile/fenix/pull/11721) 4 years ago
Mugurell 3eda4d3fc3 [fenix] For https://github.com/mozilla-mobile/fenix/issues/9144 - Ignore previous Intent if activity is started from Recents
We'll now clearly differentiate between cold / hot starts of HomeActivity.kt.
This is needed because Android will resend the original Intent which initially
started the Activity whenever it is restarted from the Recents Screen if the
activity is already destroyed at that time. So in the event that the activity
was before started with an Intent to open a webpage for example whenever the
activity is restarted from Recents it will receive the same Intent to open a
webpage even though that Intent has already been consumed.

Activity's onCreate() will only use the intent processors when the activity is
cold started so that we'll only initially act upon Intents configured for
different behaviors inside the app.
If the activity is destroyed while in background and opened from Recents it
will not act upon the original Intent which is now resent by Android.

Activity's onNewIntent() will be called to act upon a new Intent if the
activity is hot started since we are declared as singleTask and it now has the
responsibility to delegate various intent processors to consume that Intent.
4 years ago
Mihai Eduard Badea 2869a5b3f7 [fenix] For issue https://github.com/mozilla-mobile/fenix/issues/10727 - Hide saved logins details
Removed the clearFlags call from the HomeActivity that was causing this issue and removed the now redundant call to update the flag from the redirectToReAuth method
4 years ago
Jeff Boek ef2b32d073 [fenix] For https://github.com/mozilla-mobile/fenix/issues/11625 - Fixes tab tray staying open when opening from another app (https://github.com/mozilla-mobile/fenix/pull/11740) 4 years ago
Sachin e56cc28342 [fenix] for https://github.com/mozilla-mobile/fenix/issues/11617 added a resetPoliciesAfter ext function for StrictMode, and replaced all existing calls to "resetAfter" with "resetPoliciesAfter" (https://github.com/mozilla-mobile/fenix/pull/11619) 4 years ago
Mihai Branescu 1fa45a66ed [fenix] For https://github.com/mozilla-mobile/fenix/issues/6126 - moved the sessionObserver init to the onCreate
This helps because we will always need the observer to be initiated, not only when the `openToBrowser` method gets called. Example: Opening a tab from the tab tray had it's own method for opening the browser, causing this to not be called.
4 years ago
Jonathan Almeida 81929addcc [fenix] Fix breaking APIs in TabsAdapter and ViewHolder 4 years ago
Tiger Oakes d7b772a13f [fenix] Fixes https://github.com/mozilla-mobile/fenix/issues/9056 - Start Fenix activity on search in external app (https://github.com/mozilla-mobile/fenix/pull/10932) 4 years ago
ValentinTimisica 7fba94f4c5 [fenix] For https://github.com/mozilla-mobile/fenix/issues/11365: Reorganizes 'SettingsFragment' items
Moved all the functionality form 'DefaultBrowserSettingsFragment' to
'SettingsFragment'.
4 years ago
ValentinTimisica e543599ba4 [fenix] For https://github.com/mozilla-mobile/fenix/issues/5148: Switch to the correct tab on media notification clicked
Processing the intent in OpenSpecificTabIntentProcessor to be able to switch
to the tab where audio/video is playing
4 years ago
Sachin c17dc6a61b [fenix] for https://github.com/mozilla-mobile/fenix/issues/7225, Changed strictMode thread penalty to dialog on startup and back to logs after startup is done. (https://github.com/mozilla-mobile/fenix/pull/10831)
for https://github.com/mozilla-mobile/fenix/issues/7225, refactored and cleanup the branch.

for https://github.com/mozilla-mobile/fenix/issues/7225, change strict mode policy only on main process.

for https://github.com/mozilla-mobile/fenix/issues/7225, setting thread policy inside a seperate thread to keep it from getting overridden in activities.

for https://github.com/mozilla-mobile/fenix/issues/7225 removed Handler().postAtFrontOfQueue as a solution due to unknown side effects. moved the enableStrictMode function to be static so we can reuse it.

for https://github.com/mozilla-mobile/fenix/issues/7225 lint check

for https://github.com/mozilla-mobile/fenix/issues/7225 created strict mode manager and moved enabledStrictMode function inside it.

for https://github.com/mozilla-mobile/fenix/issues/7225 removed penalty death on network

for https://github.com/mozilla-mobile/fenix/issues/7225 added allow disk access on thread for already existing violation


strict mode running in main process to see if it passes the gitlab check, will revert it if it doesnt

allowed diskread for super.onCreate for home activity

added comments for disk violation oncreate homeactivity

added fragment manager inside strictmode manager

allowed disk read for onboarding

allowed disk read for cachedTopSites
4 years ago
person808 a6dc24bd4e [fenix] For https://github.com/mozilla-mobile/fenix/issues/10525 - Remove tab tray item dividers. 4 years ago
mcarare 47e3a8f737 [fenix] For https://github.com/mozilla-mobile/fenix/issues/11153:Add FLAG_SECURE on pause and clear on resume for private session. 4 years ago
Vishwa Patel d7faa8c2c5 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10834 - Adding Sync Tabs Feature in Fenix 4 years ago
Jeff Boek 291549d6e5 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10496 - Fully expand bottom sheet when loaded 4 years ago
Jeff Boek 1f7c6d37b3 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10496 - Automatically scroll to the selected tab when you open the tab tray 4 years ago
ValentinTimisica 64896fe497 [fenix] Fixes https://github.com/mozilla-mobile/fenix/issues/10064: Open help articles in normal tab instead of custom tab 4 years ago
David Walsh 6bc73d2bb9 [fenix] For 10665 - Show the most recent tabs at the top of the tab tray (https://github.com/mozilla-mobile/fenix/pull/10687) 4 years ago
Jeff Boek f92ea0f960 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10504 - Removes "old" TabTrayFragment 4 years ago
David Walsh 7c147dcd8b [fenix] For https://github.com/mozilla-mobile/fenix/issues/10321: Wire up play and pause buttons in tab tray (https://github.com/mozilla-mobile/fenix/pull/10422) 4 years ago
Elise Richards 7d3693de38 [fenix] Fixes https://github.com/mozilla-mobile/fenix/issues/9504: Edit logins (https://github.com/mozilla-mobile/fenix/pull/9693)
* Create editable view and fragment. Update login info page to display options menu with edit and delete.

* Create feature flag for edit. Check flag in the login detail fragment and default to just delete.

* Add three-dot kebab options menu in login detail fragment. Add title to the login item.

* Nav to and from edit view on save and back pressed.

* Save login through AC login manager. Clear text in editable field on button click.

* Match colors, fonts, dimens to UX specs for edit logins. Enable password reveal/hide and clearing text fields.

* Refactoring logins fragments. Using component Login object for consistency.

Fetch login list when saved logins are opened. Fetch login details when detail view is opened.

Revert "Fetch login list when saved logins are opened. Fetch login details when detail view is opened."

This reverts commit 44fe17166c3332b330229258b2e8982832672e3b.

* Using parcelable login and Login component class to pass ids and items between fragments

* Retrieve login from storage when viewing login details.

Rename login logic for consistency.

Ktlint cleanup

Fix nits and naming consistency.

* UX consistency for login detail and edit login pages

* Rebasing with logins sort - updating logins store.

* Rebasing with logins sort - merging fragments and controllers.

* Lint and removing unused files.

* UX cleanup.

* Update string description
4 years ago
mcarare 100b05d396 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10453: Use TabsTray API to set divider, avoiding related crashes. 4 years ago
Jonathan Almeida d8c2af230d [fenix] For https://github.com/mozilla-mobile/fenix/issues/10453: Do not set item decoration when creating ViewHolder 4 years ago
David Walsh c68f4c2df7 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10329 - Implement tab tray divider 4 years ago
Jeff Boek c20dbf04b7 [fenix] No Issue - Update to AC 41.0.20200505190119 4 years ago
David Walsh b2cad42ba9 [fenix] For https://github.com/mozilla-mobile/fenix/issues/10148 - Add basic tab tray implementation without exposing to rest of app (https://github.com/mozilla-mobile/fenix/pull/9934) 4 years ago
Michael Comella a3be78d7e8 [fenix] For https://github.com/mozilla-mobile/fenix/issues/8803: hook up frameworkStart metric. 4 years ago
Jeff Boek 6308049167 [fenix] Cleans up nav_graph.xml (https://github.com/mozilla-mobile/fenix/pull/9829)
* For https://github.com/mozilla-mobile/fenix/issues/9751 - Cleans up homeFragment directions

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Uses global actions for fragments not owned by homeFragment

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Cleans up SearchFragment directions

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Removes settings action from DeleteBrowsingDataFragment

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Removes browser action from SettingsFragment

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Adds ManagePhoneFeature global action

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Clean up unused deletebrowsingfragment actions

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Cleans Up HistoryFragment actions

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Removes Home -> Search action

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Removes the Bookmark -> Browser action

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Cleans up bookmark fragment actions

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Cleans up actions from ShareController

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Removes defaultBrowserFragment to browserFragment action

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Removes about -> browser action

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Adds global action to TrackingProtectionFragment

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Removes exception -> browser action

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Removes login -> browser action

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Fixes LoginFragment directions

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Removes ExternalAppBrowser directions

* for https://github.com/mozilla-mobile/fenix/issues/9751 - Cleans up actions

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Fixes unit tests

* For https://github.com/mozilla-mobile/fenix/issues/9751 - Addresses nits in PR
4 years ago
ekager b57314cc8e [fenix] For https://github.com/mozilla-mobile/fenix/issues/2818 - Adds Picture-in-Picture feature 4 years ago
Mihai Eduard Badea 68a5b44663 [fenix] For https://github.com/mozilla-mobile/fenix/issues/2768 - Prevent screenshots in private mode
Added a new option in Private browsing menu to allow or prevent screenshots from being taken while in private mode by adding or removing the FLAG_SECURE flag from the home activity's window.

 This method is called whenever the activity is initialized to account for the browsing mode being changed and whenever the setting from the Private browsing menu is changed.

 The setting is by default set to true (screenshots are allowed to be taken)
4 years ago
Michael Comella cb29b33e21 [fenix] No issue: add kdoc to HomeActivity.
We could consider renaming the Activity to make it clearer that it's the
main activity and doesn't just feature the homescreen but I'm concerned
that renaming it will break too many things (e.g. automation that starts
a specific activity). For quick fix, I added this comment.
4 years ago
Grisha Kruglov 1a6e1c0b7f [fenix] Part 2: Do not eagerly initilize account manager within HomeActivity
Instead of always kicking off accountManager's init and telling it to sync right away in
'onResume', we move these tasks to some abstract point later on, whenever account manager
is available.
4 years ago
Grisha Kruglov ccb08070a7 [fenix] Pre: introduce a RunWhenReadyQueue
This replaces the StartupTaskManager we had with a more general class.
New implementation is a thread-safe "gated task executor", which either
runs the task right away if it's marked as 'ready', or queries it to be
executed later on.

This ability to either execute or queue a task will be useful later on in the
commit series.
4 years ago
Michael Comella 9d832f24e7 [fenix] No issue: remove unused HotStartPerformanceMonitor.
This monitor for hot start was intended to be used by FNPRMS to measure
hot start. However, hot start was deprioritized so it's now essentially
unused.
4 years ago
Sawyer Blatz 74a8a9e29d [fenix] For https://github.com/mozilla-mobile/fenix/issues/167: Improves home to browser animation 4 years ago
Michael Comella 3dc6e1d215 [fenix] For https://github.com/mozilla-mobile/fenix/issues/7781: instrument visual completeness for top sites.
Eyeballing my output in *Debug builds on my P2, this adds approximately 115ms
or slightly less from first frame drawn to visually complete time.
4 years ago
Will Hawkins 866d008e67 [fenix] For https://github.com/mozilla-mobile/fenix/issues/8034: Create a post-visual completeness executor
Create an object that will execute its enqued tasks
when Fenix is visually complete.
4 years ago