<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[19978] trunk</title>
</head>
<body>
<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/19978">19978</a></dd>
<dt>Author</dt> <dd>andersca</dd>
<dt>Date</dt> <dd>2007-03-06 00:37:36 -0800 (Tue, 06 Mar 2007)</dd>
</dl>
<h3>Log Message</h3>
<pre>WebCore:
Reviewed by Adam.
WebCore part of patch to make it possible to have different user agents for different URLs.
* bindings/js/kjs_navigator.cpp:
(KJS::Navigator::getValueProperty):
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::initScriptIfNeeded):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setLoading):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::userAgent):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::applyUserAgent):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::userAgent):
WebKit:
Reviewed by Adam.
Update for WebCore changes.
* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::userAgent):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCorebindingsjskjs_navigatorcpp">trunk/WebCore/bindings/js/kjs_navigator.cpp</a></li>
<li><a href="#trunkWebCorebindingsjskjs_proxycpp">trunk/WebCore/bindings/js/kjs_proxy.cpp</a></li>
<li><a href="#trunkWebCoreloaderFrameLoadercpp">trunk/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkWebCoreloaderFrameLoaderh">trunk/WebCore/loader/FrameLoader.h</a></li>
<li><a href="#trunkWebCoreloaderFrameLoaderClienth">trunk/WebCore/loader/FrameLoaderClient.h</a></li>
<li><a href="#trunkWebCoreplatformgraphicssvgSVGImageEmptyClientsh">trunk/WebCore/platform/graphics/svg/SVGImageEmptyClients.h</a></li>
<li><a href="#trunkWebKitChangeLog">trunk/WebKit/ChangeLog</a></li>
<li><a href="#trunkWebKitWebCoreSupportWebFrameLoaderClienth">trunk/WebKit/WebCoreSupport/WebFrameLoaderClient.h</a></li>
<li><a href="#trunkWebKitWebCoreSupportWebFrameLoaderClientmm">trunk/WebKit/WebCoreSupport/WebFrameLoaderClient.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebCore/ChangeLog        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2007-03-06 Anders Carlsson <acarlsson@apple.com>
+
+ Reviewed by Adam.
+
+ WebCore part of patch to make it possible to have different user agents for different URLs.
+
+ * bindings/js/kjs_navigator.cpp:
+ (KJS::Navigator::getValueProperty):
+ * bindings/js/kjs_proxy.cpp:
+ (WebCore::KJSProxy::initScriptIfNeeded):
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::setLoading):
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::userAgent):
+ (WebCore::FrameLoader::loadResourceSynchronously):
+ (WebCore::FrameLoader::applyUserAgent):
+ * loader/FrameLoader.h:
+ * loader/FrameLoaderClient.h:
+ * platform/graphics/svg/SVGImageEmptyClients.h:
+ (WebCore::SVGEmptyFrameLoaderClient::userAgent):
+
</ins><span class="cx"> 2007-03-05 Kevin McCullough <kmccullough@apple.com>
</span><span class="cx">
</span><span class="cx"> Reviewed by Mark and Dave H.
</span></span></pre></div>
<a id="trunkWebCorebindingsjskjs_navigatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/js/kjs_navigator.cpp (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/js/kjs_navigator.cpp        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebCore/bindings/js/kjs_navigator.cpp        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx">
</span><span class="cx"> #include "AtomicString.h"
</span><span class="cx"> #include "CookieJar.h"
</span><ins>+#include "Document.h"
</ins><span class="cx"> #include "Frame.h"
</span><span class="cx"> #include "FrameLoader.h"
</span><span class="cx"> #include "Language.h"
</span><span class="lines">@@ -190,7 +191,7 @@
</span><span class="cx"> return jsString("Netscape");
</span><span class="cx"> case AppVersion: {
</span><span class="cx"> // Version is everything in the user agent string past the "Mozilla/" prefix.
</span><del>- const String userAgent = m_frame->loader()->userAgent();
</del><ins>+ const String userAgent = m_frame->loader()->userAgent(m_frame->document() ? m_frame->document()->URL() : KURL());
</ins><span class="cx"> return jsString(userAgent.substring(userAgent.find('/') + 1));
</span><span class="cx"> }
</span><span class="cx"> case Product:
</span><span class="lines">@@ -204,7 +205,7 @@
</span><span class="cx"> case Language:
</span><span class="cx"> return jsString(defaultLanguage());
</span><span class="cx"> case UserAgent:
</span><del>- return jsString(m_frame->loader()->userAgent());
</del><ins>+ return jsString(m_frame->loader()->userAgent(m_frame->document() ? m_frame->document()->URL() : KURL()));
</ins><span class="cx"> case Platform:
</span><span class="cx"> return jsString(WEBCORE_NAVIGATOR_PLATFORM);
</span><span class="cx"> case _Plugins:
</span></span></pre></div>
<a id="trunkWebCorebindingsjskjs_proxycpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/js/kjs_proxy.cpp (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/js/kjs_proxy.cpp        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebCore/bindings/js/kjs_proxy.cpp        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -22,6 +22,7 @@
</span><span class="cx"> #include "kjs_proxy.h"
</span><span class="cx">
</span><span class="cx"> #include "Chrome.h"
</span><ins>+#include "Document.h"
</ins><span class="cx"> #include "Frame.h"
</span><span class="cx"> #include "FrameLoader.h"
</span><span class="cx"> #include "JSDOMWindow.h"
</span><span class="lines">@@ -143,7 +144,7 @@
</span><span class="cx"> // Create a KJS interpreter for this frame
</span><span class="cx"> m_script = new ScriptInterpreter(globalObject, m_frame);
</span><span class="cx">
</span><del>- String userAgent = m_frame->loader()->userAgent();
</del><ins>+ String userAgent = m_frame->loader()->userAgent(m_frame->document() ? m_frame->document()->URL() : KURL());
</ins><span class="cx"> if (userAgent.find("Microsoft") >= 0 || userAgent.find("MSIE") >= 0)
</span><span class="cx"> m_script->setCompatMode(Interpreter::IECompat);
</span><span class="cx"> else
</span></span></pre></div>
<a id="trunkWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/loader/FrameLoader.cpp (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/loader/FrameLoader.cpp        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebCore/loader/FrameLoader.cpp        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -2814,9 +2814,9 @@
</span><span class="cx"> load(copy, true, event, 0, HashMap<String, String>());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String FrameLoader::userAgent() const
</del><ins>+String FrameLoader::userAgent(const KURL& url) const
</ins><span class="cx"> {
</span><del>- return m_client->userAgent();
</del><ins>+ return m_client->userAgent(url);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FrameLoader::createEmptyDocument()
</span><span class="lines">@@ -2994,7 +2994,7 @@
</span><span class="cx"> initialRequest.setHTTPReferrer(referrer);
</span><span class="cx">
</span><span class="cx"> initialRequest.setMainDocumentURL(m_frame->page()->mainFrame()->loader()->documentLoader()->request().url());
</span><del>- initialRequest.setHTTPUserAgent(client()->userAgent());
</del><ins>+ initialRequest.setHTTPUserAgent(client()->userAgent(request.url()));
</ins><span class="cx">
</span><span class="cx"> unsigned long identifier = 0;
</span><span class="cx"> ResourceRequest newRequest(initialRequest);
</span><span class="lines">@@ -3406,7 +3406,7 @@
</span><span class="cx">
</span><span class="cx"> void FrameLoader::applyUserAgent(ResourceRequest& request)
</span><span class="cx"> {
</span><del>- String userAgent = client()->userAgent();
</del><ins>+ String userAgent = client()->userAgent(request.url());
</ins><span class="cx"> ASSERT(!userAgent.isNull());
</span><span class="cx"> request.setHTTPUserAgent(userAgent);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkWebCoreloaderFrameLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/loader/FrameLoader.h (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/loader/FrameLoader.h        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebCore/loader/FrameLoader.h        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -324,7 +324,7 @@
</span><span class="cx"> void tokenizerProcessedData();
</span><span class="cx">
</span><span class="cx"> void handledOnloadEvents();
</span><del>- String userAgent() const;
</del><ins>+ String userAgent(const KURL&) const;
</ins><span class="cx">
</span><span class="cx"> Widget* createJavaAppletWidget(const IntSize&, Element*, const HashMap<String, String>& args);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkWebCoreloaderFrameLoaderClienth"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/loader/FrameLoaderClient.h (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/loader/FrameLoaderClient.h        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebCore/loader/FrameLoaderClient.h        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx"> virtual PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest&, const SubstituteData&) = 0;
</span><span class="cx"> virtual void setTitle(const String& title, const KURL&) = 0;
</span><span class="cx">
</span><del>- virtual String userAgent() = 0;
</del><ins>+ virtual String userAgent(const KURL&) = 0;
</ins><span class="cx">
</span><span class="cx"> virtual void saveDocumentViewToPageCache(PageCache*) = 0;
</span><span class="cx"> virtual bool canCachePage() const = 0;
</span></span></pre></div>
<a id="trunkWebCoreplatformgraphicssvgSVGImageEmptyClientsh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/platform/graphics/svg/SVGImageEmptyClients.h (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/platform/graphics/svg/SVGImageEmptyClients.h        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebCore/platform/graphics/svg/SVGImageEmptyClients.h        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -247,7 +247,7 @@
</span><span class="cx"> virtual PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest& request, const SubstituteData& substituteData) { return new DocumentLoader(request, substituteData); }
</span><span class="cx"> virtual void setTitle(const String& title, const KURL&) { }
</span><span class="cx">
</span><del>- virtual String userAgent() { return ""; }
</del><ins>+ virtual String userAgent(const KURL&) { return ""; }
</ins><span class="cx">
</span><span class="cx"> virtual void setDocumentViewFromPageCache(PageCache*) { }
</span><span class="cx"> virtual void updateGlobalHistoryForStandardLoad(const KURL&) { }
</span></span></pre></div>
<a id="trunkWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/ChangeLog (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKit/ChangeLog        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebKit/ChangeLog        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2007-03-06 Anders Carlsson <acarlsson@apple.com>
+
+ Reviewed by Adam.
+
+ Update for WebCore changes.
+
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebFrameLoaderClient.mm:
+ (WebFrameLoaderClient::userAgent):
+
</ins><span class="cx"> 2007-03-05 Anders Carlsson <acarlsson@apple.com>
</span><span class="cx">
</span><span class="cx"> Reviewed by Adam, Darin.
</span></span></pre></div>
<a id="trunkWebKitWebCoreSupportWebFrameLoaderClienth"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/WebCoreSupport/WebFrameLoaderClient.h (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKit/WebCoreSupport/WebFrameLoaderClient.h        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebKit/WebCoreSupport/WebFrameLoaderClient.h        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx">
</span><span class="cx"> virtual void setDefersLoading(bool);
</span><span class="cx">
</span><del>- virtual WebCore::String userAgent();
</del><ins>+ virtual WebCore::String userAgent(const WebCore::KURL&);
</ins><span class="cx">
</span><span class="cx"> virtual bool willUseArchive(WebCore::ResourceLoader*, const WebCore::ResourceRequest&, const WebCore::KURL& originalURL) const;
</span><span class="cx"> virtual bool isArchiveLoadPending(WebCore::ResourceLoader*) const;
</span></span></pre></div>
<a id="trunkWebKitWebCoreSupportWebFrameLoaderClientmm"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/WebCoreSupport/WebFrameLoaderClient.mm (19977 => 19978)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKit/WebCoreSupport/WebFrameLoaderClient.mm        2007-03-06 07:04:16 UTC (rev 19977)
+++ trunk/WebKit/WebCoreSupport/WebFrameLoaderClient.mm        2007-03-06 08:37:36 UTC (rev 19978)
</span><span class="lines">@@ -985,7 +985,7 @@
</span><span class="cx"> (core(m_webFrame.get())->loader()->*function)(action);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebFrameLoaderClient::userAgent()
</del><ins>+String WebFrameLoaderClient::userAgent(const KURL&)
</ins><span class="cx"> {
</span><span class="cx"> return [getWebView(m_webFrame.get()) _userAgent];
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>