Default app behavior for when a crash occurs involves starting an Activity that
lets users submit a crash report and maybe provide additional info.
In the event of a crash we want to restore for the user all previous tabs, this
Activity being the component that saves the CRASHED status that will trigger
the restore process.
On Android Q, when a crash notification is posted but ignored by the user, upon
starting the app would not know it crashed and it would not try restoring tabs.
Executing the "save CRASHED status" logic whenever a crash occurs, irrespective
of if we'll show the Activity or just post a notification ensures users will
always have their previous tabs restored.
Differential Revision: https://phabricator.services.mozilla.com/D34826
--HG--
extra : moz-landing-system : lando
Created an exception in the key event suppression mechanism for the back button KEYCODE.
Differential Revision: https://phabricator.services.mozilla.com/D33950
--HG--
extra : moz-landing-system : lando
WebExtension pages introduce a case that was previously not possible: a script
with full WebExtension privileges that runs on a page with a GeckoSession
associated to it.
This breaks the assumption that all messages from a privileged context don't
have a GeckoSession associated to it. We fix this by checking if we can find an
eventDispatcher for the given window.
This also fixes the test which had the same wrong assumption.
Differential Revision: https://phabricator.services.mozilla.com/D32512
--HG--
extra : moz-landing-system : lando
With Beta4 AndroidQ now ships with final APIs so the previous check we used,
VERSION.CODENAME now returns REL instead of Q.
But final APIs means AndroidQ will not share API level 28 with AndroidP anymore
so we can finally check for Build.VERSION.SDK_INT.
Differential Revision: https://phabricator.services.mozilla.com/D33906
--HG--
extra : moz-landing-system : lando
This changes the registration code so that categories are
still registered in the manifest (and thus not registered
in GeckoView), but the component is still always shipped.
Differential Revision: https://phabricator.services.mozilla.com/D33478
--HG--
extra : moz-landing-system : lando
The Java ExoPlayer that we use for HLS support on Android does an accurate
seek, that is, it seeks to the frame at the seek target. This may not be a
keyframe, which we can start decoding at. So change the HLS seek to seek 2
seconds behind the seek target, and drop all frames up to the next keyframe.
This means that after a seek the HLSDemuxer will output a keyframe, and
hopefully (but we can't guarantee of course) it will lie behind the actual seek
target.
We also need to purge the GeckoHlsVideoRenderer's queue of frames which it
is holding onto in order to determine their durations, otherwise after a seek,
we'll get output from this queue of frames. That is, after a seek we would still
get a few frames from the old playback position.
This seek case is particularly problematic as we aggressively shutdown decoders
when the media is paused, including right after the load reaches
loadedmetadata, and we need to seek in order to recover from going dormant.
Differential Revision: https://phabricator.services.mozilla.com/D33254
--HG--
extra : moz-landing-system : lando
`mozilla.widget.*` was used by old Fennec (Maemo/GTK2). But Android widget doesn't reference this.
### `mozilla.widget.disable-native-theme`
This preference is unused on Android widget. This is for GTK and Windows. Reftests on Android are disabled by `layout/reftests/reftest.list`.
### `mozilla.widget.force-24bpp`
This is unused on Android. This is GTK only.
### `mozilla.widget.use-buffer-pixmap`
No one uses this preference.
Differential Revision: https://phabricator.services.mozilla.com/D33609
--HG--
extra : moz-landing-system : lando
This gives the ability to open multiple tabs in GeckoViewExample and switch between them. It was decided to use a single `GeckoView` and use a session manager to hold the open sessions and switch the session attached to the `GeckoView` when switching between tabs. This was a more lightweight solution than trying to maintain several `GeckoView`s each with their own session.
1. Create concept of `TabSession` that tracks `GeckoSession`s and ties them with a specific URL and title.
2. Create `TabSessionManager` that takes responsibility for opening, closing and tracking sessions.
3. Update `GeckoViewActivity` to use the session manager to set the current session on the displaying `GeckoView`.
4. Add menu items for opening and closing new tabs.
5. Create new toolbar layout to include a tabs button for displaying open sessions and allowing the user to switch between them.
Possible follow up bug: add long press menu to links on web pages to allow them to be opened in new tabs.
Differential Revision: https://phabricator.services.mozilla.com/D33148
--HG--
extra : moz-landing-system : lando
Right now there's some duplicated code with the focus manager and the
DOMWindowFocus event.
Android didn't handle the new framefocusrequested event, so the test-cases in
bug 416771 still didn't work there.
I think using the focus manager codepath everywhere is preferable. I confirmed
manually that the stuff that sent DOMWindowFocus events still works as expected
with this patch (i.e., switching to the right tab when you click on a
notification, etc.).
This fixes it so that it works in Fennec, and it sends the focus events right in
GeckoView Example (i.e., we get here[1] properly).
The snippet that Snorp provided on IRC to implement the "bring activity to
front" stuff (`startActivity(getIntent())`) didn't actually work for me, but I
confirmed that the right message is sent when the focus is requested, and that
we get there.
[1]: https://searchfox.org/mozilla-central/rev/952521e6164ddffa3f34bc8cfa5a81afc5b859c4/mobile/android/geckoview_example/src/main/java/org/mozilla/geckoview_example/GeckoViewActivity.java#503
Depends on D32353
Differential Revision: https://phabricator.services.mozilla.com/D32354
--HG--
extra : moz-landing-system : lando
Fixed report site issue: added marfeel and mobify support, fixed labels being passed to the server
Differential Revision: https://phabricator.services.mozilla.com/D33018
--HG--
rename : browser/extensions/report-site-issue/test/browser/fastclick2.html => browser/extensions/report-site-issue/test/browser/fastclick.html
rename : browser/extensions/report-site-issue/test/browser/fastclick1.html => browser/extensions/report-site-issue/test/browser/frameworks.html
extra : moz-landing-system : lando