Title: [106087] trunk
Revision
106087
Author
[email protected]
Date
2012-01-26 21:07:14 -0800 (Thu, 26 Jan 2012)

Log Message

Unreviewed, rolling out r105486.
http://trac.webkit.org/changeset/105486
https://bugs.webkit.org/show_bug.cgi?id=77182

This patch doesn't take web workers into account. (Requested
by dave_levin on #webkit).

Patch by Sheriff Bot <[email protected]> on 2012-01-26

Source/WebCore:

* html/DOMURL.cpp:
(WebCore::DOMURL::DOMURL):
(WebCore::DOMURL::~DOMURL):
(WebCore::DOMURL::contextDestroyed):
(WebCore):
(WebCore::DOMURL::createObjectURL):
(WebCore::DOMURL::revokeObjectURL):
* html/DOMURL.h:
(WebCore::DOMURL::create):
(DOMURL):
* html/DOMURL.idl:
* page/DOMWindow.cpp:
(WebCore):
(WebCore::DOMWindow::webkitURL):
* page/DOMWindow.h:
(DOMWindow):
():
* page/DOMWindow.idl:
* workers/WorkerContext.cpp:
(WebCore):
(WebCore::WorkerContext::webkitURL):
(WebCore::WorkerContext::webkitRequestFileSystem):
* workers/WorkerContext.h:
(WorkerContext):
():
* workers/WorkerContext.idl:

LayoutTests:

* fast/dom/DOMURL/check-instanceof-domurl-functions-expected.txt: Removed.
* fast/dom/DOMURL/check-instanceof-domurl-functions.html: Removed.

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (106086 => 106087)


--- trunk/LayoutTests/ChangeLog	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/LayoutTests/ChangeLog	2012-01-27 05:07:14 UTC (rev 106087)
@@ -1,3 +1,15 @@
+2012-01-26  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r105486.
+        http://trac.webkit.org/changeset/105486
+        https://bugs.webkit.org/show_bug.cgi?id=77182
+
+        This patch doesn't take web workers into account. (Requested
+        by dave_levin on #webkit).
+
+        * fast/dom/DOMURL/check-instanceof-domurl-functions-expected.txt: Removed.
+        * fast/dom/DOMURL/check-instanceof-domurl-functions.html: Removed.
+
 2012-01-26  Yuzo Fujishima  <[email protected]>
 
         [chromium] Unreviewed test expectation change.

Deleted: trunk/LayoutTests/fast/dom/DOMURL/check-instanceof-domurl-functions-expected.txt (106086 => 106087)


--- trunk/LayoutTests/fast/dom/DOMURL/check-instanceof-domurl-functions-expected.txt	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/LayoutTests/fast/dom/DOMURL/check-instanceof-domurl-functions-expected.txt	2012-01-27 05:07:14 UTC (rev 106087)
@@ -1,15 +0,0 @@
-Test instanceof functions and properties of webkitURL.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS 'createObjectURL' in webkitURL is true
-PASS 'revokeObjectURL' in webkitURL is true
-PASS url.createObjectURL is undefined.
-PASS url.revokeObjectURL is undefined.
-PASS window.webkitURL.createObjectURL is defined.
-PASS window.webkitURL.revokeObjectURL is defined.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Deleted: trunk/LayoutTests/fast/dom/DOMURL/check-instanceof-domurl-functions.html (106086 => 106087)


--- trunk/LayoutTests/fast/dom/DOMURL/check-instanceof-domurl-functions.html	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/LayoutTests/fast/dom/DOMURL/check-instanceof-domurl-functions.html	2012-01-27 05:07:14 UTC (rev 106087)
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<script src=""
-</head>
-<body>
-<script>
-description("Test instanceof functions and properties of webkitURL.");
-
-var url = "" webkitURL;
-
-shouldBeTrue("'createObjectURL' in webkitURL");
-shouldBeTrue("'revokeObjectURL' in webkitURL");
-
-shouldBeUndefined("url.createObjectURL");
-shouldBeUndefined("url.revokeObjectURL");
-
-shouldBeDefined("window.webkitURL.createObjectURL");
-shouldBeDefined("window.webkitURL.revokeObjectURL");
-
-
-</script>
-<script src=""
-</body>
-</html>

Modified: trunk/Source/WebCore/ChangeLog (106086 => 106087)


--- trunk/Source/WebCore/ChangeLog	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/ChangeLog	2012-01-27 05:07:14 UTC (rev 106087)
@@ -1,3 +1,39 @@
+2012-01-26  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r105486.
+        http://trac.webkit.org/changeset/105486
+        https://bugs.webkit.org/show_bug.cgi?id=77182
+
+        This patch doesn't take web workers into account. (Requested
+        by dave_levin on #webkit).
+
+        * html/DOMURL.cpp:
+        (WebCore::DOMURL::DOMURL):
+        (WebCore::DOMURL::~DOMURL):
+        (WebCore::DOMURL::contextDestroyed):
+        (WebCore):
+        (WebCore::DOMURL::createObjectURL):
+        (WebCore::DOMURL::revokeObjectURL):
+        * html/DOMURL.h:
+        (WebCore::DOMURL::create):
+        (DOMURL):
+        * html/DOMURL.idl:
+        * page/DOMWindow.cpp:
+        (WebCore):
+        (WebCore::DOMWindow::webkitURL):
+        * page/DOMWindow.h:
+        (DOMWindow):
+        ():
+        * page/DOMWindow.idl:
+        * workers/WorkerContext.cpp:
+        (WebCore):
+        (WebCore::WorkerContext::webkitURL):
+        (WebCore::WorkerContext::webkitRequestFileSystem):
+        * workers/WorkerContext.h:
+        (WorkerContext):
+        ():
+        * workers/WorkerContext.idl:
+
 2012-01-26  Noel Gordon  <[email protected]>
 
         Cleanup JPEGImageDecoder includes

Modified: trunk/Source/WebCore/html/DOMURL.cpp (106086 => 106087)


--- trunk/Source/WebCore/html/DOMURL.cpp	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/html/DOMURL.cpp	2012-01-27 05:07:14 UTC (rev 106087)
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2011 Google Inc. All rights reserved.
- * Copyright (C) 2011 Motorola Mobility Inc.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -25,98 +24,56 @@
  */
 
 #include "config.h"
-#include "DOMURL.h"
 
-#include "ActiveDOMObject.h"
-#include "KURL.h"
-#include "SecurityOrigin.h"
-#include <wtf/MainThread.h>
-
 #if ENABLE(BLOB)
+
+#include "DOMURL.h"
+
 #include "Blob.h"
 #include "BlobURL.h"
+#include "KURL.h"
 #include "ScriptExecutionContext.h"
 #include "ThreadableBlobRegistry.h"
-#include <wtf/PassOwnPtr.h>
+#include <wtf/MainThread.h>
+
 #if ENABLE(MEDIA_STREAM)
 #include "MediaStream.h"
 #include "MediaStreamRegistry.h"
 #endif
-#endif
 
 namespace WebCore {
 
-#if ENABLE(BLOB)
-class PublicURLManager;
-typedef HashMap<ScriptExecutionContext*, OwnPtr<PublicURLManager> > PublicURLManagerMap;
-static PublicURLManagerMap& publicURLManagerMap();
-
-class PublicURLManager : public ContextDestructionObserver {
-public:
-    explicit PublicURLManager(ScriptExecutionContext* scriptExecutionContext)
-        : ContextDestructionObserver(scriptExecutionContext) { }
-
-    virtual void contextDestroyed()
-    {
-        HashSet<String>::iterator blobURLsEnd = m_blobURLs.end();
-        for (HashSet<String>::iterator iter = m_blobURLs.begin(); iter != blobURLsEnd; ++iter)
-            ThreadableBlobRegistry::unregisterBlobURL(KURL(ParsedURLString, *iter));
-
-#if ENABLE(MEDIA_STREAM)
-        HashSet<String>::iterator streamURLsEnd = m_streamURLs.end();
-        for (HashSet<String>::iterator iter = m_streamURLs.begin(); iter != streamURLsEnd; ++iter)
-            MediaStreamRegistry::registry().unregisterMediaStreamURL(KURL(ParsedURLString, *iter));
-#endif
-
-        ScriptExecutionContext* context = scriptExecutionContext();
-        ContextDestructionObserver::contextDestroyed();
-        publicURLManagerMap().remove(context);
-    }
-
-    HashSet<String>& blobURLs() { return m_blobURLs; }
-#if ENABLE(MEDIA_STREAM)
-    HashSet<String>& streamURLs() { return m_streamURLs; }
-#endif
-
-private:
-    HashSet<String> m_blobURLs;
-#if ENABLE(MEDIA_STREAM)
-    HashSet<String> m_streamURLs;
-#endif
-};
-
-static PublicURLManagerMap& publicURLManagerMap()
+DOMURL::DOMURL(ScriptExecutionContext* scriptExecutionContext)
+    : ContextDestructionObserver(scriptExecutionContext)
 {
-    DEFINE_STATIC_LOCAL(PublicURLManagerMap, staticPublicURLManagers, ());
-    return staticPublicURLManagers;
 }
 
-static PublicURLManager& publicURLManager(ScriptExecutionContext* scriptExecutionContext)
+DOMURL::~DOMURL()
 {
-    PublicURLManagerMap& map = publicURLManagerMap();
-    OwnPtr<PublicURLManager>& manager = map.add(scriptExecutionContext, nullptr).first->second;
-    if (!manager)
-        manager = adoptPtr(new PublicURLManager(scriptExecutionContext));
-    return *manager;
 }
 
-static HashSet<String>& publicBlobURLs(ScriptExecutionContext* scriptExecutionContext)
+void DOMURL::contextDestroyed()
 {
-    return publicURLManager(scriptExecutionContext).blobURLs();
-}
+    ContextDestructionObserver::contextDestroyed();
 
+    HashSet<String>::iterator publicBlobURLsEnd = m_publicBlobURLs.end();
+    for (HashSet<String>::iterator iter = m_publicBlobURLs.begin(); iter != publicBlobURLsEnd; ++iter)
+        ThreadableBlobRegistry::unregisterBlobURL(KURL(ParsedURLString, *iter));
+
 #if ENABLE(MEDIA_STREAM)
-static HashSet<String>& publicStreamURLs(ScriptExecutionContext* scriptExecutionContext)
-{
-    return publicURLManager(scriptExecutionContext).streamURLs();
+    HashSet<String>::iterator publicStreamURLsEnd = m_publicStreamURLs.end();
+    for (HashSet<String>::iterator iter = m_publicStreamURLs.begin(); iter != publicStreamURLsEnd; ++iter)
+        MediaStreamRegistry::registry().unregisterMediaStreamURL(KURL(ParsedURLString, *iter));
+#endif
 }
 
-String DOMURL::createObjectURL(ScriptExecutionContext* scriptExecutionContext, MediaStream* stream)
+#if ENABLE(MEDIA_STREAM)
+String DOMURL::createObjectURL(MediaStream* stream)
 {
-    if (!scriptExecutionContext || !stream)
+    if (!m_scriptExecutionContext || !stream)
         return String();
 
-    KURL publicURL = BlobURL::createPublicURL(scriptExecutionContext->securityOrigin());
+    KURL publicURL = BlobURL::createPublicURL(scriptExecutionContext()->securityOrigin());
     if (publicURL.isEmpty())
         return String();
 
@@ -124,51 +81,50 @@
     ASSERT(isMainThread());
 
     MediaStreamRegistry::registry().registerMediaStreamURL(publicURL, stream);
-    publicStreamURLs(scriptExecutionContext).add(publicURL.string());
+    m_publicStreamURLs.add(publicURL.string());
 
     return publicURL.string();
 }
 #endif
 
-String DOMURL::createObjectURL(ScriptExecutionContext* scriptExecutionContext, Blob* blob)
+String DOMURL::createObjectURL(Blob* blob)
 {
-    if (!scriptExecutionContext || !blob)
+    if (!m_scriptExecutionContext || !blob)
         return String();
 
-    KURL publicURL = BlobURL::createPublicURL(scriptExecutionContext->securityOrigin());
+    KURL publicURL = BlobURL::createPublicURL(scriptExecutionContext()->securityOrigin());
     if (publicURL.isEmpty())
         return String();
 
     ThreadableBlobRegistry::registerBlobURL(publicURL, blob->url());
-    publicBlobURLs(scriptExecutionContext).add(publicURL.string());
+    m_publicBlobURLs.add(publicURL.string());
 
     return publicURL.string();
 }
 
-void DOMURL::revokeObjectURL(ScriptExecutionContext* scriptExecutionContext, const String& urlString)
+void DOMURL::revokeObjectURL(const String& urlString)
 {
-    if (!scriptExecutionContext)
+    if (!m_scriptExecutionContext)
         return;
 
     KURL url(KURL(), urlString);
 
-    HashSet<String>& blobURLs = publicBlobURLs(scriptExecutionContext);
-    if (blobURLs.contains(url.string())) {
+    if (m_publicBlobURLs.contains(url.string())) {
         ThreadableBlobRegistry::unregisterBlobURL(url);
-        blobURLs.remove(url.string());
+        m_publicBlobURLs.remove(url.string());
     }
+
 #if ENABLE(MEDIA_STREAM)
-    HashSet<String>& streamURLs = publicStreamURLs(scriptExecutionContext);
-    if (streamURLs.contains(url.string())) {
+    if (m_publicStreamURLs.contains(url.string())) {
         // FIXME: make sure of this assertion below. Raise a spec question if required.
         // Since WebWorkers cannot obtain Stream objects, we should be on the main thread.
         ASSERT(isMainThread());
         MediaStreamRegistry::registry().unregisterMediaStreamURL(url);
-        streamURLs.remove(url.string());
+        m_publicStreamURLs.remove(url.string());
     }
 #endif
 }
-#endif // ENABLE(BLOB)
 
 } // namespace WebCore
 
+#endif // ENABLE(BLOB)

Modified: trunk/Source/WebCore/html/DOMURL.h (106086 => 106087)


--- trunk/Source/WebCore/html/DOMURL.h	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/html/DOMURL.h	2012-01-27 05:07:14 UTC (rev 106087)
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2011 Google Inc. All rights reserved.
- * Copyright (C) 2011 Motorola Mobility Inc.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -27,8 +26,11 @@
 #ifndef DOMURL_h
 #define DOMURL_h
 
-#include "KURL.h"
+#if ENABLE(BLOB)
+
+#include "ActiveDOMObject.h"
 #include "PlatformString.h"
+#include <wtf/HashSet.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -38,22 +40,30 @@
 class MediaStream;
 class ScriptExecutionContext;
 
-class DOMURL : public RefCounted<DOMURL> {
-
+class DOMURL : public RefCounted<DOMURL>, public ContextDestructionObserver {
 public:
-    static PassRefPtr<DOMURL> create() { return adoptRef(new DOMURL); }
+    static PassRefPtr<DOMURL> create(ScriptExecutionContext* scriptExecutionContext) { return adoptRef(new DOMURL(scriptExecutionContext)); }
+    ~DOMURL();
 
-#if ENABLE(BLOB)
-    static void contextDestroyed(ScriptExecutionContext*);
+#if ENABLE(MEDIA_STREAM)
+    String createObjectURL(MediaStream*);
+#endif
+    String createObjectURL(Blob*);
+    void revokeObjectURL(const String&);
 
-    static String createObjectURL(ScriptExecutionContext*, Blob*);
-    static void revokeObjectURL(ScriptExecutionContext*, const String&);
+private:
+    explicit DOMURL(ScriptExecutionContext*);
+
+    virtual void contextDestroyed();
+
+    HashSet<String> m_publicBlobURLs;
 #if ENABLE(MEDIA_STREAM)
-    static String createObjectURL(ScriptExecutionContext*, MediaStream*);
+    HashSet<String> m_publicStreamURLs;
 #endif
-#endif
 };
 
 } // namespace WebCore
 
+#endif // ENABLE(BLOB)
+
 #endif // DOMURL_h

Modified: trunk/Source/WebCore/html/DOMURL.idl (106086 => 106087)


--- trunk/Source/WebCore/html/DOMURL.idl	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/html/DOMURL.idl	2012-01-27 05:07:14 UTC (rev 106087)
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2011 Google Inc. All rights reserved.
- * Copyright (C) 2011 Motorola Mobility Inc.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -27,14 +26,15 @@
 module html {
     interface [
         Conditional=BLOB,
+        OmitConstructor,
         GenerateNativeConverter,
         GenerateToJS,
-        Constructor
+        NoStaticTables
     ] DOMURL {
 #if defined(ENABLE_MEDIA_STREAM) && ENABLE_MEDIA_STREAM
-        static [ConvertNullStringTo=Undefined,CallWith=ScriptExecutionContext] DOMString createObjectURL(in MediaStream stream);
+        [ConvertNullStringTo=Undefined] DOMString createObjectURL(in MediaStream stream);
 #endif
-        static [ConvertNullStringTo=Undefined,CallWith=ScriptExecutionContext] DOMString createObjectURL(in Blob blob);
-        static [CallWith=ScriptExecutionContext] void revokeObjectURL(in DOMString url);
+        [ConvertNullStringTo=Undefined] DOMString createObjectURL(in Blob blob);
+        void revokeObjectURL(in DOMString url);
     };
 }

Modified: trunk/Source/WebCore/page/DOMWindow.cpp (106086 => 106087)


--- trunk/Source/WebCore/page/DOMWindow.cpp	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/page/DOMWindow.cpp	2012-01-27 05:07:14 UTC (rev 106087)
@@ -1887,6 +1887,15 @@
     dialogFrame->page()->chrome()->runModal();
 }
 
+#if ENABLE(BLOB)
+DOMURL* DOMWindow::webkitURL() const
+{
+    if (!m_domURL && isCurrentlyDisplayedInFrame())
+        m_domURL = DOMURL::create(this->scriptExecutionContext());
+    return m_domURL.get();
+}
+#endif
+
 #if ENABLE(QUOTA)
 StorageInfo* DOMWindow::webkitStorageInfo() const
 {

Modified: trunk/Source/WebCore/page/DOMWindow.h (106086 => 106087)


--- trunk/Source/WebCore/page/DOMWindow.h	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/page/DOMWindow.h	2012-01-27 05:07:14 UTC (rev 106087)
@@ -351,6 +351,10 @@
         using RefCounted<DOMWindow>::ref;
         using RefCounted<DOMWindow>::deref;
 
+#if ENABLE(BLOB)
+        DOMURL* webkitURL() const;
+#endif
+
 #if ENABLE(DEVICE_ORIENTATION)
         DEFINE_ATTRIBUTE_EVENT_LISTENER(devicemotion);
         DEFINE_ATTRIBUTE_EVENT_LISTENER(deviceorientation);

Modified: trunk/Source/WebCore/page/DOMWindow.idl (106086 => 106087)


--- trunk/Source/WebCore/page/DOMWindow.idl	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/page/DOMWindow.idl	2012-01-27 05:07:14 UTC (rev 106087)
@@ -783,7 +783,7 @@
 
         attribute [Conditional=BLOB] WebKitBlobBuilderConstructor WebKitBlobBuilder;
 
-        attribute [Conditional=BLOB] DOMURLConstructor webkitURL;
+        readonly attribute [Conditional=BLOB] DOMURL webkitURL;
 
 #if defined(ENABLE_QUOTA) && ENABLE_QUOTA
         readonly attribute [EnabledAtRuntime=Quota] StorageInfo webkitStorageInfo;

Modified: trunk/Source/WebCore/workers/WorkerContext.cpp (106086 => 106087)


--- trunk/Source/WebCore/workers/WorkerContext.cpp	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/workers/WorkerContext.cpp	2012-01-27 05:07:14 UTC (rev 106087)
@@ -377,6 +377,15 @@
     return &m_eventTargetData;
 }
 
+#if ENABLE(BLOB)
+DOMURL* WorkerContext::webkitURL() const
+{
+    if (!m_domURL)
+        m_domURL = DOMURL::create(this->scriptExecutionContext());
+    return m_domURL.get();
+}
+#endif
+
 #if ENABLE(FILE_SYSTEM)
 void WorkerContext::webkitRequestFileSystem(int type, long long size, PassRefPtr<FileSystemCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
 {

Modified: trunk/Source/WebCore/workers/WorkerContext.h (106086 => 106087)


--- trunk/Source/WebCore/workers/WorkerContext.h	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/workers/WorkerContext.h	2012-01-27 05:07:14 UTC (rev 106087)
@@ -131,6 +131,10 @@
         virtual bool isContextThread() const;
         virtual bool isJSExecutionForbidden() const;
 
+#if ENABLE(BLOB)
+        DOMURL* webkitURL() const;
+#endif
+
 #if ENABLE(FILE_SYSTEM)
         enum FileSystemType {
             TEMPORARY,

Modified: trunk/Source/WebCore/workers/WorkerContext.idl (106086 => 106087)


--- trunk/Source/WebCore/workers/WorkerContext.idl	2012-01-27 05:03:39 UTC (rev 106086)
+++ trunk/Source/WebCore/workers/WorkerContext.idl	2012-01-27 05:07:14 UTC (rev 106087)
@@ -101,7 +101,7 @@
         attribute FileReaderSyncConstructor FileReaderSync;
 #endif
 
-        attribute [Conditional=BLOB] DOMURLConstructor webkitURL;
+        readonly attribute [Conditional=BLOB] DOMURL webkitURL;
 
 #if defined(ENABLE_FILE_SYSTEM) && ENABLE_FILE_SYSTEM
         const unsigned short TEMPORARY = 0;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to