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

Unified Diff: third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/resources/global-interface-listing-worker.js

Issue 1360233007: bindings: Moves event handlers and methods of Window to the instance object. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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: third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/resources/global-interface-listing-worker.js
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/resources/global-interface-listing-worker.js b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/resources/global-interface-listing-worker.js
index 8e0881b879f9af4aaa09fb02ef112fd044feb8c7..c88c0b2962669a2763c04cbb79523661ebe47176 100644
--- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/resources/global-interface-listing-worker.js
+++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/resources/global-interface-listing-worker.js
@@ -1,5 +1,8 @@
/* Adopted from LayoutTests/webexposed/resources/global-interface-listing.js */
+// Run all the code in a local scope.
+(function(global_object) {
+
var globals = [];
// List of builtin JS constructors; Blink is not controlling what properties these
@@ -16,10 +19,15 @@ var js_builtins = new Set([
'Float32Array',
'Float64Array',
'Function',
+ 'Infinity',
'Int16Array',
'Int32Array',
'Int8Array',
+ 'Intl',
+ 'JSON',
'Map',
+ 'Math',
+ 'NaN',
'Number',
'Object',
'Promise',
@@ -31,13 +39,25 @@ var js_builtins = new Set([
'Symbol',
'SyntaxError',
'TypeError',
+ 'URIError',
'Uint16Array',
'Uint32Array',
'Uint8Array',
'Uint8ClampedArray',
- 'URIError',
'WeakMap',
'WeakSet',
+ 'decodeURI',
+ 'decodeURIComponent',
+ 'encodeURI',
+ 'encodeURIComponent',
+ 'escape',
+ 'eval',
+ 'isFinite',
+ 'isNaN',
+ 'parseFloat',
+ 'parseInt',
+ 'undefined',
+ 'unescape',
]);
function is_web_idl_constructor(property_name) {
@@ -52,33 +72,48 @@ function is_web_idl_constructor(property_name) {
descriptor.configurable;
}
-var interface_names = Object.getOwnPropertyNames(this).filter(is_web_idl_constructor);
+function collect_property_info(object, property_name, output) {
+ var descriptor = Object.getOwnPropertyDescriptor(object, property_name);
+ if ('value' in descriptor) {
+ var type;
+ if (typeof descriptor.value === 'function') {
+ type = 'method';
+ } else {
+ type = 'attribute';
+ }
+ output.push(' ' + type + ' ' + property_name);
+ } else {
+ if (descriptor.get)
+ output.push(' getter ' + property_name);
+ if (descriptor.set)
+ output.push(' setter ' + property_name);
+ }
+}
+
+var interface_names = Object.getOwnPropertyNames(global_object).filter(is_web_idl_constructor);
interface_names.sort();
interface_names.forEach(function(interface_name) {
globals.push('interface ' + interface_name);
var property_strings = [];
var prototype = this[interface_name].prototype;
Object.getOwnPropertyNames(prototype).forEach(function(property_name) {
- var descriptor = Object.getOwnPropertyDescriptor(
- prototype, property_name);
- if ('value' in descriptor) {
- var type;
- if (typeof descriptor.value === 'function') {
- type = 'method';
- } else {
- type = 'attribute';
- }
- property_strings.push(' ' + type + ' ' + property_name);
- } else {
- if (descriptor.get)
- property_strings.push(' getter ' + property_name);
- if (descriptor.set)
- property_strings.push(' setter ' + property_name);
- }
- });
+ collect_property_info(prototype, property_name, property_strings);
+ });
globals.push.apply(globals, property_strings.sort());
});
+globals.push('global object');
+var property_strings = [];
+var member_names = Object.getOwnPropertyNames(global_object).filter(function(property_name) {
+ return !js_builtins.has(property_name) && !is_web_idl_constructor(property_name);
+});
+member_names.forEach(function(property_name) {
+ collect_property_info(global_object, property_name, property_strings);
+});
+globals.push.apply(globals, property_strings.sort());
+
self.addEventListener('message', function(event) {
event.ports[0].postMessage({ result: globals });
});
+
+})(this); // Run all the code in a local scope.

Powered by Google App Engine
This is Rietveld 408576698