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