diff --git a/externs/olx.js b/externs/olx.js
index 1bcc8694a8..4f8aa300cf 100644
--- a/externs/olx.js
+++ b/externs/olx.js
@@ -473,6 +473,7 @@ olx.ProjectionOptions.prototype.global;
*/
olx.ProjectionOptions.prototype.worldExtent;
+
/**
* Function to determine resolution at a point. The function is called with a
* `{number}` view resolution and an `{ol.Coordinate}` as arguments, and returns
@@ -912,6 +913,7 @@ olx.control.AttributionOptions.prototype.tipLabel;
*/
olx.control.AttributionOptions.prototype.label;
+
/**
* Text label to use for the expanded attributions button. Default is `ยป`.
* Instead of text, also a Node (e.g. a `span` element) can be used.
@@ -2829,6 +2831,7 @@ olx.interaction.SelectOptions.prototype.removeCondition;
*/
olx.interaction.SelectOptions.prototype.toggleCondition;
+
/**
* A boolean that determines if the default behaviour should select only
* single features or all (overlapping) features at the clicked map
@@ -2838,6 +2841,7 @@ olx.interaction.SelectOptions.prototype.toggleCondition;
*/
olx.interaction.SelectOptions.prototype.multi;
+
/**
* A function that takes an {@link ol.Feature} and an {@link ol.layer.Layer} and
* returns `true` if the feature may be selected or `false` otherwise.
@@ -4195,7 +4199,6 @@ olx.source.ImageMapGuideOptions.prototype.ratio;
olx.source.ImageMapGuideOptions.prototype.resolutions;
-
/**
* Optional function to load an image given a URL.
* @type {ol.TileLoadFunctionType|undefined}
@@ -4754,6 +4757,7 @@ olx.source.ImageStaticOptions.prototype.url;
/**
* @typedef {{attributions: (Array.
|undefined),
+ * crossOrigin: (null|string|undefined),
* params: (Object.|undefined),
* logo: (string|olx.LogoOptions|undefined),
* tileGrid: (ol.tilegrid.TileGrid|undefined),
@@ -4766,6 +4770,7 @@ olx.source.ImageStaticOptions.prototype.url;
*/
olx.source.TileArcGISRestOptions;
+
/**
* Attributions.
* @type {Array.|undefined}
@@ -4774,6 +4779,18 @@ olx.source.TileArcGISRestOptions;
olx.source.TileArcGISRestOptions.prototype.attributions;
+/**
+ * The `crossOrigin` attribute for loaded images. Note that you must provide a
+ * `crossOrigin` value if you are using the WebGL renderer or if you want to
+ * access pixel data with the Canvas renderer. See
+ * {@link https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image}
+ * for more detail.
+ * @type {null|string|undefined}
+ * @api
+ */
+olx.source.TileArcGISRestOptions.prototype.crossOrigin;
+
+
/**
* ArcGIS Rest parameters. This field is optional. Service defaults will be
* used for any fields not specified. `FORMAT` is `PNG32` by default. `F` is `IMAGE` by
@@ -4807,6 +4824,7 @@ olx.source.TileArcGISRestOptions.prototype.logo;
*/
olx.source.TileArcGISRestOptions.prototype.tileGrid;
+
/**
* Projection.
* @type {ol.proj.ProjectionLike}
diff --git a/src/ol/source/tilearcgisrestsource.js b/src/ol/source/tilearcgisrestsource.js
index c784652917..5602eedbc5 100644
--- a/src/ol/source/tilearcgisrestsource.js
+++ b/src/ol/source/tilearcgisrestsource.js
@@ -39,6 +39,7 @@ ol.source.TileArcGISRest = function(opt_options) {
goog.base(this, {
attributions: options.attributions,
+ crossOrigin: options.crossOrigin,
logo: options.logo,
projection: options.projection,
tileGrid: options.tileGrid,