PlacesEvent.webidl (16104B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ 4 5 enum PlacesEventType { 6 "none", 7 8 /** 9 * data: PlacesVisit. Fired whenever a page is visited. 10 */ 11 "page-visited", 12 /** 13 * data: PlacesBookmarkAddition. Fired whenever a bookmark 14 * (or a bookmark folder/separator) is created. 15 */ 16 "bookmark-added", 17 /** 18 * data: PlacesBookmarkRemoved. Fired whenever a bookmark 19 * (or a bookmark folder/separator) is removed. 20 */ 21 "bookmark-removed", 22 /** 23 * data: PlacesBookmarkMoved. Fired whenever a bookmark 24 * (or a bookmark folder/separator) is moved. 25 */ 26 "bookmark-moved", 27 /** 28 * data: PlacesBookmarkGuid. Fired whenever a bookmark guid changes. 29 */ 30 "bookmark-guid-changed", 31 /** 32 * data: PlacesBookmarkKeyword. Fired whenever a bookmark keyword changes. 33 */ 34 "bookmark-keyword-changed", 35 /** 36 * data: PlacesBookmarkTags. Fired whenever tags of bookmark changes. 37 */ 38 "bookmark-tags-changed", 39 /** 40 * data: PlacesBookmarkTime. 41 * Fired whenever dateAdded or lastModified of a bookmark is explicitly changed 42 * through the Bookmarks API. This notification doesn't fire when a bookmark is 43 * created, or when a property of a bookmark (e.g. title) is changed, even if 44 * lastModified will be updated as a consequence of that change. 45 */ 46 "bookmark-time-changed", 47 /** 48 * data: PlacesBookmarkTitle. Fired whenever a bookmark title changes. 49 */ 50 "bookmark-title-changed", 51 /** 52 * data: PlacesBookmarkUrl. Fired whenever a bookmark url changes. 53 */ 54 "bookmark-url-changed", 55 /** 56 * data: PlacesFavicon. Fired whenever a favicon changes. 57 */ 58 "favicon-changed", 59 /** 60 * data: PlacesVisitTitle. Fired whenever a page title changes. 61 */ 62 "page-title-changed", 63 /** 64 * data: PlacesHistoryCleared. Fired whenever history is cleared. 65 */ 66 "history-cleared", 67 /** 68 * data: PlacesRanking. Fired whenever pages ranking is changed. 69 */ 70 "pages-rank-changed", 71 /** 72 * data: PlacesVisitRemoved. Fired whenever a page or its visits are removed. 73 * This may be invoked when a page is removed from the store because it has no more 74 * visits, nor bookmarks. It may also be invoked when all or some of the page visits are 75 * removed, but the page itself is not removed from the store, because it may be 76 * bookmarked. 77 */ 78 "page-removed", 79 /** 80 * data: PlacesPurgeCaches. Fired whenever changes happened that could not be observed 81 * through other notifications, for example a database fixup. When received, observers, 82 * especially data views, should drop any caches and reload from scratch. 83 */ 84 "purge-caches", 85 }; 86 87 [ChromeOnly, Exposed=Window] 88 interface PlacesEvent { 89 readonly attribute PlacesEventType type; 90 }; 91 92 [ChromeOnly, Exposed=Window] 93 interface PlacesVisit : PlacesEvent { 94 /** 95 * URL of the visit. 96 */ 97 readonly attribute DOMString url; 98 99 /** 100 * Id of the visit. 101 */ 102 readonly attribute unsigned long long visitId; 103 104 /** 105 * Time of the visit, in milliseconds since epoch. 106 */ 107 readonly attribute unsigned long long visitTime; 108 109 /** 110 * The id of the visit the user came from, defaults to 0 for no referrer. 111 */ 112 readonly attribute unsigned long long referringVisitId; 113 114 /** 115 * One of nsINavHistory.TRANSITION_* 116 */ 117 readonly attribute unsigned long transitionType; 118 119 /** 120 * The unique id associated with the page. 121 */ 122 readonly attribute ByteString pageGuid; 123 124 /** 125 * The frecency of the this page. 126 */ 127 readonly attribute long long frecency; 128 129 /** 130 * Whether the visited page is marked as hidden. 131 */ 132 readonly attribute boolean hidden; 133 134 /** 135 * Number of visits (including this one) for this URL. 136 */ 137 readonly attribute unsigned long visitCount; 138 139 /** 140 * Whether the URL has been typed or not. 141 * TODO (Bug 1271801): This will become a count, rather than a boolean. 142 * For future compatibility, always compare it with "> 0". 143 */ 144 readonly attribute unsigned long typedCount; 145 146 /** 147 * The last known title of the page. Might not be from the current visit, 148 * and might be null if it is not known. 149 */ 150 readonly attribute DOMString? lastKnownTitle; 151 }; 152 153 /** 154 * Base class for properties that are common to all bookmark events. 155 */ 156 [ChromeOnly, Exposed=Window] 157 interface PlacesBookmark : PlacesEvent { 158 /** 159 * The id of the item. 160 */ 161 readonly attribute long long id; 162 163 /** 164 * The id of the folder to which the item belongs. 165 */ 166 readonly attribute long long parentId; 167 168 /** 169 * The type of the added item (see TYPE_* constants in nsINavBooksService.idl). 170 */ 171 readonly attribute unsigned short itemType; 172 173 /** 174 * The URI of the added item if it was TYPE_BOOKMARK, "" otherwise. 175 */ 176 readonly attribute DOMString url; 177 178 /** 179 * The unique ID associated with the item. 180 */ 181 readonly attribute ByteString guid; 182 183 /** 184 * The unique ID associated with the item's parent. 185 */ 186 readonly attribute ByteString parentGuid; 187 188 /** 189 * A change source constant from nsINavBookmarksService::SOURCE_*, 190 * passed to the method that notifies the observer. 191 */ 192 readonly attribute unsigned short source; 193 194 /** 195 * True if the item is a tag or a tag folder. 196 * NOTE: this will go away with bug 424160. 197 */ 198 readonly attribute boolean isTagging; 199 }; 200 201 dictionary PlacesBookmarkAdditionInit { 202 required long long id; 203 required long long parentId; 204 required unsigned short itemType; 205 required DOMString url; 206 required ByteString guid; 207 required ByteString parentGuid; 208 required unsigned short source; 209 required long index; 210 required DOMString title; 211 required DOMString? tags; 212 required unsigned long long dateAdded; 213 required boolean isTagging; 214 required long long frecency; 215 required boolean hidden; 216 required unsigned long visitCount; 217 required unsigned long long? lastVisitDate; 218 required long long targetFolderItemId; 219 required ByteString? targetFolderGuid; 220 required DOMString? targetFolderTitle; 221 }; 222 223 [ChromeOnly, Exposed=Window] 224 interface PlacesBookmarkAddition : PlacesBookmark { 225 constructor(PlacesBookmarkAdditionInit initDict); 226 227 /** 228 * The item's index in the folder. 229 */ 230 readonly attribute long index; 231 232 /** 233 * The title of the added item. 234 */ 235 readonly attribute DOMString title; 236 237 /** 238 * The tags of the added item. 239 */ 240 readonly attribute DOMString tags; 241 242 /** 243 * The time that the item was added, in milliseconds from the epoch. 244 */ 245 readonly attribute unsigned long long dateAdded; 246 247 /** 248 * The frecency of the page of this bookmark. 249 */ 250 readonly attribute long long frecency; 251 252 /** 253 * Whether the visited page is marked as hidden. 254 */ 255 readonly attribute boolean hidden; 256 257 /** 258 * Number of visits (including this one) for this URL. 259 */ 260 readonly attribute unsigned long visitCount; 261 262 /** 263 * Date of the last visit, in milliseconds since epoch. 264 */ 265 readonly attribute unsigned long long? lastVisitDate; 266 267 /** 268 * If this is a folder shortcut, the id of the target folder. 269 */ 270 readonly attribute long long targetFolderItemId; 271 272 /** 273 * If this is a folder shortcut, the unique ID associated with the target folder. 274 */ 275 readonly attribute ByteString targetFolderGuid; 276 277 /** 278 * If this is a folder shortcut, the title of the target folder. 279 */ 280 readonly attribute DOMString targetFolderTitle; 281 282 }; 283 284 dictionary PlacesBookmarkRemovedInit { 285 required long long id; 286 required long long parentId; 287 required unsigned short itemType; 288 required DOMString url; 289 required DOMString title; 290 required ByteString guid; 291 required ByteString parentGuid; 292 required unsigned short source; 293 required long index; 294 required boolean isTagging; 295 boolean isDescendantRemoval = false; 296 }; 297 298 [ChromeOnly, Exposed=Window] 299 interface PlacesBookmarkRemoved : PlacesBookmark { 300 constructor(PlacesBookmarkRemovedInit initDict); 301 /** 302 * The item's index in the folder. 303 */ 304 readonly attribute long index; 305 306 /** 307 * The title of the the removed item. 308 */ 309 readonly attribute DOMString title; 310 311 /** 312 * The item is a descendant of an item whose notification has been sent out. 313 */ 314 readonly attribute boolean isDescendantRemoval; 315 }; 316 317 dictionary PlacesBookmarkMovedInit { 318 required long long id; 319 required unsigned short itemType; 320 DOMString? url = null; 321 required ByteString guid; 322 required ByteString parentGuid; 323 required long index; 324 required ByteString oldParentGuid; 325 required long oldIndex; 326 required unsigned short source; 327 required boolean isTagging; 328 required DOMString title; 329 required DOMString? tags; 330 required long long frecency; 331 required boolean hidden; 332 required unsigned long visitCount; 333 required unsigned long long dateAdded; 334 required unsigned long long? lastVisitDate; 335 }; 336 337 [ChromeOnly, Exposed=Window] 338 /** 339 * NOTE: Though PlacesBookmarkMoved extends PlacesBookmark, 340 * parentId will not be set. Use parentGuid instead. 341 */ 342 interface PlacesBookmarkMoved : PlacesBookmark { 343 constructor(PlacesBookmarkMovedInit initDict); 344 /** 345 * The item's index in the folder. 346 */ 347 readonly attribute long index; 348 349 /** 350 * The unique ID associated with the item's old parent. 351 */ 352 readonly attribute ByteString oldParentGuid; 353 354 /** 355 * The item's old index in the folder. 356 */ 357 readonly attribute long oldIndex; 358 359 /** 360 * The title of the added item. 361 */ 362 readonly attribute DOMString title; 363 364 /** 365 * The tags of the added item. 366 */ 367 readonly attribute DOMString tags; 368 369 /** 370 * The frecency of the page of this bookmark. 371 */ 372 readonly attribute long long frecency; 373 374 /** 375 * Whether the visited page is marked as hidden. 376 */ 377 readonly attribute boolean hidden; 378 379 /** 380 * Number of visits (including this one) for this URL. 381 */ 382 readonly attribute unsigned long visitCount; 383 384 /** 385 * Date of the this bookmark added, in milliseconds since epoch. 386 */ 387 readonly attribute unsigned long long dateAdded; 388 389 /** 390 * Date of the last visit, in milliseconds since epoch. 391 */ 392 readonly attribute unsigned long long? lastVisitDate; 393 }; 394 395 [ChromeOnly, Exposed=Window] 396 interface PlacesBookmarkChanged : PlacesBookmark { 397 /** 398 * The updated last modified value in milliseconds. 399 */ 400 readonly attribute long long lastModified; 401 }; 402 403 dictionary PlacesBookmarkGuidInit { 404 required long long id; 405 required unsigned short itemType; 406 DOMString? url = null; 407 required ByteString guid; 408 required ByteString parentGuid; 409 required long long lastModified; 410 required unsigned short source; 411 required boolean isTagging; 412 }; 413 414 [ChromeOnly, Exposed=Window] 415 interface PlacesBookmarkGuid : PlacesBookmarkChanged { 416 constructor(PlacesBookmarkGuidInit initDict); 417 }; 418 419 dictionary PlacesBookmarkKeywordInit { 420 required long long id; 421 required unsigned short itemType; 422 DOMString? url = null; 423 required ByteString guid; 424 required ByteString parentGuid; 425 required ByteString keyword; 426 required long long lastModified; 427 required unsigned short source; 428 required boolean isTagging; 429 }; 430 431 [ChromeOnly, Exposed=Window] 432 interface PlacesBookmarkKeyword : PlacesBookmarkChanged { 433 constructor(PlacesBookmarkKeywordInit initDict); 434 435 /** 436 * Keyword the bookmark has currently. 437 */ 438 [Constant,Cached] 439 readonly attribute ByteString keyword; 440 }; 441 442 dictionary PlacesBookmarkTagsInit { 443 required long long id; 444 required unsigned short itemType; 445 DOMString? url = null; 446 required ByteString guid; 447 required ByteString parentGuid; 448 required sequence<DOMString> tags; 449 required long long lastModified; 450 required unsigned short source; 451 required boolean isTagging; 452 }; 453 454 [ChromeOnly, Exposed=Window] 455 interface PlacesBookmarkTags : PlacesBookmarkChanged { 456 constructor(PlacesBookmarkTagsInit initDict); 457 458 /** 459 * Tags the bookmark has currently. 460 */ 461 [Constant,Cached] 462 readonly attribute sequence<DOMString> tags; 463 }; 464 465 dictionary PlacesBookmarkTimeInit { 466 required long long id; 467 required unsigned short itemType; 468 DOMString? url = null; 469 required ByteString guid; 470 required ByteString parentGuid; 471 required long long dateAdded; 472 required long long lastModified; 473 required unsigned short source; 474 required boolean isTagging; 475 }; 476 477 [ChromeOnly, Exposed=Window] 478 interface PlacesBookmarkTime : PlacesBookmarkChanged { 479 constructor(PlacesBookmarkTimeInit initDict); 480 481 /** 482 * The added date in milliseconds. 483 */ 484 readonly attribute long long dateAdded; 485 }; 486 487 dictionary PlacesBookmarkTitleInit { 488 required long long id; 489 required unsigned short itemType; 490 DOMString? url = null; 491 required ByteString guid; 492 required ByteString parentGuid; 493 required DOMString title; 494 required long long lastModified; 495 required unsigned short source; 496 required boolean isTagging; 497 }; 498 499 [ChromeOnly, Exposed=Window] 500 interface PlacesBookmarkTitle : PlacesBookmarkChanged { 501 constructor(PlacesBookmarkTitleInit initDict); 502 503 /** 504 * The title of the changed bookmark. 505 */ 506 readonly attribute DOMString title; 507 }; 508 509 dictionary PlacesBookmarkUrlInit { 510 required long long id; 511 required unsigned short itemType; 512 required DOMString url; 513 required ByteString guid; 514 required ByteString parentGuid; 515 required long long lastModified; 516 required unsigned short source; 517 required boolean isTagging; 518 }; 519 520 [ChromeOnly, Exposed=Window] 521 interface PlacesBookmarkUrl : PlacesBookmarkChanged { 522 constructor(PlacesBookmarkUrlInit initDict); 523 }; 524 525 dictionary PlacesFaviconInit { 526 required DOMString url; 527 required ByteString pageGuid; 528 required DOMString faviconUrl; 529 }; 530 531 [ChromeOnly, Exposed=Window] 532 interface PlacesFavicon : PlacesEvent { 533 constructor(PlacesFaviconInit initDict); 534 535 /** 536 * The URI of the changed page. 537 */ 538 readonly attribute DOMString url; 539 540 /** 541 * The unique id associated with the page. 542 */ 543 readonly attribute ByteString pageGuid; 544 545 /** 546 * The URI of the new favicon. 547 */ 548 readonly attribute DOMString faviconUrl; 549 }; 550 551 dictionary PlacesVisitTitleInit { 552 required DOMString url; 553 required ByteString pageGuid; 554 required DOMString title; 555 }; 556 557 [ChromeOnly, Exposed=Window] 558 interface PlacesVisitTitle : PlacesEvent { 559 constructor(PlacesVisitTitleInit initDict); 560 561 /** 562 * The URI of the changed page. 563 */ 564 readonly attribute DOMString url; 565 566 /** 567 * The unique id associated with the page. 568 */ 569 readonly attribute ByteString pageGuid; 570 571 /** 572 * The title of the changed page. 573 */ 574 readonly attribute DOMString title; 575 }; 576 577 [ChromeOnly, Exposed=Window] 578 interface PlacesHistoryCleared : PlacesEvent { 579 constructor(); 580 }; 581 582 [ChromeOnly, Exposed=Window] 583 interface PlacesRanking : PlacesEvent { 584 constructor(); 585 }; 586 587 dictionary PlacesVisitRemovedInit { 588 required DOMString url; 589 required ByteString pageGuid; 590 required unsigned short reason; 591 unsigned long transitionType = 0; 592 boolean isRemovedFromStore = false; 593 boolean isPartialVisistsRemoval = false; 594 }; 595 596 [ChromeOnly, Exposed=Window] 597 interface PlacesVisitRemoved : PlacesEvent { 598 /** 599 * Removed by the user. 600 */ 601 const unsigned short REASON_DELETED = 0; 602 603 /** 604 * Removed by periodic expiration. 605 */ 606 const unsigned short REASON_EXPIRED = 1; 607 608 constructor(PlacesVisitRemovedInit initDict); 609 610 /** 611 * The URI of the page. 612 */ 613 readonly attribute DOMString url; 614 615 /** 616 * The unique id associated with the page. 617 */ 618 readonly attribute ByteString pageGuid; 619 620 /** 621 * The reason of removal. 622 */ 623 readonly attribute unsigned short reason; 624 625 /** 626 * One of nsINavHistoryService.TRANSITION_* 627 * NOTE: Please refer this attribute only when isRemovedFromStore is false. 628 * Otherwise this will be 0. 629 */ 630 readonly attribute unsigned long transitionType; 631 632 /** 633 * This will be true if the page is removed from store. 634 * If false, only visits were removed, but not the page. 635 */ 636 readonly attribute boolean isRemovedFromStore; 637 638 /** 639 * This will be true if remains at least one visit to the page. 640 */ 641 readonly attribute boolean isPartialVisistsRemoval; 642 }; 643 644 [ChromeOnly, Exposed=Window] 645 interface PlacesPurgeCaches : PlacesEvent { 646 constructor(); 647 };