| Index: third_party/WebKit/Source/core/loader/ThreadableLoader.h
|
| diff --git a/third_party/WebKit/Source/core/loader/ThreadableLoader.h b/third_party/WebKit/Source/core/loader/ThreadableLoader.h
|
| index 5a883921b57fff71fc72d7dd58c866491e2b5f1f..ef4d9158d12e8b79c19e42e5e00ddfff5bd56f94 100644
|
| --- a/third_party/WebKit/Source/core/loader/ThreadableLoader.h
|
| +++ b/third_party/WebKit/Source/core/loader/ThreadableLoader.h
|
| @@ -133,30 +133,46 @@ public:
|
| // ThreadableLoaderClient methods may not destroy the ThreadableLoader
|
| // instance in them.
|
| static void loadResourceSynchronously(ExecutionContext&, const ResourceRequest&, ThreadableLoaderClient&, const ThreadableLoaderOptions&, const ResourceLoaderOptions&);
|
| +
|
| + // This method never returns nullptr.
|
| + //
|
| + // This method must always be followed by start() call.
|
| + // ThreadableLoaderClient methods are never called before start() call.
|
| + //
|
| + // The async loading feature is separated into the create() method and
|
| + // and the start() method in order to:
|
| + // - reduce work done in a constructor
|
| + // - not to ask the users to handle failures in the constructor and other
|
| + // async failures separately
|
| + //
|
| // Loading completes when one of the following methods are called:
|
| // - didFinishLoading()
|
| // - didFail()
|
| // - didFailAccessControlCheck()
|
| // - didFailRedirectCheck()
|
| - // After any of these methods is called, no ThreadableLoaderClient method
|
| - // will be called.
|
| + // After any of these methods is called, the loader won't call any of the
|
| + // ThreadableLoaderClient methods.
|
| //
|
| - // When ThreadableLoader is destructed, ThreadableLoaderClient methods are
|
| - // NOT called in response to the destruction synchronously or after
|
| - // destruction.
|
| + // When a ThreadableLoader is destructed, any of the
|
| + // ThreadableLoaderClient methods is NOT called in response to the
|
| + // destruction either synchronously or after destruction.
|
| //
|
| // When ThreadableLoader::cancel() is called,
|
| - // ThreadableLoaderClient::didFail() is called with ResourceError with
|
| - // isCancellation() returning true, if any of didFinishLoading() or
|
| - // didFail.*() methods have not been called yet. (didFail() may be called
|
| - // with a ResourceError with isCancellation() returning true also for
|
| - // cancellation happened inside the loader.)
|
| + // ThreadableLoaderClient::didFail() is called with a ResourceError
|
| + // with isCancellation() returning true, if any of didFinishLoading()
|
| + // or didFail.*() methods have not been called yet. (didFail() may be
|
| + // called with a ResourceError with isCancellation() returning true
|
| + // also for cancellation happened inside the loader.)
|
| //
|
| // ThreadableLoaderClient methods:
|
| // - may call cancel()
|
| // - can destroy the ThreadableLoader instance in them (by clearing
|
| // RefPtr<ThreadableLoader>).
|
| - static PassRefPtr<ThreadableLoader> create(ExecutionContext&, ThreadableLoaderClient*, const ResourceRequest&, const ThreadableLoaderOptions&, const ResourceLoaderOptions&);
|
| + static PassRefPtr<ThreadableLoader> create(ExecutionContext&, ThreadableLoaderClient*, const ThreadableLoaderOptions&, const ResourceLoaderOptions&);
|
| +
|
| + // The methods on the ThreadableLoaderClient passed on create() call
|
| + // may be called synchronous to start() call.
|
| + virtual void start(const ResourceRequest&) = 0;
|
|
|
| // A ThreadableLoader may have a timeout specified. It is possible, in some cases, for
|
| // the timeout to be overridden after the request is sent (for example, XMLHttpRequests
|
|
|