selenium-webdriver 2.42.0 → 2.43.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|