Backed out changeset 3339b501299a (bug 1703976) for causing geckoview failures CLOSED TREE

This commit is contained in:
Noemi Erli 2021-09-28 02:38:01 +03:00
parent 13e6ed006a
commit 5ae6eff43a
12 changed files with 10 additions and 494 deletions

View file

@ -39,7 +39,7 @@ class LoginStorageDelegate {
hint |= LoginStorageHint.GENERATED;
}
return {
// Sync with PromptController
// Sync with GeckoSession.handlePromptEvent.
type: "Autocomplete:Save:Login",
hint,
logins: aLogins,

View file

@ -186,10 +186,6 @@ package org.mozilla.geckoview {
method @AnyThread @NonNull public Autocomplete.CreditCard.Builder number(@Nullable String);
}
public static class Autocomplete.CreditCardSaveOption extends Autocomplete.SaveOption {
ctor public CreditCardSaveOption(@NonNull Autocomplete.CreditCard);
}
public static class Autocomplete.CreditCardSelectOption extends Autocomplete.SelectOption {
ctor public CreditCardSelectOption(@NonNull Autocomplete.CreditCard);
}
@ -263,7 +259,6 @@ package org.mozilla.geckoview {
method @Nullable @UiThread default public GeckoResult<Autocomplete.Address[]> onAddressFetch();
method @UiThread default public void onAddressSave(@NonNull Autocomplete.Address);
method @Nullable @UiThread default public GeckoResult<Autocomplete.CreditCard[]> onCreditCardFetch();
method @UiThread default public void onCreditCardSave(@NonNull Autocomplete.CreditCard);
method @Nullable @UiThread default public GeckoResult<Autocomplete.LoginEntry[]> onLoginFetch(@NonNull String);
method @UiThread default public void onLoginSave(@NonNull Autocomplete.LoginEntry);
method @UiThread default public void onLoginUsed(@NonNull Autocomplete.LoginEntry, int);
@ -1103,7 +1098,6 @@ package org.mozilla.geckoview {
method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onButtonPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.ButtonPrompt);
method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onChoicePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.ChoicePrompt);
method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onColorPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.ColorPrompt);
method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onCreditCardSave(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.CreditCardSaveOption>);
method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onCreditCardSelect(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.CreditCardSelectOption>);
method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onDateTimePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.DateTimePrompt);
method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onFilePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.FilePrompt);

View file

@ -23,7 +23,6 @@ import org.mozilla.geckoview.GeckoSession.PromptDelegate.AutocompleteRequest
import org.mozilla.geckoview.Autocomplete.Address
import org.mozilla.geckoview.Autocomplete.AddressSelectOption
import org.mozilla.geckoview.Autocomplete.CreditCard
import org.mozilla.geckoview.Autocomplete.CreditCardSaveOption
import org.mozilla.geckoview.Autocomplete.CreditCardSelectOption
import org.mozilla.geckoview.Autocomplete.LoginEntry
import org.mozilla.geckoview.Autocomplete.LoginSaveOption
@ -104,7 +103,7 @@ class AutocompleteTest : BaseSessionTest() {
val name = arrayOf("Peter Parker", "John Doe")
val number = arrayOf("1234-1234-1234-1234", "2345-2345-2345-2345")
val guid = arrayOf("test-guid1", "test-guid2")
val expMonth = arrayOf("04", "08")
val expMonth = arrayOf("Apr", "Aug")
val expYear = arrayOf("22", "23")
val savedCC = arrayOf(
CreditCard.Builder()
@ -133,9 +132,6 @@ class AutocompleteTest : BaseSessionTest() {
: GeckoResult<Array<CreditCard>>? {
return GeckoResult.fromValue(savedCC)
}
@AssertCalled(false)
override fun onCreditCardSave(creditCard: CreditCard) {}
})
mainSession.delegateUntilTestEnd(object : PromptDelegate {
@ -345,6 +341,7 @@ class AutocompleteTest : BaseSessionTest() {
checkAddressesForCorrectness(savedAddresses.toTypedArray(), savedAddress)
}
@Test
fun addressSelectAndFillMultipleAddresses() {
val givenNames = arrayOf("Peter", "Wade")
@ -693,340 +690,6 @@ class AutocompleteTest : BaseSessionTest() {
sessionRule.waitForResult(saveHandled2)
}
@Test
fun creditCardSaveAccept() {
val ccName = "MyCard"
val ccNumber = "5105-1051-0510-5100"
val ccExpMonth = "06"
val ccExpYear = "24"
mainSession.loadTestPath(CC_FORM_HTML_PATH)
mainSession.waitForPageStop()
val saveHandled = GeckoResult<Void>()
sessionRule.delegateUntilTestEnd(object : StorageDelegate {
@AssertCalled
override fun onCreditCardSave(creditCard: CreditCard) {
assertThat("Credit card name should match", creditCard.name, equalTo(ccName))
assertThat("Credit card number should match", creditCard.number, equalTo(ccNumber))
assertThat("Credit card expiration month should match", creditCard.expirationMonth, equalTo(ccExpMonth))
assertThat("Credit card expiration year should match", creditCard.expirationYear, equalTo(ccExpYear))
saveHandled.complete(null)
}
})
sessionRule.delegateDuringNextWait(object : PromptDelegate {
@AssertCalled
override fun onCreditCardSave(
session: GeckoSession,
request: AutocompleteRequest<CreditCardSaveOption>)
: GeckoResult<PromptDelegate.PromptResponse>? {
assertThat("Session should not be null", session, notNullValue())
val option = request.options[0]
val cc = option.value
assertThat("Credit card should not be null", cc, notNullValue())
assertThat(
"Credit card name should match",
cc.name,
equalTo(ccName))
assertThat(
"Credit card number should match",
cc.number,
equalTo(ccNumber))
assertThat(
"Credit card expiration month should match",
cc.expirationMonth,
equalTo(ccExpMonth))
assertThat(
"Credit card expiration year should match",
cc.expirationYear,
equalTo(ccExpYear))
return GeckoResult.fromValue(request.confirm(option))
}
})
// Enter the card values
mainSession.evaluateJS("document.querySelector('#name').focus()")
mainSession.evaluateJS("document.querySelector('#name').value = '${ccName}'")
mainSession.evaluateJS("document.querySelector('#number').value = '${ccNumber}'")
mainSession.evaluateJS("document.querySelector('#expMonth').value = '${ccExpMonth}'")
mainSession.evaluateJS("document.querySelector('#expYear').value = '${ccExpYear}'")
// Submit the form
mainSession.evaluateJS("document.querySelector('form').submit()")
sessionRule.waitForResult(saveHandled)
}
@Test
fun creditCardSaveDismiss() {
val ccName = "MyCard"
val ccNumber = "5105-1051-0510-5100"
val ccExpMonth = "06"
val ccExpYear = "24"
mainSession.loadTestPath(CC_FORM_HTML_PATH)
mainSession.waitForPageStop()
sessionRule.delegateDuringNextWait(object : StorageDelegate {
@AssertCalled
override fun onCreditCardFetch(): GeckoResult<Array<CreditCard>>? {
return null
}
})
sessionRule.delegateUntilTestEnd(object : StorageDelegate {
@AssertCalled(count = 0)
override fun onCreditCardSave(creditCard: CreditCard) {}
})
// Enter the card values
mainSession.evaluateJS("document.querySelector('#name').focus()")
mainSession.evaluateJS("document.querySelector('#name').value = '${ccName}'")
mainSession.evaluateJS("document.querySelector('#number').value = '${ccNumber}'")
mainSession.evaluateJS("document.querySelector('#expMonth').value = '${ccExpMonth}'")
mainSession.evaluateJS("document.querySelector('#expYear').value = '${ccExpYear}'")
// Submit the form
mainSession.evaluateJS("document.querySelector('form').submit()")
sessionRule.waitUntilCalled(object : PromptDelegate {
@AssertCalled
override fun onCreditCardSave(
session: GeckoSession,
request: AutocompleteRequest<CreditCardSaveOption>)
: GeckoResult<PromptDelegate.PromptResponse>? {
assertThat("Session should not be null", session, notNullValue())
val option = request.options[0]
val cc = option.value
assertThat("Credit card should not be null", cc, notNullValue())
assertThat(
"Credit card name should match",
cc.name,
equalTo(ccName))
assertThat(
"Credit card number should match",
cc.number,
equalTo(ccNumber))
assertThat(
"Credit card expiration month should match",
cc.expirationMonth,
equalTo(ccExpMonth))
assertThat(
"Credit card expiration year should match",
cc.expirationYear,
equalTo(ccExpYear))
return GeckoResult.fromValue(request.dismiss())
}
})
}
@Test
fun creditCardSaveModifyAccept() {
val ccName = "MyCard"
val ccNumber = "5105-1051-0510-5100"
val ccExpMonth = "06"
val ccExpYearNew = "26"
val ccExpYear = "24"
mainSession.loadTestPath(CC_FORM_HTML_PATH)
mainSession.waitForPageStop()
val saveHandled = GeckoResult<Void>()
sessionRule.delegateUntilTestEnd(object : StorageDelegate {
@AssertCalled
override fun onCreditCardSave(creditCard: CreditCard) {
assertThat("Credit card name should match", creditCard.name, equalTo(ccName))
assertThat("Credit card number should match", creditCard.number, equalTo(ccNumber))
assertThat("Credit card expiration month should match", creditCard.expirationMonth, equalTo(ccExpMonth))
assertThat("Credit card expiration year should match", creditCard.expirationYear, equalTo(ccExpYearNew))
saveHandled.complete(null)
}
})
sessionRule.delegateDuringNextWait(object : PromptDelegate {
@AssertCalled
override fun onCreditCardSave(
session: GeckoSession,
request: AutocompleteRequest<CreditCardSaveOption>)
: GeckoResult<PromptDelegate.PromptResponse>? {
assertThat("Session should not be null", session, notNullValue())
val option = request.options[0]
val cc = option.value
assertThat("Credit card should not be null", cc, notNullValue())
assertThat(
"Credit card name should match",
cc.name,
equalTo(ccName))
assertThat(
"Credit card number should match",
cc.number,
equalTo(ccNumber))
assertThat(
"Credit card expiration month should match",
cc.expirationMonth,
equalTo(ccExpMonth))
assertThat(
"Credit card expiration year should match",
cc.expirationYear,
equalTo(ccExpYear))
val modifiedCreditCard = CreditCard.Builder()
.name(cc.name)
.number(cc.number)
.expirationMonth(cc.expirationMonth)
.expirationYear(ccExpYearNew)
.build()
return GeckoResult.fromValue(request.confirm(CreditCardSaveOption(modifiedCreditCard)))
}
})
// Enter the card values
mainSession.evaluateJS("document.querySelector('#name').focus()")
mainSession.evaluateJS("document.querySelector('#name').value = '${ccName}'")
mainSession.evaluateJS("document.querySelector('#number').value = '${ccNumber}'")
mainSession.evaluateJS("document.querySelector('#expMonth').value = '${ccExpMonth}'")
mainSession.evaluateJS("document.querySelector('#expYear').value = '${ccExpYear}'")
// Submit the form
mainSession.evaluateJS("document.querySelector('form').submit()")
sessionRule.waitForResult(saveHandled)
}
@Test
fun creditCardUpdateAccept() {
val ccName = "MyCard"
val ccNumber1 = "5105-1051-0510-5100"
val ccExpMonth1 = "06"
val ccExpYear1 = "24"
val ccNumber2 = "4111-1111-1111-1111"
val ccExpMonth2 = "11"
val ccExpYear2 = "21"
val savedCreditCards = mutableListOf<CreditCard>()
mainSession.loadTestPath(CC_FORM_HTML_PATH)
mainSession.waitForPageStop()
val saveHandled1 = GeckoResult<Void>()
val saveHandled2 = GeckoResult<Void>()
sessionRule.delegateUntilTestEnd(object : StorageDelegate {
@AssertCalled
override fun onCreditCardFetch(): GeckoResult<Array<CreditCard>>? {
return GeckoResult.fromValue(savedCreditCards.toTypedArray())
}
@AssertCalled(count = 2)
override fun onCreditCardSave(creditCard: CreditCard) {
assertThat(
"Credit card name should match",
creditCard.name,
equalTo(ccName))
assertThat(
"Credit card number should match",
creditCard.number,
equalTo(forEachCall(ccNumber1, ccNumber2)))
assertThat(
"Credit card expiration month should match",
creditCard.expirationMonth,
equalTo(forEachCall(ccExpMonth1, ccExpMonth2)))
assertThat(
"Credit card expiration year should match",
creditCard.expirationYear,
equalTo(forEachCall(ccExpYear1, ccExpYear2)))
val savedCC = CreditCard.Builder()
.guid("test1")
.name(creditCard.name)
.number(creditCard.number)
.expirationMonth(creditCard.expirationMonth)
.expirationYear(creditCard.expirationYear)
.build()
savedCreditCards.add(savedCC)
if (sessionRule.currentCall.counter == 1) {
saveHandled1.complete(null)
} else if (sessionRule.currentCall.counter == 2) {
saveHandled2.complete(null)
}
}
})
sessionRule.delegateUntilTestEnd(object : PromptDelegate {
@AssertCalled(count = 2)
override fun onCreditCardSave(
session: GeckoSession,
request: AutocompleteRequest<CreditCardSaveOption>)
: GeckoResult<PromptDelegate.PromptResponse>? {
assertThat("Session should not be null", session, notNullValue())
val option = request.options[0]
val cc = option.value
assertThat("Credit card should not be null", cc, notNullValue())
assertThat(
"Credit card name should match",
cc.name,
equalTo(ccName))
assertThat(
"Credit card number should match",
cc.number,
equalTo(forEachCall(ccNumber1, ccNumber2)))
assertThat(
"Credit card expiration month should match",
cc.expirationMonth,
equalTo(forEachCall(ccExpMonth1, ccExpMonth2)))
assertThat(
"Credit card expiration year should match",
cc.expirationYear,
equalTo(forEachCall(ccExpYear1, ccExpYear2)))
return GeckoResult.fromValue(request.confirm(option))
}
})
// Enter the card values
mainSession.evaluateJS("document.querySelector('#name').focus()")
mainSession.evaluateJS("document.querySelector('#name').value = '${ccName}'")
mainSession.evaluateJS("document.querySelector('#number').value = '${ccNumber1}'")
mainSession.evaluateJS("document.querySelector('#expMonth').value = '${ccExpMonth1}'")
mainSession.evaluateJS("document.querySelector('#expYear').value = '${ccExpYear1}'")
// Submit the form
mainSession.evaluateJS("document.querySelector('form').submit()")
sessionRule.waitForResult(saveHandled1)
// Update credit card
val session2 = sessionRule.createOpenSession()
session2.loadTestPath(CC_FORM_HTML_PATH)
session2.waitForPageStop()
session2.evaluateJS("document.querySelector('#name').focus()")
session2.evaluateJS("document.querySelector('#name').value = '${ccName}'")
session2.evaluateJS("document.querySelector('#number').value = '${ccNumber2}'")
session2.evaluateJS("document.querySelector('#expMonth').value = '${ccExpMonth2}'")
session2.evaluateJS("document.querySelector('#expYear').value = '${ccExpYear2}'")
session2.evaluateJS("document.querySelector('form').submit()")
sessionRule.waitForResult(saveHandled2)
}
fun testLoginUsed(autofillEnabled: Boolean) {
sessionRule.setPrefsUntilTestEnd(mapOf(
// Enable login management since it's disabled in automation.

View file

@ -210,12 +210,8 @@ public class Autocomplete {
bundle.putString(GUID_KEY, guid);
bundle.putString(NAME_KEY, name);
bundle.putString(NUMBER_KEY, number);
if (expirationMonth != null) {
bundle.putString(EXP_MONTH_KEY, expirationMonth);
}
if (expirationYear != null) {
bundle.putString(EXP_YEAR_KEY, expirationYear);
}
bundle.putString(EXP_MONTH_KEY, expirationMonth);
bundle.putString(EXP_YEAR_KEY, expirationYear);
return bundle;
}
@ -953,17 +949,6 @@ public class Autocomplete {
@UiThread
default void onLoginSave(@NonNull final LoginEntry login) {}
/**
* Request saving or updating of the given credit card entry.
* This is triggered by confirming a
* {@link GeckoSession.PromptDelegate#onCreditCardSave onCreditCardSave} request.
*
* @param creditCard The {@link CreditCard} as confirmed by the prompt
* request.
*/
@UiThread
default void onCreditCardSave(@NonNull CreditCard creditCard) {}
/**
* Request saving or updating of the given address entry.
* This is triggered by confirming a
@ -1189,40 +1174,6 @@ public class Autocomplete {
}
}
/**
* Holds information required to process credit card saving requests.
*/
public static class CreditCardSaveOption extends SaveOption<CreditCard> {
/**
* Construct a credit card save option.
*
* @param value The {@link CreditCard} credit card entry to be saved.
* @param hint The {@link Hint} detailing the type of the option.
*/
/* package */ CreditCardSaveOption(
final @NonNull CreditCard value,
final @SaveOptionHint int hint) {
super(value, hint);
}
/**
* Construct a credit card save option.
*
* @param value The {@link CreditCard} credit card entry to be saved.
*/
public CreditCardSaveOption(final @NonNull CreditCard value) {
this(value, Hint.NONE);
}
@Override
/* package */ @NonNull GeckoBundle toBundle() {
final GeckoBundle bundle = new GeckoBundle(2);
bundle.putBundle(VALUE_KEY, value.toBundle());
bundle.putInt(HINT_KEY, hint);
return bundle;
}
}
/**
* Holds information required to process login selection requests.
*/
@ -1398,8 +1349,6 @@ public class Autocomplete {
"GeckoView:Autocomplete:Fetch:Address";
private static final String SAVE_LOGIN_EVENT =
"GeckoView:Autocomplete:Save:Login";
private static final String SAVE_CREDIT_CARD_EVENT =
"GeckoView:Autocomplete:Save:CreditCard";
private static final String SAVE_ADDRESS_EVENT =
"GeckoView:Autocomplete:Save:Address";
private static final String USED_LOGIN_EVENT =
@ -1416,7 +1365,6 @@ public class Autocomplete {
FETCH_CREDIT_CARD_EVENT,
FETCH_ADDRESS_EVENT,
SAVE_LOGIN_EVENT,
SAVE_CREDIT_CARD_EVENT,
SAVE_ADDRESS_EVENT,
USED_LOGIN_EVENT);
}
@ -1428,7 +1376,6 @@ public class Autocomplete {
FETCH_CREDIT_CARD_EVENT,
FETCH_ADDRESS_EVENT,
SAVE_LOGIN_EVENT,
SAVE_CREDIT_CARD_EVENT,
SAVE_ADDRESS_EVENT,
USED_LOGIN_EVENT);
}
@ -1544,11 +1491,6 @@ public class Autocomplete {
final LoginEntry login = new LoginEntry(loginBundle);
mDelegate.onLoginSave(login);
} else if (SAVE_CREDIT_CARD_EVENT.equals(event)) {
final GeckoBundle creditCardBundle = message.getBundle("creditCard");
final CreditCard creditCard = new CreditCard(creditCardBundle);
mDelegate.onCreditCardSave(creditCard);
} else if (SAVE_ADDRESS_EVENT.equals(event)) {
final GeckoBundle addressBundle = message.getBundle("address");
final Address address = new Address(addressBundle);

View file

@ -4994,35 +4994,6 @@ public class GeckoSession {
return null;
}
/**
* Handle a credit card save prompt request.
* This is triggered by the user entering new or modified credit card
* credentials into a form.
*
* @param session The {@link GeckoSession} that triggered the request.
* @param request The {@link AutocompleteRequest} containing the request
* details.
*
* @return A {@link GeckoResult} resolving to a {@link PromptResponse}.
*
* Confirm the request with an {@link Autocomplete.Option}
* to trigger a
* {@link Autocomplete.StorageDelegate#onCreditCardSave} request
* to save the given selection.
* The confirmed selection may be an entry out of the request's
* options, a modified option, or a freshly created credit
* card entry.
*
* Dismiss the request to deny the saving request.
*/
@UiThread
default @Nullable GeckoResult<PromptResponse> onCreditCardSave(
@NonNull final GeckoSession session,
@NonNull final AutocompleteRequest<Autocomplete.CreditCardSaveOption>
request) {
return null;
}
/**
* Handle a login selection prompt request.
* This is triggered by the user focusing on a login username field.

View file

@ -9,7 +9,6 @@ import org.mozilla.gecko.util.GeckoBundle;
import org.mozilla.geckoview.Autocomplete.AddressSaveOption;
import org.mozilla.geckoview.Autocomplete.AddressSelectOption;
import org.mozilla.geckoview.Autocomplete.CreditCardSelectOption;
import org.mozilla.geckoview.Autocomplete.CreditCardSaveOption;
import org.mozilla.geckoview.Autocomplete.LoginSaveOption;
import org.mozilla.geckoview.Autocomplete.LoginSelectOption;
import org.mozilla.geckoview.GeckoSession.PromptDelegate.AutocompleteRequest;
@ -452,41 +451,6 @@ import java.util.Map;
}
}
private static final class CreditCardSaveHandler
implements PromptHandler<AutocompleteRequest<CreditCardSaveOption>> {
@Override
public AutocompleteRequest<CreditCardSaveOption> newPrompt(
final GeckoBundle info,
final Observer observer) {
final int hint = info.getInt("hint");
final GeckoBundle[] creditCardBundles =
info.getBundleArray("creditCards");
if (creditCardBundles == null) {
return null;
}
final Autocomplete.CreditCardSaveOption[] options =
new Autocomplete.CreditCardSaveOption[creditCardBundles.length];
for (int i = 0; i < options.length; ++i) {
options[i] = new Autocomplete.CreditCardSaveOption(
new Autocomplete.CreditCard(creditCardBundles[i]),
hint);
}
return new PromptDelegate.AutocompleteRequest<>(info.getString("id"), options, observer);
}
@Override
public GeckoResult<PromptResponse> callDelegate(
final AutocompleteRequest<CreditCardSaveOption> prompt,
final GeckoSession session,
final PromptDelegate delegate) {
return delegate.onCreditCardSave(session, prompt);
}
}
private static final class AddressSaveHandler
implements PromptHandler<AutocompleteRequest<AddressSaveOption>> {
@Override
@ -648,7 +612,6 @@ import java.util.Map;
sPromptHandlers.register(new RepostHandler(), "repost");
sPromptHandlers.register(new ShareHandler(), "share");
sPromptHandlers.register(new LoginSaveHandler(), "Autocomplete:Save:Login");
sPromptHandlers.register(new CreditCardSaveHandler(), "Autocomplete:Save:CreditCard");
sPromptHandlers.register(new AddressSaveHandler(),
"Autocomplete:Save:Address");
sPromptHandlers.register(new LoginSelectHandler(),

View file

@ -13,9 +13,6 @@ exclude: true
⚠️ breaking change and deprecation notices
## v94
- Extended [`Autocomplete`][78.7] API to support credit card saving.
## v93
- Removed deprecated ['Autocomplete.LoginStorageDelegate'][78.8].
- Removed deprecated [`GeckoRuntime.getProfileDir`][90.5].
@ -1046,4 +1043,4 @@ to allow adding gecko profiler markers.
[65.24]: {{javadoc_uri}}/CrashReporter.html#sendCrashReport-android.content.Context-android.os.Bundle-java.lang.String-
[65.25]: {{javadoc_uri}}/GeckoResult.html
[api-version]: 1dd93adc7e95d81464cc99db2247be219e43ddcc
[api-version]: 946ddd60a1f2b617c93f4c403a588c33f2d4fdef

View file

@ -48,7 +48,6 @@ import java.util.Date;
import java.util.Locale;
import org.mozilla.geckoview.AllowOrDeny;
import org.mozilla.geckoview.Autocomplete;
import org.mozilla.geckoview.GeckoResult;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaSource;
@ -154,15 +153,6 @@ final class BasicGeckoViewPrompt implements GeckoSession.PromptDelegate {
return res;
}
@Nullable
@Override
public GeckoResult<PromptResponse> onCreditCardSave(
@NonNull GeckoSession session,
@NonNull AutocompleteRequest<Autocomplete.CreditCardSaveOption> request) {
Log.i(LOGTAG, "onCreditCardSave " + request.options[0].value);
return null;
}
@Nullable
@Override
public GeckoResult<PromptResponse> onBeforeUnloadPrompt(final GeckoSession session,

View file

@ -8,7 +8,6 @@ package org.mozilla.geckoview_example;
import org.json.JSONObject;
import org.mozilla.geckoview.AllowOrDeny;
import org.mozilla.geckoview.Autocomplete;
import org.mozilla.geckoview.BasicSelectionActionDelegate;
import org.mozilla.geckoview.ContentBlocking;
import org.mozilla.geckoview.GeckoResult;
@ -748,7 +747,6 @@ public class GeckoViewActivity
mTabSessionManager.setTabObserver(sExtensionManager);
sGeckoRuntime.getWebExtensionController().setDebuggerDelegate(sExtensionManager);
sGeckoRuntime.setAutocompleteStorageDelegate(new ExampleAutocompleteStorageDelegate());
// `getSystemService` call requires API level 23
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
@ -1531,8 +1529,6 @@ public class GeckoViewActivity
}
}
private class ExampleAutocompleteStorageDelegate implements Autocomplete.StorageDelegate {}
private class ExampleContentDelegate implements GeckoSession.ContentDelegate {
@Override
public void onTitleChange(GeckoSession session, String title) {

View file

@ -375,7 +375,7 @@ const GeckoViewAutocomplete = {
* @param aCreditCard The {CreditCard} to be saved.
*/
onCreditCardSave(aCreditCard) {
debug`onCreditCardSave ${aCreditCard}`;
debug`onLoginSave ${aCreditCard}`;
EventDispatcher.instance.sendRequest({
type: "GeckoView:Autocomplete:Save:CreditCard",
@ -390,7 +390,7 @@ const GeckoViewAutocomplete = {
* @param aAddress The {Address} to be saved.
*/
onAddressSave(aAddress) {
debug`onAddressSave ${aAddress}`;
debug`onLoginSave ${aAddress}`;
EventDispatcher.instance.sendRequest({
type: "GeckoView:Autocomplete:Save:Address",

View file

@ -125,7 +125,7 @@ class FormAutofillSection {
*
*/
isRecordCreatable(record) {
throw new TypeError("isRecordCreatable method must be overridden");
throw new TypeError("isRecordCreatable method must be overrided");
}
/**

View file

@ -32,7 +32,7 @@ let FormAutofillPrompter = {
_createMessage(creditCards) {
let hint = CreditCardStorageHint.NONE;
return {
// Sync with PromptController
// Sync with GeckoSession.handlePromptEvent.
type: "Autocomplete:Save:CreditCard",
hint,
creditCards,