Skip to content

Commit

Permalink
Bug 1650897 - Support browser action popups in TestRunnerActivity. r=…
Browse files Browse the repository at this point in the history
…owlish

Differential Revision: https://phabricator.services.mozilla.com/D82768
  • Loading branch information
agi committed Jul 13, 2020
1 parent 88041bc commit 7a11306
Showing 1 changed file with 23 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class TestRunnerActivity extends Activity {

static GeckoRuntime sRuntime;

private GeckoSession mPopupSession;
private GeckoSession mActiveSession;
private GeckoSession mSession;
private GeckoView mView;
Expand Down Expand Up @@ -147,6 +148,22 @@ private GeckoSession createSession() {
return createSession(null);
}

private WebExtension.ActionDelegate mActionDelegate = new WebExtension.ActionDelegate() {
@Nullable
@Override
public GeckoResult<GeckoSession> onOpenPopup(@NonNull WebExtension extension,
@NonNull WebExtension.Action action) {
if (mPopupSession != null) {
mPopupSession.close();
}

mPopupSession = createBackgroundSession(null);
mPopupSession.open(sRuntime);

return GeckoResult.fromValue(mPopupSession);
}
};

private WebExtension.SessionTabDelegate mSessionTabDelegate = new WebExtension.SessionTabDelegate() {
@NonNull
@Override
Expand Down Expand Up @@ -178,6 +195,7 @@ private GeckoSession createSession(GeckoSessionSettings settings) {
final WebExtension.SessionController sessionController =
session.getWebExtensionController();
for (final WebExtension extension : mExtensions) {
sessionController.setActionDelegate(extension, mActionDelegate);
sessionController.setTabDelegate(extension, mSessionTabDelegate);
}

Expand Down Expand Up @@ -276,6 +294,7 @@ private void refreshExtensionList() {
webExtensionController().list().accept(extensions -> {
mExtensions = extensions;
for (WebExtension extension : mExtensions) {
extension.setActionDelegate(mActionDelegate);
extension.setTabDelegate(new WebExtension.TabDelegate() {
@Override
public GeckoResult<GeckoSession> onNewTab(WebExtension source,
Expand All @@ -297,8 +316,10 @@ public GeckoResult<GeckoSession> onNewTab(WebExtension source,
});

for (final GeckoSession session : mOwnedSessions) {
session.getWebExtensionController()
.setTabDelegate(extension, mSessionTabDelegate);
final WebExtension.SessionController controller =
session.getWebExtensionController();
controller.setActionDelegate(extension, mActionDelegate);
controller.setTabDelegate(extension, mSessionTabDelegate);
}
}
});
Expand Down

0 comments on commit 7a11306

Please sign in to comment.