Title: [198454] trunk/Source/WebCore
Revision
198454
Author
[email protected]
Date
2016-03-18 16:59:27 -0700 (Fri, 18 Mar 2016)

Log Message

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

Modified Paths

Diff

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;
 };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to