<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; ">Todd,</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><br class="webkit-block-placeholder"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; ">Here is something from WebView.h</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><br class="webkit-block-placeholder"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(0, 116, 0); ">/*!</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(0, 116, 0); ">&nbsp; &nbsp; <span style="color: #023d10">@method</span> setCustomUserAgent:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(0, 116, 0); ">&nbsp; &nbsp; <span style="color: #023d10">@abstract</span> Set the user agent.&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(0, 116, 0); ">&nbsp; &nbsp; <span style="color: #023d10">@discussion</span> Setting this means that the webView should use this user-agent string</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(0, 116, 0); ">&nbsp; &nbsp; instead of constructing a user-agent string for each URL. Setting it to nil</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(0, 116, 0); ">&nbsp; &nbsp; causes the webView to construct the user-agent string for each URL</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(0, 116, 0); ">&nbsp; &nbsp; for best results rendering web pages.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(0, 116, 0); ">&nbsp; &nbsp; <span style="color: #023d10">@param</span> userAgentString The user agent description</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(0, 116, 0); ">*/</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; ">- (<span style="color: #aa0d91">void</span>)setCustomUserAgent:(<span style="color: #5c2699">NSString</span> *)userAgentString;</div><div><font class="Apple-style-span" face="Monaco" size="2"><span class="Apple-style-span" style="font-size: 10px;"><br class="webkit-block-placeholder"></span></font></div><div><font class="Apple-style-span" face="Monaco" size="2"><span class="Apple-style-span" style="font-size: 10px;">There are a couple other user agent related APIs, too.</span></font></div><div><font class="Apple-style-span" face="Monaco" size="2"><span class="Apple-style-span" style="font-size: 10px;"><br class="webkit-block-placeholder"></span></font></div><div><font class="Apple-style-span" face="Monaco" size="2"><span class="Apple-style-span" style="font-size: 10px;">Dave</span></font></div><div><font class="Apple-style-span" face="Monaco" size="2"><span class="Apple-style-span" style="font-size: 10px;"><br class="webkit-block-placeholder"></span></font></div>
</div><div>On Nov 19, 2007, at 8:14 AM, Todd Ditchendorf wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">If you're building a cocoa application that links to WebKit and includes a WebView in its UI, what's the best way to configure the user-agent string the WebView uses in both outgoing HTTP request headers and also the JS window.navigator.userAgent property?<br><br>e.g., say you were building a web browser and wanted to spoof safari.<br><br><br>for altering the "user-agent" request header, the only thing i an come up with is to implement the ResourceLoadDelegate method:<br><br>webView:resource:willSendRequest:redirectResponse:fromDataSource:<br><br>and return from it a new request that contains the desired header. this seems to work, but not sure if it's best?<br><br><br>as for the JS navigator.userAgent property, it seems to be read-only when i try to explicitly change it from:<br><br>webView:didClearWindowObject:forFrame:<br><br>I haven't found a way to change the JS property yet.<br><br><br>seems like this might be a common need... is an ER for a method for controlling the user-agent string in the WebKit client api in order?<br><br>thanks,<br>todd<br>_______________________________________________<br>webkit-dev mailing list<br><a href="mailto:webkit-dev@lists.webkit.org">webkit-dev@lists.webkit.org</a><br>http://lists.webkit.org/mailman/listinfo/webkit-dev<br></blockquote></div><br></body></html>