tabs.py revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen# Copyright 2013 The Chromium Authors. All rights reserved. 2674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen# Use of this source code is governed by a BSD-style license that can be 3674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen# found in the LICENSE file. 4674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 5674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenimport json 6674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 7674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenfrom extensions_paths import CHROME_EXTENSIONS 8674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenfrom test_file_system import MoveAllTo 9674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenfrom test_util import ReadFile 10674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 11674060f01e9090cd21b3c5656cc3204912ad17a6Jon BoekenoogenFAKE_TABS_IDL = '\n'.join([ 12674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '// Copyleft stuff.', 13674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '', 14674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '// Some description here.', 15674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'namespace fakeTabs {', 16674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ' dictionary WasImplicitlyInlinedType {};', 17674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ' interface Functions {', 18674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ' static void myFunc(WasImplicitlyInlinedType arg);', 19674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ' static void anotherFunc(WasImplicitlyInlinedType arg);', 20674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ' };', 21674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '};']) 22674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 23674060f01e9090cd21b3c5656cc3204912ad17a6Jon BoekenoogenFAKE_TABS_WITH_INLINING_IDL = '\n'.join([ 24674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '// Copyleft stuff.', 25674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '', 26674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '// Some description here.', 27674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'namespace fakeTabs {', 28674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ' dictionary WasImplicitlyInlinedType {};', 29674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ' interface Functions {', 30674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ' static void myFunc(WasImplicitlyInlinedType arg);', 31674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ' };', 32674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '};']) 33674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 34674060f01e9090cd21b3c5656cc3204912ad17a6Jon BoekenoogenTABS_SCHEMA_BRANCHES = MoveAllTo(CHROME_EXTENSIONS, { 35674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'master': { 36674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'docs': { 37674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'templates': { 38674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'json': { 39674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'api_availabilities.json': '{}', 40674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'intro_tables.json': '{}' 41674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 42674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 43674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 44674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'api': { 45674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '_api_features.json': json.dumps({ 46674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'tabs.scheduledFunc': { 47674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'channel': 'stable' 48674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 49674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }), 50674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '_manifest_features.json': '{}', 51674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen '_permission_features.json': '{}', 52674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'fake_tabs.idl': FAKE_TABS_IDL, 53674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'tabs.json': json.dumps([{ 54674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'namespace': 'tabs', 55674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'types': [ 56674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen { 57674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'id': 'Tab', 58674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any', 59674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'properties': { 60674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'url': { 61674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 62674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 63674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'index': { 64674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 65674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 66674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'selected': { 67674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 68674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 69674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'id': { 70674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 71674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 72674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'windowId': { 73674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 74674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 75674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 76674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 77674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen { 78674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'id': 'InlinedType', 79674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any', 80674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'inline_doc': True 81674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 82674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen { 83674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'id': 'InjectDetails', 84674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any', 85674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'properties': { 86674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'allFrames': { 87674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 88674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 89674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'code': { 90674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 91674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 92674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'file': { 93674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type':'any' 94674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 95674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 96674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 97674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen { 98674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'id': 'DeprecatedType', 99674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any', 100674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'deprecated': 'This is deprecated' 101674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 102674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ], 103674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'properties': { 104674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'fakeTabsProperty1': { 105674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 106674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 107674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'fakeTabsProperty2': { 108674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 109674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 110674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'fakeTabsProperty3': { 111674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 112674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 113674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen }, 114674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'functions': [ 115674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen { 116674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'name': 'getCurrent', 117674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'parameters': [ 118674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen { 119674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'name': 'callback', 120674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'function', 121674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'parameters': [ 122674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen { 123674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'name': 'tab', 124674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 'type': 'any' 125674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 126674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen ] 127674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen } 128 ] 129 }, 130 { 131 'name': 'get', 132 'parameters': [ 133 { 134 'name': 'callback', 135 'type': 'function', 136 'parameters': [ 137 { 138 'name': 'tab', 139 'type': 'any' 140 } 141 ] 142 }, 143 { 144 'name': 'tabId', 145 'type': 'any' 146 } 147 ] 148 }, 149 { 150 'name': 'restrictedFunc' 151 }, 152 { 153 'name': 'scheduledFunc', 154 'parameters': [] 155 } 156 ], 157 'events': [ 158 { 159 'name': 'onActivated', 160 'type': 'event', 161 'parameters': [ 162 { 163 'name': 'activeInfo', 164 'type': 'any', 165 'properties': { 166 'tabId': { 167 'type': 'any' 168 }, 169 'windowId': { 170 'type': 'any' 171 } 172 } 173 } 174 ] 175 }, 176 { 177 'name': 'onUpdated', 178 'type': 'event', 179 'parameters': [ 180 { 181 'name': 'tabId', 182 'type': 'any' 183 }, 184 { 185 'name': 'tab', 186 'type': 'any' 187 }, 188 { 189 'name': 'changeInfo', 190 'type': 'any', 191 'properties': { 192 'pinned': { 193 'type': 'any' 194 }, 195 'status': { 196 'type': 'any' 197 } 198 } 199 } 200 ] 201 } 202 ] 203 }]) 204 } 205 }, 206 '1612': { 207 'api': { 208 '_api_features.json': json.dumps({ 209 'tabs.scheduledFunc': { 210 'channel': 'stable' 211 } 212 }), 213 '_manifest_features.json': "{}", 214 '_permission_features.json': "{}", 215 'fake_tabs.idl': FAKE_TABS_IDL, 216 'tabs.json': json.dumps([{ 217 'namespace': 'tabs', 218 'types': [ 219 { 220 'id': 'Tab', 221 'properties': { 222 'url': {}, 223 'index': {}, 224 'selected': {}, 225 'id': {}, 226 'windowId': {} 227 } 228 }, 229 { 230 'id': 'InjectDetails', 231 'properties': { 232 'allFrames': {}, 233 'code': {}, 234 'file': {} 235 } 236 }, 237 { 238 'id': 'DeprecatedType', 239 'deprecated': 'This is deprecated' 240 } 241 ], 242 'properties': { 243 'fakeTabsProperty1': {}, 244 'fakeTabsProperty2': {} 245 }, 246 'functions': [ 247 { 248 'name': 'getCurrent', 249 'parameters': [ 250 { 251 'name': 'callback', 252 'parameters': [ 253 { 254 'name': 'tab' 255 } 256 ] 257 } 258 ] 259 }, 260 { 261 'name': 'get', 262 'parameters': [ 263 { 264 'name': 'callback', 265 'parameters': [ 266 { 267 'name': 'tab' 268 } 269 ] 270 }, 271 { 272 'name': 'tabId' 273 } 274 ] 275 }, 276 { 277 'name': 'restrictedFunc' 278 }, 279 { 280 'name': 'scheduledFunc', 281 'parameters': [] 282 } 283 ], 284 'events': [ 285 { 286 'name': 'onActivated', 287 'parameters': [ 288 { 289 'name': 'activeInfo', 290 'properties': { 291 'tabId': {}, 292 'windowId': {} 293 } 294 } 295 ] 296 }, 297 { 298 'name': 'onUpdated', 299 'parameters': [ 300 { 301 'name': 'tabId' 302 }, 303 { 304 'name': 'tab' 305 }, 306 { 307 'name': 'changeInfo', 308 'properties': { 309 'pinned': {}, 310 'status': {} 311 } 312 } 313 ] 314 } 315 ] 316 }]) 317 } 318 }, 319 '1599': { 320 'api': { 321 '_api_features.json': "{}", 322 '_manifest_features.json': "{}", 323 '_permission_features.json': "{}", 324 'fake_tabs.idl': FAKE_TABS_IDL, 325 'tabs.json': json.dumps([{ 326 'namespace': 'tabs', 327 'types': [ 328 { 329 'id': 'Tab', 330 'properties': { 331 'url': {}, 332 'index': {}, 333 'selected': {}, 334 'id': {}, 335 'windowId': {} 336 } 337 }, 338 { 339 'id': 'InjectDetails', 340 'properties': { 341 'allFrames': {}, 342 'code': {}, 343 'file': {} 344 } 345 }, 346 { 347 'id': 'DeprecatedType', 348 'deprecated': 'This is deprecated' 349 } 350 ], 351 'properties': { 352 'fakeTabsProperty1': {}, 353 'fakeTabsProperty2': {} 354 }, 355 'functions': [ 356 { 357 'name': 'getCurrent', 358 'parameters': [ 359 { 360 'name': 'callback', 361 'parameters': [ 362 { 363 'name': 'tab' 364 } 365 ] 366 } 367 ] 368 }, 369 { 370 'name': 'get', 371 'parameters': [ 372 { 373 'name': 'callback', 374 'parameters': [ 375 { 376 'name': 'tab' 377 } 378 ] 379 }, 380 { 381 'name': 'tabId' 382 } 383 ] 384 }, 385 { 386 'name': 'restrictedFunc' 387 } 388 ], 389 'events': [ 390 { 391 'name': 'onActivated', 392 'parameters': [ 393 { 394 'name': 'activeInfo', 395 'properties': { 396 'tabId': {}, 397 } 398 } 399 ] 400 }, 401 { 402 'name': 'onUpdated', 403 'parameters': [ 404 { 405 'name': 'tabId' 406 }, 407 { 408 'name': 'changeInfo', 409 'properties': { 410 'pinned': {}, 411 'status': {} 412 } 413 } 414 ] 415 } 416 ] 417 }]) 418 } 419 }, 420 '1547': { 421 'api': { 422 '_api_features.json': json.dumps({ 423 'tabs.restrictedFunc': { 424 'channel': 'dev' 425 } 426 }), 427 '_manifest_features.json': "{}", 428 '_permission_features.json': "{}", 429 'fake_tabs.idl': FAKE_TABS_IDL, 430 'tabs.json': json.dumps([{ 431 'namespace': 'tabs', 432 'types': [ 433 { 434 'id': 'Tab', 435 'properties': { 436 'url': {}, 437 'index': {}, 438 'selected': {}, 439 'id': {}, 440 'windowId': {} 441 } 442 }, 443 { 444 'id': 'InjectDetails', 445 'properties': { 446 'allFrames': {}, 447 'code': {}, 448 'file': {} 449 } 450 }, 451 { 452 'id': 'DeprecatedType', 453 'deprecated': 'This is deprecated' 454 } 455 ], 456 'properties': { 457 'fakeTabsProperty1': {}, 458 'fakeTabsProperty2': {} 459 }, 460 'functions': [ 461 { 462 'name': 'getCurrent', 463 'parameters': [ 464 { 465 'name': 'callback', 466 'parameters': [ 467 { 468 'name': 'tab' 469 } 470 ] 471 } 472 ] 473 }, 474 { 475 'name': 'get', 476 'parameters': [ 477 { 478 'name': 'callback', 479 'parameters': [ 480 { 481 'name': 'tab' 482 } 483 ] 484 }, 485 ] 486 }, 487 { 488 'name': 'restrictedFunc' 489 } 490 ], 491 'events': [ 492 { 493 'name': 'onUpdated', 494 'parameters': [ 495 { 496 'name': 'tabId' 497 }, 498 { 499 'name': 'changeInfo', 500 'properties': { 501 'pinned': {}, 502 'status': {} 503 } 504 } 505 ] 506 } 507 ] 508 }]) 509 } 510 }, 511 '1500': { 512 'api': { 513 '_api_features.json': "{}", 514 '_manifest_features.json': "{}", 515 '_permission_features.json': "{}", 516 'fake_tabs.idl': FAKE_TABS_IDL, 517 'tabs.json': json.dumps([{ 518 'namespace': 'tabs', 519 'types': [ 520 { 521 'id': 'Tab', 522 'properties': { 523 'url': {}, 524 'index': {}, 525 'selected': {}, 526 'id': {}, 527 'windowId': {} 528 } 529 }, 530 { 531 'id': 'InjectDetails', 532 'properties': { 533 'allFrames': {}, 534 } 535 }, 536 { 537 'id': 'DeprecatedType', 538 'deprecated': 'This is deprecated' 539 } 540 ], 541 'properties': { 542 'fakeTabsProperty1': {}, 543 'fakeTabsProperty2': {} 544 }, 545 'functions': [ 546 { 547 'name': 'getCurrent', 548 'parameters': [ 549 { 550 'name': 'callback', 551 'parameters': [ 552 { 553 'name': 'tab' 554 } 555 ] 556 } 557 ] 558 }, 559 { 560 'name': 'get', 561 'parameters': [ 562 { 563 'name': 'callback', 564 'parameters': [ 565 { 566 'name': 'tab' 567 } 568 ] 569 }, 570 ] 571 } 572 ], 573 'events': [ 574 { 575 'name': 'onUpdated', 576 'parameters': [ 577 { 578 'name': 'tabId' 579 }, 580 { 581 'name': 'changeInfo', 582 'properties': { 583 'pinned': {}, 584 'status': {} 585 } 586 } 587 ] 588 } 589 ] 590 }]) 591 } 592 }, 593 '1453': { 594 'api': { 595 '_api_features.json': "{}", 596 '_manifest_features.json': "{}", 597 '_permission_features.json': "{}", 598 'fake_tabs.idl': FAKE_TABS_IDL, 599 'tabs.json': json.dumps([{ 600 'namespace': 'tabs', 601 'types': [ 602 { 603 'id': 'Tab', 604 'properties': { 605 'url': {}, 606 'index': {}, 607 'selected': {}, 608 'id': {}, 609 'windowId': {} 610 } 611 }, 612 { 613 'id': 'InjectDetails', 614 'properties': { 615 'allFrames': {}, 616 } 617 }, 618 { 619 'id': 'DeprecatedType', 620 'deprecated': 'This is deprecated' 621 } 622 ], 623 'properties': { 624 'fakeTabsProperty1': {}, 625 'fakeTabsProperty2': {} 626 }, 627 'functions': [ 628 { 629 'name': 'getCurrent', 630 'parameters': [ 631 { 632 'name': 'callback', 633 'parameters': [ 634 { 635 'name': 'tab' 636 } 637 ] 638 } 639 ] 640 }, 641 { 642 'name': 'get', 643 'parameters': [ 644 { 645 'name': 'callback', 646 'parameters': [ 647 { 648 'name': 'tab' 649 } 650 ] 651 }, 652 ] 653 } 654 ], 655 'events': [ 656 { 657 'name': 'onUpdated', 658 'parameters': [ 659 { 660 'name': 'tabId' 661 }, 662 { 663 'name': 'changeInfo', 664 'properties': { 665 'pinned': {}, 666 'status': {} 667 } 668 } 669 ] 670 } 671 ] 672 }]) 673 } 674 }, 675 '1410': { 676 'api': { 677 '_manifest_features.json': "{}", 678 '_permission_features.json': "{}", 679 'fake_tabs.idl': FAKE_TABS_IDL, 680 'tabs.json': json.dumps([{ 681 'namespace': 'tabs', 682 'types': [ 683 { 684 'id': 'Tab', 685 'properties': { 686 'url': {}, 687 'index': {}, 688 'selected': {}, 689 'id': {}, 690 'windowId': {} 691 } 692 }, 693 { 694 'id': 'InjectDetails', 695 'properties': { 696 'allFrames': {}, 697 } 698 }, 699 { 700 'id': 'DeprecatedType', 701 'deprecated': 'This is deprecated' 702 } 703 ], 704 'properties': { 705 'fakeTabsProperty1': {}, 706 'fakeTabsProperty2': {} 707 }, 708 'functions': [ 709 { 710 'name': 'getCurrent', 711 'parameters': [ 712 { 713 'name': 'callback', 714 'parameters': [ 715 { 716 'name': 'tab' 717 } 718 ] 719 } 720 ] 721 }, 722 { 723 'name': 'get', 724 'parameters': [ 725 { 726 'name': 'callback', 727 'parameters': [ 728 { 729 'name': 'tab' 730 } 731 ] 732 } 733 ] 734 } 735 ], 736 'events': [ 737 { 738 'name': 'onUpdated', 739 'parameters': [ 740 { 741 'name': 'tabId' 742 }, 743 { 744 'name': 'changeInfo', 745 'properties': { 746 'pinned': {}, 747 'status': {} 748 } 749 } 750 ] 751 } 752 ] 753 }]) 754 } 755 }, 756 '1364': { 757 'api': { 758 '_manifest_features.json': "{}", 759 '_permission_features.json': "{}", 760 'fake_tabs.idl': FAKE_TABS_WITH_INLINING_IDL, 761 'tabs.json': json.dumps([{ 762 'namespace': 'tabs', 763 'types': [ 764 { 765 'id': 'Tab', 766 'properties': { 767 'url': {}, 768 'index': {}, 769 'selected': {}, 770 'id': {}, 771 'windowId': {} 772 } 773 }, 774 { 775 'id': 'InjectDetails', 776 'properties': { 777 'allFrames': {} 778 } 779 }, 780 { 781 'id': 'DeprecatedType', 782 } 783 ], 784 'properties': { 785 'fakeTabsProperty1': {}, 786 'fakeTabsProperty2': {} 787 }, 788 'functions': [ 789 { 790 'name': 'getCurrent', 791 'parameters': [ 792 { 793 'name': 'callback', 794 'parameters': [ 795 { 796 'name': 'tab' 797 } 798 ] 799 } 800 ] 801 }, 802 { 803 'name': 'get', 804 'parameters': [ 805 { 806 'name': 'callback', 807 'parameters': [ 808 { 809 'name': 'tab' 810 } 811 ] 812 } 813 ] 814 } 815 ], 816 'events': [ 817 { 818 'name': 'onUpdated', 819 'parameters': [ 820 { 821 'name': 'tabId' 822 }, 823 { 824 'name': 'changeInfo', 825 'properties': { 826 'pinned': {}, 827 'status': {} 828 } 829 } 830 ] 831 } 832 ] 833 }]) 834 } 835 }, 836 '1312': { 837 'api': { 838 '_manifest_features.json': "{}", 839 '_permission_features.json': "{}", 840 'tabs.json': json.dumps([{ 841 'namespace': 'tabs', 842 'types': [ 843 { 844 'id': 'Tab', 845 'properties': { 846 'url': {}, 847 'index': {}, 848 'selected': {}, 849 'id': {}, 850 'windowId': {} 851 } 852 } 853 ], 854 'properties': { 855 'fakeTabsProperty1': {}, 856 'fakeTabsProperty2': {} 857 }, 858 'functions': [ 859 { 860 'name': 'getCurrent', 861 'parameters': [ 862 { 863 'name': 'callback', 864 'parameters': [ 865 { 866 'name': 'tab' 867 } 868 ] 869 } 870 ] 871 }, 872 { 873 'name': 'get', 874 'parameters': [ 875 { 876 'name': 'callback', 877 'parameters': [ 878 { 879 'name': 'tab' 880 } 881 ] 882 } 883 ] 884 } 885 ], 886 'events': [ 887 { 888 'name': 'onUpdated', 889 'parameters': [ 890 { 891 'name': 'tabId' 892 }, 893 { 894 'name': 'changeInfo', 895 'properties': { 896 'pinned': {}, 897 'status': {} 898 } 899 } 900 ] 901 } 902 ] 903 }]) 904 } 905 }, 906 '1271': { 907 'api': { 908 '_manifest_features.json': "{}", 909 '_permission_features.json': "{}", 910 'tabs.json': json.dumps([{ 911 'namespace': 'tabs', 912 'types': [ 913 { 914 'id': 'Tab', 915 'properties': { 916 'url': {}, 917 'index': {}, 918 'selected': {}, 919 'id': {}, 920 'windowId': {} 921 } 922 } 923 ], 924 'properties': { 925 'fakeTabsProperty1': {}, 926 'fakeTabsProperty2': {} 927 }, 928 'functions': [ 929 { 930 'name': 'getCurrent', 931 'parameters': [ 932 { 933 'name': 'callback', 934 'parameters': [ 935 { 936 'name': 'tab' 937 } 938 ] 939 } 940 ] 941 }, 942 { 943 'name': 'get', 944 'parameters': [ 945 { 946 'name': 'callback', 947 'parameters': [ 948 { 949 'name': 'tab' 950 } 951 ] 952 } 953 ] 954 } 955 ], 956 'events': [ 957 { 958 'name': 'onUpdated', 959 'parameters': [ 960 { 961 'name': 'tabId' 962 }, 963 { 964 'name': 'changeInfo', 965 'properties': { 966 'pinned': {}, 967 'status': {} 968 } 969 } 970 ] 971 } 972 ] 973 }]) 974 } 975 }, 976 '1229': { 977 'api': { 978 '_manifest_features.json': "{}", 979 '_permission_features.json': "{}", 980 'tabs.json': json.dumps([{ 981 'namespace': 'tabs', 982 'types': [ 983 { 984 'id': 'Tab', 985 'properties': { 986 'url': {}, 987 'index': {}, 988 'selected': {}, 989 'id': {}, 990 'windowId': {} 991 } 992 } 993 ], 994 'properties': { 995 'fakeTabsProperty1': {}, 996 'fakeTabsProperty2': {} 997 }, 998 'functions': [ 999 { 1000 'name': 'getCurrent', 1001 'parameters': [ 1002 { 1003 'name': 'callback', 1004 'parameters': [ 1005 { 1006 'name': 'tab' 1007 } 1008 ] 1009 } 1010 ] 1011 }, 1012 { 1013 'name': 'get', 1014 'parameters': [ 1015 { 1016 'name': 'callback', 1017 'parameters': [ 1018 { 1019 'name': 'tab' 1020 } 1021 ] 1022 } 1023 ] 1024 } 1025 ], 1026 'events': [ 1027 { 1028 'name': 'onUpdated', 1029 'parameters': [ 1030 { 1031 'name': 'tabId' 1032 }, 1033 { 1034 'name': 'changeInfo', 1035 'properties': { 1036 'pinned': {}, 1037 'status': {} 1038 } 1039 } 1040 ] 1041 } 1042 ] 1043 }]) 1044 } 1045 }, 1046 '1180': { 1047 'api': { 1048 '_manifest_features.json': "{}", 1049 '_permission_features.json': "{}", 1050 'tabs.json': json.dumps([{ 1051 'namespace': 'tabs', 1052 'types': [ 1053 { 1054 'id': 'Tab', 1055 'properties': { 1056 'url': {}, 1057 'index': {}, 1058 'selected': {}, 1059 'id': {} 1060 } 1061 } 1062 ], 1063 'properties': { 1064 'fakeTabsProperty1': {}, 1065 'fakeTabsProperty2': {} 1066 }, 1067 'functions': [ 1068 { 1069 'name': 'getCurrent', 1070 'parameters': [ 1071 { 1072 'name': 'callback', 1073 'parameters': [ 1074 { 1075 'name': 'tab' 1076 } 1077 ] 1078 } 1079 ] 1080 }, 1081 { 1082 'name': 'get', 1083 'parameters': [ 1084 { 1085 'name': 'callback', 1086 'parameters': [ 1087 { 1088 'name': 'tab' 1089 } 1090 ] 1091 } 1092 ] 1093 } 1094 ], 1095 'events': [ 1096 { 1097 'name': 'onUpdated', 1098 'parameters': [ 1099 { 1100 'name': 'tabId' 1101 }, 1102 { 1103 'name': 'changeInfo', 1104 'properties': { 1105 'pinned': {}, 1106 'status': {} 1107 } 1108 } 1109 ] 1110 } 1111 ] 1112 }]) 1113 } 1114 }, 1115 '1132': { 1116 'api': { 1117 '_manifest_features.json': "{}", 1118 '_permission_features.json': "{}", 1119 'tabs.json': json.dumps([{ 1120 'namespace': 'tabs', 1121 'types': [ 1122 { 1123 'id': 'Tab', 1124 'properties': { 1125 'url': {}, 1126 'index': {}, 1127 'id': {} 1128 } 1129 } 1130 ], 1131 'properties': { 1132 'fakeTabsProperty1': {}, 1133 'fakeTabsProperty2': {} 1134 }, 1135 'functions': [ 1136 { 1137 'name': 'getCurrent', 1138 'parameters': [ 1139 { 1140 'name': 'callback', 1141 'parameters': [ 1142 { 1143 'name': 'tab' 1144 } 1145 ] 1146 } 1147 ] 1148 }, 1149 { 1150 'name': 'get', 1151 'parameters': [ 1152 { 1153 'name': 'callback', 1154 'parameters': [ 1155 { 1156 'name': 'tab' 1157 } 1158 ] 1159 } 1160 ] 1161 } 1162 ], 1163 'events': [ 1164 { 1165 'name': 'onUpdated', 1166 'parameters': [ 1167 { 1168 'name': 'tabId' 1169 }, 1170 { 1171 'name': 'changeInfo', 1172 'properties': { 1173 'pinned': {}, 1174 'status': {} 1175 } 1176 } 1177 ] 1178 } 1179 ] 1180 }]) 1181 } 1182 }, 1183 '1084': { 1184 'api': { 1185 'tabs.json': json.dumps([{ 1186 'namespace': 'tabs', 1187 'types': [ 1188 { 1189 'id': 'Tab', 1190 'properties': { 1191 'url': {}, 1192 'index': {}, 1193 'id': {} 1194 } 1195 } 1196 ], 1197 'properties': { 1198 'fakeTabsProperty1': {}, 1199 'fakeTabsProperty2': {} 1200 }, 1201 'functions': [ 1202 { 1203 'name': 'getCurrent', 1204 'parameters': [ 1205 { 1206 'name': 'callback', 1207 'parameters': [ 1208 { 1209 'name': 'tab' 1210 } 1211 ] 1212 } 1213 ] 1214 }, 1215 { 1216 'name': 'get', 1217 'parameters': [ 1218 { 1219 'name': 'callback', 1220 'parameters': [ 1221 { 1222 'name': 'tab' 1223 } 1224 ] 1225 } 1226 ] 1227 } 1228 ], 1229 'events': [ 1230 { 1231 'name': 'onUpdated', 1232 'parameters': [ 1233 { 1234 'name': 'tabId' 1235 }, 1236 { 1237 'name': 'changeInfo', 1238 'properties': { 1239 'pinned': {}, 1240 'status': {} 1241 } 1242 } 1243 ] 1244 } 1245 ] 1246 }]) 1247 } 1248 }, 1249 '1025': { 1250 'api': { 1251 'tabs.json': json.dumps([{ 1252 'namespace': 'tabs', 1253 'types': [ 1254 { 1255 'id': 'Tab', 1256 'properties': { 1257 'url': {}, 1258 'index': {}, 1259 'id': {} 1260 } 1261 } 1262 ], 1263 'properties': { 1264 'fakeTabsProperty1': {}, 1265 'fakeTabsProperty2': {} 1266 }, 1267 'functions': [ 1268 { 1269 'name': 'get', 1270 'parameters': [ 1271 { 1272 'name': 'callback', 1273 'parameters': [ 1274 { 1275 'name': 'tab' 1276 } 1277 ] 1278 } 1279 ] 1280 } 1281 ], 1282 'events': [ 1283 { 1284 'name': 'onUpdated', 1285 'parameters': [ 1286 { 1287 'name': 'tabId' 1288 }, 1289 { 1290 'name': 'changeInfo', 1291 'properties': { 1292 'pinned': {}, 1293 'status': {} 1294 } 1295 } 1296 ] 1297 } 1298 ] 1299 }]) 1300 } 1301 }, 1302 '963': { 1303 'api': { 1304 'extension_api.json': json.dumps([{ 1305 'namespace': 'tabs', 1306 'types': [ 1307 { 1308 'id': 'Tab', 1309 'properties': { 1310 'url': {}, 1311 'id': {} 1312 } 1313 } 1314 ], 1315 'properties': { 1316 'fakeTabsProperty1': {}, 1317 'fakeTabsProperty2': {} 1318 }, 1319 'functions': [ 1320 { 1321 'name': 'get', 1322 'parameters': [ 1323 { 1324 'name': 'callback', 1325 'parameters': [ 1326 { 1327 'name': 'tab' 1328 } 1329 ] 1330 } 1331 ] 1332 } 1333 ], 1334 'events': [ 1335 { 1336 'name': 'onUpdated', 1337 'parameters': [ 1338 { 1339 'name': 'tabId' 1340 }, 1341 { 1342 'name': 'changeInfo', 1343 'properties': { 1344 'pinned': {}, 1345 'status': {} 1346 } 1347 } 1348 ] 1349 } 1350 ] 1351 }]) 1352 } 1353 }, 1354 '912': { 1355 'api': { 1356 'extension_api.json': json.dumps([{ 1357 'namespace': 'tabs', 1358 'types': [ 1359 { 1360 'id': 'Tab', 1361 'properties': { 1362 'url': {}, 1363 'id': {} 1364 } 1365 } 1366 ], 1367 'properties': { 1368 'fakeTabsProperty1': {}, 1369 'fakeTabsProperty2': {} 1370 }, 1371 'functions': [ 1372 { 1373 'name': 'get', 1374 'parameters': [ 1375 { 1376 'name': 'callback', 1377 'parameters': [ 1378 { 1379 'name': 'tab' 1380 } 1381 ] 1382 } 1383 ] 1384 } 1385 ], 1386 'events': [ 1387 { 1388 'name': 'onUpdated', 1389 'parameters': [ 1390 { 1391 'name': 'tabId' 1392 } 1393 ] 1394 } 1395 ] 1396 }]) 1397 } 1398 }, 1399 '874': { 1400 'api': { 1401 'extension_api.json': json.dumps([{ 1402 'namespace': 'tabs', 1403 'types': [ 1404 { 1405 'id': 'Tab', 1406 'properties': { 1407 'url': {}, 1408 'id': {} 1409 } 1410 } 1411 ], 1412 'properties': { 1413 'fakeTabsProperty1': {}, 1414 'fakeTabsProperty2': {} 1415 }, 1416 'functions': [ 1417 { 1418 'name': 'get', 1419 'parameters': [ 1420 { 1421 'name': 'callback', 1422 'parameters': [ 1423 { 1424 'name': 'tab' 1425 } 1426 ] 1427 } 1428 ] 1429 } 1430 ], 1431 'events': [ 1432 { 1433 'name': 'onUpdated', 1434 'parameters': [ 1435 { 1436 'name': 'tabId' 1437 } 1438 ] 1439 } 1440 ] 1441 }]) 1442 } 1443 }, 1444 '835': { 1445 'api': { 1446 'extension_api.json': json.dumps([{ 1447 'namespace': 'tabs', 1448 'types': [ 1449 { 1450 'id': 'Tab', 1451 'properties': { 1452 'url': {}, 1453 'id': {} 1454 } 1455 } 1456 ], 1457 'properties': { 1458 'fakeTabsProperty1': {} 1459 }, 1460 'functions': [ 1461 { 1462 'name': 'get', 1463 'parameters': [ 1464 { 1465 'name': 'callback', 1466 'parameters': [ 1467 { 1468 'name': 'tab' 1469 } 1470 ] 1471 } 1472 ] 1473 } 1474 ], 1475 'events': [ 1476 { 1477 'name': 'onUpdated', 1478 'parameters': [ 1479 { 1480 'name': 'tabId' 1481 } 1482 ] 1483 } 1484 ] 1485 }]) 1486 } 1487 }, 1488 '782': { 1489 'api': { 1490 'extension_api.json': "{}" 1491 } 1492 } 1493}) 1494