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

Commit 2f33ded

Browse files
keianhzobluemarvin
andauthored
Fixes #3228 Send only http/https tabs (#3230)
* Limit tabs sending to http/https * Limit tab sending to http/https in the TabWidget Co-authored-by: Randall E. Barker <[email protected]>
1 parent 5bf1506 commit 2f33ded

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

app/src/common/shared/org/mozilla/vrbrowser/ui/views/TabView.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public class TabView extends RelativeLayout implements GeckoSession.ContentDeleg
5050
protected boolean mPressed;
5151
protected CompletableFuture<Bitmap> mBitmapFuture;
5252
protected boolean mUsingPlaceholder;
53-
private boolean mIsPrivateMode;
53+
private boolean mSendTabEnabled;
5454
private static final int ICON_ANIMATION_DURATION = 100;
5555

5656
public interface Delegate {
@@ -216,8 +216,8 @@ public void setActive(boolean aActive) {
216216
}
217217
}
218218

219-
public void setPrivate(boolean privateMode) {
220-
mIsPrivateMode = privateMode;
219+
public void setSendTabEnabled(boolean enabled) {
220+
mSendTabEnabled = enabled;
221221
}
222222

223223
public void reset() {
@@ -261,7 +261,7 @@ private void updateState() {
261261
boolean selected = isSelected();
262262

263263
mCloseButton.setVisibility(interacted && !selected && !mSelecting ? View.VISIBLE : View.GONE);
264-
mSendTabButton.setVisibility(interacted && !selected && !mSelecting && !mIsPrivateMode ? View.VISIBLE : View.GONE);
264+
mSendTabButton.setVisibility(mSendTabEnabled && interacted && !selected && !mSelecting ? View.VISIBLE : View.GONE);
265265
mTitle.setVisibility(interacted && !selected ? View.VISIBLE : View.GONE);
266266
mTabOverlay.setPressed(mPressed);
267267
if (mSelecting) {

app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/NavigationBarWidget.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import android.util.Pair;
1818
import android.view.LayoutInflater;
1919
import android.view.View;
20+
import android.webkit.URLUtil;
2021
import android.widget.EditText;
2122

2223
import androidx.annotation.NonNull;
@@ -1155,7 +1156,12 @@ public void onSwitchMode() {
11551156
hideMenu();
11561157
}
11571158
});
1158-
mHamburgerMenu.setSendTabEnabled(!UrlUtils.isPrivateAboutPage(getContext(), mAttachedWindow.getSession().getCurrentUri()));
1159+
boolean isSendTabEnabled = false;
1160+
if (URLUtil.isHttpUrl(mAttachedWindow.getSession().getCurrentUri()) ||
1161+
URLUtil.isHttpsUrl(mAttachedWindow.getSession().getCurrentUri())) {
1162+
isSendTabEnabled = true;
1163+
}
1164+
mHamburgerMenu.setSendTabEnabled(isSendTabEnabled);
11591165
mHamburgerMenu.setUAMode(mAttachedWindow.getSession().getUaMode());
11601166
mHamburgerMenu.show(UIWidget.KEEP_FOCUS);
11611167
}

app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/TabsWidget.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.view.LayoutInflater;
77
import android.view.View;
88
import android.view.ViewGroup;
9+
import android.webkit.URLUtil;
910
import android.widget.LinearLayout;
1011
import android.widget.TextView;
1112

@@ -240,13 +241,17 @@ public void onBindViewHolder(MyViewHolder holder, int position) {
240241
holder.tabView.setSelected(mSelectedTabs.contains(holder.tabView.getSession()));
241242
holder.tabView.setActive(SessionStore.get().getActiveSession() == holder.tabView.getSession());
242243
if (holder.tabView.getSession() != null) {
243-
holder.tabView.setPrivate(UrlUtils.isPrivateAboutPage(getContext(), holder.tabView.getSession().getCurrentUri()));
244+
String uri = holder.tabView.getSession().getCurrentUri();
245+
holder.tabView.setSendTabEnabled(URLUtil.isHttpUrl(uri) || URLUtil.isHttpsUrl(uri));
246+
} else {
247+
holder.tabView.setSendTabEnabled(false);
244248
}
245249
holder.tabView.setDelegate(new TabView.Delegate() {
246250
@Override
247251
public void onClose(TabView aSender) {
248252
if (aSender.getSession() != null) {
249-
holder.tabView.setPrivate(aSender.getSession().isPrivateMode());
253+
String uri = aSender.getSession().getCurrentUri();
254+
aSender.setSendTabEnabled(URLUtil.isHttpUrl(uri) || URLUtil.isHttpsUrl(uri));
250255
}
251256
if (mTabDelegate != null) {
252257
ArrayList<Session> closed = new ArrayList<>();

0 commit comments

Comments
 (0)