Index: chrome/renderer/resources/extensions/web_view.js |
diff --git a/chrome/renderer/resources/extensions/web_view.js b/chrome/renderer/resources/extensions/web_view.js |
index f8ae2cb7dc27889a51297212f8a9b128b100937c..3707a636bc57af826a094dfbf7ae12574a7abccd 100644 |
--- a/chrome/renderer/resources/extensions/web_view.js |
+++ b/chrome/renderer/resources/extensions/web_view.js |
@@ -915,6 +915,28 @@ WebViewInternal.prototype.setupWebRequestEvents_ = function() { |
); |
}; |
+/** @private */ |
+WebViewInternal.prototype.getUserAgent_ = function() { |
+ return this.userAgentOverride_ || navigator.userAgent; |
+}; |
+ |
+/** @private */ |
+WebViewInternal.prototype.isUserAgentOverridden_ = function() { |
+ return !!this.userAgentOverride_ && |
+ this.userAgentOverride_ != navigator.userAgent; |
+}; |
+ |
+/** @private */ |
+WebViewInternal.prototype.setUserAgentOverride_ = function(userAgentOverride) { |
+ this.userAgentOverride_ = userAgentOverride; |
+ if (!this.instanceId_) { |
+ // If we are not attached yet, then we will pick up the user agent on |
+ // attachment. |
+ return; |
+ } |
+ WebView.overrideUserAgent(this.instanceId_, userAgentOverride); |
+}; |
+ |
// Registers browser plugin <object> custom element. |
function registerBrowserPluginElement() { |
var proto = Object.create(HTMLObjectElement.prototype); |
@@ -1010,6 +1032,18 @@ function registerWebViewElement() { |
var internal = this.internal_(secret); |
$Function.apply(internal.insertCSS_, internal, arguments); |
}; |
+ |
+ proto.getUserAgent = function() { |
+ return this.internal_(secret).getUserAgent_(); |
+ }; |
+ |
+ proto.isUserAgentOverridden = function() { |
+ return this.internal_(secret).isUserAgentOverridden_(); |
+ }; |
+ |
+ proto.setUserAgentOverride = function(userAgentOverride) { |
+ this.internal_(secret).setUserAgentOverride_(userAgentOverride); |
+ }; |
WebViewInternal.maybeRegisterExperimentalAPIs(proto, secret); |
window.WebView = |