Merge "Update OWNERS for FileSystemProvider"
diff --git a/core/java/android/webkit/CookieManager.java b/core/java/android/webkit/CookieManager.java
index 20230e7..0427d10 100644
--- a/core/java/android/webkit/CookieManager.java
+++ b/core/java/android/webkit/CookieManager.java
@@ -103,15 +103,22 @@
* will be ignored if it is expired. To set multiple cookies, your application should invoke
* this method multiple times.
*
- * <p>The {@code value} parameter must follow the format of the {@code Set-Cookie} HTTP
- * response header defined by
- * <a href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03">RFC6265bis</a>.
- * This is a key-value pair of the form {@code "key=value"}, optionally followed by a list of
- * cookie attributes delimited with semicolons (ex. {@code "key=value; Max-Age=123"}). Please
- * consult the RFC specification for a list of valid attributes.
+ * <p>The {@code value} parameter must follow the format of the {@code Set-Cookie} HTTP response
+ * header. This is a key-value pair of the form {@code "key=value"}, optionally followed by a
+ * list of cookie attributes delimited with semicolons (ex. {@code "key=value; Max-Age=123"}).
+ * For the header format and attributes supported by WebView, see the <a href=
+ * "https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie">{@code Set-Cookie}
+ * documentation on MDN</a>.
*
- * <p class="note"><b>Note:</b> if specifying a {@code value} containing the {@code "Secure"}
- * attribute, {@code url} must use the {@code "https://"} scheme.
+ * <p class="note">
+ * <b>Notes:</b>
+ * <ul>
+ * <li>If specifying a {@code value} containing the {@code "Secure"} attribute,
+ * {@code url} must use the {@code "https://"} scheme.</li>
+ * <li>if specifying a {@code value} containing the {@code "Partitioned"}
+ * attribute, the cookie will be set for the top-level partition of the
+ * {@code url}.</li>
+ * </ul>
*
* @param url the URL for which the cookie is to be set
* @param value the cookie as a string, using the format of the 'Set-Cookie'
@@ -125,12 +132,12 @@
* will be ignored if it is expired. To set multiple cookies, your application should invoke
* this method multiple times.
*
- * <p>The {@code value} parameter must follow the format of the {@code Set-Cookie} HTTP
- * response header defined by
- * <a href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03">RFC6265bis</a>.
- * This is a key-value pair of the form {@code "key=value"}, optionally followed by a list of
- * cookie attributes delimited with semicolons (ex. {@code "key=value; Max-Age=123"}). Please
- * consult the RFC specification for a list of valid attributes.
+ * <p>The {@code value} parameter must follow the format of the {@code Set-Cookie} HTTP response
+ * header. This is a key-value pair of the form {@code "key=value"}, optionally followed by a
+ * list of cookie attributes delimited with semicolons (ex. {@code "key=value; Max-Age=123"}).
+ * For the header format and attributes supported by WebView, see the <a href=
+ * "https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie">{@code Set-Cookie}
+ * documentation on MDN</a>.
*
* <p>This method is asynchronous. If a {@link ValueCallback} is provided,
* {@link ValueCallback#onReceiveValue} will be called on the current
@@ -140,8 +147,15 @@
* completes or whether it succeeded, and in this case it is safe to call the method from a
* thread without a Looper.
*
- * <p class="note"><b>Note:</b> if specifying a {@code value} containing the {@code "Secure"}
- * attribute, {@code url} must use the {@code "https://"} scheme.
+ * <p class="note">
+ * <b>Notes:</b>
+ * <ul>
+ * <li>If specifying a {@code value} containing the {@code "Secure"} attribute,
+ * {@code url} must use the {@code "https://"} scheme.</li>
+ * <li>if specifying a {@code value} containing the {@code "Partitioned"}
+ * attribute, the cookie will be set for the top-level partition of the
+ * {@code url}.</li>
+ * </ul>
*
* @param url the URL for which the cookie is to be set
* @param value the cookie as a string, using the format of the 'Set-Cookie'
@@ -157,6 +171,10 @@
* "; "} characters (semicolon followed by a space). Each key-value pair will be of the form
* {@code "key=value"}.
*
+ * <p class="note">
+ * <b>Note:</b> Any cookies set with the {@code "Partitioned"} attribute will only be returned
+ * for the top-level partition of {@code url}.
+ *
* @param url the URL for which the cookies are requested
* @return value the cookies as a string, using the format of the 'Cookie'
* HTTP request header
diff --git a/data/fonts/fonts.xml b/data/fonts/fonts.xml
index c9c1af8..ab323ad 100644
--- a/data/fonts/fonts.xml
+++ b/data/fonts/fonts.xml
@@ -273,6 +273,99 @@
</family>
<alias name="source-sans-pro-semi-bold" to="source-sans-pro" weight="600"/>
+ <family name="roboto-flex">
+ <font weight="100" style="normal">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="0" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="100" />
+ </font>
+ <font weight="200" style="normal">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="0" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="200" />
+ </font>
+ <font weight="300" style="normal">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="0" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="300" />
+ </font>
+ <font weight="400" style="normal">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="0" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="400" />
+ </font>
+ <font weight="500" style="normal">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="0" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="500" />
+ </font>
+ <font weight="600" style="normal">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="0" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="600" />
+ </font>
+ <font weight="700" style="normal">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="0" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="700" />
+ </font>
+ <font weight="800" style="normal">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="0" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="800" />
+ </font>
+ <font weight="900" style="normal">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="0" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="900" />
+ </font>
+ <font weight="100" style="italic">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="-10" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="100" />
+ </font>
+ <font weight="200" style="italic">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="-10" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="200" />
+ </font>
+ <font weight="300" style="italic">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="-10" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="300" />
+ </font>
+ <font weight="400" style="italic">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="-10" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="400" />
+ </font>
+ <font weight="500" style="italic">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="-10" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="500" />
+ </font>
+ <font weight="600" style="italic">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="-10" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="600" />
+ </font>
+ <font weight="700" style="italic">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="-10" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="700" />
+ </font>
+ <font weight="800" style="italic">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="-10" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="800" />
+ </font>
+ <font weight="900" style="italic">RobotoFlex-Regular.ttf
+ <axis tag="slnt" stylevalue="-10" />
+ <axis tag="wdth" stylevalue="100" />
+ <axis tag="wght" stylevalue="900" />
+ </font>
+ </family>
+
<!-- fallback fonts -->
<family lang="und-Arab" variant="elegant">
<font weight="400" style="normal" postScriptName="NotoNaskhArabic">
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 397c704..6c79dcc 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -1342,6 +1342,10 @@
return (int)Result::INVALID_STATE;
}
+ if (mDemuxClient != NULL) {
+ mDemuxClient->setFrontendDataSourceById(feId);
+ }
+
mSharedFeId = feId;
return (int)Result::SUCCESS;
}
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/ClientProfile.java b/services/core/java/com/android/server/tv/tunerresourcemanager/ClientProfile.java
index fb9a4d4..8736c30 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/ClientProfile.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/ClientProfile.java
@@ -80,6 +80,11 @@
private Set<Integer> mShareFeClientIds = new HashSet<>();
/**
+ * Client id sharee that has shared frontend with the current client.
+ */
+ private Integer mShareeFeClientId = INVALID_RESOURCE_ID;
+
+ /**
* List of the Lnb handles that are used by the current client.
*/
private Set<Integer> mUsingLnbHandles = new HashSet<>();
@@ -223,12 +228,21 @@
return mShareFeClientIds;
}
+ public Integer getShareeFeClientId() {
+ return mShareeFeClientId;
+ }
+
+ public void setShareeFeClientId(Integer shareeFeClientId) {
+ mShareeFeClientId = shareeFeClientId;
+ }
+
/**
* Called when the client released a frontend.
*/
public void releaseFrontend() {
mUsingFrontendHandles.clear();
mShareFeClientIds.clear();
+ mShareeFeClientId = INVALID_RESOURCE_ID;
mPrimaryUsingFrontendHandle = TunerResourceManager.INVALID_RESOURCE_HANDLE;
}
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java
index 6162d716..23d727e 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java
@@ -996,9 +996,15 @@
if (DEBUG) {
Slog.d(TAG, "shareFrontend from " + selfClientId + " with " + targetClientId);
}
+ Integer shareeFeClientId = getClientProfile(selfClientId).getShareeFeClientId();
+ if (shareeFeClientId != ClientProfile.INVALID_RESOURCE_ID) {
+ getClientProfile(shareeFeClientId).stopSharingFrontend(selfClientId);
+ getClientProfile(selfClientId).releaseFrontend();
+ }
for (int feId : getClientProfile(targetClientId).getInUseFrontendHandles()) {
getClientProfile(selfClientId).useFrontend(feId);
}
+ getClientProfile(selfClientId).setShareeFeClientId(targetClientId);
getClientProfile(targetClientId).shareFrontend(selfClientId);
}
@@ -1008,6 +1014,8 @@
// change the owner of all the inUse frontend
newOwnerProfile.shareFrontend(currentOwnerId);
currentOwnerProfile.stopSharingFrontend(newOwnerId);
+ newOwnerProfile.setShareeFeClientId(ClientProfile.INVALID_RESOURCE_ID);
+ currentOwnerProfile.setShareeFeClientId(newOwnerId);
for (int inUseHandle : newOwnerProfile.getInUseFrontendHandles()) {
getFrontendResource(inUseHandle).setOwner(newOwnerId);
}
diff --git a/services/tests/PackageManagerServiceTests/server/Android.bp b/services/tests/PackageManagerServiceTests/server/Android.bp
index f1edd96..6b1d63d 100644
--- a/services/tests/PackageManagerServiceTests/server/Android.bp
+++ b/services/tests/PackageManagerServiceTests/server/Android.bp
@@ -106,6 +106,10 @@
":PackageParserTestApp5",
],
resource_zips: [":PackageManagerServiceServerTests_apks_as_resources"],
+
+ data: [
+ ":StubTestApp",
+ ],
}
// Rules to copy all the test apks to the intermediate raw resource directory
diff --git a/services/tests/PackageManagerServiceTests/server/AndroidTest.xml b/services/tests/PackageManagerServiceTests/server/AndroidTest.xml
index 869d60e..8cd4c54 100644
--- a/services/tests/PackageManagerServiceTests/server/AndroidTest.xml
+++ b/services/tests/PackageManagerServiceTests/server/AndroidTest.xml
@@ -23,6 +23,11 @@
<option name="test-file-name" value="PackageManagerServiceServerTests.apk" />
</target_preparer>
+ <!-- Load additional APKs onto device -->
+ <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
+ <option name="push" value="StubTestApp.apk->/data/local/tmp/servicestests/StubTestApp.apk"/>
+ </target_preparer>
+
<option name="test-tag" value="PackageManagerServiceServerTests" />
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="com.android.server.pm.test.service.server" />
diff --git a/services/tests/PackageManagerServiceTests/server/src/com/android/server/PackageManagerServiceTest.java b/services/tests/PackageManagerServiceTests/server/src/com/android/server/PackageManagerServiceTest.java
index b82ffb4..435f0d7 100644
--- a/services/tests/PackageManagerServiceTests/server/src/com/android/server/PackageManagerServiceTest.java
+++ b/services/tests/PackageManagerServiceTests/server/src/com/android/server/PackageManagerServiceTest.java
@@ -32,7 +32,6 @@
import android.content.IIntentReceiver;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
-import android.content.pm.PackageManagerInternal;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
@@ -70,7 +69,7 @@
@RunWith(AndroidJUnit4.class)
public class PackageManagerServiceTest {
- private static final String PACKAGE_NAME = "com.android.frameworks.servicestests";
+ private static final String PACKAGE_NAME = "com.android.server.pm.test.service.server";
private static final String TEST_DATA_PATH = "/data/local/tmp/servicestests/";
private static final String TEST_APP_APK = "StubTestApp.apk";
diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp
index 40d9948..132a1d0 100644
--- a/services/tests/servicestests/Android.bp
+++ b/services/tests/servicestests/Android.bp
@@ -102,7 +102,6 @@
data: [
":JobTestApp",
- ":StubTestApp",
":SimpleServiceTestApp1",
":SimpleServiceTestApp2",
":SimpleServiceTestApp3",
diff --git a/services/tests/servicestests/AndroidTest.xml b/services/tests/servicestests/AndroidTest.xml
index 7092092..c3be945 100644
--- a/services/tests/servicestests/AndroidTest.xml
+++ b/services/tests/servicestests/AndroidTest.xml
@@ -40,11 +40,6 @@
<option name="teardown-command" value="rm -rf /data/local/tmp/servicestests"/>
</target_preparer>
- <!-- Load additional APKs onto device -->
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="push" value="StubTestApp.apk->/data/local/tmp/servicestests/StubTestApp.apk"/>
- </target_preparer>
-
<option name="test-tag" value="FrameworksServicesTests" />
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="com.android.frameworks.servicestests" />
diff --git a/tests/DynamicCodeLoggerIntegrationTests/AndroidTest.xml b/tests/DynamicCodeLoggerIntegrationTests/AndroidTest.xml
index f8a1ec9..0ab3dfe 100644
--- a/tests/DynamicCodeLoggerIntegrationTests/AndroidTest.xml
+++ b/tests/DynamicCodeLoggerIntegrationTests/AndroidTest.xml
@@ -22,6 +22,9 @@
<option name="test-suite-tag" value="apct"/>
<option name="test-tag" value="DynamicCodeLoggerIntegrationTests"/>
+ <!-- This test make uses of the event log, make sure we capture it. -->
+ <option name="logcat-options" value="-b all" />
+
<test class="com.android.tradefed.testtype.AndroidJUnitTest">
<option name="package" value="com.android.frameworks.dynamiccodeloggertest"/>
<option name="runner" value="androidx.test.runner.AndroidJUnitRunner"/>