selenium-webdriver 2.42.0 → 2.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +11 -0
- data/Gemfile +2 -0
- data/lib/selenium/server.rb +7 -5
- data/lib/selenium/webdriver/common/target_locator.rb +8 -0
- data/lib/selenium/webdriver/firefox/binary.rb +8 -1
- data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -1
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/remote/bridge.rb +4 -0
- data/lib/selenium/webdriver/remote/commands.rb +1 -0
- data/lib/selenium/webdriver/remote/response.rb +1 -0
- data/lib/selenium/webdriver/safari/resources/client.js +269 -147
- data/selenium-webdriver.gemspec +34 -0
- metadata +19 -11
data/CHANGES
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
2.43.0 (2014-09-09)
|
2
|
+
===================
|
3
|
+
|
4
|
+
* Make sure UnhandledAlertErrors includes the alert text if provided by the driver.
|
5
|
+
* Firefox
|
6
|
+
- Make sure the browser process is properly killed if silent startup hangs (#7392)
|
7
|
+
- native events support for Firefox 24, 31 and 32
|
8
|
+
* Loosen websocket dependency to ~> 1.0
|
9
|
+
* Add support for `switch_to.parent_frame` (thanks abotalov)
|
10
|
+
* Fix download location for Selenium::Server.{latest,get} (#7049 - thanks marekj)
|
11
|
+
|
1
12
|
2.42.0 (2014-05-23)
|
2
13
|
===================
|
3
14
|
|
data/Gemfile
ADDED
data/lib/selenium/server.rb
CHANGED
@@ -57,8 +57,8 @@ module Selenium
|
|
57
57
|
|
58
58
|
begin
|
59
59
|
open(download_file_name, "wb") do |destination|
|
60
|
-
net_http.start("selenium.
|
61
|
-
resp = http.request_get("/
|
60
|
+
net_http.start("selenium-release.storage.googleapis.com") do |http|
|
61
|
+
resp = http.request_get("/#{required_version[/(\d+\.\d+)\./, 1]}/#{download_file_name}") do |response|
|
62
62
|
total = response.content_length
|
63
63
|
progress = 0
|
64
64
|
segment_count = 0
|
@@ -95,9 +95,11 @@ module Selenium
|
|
95
95
|
#
|
96
96
|
|
97
97
|
def self.latest
|
98
|
-
|
99
|
-
|
100
|
-
|
98
|
+
require 'rexml/document'
|
99
|
+
net_http.start("selenium-release.storage.googleapis.com") do |http|
|
100
|
+
REXML::Document.new(http.get("/").body).root.get_elements("//Contents/Key").map { |e|
|
101
|
+
e.text[/selenium-server-standalone-(\d+\.\d+\.\d+)\.jar/, 1]
|
102
|
+
}.compact.max
|
101
103
|
end
|
102
104
|
end
|
103
105
|
|
@@ -44,7 +44,14 @@ module Selenium
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def wait
|
47
|
-
|
47
|
+
return unless @process
|
48
|
+
|
49
|
+
begin
|
50
|
+
@process.poll_for_exit(WAIT_TIMEOUT)
|
51
|
+
rescue ChildProcess::TimeoutError => e
|
52
|
+
@process.stop
|
53
|
+
raise e
|
54
|
+
end
|
48
55
|
end
|
49
56
|
|
50
57
|
private
|
@@ -22,7 +22,6 @@
|
|
22
22
|
"extensions.logging.enabled": true,
|
23
23
|
"extensions.update.enabled": false,
|
24
24
|
"extensions.update.notifyUser": false,
|
25
|
-
"layout.css.devPixelsPerPx": "1.0",
|
26
25
|
"network.manage-offline-status": false,
|
27
26
|
"network.http.phishy-userpass-length": 255,
|
28
27
|
"offline-apps.allow_by_default": true,
|
Binary file
|
@@ -31,6 +31,7 @@ module Selenium
|
|
31
31
|
case val
|
32
32
|
when Hash
|
33
33
|
msg = val['message'] or return "unknown error"
|
34
|
+
msg << ": #{val['alert']['text'].inspect}" if val['alert'].kind_of?(Hash) && val['alert']['text']
|
34
35
|
msg << " (#{ val['class'] })" if val['class']
|
35
36
|
when String
|
36
37
|
msg = val
|
@@ -32,16 +32,44 @@ goog.provide = function(a) {
|
|
32
32
|
}
|
33
33
|
goog.exportPath_(a);
|
34
34
|
};
|
35
|
+
goog.module = function(a) {
|
36
|
+
if (!goog.isString(a) || !a) {
|
37
|
+
throw Error("Invalid module identifier");
|
38
|
+
}
|
39
|
+
if (!goog.isInModuleLoader_()) {
|
40
|
+
throw Error("Module " + a + " has been loaded incorrectly.");
|
41
|
+
}
|
42
|
+
if (goog.moduleLoaderState_.moduleName) {
|
43
|
+
throw Error("goog.module may only be called once per module.");
|
44
|
+
}
|
45
|
+
goog.moduleLoaderState_.moduleName = a;
|
46
|
+
if (!COMPILED) {
|
47
|
+
if (goog.isProvided_(a)) {
|
48
|
+
throw Error('Namespace "' + a + '" already declared.');
|
49
|
+
}
|
50
|
+
delete goog.implicitNamespaces_[a];
|
51
|
+
}
|
52
|
+
};
|
53
|
+
goog.moduleLoaderState_ = null;
|
54
|
+
goog.isInModuleLoader_ = function() {
|
55
|
+
return null != goog.moduleLoaderState_;
|
56
|
+
};
|
57
|
+
goog.module.exportTestMethods = function() {
|
58
|
+
if (!goog.isInModuleLoader_()) {
|
59
|
+
throw Error("goog.module.exportTestMethods must be called from within a goog.module");
|
60
|
+
}
|
61
|
+
goog.moduleLoaderState_.exportTestMethods = !0;
|
62
|
+
};
|
35
63
|
goog.setTestOnly = function(a) {
|
36
64
|
if (COMPILED && !goog.DEBUG) {
|
37
|
-
throw a = a || "", Error("Importing test-only code into non-debug environment" + a ? ": " + a : ".");
|
65
|
+
throw a = a || "", Error("Importing test-only code into non-debug environment" + (a ? ": " + a : "."));
|
38
66
|
}
|
39
67
|
};
|
40
68
|
goog.forwardDeclare = function(a) {
|
41
69
|
};
|
42
70
|
COMPILED || (goog.isProvided_ = function(a) {
|
43
|
-
return!goog.implicitNamespaces_[a] && goog.isDefAndNotNull(goog.getObjectByName(a));
|
44
|
-
}, goog.implicitNamespaces_ = {});
|
71
|
+
return a in goog.loadedModules_ || !goog.implicitNamespaces_[a] && goog.isDefAndNotNull(goog.getObjectByName(a));
|
72
|
+
}, goog.implicitNamespaces_ = {"goog.module":!0});
|
45
73
|
goog.getObjectByName = function(a, b) {
|
46
74
|
for (var c = a.split("."), d = b || goog.global, e;e = c.shift();) {
|
47
75
|
if (goog.isDefAndNotNull(d[e])) {
|
@@ -58,31 +86,35 @@ goog.globalize = function(a, b) {
|
|
58
86
|
c[d] = a[d];
|
59
87
|
}
|
60
88
|
};
|
61
|
-
goog.addDependency = function(a, b, c) {
|
89
|
+
goog.addDependency = function(a, b, c, d) {
|
62
90
|
if (goog.DEPENDENCIES_ENABLED) {
|
63
|
-
var
|
91
|
+
var e;
|
64
92
|
a = a.replace(/\\/g, "/");
|
65
|
-
for (var
|
66
|
-
|
93
|
+
for (var f = goog.dependencies_, g = 0;e = b[g];g++) {
|
94
|
+
f.nameToPath[e] = a, f.pathIsModule[a] = !!d;
|
67
95
|
}
|
68
96
|
for (d = 0;b = c[d];d++) {
|
69
|
-
a in
|
97
|
+
a in f.requires || (f.requires[a] = {}), f.requires[a][b] = !0;
|
70
98
|
}
|
71
99
|
}
|
72
100
|
};
|
73
101
|
goog.ENABLE_DEBUG_LOADER = !0;
|
102
|
+
goog.logToConsole_ = function(a) {
|
103
|
+
goog.global.console && goog.global.console.error(a);
|
104
|
+
};
|
74
105
|
goog.require = function(a) {
|
75
|
-
if (!COMPILED
|
106
|
+
if (!COMPILED) {
|
107
|
+
if (goog.isProvided_(a)) {
|
108
|
+
return goog.isInModuleLoader_() ? a in goog.loadedModules_ ? goog.loadedModules_[a] : goog.getObjectByName(a) : null;
|
109
|
+
}
|
76
110
|
if (goog.ENABLE_DEBUG_LOADER) {
|
77
111
|
var b = goog.getPathFromDeps_(a);
|
78
112
|
if (b) {
|
79
|
-
goog.included_[b] = !0;
|
80
|
-
goog.writeScripts_();
|
81
|
-
return;
|
113
|
+
return goog.included_[b] = !0, goog.writeScripts_(), null;
|
82
114
|
}
|
83
115
|
}
|
84
116
|
a = "goog.require could not find: " + a;
|
85
|
-
goog.
|
117
|
+
goog.logToConsole_(a);
|
86
118
|
throw Error(a);
|
87
119
|
}
|
88
120
|
};
|
@@ -105,8 +137,10 @@ goog.addSingletonGetter = function(a) {
|
|
105
137
|
};
|
106
138
|
};
|
107
139
|
goog.instantiatedSingletons_ = [];
|
140
|
+
goog.LOAD_MODULE_USING_EVAL = !0;
|
141
|
+
goog.loadedModules_ = {};
|
108
142
|
goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER;
|
109
|
-
goog.DEPENDENCIES_ENABLED && (goog.included_ = {}, goog.dependencies_ = {
|
143
|
+
goog.DEPENDENCIES_ENABLED && (goog.included_ = {}, goog.dependencies_ = {pathIsModule:{}, nameToPath:{}, requires:{}, visited:{}, written:{}}, goog.inHtmlDocument_ = function() {
|
110
144
|
var a = goog.global.document;
|
111
145
|
return "undefined" != typeof a && "write" in a;
|
112
146
|
}, goog.findBasePath_ = function() {
|
@@ -123,32 +157,93 @@ goog.DEPENDENCIES_ENABLED && (goog.included_ = {}, goog.dependencies_ = {pathToN
|
|
123
157
|
}
|
124
158
|
}
|
125
159
|
}
|
126
|
-
}, goog.importScript_ = function(a) {
|
127
|
-
|
128
|
-
|
129
|
-
|
160
|
+
}, goog.importScript_ = function(a, b) {
|
161
|
+
(goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_)(a, b) && (goog.dependencies_.written[a] = !0);
|
162
|
+
}, goog.IS_OLD_IE_ = goog.global.document && goog.global.document.all && !goog.global.atob, goog.importModule_ = function(a) {
|
163
|
+
goog.importScript_("", 'goog.retrieveAndExecModule_("' + a + '");') && (goog.dependencies_.written[a] = !0);
|
164
|
+
}, goog.queuedModules_ = [], goog.retrieveAndExecModule_ = function(a) {
|
165
|
+
var b = goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_, c = null, d = new goog.global.XMLHttpRequest;
|
166
|
+
d.onload = function() {
|
167
|
+
c = this.responseText;
|
168
|
+
};
|
169
|
+
d.open("get", a, !1);
|
170
|
+
d.send();
|
171
|
+
c = d.responseText;
|
172
|
+
if (null != c) {
|
173
|
+
d = goog.wrapModule_(a, c), goog.IS_OLD_IE_ ? goog.queuedModules_.push(d) : b(a, d), goog.dependencies_.written[a] = !0;
|
174
|
+
} else {
|
175
|
+
throw Error("load of " + a + "failed");
|
176
|
+
}
|
177
|
+
}, goog.wrapModule_ = function(a, b) {
|
178
|
+
return goog.LOAD_MODULE_USING_EVAL && goog.isDef(goog.global.JSON) ? "goog.loadModule(" + goog.global.JSON.stringify(b + "\n//# sourceURL=" + a + "\n") + ");" : 'goog.loadModule(function(exports) {"use strict";' + b + "\n;return exports});\n//# sourceURL=" + a + "\n";
|
179
|
+
}, goog.loadQueuedModules_ = function() {
|
180
|
+
var a = goog.queuedModules_.length;
|
181
|
+
if (0 < a) {
|
182
|
+
var b = goog.queuedModules_;
|
183
|
+
goog.queuedModules_ = [];
|
184
|
+
for (var c = 0;c < a;c++) {
|
185
|
+
goog.globalEval(b[c]);
|
186
|
+
}
|
187
|
+
}
|
188
|
+
}, goog.loadModule = function(a) {
|
189
|
+
try {
|
190
|
+
goog.moduleLoaderState_ = {moduleName:void 0, exportTestMethods:!1};
|
191
|
+
var b;
|
192
|
+
if (goog.isFunction(a)) {
|
193
|
+
b = a.call(goog.global, {});
|
194
|
+
} else {
|
195
|
+
if (goog.isString(a)) {
|
196
|
+
b = goog.loadModuleFromSource_.call(goog.global, a);
|
197
|
+
} else {
|
198
|
+
throw Error("Invalid module definition");
|
199
|
+
}
|
200
|
+
}
|
201
|
+
Object.seal && Object.seal(b);
|
202
|
+
var c = goog.moduleLoaderState_.moduleName;
|
203
|
+
if (!goog.isString(c) || !c) {
|
204
|
+
throw Error('Invalid module name "' + c + '"');
|
205
|
+
}
|
206
|
+
goog.loadedModules_[c] = b;
|
207
|
+
if (goog.moduleLoaderState_.exportTestMethods) {
|
208
|
+
for (var d in b) {
|
209
|
+
if (0 === d.indexOf("test", 0) || "tearDown" == d || "setup" == d) {
|
210
|
+
goog.global[d] = b[d];
|
211
|
+
}
|
212
|
+
}
|
213
|
+
}
|
214
|
+
} finally {
|
215
|
+
goog.moduleLoaderState_ = null;
|
216
|
+
}
|
217
|
+
}, goog.loadModuleFromSource_ = function(a) {
|
218
|
+
eval(a);
|
219
|
+
return{};
|
220
|
+
}, goog.writeScriptTag_ = function(a, b) {
|
130
221
|
if (goog.inHtmlDocument_()) {
|
131
|
-
var
|
132
|
-
if ("complete" ==
|
222
|
+
var c = goog.global.document;
|
223
|
+
if ("complete" == c.readyState) {
|
133
224
|
if (/\bdeps.js$/.test(a)) {
|
134
225
|
return!1;
|
135
226
|
}
|
136
227
|
throw Error('Cannot write "' + a + '" after document load');
|
137
228
|
}
|
138
|
-
|
229
|
+
var d = goog.IS_OLD_IE_;
|
230
|
+
void 0 === b ? d ? (d = " onreadystatechange='goog.onScriptLoad_(this, " + ++goog.lastNonModuleScriptIndex_ + ")' ", c.write('<script type="text/javascript" src="' + a + '"' + d + ">\x3c/script>")) : c.write('<script type="text/javascript" src="' + a + '">\x3c/script>') : c.write('<script type="text/javascript">' + b + "\x3c/script>");
|
139
231
|
return!0;
|
140
232
|
}
|
141
233
|
return!1;
|
234
|
+
}, goog.lastNonModuleScriptIndex_ = 0, goog.onScriptLoad_ = function(a, b) {
|
235
|
+
"complete" == a.readyState && goog.lastNonModuleScriptIndex_ == b && goog.loadQueuedModules_();
|
236
|
+
return!0;
|
142
237
|
}, goog.writeScripts_ = function() {
|
143
238
|
function a(e) {
|
144
239
|
if (!(e in d.written)) {
|
145
240
|
if (!(e in d.visited) && (d.visited[e] = !0, e in d.requires)) {
|
146
|
-
for (var
|
147
|
-
if (!goog.isProvided_(
|
148
|
-
if (
|
149
|
-
a(d.nameToPath[
|
241
|
+
for (var f in d.requires[e]) {
|
242
|
+
if (!goog.isProvided_(f)) {
|
243
|
+
if (f in d.nameToPath) {
|
244
|
+
a(d.nameToPath[f]);
|
150
245
|
} else {
|
151
|
-
throw Error("Undefined nameToPath for " +
|
246
|
+
throw Error("Undefined nameToPath for " + f);
|
152
247
|
}
|
153
248
|
}
|
154
249
|
}
|
@@ -160,13 +255,19 @@ goog.DEPENDENCIES_ENABLED && (goog.included_ = {}, goog.dependencies_ = {pathToN
|
|
160
255
|
for (e in goog.included_) {
|
161
256
|
d.written[e] || a(e);
|
162
257
|
}
|
163
|
-
for (
|
164
|
-
|
165
|
-
|
258
|
+
for (var f = 0;f < b.length;f++) {
|
259
|
+
e = b[f], goog.dependencies_.written[e] = !0;
|
260
|
+
}
|
261
|
+
var g = goog.moduleLoaderState_;
|
262
|
+
goog.moduleLoaderState_ = null;
|
263
|
+
for (f = 0;f < b.length;f++) {
|
264
|
+
if (e = b[f]) {
|
265
|
+
d.pathIsModule[e] ? goog.importModule_(goog.basePath + e) : goog.importScript_(goog.basePath + e);
|
166
266
|
} else {
|
167
|
-
throw Error("Undefined script input");
|
267
|
+
throw goog.moduleLoaderState_ = g, Error("Undefined script input");
|
168
268
|
}
|
169
269
|
}
|
270
|
+
goog.moduleLoaderState_ = g;
|
170
271
|
}, goog.getPathFromDeps_ = function(a) {
|
171
272
|
return a in goog.dependencies_.nameToPath ? goog.dependencies_.nameToPath[a] : null;
|
172
273
|
}, goog.findBasePath_(), goog.global.CLOSURE_NO_DEPS || goog.importScript_(goog.basePath + "deps.js"));
|
@@ -343,11 +444,9 @@ goog.setCssNameMapping = function(a, b) {
|
|
343
444
|
};
|
344
445
|
!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING && (goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING);
|
345
446
|
goog.getMsg = function(a, b) {
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
a = a.replace(new RegExp("\\{\\$" + d + "\\}", "gi"), e);
|
350
|
-
}
|
447
|
+
b && (a = a.replace(/\{\$([^}]+)}/g, function(a, d) {
|
448
|
+
return d in b ? b[d] : a;
|
449
|
+
}));
|
351
450
|
return a;
|
352
451
|
};
|
353
452
|
goog.getMsgWithFallback = function(a, b) {
|
@@ -397,6 +496,48 @@ goog.scope = function(a) {
|
|
397
496
|
a.call(goog.global);
|
398
497
|
};
|
399
498
|
COMPILED || (goog.global.COMPILED = COMPILED);
|
499
|
+
goog.defineClass = function(a, b) {
|
500
|
+
var c = b.constructor, d = b.statics;
|
501
|
+
c && c != Object.prototype.constructor || (c = function() {
|
502
|
+
throw Error("cannot instantiate an interface (no constructor defined).");
|
503
|
+
});
|
504
|
+
c = goog.defineClass.createSealingConstructor_(c, a);
|
505
|
+
a && goog.inherits(c, a);
|
506
|
+
delete b.constructor;
|
507
|
+
delete b.statics;
|
508
|
+
goog.defineClass.applyProperties_(c.prototype, b);
|
509
|
+
null != d && (d instanceof Function ? d(c) : goog.defineClass.applyProperties_(c, d));
|
510
|
+
return c;
|
511
|
+
};
|
512
|
+
goog.defineClass.SEAL_CLASS_INSTANCES = goog.DEBUG;
|
513
|
+
goog.defineClass.createSealingConstructor_ = function(a, b) {
|
514
|
+
if (goog.defineClass.SEAL_CLASS_INSTANCES && Object.seal instanceof Function) {
|
515
|
+
if (b && b.prototype && b.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]) {
|
516
|
+
return a;
|
517
|
+
}
|
518
|
+
var c = function() {
|
519
|
+
var b = a.apply(this, arguments) || this;
|
520
|
+
b[goog.UID_PROPERTY_] = b[goog.UID_PROPERTY_];
|
521
|
+
this.constructor === c && Object.seal(b);
|
522
|
+
return b;
|
523
|
+
};
|
524
|
+
return c;
|
525
|
+
}
|
526
|
+
return a;
|
527
|
+
};
|
528
|
+
goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
|
529
|
+
goog.defineClass.applyProperties_ = function(a, b) {
|
530
|
+
for (var c in b) {
|
531
|
+
Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
|
532
|
+
}
|
533
|
+
for (var d = 0;d < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;d++) {
|
534
|
+
c = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d], Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
|
535
|
+
}
|
536
|
+
};
|
537
|
+
goog.tagUnsealableClass = function(a) {
|
538
|
+
!COMPILED && goog.defineClass.SEAL_CLASS_INSTANCES && (a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_] = !0);
|
539
|
+
};
|
540
|
+
goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_ = "goog_defineClass_legacy_unsealable";
|
400
541
|
goog.debug = {};
|
401
542
|
goog.debug.Error = function(a) {
|
402
543
|
if (Error.captureStackTrace) {
|
@@ -664,12 +805,6 @@ goog.string.escapeChar = function(a) {
|
|
664
805
|
}
|
665
806
|
return goog.string.jsEscapeCache_[a] = b;
|
666
807
|
};
|
667
|
-
goog.string.toMap = function(a) {
|
668
|
-
for (var b = {}, c = 0;c < a.length;c++) {
|
669
|
-
b[a.charAt(c)] = !0;
|
670
|
-
}
|
671
|
-
return b;
|
672
|
-
};
|
673
808
|
goog.string.contains = function(a, b) {
|
674
809
|
return-1 != a.indexOf(b);
|
675
810
|
};
|
@@ -786,6 +921,10 @@ goog.asserts.AssertionError = function(a, b) {
|
|
786
921
|
};
|
787
922
|
goog.inherits(goog.asserts.AssertionError, goog.debug.Error);
|
788
923
|
goog.asserts.AssertionError.prototype.name = "AssertionError";
|
924
|
+
goog.asserts.DEFAULT_ERROR_HANDLER = function(a) {
|
925
|
+
throw a;
|
926
|
+
};
|
927
|
+
goog.asserts.errorHandler_ = goog.asserts.DEFAULT_ERROR_HANDLER;
|
789
928
|
goog.asserts.doAssertFailure_ = function(a, b, c, d) {
|
790
929
|
var e = "Assertion failed";
|
791
930
|
if (c) {
|
@@ -793,16 +932,18 @@ goog.asserts.doAssertFailure_ = function(a, b, c, d) {
|
|
793
932
|
} else {
|
794
933
|
a && (e += ": " + a, f = b);
|
795
934
|
}
|
796
|
-
|
935
|
+
a = new goog.asserts.AssertionError("" + e, f || []);
|
936
|
+
goog.asserts.errorHandler_(a);
|
937
|
+
};
|
938
|
+
goog.asserts.setErrorHandler = function(a) {
|
939
|
+
goog.asserts.ENABLE_ASSERTS && (goog.asserts.errorHandler_ = a);
|
797
940
|
};
|
798
941
|
goog.asserts.assert = function(a, b, c) {
|
799
942
|
goog.asserts.ENABLE_ASSERTS && !a && goog.asserts.doAssertFailure_("", null, b, Array.prototype.slice.call(arguments, 2));
|
800
943
|
return a;
|
801
944
|
};
|
802
945
|
goog.asserts.fail = function(a, b) {
|
803
|
-
|
804
|
-
throw new goog.asserts.AssertionError("Failure" + (a ? ": " + a : ""), Array.prototype.slice.call(arguments, 1));
|
805
|
-
}
|
946
|
+
goog.asserts.ENABLE_ASSERTS && goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure" + (a ? ": " + a : ""), Array.prototype.slice.call(arguments, 1)));
|
806
947
|
};
|
807
948
|
goog.asserts.assertNumber = function(a, b, c) {
|
808
949
|
goog.asserts.ENABLE_ASSERTS && !goog.isNumber(a) && goog.asserts.doAssertFailure_("Expected number but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
|
@@ -1029,6 +1170,13 @@ goog.array.removeIf = function(a, b, c) {
|
|
1029
1170
|
b = goog.array.findIndex(a, b, c);
|
1030
1171
|
return 0 <= b ? (goog.array.removeAt(a, b), !0) : !1;
|
1031
1172
|
};
|
1173
|
+
goog.array.removeAllIf = function(a, b, c) {
|
1174
|
+
var d = 0;
|
1175
|
+
goog.array.forEachRight(a, function(e, f) {
|
1176
|
+
b.call(c, e, f, a) && goog.array.removeAt(a, f) && d++;
|
1177
|
+
});
|
1178
|
+
return d;
|
1179
|
+
};
|
1032
1180
|
goog.array.concat = function(a) {
|
1033
1181
|
return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_, arguments);
|
1034
1182
|
};
|
@@ -1369,6 +1517,17 @@ goog.object.set = function(a, b, c) {
|
|
1369
1517
|
goog.object.setIfUndefined = function(a, b, c) {
|
1370
1518
|
return b in a ? a[b] : a[b] = c;
|
1371
1519
|
};
|
1520
|
+
goog.object.equals = function(a, b) {
|
1521
|
+
if (!goog.array.equals(goog.object.getKeys(a), goog.object.getKeys(b))) {
|
1522
|
+
return!1;
|
1523
|
+
}
|
1524
|
+
for (var c in a) {
|
1525
|
+
if (a[c] !== b[c]) {
|
1526
|
+
return!1;
|
1527
|
+
}
|
1528
|
+
}
|
1529
|
+
return!0;
|
1530
|
+
};
|
1372
1531
|
goog.object.clone = function(a) {
|
1373
1532
|
var b = {}, c;
|
1374
1533
|
for (c in a) {
|
@@ -2437,7 +2596,7 @@ goog.labs.userAgent.browser.matchChrome_ = function() {
|
|
2437
2596
|
return goog.labs.userAgent.util.matchUserAgent("Chrome") || goog.labs.userAgent.util.matchUserAgent("CriOS");
|
2438
2597
|
};
|
2439
2598
|
goog.labs.userAgent.browser.matchAndroidBrowser_ = function() {
|
2440
|
-
return
|
2599
|
+
return!goog.labs.userAgent.browser.isChrome() && goog.labs.userAgent.util.matchUserAgent("Android");
|
2441
2600
|
};
|
2442
2601
|
goog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;
|
2443
2602
|
goog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;
|
@@ -2449,15 +2608,20 @@ goog.labs.userAgent.browser.isSilk = function() {
|
|
2449
2608
|
return goog.labs.userAgent.util.matchUserAgent("Silk");
|
2450
2609
|
};
|
2451
2610
|
goog.labs.userAgent.browser.getVersion = function() {
|
2452
|
-
|
2453
|
-
|
2454
|
-
return
|
2611
|
+
function a(a) {
|
2612
|
+
a = goog.array.find(a, d);
|
2613
|
+
return c[a] || "";
|
2455
2614
|
}
|
2456
|
-
|
2457
|
-
|
2615
|
+
var b = goog.labs.userAgent.util.getUserAgent();
|
2616
|
+
if (goog.labs.userAgent.browser.isIE()) {
|
2617
|
+
return goog.labs.userAgent.browser.getIEVersion_(b);
|
2458
2618
|
}
|
2459
|
-
|
2460
|
-
|
2619
|
+
var b = goog.labs.userAgent.util.extractVersionTuples(b), c = {};
|
2620
|
+
goog.array.forEach(b, function(a) {
|
2621
|
+
c[a[0]] = a[1];
|
2622
|
+
});
|
2623
|
+
var d = goog.partial(goog.object.containsKey, c);
|
2624
|
+
return goog.labs.userAgent.browser.isOpera() ? a(["Version", "Opera", "OPR"]) : goog.labs.userAgent.browser.isChrome() ? a(["Chrome", "CriOS"]) : (b = b[2]) && b[1] || "";
|
2461
2625
|
};
|
2462
2626
|
goog.labs.userAgent.browser.isVersionOrHigher = function(a) {
|
2463
2627
|
return 0 <= goog.string.compareVersions(goog.labs.userAgent.browser.getVersion(), a);
|
@@ -2493,15 +2657,6 @@ goog.labs.userAgent.browser.getIEVersion_ = function(a) {
|
|
2493
2657
|
}
|
2494
2658
|
return b;
|
2495
2659
|
};
|
2496
|
-
goog.labs.userAgent.browser.getOperaVersion_ = function(a) {
|
2497
|
-
a = goog.labs.userAgent.util.extractVersionTuples(a);
|
2498
|
-
var b = goog.array.peek(a);
|
2499
|
-
return "OPR" == b[0] && b[1] ? b[1] : goog.labs.userAgent.browser.getVersionFromTuples_(a);
|
2500
|
-
};
|
2501
|
-
goog.labs.userAgent.browser.getVersionFromTuples_ = function(a) {
|
2502
|
-
goog.asserts.assert(2 < a.length, "Couldn't extract version tuple from user agent string");
|
2503
|
-
return a[2] && a[2][1] ? a[2][1] : "";
|
2504
|
-
};
|
2505
2660
|
goog.labs.userAgent.engine = {};
|
2506
2661
|
goog.labs.userAgent.engine.isPresto = function() {
|
2507
2662
|
return goog.labs.userAgent.util.matchUserAgent("Presto");
|
@@ -2634,7 +2789,7 @@ goog.uri.utils.buildFromEncodedParts = function(a, b, c, d, e, f, g) {
|
|
2634
2789
|
g && (h += "#" + g);
|
2635
2790
|
return h;
|
2636
2791
|
};
|
2637
|
-
goog.uri.utils.splitRe_ =
|
2792
|
+
goog.uri.utils.splitRe_ = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;
|
2638
2793
|
goog.uri.utils.ComponentIndex = {SCHEME:1, USER_INFO:2, DOMAIN:3, PORT:4, PATH:5, QUERY_DATA:6, FRAGMENT:7};
|
2639
2794
|
goog.uri.utils.split = function(a) {
|
2640
2795
|
goog.uri.utils.phishingProtection_();
|
@@ -2653,8 +2808,8 @@ goog.uri.utils.phishingProtection_ = function() {
|
|
2653
2808
|
}
|
2654
2809
|
}
|
2655
2810
|
};
|
2656
|
-
goog.uri.utils.decodeIfPossible_ = function(a) {
|
2657
|
-
return a
|
2811
|
+
goog.uri.utils.decodeIfPossible_ = function(a, b) {
|
2812
|
+
return a ? b ? decodeURI(a) : decodeURIComponent(a) : a;
|
2658
2813
|
};
|
2659
2814
|
goog.uri.utils.getComponentByIndex_ = function(a, b) {
|
2660
2815
|
return goog.uri.utils.split(b)[a] || null;
|
@@ -2677,7 +2832,7 @@ goog.uri.utils.getDomainEncoded = function(a) {
|
|
2677
2832
|
return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN, a);
|
2678
2833
|
};
|
2679
2834
|
goog.uri.utils.getDomain = function(a) {
|
2680
|
-
return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(a));
|
2835
|
+
return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(a), !0);
|
2681
2836
|
};
|
2682
2837
|
goog.uri.utils.getPort = function(a) {
|
2683
2838
|
return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT, a)) || null;
|
@@ -2686,7 +2841,7 @@ goog.uri.utils.getPathEncoded = function(a) {
|
|
2686
2841
|
return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH, a);
|
2687
2842
|
};
|
2688
2843
|
goog.uri.utils.getPath = function(a) {
|
2689
|
-
return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(a));
|
2844
|
+
return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(a), !0);
|
2690
2845
|
};
|
2691
2846
|
goog.uri.utils.getQueryData = function(a) {
|
2692
2847
|
return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA, a);
|
@@ -2857,17 +3012,17 @@ goog.Uri.prototype.isReadOnly_ = !1;
|
|
2857
3012
|
goog.Uri.prototype.ignoreCase_ = !1;
|
2858
3013
|
goog.Uri.prototype.toString = function() {
|
2859
3014
|
var a = [], b = this.getScheme();
|
2860
|
-
b && a.push(goog.Uri.encodeSpecialChars_(b, goog.Uri.reDisallowedInSchemeOrUserInfo_), ":");
|
3015
|
+
b && a.push(goog.Uri.encodeSpecialChars_(b, goog.Uri.reDisallowedInSchemeOrUserInfo_, !0), ":");
|
2861
3016
|
if (b = this.getDomain()) {
|
2862
3017
|
a.push("//");
|
2863
3018
|
var c = this.getUserInfo();
|
2864
|
-
c && a.push(goog.Uri.encodeSpecialChars_(c, goog.Uri.reDisallowedInSchemeOrUserInfo_), "@");
|
2865
|
-
a.push(goog.string.urlEncode(b));
|
3019
|
+
c && a.push(goog.Uri.encodeSpecialChars_(c, goog.Uri.reDisallowedInSchemeOrUserInfo_, !0), "@");
|
3020
|
+
a.push(goog.Uri.removeDoubleEncoding_(goog.string.urlEncode(b)));
|
2866
3021
|
b = this.getPort();
|
2867
3022
|
null != b && a.push(":", String(b));
|
2868
3023
|
}
|
2869
3024
|
if (b = this.getPath()) {
|
2870
|
-
this.hasDomain() && "/" != b.charAt(0) && a.push("/"), a.push(goog.Uri.encodeSpecialChars_(b, "/" == b.charAt(0) ? goog.Uri.reDisallowedInAbsolutePath_ : goog.Uri.reDisallowedInRelativePath_));
|
3025
|
+
this.hasDomain() && "/" != b.charAt(0) && a.push("/"), a.push(goog.Uri.encodeSpecialChars_(b, "/" == b.charAt(0) ? goog.Uri.reDisallowedInAbsolutePath_ : goog.Uri.reDisallowedInRelativePath_, !0));
|
2871
3026
|
}
|
2872
3027
|
(b = this.getEncodedQuery()) && a.push("?", b);
|
2873
3028
|
(b = this.getFragment()) && a.push("#", goog.Uri.encodeSpecialChars_(b, goog.Uri.reDisallowedInFragment_));
|
@@ -2907,7 +3062,7 @@ goog.Uri.prototype.getScheme = function() {
|
|
2907
3062
|
};
|
2908
3063
|
goog.Uri.prototype.setScheme = function(a, b) {
|
2909
3064
|
this.enforceReadOnly();
|
2910
|
-
if (this.scheme_ = b ? goog.Uri.decodeOrEmpty_(a) : a) {
|
3065
|
+
if (this.scheme_ = b ? goog.Uri.decodeOrEmpty_(a, !0) : a) {
|
2911
3066
|
this.scheme_ = this.scheme_.replace(/:$/, "");
|
2912
3067
|
}
|
2913
3068
|
return this;
|
@@ -2931,7 +3086,7 @@ goog.Uri.prototype.getDomain = function() {
|
|
2931
3086
|
};
|
2932
3087
|
goog.Uri.prototype.setDomain = function(a, b) {
|
2933
3088
|
this.enforceReadOnly();
|
2934
|
-
this.domain_ = b ? goog.Uri.decodeOrEmpty_(a) : a;
|
3089
|
+
this.domain_ = b ? goog.Uri.decodeOrEmpty_(a, !0) : a;
|
2935
3090
|
return this;
|
2936
3091
|
};
|
2937
3092
|
goog.Uri.prototype.hasDomain = function() {
|
@@ -2961,7 +3116,7 @@ goog.Uri.prototype.getPath = function() {
|
|
2961
3116
|
};
|
2962
3117
|
goog.Uri.prototype.setPath = function(a, b) {
|
2963
3118
|
this.enforceReadOnly();
|
2964
|
-
this.path_ = b ? goog.Uri.decodeOrEmpty_(a) : a;
|
3119
|
+
this.path_ = b ? goog.Uri.decodeOrEmpty_(a, !0) : a;
|
2965
3120
|
return this;
|
2966
3121
|
};
|
2967
3122
|
goog.Uri.prototype.hasPath = function() {
|
@@ -3085,16 +3240,19 @@ goog.Uri.removeDotSegments = function(a) {
|
|
3085
3240
|
}
|
3086
3241
|
return a;
|
3087
3242
|
};
|
3088
|
-
goog.Uri.decodeOrEmpty_ = function(a) {
|
3089
|
-
return a ? decodeURIComponent(a) : "";
|
3243
|
+
goog.Uri.decodeOrEmpty_ = function(a, b) {
|
3244
|
+
return a ? b ? decodeURI(a) : decodeURIComponent(a) : "";
|
3090
3245
|
};
|
3091
|
-
goog.Uri.encodeSpecialChars_ = function(a, b) {
|
3092
|
-
return goog.isString(a) ? encodeURI(a).replace(b, goog.Uri.encodeChar_) : null;
|
3246
|
+
goog.Uri.encodeSpecialChars_ = function(a, b, c) {
|
3247
|
+
return goog.isString(a) ? (a = encodeURI(a).replace(b, goog.Uri.encodeChar_), c && (a = goog.Uri.removeDoubleEncoding_(a)), a) : null;
|
3093
3248
|
};
|
3094
3249
|
goog.Uri.encodeChar_ = function(a) {
|
3095
3250
|
a = a.charCodeAt(0);
|
3096
3251
|
return "%" + (a >> 4 & 15).toString(16) + (a & 15).toString(16);
|
3097
3252
|
};
|
3253
|
+
goog.Uri.removeDoubleEncoding_ = function(a) {
|
3254
|
+
return a.replace(/%25([0-9a-fA-F]{2})/g, "%$1");
|
3255
|
+
};
|
3098
3256
|
goog.Uri.reDisallowedInSchemeOrUserInfo_ = /[#\/\?@]/g;
|
3099
3257
|
goog.Uri.reDisallowedInRelativePath_ = /[\#\?:]/g;
|
3100
3258
|
goog.Uri.reDisallowedInAbsolutePath_ = /[\#\?]/g;
|
@@ -3785,6 +3943,7 @@ goog.debug.Logger = function(a) {
|
|
3785
3943
|
this.name_ = a;
|
3786
3944
|
this.handlers_ = this.children_ = this.level_ = this.parent_ = null;
|
3787
3945
|
};
|
3946
|
+
goog.debug.Logger.ROOT_LOGGER_NAME = "";
|
3788
3947
|
goog.debug.Logger.ENABLE_HIERARCHY = !0;
|
3789
3948
|
goog.debug.Logger.ENABLE_HIERARCHY || (goog.debug.Logger.rootHandlers_ = []);
|
3790
3949
|
goog.debug.Logger.Level = function(a, b) {
|
@@ -3945,7 +4104,7 @@ goog.debug.LogManager = {};
|
|
3945
4104
|
goog.debug.LogManager.loggers_ = {};
|
3946
4105
|
goog.debug.LogManager.rootLogger_ = null;
|
3947
4106
|
goog.debug.LogManager.initialize = function() {
|
3948
|
-
goog.debug.LogManager.rootLogger_ || (goog.debug.LogManager.rootLogger_ = new goog.debug.Logger(
|
4107
|
+
goog.debug.LogManager.rootLogger_ || (goog.debug.LogManager.rootLogger_ = new goog.debug.Logger(goog.debug.Logger.ROOT_LOGGER_NAME), goog.debug.LogManager.loggers_[goog.debug.Logger.ROOT_LOGGER_NAME] = goog.debug.LogManager.rootLogger_, goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG));
|
3949
4108
|
};
|
3950
4109
|
goog.debug.LogManager.getLoggers = function() {
|
3951
4110
|
return goog.debug.LogManager.loggers_;
|
@@ -3973,64 +4132,11 @@ goog.debug.LogManager.createLogger_ = function(a) {
|
|
3973
4132
|
return goog.debug.LogManager.loggers_[a] = b;
|
3974
4133
|
};
|
3975
4134
|
goog.dom.BrowserFeature = {CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9), CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO && !goog.userAgent.IE || goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9) || goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher("1.9.1"), CAN_USE_INNER_TEXT:goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9"), CAN_USE_PARENT_ELEMENT_PROPERTY:goog.userAgent.IE || goog.userAgent.OPERA || goog.userAgent.WEBKIT,
|
3976
|
-
INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE};
|
4135
|
+
INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE, LEGACY_IE_RANGES:goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9)};
|
3977
4136
|
goog.dom.TagName = {A:"A", ABBR:"ABBR", ACRONYM:"ACRONYM", ADDRESS:"ADDRESS", APPLET:"APPLET", AREA:"AREA", ARTICLE:"ARTICLE", ASIDE:"ASIDE", AUDIO:"AUDIO", B:"B", BASE:"BASE", BASEFONT:"BASEFONT", BDI:"BDI", BDO:"BDO", BIG:"BIG", BLOCKQUOTE:"BLOCKQUOTE", BODY:"BODY", BR:"BR", BUTTON:"BUTTON", CANVAS:"CANVAS", CAPTION:"CAPTION", CENTER:"CENTER", CITE:"CITE", CODE:"CODE", COL:"COL", COLGROUP:"COLGROUP", COMMAND:"COMMAND", DATA:"DATA", DATALIST:"DATALIST", DD:"DD", DEL:"DEL", DETAILS:"DETAILS", DFN:"DFN",
|
3978
4137
|
DIALOG:"DIALOG", DIR:"DIR", DIV:"DIV", DL:"DL", DT:"DT", EM:"EM", EMBED:"EMBED", FIELDSET:"FIELDSET", FIGCAPTION:"FIGCAPTION", FIGURE:"FIGURE", FONT:"FONT", FOOTER:"FOOTER", FORM:"FORM", FRAME:"FRAME", FRAMESET:"FRAMESET", H1:"H1", H2:"H2", H3:"H3", H4:"H4", H5:"H5", H6:"H6", HEAD:"HEAD", HEADER:"HEADER", HGROUP:"HGROUP", HR:"HR", HTML:"HTML", I:"I", IFRAME:"IFRAME", IMG:"IMG", INPUT:"INPUT", INS:"INS", ISINDEX:"ISINDEX", KBD:"KBD", KEYGEN:"KEYGEN", LABEL:"LABEL", LEGEND:"LEGEND", LI:"LI", LINK:"LINK",
|
3979
4138
|
MAP:"MAP", MARK:"MARK", MATH:"MATH", MENU:"MENU", META:"META", METER:"METER", NAV:"NAV", NOFRAMES:"NOFRAMES", NOSCRIPT:"NOSCRIPT", OBJECT:"OBJECT", OL:"OL", OPTGROUP:"OPTGROUP", OPTION:"OPTION", OUTPUT:"OUTPUT", P:"P", PARAM:"PARAM", PRE:"PRE", PROGRESS:"PROGRESS", Q:"Q", RP:"RP", RT:"RT", RUBY:"RUBY", S:"S", SAMP:"SAMP", SCRIPT:"SCRIPT", SECTION:"SECTION", SELECT:"SELECT", SMALL:"SMALL", SOURCE:"SOURCE", SPAN:"SPAN", STRIKE:"STRIKE", STRONG:"STRONG", STYLE:"STYLE", SUB:"SUB", SUMMARY:"SUMMARY",
|
3980
4139
|
SUP:"SUP", SVG:"SVG", TABLE:"TABLE", TBODY:"TBODY", TD:"TD", TEXTAREA:"TEXTAREA", TFOOT:"TFOOT", TH:"TH", THEAD:"THEAD", TIME:"TIME", TITLE:"TITLE", TR:"TR", TRACK:"TRACK", TT:"TT", U:"U", UL:"UL", VAR:"VAR", VIDEO:"VIDEO", WBR:"WBR"};
|
3981
|
-
goog.dom.classes = {};
|
3982
|
-
goog.dom.classes.set = function(a, b) {
|
3983
|
-
a.className = b;
|
3984
|
-
};
|
3985
|
-
goog.dom.classes.get = function(a) {
|
3986
|
-
a = a.className;
|
3987
|
-
return goog.isString(a) && a.match(/\S+/g) || [];
|
3988
|
-
};
|
3989
|
-
goog.dom.classes.add = function(a, b) {
|
3990
|
-
var c = goog.dom.classes.get(a), d = goog.array.slice(arguments, 1), e = c.length + d.length;
|
3991
|
-
goog.dom.classes.add_(c, d);
|
3992
|
-
goog.dom.classes.set(a, c.join(" "));
|
3993
|
-
return c.length == e;
|
3994
|
-
};
|
3995
|
-
goog.dom.classes.remove = function(a, b) {
|
3996
|
-
var c = goog.dom.classes.get(a), d = goog.array.slice(arguments, 1), e = goog.dom.classes.getDifference_(c, d);
|
3997
|
-
goog.dom.classes.set(a, e.join(" "));
|
3998
|
-
return e.length == c.length - d.length;
|
3999
|
-
};
|
4000
|
-
goog.dom.classes.add_ = function(a, b) {
|
4001
|
-
for (var c = 0;c < b.length;c++) {
|
4002
|
-
goog.array.contains(a, b[c]) || a.push(b[c]);
|
4003
|
-
}
|
4004
|
-
};
|
4005
|
-
goog.dom.classes.getDifference_ = function(a, b) {
|
4006
|
-
return goog.array.filter(a, function(a) {
|
4007
|
-
return!goog.array.contains(b, a);
|
4008
|
-
});
|
4009
|
-
};
|
4010
|
-
goog.dom.classes.swap = function(a, b, c) {
|
4011
|
-
for (var d = goog.dom.classes.get(a), e = !1, f = 0;f < d.length;f++) {
|
4012
|
-
d[f] == b && (goog.array.splice(d, f--, 1), e = !0);
|
4013
|
-
}
|
4014
|
-
e && (d.push(c), goog.dom.classes.set(a, d.join(" ")));
|
4015
|
-
return e;
|
4016
|
-
};
|
4017
|
-
goog.dom.classes.addRemove = function(a, b, c) {
|
4018
|
-
var d = goog.dom.classes.get(a);
|
4019
|
-
goog.isString(b) ? goog.array.remove(d, b) : goog.isArray(b) && (d = goog.dom.classes.getDifference_(d, b));
|
4020
|
-
goog.isString(c) && !goog.array.contains(d, c) ? d.push(c) : goog.isArray(c) && goog.dom.classes.add_(d, c);
|
4021
|
-
goog.dom.classes.set(a, d.join(" "));
|
4022
|
-
};
|
4023
|
-
goog.dom.classes.has = function(a, b) {
|
4024
|
-
return goog.array.contains(goog.dom.classes.get(a), b);
|
4025
|
-
};
|
4026
|
-
goog.dom.classes.enable = function(a, b, c) {
|
4027
|
-
c ? goog.dom.classes.add(a, b) : goog.dom.classes.remove(a, b);
|
4028
|
-
};
|
4029
|
-
goog.dom.classes.toggle = function(a, b) {
|
4030
|
-
var c = !goog.dom.classes.has(a, b);
|
4031
|
-
goog.dom.classes.enable(a, b, c);
|
4032
|
-
return c;
|
4033
|
-
};
|
4034
4140
|
goog.math.Coordinate = function(a, b) {
|
4035
4141
|
this.x = goog.isDef(a) ? a : 0;
|
4036
4142
|
this.y = goog.isDef(b) ? b : 0;
|
@@ -4248,8 +4354,11 @@ goog.dom.getDocumentHeight = function() {
|
|
4248
4354
|
goog.dom.getDocumentHeight_ = function(a) {
|
4249
4355
|
var b = a.document, c = 0;
|
4250
4356
|
if (b) {
|
4251
|
-
a = goog.dom.getViewportSize_(a).height;
|
4252
4357
|
var c = b.body, d = b.documentElement;
|
4358
|
+
if (!d || !c) {
|
4359
|
+
return 0;
|
4360
|
+
}
|
4361
|
+
a = goog.dom.getViewportSize_(a).height;
|
4253
4362
|
if (goog.dom.isCss1CompatMode_(b) && d.scrollHeight) {
|
4254
4363
|
c = d.scrollHeight != a ? d.scrollHeight : d.offsetHeight;
|
4255
4364
|
} else {
|
@@ -4302,7 +4411,7 @@ goog.dom.createDom_ = function(a, b) {
|
|
4302
4411
|
c = c.join("");
|
4303
4412
|
}
|
4304
4413
|
c = a.createElement(c);
|
4305
|
-
d && (goog.isString(d) ? c.className = d : goog.isArray(d) ?
|
4414
|
+
d && (goog.isString(d) ? c.className = d : goog.isArray(d) ? c.className = d.join(" ") : goog.dom.setProperties(c, d));
|
4306
4415
|
2 < b.length && goog.dom.append_(a, c, b, 2);
|
4307
4416
|
return c;
|
4308
4417
|
};
|
@@ -4779,7 +4888,7 @@ goog.dom.getAncestorByTagNameAndClass = function(a, b, c) {
|
|
4779
4888
|
}
|
4780
4889
|
var d = b ? b.toUpperCase() : null;
|
4781
4890
|
return goog.dom.getAncestor(a, function(a) {
|
4782
|
-
return(!d || a.nodeName == d) && (!c || goog.
|
4891
|
+
return(!d || a.nodeName == d) && (!c || goog.isString(a.className) && goog.array.contains(a.className.split(/\s+/), c));
|
4783
4892
|
}, !0);
|
4784
4893
|
};
|
4785
4894
|
goog.dom.getAncestorByClass = function(a, b) {
|
@@ -4804,10 +4913,10 @@ goog.dom.getActiveElement = function(a) {
|
|
4804
4913
|
}
|
4805
4914
|
return null;
|
4806
4915
|
};
|
4807
|
-
goog.dom.getPixelRatio =
|
4916
|
+
goog.dom.getPixelRatio = function() {
|
4808
4917
|
var a = goog.dom.getWindow(), b = goog.userAgent.GECKO && goog.userAgent.MOBILE;
|
4809
|
-
return goog.isDef(a.devicePixelRatio) && !b ? a.devicePixelRatio : a.matchMedia ? goog.dom.matchesPixelRatio_(
|
4810
|
-
}
|
4918
|
+
return goog.isDef(a.devicePixelRatio) && !b ? a.devicePixelRatio : a.matchMedia ? goog.dom.matchesPixelRatio_(.75) || goog.dom.matchesPixelRatio_(1.5) || goog.dom.matchesPixelRatio_(2) || goog.dom.matchesPixelRatio_(3) || 1 : 1;
|
4919
|
+
};
|
4811
4920
|
goog.dom.matchesPixelRatio_ = function(a) {
|
4812
4921
|
return goog.dom.getWindow().matchMedia("(-webkit-min-device-pixel-ratio: " + a + "),(min--moz-device-pixel-ratio: " + a + "),(min-resolution: " + a + "dppx)").matches ? a : 0;
|
4813
4922
|
};
|
@@ -4954,6 +5063,12 @@ goog.math.Box.boundingBox = function(a) {
|
|
4954
5063
|
}
|
4955
5064
|
return b;
|
4956
5065
|
};
|
5066
|
+
goog.math.Box.prototype.getWidth = function() {
|
5067
|
+
return this.right - this.left;
|
5068
|
+
};
|
5069
|
+
goog.math.Box.prototype.getHeight = function() {
|
5070
|
+
return this.bottom - this.top;
|
5071
|
+
};
|
4957
5072
|
goog.math.Box.prototype.clone = function() {
|
4958
5073
|
return new goog.math.Box(this.top, this.right, this.bottom, this.left);
|
4959
5074
|
};
|
@@ -5165,7 +5280,13 @@ goog.math.Rect.prototype.scale = function(a, b) {
|
|
5165
5280
|
goog.style = {};
|
5166
5281
|
goog.style.GET_BOUNDING_CLIENT_RECT_ALWAYS_EXISTS = !1;
|
5167
5282
|
goog.style.setStyle = function(a, b, c) {
|
5168
|
-
goog.isString(b)
|
5283
|
+
if (goog.isString(b)) {
|
5284
|
+
goog.style.setStyle_(a, c, b);
|
5285
|
+
} else {
|
5286
|
+
for (var d in b) {
|
5287
|
+
goog.style.setStyle_(a, b[d], d);
|
5288
|
+
}
|
5289
|
+
}
|
5169
5290
|
};
|
5170
5291
|
goog.style.setStyle_ = function(a, b, c) {
|
5171
5292
|
(c = goog.style.getVendorJsStyleName_(a, c)) && (a.style[c] = b);
|
@@ -5268,7 +5389,7 @@ goog.style.getOffsetParent = function(a) {
|
|
5268
5389
|
};
|
5269
5390
|
goog.style.getVisibleRectForElement = function(a) {
|
5270
5391
|
for (var b = new goog.math.Box(0, Infinity, Infinity, 0), c = goog.dom.getDomHelper(a), d = c.getDocument().body, e = c.getDocument().documentElement, f = c.getDocumentScrollElement();a = goog.style.getOffsetParent(a);) {
|
5271
|
-
if (!(goog.userAgent.IE && 0 == a.clientWidth || goog.userAgent.WEBKIT && 0 == a.clientHeight && a == d
|
5392
|
+
if (!(goog.userAgent.IE && 0 == a.clientWidth || goog.userAgent.WEBKIT && 0 == a.clientHeight && a == d) && a != d && a != e && "visible" != goog.style.getStyle_(a, "overflow")) {
|
5272
5393
|
var g = goog.style.getPageOffset(a), h = goog.style.getClientLeftTop(a);
|
5273
5394
|
g.x += h.x;
|
5274
5395
|
g.y += h.y;
|
@@ -5365,7 +5486,7 @@ goog.style.translateRectForAnotherFrame = function(a, b, c) {
|
|
5365
5486
|
var d = b.getDocument().body;
|
5366
5487
|
c = goog.style.getFramedPageOffset(d, c.getWindow());
|
5367
5488
|
c = goog.math.Coordinate.difference(c, goog.style.getPageOffset(d));
|
5368
|
-
goog.userAgent.IE
|
5489
|
+
!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9) || b.isCss1CompatMode() || (c = goog.math.Coordinate.difference(c, b.getDocumentScroll()));
|
5369
5490
|
a.left += c.x;
|
5370
5491
|
a.top += c.y;
|
5371
5492
|
}
|
@@ -5391,7 +5512,7 @@ goog.style.getClientPosition = function(a) {
|
|
5391
5512
|
return goog.style.getClientPositionForElement_(a);
|
5392
5513
|
}
|
5393
5514
|
var b = goog.isFunction(a.getBrowserEvent), c = a;
|
5394
|
-
a.targetTouches ? c = a.targetTouches[0] : b && a.getBrowserEvent().targetTouches && (c = a.getBrowserEvent().targetTouches[0]);
|
5515
|
+
a.targetTouches && a.targetTouches.length ? c = a.targetTouches[0] : b && a.getBrowserEvent().targetTouches && a.getBrowserEvent().targetTouches.length && (c = a.getBrowserEvent().targetTouches[0]);
|
5395
5516
|
return new goog.math.Coordinate(c.clientX, c.clientY);
|
5396
5517
|
};
|
5397
5518
|
goog.style.setPageOffset = function(a, b, c) {
|
@@ -5538,7 +5659,7 @@ goog.style.getBorderBoxSize = function(a) {
|
|
5538
5659
|
};
|
5539
5660
|
goog.style.setBorderBoxSize = function(a, b) {
|
5540
5661
|
var c = goog.dom.getOwnerDocument(a), d = goog.dom.getDomHelper(c).isCss1CompatMode();
|
5541
|
-
if (!goog.userAgent.IE || d && goog.userAgent.isVersionOrHigher("8")) {
|
5662
|
+
if (!goog.userAgent.IE || goog.userAgent.isVersionOrHigher("10") || d && goog.userAgent.isVersionOrHigher("8")) {
|
5542
5663
|
goog.style.setBoxSizingSize_(a, b, "border-box");
|
5543
5664
|
} else {
|
5544
5665
|
if (c = a.style, d) {
|
@@ -5562,7 +5683,7 @@ goog.style.getContentBoxSize = function(a) {
|
|
5562
5683
|
};
|
5563
5684
|
goog.style.setContentBoxSize = function(a, b) {
|
5564
5685
|
var c = goog.dom.getOwnerDocument(a), d = goog.dom.getDomHelper(c).isCss1CompatMode();
|
5565
|
-
if (!goog.userAgent.IE || d && goog.userAgent.isVersionOrHigher("8")) {
|
5686
|
+
if (!goog.userAgent.IE || goog.userAgent.isVersionOrHigher("10") || d && goog.userAgent.isVersionOrHigher("8")) {
|
5566
5687
|
goog.style.setBoxSizingSize_(a, b, "content-box");
|
5567
5688
|
} else {
|
5568
5689
|
if (c = a.style, d) {
|
@@ -5754,6 +5875,7 @@ goog.debug.DivConsole.prototype.clear = function() {
|
|
5754
5875
|
};
|
5755
5876
|
goog.log = {};
|
5756
5877
|
goog.log.ENABLED = goog.debug.LOGGING_ENABLED;
|
5878
|
+
goog.log.ROOT_LOGGER_NAME = goog.debug.Logger.ROOT_LOGGER_NAME;
|
5757
5879
|
goog.log.Logger = goog.debug.Logger;
|
5758
5880
|
goog.log.Level = goog.debug.Logger.Level;
|
5759
5881
|
goog.log.LogRecord = goog.debug.LogRecord;
|
@@ -5906,12 +6028,12 @@ bot.userAgent.SAFARI_6 = goog.userAgent.product.SAFARI && bot.userAgent.isProduc
|
|
5906
6028
|
bot.userAgent.WINDOWS_PHONE = goog.userAgent.IE && -1 != goog.userAgent.getUserAgentString().indexOf("IEMobile");
|
5907
6029
|
goog.json = {};
|
5908
6030
|
goog.json.USE_NATIVE_JSON = !1;
|
5909
|
-
goog.json.
|
6031
|
+
goog.json.isValid = function(a) {
|
5910
6032
|
return/^\s*$/.test(a) ? !1 : /^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g, "@").replace(/"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, ""));
|
5911
6033
|
};
|
5912
6034
|
goog.json.parse = goog.json.USE_NATIVE_JSON ? goog.global.JSON.parse : function(a) {
|
5913
6035
|
a = String(a);
|
5914
|
-
if (goog.json.
|
6036
|
+
if (goog.json.isValid(a)) {
|
5915
6037
|
try {
|
5916
6038
|
return eval("(" + a + ")");
|
5917
6039
|
} catch (b) {
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
root = File.expand_path(File.dirname(__FILE__))
|
4
|
+
if root != Dir.pwd
|
5
|
+
raise "cwd must be #{root} when reading gemspec"
|
6
|
+
end
|
7
|
+
|
8
|
+
Gem::Specification.new do |s|
|
9
|
+
s.name = "selenium-webdriver"
|
10
|
+
s.version = "2.43.0"
|
11
|
+
|
12
|
+
s.authors = ["Jari Bakken"]
|
13
|
+
s.email = "jari.bakken@gmail.com"
|
14
|
+
s.description = "WebDriver is a tool for writing automated tests of websites. It aims to mimic the behaviour of a real user, and as such interacts with the HTML of the application."
|
15
|
+
s.summary = "The next generation developer focused tool for automated testing of webapps"
|
16
|
+
s.homepage = "http://selenium.googlecode.com"
|
17
|
+
s.licenses = ["Apache"]
|
18
|
+
|
19
|
+
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
20
|
+
s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
|
21
|
+
|
22
|
+
s.files = Dir[root + '/**/*'].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub(root + '/', '') }
|
23
|
+
s.require_paths = ["lib"]
|
24
|
+
|
25
|
+
s.add_runtime_dependency "multi_json", ["~> 1.0"]
|
26
|
+
s.add_runtime_dependency "rubyzip", ["~> 1.0"]
|
27
|
+
s.add_runtime_dependency "childprocess", ["~> 0.5"]
|
28
|
+
s.add_runtime_dependency "websocket", ["~> 1.0"]
|
29
|
+
|
30
|
+
s.add_development_dependency "rspec", ["~> 2.99.0"]
|
31
|
+
s.add_development_dependency "rack", ["~> 1.0"]
|
32
|
+
s.add_development_dependency "ci_reporter", ["~> 1.6", ">= 1.6.2"]
|
33
|
+
s.add_development_dependency "webmock", ["~> 1.7", ">= 1.7.5"]
|
34
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: selenium-webdriver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.
|
5
|
+
version: 2.43.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jari Bakken
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-09-09 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -41,9 +41,9 @@ dependencies:
|
|
41
41
|
requirement: &id003 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ~>
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 0.5
|
46
|
+
version: "0.5"
|
47
47
|
type: :runtime
|
48
48
|
version_requirements: *id003
|
49
49
|
- !ruby/object:Gem::Dependency
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
requirements:
|
55
55
|
- - ~>
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: 1.0
|
57
|
+
version: "1.0"
|
58
58
|
type: :runtime
|
59
59
|
version_requirements: *id004
|
60
60
|
- !ruby/object:Gem::Dependency
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 2.99.0
|
69
69
|
type: :development
|
70
70
|
version_requirements: *id005
|
71
71
|
- !ruby/object:Gem::Dependency
|
@@ -86,6 +86,9 @@ dependencies:
|
|
86
86
|
none: false
|
87
87
|
requirements:
|
88
88
|
- - ~>
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: "1.6"
|
91
|
+
- - ">="
|
89
92
|
- !ruby/object:Gem::Version
|
90
93
|
version: 1.6.2
|
91
94
|
type: :development
|
@@ -97,6 +100,9 @@ dependencies:
|
|
97
100
|
none: false
|
98
101
|
requirements:
|
99
102
|
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: "1.7"
|
105
|
+
- - ">="
|
100
106
|
- !ruby/object:Gem::Version
|
101
107
|
version: 1.7.5
|
102
108
|
type: :development
|
@@ -110,6 +116,11 @@ extensions: []
|
|
110
116
|
extra_rdoc_files: []
|
111
117
|
|
112
118
|
files:
|
119
|
+
- CHANGES
|
120
|
+
- COPYING
|
121
|
+
- Gemfile
|
122
|
+
- README.md
|
123
|
+
- selenium-webdriver.gemspec
|
113
124
|
- lib/selenium-client.rb
|
114
125
|
- lib/selenium-webdriver.rb
|
115
126
|
- lib/selenium/client.rb
|
@@ -227,9 +238,6 @@ files:
|
|
227
238
|
- lib/selenium/webdriver/support/color.rb
|
228
239
|
- lib/selenium/webdriver/support/event_firing_bridge.rb
|
229
240
|
- lib/selenium/webdriver/support/select.rb
|
230
|
-
- CHANGES
|
231
|
-
- README.md
|
232
|
-
- COPYING
|
233
241
|
has_rdoc: true
|
234
242
|
homepage: http://selenium.googlecode.com
|
235
243
|
licenses:
|
@@ -248,9 +256,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
248
256
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
249
257
|
none: false
|
250
258
|
requirements:
|
251
|
-
- - "
|
259
|
+
- - ">"
|
252
260
|
- !ruby/object:Gem::Version
|
253
|
-
version:
|
261
|
+
version: 1.3.1
|
254
262
|
requirements: []
|
255
263
|
|
256
264
|
rubyforge_project:
|