Diff
Modified: trunk/Source/WebCore/ChangeLog (237072 => 237073)
--- trunk/Source/WebCore/ChangeLog 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/ChangeLog 2018-10-12 19:20:10 UTC (rev 237073)
@@ -1,3 +1,39 @@
+2018-10-12 Rob Buis <rb...@igalia.com>
+
+ Solve the confusion around blankURL() and isBlankURL() in URL
+ https://bugs.webkit.org/show_bug.cgi?id=158988
+
+ Reviewed by Alex Christensen.
+
+ The name isBlankURL is not accurate as the function tests the
+ protocol, not the full URL. Choose protocolIsAbout to align with
+ exisiting protocolIsData, protocolIsBlob etc.
+
+ No tests as no change in functionality.
+
+ * WebCore.order:
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::loadApplicationManifest):
+ (WebCore::DocumentLoader::startIconLoading):
+ * loader/NavigationAction.cpp:
+ (WebCore::shouldTreatAsSameOriginNavigation):
+ * loader/PolicyChecker.cpp:
+ (WebCore::PolicyChecker::checkNavigationPolicy):
+ * loader/ResourceLoadObserver.cpp:
+ (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
+ * page/PageSerializer.cpp:
+ (WebCore::PageSerializer::SerializerMarkupAccumulator::appendCustomAttributes):
+ (WebCore::PageSerializer::serializeFrame):
+ * page/csp/ContentSecurityPolicyDirectiveList.cpp:
+ (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFrame const):
+ (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForObjectSource const):
+ * platform/URL.cpp:
+ (WebCore::URL::protocolIsAbout const):
+ (WebCore::URL::isBlankURL const): Deleted.
+ * platform/URL.h:
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::loadFull):
+
2018-10-12 Youenn Fablet <you...@apple.com>
DOMCache should dereference itself as soon as stopped
Modified: trunk/Source/WebCore/WebCore.order (237072 => 237073)
--- trunk/Source/WebCore/WebCore.order 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/WebCore.order 2018-10-12 19:20:10 UTC (rev 237073)
@@ -3213,7 +3213,7 @@
__ZN7WebCore9DOMWindow16setDefaultStatusERKN3WTF6StringE
__ZN7WebCore8Document6setURLERKNS_4KURLE
__ZN7WebCore8Document13updateBaseURLEv
-__ZNK7WebCore4KURL10isBlankURLEv
+__ZNK7WebCore4KURL10protocolIsAboutEv
__ZN7WebCore8Document17takeDOMWindowFromEPS0_
__ZN7WebCore9DOMWindow21didSecureTransitionToEPNS_8DocumentE
__ZN7WebCore26ContextDestructionObserver14observeContextEPNS_22ScriptExecutionContextE
Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (237072 => 237073)
--- trunk/Source/WebCore/loader/DocumentLoader.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -1219,7 +1219,7 @@
if (!m_frame->isMainFrame())
return 0;
- if (document->url().isEmpty() || document->url().isBlankURL())
+ if (document->url().isEmpty() || document->url().protocolIsAbout())
return 0;
auto head = document->head();
@@ -1913,7 +1913,7 @@
if (!m_frame->isMainFrame())
return;
- if (document->url().isEmpty() || document->url().isBlankURL())
+ if (document->url().isEmpty() || document->url().protocolIsAbout())
return;
m_linkIcons = LinkIconCollector { *document }.iconsOfTypes({ LinkIconType::Favicon, LinkIconType::TouchIcon, LinkIconType::TouchPrecomposedIcon });
Modified: trunk/Source/WebCore/loader/NavigationAction.cpp (237072 => 237073)
--- trunk/Source/WebCore/loader/NavigationAction.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/loader/NavigationAction.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -74,7 +74,7 @@
static bool shouldTreatAsSameOriginNavigation(const Document& document, const URL& url)
{
- return url.isBlankURL() || url.protocolIsData() || (url.protocolIsBlob() && document.securityOrigin().canRequest(url));
+ return url.protocolIsAbout() || url.protocolIsData() || (url.protocolIsBlob() && document.securityOrigin().canRequest(url));
}
static std::optional<NavigationAction::UIEventWithKeyStateData> keyStateDataForFirstEventWithKeyState(Event* event)
Modified: trunk/Source/WebCore/loader/PolicyChecker.cpp (237072 => 237073)
--- trunk/Source/WebCore/loader/PolicyChecker.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/loader/PolicyChecker.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -141,7 +141,7 @@
loader->setLastCheckedRequest(ResourceRequest(request));
// Initial 'about:blank' load needs to happen synchronously so the policy check needs to be synchronous in this case.
- if (!m_frame.loader().stateMachine().committedFirstRealDocumentLoad() && request.url().isBlankURL() && !substituteData.isValid())
+ if (!m_frame.loader().stateMachine().committedFirstRealDocumentLoad() && request.url().protocolIsAbout() && !substituteData.isValid())
policyDecisionMode = PolicyDecisionMode::Synchronous;
#if USE(QUICK_LOOK)
Modified: trunk/Source/WebCore/loader/ResourceLoadObserver.cpp (237072 => 237073)
--- trunk/Source/WebCore/loader/ResourceLoadObserver.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/loader/ResourceLoadObserver.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -163,7 +163,7 @@
return;
auto& url = ""
- if (url.isBlankURL() || url.isEmpty())
+ if (url.protocolIsAbout() || url.isEmpty())
return;
auto domain = primaryDomain(url);
Modified: trunk/Source/WebCore/page/PageSerializer.cpp (237072 => 237073)
--- trunk/Source/WebCore/page/PageSerializer.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/page/PageSerializer.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -150,7 +150,7 @@
return;
URL url = ""
- if (url.isValid() && !url.isBlankURL())
+ if (url.isValid() && !url.protocolIsAbout())
return;
// We need to give a fake location to blank frames so they can be referenced by the serialized frame.
@@ -178,7 +178,7 @@
{
Document* document = frame->document();
URL url = ""
- if (!url.isValid() || url.isBlankURL()) {
+ if (!url.isValid() || url.protocolIsAbout()) {
// For blank frames we generate a fake URL so they can be referenced by their containing frame.
url = ""
}
Modified: trunk/Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp (237072 => 237073)
--- trunk/Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -240,7 +240,7 @@
const ContentSecurityPolicyDirective* ContentSecurityPolicyDirectiveList::violatedDirectiveForFrame(const URL& url, bool didReceiveRedirectResponse) const
{
- if (url.isBlankURL())
+ if (url.protocolIsAbout())
return nullptr;
// We must enforce the frame-src directive (if specified) before enforcing the child-src directive for a nested browsing
@@ -293,7 +293,7 @@
const ContentSecurityPolicyDirective* ContentSecurityPolicyDirectiveList::violatedDirectiveForObjectSource(const URL& url, bool didReceiveRedirectResponse, ContentSecurityPolicySourceListDirective::ShouldAllowEmptyURLIfSourceListIsNotNone shouldAllowEmptyURLIfSourceListEmpty) const
{
- if (url.isBlankURL())
+ if (url.protocolIsAbout())
return nullptr;
ContentSecurityPolicySourceListDirective* operativeDirective = this->operativeDirective(m_objectSrc.get());
if (checkSource(operativeDirective, url, didReceiveRedirectResponse, shouldAllowEmptyURLIfSourceListEmpty))
Modified: trunk/Source/WebCore/platform/URL.cpp (237072 => 237073)
--- trunk/Source/WebCore/platform/URL.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/platform/URL.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -865,7 +865,7 @@
return staticBlankURL;
}
-bool URL::isBlankURL() const
+bool URL::protocolIsAbout() const
{
return protocolIs("about");
}
Modified: trunk/Source/WebCore/platform/URL.h (237072 => 237073)
--- trunk/Source/WebCore/platform/URL.h 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/platform/URL.h 2018-10-12 19:20:10 UTC (rev 237073)
@@ -135,9 +135,9 @@
bool protocolIs(StringView) const;
bool protocolIsBlob() const { return protocolIs("blob"); }
bool protocolIsData() const { return protocolIs("data"); }
+ WEBCORE_EXPORT bool protocolIsAbout() const;
bool protocolIsInHTTPFamily() const;
WEBCORE_EXPORT bool isLocalFile() const;
- WEBCORE_EXPORT bool isBlankURL() const;
bool cannotBeABaseURL() const { return m_cannotBeABaseURL; }
WEBCORE_EXPORT bool isMatchingDomain(const String&) const;
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (237072 => 237073)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -262,7 +262,7 @@
return;
URL url(URL(), urlString);
- if (url.isBlankURL())
+ if (url.protocolIsAbout())
return;
if (!m_pipeline)
Modified: trunk/Source/WebKit/ChangeLog (237072 => 237073)
--- trunk/Source/WebKit/ChangeLog 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebKit/ChangeLog 2018-10-12 19:20:10 UTC (rev 237073)
@@ -1,3 +1,33 @@
+2018-10-12 Rob Buis <rb...@igalia.com>
+
+ Solve the confusion around blankURL() and isBlankURL() in URL
+ https://bugs.webkit.org/show_bug.cgi?id=158988
+
+ Reviewed by Alex Christensen.
+
+ * NetworkProcess/NetworkResourceLoader.cpp:
+ (WebKit::NetworkResourceLoader::continueWillSendRequest):
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::processForNavigationInternal):
+ * UIProcess/WebResourceLoadStatisticsStore.cpp:
+ (WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
+ (WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
+ (WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
+ (WebKit::WebResourceLoadStatisticsStore::setLastSeen):
+ (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
+ (WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource):
+ (WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
+ (WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource):
+ (WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
+ (WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
+ (WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
+ (WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
+ (WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
+ (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
+ (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom):
+ (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo):
+ (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom):
+
2018-10-12 Youenn Fablet <you...@apple.com>
Cache API tests are flaky due to file writing failing from time to time
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (237072 => 237073)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -677,7 +677,7 @@
if (m_networkLoadChecker) {
// FIXME: We should be doing this check when receiving the redirection and not allow about protocol as per fetch spec.
- if (!newRequest.url().protocolIsInHTTPFamily() && !newRequest.url().isBlankURL() && m_redirectCount) {
+ if (!newRequest.url().protocolIsInHTTPFamily() && !newRequest.url().protocolIsAbout() && m_redirectCount) {
didFailLoading(ResourceError { String { }, 0, newRequest.url(), "Redirection to URL with a scheme that is not HTTP(S)"_s, ResourceError::Type::AccessControl });
return;
}
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (237072 => 237073)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -2151,7 +2151,7 @@
RELEASE_LOG(ProcessSwapping, "Using related page %p's URL as source URL for process swap decision", page.configuration().relatedPage());
}
- if (!sourceURL.isValid() || !targetURL.isValid() || sourceURL.isEmpty() || sourceURL.isBlankURL() || registrableDomainsAreEqual(sourceURL, targetURL)) {
+ if (!sourceURL.isValid() || !targetURL.isValid() || sourceURL.isEmpty() || sourceURL.protocolIsAbout() || registrableDomainsAreEqual(sourceURL, targetURL)) {
reason = "Navigation is same-site"_s;
return page.process();
}
Modified: trunk/Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp (237072 => 237073)
--- trunk/Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp 2018-10-12 18:03:35 UTC (rev 237072)
+++ trunk/Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp 2018-10-12 19:20:10 UTC (rev 237073)
@@ -401,7 +401,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler();
return;
}
@@ -417,7 +417,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler();
return;
}
@@ -433,7 +433,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler(false);
return;
}
@@ -450,7 +450,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler();
return;
}
@@ -466,7 +466,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler();
return;
}
@@ -482,7 +482,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler();
return;
}
@@ -510,7 +510,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler(false);
return;
}
@@ -527,7 +527,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler(false);
return;
}
@@ -580,7 +580,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler();
return;
}
@@ -596,7 +596,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty())
+ if (url.protocolIsAbout() || url.isEmpty())
return;
postTask([this, primaryDomain = isolatedPrimaryDomain(url), value] {
@@ -609,7 +609,7 @@
{
ASSERT(RunLoop::isMain());
- if (url.isBlankURL() || url.isEmpty()) {
+ if (url.protocolIsAbout() || url.isEmpty()) {
completionHandler(false);
return;
}
@@ -626,7 +626,7 @@
{
ASSERT(RunLoop::isMain());
- if (subframe.isBlankURL() || subframe.isEmpty() || topFrame.isBlankURL() || topFrame.isEmpty())
+ if (subframe.protocolIsAbout() || subframe.isEmpty() || topFrame.protocolIsAbout() || topFrame.isEmpty())
return;
postTask([this, primaryTopFrameDomain = isolatedPrimaryDomain(topFrame), primarySubFrameDomain = isolatedPrimaryDomain(subframe)] {
@@ -639,7 +639,7 @@
{
ASSERT(RunLoop::isMain());
- if (subresource.isBlankURL() || subresource.isEmpty() || topFrame.isBlankURL() || topFrame.isEmpty())
+ if (subresource.protocolIsAbout() || subresource.isEmpty() || topFrame.protocolIsAbout() || topFrame.isEmpty())
return;
postTask([this, primaryTopFrameDomain = isolatedPrimaryDomain(topFrame), primarySubresourceDomain = isolatedPrimaryDomain(subresource)] {
@@ -652,7 +652,7 @@
{
ASSERT(RunLoop::isMain());
- if (subresource.isBlankURL() || subresource.isEmpty() || hostNameRedirectedTo.isBlankURL() || hostNameRedirectedTo.isEmpty())
+ if (subresource.protocolIsAbout() || subresource.isEmpty() || hostNameRedirectedTo.protocolIsAbout() || hostNameRedirectedTo.isEmpty())
return;
postTask([this, primaryRedirectDomain = isolatedPrimaryDomain(hostNameRedirectedTo), primarySubresourceDomain = isolatedPrimaryDomain(subresource)] {
@@ -665,7 +665,7 @@
{
ASSERT(RunLoop::isMain());
- if (subresource.isBlankURL() || subresource.isEmpty() || hostNameRedirectedFrom.isBlankURL() || hostNameRedirectedFrom.isEmpty())
+ if (subresource.protocolIsAbout() || subresource.isEmpty() || hostNameRedirectedFrom.protocolIsAbout() || hostNameRedirectedFrom.isEmpty())
return;
postTask([this, primaryRedirectDomain = isolatedPrimaryDomain(hostNameRedirectedFrom), primarySubresourceDomain = isolatedPrimaryDomain(subresource)] {
@@ -678,7 +678,7 @@
{
ASSERT(RunLoop::isMain());
- if (topFrameHostName.isBlankURL() || topFrameHostName.isEmpty() || hostNameRedirectedTo.isBlankURL() || hostNameRedirectedTo.isEmpty())
+ if (topFrameHostName.protocolIsAbout() || topFrameHostName.isEmpty() || hostNameRedirectedTo.protocolIsAbout() || hostNameRedirectedTo.isEmpty())
return;
postTask([this, primaryRedirectDomain = isolatedPrimaryDomain(hostNameRedirectedTo), topFramePrimaryDomain = isolatedPrimaryDomain(topFrameHostName)] {
@@ -691,7 +691,7 @@
{
ASSERT(RunLoop::isMain());
- if (topFrameHostName.isBlankURL() || topFrameHostName.isEmpty() || hostNameRedirectedFrom.isBlankURL() || hostNameRedirectedFrom.isEmpty())
+ if (topFrameHostName.protocolIsAbout() || topFrameHostName.isEmpty() || hostNameRedirectedFrom.protocolIsAbout() || hostNameRedirectedFrom.isEmpty())
return;
postTask([this, primaryRedirectDomain = isolatedPrimaryDomain(hostNameRedirectedFrom), topFramePrimaryDomain = isolatedPrimaryDomain(topFrameHostName)] {