Title: [207120] releases/WebKitGTK/webkit-2.14
- Revision
- 207120
- Author
- [email protected]
- Date
- 2016-10-11 06:24:09 -0700 (Tue, 11 Oct 2016)
Log Message
Merge r206519 - [GTK] Add Chrome UA quirk
https://bugs.webkit.org/show_bug.cgi?id=162617
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Add Chrome UA quirk and use it on typekit.net, typekit.com, youtube.com, slack.com, and
any domain that begins with "google".
* platform/gtk/UserAgentGtk.cpp:
(WebCore::buildUserAgentString):
(WebCore::urlRequiresChromeBrowser):
(WebCore::standardUserAgentForURL):
Tools:
Update test. This portion of the commit was actually unreviewed.
* TestWebKitAPI/Tests/WebCore/gtk/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog (207119 => 207120)
--- releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog 2016-10-11 13:24:01 UTC (rev 207119)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog 2016-10-11 13:24:09 UTC (rev 207120)
@@ -1,5 +1,20 @@
2016-09-28 Michael Catanzaro <[email protected]>
+ [GTK] Add Chrome UA quirk
+ https://bugs.webkit.org/show_bug.cgi?id=162617
+
+ Reviewed by Carlos Garcia Campos.
+
+ Add Chrome UA quirk and use it on typekit.net, typekit.com, youtube.com, slack.com, and
+ any domain that begins with "google".
+
+ * platform/gtk/UserAgentGtk.cpp:
+ (WebCore::buildUserAgentString):
+ (WebCore::urlRequiresChromeBrowser):
+ (WebCore::standardUserAgentForURL):
+
+2016-09-28 Michael Catanzaro <[email protected]>
+
[GTK] User agent should always claim to be Intel
https://bugs.webkit.org/show_bug.cgi?id=162610
Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/platform/gtk/UserAgentGtk.cpp (207119 => 207120)
--- releases/WebKitGTK/webkit-2.14/Source/WebCore/platform/gtk/UserAgentGtk.cpp 2016-10-11 13:24:01 UTC (rev 207119)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/platform/gtk/UserAgentGtk.cpp 2016-10-11 13:24:09 UTC (rev 207120)
@@ -46,6 +46,7 @@
class UserAgentQuirks {
public:
enum UserAgentQuirk {
+ NeedsChromeBrowser,
NeedsMacintoshPlatform,
NumUserAgentQuirks
@@ -125,9 +126,15 @@
uaString.appendLiteral(") AppleWebKit/");
uaString.append(versionForUAString());
+ uaString.appendLiteral(" (KHTML, like Gecko) ");
+
+ // Note that Chrome UAs advertise *both* Chrome and Safari.
+ if (quirks.contains(UserAgentQuirks::NeedsChromeBrowser))
+ uaString.append("Chrome/51.0.2704.106 ");
+
// Version/X is mandatory *before* Safari/X to be a valid Safari UA. See
// https://bugs.webkit.org/show_bug.cgi?id=133403 for details.
- uaString.appendLiteral(" (KHTML, like Gecko) Version/10.0 Safari/");
+ uaString.appendLiteral(" Version/10.0 Safari/");
uaString.append(versionForUAString());
return uaString.toString();
@@ -159,6 +166,30 @@
return standardUserAgentStatic() + ' ' + applicationName + '/' + finalApplicationVersion;
}
+// Be careful with this quirk: it's an invitation for sites to use _javascript_ we can't handle.
+static bool urlRequiresChromeBrowser(const URL& url)
+{
+ String baseDomain = topPrivatelyControlledDomain(url.host());
+
+ // Needed for fonts on many sites, https://bugs.webkit.org/show_bug.cgi?id=147296
+ if (baseDomain == "typekit.net" || baseDomain == "typekit.com")
+ return true;
+
+ // Shut off Chrome ads. Avoid missing features on maps.google.com.
+ if (baseDomain.startsWith("google"))
+ return true;
+
+ // Needed for YouTube 360 (requires ENABLE_MEDIA_SOURCE).
+ if (baseDomain == "youtube.com")
+ return true;
+
+ // Slack completely blocks users with our standard user agent.
+ if (baseDomain == "slack.com")
+ return true;
+
+ return false;
+}
+
static bool urlRequiresMacintoshPlatform(const URL& url)
{
String baseDomain = topPrivatelyControlledDomain(url.host());
@@ -178,9 +209,10 @@
{
ASSERT(!url.isNull());
UserAgentQuirks quirks;
- if (urlRequiresMacintoshPlatform(url)) {
+ if (urlRequiresChromeBrowser(url))
+ quirks.add(UserAgentQuirks::NeedsChromeBrowser);
+ if (urlRequiresMacintoshPlatform(url))
quirks.add(UserAgentQuirks::NeedsMacintoshPlatform);
- }
// The null string means we don't need a specific UA for the given URL.
return quirks.isEmpty() ? String() : buildUserAgentString(quirks);
Modified: releases/WebKitGTK/webkit-2.14/Tools/ChangeLog (207119 => 207120)
--- releases/WebKitGTK/webkit-2.14/Tools/ChangeLog 2016-10-11 13:24:01 UTC (rev 207119)
+++ releases/WebKitGTK/webkit-2.14/Tools/ChangeLog 2016-10-11 13:24:09 UTC (rev 207120)
@@ -1,3 +1,15 @@
+2016-09-28 Michael Catanzaro <[email protected]>
+
+ [GTK] Add Chrome UA quirk
+ https://bugs.webkit.org/show_bug.cgi?id=162617
+
+ Reviewed by Carlos Garcia Campos.
+
+ Update test. This portion of the commit was actually unreviewed.
+
+ * TestWebKitAPI/Tests/WebCore/gtk/UserAgentQuirks.cpp:
+ (TestWebKitAPI::TEST):
+
2016-09-27 Michael Catanzaro <[email protected]>
[GTK] Install binaries to pkglibexecdir rather than bindir
Modified: releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebCore/gtk/UserAgentQuirks.cpp (207119 => 207120)
--- releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebCore/gtk/UserAgentQuirks.cpp 2016-10-11 13:24:01 UTC (rev 207119)
+++ releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebCore/gtk/UserAgentQuirks.cpp 2016-10-11 13:24:09 UTC (rev 207120)
@@ -43,6 +43,27 @@
EXPECT_TRUE(uaString.contains("Macintosh"));
EXPECT_TRUE(uaString.contains("Mac OS X"));
EXPECT_FALSE(uaString.contains("Linux"));
+ EXPECT_FALSE(uaString.contains("Chrome"));
+
+ // google domains require Chrome in the UA
+ uaString = standardUserAgentForURL(URL(ParsedURLString, "http://www.google.es/"));
+ EXPECT_FALSE(uaString.contains("Macintosh"));
+ EXPECT_FALSE(uaString.contains("Mac OS X"));
+ EXPECT_TRUE(uaString.contains("Linux"));
+ EXPECT_TRUE(uaString.contains("Chrome"));
+
+ uaString = standardUserAgentForURL(URL(ParsedURLString, "http://maps.google.com/"));
+ EXPECT_FALSE(uaString.contains("Macintosh"));
+ EXPECT_FALSE(uaString.contains("Mac OS X"));
+ EXPECT_TRUE(uaString.contains("Linux"));
+ EXPECT_TRUE(uaString.contains("Chrome"));
+
+ // Slack requires Chrome in the UA
+ uaString = standardUserAgentForURL(URL(ParsedURLString, "http://www.slack.com/"));
+ EXPECT_FALSE(uaString.contains("Macintosh"));
+ EXPECT_FALSE(uaString.contains("Mac OS X"));
+ EXPECT_TRUE(uaString.contains("Linux"));
+ EXPECT_TRUE(uaString.contains("Chrome"));
}
} // namespace TestWebKitAPI
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes