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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/PrivateScriptRunner.js

Issue 2571063002: Remove Blink-in-JS (Closed)
Patch Set: Created 4 years 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 "use strict";
6
7 function PrivateScriptController()
8 {
9 this._installedClasses = {};
10 this._DOMException = {};
11 this._JSError = {};
12 // This list must be in sync with the enum in ExceptionCode.h. The order mat ters.
13 var domExceptions = [
14 "IndexSizeError",
15 "HierarchyRequestError",
16 "WrongDocumentError",
17 "InvalidCharacterError",
18 "NoModificationAllowedError",
19 "NotFoundError",
20 "NotSupportedError",
21 "InUseAttributeError", // Historical. Only used in setAttributeNode etc which have been removed from the DOM specs.
22
23 // Introduced in DOM Level 2:
24 "InvalidStateError",
25 "SyntaxError",
26 "InvalidModificationError",
27 "NamespaceError",
28 "InvalidAccessError",
29
30 // Introduced in DOM Level 3:
31 "TypeMismatchError", // Historical; use TypeError instead
32
33 // XMLHttpRequest extension:
34 "SecurityError",
35
36 // Others introduced in HTML5:
37 "NetworkError",
38 "AbortError",
39 "URLMismatchError",
40 "QuotaExceededError",
41 "TimeoutError",
42 "InvalidNodeTypeError",
43 "DataCloneError",
44
45 // These are IDB-specific.
46 "UnknownError",
47 "ConstraintError",
48 "DataError",
49 "TransactionInactiveError",
50 "ReadOnlyError",
51 "VersionError",
52
53 // File system
54 "NotReadableError",
55 "EncodingError",
56 "PathExistsError",
57
58 // SQL
59 "SQLDatabaseError", // Naming conflict with DatabaseError class.
60
61 // Web Crypto
62 "OperationError",
63
64 // Push API
65 "PermissionDeniedError",
66
67 // Pointer Events
68 "InvalidPointerId",
69 ];
70
71 // This list must be in sync with the enum in ExceptionCode.h. The order mat ters.
72 var jsErrors = [
73 "Error",
74 "TypeError",
75 "RangeError",
76 "SyntaxError",
77 "ReferenceError",
78 ];
79
80 var code = 1;
81 domExceptions.forEach(function (exception) {
82 this._DOMException[exception] = code;
83 ++code;
84 }.bind(this));
85
86 var code = 1000;
87 jsErrors.forEach(function (exception) {
88 this._JSError[exception] = code;
89 ++code;
90 }.bind(this));
91 }
92
93 PrivateScriptController.prototype = {
94 get installedClasses()
95 {
96 return this._installedClasses;
97 },
98
99 get DOMException()
100 {
101 return this._DOMException;
102 },
103
104 get JSError()
105 {
106 return this._JSError;
107 },
108
109 installClass: function(className, implementation)
110 {
111 function PrivateScriptClass()
112 {
113 }
114
115 if (!(className in this._installedClasses))
116 this._installedClasses[className] = new PrivateScriptClass();
117 implementation(this._installedClasses[className]);
118 },
119
120 // Private scripts can throw JS errors and DOM exceptions as follows:
121 // throwException(privateScriptController.DOMException.IndexSizeError, " ...");
122 // throwException(privateScriptController.JSError.TypeError, "...");
123 //
124 // Note that normal JS errors thrown by private scripts are treated
125 // as real JS errors caused by programming mistake and the execution crashes .
126 // If you want to intentially throw JS errors from private scripts,
127 // you need to use throwException(privateScriptController.JSError.TypeError, "...").
128 throwException: function(code, message)
129 {
130 function PrivateScriptException()
131 {
132 }
133
134 var exception = new PrivateScriptException();
135 exception.code = code;
136 exception.message = message;
137 exception.name = "PrivateScriptException";
138 throw exception;
139 },
140 }
141
142 if (!window.hasOwnProperty("privateScriptController"))
143 window.privateScriptController = new PrivateScriptController();
144
145 // This line must be the last statement of this JS file.
146 // A parenthesis is needed, because the caller of this script (PrivateScriptRunn er.cpp)
147 // is depending on the completion value of this script.
148 (privateScriptController.installedClasses);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698