Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(350)

Unified Diff: chrome/test/data/extensions/storage_monitor/hosted_apps/common.js

Issue 2923663002: ExtensionStorageMonitor: use smaller, self-registering StorageObservers (Closed)
Patch Set: Remove lame comment. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/storage_monitor/hosted_apps/common.js
diff --git a/chrome/test/data/extensions/storage_monitor/hosted_apps/common.js b/chrome/test/data/extensions/storage_monitor/hosted_apps/common.js
new file mode 100644
index 0000000000000000000000000000000000000000..a673abdc17287b1ee6d613ef6a7279c686c3f780
--- /dev/null
+++ b/chrome/test/data/extensions/storage_monitor/hosted_apps/common.js
@@ -0,0 +1,51 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Opens the filesystem and returns a Promise that resolves to the opened
+// filesystem.
+function GetFileSystem(type, size) {
+ return new Promise(
+ (resolve, reject) =>
+ webkitRequestFileSystem(type, size, resolve, reject));
+}
+
+// Returns a .then()-chainable handler that accepts a fileystem, creates a file,
+// and returns a Promise that resolves to the successfully created file.
+function CreateFile(filename) {
+ return (filesystem) => new Promise(
+ (resolve, reject) => filesystem.root.getFile(
+ filename, {create: true}, resolve, reject));
+}
+
+// Returns a .then()-chainable handler that accepts a filesystem file, appends
+// |numChars| to it, and returns a Promise that resolves to the file once the
+// append operation is successful.
+function AppendDataToFile(numChars) {
+ return ((fileEntry) => {
+ return new Promise((resolve, reject) => {
+ fileEntry.createWriter((fileWriter) => {
+ // FileWriter's onwriteend resolves the promise; onerror rejects it.
+ fileWriter.onwriteend = (e) => resolve(fileEntry);
+ fileWriter.onerror = reject;
+ fileWriter.seek(fileWriter.length);
+
+ var str = 'a'.repeat(numChars);
+
+ var blob = new Blob([str], {type: 'text/plain'});
+ console.assert(blob.size == numChars);
+ fileWriter.write(blob);
+ }, reject);
+ });
+ });
+}
+
+// Entry point to be called via ExecuteScript in the browser test C++ code.
+//
+// Asynchronously opens writes |numChars| to the filesystem. Returns a Promise
+// that resolves upon completion.
+function HostedAppWriteData(type, numChars) {
+ return GetFileSystem(type, 16384)
+ .then(CreateFile('test.txt'))
+ .then(AppendDataToFile(numChars));
+}

Powered by Google App Engine
This is Rietveld 408576698