Skip to content

Commit

Permalink
Bug 1618987 - Removed WebExtensionController#setTabDelegate and relat…
Browse files Browse the repository at this point in the history
…ed methods r=agi,geckoview-reviewers

Updated API docs to reflect removed method

Removed incorrect line to fix some bugs

Updated changelog

Added listener registration back into WebExtension Listener constructor

Differential Revision: https://phabricator.services.mozilla.com/D78977
  • Loading branch information
gbramley1 committed Jun 9, 2020
1 parent 8619359 commit 41813d2
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 105 deletions.
2 changes: 0 additions & 2 deletions mobile/android/geckoview/api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1652,15 +1652,13 @@ package org.mozilla.geckoview {
method @AnyThread @NonNull public GeckoResult<WebExtension> disable(@NonNull WebExtension, int);
method @AnyThread @NonNull public GeckoResult<WebExtension> enable(@NonNull WebExtension, int);
method @UiThread @Nullable public WebExtensionController.PromptDelegate getPromptDelegate();
method @UiThread @Nullable @Deprecated public WebExtensionController.TabDelegate getTabDelegate();
method @NonNull @AnyThread public GeckoResult<WebExtension> install(@NonNull String);
method @NonNull @AnyThread public GeckoResult<WebExtension> installBuiltIn(@NonNull String);
method @AnyThread @NonNull public GeckoResult<List<WebExtension>> list();
method @NonNull @AnyThread public GeckoResult<WebExtension> setAllowedInPrivateBrowsing(@NonNull WebExtension, boolean);
method @UiThread public void setDebuggerDelegate(@NonNull WebExtensionController.DebuggerDelegate);
method @UiThread public void setPromptDelegate(@Nullable WebExtensionController.PromptDelegate);
method @AnyThread public void setTabActive(@NonNull GeckoSession, boolean);
method @Deprecated @UiThread public void setTabDelegate(@Nullable WebExtensionController.TabDelegate);
method @NonNull @AnyThread public GeckoResult<Void> uninstall(@NonNull WebExtension);
method @AnyThread @NonNull public GeckoResult<WebExtension> update(@NonNull WebExtension);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -836,9 +836,6 @@ public SessionTabDelegate getTabDelegate(final @NonNull WebExtension extension)
private boolean mActionDelegateRegistered = false;
private boolean mTabDelegateRegistered = false;

// TODO: remove Bug 1618987
private WebExtensionController.TabDelegate mLegacyTabDelegate;

public GeckoRuntime runtime;

public Listener(final GeckoRuntime runtime) {
Expand All @@ -847,7 +844,7 @@ public Listener(final GeckoRuntime runtime) {

public Listener(final GeckoSession session) {
this(session, null);
// TODO: Remove Bug 1618987

// Close tab event is forwarded to the main listener so we need to listen
// to it here.
mEventDispatcher.registerUiThreadListener(
Expand Down Expand Up @@ -879,29 +876,6 @@ private Listener(final GeckoSession session, final GeckoRuntime runtime) {
"GeckoView:WebExtension:Disconnect");
}

// TODO: remove Bug 1618987
@Deprecated
public void setTabDelegate(final WebExtensionController.TabDelegate delegate) {
if (!mTabDelegateRegistered && delegate != null) {
mEventDispatcher.registerUiThreadListener(
this,
"GeckoView:WebExtension:NewTab",
"GeckoView:WebExtension:UpdateTab",
"GeckoView:WebExtension:CloseTab",
"GeckoView:WebExtension:OpenOptionsPage"
);
mTabDelegateRegistered = true;
}

mLegacyTabDelegate = delegate;
}

// TODO: remove Bug 1618987
@Deprecated
public WebExtensionController.TabDelegate getTabDelegate() {
return mLegacyTabDelegate;
}

public void unregisterWebExtension(final WebExtension extension) {
mMessageDelegates.remove(extension.id);
mActionDelegates.remove(extension.id);
Expand Down Expand Up @@ -964,19 +938,6 @@ public void handleMessage(final String event, final GeckoBundle message,
return;
}

// TODO: remove Bug 1618987
final WebExtensionController controller = runtime.getWebExtensionController();
WebExtensionController.TabDelegate delegate = controller.getTabDelegate();
if (delegate != null) {
if ("GeckoView:WebExtension:CloseTab".equals(event)) {
controller.closeTab(message, callback, mSession, delegate);
return;
} else if ("GeckoView:WebExtension:NewTab".equals(event)) {
controller.newTab(message, callback, delegate);
return;
}
}

runtime.getWebExtensionController().handleMessage(event, message, callback, mSession);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,29 +250,6 @@ default GeckoResult<AllowOrDeny> onCloseTab(@Nullable WebExtension source, @NonN
}
}

/**
* @deprecated Use {@link WebExtension#getTabDelegate} and
* {@link WebExtension.SessionController#getTabDelegate}.
* @return The {@link TabDelegate} instance.
*/
@UiThread
@Nullable
@Deprecated
public TabDelegate getTabDelegate() {
return mListener.getTabDelegate();
}

/**
* @deprecated Use {@link WebExtension#setTabDelegate} and
* {@link WebExtension.SessionController#setTabDelegate}.
* @param delegate {@link TabDelegate} instance.
*/
@Deprecated
@UiThread
public void setTabDelegate(final @Nullable TabDelegate delegate) {
mListener.setTabDelegate(delegate);
}

/**
* This delegate will be called whenever an extension is about to be installed or it needs
* new permissions, e.g during an update or because it called <code>permissions.request</code>
Expand Down Expand Up @@ -1007,22 +984,7 @@ private void updatePrompt(final GeckoBundle message, final EventCallback callbac
message.callback.sendSuccess(null);
}

/* package */ void newTab(final Message message, final WebExtension extension) {
newTab(message, null, extension);
}

// TODO: remove Bug 1618987
/* package */ void newTab(final GeckoBundle bundle, final EventCallback callback,
final TabDelegate legacyDelegate) {
final Message message = new Message("GeckoView:WebExtension:NewTab",
bundle, callback, null);
extensionFromBundle(bundle).accept(extension ->
newTab(message, legacyDelegate, extension)
);
}

// TODO: remove legacyDelegate Bug 1618987
/* package */ void newTab(final Message message, final TabDelegate legacyDelegate,
/* package */ void newTab(final Message message,
final WebExtension extension) {
final GeckoBundle bundle = message.bundle;

Expand All @@ -1033,8 +995,6 @@ private void updatePrompt(final GeckoBundle message, final EventCallback callbac
final GeckoResult<GeckoSession> result;
if (delegate != null) {
result = delegate.onNewTab(extension, details);
} else if (legacyDelegate != null) {
result = legacyDelegate.onNewTab(extension, details.url);
} else {
mPendingNewTab.add(extension.id, message);
return;
Expand Down Expand Up @@ -1082,34 +1042,14 @@ private void updatePrompt(final GeckoBundle message, final EventCallback callbac
});
}

// TODO: remove Bug 1618987
/* package */ void closeTab(final GeckoBundle bundle, final EventCallback callback,
final GeckoSession session,
final TabDelegate legacyDelegate) {
final Message message = new Message("GeckoView:WebExtension:NewTab",
bundle, callback, null);
extensionFromBundle(bundle).accept(extension ->
newTab(message, legacyDelegate, extension)
);
}

/* package */ void closeTab(final Message message,
final WebExtension extension) {
closeTab(message, extension, null);
}

// TODO: remove legacyDelegate Bug 1618987
/* package */ void closeTab(final Message message,
final WebExtension extension,
final TabDelegate legacyDelegate) {
final WebExtension.SessionTabDelegate delegate =
message.session.getWebExtensionController().getTabDelegate(extension);

final GeckoResult<AllowOrDeny> result;
if (delegate != null) {
result = delegate.onCloseTab(extension, message.session);
} else if (legacyDelegate != null) {
result = legacyDelegate.onCloseTab(extension, message.session);
} else {
result = GeckoResult.fromValue(AllowOrDeny.DENY);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ exclude: true
([bug 1618058]({{bugzilla}}1619766))
- Added [`WebNotification.source`][79.2], which is the URL of the page
or Service Worker that created the notification.

- Removed deprecated `WebExtensionController.setTabDelegate` and `WebExtensionController.getTabDelegate`
APIs ([bug 1618987]({{bugzilla}}1618987)).

[79.1]: {{javadoc_uri}}/WebExtension.TabDelegate.html#onOpenOptionsPage-org.mozilla.geckoview.WebExtension-
[79.2]: {{javadoc_uri}}/WebNotification.html#source
Expand Down Expand Up @@ -723,4 +724,4 @@ exclude: true
[65.24]: {{javadoc_uri}}/CrashReporter.html#sendCrashReport-android.content.Context-android.os.Bundle-java.lang.String-
[65.25]: {{javadoc_uri}}/GeckoResult.html

[api-version]: 820c4bbc052bd8b8b19c2460c3996b86e1786ff7
[api-version]: f395ea7c21fe233e4e95d28f255910bcde75dc91

0 comments on commit 41813d2

Please sign in to comment.