Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit 751a846

Browse files
bluemarvinMortimerGoro
authored andcommitted
Set prompt delegate when new stacked tab is created (#2087)
1 parent 2147d0d commit 751a846

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

app/src/common/shared/org/mozilla/vrbrowser/browser/PromptDelegate.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.mozilla.vrbrowser.AppExecutors;
1414
import org.mozilla.vrbrowser.R;
1515
import org.mozilla.vrbrowser.VRBrowserApplication;
16+
import org.mozilla.vrbrowser.browser.engine.Session;
1617
import org.mozilla.vrbrowser.db.PopUpSite;
1718
import org.mozilla.vrbrowser.ui.viewmodel.PopUpsViewModel;
1819
import org.mozilla.vrbrowser.ui.widgets.UIWidget;
@@ -33,7 +34,7 @@
3334
import java.util.NoSuchElementException;
3435
import java.util.Optional;
3536

36-
public class PromptDelegate implements GeckoSession.PromptDelegate {
37+
public class PromptDelegate implements GeckoSession.PromptDelegate, WindowWidget.WindowListener {
3738

3839
private PromptWidget mPrompt;
3940
private PopUpBlockDialogWidget mPopUpPrompt;
@@ -57,12 +58,16 @@ public void attachToWindow(@NonNull WindowWidget window) {
5758
detachFromWindow();
5859

5960
mAttachedWindow = window;
61+
mAttachedWindow.addWindowListener(this);
6062
mAttachedWindow.getSession().setPromptDelegate(this);
6163
mViewModel.getAll().observeForever(mObserver);
6264
}
6365

6466
public void detachFromWindow() {
65-
mAttachedWindow = null;
67+
if (mAttachedWindow != null) {
68+
mAttachedWindow.removeWindowListener(this);
69+
mAttachedWindow = null;
70+
}
6671
mViewModel.getAll().removeObserver(mObserver);
6772
}
6873

@@ -307,4 +312,11 @@ public void onDismiss() {
307312
}
308313
}
309314

315+
// WindowWidget.WindowListener
316+
317+
@Override
318+
public void onSessionChanged(@NonNull Session aOldSession, @NonNull Session aSession) {
319+
aOldSession.setPromptDelegate(null);
320+
aSession.setPromptDelegate(this);
321+
}
310322
}

0 commit comments

Comments
 (0)