class MraidController {

    @VisibleForTesting
    void handleOpen(@NonNull String url) {
        MoPubLog.d("Opening url: " + url);

        if (mMraidListener != null) {
            mMraidListener.onOpen();
        }

        // this is added because http/s can also be intercepted
        if (!isWebSiteUrl(url) && IntentUtils.canHandleApplicationUrl(mContext, url)) {
            launchApplicationUrl(url);
            return;
        }

        Intent i = new Intent(mContext, MoPubBrowser.class);
        i.putExtra(MoPubBrowser.DESTINATION_URL_KEY, url);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(i);
    }

    public  MraidController(@NonNull Context context, @NonNull AdConfiguration adConfiguration,
            @NonNull PlacementType placementType);
    @VisibleForTesting  MraidController(@NonNull Context context, @NonNull AdConfiguration adConfiguration,
            @NonNull PlacementType placementType,
            @NonNull MraidBridge bridge, @NonNull MraidBridge twoPartBridge,
            @NonNull ScreenMetricsWaiter screenMetricsWaiter);

}