<!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" />
<title>[174831] trunk/Tools</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { 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 #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#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>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/174831">174831</a></dd>
<dt>Author</dt> <dd>bfulgham@apple.com</dd>
<dt>Date</dt> <dd>2014-10-17 13:02:17 -0700 (Fri, 17 Oct 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Win] Allow WinLauncher to specify Custom User Agent strings
https://bugs.webkit.org/show_bug.cgi?id=137828

Reviewed by Dean Jackson.

* WinLauncher/Common.cpp: Add support for custom user agent strings.
* WinLauncher/WinLauncher.cpp: Add some convenience methods to get
and set the user agent strings.
* WinLauncher/WinLauncher.h:
* WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc: Add new menu
resources and dialog for setting custom User Agent strings.
* WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsWinLauncherCommoncpp">trunk/Tools/WinLauncher/Common.cpp</a></li>
<li><a href="#trunkToolsWinLauncherWinLaunchercpp">trunk/Tools/WinLauncher/WinLauncher.cpp</a></li>
<li><a href="#trunkToolsWinLauncherWinLauncherh">trunk/Tools/WinLauncher/WinLauncher.h</a></li>
<li><a href="#trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibrc">trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc</a></li>
<li><a href="#trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibResourceh">trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (174830 => 174831)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2014-10-17 19:50:09 UTC (rev 174830)
+++ trunk/Tools/ChangeLog        2014-10-17 20:02:17 UTC (rev 174831)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2014-10-17  Brent Fulgham  &lt;bfulgham@apple.com&gt;
+
+        [Win] Allow WinLauncher to specify Custom User Agent strings
+        https://bugs.webkit.org/show_bug.cgi?id=137828
+
+        Reviewed by Dean Jackson.
+
+        * WinLauncher/Common.cpp: Add support for custom user agent strings.
+        * WinLauncher/WinLauncher.cpp: Add some convenience methods to get
+        and set the user agent strings.
+        * WinLauncher/WinLauncher.h:
+        * WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc: Add new menu
+        resources and dialog for setting custom User Agent strings.
+        * WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h:
+
</ins><span class="cx"> 2014-10-16  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS] Turn off font autosizing for iOS WebKitTestRunner
</span></span></pre></div>
<a id="trunkToolsWinLauncherCommoncpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/Common.cpp (174830 => 174831)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/Common.cpp        2014-10-17 19:50:09 UTC (rev 174830)
+++ trunk/Tools/WinLauncher/Common.cpp        2014-10-17 20:02:17 UTC (rev 174831)
</span><span class="lines">@@ -90,6 +90,7 @@
</span><span class="cx"> ATOM MyRegisterClass(HINSTANCE hInstance);
</span><span class="cx"> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
</span><span class="cx"> INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
</span><ins>+INT_PTR CALLBACK CustomUserAgent(HWND, UINT, WPARAM, LPARAM);
</ins><span class="cx"> LRESULT CALLBACK EditProc(HWND, UINT, WPARAM, LPARAM);
</span><span class="cx"> LRESULT CALLBACK BackButtonProc(HWND, UINT, WPARAM, LPARAM);
</span><span class="cx"> LRESULT CALLBACK ForwardButtonProc(HWND, UINT, WPARAM, LPARAM);
</span><span class="lines">@@ -287,7 +288,7 @@
</span><span class="cx">     ::DeleteDC(printDC);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void ToggleMenuItem(HWND hWnd, UINT menuID)
</del><ins>+static void ToggleMenuFlag(HWND hWnd, UINT menuID)
</ins><span class="cx"> {
</span><span class="cx">     HMENU menu = ::GetMenu(hWnd);
</span><span class="cx"> 
</span><span class="lines">@@ -300,7 +301,49 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     BOOL newState = !(info.fState &amp; MFS_CHECKED);
</span><ins>+    info.fState = (newState) ? MFS_CHECKED : MFS_UNCHECKED;
</ins><span class="cx"> 
</span><ins>+    ::SetMenuItemInfo(menu, menuID, FALSE, &amp;info);
+}
+
+static bool menuItemIsChecked(const MENUITEMINFO&amp; info)
+{
+    return info.fState &amp; MFS_CHECKED;
+}
+
+static void turnOffOtherUserAgents(HMENU menu)
+{
+    MENUITEMINFO info;
+    ::memset(&amp;info, 0x00, sizeof(info));
+    info.cbSize = sizeof(info);
+    info.fMask = MIIM_STATE;
+
+    // Must unset the other menu items:
+    for (UINT menuToClear = IDM_UA_DEFAULT; menuToClear &lt;= IDM_UA_OTHER; ++menuToClear) {
+        if (!::GetMenuItemInfo(menu, menuToClear, FALSE, &amp;info))
+            continue;
+        if (!menuItemIsChecked(info))
+            continue;
+
+        info.fState = MFS_UNCHECKED;
+        ::SetMenuItemInfo(menu, menuToClear, FALSE, &amp;info);
+    }
+}
+
+static void ToggleMenuItem(HWND hWnd, UINT menuID)
+{
+    HMENU menu = ::GetMenu(hWnd);
+
+    MENUITEMINFO info;
+    ::memset(&amp;info, 0x00, sizeof(info));
+    info.cbSize = sizeof(info);
+    info.fMask = MIIM_STATE;
+
+    if (!::GetMenuItemInfo(menu, menuID, FALSE, &amp;info))
+        return;
+
+    BOOL newState = !menuItemIsChecked(info);
+
</ins><span class="cx">     if (!gWinLauncher-&gt;standardPreferences() || !gWinLauncher-&gt;privatePreferences())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -331,6 +374,22 @@
</span><span class="cx">         gWinLauncher-&gt;privatePreferences()-&gt;setAllowUniversalAccessFromFileURLs(newState);
</span><span class="cx">         gWinLauncher-&gt;privatePreferences()-&gt;setAllowFileAccessFromFileURLs(newState);
</span><span class="cx">         break;
</span><ins>+    case IDM_UA_DEFAULT:
+    case IDM_UA_SAFARI_8_0:
+    case IDM_UA_SAFARI_IOS_8_IPHONE:
+    case IDM_UA_SAFARI_IOS_8_IPAD:
+    case IDM_UA_IE_11:
+    case IDM_UA_CHROME_MAC:
+    case IDM_UA_CHROME_WIN:
+    case IDM_UA_FIREFOX_MAC:
+    case IDM_UA_FIREFOX_WIN:
+        gWinLauncher-&gt;setUserAgent(menuID);
+        turnOffOtherUserAgents(menu);
+        break;
+    case IDM_UA_OTHER:
+        // The actual user agent string will be set by the custom user agent dialog
+        turnOffOtherUserAgents(menu);
+        break;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     info.fState = (newState) ? MFS_CHECKED : MFS_UNCHECKED;
</span><span class="lines">@@ -404,8 +463,23 @@
</span><span class="cx">         case IDM_DISABLE_STYLES:
</span><span class="cx">         case IDM_DISABLE_JAVASCRIPT:
</span><span class="cx">         case IDM_DISABLE_LOCAL_FILE_RESTRICTIONS:
</span><ins>+        case IDM_UA_DEFAULT:
+        case IDM_UA_SAFARI_8_0:
+        case IDM_UA_SAFARI_IOS_8_IPHONE:
+        case IDM_UA_SAFARI_IOS_8_IPAD:
+        case IDM_UA_IE_11:
+        case IDM_UA_CHROME_MAC:
+        case IDM_UA_CHROME_WIN:
+        case IDM_UA_FIREFOX_MAC:
+        case IDM_UA_FIREFOX_WIN:
</ins><span class="cx">             ToggleMenuItem(hWnd, wmId);
</span><span class="cx">             break;
</span><ins>+        case IDM_UA_OTHER:
+            if (wmEvent)
+                ToggleMenuItem(hWnd, wmId);
+            else
+                DialogBox(hInst, MAKEINTRESOURCE(IDD_USER_AGENT), hWnd, CustomUserAgent);
+            break;
</ins><span class="cx">         default:
</span><span class="cx">             return CallWindowProc(parentProc, hWnd, message, wParam, lParam);
</span><span class="cx">         }
</span><span class="lines">@@ -517,6 +591,44 @@
</span><span class="cx">     return (INT_PTR)FALSE;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+INT_PTR CALLBACK CustomUserAgent(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+    switch (message) {
+    case WM_INITDIALOG: {
+        HWND edit = ::GetDlgItem(hDlg, IDC_USER_AGENT_INPUT);
+        _bstr_t userAgent;
+        if (gWinLauncher)
+            userAgent = gWinLauncher-&gt;userAgent();
+
+        ::SetWindowText(edit, static_cast&lt;LPCTSTR&gt;(userAgent));
+        return (INT_PTR)TRUE;
+    }
+
+    case WM_COMMAND:
+        if (LOWORD(wParam) == IDOK) {
+            HWND edit = ::GetDlgItem(hDlg, IDC_USER_AGENT_INPUT);
+
+            TCHAR buffer[1024];
+            int strLen = ::GetWindowText(edit, buffer, 1024);
+            buffer[strLen] = 0;
+
+            _bstr_t bstr(buffer);
+            if (bstr.length()) {
+                gWinLauncher-&gt;setUserAgent(bstr);
+                ::PostMessage(hMainWnd, static_cast&lt;UINT&gt;(WM_COMMAND), MAKELPARAM(IDM_UA_OTHER, 1), 0);
+            }
+        }
+
+        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {
+            ::EndDialog(hDlg, LOWORD(wParam));
+            return (INT_PTR)TRUE;
+        }
+        break;
+    }
+    return (INT_PTR)FALSE;
+}
+
</ins><span class="cx"> static void loadURL(BSTR passedURL)
</span><span class="cx"> {
</span><span class="cx">     if (FAILED(gWinLauncher-&gt;loadURL(passedURL)))
</span></span></pre></div>
<a id="trunkToolsWinLauncherWinLaunchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/WinLauncher.cpp (174830 => 174831)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/WinLauncher.cpp        2014-10-17 19:50:09 UTC (rev 174830)
+++ trunk/Tools/WinLauncher/WinLauncher.cpp        2014-10-17 20:02:17 UTC (rev 174831)
</span><span class="lines">@@ -387,3 +387,60 @@
</span><span class="cx"> {
</span><span class="cx">     ::PostMessage(m_hMainWnd, static_cast&lt;UINT&gt;(WM_COMMAND), MAKELPARAM(IDM_EXIT, 0), 0);
</span><span class="cx"> }
</span><ins>+
+void WinLauncher::setUserAgent(UINT menuID)
+{
+    if (!webView())
+        return;
+
+    _bstr_t customUserAgent;
+    switch (menuID) {
+    case IDM_UA_DEFAULT:
+        // Set to null user agent
+        break;
+    case IDM_UA_SAFARI_8_0:
+        customUserAgent = L&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/8.0 Safari/600.1.25&quot;;
+        break;
+    case IDM_UA_SAFARI_IOS_8_IPHONE:
+        customUserAgent = L&quot;Mozilla/5.0 (iPhone; CPU OS 8_1 like Mac OS X) AppleWebKit/601.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B403 Safari/600.1.4&quot;;
+        break;
+    case IDM_UA_SAFARI_IOS_8_IPAD:
+        customUserAgent = L&quot;Mozilla/5.0 (iPad; CPU OS 8_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B403 Safari/600.1.4&quot;;
+        break;
+    case IDM_UA_IE_11:
+        customUserAgent = L&quot;Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko&quot;;
+        break;
+    case IDM_UA_CHROME_MAC:
+        customUserAgent = L&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31&quot;;
+        break;
+    case IDM_UA_CHROME_WIN:
+        customUserAgent = L&quot;Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31&quot;;
+        break;
+    case IDM_UA_FIREFOX_MAC:
+        customUserAgent = L&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0&quot;;
+        break;
+    case IDM_UA_FIREFOX_WIN:
+        customUserAgent = L&quot;Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0&quot;;
+        break;
+    case IDM_UA_OTHER:
+    default:
+        ASSERT(0); // We should never hit this case
+        return;
+    }
+
+    setUserAgent(customUserAgent);
+}
+
+void WinLauncher::setUserAgent(_bstr_t&amp; customUserAgent)
+{
+    webView()-&gt;setCustomUserAgent(customUserAgent.GetBSTR());
+}
+
+_bstr_t WinLauncher::userAgent()
+{
+    _bstr_t userAgent;
+    if (FAILED(webView()-&gt;customUserAgent(&amp;userAgent.GetBSTR())))
+        return _bstr_t(L&quot;- Unknown -: Call failed.&quot;);
+
+    return userAgent;
+}
</ins></span></pre></div>
<a id="trunkToolsWinLauncherWinLauncherh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/WinLauncher.h (174830 => 174831)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/WinLauncher.h        2014-10-17 19:50:09 UTC (rev 174830)
+++ trunk/Tools/WinLauncher/WinLauncher.h        2014-10-17 20:02:17 UTC (rev 174831)
</span><span class="lines">@@ -78,6 +78,10 @@
</span><span class="cx">     bool goBack();
</span><span class="cx">     bool goForward();
</span><span class="cx"> 
</span><ins>+    void setUserAgent(UINT menuID);
+    void setUserAgent(_bstr_t&amp; customUAString);
+    _bstr_t userAgent();
+
</ins><span class="cx">     PageLoadTestClient&amp; pageLoadTestClient() { return *m_pageLoadTestClient; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibrc"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc (174830 => 174831)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc        2014-10-17 19:50:09 UTC (rev 174830)
+++ trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc        2014-10-17 20:02:17 UTC (rev 174831)
</span><span class="lines">@@ -62,6 +62,25 @@
</span><span class="cx">     POPUP &quot;D&amp;evelop&quot;
</span><span class="cx">     BEGIN
</span><span class="cx">         MENUITEM &quot;Show Web Inspector&quot;,          IDM_WEB_INSPECTOR
</span><ins>+        POPUP &quot;User Agent&quot;
+        BEGIN
+            MENUITEM &quot;Default (Automatically Chosen)&quot;, IDM_UA_DEFAULT
+            MENUITEM SEPARATOR
+            MENUITEM &quot;Safari 8.0&quot;,                  IDM_UA_SAFARI_8_0
+            MENUITEM SEPARATOR
+            MENUITEM &quot;Safari iOS 8 - iPhone&quot;,       IDM_UA_SAFARI_IOS_8_IPHONE
+            MENUITEM &quot;Safari iOS 8 - iPad&quot;,         IDM_UA_SAFARI_IOS_8_IPAD
+            MENUITEM SEPARATOR
+            MENUITEM &quot;Internet Explorer 11.0&quot;,      IDM_UA_IE_11
+            MENUITEM SEPARATOR
+            MENUITEM &quot;Google Chrome - Mac&quot;,         IDM_UA_CHROME_MAC
+            MENUITEM &quot;Google Chrome - Windows&quot;,     IDM_UA_CHROME_WIN
+            MENUITEM SEPARATOR
+            MENUITEM &quot;Firefox - Mac&quot;,               IDM_UA_FIREFOX_MAC
+            MENUITEM &quot;Firefox - Windows&quot;,           IDM_UA_FIREFOX_WIN
+            MENUITEM SEPARATOR
+            MENUITEM &quot;Other&quot;,                       IDM_UA_OTHER
+        END
</ins><span class="cx">         MENUITEM SEPARATOR
</span><span class="cx">         MENUITEM &quot;Disable Images&quot;,              IDM_DISABLE_IMAGES
</span><span class="cx">         MENUITEM &quot;Disable Styles&quot;,              IDM_DISABLE_STYLES
</span><span class="lines">@@ -199,7 +218,18 @@
</span><span class="cx">     RTEXT           &quot;0&quot;,IDC_SITE_ICONS_WITH_DATA,101,410,52,8
</span><span class="cx"> END
</span><span class="cx"> 
</span><ins>+IDD_USER_AGENT DIALOGEX 0, 0, 309, 176
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION &quot;Dialog&quot;
+FONT 8, &quot;MS Shell Dlg&quot;, 400, 0, 0x1
+BEGIN
+    LTEXT           &quot;Type a custom user agent string for this page.&quot;,IDC_Message,7,7,295,19
+    EDITTEXT        IDC_USER_AGENT_INPUT,7,34,295,117,ES_AUTOHSCROLL
+    DEFPUSHBUTTON   &quot;OK&quot;,IDOK,198,155,50,14
+    PUSHBUTTON      &quot;Cancel&quot;,IDCANCEL,252,155,50,14
+END
</ins><span class="cx"> 
</span><ins>+
</ins><span class="cx"> #ifdef APSTUDIO_INVOKED
</span><span class="cx"> /////////////////////////////////////////////////////////////////////////////
</span><span class="cx"> //
</span><span class="lines">@@ -247,6 +277,14 @@
</span><span class="cx">         TOPMARGIN, 7
</span><span class="cx">         BOTTOMMARGIN, 449
</span><span class="cx">     END
</span><ins>+
+    IDD_USER_AGENT, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 302
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 169
+    END
</ins><span class="cx"> END
</span><span class="cx"> #endif    // APSTUDIO_INVOKED
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibResourceh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h (174830 => 174831)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h        2014-10-17 19:50:09 UTC (rev 174830)
+++ trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h        2014-10-17 20:02:17 UTC (rev 174831)
</span><span class="lines">@@ -25,6 +25,7 @@
</span><span class="cx"> #define IDR_MAINFRAME                   128
</span><span class="cx"> #define IDD_CACHES                      129
</span><span class="cx"> #define IDM_HISTORY_BACKWARD            130
</span><ins>+#define IDD_USER_AGENT                  130
</ins><span class="cx"> #define IDM_HISTORY_FORWARD             131
</span><span class="cx"> #define IDM_HISTORY_LINK0               150
</span><span class="cx"> #define IDM_HISTORY_LINK1               151
</span><span class="lines">@@ -37,6 +38,16 @@
</span><span class="cx"> #define IDM_HISTORY_LINK8               158
</span><span class="cx"> #define IDM_HISTORY_LINK9               159
</span><span class="cx"> #define IDT_UPDATE_STATS                160
</span><ins>+#define IDM_UA_DEFAULT                  161
+#define IDM_UA_SAFARI_8_0               162
+#define IDM_UA_SAFARI_IOS_8_IPHONE      163
+#define IDM_UA_SAFARI_IOS_8_IPAD        164
+#define IDM_UA_IE_11                    165
+#define IDM_UA_CHROME_MAC               166
+#define IDM_UA_CHROME_WIN               167
+#define IDM_UA_FIREFOX_MAC              168
+#define IDM_UA_FIREFOX_WIN              169
+#define IDM_UA_OTHER                    170
</ins><span class="cx"> #define IDC_EMPTY_URL_CACHE             1000
</span><span class="cx"> #define IDC_RETURN_FREE_MEMORY          1001
</span><span class="cx"> #define IDC_EMPTY_WEBCORE_CACHE         1002
</span><span class="lines">@@ -80,13 +91,15 @@
</span><span class="cx"> #define IDC_JSC_HEAP_FREE               1042
</span><span class="cx"> #define IDC_BUTTON5                     1043
</span><span class="cx"> #define IDC_TOTAL_FONT_OBJECTS          1044
</span><ins>+#define IDC_Message                     1044
</ins><span class="cx"> #define IDC_INACTIVE_FONT_OBJECTS       1045
</span><span class="cx"> #define IDC_GLYPH_PAGES                 1046
</span><span class="cx"> #define IDC_PAGE_URL_MAPPINGS           1047
</span><span class="cx"> #define IDC_RETAINED_PAGE_URLS          1048
</span><span class="cx"> #define IDC_SITE_ICON_RECORDS           1049
</span><span class="cx"> #define IDC_TOTAL_FONT_OBJECTS5         1050
</span><del>-#define IDC_SITE_ICONS_WITH_DATA        1050
</del><ins>+#define IDC_SITE_ICONS_WITH_DATA        1051
+#define IDC_USER_AGENT_INPUT            1052
</ins><span class="cx"> #define IDC_STATIC                      -1
</span><span class="cx"> 
</span><span class="cx"> // Next default values for new objects
</span><span class="lines">@@ -94,9 +107,9 @@
</span><span class="cx"> #ifdef APSTUDIO_INVOKED
</span><span class="cx"> #ifndef APSTUDIO_READONLY_SYMBOLS
</span><span class="cx"> #define _APS_NO_MFC                     1
</span><del>-#define _APS_NEXT_RESOURCE_VALUE        130
</del><ins>+#define _APS_NEXT_RESOURCE_VALUE        171
</ins><span class="cx"> #define _APS_NEXT_COMMAND_VALUE         32771
</span><del>-#define _APS_NEXT_CONTROL_VALUE         1044
</del><ins>+#define _APS_NEXT_CONTROL_VALUE         1053
</ins><span class="cx"> #define _APS_NEXT_SYMED_VALUE           110
</span><span class="cx"> #endif
</span><span class="cx"> #endif
</span></span></pre>
</div>
</div>

</body>
</html>