org.chromium.net.GURLUtils Java Examples

The following examples show how to use org.chromium.net.GURLUtils. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AwGeolocationPermissions.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/**
 * Get the domain of an URL using the GURL library.
 */
private String getOriginKey(String url) {
    String origin = GURLUtils.getOrigin(url);
    if (origin.isEmpty()) {
        return null;
    }

    return PREF_PREFIX + origin;
}
 
Example #2
Source File: AwGeolocationPermissions.java    From android-chromium with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/**
 * Get the domain of an URL using the GURL library.
 */
private String getOriginKey(String url) {
    String origin = GURLUtils.getOrigin(url);
    if (origin.isEmpty()) {
        return null;
    }

    return PREF_PREFIX + origin;
}
 
Example #3
Source File: DataReductionPromoInfoBar.java    From delion with Apache License 2.0 4 votes vote down vote up
/**
 * Launch the data reduction infobar promo, if it needs to be displayed.
 *
 * @param context An Android context.
 * @param webContents The WebContents of the tab on which the infobar should show.
 * @param url The URL of the page on which the infobar should show.
 * @param isFragmentNavigation Whether the main frame navigation did not cause changes to the
 *            document (for example scrolling to a named anchor PopState).
 * @param statusCode The HTTP status code of the navigation.
 * @return boolean Whether the promo was launched.
 */
public static boolean maybeLaunchPromoInfoBar(Context context,
        WebContents webContents, String url, boolean isErrorPage, boolean isFragmentNavigation,
        int statusCode) {
    ThreadUtils.assertOnUiThread();
    if (webContents.isIncognito()) return false;
    if (isErrorPage) return false;
    if (isFragmentNavigation) return false;
    if (statusCode != HttpURLConnection.HTTP_OK) return false;
    if (!DataReductionPromoUtils.canShowPromos()) return false;

    // Don't show the infobar promo if neither the first run experience or second run promo has
    // been shown.
    if (!DataReductionPromoUtils.getDisplayedFreOrSecondRunPromo()) return false;

    // Don't show the promo if the user opted out on the first run experience promo.
    if (DataReductionPromoUtils.getOptedOutOnFrePromo()) return false;

    // Don't show the promo if the user has seen this infobar promo before.
    if (DataReductionPromoUtils.getDisplayedInfoBarPromo()) return false;

    // Only show the promo on HTTP pages.
    if (!GURLUtils.getScheme(url).concat("://").equals(UrlConstants.HTTP_SCHEME)) return false;

    int currentMilestone = VersionNumberGetter.getMilestoneFromVersionNumber(
            PrefServiceBridge.getInstance().getAboutVersionStrings().getApplicationVersion());
    String freOrSecondRunVersion =
            DataReductionPromoUtils.getDisplayedFreOrSecondRunPromoVersion();

    Calendar releaseDateOfM48Stable = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
    releaseDateOfM48Stable.setTime(Date.valueOf(M48_STABLE_RELEASE_DATE));
    long packageInstallTime = getPackageInstallTime(context);

    // The boolean pref that stores whether user opted out on the first run experience was
    // added in M51. If the last promo was shown before M51, then |freOrSecondRunVersion| will
    // be empty. If Chrome was installed after the FRE promo was added in M48 and before M51,
    // assume the user opted out from the FRE and don't show the infobar.
    if (freOrSecondRunVersion.isEmpty()
            && packageInstallTime > releaseDateOfM48Stable.getTimeInMillis()) {
        return false;
    }

    // Only show the promo if the current version is at least two milestones after the last
    // promo was displayed or the command line switch is on. If the last promo was shown before
    // M51 then |freOrSecondRunVersion| will be empty and it is safe to show the infobar promo.
    if (!CommandLine.getInstance().hasSwitch(ENABLE_INFOBAR_SWITCH)
            && !freOrSecondRunVersion.isEmpty()
            && currentMilestone < VersionNumberGetter
                    .getMilestoneFromVersionNumber(freOrSecondRunVersion) + 2) {
        return false;
    }

    DataReductionPromoInfoBar.launch(webContents,
            BitmapFactory.decodeResource(context.getResources(), R.mipmap.app_icon),
            context.getString(R.string.data_reduction_promo_infobar_title),
            context.getString(R.string.data_reduction_promo_infobar_text),
            context.getString(R.string.data_reduction_promo_infobar_button),
            context.getString(R.string.no_thanks));

    return true;
}
 
Example #4
Source File: DataReductionPromoInfoBar.java    From AndroidChromium with Apache License 2.0 4 votes vote down vote up
/**
 * Launch the data reduction infobar promo, if it needs to be displayed.
 *
 * @param context An Android context.
 * @param webContents The WebContents of the tab on which the infobar should show.
 * @param url The URL of the page on which the infobar should show.
 * @param isFragmentNavigation Whether the main frame navigation did not cause changes to the
 *            document (for example scrolling to a named anchor PopState).
 * @param statusCode The HTTP status code of the navigation.
 * @return boolean Whether the promo was launched.
 */
public static boolean maybeLaunchPromoInfoBar(Context context,
        WebContents webContents, String url, boolean isErrorPage, boolean isFragmentNavigation,
        int statusCode) {
    ThreadUtils.assertOnUiThread();
    if (webContents.isIncognito()) return false;
    if (isErrorPage) return false;
    if (isFragmentNavigation) return false;
    if (statusCode != HttpURLConnection.HTTP_OK) return false;
    if (!DataReductionPromoUtils.canShowPromos()) return false;

    // Don't show the infobar promo if neither the first run experience or second run promo has
    // been shown.
    if (!DataReductionPromoUtils.getDisplayedFreOrSecondRunPromo()) return false;

    // Don't show the promo if the user opted out on the first run experience promo.
    if (DataReductionPromoUtils.getOptedOutOnFrePromo()) return false;

    // Don't show the promo if the user has seen this infobar promo before.
    if (DataReductionPromoUtils.getDisplayedInfoBarPromo()) return false;

    // Only show the promo on HTTP pages.
    if (!GURLUtils.getScheme(url).concat("://").equals(UrlConstants.HTTP_SCHEME)) return false;

    int currentMilestone = VersionNumberGetter.getMilestoneFromVersionNumber(
            PrefServiceBridge.getInstance().getAboutVersionStrings().getApplicationVersion());
    String freOrSecondRunVersion =
            DataReductionPromoUtils.getDisplayedFreOrSecondRunPromoVersion();

    // Temporarily allowing disk access. TODO: Fix. See http://crbug.com/577185
    StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
    try {
        Calendar releaseDateOfM48Stable = Calendar.getInstance(TimeZone.getTimeZone("UTC"));

        releaseDateOfM48Stable.setTime(Date.valueOf(M48_STABLE_RELEASE_DATE));
        long packageInstallTime = getPackageInstallTime(context);

        // The boolean pref that stores whether user opted out on the first run experience was
        // added in M51. If the last promo was shown before M51, then |freOrSecondRunVersion|
        // will be empty. If Chrome was installed after the FRE promo was added in M48 and
        // beforeM51,assume the user opted out from the FRE and don't show the infobar.
        if (freOrSecondRunVersion.isEmpty()
                && packageInstallTime > releaseDateOfM48Stable.getTimeInMillis()) {
            return false;
        }

        // Only show the promo if the current version is at least two milestones after the last
        // promo was displayed or the command line switch is on. If the last promo was shown
        // before M51 then |freOrSecondRunVersion| will be empty and it is safe to show the
        // infobar promo.
        if (!CommandLine.getInstance().hasSwitch(ENABLE_INFOBAR_SWITCH)
                && !freOrSecondRunVersion.isEmpty()
                && currentMilestone < VersionNumberGetter
                        .getMilestoneFromVersionNumber(freOrSecondRunVersion) + 2) {
            return false;
        }

        DataReductionPromoInfoBar.launch(webContents,
                BitmapFactory.decodeResource(context.getResources(),
                        R.drawable.infobar_chrome),
                context.getString(R.string.data_reduction_promo_infobar_title),
                context.getString(R.string.data_reduction_promo_infobar_text),
                context.getString(R.string.data_reduction_promo_infobar_button),
                context.getString(R.string.no_thanks));

        return true;
    } finally {
        StrictMode.setThreadPolicy(oldPolicy);
    }
}
 
Example #5
Source File: DataReductionPromoInfoBar.java    From 365browser with Apache License 2.0 4 votes vote down vote up
/**
 * Launch the data reduction infobar promo, if it needs to be displayed.
 *
 * @param context An Android context.
 * @param webContents The WebContents of the tab on which the infobar should show.
 * @param url The URL of the page on which the infobar should show.
 * @param isFragmentNavigation Whether the main frame navigation did not cause changes to the
 *            document (for example scrolling to a named anchor PopState).
 * @param statusCode The HTTP status code of the navigation.
 * @return boolean Whether the promo was launched.
 */
public static boolean maybeLaunchPromoInfoBar(Context context,
        WebContents webContents, String url, boolean isErrorPage, boolean isFragmentNavigation,
        int statusCode) {
    ThreadUtils.assertOnUiThread();
    if (webContents.isIncognito()) return false;
    if (isErrorPage) return false;
    if (isFragmentNavigation) return false;
    if (statusCode != HttpURLConnection.HTTP_OK) return false;
    if (!DataReductionPromoUtils.canShowPromos()) return false;

    // Don't show the infobar promo if neither the first run experience or second run promo has
    // been shown.
    if (!DataReductionPromoUtils.getDisplayedFreOrSecondRunPromo()) return false;

    // Don't show the promo if the user opted out on the first run experience promo.
    if (DataReductionPromoUtils.getOptedOutOnFrePromo()) return false;

    // Don't show the promo if the user has seen this infobar promo before.
    if (DataReductionPromoUtils.getDisplayedInfoBarPromo()) return false;

    // Only show the promo on HTTP pages.
    if (!GURLUtils.getScheme(url).equals(UrlConstants.HTTP_SCHEME)) return false;

    int currentMilestone = VersionNumberGetter.getMilestoneFromVersionNumber(
            PrefServiceBridge.getInstance().getAboutVersionStrings().getApplicationVersion());
    String freOrSecondRunVersion =
            DataReductionPromoUtils.getDisplayedFreOrSecondRunPromoVersion();

    // Temporarily allowing disk access. TODO: Fix. See http://crbug.com/577185
    StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
    try {
        Calendar releaseDateOfM48Stable = Calendar.getInstance(TimeZone.getTimeZone("UTC"));

        releaseDateOfM48Stable.setTime(Date.valueOf(M48_STABLE_RELEASE_DATE));
        long packageInstallTime = getPackageInstallTime(context);

        // The boolean pref that stores whether user opted out on the first run experience was
        // added in M51. If the last promo was shown before M51, then |freOrSecondRunVersion|
        // will be empty. If Chrome was installed after the FRE promo was added in M48 and
        // beforeM51,assume the user opted out from the FRE and don't show the infobar.
        if (freOrSecondRunVersion.isEmpty()
                && packageInstallTime > releaseDateOfM48Stable.getTimeInMillis()) {
            return false;
        }

        // Only show the promo if the current version is at least two milestones after the last
        // promo was displayed or the command line switch is on. If the last promo was shown
        // before M51 then |freOrSecondRunVersion| will be empty and it is safe to show the
        // infobar promo.
        if (!CommandLine.getInstance().hasSwitch(ENABLE_INFOBAR_SWITCH)
                && !freOrSecondRunVersion.isEmpty()
                && currentMilestone < VersionNumberGetter
                        .getMilestoneFromVersionNumber(freOrSecondRunVersion) + 2) {
            return false;
        }

        DataReductionPromoInfoBar.launch(webContents,
                BitmapFactory.decodeResource(context.getResources(),
                        R.drawable.infobar_chrome),
                context.getString(R.string.data_reduction_promo_infobar_title),
                context.getString(R.string.data_reduction_promo_infobar_text),
                context.getString(R.string.data_reduction_promo_infobar_button),
                context.getString(R.string.no_thanks));

        return true;
    } finally {
        StrictMode.setThreadPolicy(oldPolicy);
    }
}