Usually we don't store icons returning a no-store header in response, because we
assume the website may be using them to indicate a state (with some kind of
notification badge).
Root favicons may be considered an exception though, since they are unlikely
to be replaced on-the-fly to show badges, and we use them to guess a favicon
when a page doesn't specify one.
Differential Revision: https://phabricator.services.mozilla.com/D93802
Raw Cr.ERROR don't get stack information, same as throwing JS literals instead
of `new Error()`s.
This was done automatically with a new eslint rule that will be introduced in
the next commit. One instance of a raw Cr.ERROR was not replaced since it is
used in a test that specifically checks the preservation of raw Cr values in
XPCJS. The rule will be disabled for that instance.
Differential Revision: https://phabricator.services.mozilla.com/D28073
Icons added after the initial parsing are likely randomly generated to show badges,
thus they are not good for permanent storage, because they are transient and can
potentially flood the store.
Differential Revision: https://phabricator.services.mozilla.com/D55310
--HG--
extra : moz-landing-system : lando
Replacing js and text occurences of asyncOpen2
Replacing open2 with open
Differential Revision: https://phabricator.services.mozilla.com/D16885
--HG--
rename : layout/style/test/test_asyncopen2.html => layout/style/test/test_asyncopen.html
extra : moz-landing-system : lando
***
Bug 1514594: Part 3a - Change ChromeUtils.import to return an exports object; not pollute global. r=mccr8
This changes the behavior of ChromeUtils.import() to return an exports object,
rather than a module global, in all cases except when `null` is passed as a
second argument, and changes the default behavior not to pollute the global
scope with the module's exports. Thus, the following code written for the old
model:
ChromeUtils.import("resource://gre/modules/Services.jsm");
is approximately the same as the following, in the new model:
var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
Since the two behaviors are mutually incompatible, this patch will land with a
scripted rewrite to update all existing callers to use the new model rather
than the old.
***
Bug 1514594: Part 3b - Mass rewrite all JS code to use the new ChromeUtils.import API. rs=Gijs
This was done using the followng script:
https://bitbucket.org/kmaglione/m-c-rewrites/src/tip/processors/cu-import-exports.jsm
***
Bug 1514594: Part 3c - Update ESLint plugin for ChromeUtils.import API changes. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D16747
***
Bug 1514594: Part 3d - Remove/fix hundreds of duplicate imports from sync tests. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16748
***
Bug 1514594: Part 3e - Remove no-op ChromeUtils.import() calls. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16749
***
Bug 1514594: Part 3f.1 - Cleanup various test corner cases after mass rewrite. r=Gijs
***
Bug 1514594: Part 3f.2 - Cleanup various non-test corner cases after mass rewrite. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16750
--HG--
extra : rebase_source : 359574ee3064c90f33bf36c2ebe3159a24cc8895
extra : histedit_source : b93c8f42808b1599f9122d7842d2c0b3e656a594%2C64a3a4e3359dc889e2ab2b49461bab9e27fc10a7
There is a problem in FaviconLoader where we can attempt to load icons after the
page has been unloaded somehow. Because DeferredTask pushes its task to the idle
queue there is a short gap between when DeferredTask's timer fires and when its
task starts. If the page is unloaded in that gap we are unable to cancel the
task and when it starts it fails to access the content page.
However, when the page unloads we do clear the list of icons and since there is
no reason to do anything when the list of icons is empty we can just bail out
of the load task early and never try to touch the content page in this case.
Differential Revision: https://phabricator.services.mozilla.com/D14188
--HG--
extra : moz-landing-system : lando
Previous to bug 1453751 favicons were loaded from the network by a <xul:image>
tag with validate="never". This caused us to always use any cached version if
possible. Bug 1453751 used a normal load type causing us to revalidate with the
server for each request. This switches the loader to using the cache if possible.
Differential Revision: https://phabricator.services.mozilla.com/D11402
--HG--
extra : moz-landing-system : lando
Previous to bug 1453751 favicons were loaded from the network by a <xul:image>
tag with validate="never". This caused us to always use any cached version if
possible. Bug 1453751 used a normal load type causing us to revalidate with the
server for each request. This switches the loader to using the cache if possible.
Differential Revision: https://phabricator.services.mozilla.com/D11402
--HG--
extra : moz-landing-system : lando
There is a race condition between the time we decide to fetch an icon and the time we actually store that icon, where the original browser currentURI may have changed.
Differential Revision: https://phabricator.services.mozilla.com/D5685
--HG--
extra : moz-landing-system : lando
There is a race condition between the time we decide to fetch an icon and the time we actually store that icon, where the original browser currentURI may have changed.
Differential Revision: https://phabricator.services.mozilla.com/D5685
--HG--
extra : moz-landing-system : lando
Automatic changes by ESLint, except for manual corrections for .xml files.
Differential Revision: https://phabricator.services.mozilla.com/D4439
--HG--
extra : moz-landing-system : lando
This adds a simple empty box that is displayed when we're still loading an icon
but are no longer showing the throbber. Ideally I'd like to keep showing the
throbber and maintain the busy state but that seems more risky for now.
Differential Revision: https://phabricator.services.mozilla.com/D2364
--HG--
extra : moz-landing-system : lando