Commit Graph

77 Commits

Author SHA1 Message Date
Ehsan Akhgari
49d9bd179e Bug 1144725 - Forcefully terminate the workers used in DOM cache tests once we're done with them; r=bkelly 2015-03-21 20:09:40 -04:00
Ehsan Akhgari
c7ce5ec18d Bug 1143894 - Part 5: Add a test for handling of the Vary header with multiple entries in the cache; r=bkelly 2015-03-21 19:45:14 -04:00
Ehsan Akhgari
a24b0103aa Bug 1143894 - Part 4: Add tests for handling of the Vary header in DOM Cache; r=bkelly 2015-03-21 19:45:13 -04:00
Ehsan Akhgari
668d273708 Bug 1143894 - Part 3: Do not propagate errors in getting the headers to the outside world; r=bkelly
The Vary header may contain invalid header name values.  We should just
ignore such values as opposed to propagating them to the caller.  Before
this patch, attempts to add a request with such a Vary header for example
would fail, since the internal QueryCache() call when executing the
CachePutAllAction would fail.
2015-03-21 19:45:12 -04:00
Ehsan Akhgari
c165bfb4e8 Bug 1143894 - Part 2: Support Vary headers including multiple header names in DOM Cache; r=bkelly
The Vary header may include one or more HTTP header field names, so we
need to extract those names here, similar to the way that the
nsHttpChannel::ResponseWouldVary() function consumes the Vary header.
2015-03-21 19:45:12 -04:00
Ehsan Akhgari
01349908f4 Bug 1143894 - Part 1: Clear the ErrorResult message if InternalHeaders::Get fails; r=bkelly
InternalHeaders::Get() may throw NS_ERROR_TYPE_ERR with an associated message.
The semantics of ErrorResult dictate that the message needs to be consumed by
the time that the object gets destroyed, so we need to clear it before
returning in these two places.
2015-03-21 19:45:11 -04:00
Ehsan Akhgari
5cccea6f0f Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Daniel Holbert
d421ed35bc Bug 1143223 followup: Add MOZ_OVERRIDE annotation to ReadStream::Inner's refcounting macro. rs=ehsan 2015-03-21 00:17:49 -07:00
Ben Kelly
251e149634 Bug 1143223 - Teach Cache ReadStream not to AddRef() itself in its destructor. r=ehsan 2015-03-20 11:01:57 -07:00
Ryan VanderMeulen
d23f3fc2d4 Backed out changeset fd0834bbfd3c (bug 1143223) for making test_mediaElementAudioSourceNodePassThrough.html almost perma-timeout on Android 4.0. 2015-03-20 17:03:27 -04:00
Ehsan Akhgari
79ee8722c2 Bug 1144337 - Add tests to ensure that cacheName is only honored on CacheStorage, and not Cache; r=bkelly 2015-03-20 16:05:49 -04:00
Ben Kelly
f417bd0137 Bug 1143223 Teach Cache ReadStream not to AddRef() itself in its destructor. r=ehsan 2015-03-20 11:01:57 -07:00
Ehsan Akhgari
77316d2007 Bug 1143222 - Put the DOM Cache tests in sequential mode again until we fix the rest of the intermittent failures; a=RyanVM 2015-03-19 17:08:02 -04:00
Ehsan Akhgari
34784d49cb Bug 1145321 - Disconnect the CacheStorage object from its actor when it gets cycle collected; r=bkelly 2015-03-19 17:06:59 -04:00
Ehsan Akhgari
ed080a81cf Bug 1143504 - Disconnect the Cache object from its actor when it gets cycle collected; r=bkelly 2015-03-19 17:06:57 -04:00
Boris Zbarsky
988b8e01be Bug 1117172 part 3. Change the wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv
The only manual changes here are to BindingUtils.h, BindingUtils.cpp,
Codegen.py, Element.cpp, IDBFileRequest.cpp, IDBObjectStore.cpp,
dom/workers/Navigator.cpp, WorkerPrivate.cpp, DeviceStorageRequestChild.cpp,
Notification.cpp, nsGlobalWindow.cpp, MessagePort.cpp, nsJSEnvironment.cpp,
Sandbox.cpp, XPCConvert.cpp, ExportHelpers.cpp, and DataStoreService.cpp.  The
rest of this diff was generated by running the following commands:

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObject\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(Binding(?:_workers)?::Wrap\((?:aCx|cx|aContext|aCtx|js), [^,)]+)\)/\1, aGivenProto)/g'
2015-03-19 10:13:33 -04:00
Ehsan Akhgari
679e6efd4a Bug 1144236 - Add tests for the ignoreMethod match mode in DOM cache; r=bkelly 2015-03-17 10:58:00 +01:00
Ehsan Akhgari
1742ae53d8 Bug 1144214 - Fix DeleteOrphanedBodyAction so that it doesn't orphan cache files if the action is canceled; r=bkelly 2015-03-18 14:19:00 +01:00
Nigel Babu
b31bcba27d Backed out changeset dd13fdf7b284 (bug 1144236) for bustage CLOSED TREE 2015-03-18 12:05:33 +05:30
Nigel Babu
489974e847 Backed out changeset 96c20db25b6b (bug 1144214) for Android M4 bustage CLOSED TREE 2015-03-18 11:48:41 +05:30
Ehsan Akhgari
2b77f254df Bug 1144236 - Add tests for the ignoreMethod match mode in DOM cache; r=bkelly 2015-03-17 23:56:32 -04:00
Ehsan Akhgari
58dbbe9814 Bug 1144214 - Fix DeleteOrphanedBodyAction so that it doesn't orphan cache files if the action is canceled; r=bkelly 2015-03-17 23:56:31 -04:00
Nikhil Marathe
79a59984ee Bug 1143155 - Filtered response stores internal response and allows access to headers. r=bkelly 2015-03-17 08:47:01 -07:00
Ehsan Akhgari
41f1bd318c Bug 1143222 - Avoid dumping out extremely long response bodies to the mochitest log, and re-enable the newly added DOM cache tests to run both in seqential and parallel modes; r=bkelly
The test timeouts here are some form of bug 1141256, which causes the service
worker spawned in the parallel mode of the tests to never start up.  It turns
out that avoiding sending this huge message to the mochitest logger avoids the
issue on the infrastructure, so let's re-enable these tests.  Bug 1141256 still
needs to be investigated.
2015-03-17 16:51:57 -04:00
Daniel Holbert
2416fccac8 Bug 1142841: Convert all nsRefPtr<nsIRunnable> to nsCOMPtr<nsIRunnable>. r=ehsan
This patch was generated by a script.  Here's the source of the script for
future reference:

find . \( -iname "*.cpp" -o -iname "*.h" \) | \
  xargs -n 1 sed -i "s/nsRefPtr<nsIRunnable>/nsCOMPtr<nsIRunnable>/g"
2015-03-17 09:29:17 -07:00
Ehsan Akhgari
133e9b738f Bug 1143959 - Set the journal mode and foreign key pragmas for all DBActions; r=bkelly
Before this patch, we would only set these pragmas as part of CreateSchema
which runs in SetupAction.  This meant that the connection used to perform
other DBActions would not have had these pragmas applied.  As a result,
sqlite would not honor foreign keys on such connections, so the cascade
delete rules responsible for deleting rows from request_headers and
response_headers would not get executed when DBSchema::CachePut deleted the
old entry before adding a new one.

The test in the patch demonstrates how this could result in an observable
breakage.  Before this patch, the response headers stored in the cache for
the overwritten entry would reflect both `Mirrored: `foo' and `Mirrored: bar'
headers, which means that attempting to get this header on the cached
response would return the first entry, `foo'.
2015-03-17 08:18:28 -04:00
Ehsan Akhgari
d83fa2d71e Bug 1143833 - Add tests for the ignoreSearch match mode in DOM cache; r=bkelly 2015-03-16 17:11:05 -04:00
Ehsan Akhgari
0e09c7917d Bug 1143820 - Add tests to ensure that the URL fragments are correctly ignored by the DOM Cache API; r=bkelly 2015-03-16 17:08:09 -04:00
Ehsan Akhgari
4132833fa3 Bug 1143813 - Add tests for attempting to store a non-GET request in the DOM Cache; r=bkelly 2015-03-16 17:03:45 -04:00
Ehsan Akhgari
5282ab4b21 Bug 1143511 - Correct the usages of .catch() in DOM cache tests; r=bkelly
These tests used .catch() incorrectly, in a way that did not actually
guarantee that the promise is rejected, so in 3 cases the promise
resolved to known failure values (undefined or an empty array) and
this was not being caught as a test failure.

This patch fixes those three places, and also rewrites the .catch()
usage in another case to guarantee that the promise is indeed rejected.
2015-03-16 16:53:10 -04:00
Ehsan Akhgari
ea48a7555b Bug 1143219 - Add tests for passing an unknown request to match and matchAll; r=bkelly 2015-03-16 16:46:49 -04:00
Ehsan Akhgari
15056496a8 Bug 1143193 - Run the tests for match and matchAll on both Request objects and string URLs; r=bkelly 2015-03-16 16:29:22 -04:00
Ryan VanderMeulen
a3a835855f Backed out changeset 734e81bff9f3 (bug 1110487) for intermittent e10s cache test crashes.
CLOSED TREE
2015-03-16 13:51:33 -04:00
Ben Kelly
3b0344c909 Bug 1110487 P2 Implement the nsIOfflineStorage interface in Cache. r=janv,ehsan 2015-03-16 07:10:36 -07:00
Ben Kelly
1bdc58f834 Bug 1110487 P1 Fix some non-unified bustage before adding new code. r=ehsan 2015-03-16 07:10:36 -07:00
Ehsan Akhgari
834de712fb Bug 1143222 - Re-enable the newly added DOM cache test in sequential mode only for now 2015-03-15 17:53:50 -04:00
Ehsan Akhgari
76f2a31be8 Bug 1143222 - Disable the newly added DOM cache tests for now because of intermittent failures
Landed on a CLOSED TREE
2015-03-13 19:23:34 -04:00
Ehsan Akhgari
a5eae58c80 Bug 1142790 - Add a test for passing Request objects to DOM cache matchAll method; r=bkelly 2015-03-13 19:21:16 -04:00
Ehsan Akhgari
80e34d5a46 Bug 1142269 - Auto-vacuum the DOM Cache database; r=bkelly
It's easiest if we use auto_vaccum for now.  In the future if this
proves to be insufficient we can look into more sophisticated
vacuuming strategies.
2015-03-13 19:21:13 -04:00
Wes Kocher
1b0e3248ce Backed out changeset b8d2fd1bb7f5 (bug 1142269) for mochitest-1 timeouts CLOSED TREE 2015-03-13 16:02:18 -07:00
Wes Kocher
3ee4c1b86a Backed out changeset 1bd38b652695 (bug 1142790) for mochitest-1 timeouts CLOSED TREE 2015-03-13 16:02:08 -07:00
Ehsan Akhgari
b289d71c3d Bug 1142790 - Add a test for passing Request objects to DOM cache matchAll method; r=bkelly 2015-03-13 14:40:33 -04:00
Ehsan Akhgari
12f073cf7d Bug 1142269 - Auto-vacuum the DOM Cache database; r=bkelly
It's easiest if we use auto_vaccum for now.  In the future if this
proves to be insufficient we can look into more sophisticated
vacuuming strategies.
2015-03-13 14:40:27 -04:00
Ehsan Akhgari
0640d146ff Bug 1133763 - Part 4: Store the response's security info in the cache database; r=bkelly 2015-03-13 14:37:19 -04:00
Ehsan Akhgari
7f3a9f2f62 Bug 1133763 - Part 3: Wipe out the cache directory when detecting a change in the DB schema; r=bkelly 2015-03-13 14:37:18 -04:00
Ehsan Akhgari
33f9e79fa1 Bug 1133763 - Part 2: Transfer the security info associated with an InternalResponse across the IPC layer; r=bkelly 2015-03-13 14:37:16 -04:00
Ehsan Akhgari
8a54544a76 Bug 1142772 - Interleave the DOM Cache tests run through the mini-framework; r=bkelly
Here are the changes needed to achieve this:

* We tag each message posted to the framework with a context argument.
  context can be one of "Window", "Worker" or "ServiceWorker".  In the
  places where we handle messages, we only handle the ones corresponding
  to the context that we expect.
* We use Promise.all in order to interleave the execution of the tests.
  This has the nice property of actually getting the tests run
  simultaneously on multi-core machines.
* For ease of debugging test failures, we print the context from which
  each test message is coming from.
* In order for the tests that are run in parallel to not step on each
  other's toes, we introduce a global `context' variable that the test
  script can use to create names that do not clash with concurrent
  test runs.  For example, instead of `caches.open("foo")', one must now
  use: `caches.open("foo" + context)'.
* The existing tests are modified based on the above.
* When running the tests in parallel, the service worker may end up
  controlling both frame.html and message_receiver.html.  The hunk at
  the end of worker_wrapper.js is intended to ensure that we will
  always be communicating with message_receiver.html.
* An order argument has been added to runTests which can be set to
  "sequential" in order to run the tests in different contexts in
  parallel.  If the argument is omitted, the default is "parallel".
2015-03-13 14:32:02 -04:00
Ehsan Akhgari
3180084496 Bug 1142333 - Add a test for passing Request objects to DOM cache match methods; r=bkelly 2015-03-13 14:28:24 -04:00
Ehsan Akhgari
d966ddbe03 Bug 1142195 - Remove some unused class declarations in the DOM Cache code; r=bkelly 2015-03-11 16:46:15 -04:00
Ehsan Akhgari
7c033e6d36 Bug 1140658 - Part 8: Disable the service worker part of these tests on b2g while bug 1137683 gets fixed; r=bkelly 2015-03-11 16:46:04 -04:00