Changeset ed39ea40


Ignore:
Timestamp:
Nov 16, 2017 12:58:59 PM (3 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
86a2e16
Parents:
e9ff0c2
Message:

Utils: Consolidate user-agent detection code in a new utility class
Add some new checks for mobile

Location:
apps
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java

    re9ff0c2 red39ea40  
    3434import net.i2p.data.DataHelper;
    3535import net.i2p.data.Hash;
     36import net.i2p.servlet.util.ServletUtil;
    3637import net.i2p.util.Log;
    3738import net.i2p.util.SecureFile;
     
    451452        // Using a unique name fixes Opera, except for the buttons with js confirms, see below
    452453        String ua = req.getHeader("User-Agent");
    453         boolean isDegraded = ua != null && (ua.startsWith("Lynx") || ua.startsWith("w3m") ||
    454                                             ua.startsWith("ELinks") || ua.startsWith("Links") ||
    455                                             ua.startsWith("Dillo") || ua.startsWith("Emacs-w3m"));
     454        boolean isDegraded = ua != null && ServletUtil.isTextBrowser(ua);
    456455        boolean noThinsp = isDegraded || (ua != null && ua.startsWith("Opera"));
    457456
  • apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java

    re9ff0c2 red39ea40  
    66import java.util.concurrent.ConcurrentHashMap;
    77
     8import net.i2p.servlet.util.ServletUtil;
    89import net.i2p.util.RandomSource;
    910
     
    183184
    184185    private static boolean shouldAllowIFrame(String ua) {
    185         return
    186                                // text
    187                              !(ua.startsWith("Lynx") || ua.startsWith("w3m") ||
    188                                ua.startsWith("ELinks") || ua.startsWith("Links") ||
    189                                ua.startsWith("Dillo") || ua.startsWith("Emacs-w3m") ||
    190                                // mobile
    191                                // http://www.zytrax.com/tech/web/mobile_ids.html
    192                                // Android tablet UAs don't have "Mobile" in them
    193                                (ua.contains("Android") && ua.contains("Mobile")) ||
    194                                ua.contains("iPhone") ||
    195                                ua.contains("iPod") || ua.contains("iPad") ||
    196                                ua.contains("Kindle") || ua.contains("Mobile") ||
    197                                ua.contains("Nintendo Wii") ||
    198                                ua.contains("Opera Mini") || ua.contains("Opera Mobi") ||
    199                                ua.contains("Palm") ||
    200                                ua.contains("PLAYSTATION") || ua.contains("Playstation") ||
    201                                ua.contains("Profile/MIDP-") || ua.contains("SymbianOS") ||
    202                                ua.contains("Windows CE") || ua.contains("Windows Phone") ||
    203                                ua.startsWith("BlackBerry") || ua.startsWith("DoCoMo") ||
    204                                ua.startsWith("Nokia") || ua.startsWith("OPWV-SDK") ||
    205                                ua.startsWith("MOT-") || ua.startsWith("SAMSUNG-") ||
    206                                ua.startsWith("nook") || ua.startsWith("SCH-") ||
    207                                ua.startsWith("SEC-") || ua.startsWith("SonyEricsson") ||
    208                                ua.startsWith("Vodafone"));
     186        return !ServletUtil.isSmallBrowser(ua);
    209187    }
    210188}
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    re9ff0c2 red39ea40  
    7272import net.i2p.data.DataHelper;
    7373import net.i2p.servlet.RequestWrapper;
     74import net.i2p.servlet.util.ServletUtil;
    7475import net.i2p.util.Translate;
    7576
     
    15681569
    15691570    /**
     1571     * Either mobile or text browser
    15701572     * Copied from net.i2p.router.web.CSSHelper
    15711573     * @param ua null ok
     
    15751577        if (ua == null)
    15761578            return false;
    1577         return
    1578                                // text
    1579                               (ua.startsWith("Lynx") || ua.startsWith("w3m") ||
    1580                                ua.startsWith("ELinks") || ua.startsWith("Links") ||
    1581                                ua.startsWith("Dillo") || ua.startsWith("Emacs-w3m") ||
    1582                                // mobile
    1583                                // http://www.zytrax.com/tech/web/mobile_ids.html
    1584                                // Android tablet UAs don't have "Mobile" in them
    1585                                (ua.contains("Android") && ua.contains("Mobile")) ||
    1586                                ua.contains("iPhone") ||
    1587                                ua.contains("iPod") || ua.contains("iPad") ||
    1588                                ua.contains("Kindle") || ua.contains("Mobile") ||
    1589                                ua.contains("Nintendo Wii") ||
    1590                                ua.contains("Opera Mini") || ua.contains("Opera Mobi") ||
    1591                                ua.contains("Palm") ||
    1592                                ua.contains("PLAYSTATION") || ua.contains("Playstation") ||
    1593                                ua.contains("Profile/MIDP-") || ua.contains("SymbianOS") ||
    1594                                ua.contains("Windows CE") || ua.contains("Windows Phone") ||
    1595                                ua.startsWith("BlackBerry") || ua.startsWith("DoCoMo") ||
    1596                                ua.startsWith("Nokia") || ua.startsWith("OPWV-SDK") ||
    1597                                ua.startsWith("MOT-") || ua.startsWith("SAMSUNG-") ||
    1598                                ua.startsWith("nook") || ua.startsWith("SCH-") ||
    1599                                ua.startsWith("SEC-") || ua.startsWith("SonyEricsson") ||
    1600                                ua.startsWith("Vodafone"));
     1579        return ServletUtil.isSmallBrowser(ua);
    16011580    }
     1581
    16021582        /**
    16031583         * The entry point for all web page loads
Note: See TracChangeset for help on using the changeset viewer.