diff --git a/CLA-rev2-digital.txt b/CLA-rev2-digital.txt index 30eeba02..427834a8 100644 --- a/CLA-rev2-digital.txt +++ b/CLA-rev2-digital.txt @@ -25,4 +25,6 @@ Vitali Kepin https://github.com/vkepin 2017-05-16 D. Hollingsworth https://github.com/hollingsworthd 2017-06-25 Nicholas DiPiazza https://github.com/nddipiazza/ 2017-08-08 Alena Liashenka https://github.com/eichhornchen27 2017-12-08 -Uladzislau Arlouski https://github.com/uarlouski 2017-12-11 \ No newline at end of file +Uladzislau Arlouski https://github.com/uarlouski 2017-12-11 +contributions by (Vincent Smith https://github.com/vosmith 2018-06-08) +included by (Adam Howard https://github.com/medavox 2018-07-06) \ No newline at end of file diff --git a/src/com/machinepublishers/jbrowserdriver/Settings.java b/src/com/machinepublishers/jbrowserdriver/Settings.java index 3a095c0b..ad0394f3 100644 --- a/src/com/machinepublishers/jbrowserdriver/Settings.java +++ b/src/com/machinepublishers/jbrowserdriver/Settings.java @@ -160,6 +160,7 @@ private enum PropertyName { USER_DATA_DIRECTORY("jbd.userdatadirectory"), CSRF_REQUEST_TOKEN("jbd.csrfreqtoken"), CSRF_RESPONSE_TOKEN("jbd.csrfresptoken"), + BLOCK_MEDIA("jbd.blockmedia"), @Deprecated WIRE_CONSOLE("jbd.wireconsole"), @Deprecated @@ -226,6 +227,7 @@ public static class Builder { private String csrfRequestToken; private String csrfResponseToken; private InetAddress nicAddress; + private boolean blockMedia; /** * Headers to be sent on each request. @@ -1134,7 +1136,7 @@ public Builder javaExportModules(boolean javaExportModules) { *
jbd.userdatadirectory
overrides this setting. Use a string file path as the value.jbd.userdatadirectory
alternately configures this setting. Use a string file path as the value.- * + * * @param userDataDirectory * A directory to store user website data, e.g. localStorage. * @return this Builder @@ -1148,7 +1150,7 @@ public Builder userDataDirectory(File userDataDirectory) { /** * Used for binding to a specific NIC - * + * * @param nicAddress * @return this Builder */ @@ -1159,7 +1161,7 @@ public Builder localIp(InetAddress nicAddress) { /** * Enables CSRF token handling. Searches for XSRF-TOKEN in response headers and sends X-XSRF-TOKEN in request headers. - * + * * @return this Builder */ public Builder csrf() { @@ -1168,7 +1170,7 @@ public Builder csrf() { /** * Enables CSRF token handling - * + * * @param requestToken * The header to send in each request header * @param responseToken @@ -1181,6 +1183,26 @@ public Builder csrf(String requestToken, String responseToken) { return this; } + /** + * Whether requests for common media types should be blocked. + *
+ * Based on the content-type or file extension of the requested asset + *
+ * Defaults to false
.
+ *
+ *
jbd.blockmedia
overrides this setting.jbd.blockmedia
alternately configures this setting.
+ *
+ * @param blockMedia
+ * @return this Builder
+ */
+ public Builder blockMedia(boolean blockMedia) {
+ this.blockMedia = blockMedia;
+ return this;
+ }
+
/**
* @deprecated Will be removed in v2.0.0. Instead use Settings Builder's logWire, logsMax, or logger.
*/
@@ -1306,6 +1328,7 @@ public Capabilities buildCapabilities() {
set(capabilities, PropertyName.PROXY_PASSWORD, proxy.password());
set(capabilities, PropertyName.PROXY_EXPECT_CONTINUE, proxy.expectContinue());
}
+ set(capabilities, PropertyName.BLOCK_MEDIA, this.blockMedia);
return capabilities;
}
@@ -1494,6 +1517,7 @@ private static File parse(Map capabilities, PropertyName name, File fallback) {
private final String csrfRequestToken;
private final String csrfResponseToken;
private final InetAddress nicAddress;
+ private final boolean blockMedia;
private Settings(Settings.Builder builder, Map properties) {
Settings.Builder defaults = Settings.builder();
@@ -1682,6 +1706,7 @@ private Settings(Settings.Builder builder, Map properties) {
scriptBuilder.append("'));})();");
scriptBuilder.append("");
this.script = scriptBuilder.toString();
+ this.blockMedia = parse(properties, PropertyName.BLOCK_MEDIA, builder.blockMedia);
}
RequestHeaders headers() {
@@ -1859,4 +1884,8 @@ String getCsrfResponseToken() {
InetAddress getLocalIp() {
return nicAddress;
}
+
+ boolean blockMedia() {
+ return blockMedia;
+ }
}
diff --git a/src/com/machinepublishers/jbrowserdriver/StreamConnection.java b/src/com/machinepublishers/jbrowserdriver/StreamConnection.java
index a344a842..3b33077b 100644
--- a/src/com/machinepublishers/jbrowserdriver/StreamConnection.java
+++ b/src/com/machinepublishers/jbrowserdriver/StreamConnection.java
@@ -100,7 +100,7 @@ class StreamConnection extends HttpURLConnection implements Closeable {
".svg", ".gif", ".jpeg", ".jpg", ".png",
".ico", ".webm", ".mp4", ".ogg", ".ogv",
".mp3", ".aac", ".wav", ".swf", ".woff",
- ".otf", ".ttf" })));
+ ".otf", ".ttf", ".css" })));
private final Map