Commit Graph

328 Commits (9654b4dfb122b54b04369fe80a2f9c95811478e8)

Author SHA1 Message Date
ekager bd2c407943 For #4652 - Remove activityViewModels workarounds 4 years ago
Codrut Topliceanu 975a5b76ec
For #14637 - Fix sitePermissionsFeature breaking change + AC bump (#16229)
* For #14637 - Compatibility patch for AC - 8554

* Update Android Components version to 65.0.20201029143039

Co-authored-by: Arturo Mejia <arturomejiamarmol@gmail.com>
4 years ago
mcarare 9748c65c71 For #15413: Use proper url when bookmarking a page. 4 years ago
Christian Sadilek 601aa19176 Closes #11285: Replace Session[Manager] observers in BaseBrowserFragment 4 years ago
mcarare 21a67de947 For #15379: Use proper url when sharing. 4 years ago
ekager e15f50712a For #6313 - Set session ClearColor through Engine DefaultSettings 4 years ago
ekager cbe293d3e4 For #12062 - Launch back to browser if we previoulsy had tabs 4 years ago
Andrew Gaul cfbad1dae9 Show undo snackbars with padding with static bottom toolbar
This specifically fixes the close tab snackbar.  This commit mirrors
the logic when not using Undo from
9e876ebc44.  References #14982.
4 years ago
Sebastian Kaspari 3983c509dc Use "undo" implementation from Android Components.
This is not the super fancy version yet - since we still need to restore into SessionManager and
haven't fully switched to BrowserStore yet. However AC having knowledge about "undo" and whether
it was performed or not, will help us with features like "recently closed tabs". And once we
can improve "undo", Fenix will get all the nice things automatically.

Requires:
https://github.com/mozilla-mobile/android-components/pull/8449
4 years ago
ekager 7d5c199e51 For #12383 #15407 #12860 - Switch to using shared view model for session to delete on home 4 years ago
Elise Richards 1adf467248
For #14280, #14743: Remove old search fragment (#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
ekager a9075ff87b For #15272 - Remove bottom margin for toolbar on enter fullscreen 4 years ago
ekager 030d6a5b36 For #15121 - Ensure tabs removed while on browser select an available parent session 4 years ago
ekager 9a2103a9a7 For #13934 - Make TabHistory work on PWA/Custom Tabs 4 years ago
ekager 407c31fdb3 No issue: Fixes strict mode death in debug custom tab 4 years ago
Mugurell 75aa2d413a For #14974 - Ensure website bottom elements stay at bottom
engineView.setDynamicToolbarMaxHeight(0) vs
engineView.setDynamicToolbarMaxHeight(toolbarHeight)
ensures webpage's bottom elements are aligned to the bottom of the browser.

We also need to make sure that when the toolbar is static it does not cover the
bottom of the page - something desired when the toolbar was dynamic.
For this the engineView will have a toolbarHeight bottom margin.
4 years ago
ekager 09fbb43f80 For #2486 - Adds Recently Closed Tabs 4 years ago
Gabriel Luong 6d133c8d0c For #14529 - Show a dialog when the top sites limit has been reached 4 years ago
Mugurell d8d896c500 For #10240 - New preferences to control gesture based features
Three new settings and one for which this patch just pre-lands the strings.
The behavior for the "Swipe toolbar up to open tabs" is to be added as part of
a later ticket.
4 years ago
Tiger Oakes 113241e8ce
Enforce IO thread inside of components (#14704)
* Automatically run PermissionStorage on IO thread

* Run TabCollectionStorage on dedicated scope + IO

* Update findSitePermissionsBy calls
4 years ago
Sebastian Kaspari e0071341c7 Update to new state API and update Mozilla Android Components version.
The EngineSessionState of a tab is now always accessible through tab.engineState.engineSessionState. It will
never get cleared.
4 years ago
Mugurell 33fc520468 For #10241 - Use VerticalSwipeRefreshLayout for pull to refresh
And so resolve many of the issues found in the platform's SwipeRefreshLayout.
4 years ago
ekager 7c7aa46811 Closes #14254 - Removes Login select feature flag 4 years ago
mcarare 2f1b903005 For #14289: Check if toolbar is initialised before setting flags. 4 years ago
Arturo Mejia c63fd3f9ac Add support for restoring downloads 4 years ago
Tiger Oakes a8291bf641
Remove un-needed nullables (#13816) 4 years ago
Tiger Oakes ace6b99c89
Split toolbar controller into two classes (#13854) 4 years ago
ekager 179a86ce64 Puts login selection behind a nightly feature flag 4 years ago
ekager 53eebd681b For #5551 - Adds select login prompts 4 years ago
Christian Sadilek 8b9c3e0108 Fixes for A-C 57.0.20200826190111: Move EngineSession to BrowserState 4 years ago
Tiger Oakes 0b333fe48a For #9056: Search from custom tab 4 years ago
Gabriel Luong 46aa6a003e For #10342 - Part 3: Use the TopSitesUseCase in the BrowserToolbarController and SessionControlController
Use the provided `addPinnedSites` and `removeTopSites` use cases in `BrowserToolbarController` and `SessionControlController`.
4 years ago
Sebastian Kaspari 4782705af9 Add diagnostic breadcrumbs for debugging "Display already aquired" crashes.
For:
https://github.com/mozilla-mobile/android-components/issues/7960
4 years ago
mcarare 6c2220bffc For #13388: Use safe call for nullable swipeRefresh. 4 years ago
Jonathan Almeida f3b870d356 For #11918: Take a screenshot when clicking the tab tray
We looked into taking a screenshot right before leaving the
BrowserFragment, however this call will always fail since it's
non-blocking (we never want it to be blocking too), and we will never
receive a screenshot when a session is detached from an EngineView
before the callback is complete.

In Fenix, we can nicely evade this by taking a screenshot when click
the tabs tray icon, which is where you would want to see the most
up-to-date thumbnail of the tab and also does not leave the
BrowserFragment as well.
4 years ago
Kainalu Hagiwara d49ca515f4 For #13330 - Remove feature flag for swipe to switch tabs. 4 years ago
mcarare 1e223a8a53 For #13761: Add a11y change listener after toolbar is initialised.
Also removed it before reference is removed in onDestroy.
4 years ago
Roger Yang da1579b361
Closes #13459: Pass DefaultLoadUrlUseCase to AppLinksFeature (#13460) 4 years ago
Kainalu Hagiwara 2bdcbe5db9 For #11935 - Move BrowserThumbnails to BrowserFragment. 4 years ago
Kainalu Hagiwara ba0c0b134b For #13329 - Remove tab history feature flag. 4 years ago
Kainalu Hagiwara 52d4ffdef0 For #13424 - Fix detekt config and warnings. 4 years ago
Arturo Mejia c52e4fd9f5 For issue #7620: Add support for external download managers 4 years ago
ekager 5d664b979d For #6313 - Removes unused browser animations, improve delayed paint interactions 4 years ago
ekager f663129632 For #6313 - On first load, hides engineView until firstContentfulPaint 4 years ago
Elise Richards 3e8cab19c0
For #10261: PWA Telemetry (#11859)
* Add PWA events to metrics.

Track events for add to homescreen and install.

Map PWA facts to events

* Map component facts to local metrics

Add events pings to fragments

Supress long method for events

Move install event to AC and collect facts

Retrieve fg and bg events from Facts. Do not track intent fg/bg events, only views

* Allow onPause in base fragment to send telemetry for PWA in the external app fragment. Track foreground and bg locally in fenix, and route install and home screen taps from AC facts

* Rebase
4 years ago
Kainalu Hagiwara e1653f629e For #13127 - Make sure tabPreview is added after browserLayout. 4 years ago
Kate Glazko 611adf83e5 remove unused import 4 years ago
Kate Glazko 151e8595b6 For AC #7673 Move DownloadStatus to DownloadState Fenix Side Changes 4 years ago
ekager 6b6e1956ca For #13071 - Only return to home when session doesn't have parent session to select 4 years ago
Kainalu Hagiwara bef98698cb For #12904 - Conditionally inflate SwipeGestureLayout in BaseBrowserFragment.
Changing the root view of BaseBrowserFragment from a CoordinatorLayout
to a SwipeGestureLayout has caused some regressions, particularly in
snackbar behavior. Lets prevent those regressions from occuring in
builds where the feature flag for gestures is off by only adding the
SwipeGestureLayout when the feature flag is on.
4 years ago
Kainalu Hagiwara 272c380755 For #13028 - Add feature flag for tab history. 4 years ago
ekager 1d604d327c For #12966 - Fixes session removal show home logic 4 years ago
ekager 46511d6f8e For #10163 - Adds tab multiselect mode 4 years ago
Kainalu Hagiwara cac0be43e6 For #12880 - Pass a CoordinatorLayout to Snackbars created by the context menu. 4 years ago
mcarare 3883703ed5 For #10026: Update scroll flags on a11y state change. 4 years ago
mcarare e7a5613afb For #10026: Add a11y state listener to BaseBrowserFragment. 4 years ago
Kainalu Hagiwara 8f32b18dfa For #12868 - Fix tab counter menu snackbar position. 4 years ago
Tiger Oakes 8f5a37733d
Create ToolbarPosition enum (#12747) 4 years ago
Kainalu Hagiwara 58ccc64386 Fix UI tests.
We need to pass a CoordinatorLayout instead of a SwipeGestureLayout to
FenixSnackbar.make() in BaseBrowserFragment to prevent UI tests from
breaking. We also need to remove a few view IDs from the tab preview.
4 years ago
Kainalu Hagiwara 921b16233b For #1048 - Add ability to view tab history by long-pressing the back or forward button. 4 years ago
ekager 1dc0ad39f4 For #10784 - Fixes memory leak in BrowserAnimator 4 years ago
Christian Sadilek 16b6776938 Update Android Components to 51.0.20200717190031 4 years ago
ekager 9ed85510ae For #7094 - Adds save login exceptions 4 years ago
Sebastian Kaspari a2a7b11425 Issue #12311: BrowserToolbarController: Stop SessionFeature and release session from EngineView. 4 years ago
ekager f863c341e8 Updates AC to 49.0.20200702190156 and fixes breaking changes 4 years ago
Tiger Oakes ed334788e8 For #11903: Enforce private theme in custom tabs 4 years ago
Sawyer Blatz 13c8abe3dc For #11613: Expand toolbar onUrlChanged 4 years ago
ekager f39313d908 For #8374 - On external session removed, handle back press 4 years ago
Tiger Oakes ccb532bb77
For #11534 - Don't check lastUsed mode for screenshots (#11827) 4 years ago
codrut.topliceanu 0eb2f328dc For #11371 - Fix for Dynamic Download Dialog 4 years ago
Hakkı Kaan Çalışkan 87a65d2445 For #9782: Clean up unused FeatureFlags
I've currently found out this ones unused.
webPushIntegration removed because looks like all fatal bugs solved as it said from note.
4 years ago
Tiger Oakes d81aa62683 Fix PIP toolbar 4 years ago
Tiger Oakes d3d5c8934f Cleanup tests for toolbar controller 4 years ago
Tiger Oakes 704fc6f983 Use updated webapphidetoolbarfeature 4 years ago
Jeff Boek cd3b6181b3 For #10374 - Adds quick contextual menu to tab switcher
Co-authored-by: person808 <kainaluh808@gmail.com>
4 years ago
Sawyer Blatz 27c7ef5ad4 For #8775: Removes feature flag for dynamic bottom toolbar 4 years ago
ekager 54df729fb3 For #8374 - Don't recreate ExternalAppBrowserActivity or finishing activities 4 years ago
Jeff Boek 2dd0a3cb9e
Implement tab tray design improvements and fix close functionality. 4 years ago
Gabriel Luong 60b68a265a
For #10921 - Integrate BrowserThumbnails feature into the tabs tray (#11093) 4 years ago
Jeff Boek 8662164b8a
Refactors the TabTrayDialogFragment to ditch that weird interactor (#11061)
* For #11056 - Removes unused argument when navigating to the collection creation fragment

* For #11056 - Moved the collection creation navigation logic to the TabTrayDialogFragment

* For #11056 - Moves navigating to the share screen from home/browser to the TabTrayDialogFragment

* For #11056 - We moved tab selection logic from home/browser to the tab tray dialog

* For #11056 - Moved new tab tapped logic to the tab tray dialog fragment

* For #11056 - Removes all interactor logic for the TabTrayDialogFragment

* For #11056 - Migrates the presentation / navigation around the TabTrayDialog to the androidx navigation library
4 years ago
Tiger Oakes 749c95e0f0
Add tests for ReaderModeController (#11049) 4 years ago
David Walsh 267cf35edb For 11001 - Show close all tabs above tab tray 4 years ago
Christian Sadilek 7b5661ed10 Update Android Components version to 44.0.20200528190114
Pass store to download manager and service to address API changes.
4 years ago
David Walsh 248237290e
For #10865 - Implement 3 dot menu for tab tray (#10869) 4 years ago
David Walsh 54cb8f0194 Remove unused import 4 years ago
David Walsh 5e4fd460f8 Remove onTabClosed from interactor 4 years ago
David Walsh 8b843ac9e5 Fix elevation for snackbar and fab 4 years ago
David Walsh e9bcc9bb1e Move snackbar to TabTrayDialogFragment 4 years ago
David Walsh f653964ee1 For #10864 - Display snack bar to undo closing tabs 4 years ago
Sebastian Kaspari 21bd379438 Issue #9815: Allow Intents to set HomeActivity.OPEN_TO_BROWSER. 4 years ago
Jeff Boek 601aedda46 For #10504 - Removes "old" TabTrayFragment 4 years ago
Jeff Boek a674c5dfe7 For #10504 - cleans up tabLayout colors 4 years ago
Jeff Boek 4e499e7a48 For #10504 - Adds tabTrayDialogInteractor to browserfragment 4 years ago
Jeff Boek cc6a380d45 For #10504 - Show tab dialog on browserfragment 4 years ago
ekager 83ab7646c1 For #7602 - Integrate media fullscreen orientation feature 4 years ago
codrut.topliceanu 7feae98944 For #9044 - Replace DownloadNotificationBottomSheetDialog with unobtrusive view
- Renamed DownloadNotification and removed DownloadState.dismissed dependency
- Improved DynamicDownloadDialog behaviour when scrolling
- DynamicDownloadDialog remains attached to tab until dismissed
- Fixed onTryAgain not working for resumed DownloadDialogs
4 years ago
Sawyer Blatz d33edd8841 No issue: Clean up SearchFragment a bit 4 years ago
Sawyer Blatz 011a9e7d96 For #1216: Add voice search 4 years ago
ekager d46369696f For #10718 - Finish activity after removing external session 4 years ago
Emily Kager 32e74aae61 Revert "For #6313 - On first load, hides engineView until firstContentfulPaint"
This reverts commit d66762910f.
4 years ago
ekager d66762910f For #6313 - On first load, hides engineView until firstContentfulPaint 4 years ago
Christian Sadilek 7993f1017d Migrate feature-accounts to browser-state 4 years ago
Arturo Mejia ca01965f90 Fix PictureInPictureFeature breaking change 4 years ago
ekager 9fd835de0f For #10433 - Pass in viewLifecycleScope to BrowserAnimator 4 years ago
Simon Chae a851b76ea3
Update Android Components version to 41.0.20200506130132 (#10443) 4 years ago
Sawyer Blatz 38e9b34659
For #10071: Fixes PWA showing toolbar onPause (#10306) 4 years ago
Mihai Eduard Badea 02bd0cc203 For issue #8648 4 years ago
ekager c4e83367f6 For #6832 - Fix various fragment not attached to a context crashes 4 years ago
ekager 6457a02a82 For #2818 - Enable PiP for all builds 4 years ago
Arturo Mejia 0a23d66756 For issue #7566 Handle deny & don't ask again for site permissions 4 years ago
Michael 1f8b7ff962 Closes #8541: Hide find bar when entering fullscreen 4 years ago
Sawyer Blatz a8e624959e
For #6940: Fixes top dynamic toolbar behavior (#9900) 4 years ago
Emily Kager 39107b4036
For #9703 - Exit fullscreen in onPause and onSessionSelected (#10016)
* For #9703 - Call fullScreenChanged in onPause

* For #10015 - Exit full screen if new session selected
4 years ago
Jeff Boek 4cbb9aebaf
Cleans up nav_graph.xml (#9829)
* For #9751 - Cleans up homeFragment directions

* For #9751 - Uses global actions for fragments not owned by homeFragment

* For #9751 - Cleans up SearchFragment directions

* For #9751 - Removes settings action from DeleteBrowsingDataFragment

* For #9751 - Removes browser action from SettingsFragment

* For #9751 - Adds ManagePhoneFeature global action

* For #9751 - Clean up unused deletebrowsingfragment actions

* For #9751 - Cleans Up HistoryFragment actions

* For #9751 - Removes Home -> Search action

* For #9751 - Removes the Bookmark -> Browser action

* For #9751 - Cleans up bookmark fragment actions

* For #9751 - Cleans up actions from ShareController

* For #9751 - Removes defaultBrowserFragment to browserFragment action

* For #9751 - Removes about -> browser action

* For #9751 - Adds global action to TrackingProtectionFragment

* For #9751 - Removes exception -> browser action

* For #9751 - Removes login -> browser action

* For #9751 - Fixes LoginFragment directions

* For #9751 - Removes ExternalAppBrowser directions

* for #9751 - Cleans up actions

* For #9751 - Fixes unit tests

* For #9751 - Addresses nits in PR
4 years ago
ekager b8fba63be4 For #9890 - Do not display full screen snackbar with toolbar padding 4 years ago
ekager ac3a557ddf For #9703 - Exit full screen on pause if pip not entered 4 years ago
Roger Yang c9141c9ae5 Close #9827: Support display cutouts 4 years ago
ekager 56eb2ec1d7 For #2818 - Adds Picture-in-Picture feature 4 years ago
Sawyer Blatz e3ed7ed268
Issue #9128 & #9222 & #9499: Refactors snackbar creation and fixes placement (#9628) 4 years ago
Sawyer Blatz 208a58bc58
Issue #9598 & #8697: Fixes force expand crash (#9599) 4 years ago
Sawyer Blatz 1a2b65d854
Issue #9472: ForceExpand browser toolbar when navigating (#9552) 4 years ago
mcarare f52fa44207 For #9498: Replace navargs with viewModel to remember if scroll to tab 4 years ago
Arturo Mejia f9cc2ccfe2 For issue #8017 enable SitePermissionsWifiIntegration 4 years ago
mcarare 012e318724 For #8968: Hide keyboard when navigating away from browser 4 years ago
ekager eea6eb0c4c Add toolbar padding for bookmark snackbar 4 years ago
Severin Rudie 35a132d7ff
8017 advanced autoplay controls. (#8978)
* For #8017: add advanced autoplay controls
4 years ago
Grisha Kruglov eb14532c3c Closes #7450: Lazy storage initialization
Make sure that we actually lazily initialize our storage layers.

With this patch applied, storage layers (history, logins, bookmarks) will be initialized when first
accessed. We will no longer block GeckoEngine init, for example, on waiting for the logins storage
to initialize (which needs to access the costly securePrefStorage).
Similarly, BackgroundServices init will no longer require initialized instances of the storage
components - references to their "lazy wrappers" will suffice.

In practice, this change changes when our storage layers are initialized in the following ways.
Currently, we will initialize everything on startup. This includes loading our megazord, as well.

With this change, init path depends on if the user is signed-into FxA or not.

If user is not an FxA user:
- on startup, none of the storage layers are initialized
- history storage will be initialized once, whenever:
  - first non-customTab page is loaded (access to the HistoryDelegate)
  - first interaction with the awesomebar
  - history UI is accessed
- bookmarks storage will be initialized once, whenever:
  - something is bookmarked, or we need to figure out if something's bookmarked
  - bookmarks UI is accessed
- logins storage will be initialized once, whenever:
  - first page is loaded with a login/password fields that can be autofilled
  - (or some other interaction by GV with the autofill/loginStorage delegates)
  - logins UI is accessed
- all of these storages will be initialized if the user logs into FxA and starts syncing data
  - except, if a storage is not chosen to be synced, it will not be initialized

If user is an FxA user:
- on startup, none of the storage layers are initialized
- sometime shortly after startup is complete, when a sync worker runs in the background, all storage
layers that are enabled to sync will be initialized.

This change also means that we delay loading the megazord until first access (as described above).
4 years ago
Arturo Mejia 823eea44ed No issue: Add serverConfig param to FxaWebChannelFeature 4 years ago
ekager 31cc7d9166 For #8897 - Don't remove all external sessions on back press 4 years ago
Grisha Kruglov e6e2dd94c7 Closes #7344: Login storage refactor
The a-c side of this work is in https://github.com/mozilla-mobile/android-components/pull/6128

This switches Fenix to use `SyncableLoginsStorage`, which caches a connection internally
on first access, and doesn't expose any lock/unlock APIs at the public boundary.
4 years ago
Sawyer Blatz 8e06933e8d For #167: Adds browser -> home animation 4 years ago
Sawyer Blatz e96732604b For #167: Improves home to browser animation 4 years ago
ekager a6b07afa95 No issue: Fix LeakCanary detected memory leaks
Co-authored-by: Emily Kager <emilykager@gmail.com>
Co-authored-by: Pierre-Yves Ricau <py@squareup.com>
4 years ago
mcarare 5a6fc02976 For #8773: Set proper anchor and padding for Snackbars on browser screen 4 years ago
Sawyer Blatz 13c9c39658 For #4383: Add feature flag 4 years ago
Sawyer Blatz 009a7f3020 For #4383: Enable dynamic bottom toolbar 4 years ago
Sawyer Blatz 82979afb48 For #8743: Fix baseBrowserFragment crash 4 years ago
ekager 511c36e191 Removes FragmentPreDrawManager changes in BrowserFragment 4 years ago
Sawyer Blatz dcc1e9fc65 No issue: Fixes swipeRefresh UI test crash 4 years ago
Jeff Boek 541bcf072a Reverts all BrowsingModeManager changes 4 years ago
ekager 0d398f7d44 For #8580 - Don't change theme in initialize UI 4 years ago
Roger Yang 60d38057bb
Closes #8654: Fix breakage from customTabId rename (#8656) 4 years ago
Sawyer Blatz d918cfdf38 For #1901: Screenshot engineView to remove GV flash
Co-authored-by: ekager <ekager@mozilla.com>
4 years ago
Roger Yang 0630e2482f
Closes #8544: Activity should be reused when opening intents from other apps (#8547) 4 years ago
ekager 35bf4fbda9 No issue: Fix login for BaseBrowserFragment FragmentPreDrawManager 4 years ago
Emily Kager 9bac7ef47b For #8403: Don't postpone transition for view intents 4 years ago
Simon Chae 2c01022c4b For #8153: Allow web-ext to open new tabs in correct browsing mode 4 years ago
Emily Kager 5839f5891c No issue: Update androidx dependencies 02.08.20 4 years ago
Gabriel Luong e1863dd3c2 For #6758 - Part 4: Implement "Add to Firefox Home" browser menu item
- The "Add to Firefox Home" browser menu item adds a top site to the top site storage.
- Refactors the FenixSnackbar from BaseBrowserFragment into BrowserToolbarController
since there are multiple menu items that need to show a FenixSnackbar.
- Adds metrics for the new browser menu item.
4 years ago
Kate Glazko dbf711e112 For #4904: Pressing back external link doesn't go back 4 years ago