[MiniBrowser][Win] Allow selection of recent user agents
authordon.olmstead@sony.com <don.olmstead@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Aug 2018 14:36:34 +0000 (14:36 +0000)
committerdon.olmstead@sony.com <don.olmstead@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Aug 2018 14:36:34 +0000 (14:36 +0000)
https://bugs.webkit.org/show_bug.cgi?id=188371

Reviewed by Fujii Hironori.

Updates the user agent spoofing strings to the latest released
versions and adds Microsoft Edge's user agent.

Moves the menu item selection to the common base class, BrowserWindow
to support user agent spoofing in a WebKitLegacyBrowserWindow and
WebKitBrowserWindow.

* MiniBrowser/win/BrowserWindow.cpp: Added.
(BrowserWindow::setUserAgent):
* MiniBrowser/win/BrowserWindow.h:
* MiniBrowser/win/CMakeLists.txt:
* MiniBrowser/win/MainWindow.cpp:
(MainWindow::toggleMenuItem):
* MiniBrowser/win/MiniBrowserLib.rc:
* MiniBrowser/win/MiniBrowserLibResource.h:
* MiniBrowser/win/WebKitBrowserWindow.cpp:
* MiniBrowser/win/WebKitBrowserWindow.h:
* MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:
(WebKitLegacyBrowserWindow::setUserAgent):
* MiniBrowser/win/WebKitLegacyBrowserWindow.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234650 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/MiniBrowser/win/BrowserWindow.cpp [new file with mode: 0644]
Tools/MiniBrowser/win/BrowserWindow.h
Tools/MiniBrowser/win/CMakeLists.txt
Tools/MiniBrowser/win/MainWindow.cpp
Tools/MiniBrowser/win/MiniBrowserLib.rc
Tools/MiniBrowser/win/MiniBrowserLibResource.h
Tools/MiniBrowser/win/WebKitBrowserWindow.cpp
Tools/MiniBrowser/win/WebKitBrowserWindow.h
Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.cpp
Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.h

index 26336cf..38a0d4e 100644 (file)
@@ -1,3 +1,31 @@
+2018-08-07  Don Olmstead  <don.olmstead@sony.com>
+
+        [MiniBrowser][Win] Allow selection of recent user agents
+        https://bugs.webkit.org/show_bug.cgi?id=188371
+
+        Reviewed by Fujii Hironori.
+
+        Updates the user agent spoofing strings to the latest released
+        versions and adds Microsoft Edge's user agent.
+
+        Moves the menu item selection to the common base class, BrowserWindow
+        to support user agent spoofing in a WebKitLegacyBrowserWindow and
+        WebKitBrowserWindow.
+
+        * MiniBrowser/win/BrowserWindow.cpp: Added.
+        (BrowserWindow::setUserAgent):
+        * MiniBrowser/win/BrowserWindow.h:
+        * MiniBrowser/win/CMakeLists.txt:
+        * MiniBrowser/win/MainWindow.cpp:
+        (MainWindow::toggleMenuItem):
+        * MiniBrowser/win/MiniBrowserLib.rc:
+        * MiniBrowser/win/MiniBrowserLibResource.h:
+        * MiniBrowser/win/WebKitBrowserWindow.cpp:
+        * MiniBrowser/win/WebKitBrowserWindow.h:
+        * MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:
+        (WebKitLegacyBrowserWindow::setUserAgent):
+        * MiniBrowser/win/WebKitLegacyBrowserWindow.h:
+
 2018-08-07  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         Unreviewed, add a new address to my configuration
diff --git a/Tools/MiniBrowser/win/BrowserWindow.cpp b/Tools/MiniBrowser/win/BrowserWindow.cpp
new file mode 100644 (file)
index 0000000..c532dd2
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2018 Sony Interactive Entertainment Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "stdafx.h"
+#include "BrowserWindow.h"
+
+#include "MiniBrowserLibResource.h"
+
+void BrowserWindow::setUserAgent(UINT menuID)
+{
+    _bstr_t customUserAgent;
+
+    switch (menuID) {
+    case IDM_UA_DEFAULT:
+        // Set to null user agent
+        break;
+    case IDM_UA_SAFARI:
+        customUserAgent = L"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.2 Safari/605.1.15";
+        break;
+    case IDM_UA_SAFARI_IOS_IPHONE:
+        customUserAgent = L"Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1";
+        break;
+    case IDM_UA_SAFARI_IOS_IPAD:
+        customUserAgent = L"Mozilla/5.0 (iPad; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1";
+        break;
+    case IDM_UA_IE_11:
+        customUserAgent = L"Mozilla/5.0 (Windows NT 10.0; Win64; x64; Trident/7.0; rv:11.0) like Gecko";
+        break;
+    case IDM_UA_EDGE:
+        customUserAgent = L"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299";
+        break;
+    case IDM_UA_CHROME_MAC:
+        customUserAgent = L"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
+        break;
+    case IDM_UA_CHROME_WIN:
+        customUserAgent = L"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
+        break;
+    case IDM_UA_FIREFOX_MAC:
+        customUserAgent = L"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0";
+        break;
+    case IDM_UA_FIREFOX_WIN:
+        customUserAgent = L"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0";
+        break;
+    case IDM_UA_OTHER:
+    default:
+        ASSERT(0); // We should never hit this case
+        return;
+    }
+
+    setUserAgent(customUserAgent);
+}
index 9aeaec4..91d7b39 100644 (file)
@@ -46,7 +46,7 @@ public:
     virtual void launchInspector() = 0;
 
     virtual _bstr_t userAgent() = 0;
-    virtual void setUserAgent(UINT menuID) = 0;
+    void setUserAgent(UINT menuID);
     virtual void setUserAgent(_bstr_t& customUAString) = 0;
 
     virtual void showLayerTree() = 0;
index 61561a3..7fa2f3e 100644 (file)
@@ -7,6 +7,7 @@ set(MiniBrowser_INCLUDE_DIRECTORIES
 
 set(MiniBrowser_SOURCES
     AccessibilityDelegate.cpp
+    BrowserWindow.cpp
     Common.cpp
     DOMDefaultImpl.cpp
     MainWindow.cpp
index 7e36a82..f90528c 100644 (file)
@@ -294,9 +294,10 @@ bool MainWindow::toggleMenuItem(UINT menuID)
 
     switch (menuID) {
     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_SAFARI:
+    case IDM_UA_SAFARI_IOS_IPHONE:
+    case IDM_UA_SAFARI_IOS_IPAD:
+    case IDM_UA_EDGE:
     case IDM_UA_IE_11:
     case IDM_UA_CHROME_MAC:
     case IDM_UA_CHROME_WIN:
index 5c82f00..2ac64e2 100755 (executable)
@@ -77,11 +77,12 @@ BEGIN
         BEGIN\r
             MENUITEM "Default (Automatically Chosen)", IDM_UA_DEFAULT\r
             MENUITEM SEPARATOR\r
-            MENUITEM "Safari 8.0",                  IDM_UA_SAFARI_8_0\r
+            MENUITEM "Safari",                      IDM_UA_SAFARI\r
             MENUITEM SEPARATOR\r
-            MENUITEM "Safari iOS 8 - iPhone",       IDM_UA_SAFARI_IOS_8_IPHONE\r
-            MENUITEM "Safari iOS 8 - iPad",         IDM_UA_SAFARI_IOS_8_IPAD\r
+            MENUITEM "Safari iOS - iPhone",         IDM_UA_SAFARI_IOS_IPHONE\r
+            MENUITEM "Safari iOS - iPad",           IDM_UA_SAFARI_IOS_IPAD\r
             MENUITEM SEPARATOR\r
+            MENUITEM "Microsoft Edge",              IDM_UA_EDGE\r
             MENUITEM "Internet Explorer 11.0",      IDM_UA_IE_11\r
             MENUITEM SEPARATOR\r
             MENUITEM "Google Chrome - Mac",         IDM_UA_CHROME_MAC\r
index 30375d7..323ff23 100755 (executable)
 #define IDM_HISTORY_LINK9               159
 #define IDT_UPDATE_STATS                160
 #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
-#define IDM_ACTUAL_SIZE                 171
-#define IDM_ZOOM_IN                     172
-#define IDM_ZOOM_OUT                    173
-#define IDM_SHOW_LAYER_TREE             174
-#define IDD_AUTH                        174
-#define IDM_DEBUG_INFO_LAYER            175
+#define IDM_UA_SAFARI                   162
+#define IDM_UA_SAFARI_IOS_IPHONE        163
+#define IDM_UA_SAFARI_IOS_IPAD          164
+#define IDM_UA_EDGE                     165
+#define IDM_UA_IE_11                    166
+#define IDM_UA_CHROME_MAC               167
+#define IDM_UA_CHROME_WIN               168
+#define IDM_UA_FIREFOX_MAC              169
+#define IDM_UA_FIREFOX_WIN              170
+#define IDM_UA_OTHER                    171
+#define IDM_ACTUAL_SIZE                 172
+#define IDM_ZOOM_IN                     173
+#define IDM_ZOOM_OUT                    174
+#define IDM_SHOW_LAYER_TREE             175
+#define IDD_AUTH                        176
+#define IDM_DEBUG_INFO_LAYER            177
 #define IDC_EMPTY_URL_CACHE             1000
 #define IDC_RETURN_FREE_MEMORY          1001
 #define IDC_EMPTY_WEBCORE_CACHE         1002
index cd69795..e658a4e 100644 (file)
@@ -163,11 +163,6 @@ void WebKitBrowserWindow::launchInspector()
     WKInspectorShow(inspector);
 }
 
-void WebKitBrowserWindow::setUserAgent(UINT menuID)
-{
-    // This method should be removed.
-}
-
 void WebKitBrowserWindow::setUserAgent(_bstr_t& customUAString)
 {
     auto page = WKViewGetPage(m_view.get());
index 0502a8a..1583d74 100644 (file)
@@ -48,7 +48,6 @@ private:
     void launchInspector() override;
 
     _bstr_t userAgent() override;
-    void setUserAgent(UINT menuID) override;
     void setUserAgent(_bstr_t&) override;
 
     void showLayerTree() override;
index e9def39..d3f88ba 100644 (file)
@@ -521,51 +521,11 @@ void WebKitLegacyBrowserWindow::exitProgram()
     ::PostMessage(m_hMainWnd, static_cast<UINT>(WM_COMMAND), MAKELPARAM(IDM_EXIT, 0), 0);
 }
 
-void WebKitLegacyBrowserWindow::setUserAgent(UINT menuID)
+void WebKitLegacyBrowserWindow::setUserAgent(_bstr_t& customUserAgent)
 {
     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"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/8.0 Safari/600.1.25";
-        break;
-    case IDM_UA_SAFARI_IOS_8_IPHONE:
-        customUserAgent = L"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";
-        break;
-    case IDM_UA_SAFARI_IOS_8_IPAD:
-        customUserAgent = L"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";
-        break;
-    case IDM_UA_IE_11:
-        customUserAgent = L"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko";
-        break;
-    case IDM_UA_CHROME_MAC:
-        customUserAgent = L"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";
-        break;
-    case IDM_UA_CHROME_WIN:
-        customUserAgent = L"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31";
-        break;
-    case IDM_UA_FIREFOX_MAC:
-        customUserAgent = L"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0";
-        break;
-    case IDM_UA_FIREFOX_WIN:
-        customUserAgent = L"Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0";
-        break;
-    case IDM_UA_OTHER:
-    default:
-        ASSERT(0); // We should never hit this case
-        return;
-    }
-
-    setUserAgent(customUserAgent);
-}
-
-void WebKitLegacyBrowserWindow::setUserAgent(_bstr_t& customUserAgent)
-{
     webView()->setCustomUserAgent(customUserAgent.GetBSTR());
 }
 
index 74b0f32..711e745 100644 (file)
@@ -96,7 +96,6 @@ private:
     bool goBack();
     bool goForward();
 
-    void setUserAgent(UINT menuID);
     void setUserAgent(_bstr_t& customUAString);
     _bstr_t userAgent();