1541 Commits

Author SHA1 Message Date
Jeff Sharkey
bcaac0adec Surface outgoing Uri permission grants.
This enables apps to discover and clean up persisted Uri grants when
the underlying Uri becomes invalid, such as when an account is
removed.

Bug: 11142566
Change-Id: Ieeb36cb1155acf226327ebe91cdd30b822d69d1b
2013-10-09 14:32:11 -07:00
Craig Mautner
b729e99578 Merge "Yet more debugging for 10858941." into klp-dev 2013-10-08 00:16:41 +00:00
Craig Mautner
e2dd83a5b4 Yet more debugging for 10858941.
Change-Id: I258957044cb1a8331124f6abbe53428429c33355
2013-10-07 17:01:41 -07:00
Dianne Hackborn
13c590de1e Fix issue #11113111: dumpsys activity service is broken
Change-Id: Ie02d27b377c562085ef7eb5dea144ce2f382c11d
2013-10-07 14:36:47 -07:00
Craig Mautner
e7dd3469ff Merge "Relax conditions for including windows behind dialogs" into klp-dev 2013-10-06 21:29:34 +00:00
Craig Mautner
ade5f387fa Merge "Revert to jb-mr2 handling of app died." into klp-dev 2013-10-06 21:29:05 +00:00
Dianne Hackborn
4bc5909a03 Merge "Fix issue #11050678: Large memory leak in ActivityStack" into klp-dev 2013-10-06 20:28:47 +00:00
Dianne Hackborn
f46bb1d99b Merge "Fix issue #11086275: Thumbnail only created once for top activity" into klp-dev 2013-10-06 20:28:07 +00:00
Craig Mautner
ff174d52bd Relax conditions for including windows behind dialogs
When a dialog has been minimized to recents the windows behind it
won't be visible. Yet we were requiring them to be visible in order to
be included in the ones being restored. This left the background
windows invisible on resume and showed home behind floating dialogs
instead of the activity that launched the dialogs.

Fixes bug 11067724.

Change-Id: Icadd7ec8fe7c73b52982b6ff5b5d98b8fb8476b0
2013-10-06 12:24:56 -07:00
Craig Mautner
dd88879ce1 Merge "Evaluate task on top of home when task is brought to front." into klp-dev 2013-10-06 17:44:38 +00:00
Craig Mautner
1703fd877f Merge "Resume user where they left off." into klp-dev 2013-10-06 17:44:18 +00:00
Craig Mautner
1909125eba Revert to jb-mr2 handling of app died.
Trying to span all potential stacks looking for apps was too complex
and error-prone. Extending the jb-mr2 method across multiple stacks.

Fixes bug 11080696.

Change-Id: I6391ceae4ad6a0955a409c3fb27472219fd5bf6b
2013-10-06 10:39:31 -07:00
Dianne Hackborn
4d03fe6420 Fix issue #11086275: Thumbnail only created once for top activity
If the last screenshot activity is resumed, we need to always capture
a new screenshot, because it can change at any time.

On the other hand, never create a thumbnail for tasks that have set
themselves to not show on the recent tasks lists, since we have no
use for them.

Change-Id: I38523afc966c125da93339e0100da950119cdf99
2013-10-05 10:26:23 -07:00
Craig Mautner
93529a475e Resume user where they left off.
Remember which stack was in front when the user changes. Restore that
stack when the user changes back. Remove user state when user is
deleted.

Fixes bug 11068986.

Change-Id: I18dfbc35a0c2e21e7a4024227cbfc5ba1208b3a3
2013-10-04 20:55:39 -07:00
Craig Mautner
9c85c201a2 Evaluate task on top of home when task is brought to front.
Localize the point where it is determined whether a task should sit on
top of home or return to the task below it.

Fixes bug 11080913.

Change-Id: I79d1ea9722c867d6b550ddfcd1db35517a79cd90
2013-10-04 20:11:26 -07:00
Dianne Hackborn
9844d299af Fix issue #11050678: Large memory leak in ActivityStack
Clear thumbnails from tasks that are removed from the recent tasks list.

Change-Id: I581d5baac9b5a3e046a654eb8448ff877dd2f120
2013-10-04 16:44:22 -07:00
Dianne Hackborn
ae7b22d61d Merge "Fix issue #10901205: Shouldn't send broadcasts (or try to bind services, etc.)..." into klp-dev 2013-10-04 17:47:34 +00:00
Dianne Hackborn
9357b11a79 Fix issue #10901205: Shouldn't send broadcasts (or try to bind services, etc.)...
...to crashing processes.

So don't.

Change-Id: I4b4fefb501b430fadaca93405206264318c8b95d
2013-10-03 18:27:48 -07:00
Dianne Hackborn
d94d533b5a Fix issue #11069176: Crash showing process stats
Change-Id: Ie568ebcb9863bed95c775b9b28654a5e2dc464cd
2013-10-03 17:32:19 -07:00
Adam Lesinski
d65825ab1c Merge "Private flags are masked in correct variable" into klp-dev 2013-10-03 01:52:18 +00:00
John Reck
172e87ce51 Reduce max recents on lowram
Bug: 10918599
 Reduce the number of recent tasks to 10 on lowram devices
 Use RGB_565 on low ram devices for thumbnails instead of ARGB_8888
 Combined this saves ~9MB across system_process and systemui

Change-Id: Ieddcb512c7341a90097bc7cbc72d7355a775b416
2013-10-02 17:51:11 -07:00
Adam Lesinski
95c42974f7 Private flags are masked in correct variable
Newly added private flags were being masked in the public flag variable
as opposed to the correct privateFlags variable.

bug:11033280
bug:11043194
Change-Id: Idda3a70a083457f3f1b7d4b46d231f4a7e704cf0
2013-10-02 16:18:55 -07:00
Craig Mautner
09be37b2d3 Merge "Add debuggging for 10858941." into klp-dev 2013-10-02 05:04:07 +00:00
Craig Mautner
323f78001d Add debuggging for 10858941.
Change-Id: I0517ccd9a83ef19a9002d61dbebf36d0120e1f63
2013-10-01 21:16:22 -07:00
Dianne Hackborn
164371fb75 Fix issue #11005453: [SUW] G+ profile creation for new user broken
The main problem here was a mistake when turning a single process
structure to a multi-package-process structure with a common
process.  When we cloned the original process state, if there were
any services already created for the process for that package, they
would be left with their process pointer still referencing the
original now common process instead of the package-specific process,
allowing the active counts to get bad.  Now we switch any of those
processes over to the new package-specific process.

There was also another smaller issue with how ServiceRecord is
associated with a ServiceState -- we could be waiting for an
old ServiceRecord to be destroyed while at the same time creating
a new ServiceRecord for that same service class.  These would share
the same ServiceState, so when the old record finally finished
destroying itself it would trample over whatever the new service
is doing.

This is fixed by changing the model to instead of using an "active"
reference count, we have an object identifying the current owner
of the ServiceState.  Then when the old ServiceRecord is cleaning
up, we know if it is still the owner at that point.

Also some other small things along the way -- new Log.wtfStack()
method that is convenient, new suite of Slog.wtf methods, fixed
some services to use Slog.wtf when catching exceptions being
returned to the caller so that we actually know about them.

Change-Id: I75674ce38050b6423fd3c6f43d1be172b470741f
2013-10-01 20:51:12 -07:00
Adam Lesinski
42e9b63100 Merge "Make room for new public flags" into klp-dev 2013-10-02 01:55:09 +00:00
Adam Lesinski
6a591f5859 Make room for new public flags
Moved two hidden flags to private

bug:11033280
Change-Id: Icca867b073aff643eefdaf84df68de86bb6b05ac
2013-10-01 18:48:20 -07:00
Amith Yamasani
86519dd5bb Merge "Use correct method for sparsearray lookup" into klp-dev 2013-10-01 23:35:21 +00:00
Craig Mautner
66de7f4fa0 Merge "Fixes to handleAppDiedLocked." into klp-dev 2013-10-01 21:44:13 +00:00
Craig Mautner
51277a8521 Fixes to handleAppDiedLocked.
- Call in all circumstances but only set launchHomeTaskNext for
  focused stack. Previous version didn't call handleAppDiedLocked for
  non-focused stack.

- Rearrange logic to run down the top task and make sure that all
  remaining activities belong to the dying app. Previous version just
  looked at the top non-finishing activity and based its behavior on
  that.

Fixes bug 11029560.

Change-Id: Ic3a7c873c4c975577d6b390a8955ff41729bdfde
2013-10-01 14:28:23 -07:00
Amith Yamasani
540b659304 Use correct method for sparsearray lookup
Should fix the array index out of bounds. valueAt() is when we have the
index, not the key.

Bug: 11014210
Change-Id: Icb53fe763782befbd5de1b3df6630b87cda72e84
2013-10-01 13:45:58 -07:00
Craig Mautner
3c98926bf2 Merge "Add a timeout for removing starting windows." into klp-dev 2013-10-01 20:35:01 +00:00
Craig Mautner
68cc241e8d Add a timeout for removing starting windows.
If two activities are started at the same time the first activity can
add a starting window but never start. In that case there is no event
that will clear the starting window. This change adds a 10 second
timeout for the starting window to be cleared after which it will
clear the starting window automatically.

Fixes bug 10797865.

Change-Id: I1d59c3058c63367ff688d426474e8a6f006b2e0d
2013-10-01 10:39:43 -07:00
Jeff Sharkey
7aa7601c09 Detect wedged ContentProviders, treat as ANR.
All ContentProvider calls are currently blocking, making it hard for
an app to recover when a remote provider is wedged.  This change adds
hidden support to ContentProviderClient to timeout remote calls,
treating them as ANRs.  This behavior is disabled by default.

Update DocumentsUI to use a 20 second timeout whenever interacting
with a storage provider.

Bug: 10993301, 10819461, 10852518
Change-Id: I10fa3c425c6a7225fff9cb7a0a07659028230cd3
2013-10-01 09:50:41 -07:00
Craig Mautner
19d112d836 Don't display hidden activities over home screen.
Fixes jank exposed in 10881705. Specifically background activity
animating up along with translucent activity. Repro steps on manta:

1. From home start Settings.
2. Press home.
3. From home start Downloads (translucent activity that takes 85% of
screen).
4. Observe that as Downloads zooms up the 15% boundary that should be
dimly transparent are showing Settings.

The cause was that there is a finishing activity in the Downloads task
that was used to launch the DownloadsActivity. The existence of that
activity kept the logic from recognizing that the home activity was
behind the DownloadsActivity, not the Settings activity.

This fix descends through all of the activities in a task sitting on
home and makes sure that they only keep home from showing if such
activities are not finishing and visible.

Change-Id: I607afce6b0000b4db634f2ce40a6c37fcee369d7
2013-09-30 10:34:55 -07:00
Dianne Hackborn
57d96f0e92 Merge "Fix issue #10948509: Crash in procstats when there is no data" into klp-dev 2013-09-30 00:21:48 +00:00
Dianne Hackborn
cb4285537b Fix issue #10948509: Crash in procstats when there is no data
Not dealing with the case where there is a null list.

Also fixed some bugs I found while looking at this:

- When resetting the stats, we would use a newly computed time stamp
  for the total durations rather than the one we used to reset the
  proc/service entries.  This would result in them being able to be
  slightly > 100%.
- There was a bug in how we split a single process state into its
  per-package representation, where we would but the cloned process
  state into the new package's entry (instead of properly for its
  own package entry), to be immediately overwritten by the new
  process state we make for that package.  This could result in
  bad data for processes that have multiple packages.
- There was a bug in resetting service stats, where we wouldn't
  update the overall run timestamp, allowing that time to sometimes
  be > 100%.
- There was a bug in computing pss data for processes with multiple
  packages, where the pss data was not distributed across all of the
  activity per-package process states.
- There was a bug in computing the zram information that would cause
  it to compute the wrong value, and then never be displayed.

Finally a little code refactoring so that ProcessState and ServiceState
can now share a common implementation for the table of duration values.

Change-Id: I5e0f4e9107829b81f395dad9419c33257b4f8902
2013-09-29 17:14:15 -07:00
Craig Mautner
64ce6b78cc Merge "Don't kill home process with the rest of its package." into klp-dev 2013-09-29 14:25:08 +00:00
Craig Mautner
5a0c54a511 Merge "Remove home package name methods." into klp-dev 2013-09-29 14:24:28 +00:00
Craig Mautner
8025935573 Remove home package name methods.
Do not use the shortcut of the package name to identify the home
activity.

Fixes bug 10963726.
Fixes bug 10920950.

Change-Id: I725781a26672b055a816994aee6ea458a7f07c88
2013-09-28 13:49:16 -07:00
Craig Mautner
f31ea07d64 Don't kill home process with the rest of its package.
Killing the GEL search results was killing everything in its package.
This fix keeps the home process from being killed when a task in its
package is killed.

Fixes bug 10927223.

Change-Id: I56e75f0a0118885a1604cbd70320bbdb4f8cf1a2
2013-09-28 13:46:38 -07:00
Craig Mautner
16e6e203c0 Merge "Centralize handleAppDied and fix return to home." into klp-dev 2013-09-28 00:43:56 +00:00
Craig Mautner
6b74cb5df5 Centralize handleAppDied and fix return to home.
The home activity was being returned to when any activity in a task
that was launched from home crashed. If there were still activities
left in the task then the crash should have brought up those
activities next, not home.

This may be a partial fix for crashes where the back stack was showing
up under launcher icons. Bug 10858941.

Change-Id: I840a25bd8395bfce46f4e21b112d78b12884706d
2013-09-27 17:02:21 -07:00
Craig Mautner
0756632aa0 Dismiss keyguard when resuming visible activities
If an activity is visible behind the keyguard when it is launched
by another activity then there would be no call to dismissKeyguard.
Because the other activity is pausing the call to dismissKeyguard
is skipped in startActivityLocked(). And because it is already
visible the call to ActivityRecord.windowsVisible() is never made and
the call to reportActivityVisibleLocked() which calls
dismissKeyguard() is also never made.

This change recognizes when an activity is resumed and visible and
calls dismissKeyguard() in that case.

Fixes bug 10732489.

Change-Id: I3de1350a55231aaa14dadc8709fd0fcf4960742c
2013-09-26 17:41:05 -07:00
Craig Mautner
5314a40b96 Revert behavior to perform onResume.
Back out changes from CLs ag/363992 and ag/363859. These introduced
the bugs found in bug 10917435 which is now fixed. Note that backing
out these changes reintroduces bug 10732489.

Change-Id: Ic5105dd4cfc8bf79c6f06188283d1ee3680c370c
2013-09-26 14:24:02 -07:00
Jeff Sharkey
ee2f7df9ee Tighten flags enforcement, API to test Uris.
Check and throw if callers request invalid grant flags.  Add API to
test if a Uri is backend by a DocumentsProvider.

Bug: 10919391, 10935608
Change-Id: Ifa6afefb95983558c8c64dc15ddf650e9fe07080
2013-09-26 13:14:45 -07:00
Dianne Hackborn
66a9b2d739 Merge "Fix issue #10903002: com.facebook.katana keeps itself in A Services" into klp-dev 2013-09-25 23:04:50 +00:00
Dianne Hackborn
cbd9a52f25 Fix issue #10903002: com.facebook.katana keeps itself in A Services
Now when memory low, if a service's process is above
a selected pss, then the process is not allowed to go
in to the service a list.

Also simplified the normal meminfo details dump to not
include the shared dirty and shared clean sizes by
default, since these can be very confusing.  You will
still get to see them with the "-a" flag.

Finally some small steps to better managing service
processes in the LRU list, so hopefully we can some
day be better about letting them drop down in the list
when there isn't really much interesting happening in
the process.  Not yet used at this point.

Change-Id: I654bfd6d05de2a63120185ebb15ffda8cbeb5dac
2013-09-25 15:45:56 -07:00
Jeff Sharkey
e66c1778f8 Require that persistable Uri permissions be taken.
Change our Intent flag to indicate that a Uri permission grant is
persistable, but don't actually persist it until explicitly taken by
the receiving app.  This prevents apps from spamming each other if
persisted permissions aren't really required.

Remember the last time a persisted grant was taken by an app, and
use this to prune away the oldest grants when the number of grants
grows too large.  Allow apps to query persisted grants they are
holding, and allow them to release previously persisted grants. Add
public UriPermission class to return grant details and timestamp.

Track various permission strengths separately, and combine together
after each mutation pass.  Persistable grants are currently treated
like global grants, but they could be moved to have owners in the
future.  Require that grant holders trying to extend a persistable
permission actually hold a persistable permission themselves.

Bug: 10835779
Change-Id: I95b2f797c04ce7fd2612f9a644685dbd44e03759
2013-09-25 15:16:41 -07:00
Craig Mautner
8488f9fa2e Merge "Be less aggressive when not resuming top activity" into klp-dev 2013-09-25 00:28:20 +00:00