ShadowWebView.java revision 4972836088ee1b2369abd4a668552c6b594f0436
19ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzpackage com.xtremelabs.robolectric.shadows;
29ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz
39ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzimport android.content.Context;
49ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzimport android.util.AttributeSet;
5258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Graftonimport android.webkit.WebChromeClient;
622ae9206e660fd187ff79a529452dbe2bab504fdRich Humphreyimport android.webkit.WebSettings;
79ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzimport android.webkit.WebView;
8fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphreyimport android.webkit.WebViewClient;
922ae9206e660fd187ff79a529452dbe2bab504fdRich Humphreyimport com.xtremelabs.robolectric.Robolectric;
1022c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implementation;
1122c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implements;
129ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz
1340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williamsimport java.util.HashMap;
1440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
159ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz@SuppressWarnings({"UnusedDeclaration"})
169ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz@Implements(WebView.class)
179ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzpublic class ShadowWebView extends ShadowAbsoluteLayout {
189ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz
196cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    private String lastUrl;
2040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private HashMap<String, Object> javascriptInterfaces = new HashMap<String, Object>();
2122ae9206e660fd187ff79a529452dbe2bab504fdRich Humphrey    private WebSettings webSettings = Robolectric.newInstanceOf(WebSettings.class);
22fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    private WebViewClient webViewClient = null;
2337c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    private boolean runFlag = false;
248455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    private boolean clearCacheCalled = false;
258455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    private boolean clearCacheIncludeDiskFiles = false;
269677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    private boolean clearFormDataCalled = false;
279677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    private boolean clearHistoryCalled = false;
289677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    private boolean clearViewCalled = false;
299677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    private boolean destroyCalled = false;
30258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    private WebChromeClient webChromeClient;
313892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    private boolean canGoBack;
323892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    private int goBackInvocations = 0;
334972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    private ShadowWebView.LoadData lastLoadData;
344972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    private LoadDataWithBaseURL lastLoadDataWithBaseURL;
356cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz
363892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    @Override
373892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public void __constructor__(Context context, AttributeSet attributeSet) {
389ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz        super.__constructor__(context, attributeSet);
399ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz    }
406cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz
416cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    @Implementation
426cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    public void loadUrl(String url) {
436cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz        lastUrl = url;
446cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    }
4540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
46e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    @Implementation
474972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) {
484972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        lastLoadDataWithBaseURL = new LoadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl);
494972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    }
504972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz
514972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    @Implementation
52e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    public void loadData(String data, String mimeType, String encoding) {
534972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        lastLoadData = new LoadData(data, mimeType, encoding);
54e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    }
55e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz
5631811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz    /**
5731811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz     * Non-Android accessor.
5831811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz     *
5931811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz     * @return the last loaded url
6031811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz     */
616cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    public String getLastLoadedUrl() {
626cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz        return lastUrl;
636cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    }
6440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
6540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Implementation
66fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public WebSettings getSettings() {
6740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return webSettings;
68fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    }
69fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey
70fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    @Implementation
71fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public void setWebViewClient(WebViewClient client) {
7240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        webViewClient = client;
73fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    }
7440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
75258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    @Implementation
76258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    public void setWebChromeClient(WebChromeClient client) {
77258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton        webChromeClient = client;
78258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    }
79258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton
80fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public WebViewClient getWebViewClient() {
8140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return webViewClient;
82fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    }
8340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
84fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    @Implementation
85fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public void addJavascriptInterface(Object obj, String interfaceName) {
8640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        javascriptInterfaces.put(interfaceName, obj);
87fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    }
8840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
89fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public Object getJavascriptInterface(String interfaceName) {
9040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return javascriptInterfaces.get(interfaceName);
9140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
923892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
9337c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    @Implementation
949677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void clearCache(boolean includeDiskFiles) {
953892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearCacheCalled = true;
963892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearCacheIncludeDiskFiles = includeDiskFiles;
978455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    }
983892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
998455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    public boolean wasClearCacheCalled() {
1003892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearCacheCalled;
1018455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    }
1023892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1038455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    public boolean didClearCacheIncludeDiskFiles() {
1043892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearCacheIncludeDiskFiles;
1058455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    }
1063892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1078455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    @Implementation
1089677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void clearFormData() {
1093892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearFormDataCalled = true;
1109677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1113892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1129677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public boolean wasClearFormDataCalled() {
1133892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearFormDataCalled;
1149677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1153892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1169677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    @Implementation
1179677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void clearHistory() {
1183892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearHistoryCalled = true;
1199677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1203892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1219677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public boolean wasClearHistoryCalled() {
1223892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearHistoryCalled;
1239677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1243892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1259677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    @Implementation
1269677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void clearView() {
1273892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearViewCalled = true;
1289677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1293892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1309677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public boolean wasClearViewCalled() {
1313892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearViewCalled;
1323892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1333892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1349677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    @Implementation
1359677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void destroy() {
1363892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        destroyCalled = true;
1379677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1383892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1399677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public boolean wasDestroyCalled() {
1403892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return destroyCalled;
1413892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1423892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1433892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    @Implementation
14437c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    public void post(Runnable action) {
1453892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        action.run();
1463892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        runFlag = true;
14737c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    }
1483892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
14937c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    public boolean getRunFlag() {
1503892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return runFlag;
15137c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    }
152258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton
1533892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1543892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    /**
1553892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * Non-Android accessor.
1563892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     *
1573892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * @return webChromeClient
1583892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     */
159258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    public WebChromeClient getWebChromeClient() {
160258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton        return webChromeClient;
161258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    }
1623892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1633892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    @Implementation
1643892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public boolean canGoBack() {
1653892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return canGoBack;
1663892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1673892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1683892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    @Implementation
1693892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public void goBack() {
1703892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        goBackInvocations++;
1713892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1723892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1733892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1743892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    /**
1753892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * Non-Android accessor.
1763892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     *
1773892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * @return goBackInvocations the number of times {@code android.webkit.WebView#goBack()}
1783892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * was invoked
1793892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     */
1803892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public int getGoBackInvocations() {
1813892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return goBackInvocations;
1823892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1833892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1843892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    /**
1853892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * Non-Android setter.
1863892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     *
1873892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * Sets the value to return from {@code android.webkit.WebView#canGoBack()}
1883892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     *
1893892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * @param canGoBack
1903892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     */
1913892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public void setCanGoBack(boolean canGoBack) {
1923892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        this.canGoBack = canGoBack;
1933892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
194e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz
1954972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public LoadData getLastLoadData() {
1964972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        return lastLoadData;
197e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    }
198e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz
1994972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public LoadDataWithBaseURL getLastLoadDataWithBaseURL() {
2004972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        return lastLoadDataWithBaseURL;
201e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    }
202e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz
2034972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public class LoadDataWithBaseURL {
2044972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String baseUrl;
2054972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String data;
2064972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String mimeType;
2074972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String encoding;
2084972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String historyUrl;
2094972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz
2104972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public LoadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) {
2114972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.baseUrl = baseUrl;
2124972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.data = data;
2134972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.mimeType = mimeType;
2144972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.encoding = encoding;
2154972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.historyUrl = historyUrl;
2164972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        }
2174972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    }
2184972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz
2194972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public class LoadData {
2204972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String data;
2214972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String mimeType;
2224972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String encoding;
2234972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz
2244972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public LoadData(String data, String mimeType, String encoding) {
2254972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.data = data;
2264972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.mimeType = mimeType;
2274972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.encoding = encoding;
2284972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        }
229e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    }
2309ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz}
231