Commit Graph

1153 Commits

Author SHA1 Message Date
Dianne Hackborn
33c7520b68 am 0b1ec016: am 19d79659: Merge "Fix issue #11374840: adb shell am startservice not working any more" into klp-dev
* commit '0b1ec0165a5dc98bc82670288894af446ff5bcaa':
  Fix issue #11374840: adb shell am startservice not working any more
2013-10-25 15:37:30 -07:00
Dianne Hackborn
de0e83bc39 Fix issue #11374840: adb shell am startservice not working any more
The startService() and stopServie() calls had a redundant check for
the incoming user ID being valid, but with its own custom implementation
that doesn't match the normal handleIncomingUser flow.  In fact, for
both of these we are going to do handleIncomingUser anyway when we get
to retrieveServiceLocked(), so there was just no need for this.

Change-Id: I14409a03781a14a5f1a786aceb31dcc77efb062c
2013-10-25 14:34:18 -07:00
Dianne Hackborn
b333244796 am e6a8ccb3: am 2d76a1a0: Merge "Fix issue #11323037: Android apk incorrectly marked as running in app processes" into klp-dev
* commit 'e6a8ccb3d11a3af2a2d9f0077965d05754abcff3':
  Fix issue #11323037: Android apk incorrectly marked as running in app processes
2013-10-23 10:49:52 -07:00
Dianne Hackborn
237cefbcee Fix issue #11323037: Android apk incorrectly marked as running in app processes
The android package is now a special case, not being added to the package list
when creating a multi-process component.  There is no need, since this package
is actually the framework itself which must be loaded in every process.

Also cleaned up some of the procstats dump output to help see what is going
on here.

Change-Id: If65d35ecd562f3154bdebfded69c454af6ce8c96
2013-10-22 19:15:49 -07:00
Dianne Hackborn
25e7240e99 am 519d8895: am 9c446d82: Merge "Fix issue #11217255: Setup Wizard ANR when adding new user profile from settings." into klp-dev
* commit '519d8895a29dd78f5250ee2ececac4e03a6f5b70':
  Fix issue #11217255: Setup Wizard ANR when adding new user profile from settings.
2013-10-16 14:05:52 -07:00
Dianne Hackborn
2a272d42a3 Fix issue #11217255: Setup Wizard ANR when adding new user profile from settings.
Two problems addressed here:

- If a call to startActivity() comes in on an activity that is finishing, we can
  end up putting the new activity in a stack that isn't actually in use any more
  (if the finishing activity is the last one on that stack).  This is a bad case,
  anyway, so if this happen the treat it as not being called on an existing
  activity and switch to NEW_TASK to find a task for it.

- There was a bug in handling PACKAGE_CHANGE broadcasts that would result in the
  app's processes being killed, even though the cleanup through the activities
  was done.  This could leave the activity stack in a bad state.  Fix this to
  correctly provide an app id for the changing package so that its processes are
  killed.

Change-Id: Iece04e0cf95025c3d30353d68bf3d14fd39d44c3
2013-10-16 13:34:33 -07:00
Craig Mautner
67122f46be am 504b6045: am 4270ebc7: Merge "Remove debug logging." into klp-dev
* commit '504b60453f30b78da3a13e022a1d8a7badf26ae1':
  Remove debug logging.
2013-10-15 17:33:26 -07:00
Craig Mautner
a7f2bd4da7 Remove debug logging.
Change-Id: I5d7c11e8b8525bfc8eb87bb0fff4f71337b4a39d
2013-10-15 16:13:50 -07:00
Jeff Sharkey
7a531be13b am 94758633: am b5da7b23: Merge "Throw when taking non-existant Uri permission." into klp-dev
* commit '94758633943e77c820fd77f96329848cc7f31230':
  Throw when taking non-existant Uri permission.
2013-10-14 10:29:15 -07:00
Jeff Sharkey
b5da7b23df Merge "Throw when taking non-existant Uri permission." into klp-dev 2013-10-14 17:24:14 +00:00
Jeff Sharkey
582f712406 Throw when taking non-existant Uri permission.
Bug: 11080911
Change-Id: Ib73a20f497b447aebe69c88266369605e69a7812
2013-10-14 10:01:33 -07:00
Craig Mautner
272b0929a9 am 6b5fc882: am 166434ec: Merge "When removing a task that was on home, put home on top." into klp-dev
* commit '6b5fc882d1823c8922860ef284442442b635111b':
  When removing a task that was on home, put home on top.
2013-10-11 19:48:12 -07:00
Craig Mautner
8e5695778f When removing a task that was on home, put home on top.
Killing an app that was launched from home was not relaunching home.
Previous situations relaunched the next app (i.e. home) based on the
task flag. However, when an app dies the relaunch is deferred until
the TaskRecord has long been forgotten. This fix rearranges the stacks
immediately upon the TaskRecord being removed from the stack. Then the
next resumeTopActivities() call will start the home task.

Fixes bug 11189555.

Change-Id: I0e09350a7db55ea8b38cce7bf4b69923a6b99494
2013-10-11 17:36:59 -07:00
Craig Mautner
7bc5cdc0e9 am 4732660a: am ab3276dd: Merge "Make an exception for screenshot optimization." into klp-dev
* commit '4732660a50f3373812e8ae55cbda264d469bfded':
  Make an exception for screenshot optimization.
2013-10-11 12:50:05 -07:00
Craig Mautner
3474040486 Make an exception for screenshot optimization.
Screenshots were not being made for tasks with the flag
FLAG_EXCLUDE_FROM_RECENTS set. But if the task is in the foreground
the shot should be taken even with the flag set. This fix adds a test
for tasks being in the foreground.

Fixes bug 11170567.

Change-Id: If42db7f43ed1dd8d2b16b68824adc813b31c94f0
2013-10-11 11:05:35 -07:00
Dianne Hackborn
16b43a7791 am 17c21a30: am 2c09e8cd: Merge "Fix issue #11157301: Bad process stats when apps are binding to long-running services" into klp-dev
* commit '17c21a3007a2321ae8805a397c3566411a60cba0':
  Fix issue #11157301: Bad process stats when apps are binding to long-running services
2013-10-10 16:21:39 -07:00
Dianne Hackborn
2c09e8cdf6 Merge "Fix issue #11157301: Bad process stats when apps are binding to long-running services" into klp-dev 2013-10-10 23:11:59 +00:00
Dianne Hackborn
32366b29c4 Fix issue #11157301: Bad process stats when apps are binding to long-running services
We now treat PROCESS_STATE_TOP more specially.  When a process has another
client bound to it that is TOP, it will only allow itself to go in the TOP
state if it is not already running for another significant reason.

Change-Id: Ia3856406bd481bf6e98d55100a5513ccf4060e0d
2013-10-10 16:10:32 -07:00
Jeff Sharkey
852c7b15a5 am 6743c171: am 635892fe: Merge "Guard against NPE when using existing process." into klp-dev
* commit '6743c1712e1051ae99639a7d90912c54a0be8b24':
  Guard against NPE when using existing process.
2013-10-10 10:21:29 -07:00
Jeff Sharkey
2ffa50df6f Guard against NPE when using existing process.
Bug: 11167561
Change-Id: I51ca7daa71504119fb64bc7bc2b7da4e03b13861
2013-10-10 09:52:48 -07:00
Jeff Sharkey
45d2358510 am 11591b73: am b3da3db3: Merge "Surface outgoing Uri permission grants." into klp-dev
* commit '11591b738d51e0d8e87e8825dc2fc7eaa517daa3':
  Surface outgoing Uri permission grants.
2013-10-09 15:12:35 -07:00
Jeff Sharkey
b3da3db34a Merge "Surface outgoing Uri permission grants." into klp-dev 2013-10-09 22:07:11 +00:00
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
Jeff Sharkey
cb8c4501d4 am d92dd8ff: am fcd8a39e: Merge "Install providers enabled after app started." into klp-dev
* commit 'd92dd8ffcf3e7bce7d331e7ae9101ccba02baa67':
  Install providers enabled after app started.
2013-10-09 10:53:35 -07:00
Adam Lesinski
3a18a92ee5 am 92fba41f: am 9d958f69: Merge "Allow killed task to remove itself" into klp-dev
* commit '92fba41f3c64407f6827399bfa40bbcf6eac9212':
  Allow killed task to remove itself
2013-10-09 10:48:47 -07:00
Jeff Sharkey
fcd8a39edb Merge "Install providers enabled after app started." into klp-dev 2013-10-09 17:45:11 +00:00
Jeff Sharkey
dd97f4233f Install providers enabled after app started.
When an app has already been started, and a ContentProvider component
is enabled with DONT_KILL_APP, use the existing ProcessRecord to
install the provider.

Bug: 11118692
Change-Id: I990f18b337eb19768ee1db895f1e2eb982046cce
2013-10-08 17:02:26 -07:00
Adam Lesinski
aa52437745 Allow killed task to remove itself
When killing a task from the recents UI, the activities in
the task would be scheduled for destruction, and the task would
be forcefully removed from the ActivityStack, destroying the
ActivityStack in the process if this was the last task. Since the
ActivityStack was removed, any activities calling back to report
their onDestroy was called (or any timeouts that trigger if
activities fail to do this) would be dropped and certain cleanup
routines would not be called.

Tasks and their ActivityStacks are removed automatically when the
activities within them are removed, so this manual removal was
preventing the cleanup routines from running.

bug:10920157
Change-Id: Ied9d4f8fea761a373a9a80a0dfe810590ab411d8
2013-10-08 15:41:18 -07:00
Craig Mautner
4a38b0ab92 am 972a9855: am b729e995: Merge "Yet more debugging for 10858941." into klp-dev
* commit '972a985590266e457d4a13400dfb5797d7b85908':
  Yet more debugging for 10858941.
2013-10-07 17:21:41 -07:00
Craig Mautner
e2dd83a5b4 Yet more debugging for 10858941.
Change-Id: I258957044cb1a8331124f6abbe53428429c33355
2013-10-07 17:01:41 -07:00
Craig Mautner
1a205e9a0c am 846a482a: am ade5f387: Merge "Revert to jb-mr2 handling of app died." into klp-dev
* commit '846a482a0d891a799bfd6e9b00ed5b401a791b30':
  Revert to jb-mr2 handling of app died.
2013-10-06 18:19:03 -07:00
Dianne Hackborn
c9d481218b am 7ac5a9ac: am 4bc5909a: Merge "Fix issue #11050678: Large memory leak in ActivityStack" into klp-dev
* commit '7ac5a9acb8c110620eac04db1eabecbbf64c0744':
  Fix issue #11050678: Large memory leak in ActivityStack
2013-10-06 18:18:58 -07:00
Craig Mautner
2478281de3 am 3cb25e91: am 1703fd87: Merge "Resume user where they left off." into klp-dev
* commit '3cb25e91b419d4f18fec8ea2ceec33eb0915096a':
  Resume user where they left off.
2013-10-06 18:18:46 -07: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
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
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
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
John Reck
cd6a2d3079 am 47dc3248: am 9a93f6f0: Merge "Reduce max recents on lowram" into klp-dev
* commit '47dc3248e09002a5a55dc427f752da8ebd623868':
  Reduce max recents on lowram
2013-10-03 15:38:38 -07: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
Dianne Hackborn
1d536848af am 239dc099: am 164371fb: Fix issue #11005453: [SUW] G+ profile creation for new user broken
* commit '239dc099a0d56eba3c7a537df23ef3c5046b2667':
  Fix issue #11005453: [SUW] G+ profile creation for new user broken
2013-10-02 09:37:26 -07:00
Craig Mautner
c5495c93e5 am eba784f0: am 3c98926b: Merge "Add a timeout for removing starting windows." into klp-dev
* commit 'eba784f0847a1d7c747603994d09937dcfdc0671':
  Add a timeout for removing starting windows.
2013-10-02 09:35:49 -07:00
Jeff Sharkey
7f60e70e81 am 666b998b: am 364fc14f: Merge "Detect wedged ContentProviders, treat as ANR." into klp-dev
* commit '666b998b67fe7bb6fc11dd6d683a18b5690afd39':
  Detect wedged ContentProviders, treat as ANR.
2013-10-02 09:35:14 -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
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
Dianne Hackborn
e2a67ac27b am 57d96f0e: Merge "Fix issue #10948509: Crash in procstats when there is no data" into klp-dev
* commit '57d96f0e92e8af842878660a8271e65cec2426d3':
  Fix issue #10948509: Crash in procstats when there is no data
2013-09-30 17:10:55 -07:00
Craig Mautner
5b291397e1 am 64ce6b78: Merge "Don\'t kill home process with the rest of its package." into klp-dev
* commit '64ce6b78ccb8522a6147843f4206a5b128571b03':
  Don't kill home process with the rest of its package.
2013-09-30 17:10:39 -07:00
Craig Mautner
75a3b301e9 am 5a0c54a5: Merge "Remove home package name methods." into klp-dev
* commit '5a0c54a5112612777becd7a0f12f74cf720c1b7f':
  Remove home package name methods.
2013-09-30 17:10:36 -07:00