Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[chromium] Add NullPointerException in PromptDelegateImpl #1268

Merged
merged 1 commit into from
Feb 22, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -61,27 +61,45 @@ public PromptDelegateImpl(WSession.PromptDelegate mDelegate, SessionImpl mSessio
@Override
public void onAlertDialog(@NonNull String message,
UserDialogManagerBridge.DialogCallback dialogCallback) {
mDelegate.onAlertPrompt(mSession, new AlertPrompt(dialogCallback, message));
if (mDelegate != null) {
mDelegate.onAlertPrompt(mSession, new AlertPrompt(dialogCallback, message));
} else {
dialogCallback.dismiss();
}
}

@Override
public void onConfirmDialog(@NonNull String message,
UserDialogManagerBridge.DialogCallback dialogCallback) {
mDelegate.onButtonPrompt(mSession, new ButtonPrompt(dialogCallback, message));
if (mDelegate != null) {
mDelegate.onButtonPrompt(mSession, new ButtonPrompt(dialogCallback, message));
} else {
dialogCallback.dismiss();
}
}

@Override
public void onTextDialog(@NonNull String message, @NonNull String defaultUserInput,
UserDialogManagerBridge.DialogCallback dialogCallback) {
mDelegate.onTextPrompt(mSession, new TextPrompt(dialogCallback, message, defaultUserInput));
if (mDelegate != null) {
mDelegate.onTextPrompt(mSession, new TextPrompt(dialogCallback, message, defaultUserInput));
} else {
dialogCallback.dismiss();
}
}

@Override
public void onBeforeUnloadDialog(UserDialogManagerBridge.DialogCallback dialogCallback) {
mDelegate.onBeforeUnloadPrompt(mSession, new BeforeUnloadPrompt(dialogCallback));
if (mDelegate != null) {
mDelegate.onBeforeUnloadPrompt(mSession, new BeforeUnloadPrompt(dialogCallback));
} else {
dialogCallback.dismiss();
}
}

public WResult<PromptResponseImpl> onRepostConfirmWarningDialog() {
if (mDelegate == null)
return WResult.fromValue(null);;
return mDelegate.onRepostConfirmPrompt(mSession, new RepostConfirmPrompt()).then(result -> WResult.fromValue((PromptResponseImpl) result));
}

Expand Down Expand Up @@ -494,10 +512,13 @@ public ChoicePromptBridge(Context windowContext, Callback<int[]> selectionChange
@Override
public void show() {
try {
final WSession.PromptDelegate delegate = mSession.getPromptDelegate();
delegate.onChoicePrompt(mSession, mChoicePrompt);
if (mDelegate != null) {
mDelegate.onChoicePrompt(mSession, mChoicePrompt);
} else {
mChoicePrompt.dismiss();
}
} catch (WindowManager.BadTokenException e) {
mChoicePrompt.markComplete();
mChoicePrompt.dismiss();
}
}

Expand All @@ -524,10 +545,13 @@ public ColorPromptBridge(int initialColor, ColorChooserManager.Listener listener
@Override
public void show() {
try {
final WSession.PromptDelegate delegate = mSession.getPromptDelegate();
delegate.onColorPrompt(mSession, mColorPrompt);
if (mDelegate != null) {
mDelegate.onColorPrompt(mSession, mColorPrompt);
} else {
mColorPrompt.dismiss();
}
} catch (WindowManager.BadTokenException e) {
mColorPrompt.markComplete();
mColorPrompt.dismiss();
}
}

Expand Down Expand Up @@ -593,8 +617,12 @@ public void showDialog(final int type, final double value,
mDatePrompt.setDateTime(type, value, min, max);

try {
mDelegate.onDateTimePrompt(mSession, mDatePrompt);
} catch (WindowManager.BadTokenException | NullPointerException e) {
if (mDelegate != null) {
mDelegate.onDateTimePrompt(mSession, mDatePrompt);
} else {
mDatePrompt.dismiss();
}
} catch (WindowManager.BadTokenException e) {
mDatePrompt.dismiss();
}
}
Expand Down