Modified: trunk/Source/WebCore/ChangeLog (198453 => 198454)
--- trunk/Source/WebCore/ChangeLog 2016-03-18 23:53:44 UTC (rev 198453)
+++ trunk/Source/WebCore/ChangeLog 2016-03-18 23:59:27 UTC (rev 198454)
@@ -1,3 +1,15 @@
+2016-03-18 Ryan Haddad <[email protected]>
+
+ Unreviewed, rolling out r198443.
+
+ This change caused API test failures on El Capitan
+
+ Reverted changeset:
+
+ "CRASH in WebCore::MediaResourceLoader::requestResource + 698"
+ https://bugs.webkit.org/show_bug.cgi?id=155651
+ http://trac.webkit.org/changeset/198443
+
2016-03-18 Darin Adler <[email protected]>
ASSERTION FAILED: m_isValid == valid() in WebCore::HTMLFormControlElement::isValidFormControlElement
Modified: trunk/Source/WebCore/loader/MediaResourceLoader.cpp (198453 => 198454)
--- trunk/Source/WebCore/loader/MediaResourceLoader.cpp 2016-03-18 23:53:44 UTC (rev 198453)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.cpp 2016-03-18 23:59:27 UTC (rev 198454)
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2014 Igalia S.L
- * Copyright (C) 2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -40,8 +39,7 @@
namespace WebCore {
MediaResourceLoader::MediaResourceLoader(Document& document, const String& crossOriginMode)
- : ContextDestructionObserver(&document)
- , m_document(&document)
+ : m_document(document)
, m_crossOriginMode(crossOriginMode)
{
}
@@ -51,16 +49,8 @@
ASSERT(m_resources.isEmpty());
}
-void MediaResourceLoader::contextDestroyed()
-{
- m_document = nullptr;
-}
-
RefPtr<PlatformMediaResource> MediaResourceLoader::requestResource(const ResourceRequest& request, LoadOptions options)
{
- if (!m_document)
- return nullptr;
-
DataBufferingPolicy bufferingPolicy = options & LoadOption::BufferData ? WebCore::BufferData : WebCore::DoNotBufferData;
RequestOriginPolicy corsPolicy = !m_crossOriginMode.isNull() ? PotentiallyCrossOriginEnabled : UseDefaultOriginRestrictionsForType;
StoredCredentials allowCredentials = m_crossOriginMode.isNull() || equalLettersIgnoringASCIICase(m_crossOriginMode, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials;
@@ -70,9 +60,9 @@
CachedResourceRequest cacheRequest(request, ResourceLoaderOptions(SendCallbacks, DoNotSniffContent, bufferingPolicy, allowCredentials, DoNotAskClientForCrossOriginCredentials, ClientDidNotRequestCredentials, DoSecurityCheck, corsPolicy, DoNotIncludeCertificateInfo, ContentSecurityPolicyImposition::DoPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, CachingPolicy::AllowCaching));
if (!m_crossOriginMode.isNull())
- updateRequestForAccessControl(cacheRequest.mutableResourceRequest(), m_document->securityOrigin(), allowCredentials);
+ updateRequestForAccessControl(cacheRequest.mutableResourceRequest(), m_document.securityOrigin(), allowCredentials);
- CachedResourceHandle<CachedRawResource> resource = m_document->cachedResourceLoader().requestMedia(cacheRequest);
+ CachedResourceHandle<CachedRawResource> resource = m_document.cachedResourceLoader().requestMedia(cacheRequest);
if (!resource)
return nullptr;
@@ -126,13 +116,10 @@
{
ASSERT_UNUSED(resource, resource == m_resource);
- if (!m_loader->document())
- return;
-
RefPtr<MediaResource> protect(this);
- if (!m_loader->crossOriginMode().isNull() && !resource->passesSameOriginPolicyCheck(*m_loader->document()->securityOrigin())) {
+ if (!m_loader->crossOriginMode().isNull() && !resource->passesSameOriginPolicyCheck(*m_loader->document().securityOrigin())) {
static NeverDestroyed<const String> consoleMessage("Cross-origin media resource load denied by Cross-Origin Resource Sharing policy.");
- m_loader->document()->addConsoleMessage(MessageSource::Security, MessageLevel::Error, consoleMessage.get());
+ m_loader->document().addConsoleMessage(MessageSource::Security, MessageLevel::Error, consoleMessage.get());
m_didPassAccessControlCheck = false;
if (m_client)
m_client->accessControlCheckFailed(*this, ResourceError(errorDomainWebKitInternal, 0, response.url(), consoleMessage.get()));
Modified: trunk/Source/WebCore/loader/MediaResourceLoader.h (198453 => 198454)
--- trunk/Source/WebCore/loader/MediaResourceLoader.h 2016-03-18 23:53:44 UTC (rev 198453)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.h 2016-03-18 23:59:27 UTC (rev 198454)
@@ -29,7 +29,6 @@
#if ENABLE(VIDEO)
#include "CachedRawResourceClient.h"
#include "CachedResourceHandle.h"
-#include "ContextDestructionObserver.h"
#include "PlatformMediaResourceLoader.h"
#include <wtf/HashSet.h>
#include <wtf/Ref.h>
@@ -41,7 +40,7 @@
class Document;
class MediaResource;
-class MediaResourceLoader final : public PlatformMediaResourceLoader, public ContextDestructionObserver {
+class MediaResourceLoader final : public PlatformMediaResourceLoader {
public:
WEBCORE_EXPORT MediaResourceLoader(Document&, const String& crossOriginMode);
WEBCORE_EXPORT virtual ~MediaResourceLoader();
@@ -49,13 +48,11 @@
RefPtr<PlatformMediaResource> requestResource(const ResourceRequest&, LoadOptions) override;
void removeResource(MediaResource&);
- Document* document() { return m_document; }
+ Document& document() { return m_document; }
const String& crossOriginMode() const { return m_crossOriginMode; }
private:
- void contextDestroyed() override;
-
- Document* m_document;
+ Document& m_document;
String m_crossOriginMode;
HashSet<MediaResource*> m_resources;
};