Title: [182797] trunk
Revision
182797
Author
[email protected]
Date
2015-04-14 09:13:32 -0700 (Tue, 14 Apr 2015)

Log Message

Unreviewed, rolling out r182794.
https://bugs.webkit.org/show_bug.cgi?id=143714

readable-stream-templated.html fails on Debug bots (Requested
by youenn on #webkit).

Reverted changeset:

"[Streams API] ReadableStream constructor start function
should be able to close the stream"
https://bugs.webkit.org/show_bug.cgi?id=143363
http://trac.webkit.org/changeset/182794

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (182796 => 182797)


--- trunk/LayoutTests/ChangeLog	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/LayoutTests/ChangeLog	2015-04-14 16:13:32 UTC (rev 182797)
@@ -1,3 +1,18 @@
+2015-04-14  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r182794.
+        https://bugs.webkit.org/show_bug.cgi?id=143714
+
+        readable-stream-templated.html fails on Debug bots (Requested
+        by youenn on #webkit).
+
+        Reverted changeset:
+
+        "[Streams API] ReadableStream constructor start function
+        should be able to close the stream"
+        https://bugs.webkit.org/show_bug.cgi?id=143363
+        http://trac.webkit.org/changeset/182794
+
 2015-04-14  Xabier Rodriguez Calvar  <[email protected]> and Youenn Fablet  <[email protected]>
 
         [Streams API] ReadableStream constructor start function should be able to close the stream

Modified: trunk/LayoutTests/streams/reference-implementation/readable-stream-reader-expected.txt (182796 => 182797)


--- trunk/LayoutTests/streams/reference-implementation/readable-stream-reader-expected.txt	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/LayoutTests/streams/reference-implementation/readable-stream-reader-expected.txt	2015-04-14 16:13:32 UTC (rev 182797)
@@ -11,7 +11,7 @@
 PASS Constructing a ReadableStreamReader directly should be OK if the stream is errored 
 FAIL Reading from a reader for an empty stream will wait until a chunk is available read is not implemented
 FAIL cancel() on a reader releases the reader before calling through cancel is not implemented
-PASS closed should be fulfilled after stream is closed (.closed access before acquiring) 
+TIMEOUT closed should be fulfilled after stream is closed (.closed access before acquiring) Test timed out
 FAIL closed should be fulfilled after reader releases its lock (multiple stream locks) releaseLock is not implemented
 FAIL Multiple readers can access the stream in sequence read is not implemented
 FAIL Cannot use an already-released reader to unlock a stream again releaseLock is not implemented

Modified: trunk/LayoutTests/streams/reference-implementation/readable-stream-templated-expected.txt (182796 => 182797)


--- trunk/LayoutTests/streams/reference-implementation/readable-stream-templated-expected.txt	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/LayoutTests/streams/reference-implementation/readable-stream-templated-expected.txt	2015-04-14 16:13:32 UTC (rev 182797)
@@ -15,10 +15,10 @@
 PASS Running templatedRSClosed with ReadableStream (closed via call in start) 
 FAIL cancel() should return a distinct fulfilled promise each time cancel is not implemented
 PASS getReader() should be OK 
-PASS should be able to acquire multiple readers, since they are all auto-released 
+FAIL should be able to acquire multiple readers, since they are all auto-released ReadableStream is locked
 PASS Running templatedRSClosedReader with ReadableStream (closed via call in start) reader 
 FAIL read() should fulfill with { value: undefined, done: true } read is not implemented
-PASS closed should fulfill with undefined 
+TIMEOUT closed should fulfill with undefined Test timed out
 FAIL cancel() should return a distinct fulfilled promise each time cancel is not implemented
 PASS Running templatedRSClosed with ReadableStream (closed via cancel) 
 FAIL cancel() should return a distinct fulfilled promise each time cancel is not implemented

Modified: trunk/Source/WebCore/ChangeLog (182796 => 182797)


--- trunk/Source/WebCore/ChangeLog	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/Source/WebCore/ChangeLog	2015-04-14 16:13:32 UTC (rev 182797)
@@ -1,3 +1,18 @@
+2015-04-14  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r182794.
+        https://bugs.webkit.org/show_bug.cgi?id=143714
+
+        readable-stream-templated.html fails on Debug bots (Requested
+        by youenn on #webkit).
+
+        Reverted changeset:
+
+        "[Streams API] ReadableStream constructor start function
+        should be able to close the stream"
+        https://bugs.webkit.org/show_bug.cgi?id=143363
+        http://trac.webkit.org/changeset/182794
+
 2015-04-14  Per Arne Vollan  <[email protected]>
 
         [WinCairo] Unreviewed build fix after r182707.

Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.cpp (182796 => 182797)


--- trunk/Source/WebCore/Modules/streams/ReadableStream.cpp	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.cpp	2015-04-14 16:13:32 UTC (rev 182797)
@@ -58,16 +58,6 @@
 #endif
 }
 
-void ReadableStream::changeStateToClosed()
-{
-    if (m_state != State::Readable)
-        return;
-    m_state = State::Closed;
-    if (m_reader)
-        m_reader->changeStateToClosed();
-    ASSERT(!m_reader);
-}
-
 void ReadableStream::start()
 {
     notImplemented();

Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.h (182796 => 182797)


--- trunk/Source/WebCore/Modules/streams/ReadableStream.h	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.h	2015-04-14 16:13:32 UTC (rev 182797)
@@ -68,7 +68,6 @@
     State internalState() { return m_state; }
 
     void start();
-    void changeStateToClosed();
 
 protected:
     ReadableStream(ScriptExecutionContext&, Ref<ReadableStreamSource>&&);

Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamReader.cpp (182796 => 182797)


--- trunk/Source/WebCore/Modules/streams/ReadableStreamReader.cpp	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamReader.cpp	2015-04-14 16:13:32 UTC (rev 182797)
@@ -41,13 +41,14 @@
 
 ReadableStreamReader::ReadableStreamReader(ReadableStream& stream)
     : ActiveDOMObject(stream.scriptExecutionContext())
-    , m_stream(&stream)
 {
 #ifndef NDEBUG
     readableStreamReaderCounter.increment();
 #endif
     suspendIfNeeded();
-    initialize();
+    ASSERT_WITH_MESSAGE(!stream.reader(), "A ReadableStream cannot be locked by two readers at the same time.");
+    m_stream = &stream;
+    stream.lock(*this);
 }
 
 ReadableStreamReader::~ReadableStreamReader()
@@ -61,46 +62,11 @@
     }
 }
 
-void ReadableStreamReader::initialize()
+void ReadableStreamReader::closed(ClosedSuccessCallback, ClosedErrorCallback)
 {
-    ASSERT_WITH_MESSAGE(!m_stream->isLocked(), "A ReadableStream cannot be locked by two readers at the same time.");
-    m_stream->lock(*this);
-    if (m_stream->internalState() == ReadableStream::State::Closed) {
-        changeStateToClosed();
-        return;
-    }
+    notImplemented();    
 }
 
-void ReadableStreamReader::releaseStream()
-{
-    ASSERT(m_stream);
-    m_stream->release();
-    m_stream = nullptr;
-}
-
-void ReadableStreamReader::closed(ClosedSuccessCallback successCallback, ClosedErrorCallback)
-{
-    if (m_state == State::Closed) {
-        successCallback();
-        return;
-    }
-    m_closedSuccessCallback = WTF::move(successCallback);
-}
-
-void ReadableStreamReader::changeStateToClosed()
-{
-    ASSERT(m_state == State::Readable);
-    m_state = State::Closed;
-
-    if (m_closedSuccessCallback) {
-        ClosedSuccessCallback closedSuccessCallback = WTF::move(m_closedSuccessCallback);
-        closedSuccessCallback();
-    }
-    ASSERT(!m_closedSuccessCallback);
-    releaseStream();
-    // FIXME: Implement read promise fulfilling.
-}
-
 const char* ReadableStreamReader::activeDOMObjectName() const
 {
     return "ReadableStreamReader";

Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamReader.h (182796 => 182797)


--- trunk/Source/WebCore/Modules/streams/ReadableStreamReader.h	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamReader.h	2015-04-14 16:13:32 UTC (rev 182797)
@@ -46,12 +46,6 @@
 // See https://streams.spec.whatwg.org/#reader-class for more information.
 class ReadableStreamReader : public ActiveDOMObject, public ScriptWrappable, public RefCounted<ReadableStreamReader> {
 public:
-    enum class State {
-        Readable,
-        Closed,
-        Errored
-    };
-
     virtual ~ReadableStreamReader();
 
     ReadableStream* stream() { return m_stream.get(); }
@@ -60,23 +54,15 @@
     typedef std::function<void()> ClosedErrorCallback;
     void closed(ClosedSuccessCallback, ClosedErrorCallback);
 
-    void changeStateToClosed();
-
 protected:
     ReadableStreamReader(ReadableStream&);
 
-    void releaseStream();
-
 private:
     // ActiveDOMObject API.
     const char* activeDOMObjectName() const override;
     bool canSuspendForPageCache() const override;
-    void initialize();
 
     RefPtr<ReadableStream> m_stream;
-    State m_state { State::Readable };
-
-    ClosedSuccessCallback m_closedSuccessCallback;
 };
 
 }

Modified: trunk/Source/WebCore/bindings/js/JSDOMPromise.h (182796 => 182797)


--- trunk/Source/WebCore/bindings/js/JSDOMPromise.h	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/Source/WebCore/bindings/js/JSDOMPromise.h	2015-04-14 16:13:32 UTC (rev 182797)
@@ -98,13 +98,6 @@
 }
 
 template<>
-inline void DeferredWrapper::resolve<JSC::JSValue>(const JSC::JSValue& value)
-{
-    JSC::ExecState* exec = m_globalObject->globalExec();
-    JSC::JSLockHolder locker(exec);
-    resolve(exec, value);
-}
-template<>
 inline void DeferredWrapper::resolve<Vector<unsigned char>>(const Vector<unsigned char>& result)
 {
     JSC::ExecState* exec = m_globalObject->globalExec();

Modified: trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp (182796 => 182797)


--- trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp	2015-04-14 16:13:32 UTC (rev 182797)
@@ -71,8 +71,9 @@
 {
     JSPromiseDeferred* promiseDeferred = getOrCreatePromiseDeferredFromObject(exec, this, globalObject(), closedPromiseSlotName());
     DeferredWrapper wrapper(exec, globalObject(), promiseDeferred);
-    auto successCallback = [wrapper]() mutable {
-        wrapper.resolve(jsUndefined());
+    auto successCallback = [this, wrapper]() mutable {
+        // FIXME: return jsUndefined().
+        wrapper.resolve(&impl());
     };
     auto failureCallback = [this, wrapper]() mutable {
         // FIXME: return stored error.

Modified: trunk/Source/WebCore/bindings/js/ReadableStreamJSSource.cpp (182796 => 182797)


--- trunk/Source/WebCore/bindings/js/ReadableStreamJSSource.cpp	2015-04-14 15:15:35 UTC (rev 182796)
+++ trunk/Source/WebCore/bindings/js/ReadableStreamJSSource.cpp	2015-04-14 16:13:32 UTC (rev 182797)
@@ -64,21 +64,6 @@
     return propertySlot.getValue(exec, propertyName);
 }
 
-// This slot name is used to store the JSReadableStream in created JS functions (enqueue, close...).
-// This allows retrieving the corresponding JSReadableStream when executing the JS function.
-static JSC::PrivateName& readableStreamSlotName()
-{
-    static NeverDestroyed<JSC::PrivateName> readableStreamSlotName("readableStream");
-    return readableStreamSlotName;
-}
-
-static ReadableJSStream& getReadableJSStream(ExecState* exec)
-{
-    JSReadableStream* jsReadableStream = jsDynamicCast<JSReadableStream*>(getInternalSlotFromObject(exec, exec->callee(), readableStreamSlotName()));
-    ASSERT(jsReadableStream);
-    return static_cast<ReadableJSStream&>(jsReadableStream->impl());
-}
-
 static inline JSValue getPropertyFromObject(ExecState* exec, JSObject* object, const char* identifier)
 {
     return object->get(exec, Identifier::fromString(exec, identifier));
@@ -121,19 +106,11 @@
     return JSFunction::create(exec->vm(), exec->callee()->globalObject(), 1, String(), notImplementedFunction);
 }
 
-static EncodedJSValue JSC_HOST_CALL closeReadableStreamFunction(ExecState* exec)
+static inline JSFunction* createReadableStreamCloseFunction(ExecState* exec)
 {
-    getReadableJSStream(exec).changeStateToClosed();
-    return JSValue::encode(jsUndefined());
+    return JSFunction::create(exec->vm(), exec->callee()->globalObject(), 0, String(), notImplementedFunction);
 }
 
-static inline JSFunction* createReadableStreamCloseFunction(ExecState* exec, JSReadableStream* readableStream)
-{
-    JSFunction* closeFunction = JSFunction::create(exec->vm(), exec->callee()->globalObject(), 0, String(), closeReadableStreamFunction);
-    setInternalSlotToObject(exec, closeFunction, readableStreamSlotName(), readableStream);
-    return closeFunction;
-}
-
 static inline JSFunction* createReadableStreamErrorFunction(ExecState* exec)
 {
     return JSFunction::create(exec->vm(), exec->callee()->globalObject(), 1, String(), notImplementedFunction);
@@ -147,10 +124,10 @@
     });
 }
 
-static inline JSObject* createReadableStreamController(JSC::ExecState* exec, JSReadableStream* readableStream)
+static inline JSObject* createReadableStreamController(JSC::ExecState* exec)
 {
     JSFunction* enqueueFunction = createReadableStreamEnqueueFunction(exec);
-    JSFunction* closeFunction = createReadableStreamCloseFunction(exec, readableStream);
+    JSFunction* closeFunction = createReadableStreamCloseFunction(exec);
     JSFunction* errorFunction = createReadableStreamErrorFunction(exec);
 
     JSObject* controller =  JSFinalObject::create(exec->vm(), JSFinalObject::createStructure(exec->vm(), exec->callee()->globalObject(), jsNull(), 3));
@@ -164,7 +141,7 @@
 {
     JSLockHolder lock(exec);
 
-    m_controller.set(exec->vm(), createReadableStreamController(exec, readableStream));
+    m_controller.set(exec->vm(), createReadableStreamController(exec));
 
     JSValue startFunction = getPropertyFromObject(exec, m_source.get(), "start");
     if (!startFunction.isFunction()) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to