Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (212993 => 212994)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2017-02-25 05:48:51 UTC (rev 212993)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2017-02-25 07:50:08 UTC (rev 212994)
@@ -1,5 +1,15 @@
2017-02-24 Joseph Pecoraro <pecor...@apple.com>
+ [Resource Timing] Media elements initiated loads should set the initiatorType to their element name (video/audio)
+ https://bugs.webkit.org/show_bug.cgi?id=168680
+
+ Reviewed by Youenn Fablet.
+
+ * web-platform-tests/resource-timing/rt-initiatorType-media-expected.txt:
+ Progression on the initiatorType.
+
+2017-02-24 Joseph Pecoraro <pecor...@apple.com>
+
[Resource Timing] Gather timing information with reliable responseEnd time
https://bugs.webkit.org/show_bug.cgi?id=168351
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/rt-initiatorType-media-expected.txt (212993 => 212994)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/rt-initiatorType-media-expected.txt 2017-02-25 05:48:51 UTC (rev 212993)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/rt-initiatorType-media-expected.txt 2017-02-25 07:50:08 UTC (rev 212994)
@@ -1,8 +1,8 @@
Resource Timing: Element localName initiatorType
-FAIL Type: video - <video src> assert_equals: initiatorType should be 'video' expected "video" but got "other"
+PASS Type: video - <video src>
PASS Timing: video - <video src>
-FAIL Type: audio - <audio src> assert_equals: name should be the url expected "http://localhost:8800/resource-timing/resources/data.json?audio&0.7734679755996403" but got "http://localhost:8800/resource-timing/resources/data.json?video&0.5872075656484804"
+FAIL Type: audio - <audio src> assert_equals: name should be the url expected "http://localhost:8800/resource-timing/resources/data.json?audio&0.033975899379337426" but got "http://localhost:8800/resource-timing/resources/data.json?video&0.019321360269903165"
PASS Timing: audio - <audio src>
Modified: trunk/Source/WebCore/ChangeLog (212993 => 212994)
--- trunk/Source/WebCore/ChangeLog 2017-02-25 05:48:51 UTC (rev 212993)
+++ trunk/Source/WebCore/ChangeLog 2017-02-25 07:50:08 UTC (rev 212994)
@@ -1,5 +1,26 @@
2017-02-24 Joseph Pecoraro <pecor...@apple.com>
+ [Resource Timing] Media elements initiated loads should set the initiatorType to their element name (video/audio)
+ https://bugs.webkit.org/show_bug.cgi?id=168680
+
+ Reviewed by Youenn Fablet.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):
+ Pass in the element so it may be used as the initiator.
+
+ * html/HTMLVideoElement.h:
+ Export create() for TestWebKitAPI to use.
+
+ * loader/MediaResourceLoader.cpp:
+ (WebCore::MediaResourceLoader::MediaResourceLoader):
+ (WebCore::MediaResourceLoader::contextDestroyed):
+ (WebCore::MediaResourceLoader::requestResource):
+ * loader/MediaResourceLoader.h:
+ Include the HTMLMediaElement as the initiator.
+
+2017-02-24 Joseph Pecoraro <pecor...@apple.com>
+
[Resource Timing] Gather timing information with reliable responseEnd time
https://bugs.webkit.org/show_bug.cgi?id=168351
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (212993 => 212994)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-02-25 05:48:51 UTC (rev 212993)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-02-25 07:50:08 UTC (rev 212994)
@@ -6433,7 +6433,7 @@
RefPtr<PlatformMediaResourceLoader> HTMLMediaElement::mediaPlayerCreateResourceLoader()
{
- return adoptRef(*new MediaResourceLoader(document(), crossOrigin()));
+ return adoptRef(*new MediaResourceLoader(document(), *this, crossOrigin()));
}
bool HTMLMediaElement::mediaPlayerShouldUsePersistentCache() const
Modified: trunk/Source/WebCore/html/HTMLVideoElement.h (212993 => 212994)
--- trunk/Source/WebCore/html/HTMLVideoElement.h 2017-02-25 05:48:51 UTC (rev 212993)
+++ trunk/Source/WebCore/html/HTMLVideoElement.h 2017-02-25 07:50:08 UTC (rev 212994)
@@ -37,7 +37,7 @@
class HTMLVideoElement final : public HTMLMediaElement {
public:
- static Ref<HTMLVideoElement> create(Document&);
+ WEBCORE_EXPORT static Ref<HTMLVideoElement> create(Document&);
static Ref<HTMLVideoElement> create(const QualifiedName&, Document&, bool createdByParser);
WEBCORE_EXPORT unsigned videoWidth() const;
Modified: trunk/Source/WebCore/loader/MediaResourceLoader.cpp (212993 => 212994)
--- trunk/Source/WebCore/loader/MediaResourceLoader.cpp 2017-02-25 05:48:51 UTC (rev 212993)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.cpp 2017-02-25 07:50:08 UTC (rev 212994)
@@ -34,14 +34,16 @@
#include "CachedResourceRequest.h"
#include "CrossOriginAccessControl.h"
#include "Document.h"
+#include "HTMLMediaElement.h"
#include "SecurityOrigin.h"
#include <wtf/NeverDestroyed.h>
namespace WebCore {
-MediaResourceLoader::MediaResourceLoader(Document& document, const String& crossOriginMode)
+MediaResourceLoader::MediaResourceLoader(Document& document, HTMLMediaElement& mediaElement, const String& crossOriginMode)
: ContextDestructionObserver(&document)
, m_document(&document)
+ , m_mediaElement(&mediaElement)
, m_crossOriginMode(crossOriginMode)
{
}
@@ -55,6 +57,7 @@
{
ContextDestructionObserver::contextDestroyed();
m_document = nullptr;
+ m_mediaElement = nullptr;
}
RefPtr<PlatformMediaResource> MediaResourceLoader::requestResource(ResourceRequest&& request, LoadOptions options)
@@ -75,6 +78,7 @@
// FIXME: Skip Content Security Policy check if the element that initiated this request is in a user-agent shadow tree. See <https://bugs.webkit.org/show_bug.cgi?id=155505>.
CachedResourceRequest cacheRequest(WTFMove(request), ResourceLoaderOptions(SendCallbacks, DoNotSniffContent, bufferingPolicy, AllowStoredCredentials, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include, DoSecurityCheck, FetchOptions::Mode::NoCors, DoNotIncludeCertificateInfo, ContentSecurityPolicyImposition::DoPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, cachingPolicy));
cacheRequest.setAsPotentiallyCrossOrigin(m_crossOriginMode, *m_document);
+ cacheRequest.setInitiator(*m_mediaElement);
CachedResourceHandle<CachedRawResource> resource = m_document->cachedResourceLoader().requestMedia(WTFMove(cacheRequest));
if (!resource)
Modified: trunk/Source/WebCore/loader/MediaResourceLoader.h (212993 => 212994)
--- trunk/Source/WebCore/loader/MediaResourceLoader.h 2017-02-25 05:48:51 UTC (rev 212993)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.h 2017-02-25 07:50:08 UTC (rev 212994)
@@ -39,11 +39,12 @@
class CachedRawResource;
class Document;
+class HTMLMediaElement;
class MediaResource;
class MediaResourceLoader final : public PlatformMediaResourceLoader, public ContextDestructionObserver {
public:
- WEBCORE_EXPORT MediaResourceLoader(Document&, const String& crossOriginMode);
+ WEBCORE_EXPORT MediaResourceLoader(Document&, HTMLMediaElement&, const String& crossOriginMode);
WEBCORE_EXPORT virtual ~MediaResourceLoader();
RefPtr<PlatformMediaResource> requestResource(ResourceRequest&&, LoadOptions) final;
@@ -56,6 +57,7 @@
void contextDestroyed() override;
Document* m_document;
+ RefPtr<HTMLMediaElement> m_mediaElement;
String m_crossOriginMode;
HashSet<MediaResource*> m_resources;
};
Modified: trunk/Tools/ChangeLog (212993 => 212994)
--- trunk/Tools/ChangeLog 2017-02-25 05:48:51 UTC (rev 212993)
+++ trunk/Tools/ChangeLog 2017-02-25 07:50:08 UTC (rev 212994)
@@ -1,3 +1,14 @@
+2017-02-24 Joseph Pecoraro <pecor...@apple.com>
+
+ [Resource Timing] Media elements initiated loads should set the initiatorType to their element name (video/audio)
+ https://bugs.webkit.org/show_bug.cgi?id=168680
+
+ Reviewed by Youenn Fablet.
+
+ * TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm:
+ (TestWebKitAPI::WebCoreNSURLSessionTest::SetUp):
+ Include a dummy HTMLVideoElement.
+
2017-02-24 Wenson Hsieh <wenson_hs...@apple.com>
Unreviewed, temporarily disable all data interaction tests.
Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm (212993 => 212994)
--- trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm 2017-02-25 05:48:51 UTC (rev 212993)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm 2017-02-25 07:50:08 UTC (rev 212994)
@@ -36,6 +36,7 @@
#import <WebCore/PageConfiguration.h>
#import <WebCore/Document.h>
#import <WebCore/DocumentLoader.h>
+#import <WebCore/HTMLVideoElement.h>
#import <WebCore/MediaResourceLoader.h>
#import <WebCore/Settings.h>
#import <WebCore/SubresourceLoader.h>
@@ -108,6 +109,7 @@
Frame* frame { nullptr };
TestNSURLSessionDataDelegate *delegate { nil };
RefPtr<MediaResourceLoader> loader;
+ RefPtr<HTMLMediaElement> mediaElement;
virtual void SetUp()
{
@@ -123,7 +125,8 @@
delegate = [[TestNSURLSessionDataDelegate alloc] init];
frame = [view _mainCoreFrame];
- loader = adoptRef(new MediaResourceLoader(*frame->document(), emptyString()));
+ mediaElement = HTMLVideoElement::create(*frame->document());
+ loader = adoptRef(new MediaResourceLoader(*frame->document(), *mediaElement.get(), emptyString()));
}
virtual void TearDown()