Closed Bug 1610653 Opened 3 years ago Closed 1 month ago

Stop assigning properties to the global `this` in JSMs - Round 2

Categories

(Firefox :: General, task, P5)

task

Tracking

()

RESOLVED FIXED
103 Branch
Tracking Status
firefox103 --- fixed

People

(Reporter: bgrins, Assigned: arai)

References

(Blocks 1 open bug)

Details

Attachments

(24 files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

+++ This bug was initially created as a clone of Bug #1608278 +++

For example this.LoginBreaches = { ... }: https://searchfox.org/mozilla-central/rev/ba4fab1cc2f1c9c4e07cdb71542b8d441707c577/browser/components/aboutlogins/LoginBreaches.jsm#25.

This should generally work by changing to const LoginBreaches = { ... }

I did some manual changes in Bug 1608278, so spinning out a new bug that depends on Bug 1608281 & Bug 1609271 to do some more automated changes.

The leave-open keyword is there and there is no activity for 6 months.
:Dolske, maybe it's time to close this bug?

Flags: needinfo?(dolske)

The keyword was copied over from the cloned bug - clearing it

Flags: needinfo?(dolske)
Keywords: leave-open
Duplicate of this bug: 1764773
Blocks: 1607331
Assignee: nobody → arai.unmht
Status: NEW → ASSIGNED
Depends on: 1765156
Depends on: 1765167

Looks like AutoConfig script is also a consumer of Cu.import and removing this.foo = foo; in JSM here might affect it.

See Also: → 1766114

(In reply to Tooru Fujisawa [:arai] from comment #26)

Looks like AutoConfig script is also a consumer of Cu.import and removing this.foo = foo; in JSM here might affect it.

The change here can affect when AutoConfig script does var { foo } = Cu.import(...);, and JSM does this.foo = foo;.

Cu.import returns the per-JSM global object, instead of object that has exported symbols and values,
and the global object doesn't have lexical variable as its properties.
So, removing this.foo = foo; breaks it, and foo in the AutoConfig results in undefined.

If AutoConfig script does just Cu.import(".../Foo.jsm"); foo;, or Cu.import(".../Foo.jsm", obj); obj.foo;, there's no effect.
And thus it depends on how widely the return value of Cu.import is used there.

I've looked around for a while, and I don't find any example provided for AutoConfig script that uses the return value of Cu.import.
So the impact here might be small enough.

bug 1765167 still requires some investigation how much the deprecation warning message affects.

Here's the list of affected modules.
If there's code that receives the return value of Cu.import for those modules and gets those properties, such code will stop working with these patches applied.

The list is long mostly because I choose const as replacement for this.foo = ... as much as possible.
Some case can be avoided just by using var instead as replacement.
for other cases (mostly this.foo = foo with lexical variable), we could change the original definition to var.

Module Symbols removed from Cu.import return value's property
chrome://remote/content/cdp/observers/ChannelEventSink.jsm ChannelEventSinkFactory
chrome://remote/content/cdp/observers/NetworkObserver.jsm NetworkObserver
chrome://remote/content/marionette/accessibility.js accessibility
chrome://remote/content/marionette/action.js action
chrome://remote/content/marionette/addon.js Addon
chrome://remote/content/marionette/browser.js browser, Context, WindowState
chrome://remote/content/marionette/capture.js capture
chrome://remote/content/marionette/cert.js allowAllCerts
chrome://remote/content/marionette/cookie.js cookie
chrome://remote/content/marionette/dom.js WebElementEventTarget, ContentEventObserverService
chrome://remote/content/marionette/driver.js GeckoDriver
chrome://remote/content/marionette/element.js element, WebElement, ContentWebElement, ContentShadowRoot, ContentWebWindow, ContentWebFrame, ChromeWebElement
chrome://remote/content/marionette/evaluate.js evaluate, sandbox, Sandboxes
chrome://remote/content/marionette/event.js event
chrome://remote/content/marionette/interaction.js interaction
chrome://remote/content/marionette/l10n.js l10n
chrome://remote/content/marionette/legacyaction.js legacyaction, action
chrome://remote/content/marionette/message.js Message, Command, Response
chrome://remote/content/marionette/modal.js modal
chrome://remote/content/marionette/navigate.js navigate
chrome://remote/content/marionette/permissions.js permissions
chrome://remote/content/marionette/prefs.js MarionettePrefs, Branch, EnvironmentPrefs
chrome://remote/content/marionette/reftest.js reftest
chrome://remote/content/marionette/server.js TCPListener, TCPConnection
chrome://remote/content/marionette/stream-utils.js StreamUtils
chrome://remote/content/marionette/sync.js DebounceCallback
chrome://remote/content/shared/PDF.jsm print
chrome://remote/content/shared/messagehandler/Errors.jsm error
chrome://remote/content/shared/webdriver/Assert.jsm assert
chrome://remote/content/shared/webdriver/Capabilities.jsm Capabilities, PageLoadStrategy, Proxy, Timeouts, UnhandledPromptBehavior
chrome://remote/content/shared/webdriver/Errors.jsm error
chrome://remote/content/shared/webdriver/KeyData.jsm keyData
resource:///modules/BrowserWindowTracker.jsm BrowserWindowTracker
resource:///modules/ESEDBReader.jsm ESE, KERNEL, gLibs
resource:///modules/EveryWindow.jsm EveryWindow
resource:///modules/LoginBreaches.jsm LoginBreaches
resource:///modules/OpenInTabsUtils.jsm OpenInTabsUtils
resource:///modules/PingCentre.jsm PingCentreConstants, PingCentre
resource:///modules/policies/BookmarksPolicies.jsm BookmarksPolicies
resource://activity-stream/common/Actions.jsm MAIN_MESSAGE_TYPE, CONTENT_MESSAGE_TYPE, PRELOAD_MESSAGE_TYPE, UI_CODE, BACKGROUND_PROCESS, actionCreators, actionUtils, globalImportContext, actionTypes
resource://activity-stream/common/Dedupe.jsm Dedupe
resource://activity-stream/common/Reducers.jsm reducers, INITIAL_STATE, TOP_SITES_DEFAULT_ROWS, TOP_SITES_MAX_SITES_PER_ROW
resource://activity-stream/lib/ASRouter.jsm ASRouter, MessageLoaderUtils, _ASRouter
resource://activity-stream/lib/ASRouterPreferences.jsm ASRouterPreferences, _ASRouterPreferences, TEST_PROVIDERS, TARGETING_PREFERENCES
resource://activity-stream/lib/ASRouterTargeting.jsm ASRouterTargeting, getSortedMessages, QueryCache, CachedTargetingGetter
resource://activity-stream/lib/ASRouterTriggerListeners.jsm ASRouterTriggerListeners
resource://activity-stream/lib/AboutPreferences.jsm AboutPreferences, PREFERENCES_LOADED_EVENT
resource://activity-stream/lib/ActivityStream.jsm ActivityStream
resource://activity-stream/lib/ActivityStreamMessageChannel.jsm ActivityStreamMessageChannel, DEFAULT_OPTIONS
resource://activity-stream/lib/ActivityStreamPrefs.jsm Prefs, DefaultPrefs
resource://activity-stream/lib/ActivityStreamStorage.jsm ActivityStreamStorage
resource://activity-stream/lib/CFRMessageProvider.jsm CFRMessageProvider
resource://activity-stream/lib/CFRPageActions.jsm PageAction, CFRPageActions
resource://activity-stream/lib/DefaultSites.jsm DEFAULT_SITES
resource://activity-stream/lib/DiscoveryStreamFeed.jsm DiscoveryStreamFeed
resource://activity-stream/lib/DownloadsManager.jsm DownloadsManager
resource://activity-stream/lib/FaviconFeed.jsm FaviconFeed
resource://activity-stream/lib/HighlightsFeed.jsm HighlightsFeed
resource://activity-stream/lib/InfoBar.jsm InfoBar
resource://activity-stream/lib/LinksCache.jsm LinksCache
resource://activity-stream/lib/MomentsPageHub.jsm MomentsPageHub, _MomentsPageHub
resource://activity-stream/lib/NewTabInit.jsm NewTabInit
resource://activity-stream/lib/OnboardingMessageProvider.jsm OnboardingMessageProvider
resource://activity-stream/lib/PanelTestProvider.jsm PanelTestProvider
resource://activity-stream/lib/PersistentCache.jsm PersistentCache
resource://activity-stream/lib/PersonalityProvider/PersonalityProvider.jsm PersonalityProvider
resource://activity-stream/lib/PlacesFeed.jsm PlacesFeed
resource://activity-stream/lib/PrefsFeed.jsm PrefsFeed
resource://activity-stream/lib/RecommendationProvider.jsm RecommendationProvider
resource://activity-stream/lib/RemoteL10n.jsm RemoteL10n
resource://activity-stream/lib/Screenshots.jsm Screenshots
resource://activity-stream/lib/SearchShortcuts.jsm CUSTOM_SEARCH_SHORTCUTS, SEARCH_SHORTCUTS_EXPERIMENT, SEARCH_SHORTCUTS_SEARCH_ENGINES_PREF, SEARCH_SHORTCUTS_HAVE_PINNED_PREF, SEARCH_SHORTCUTS, getSearchProvider, getSearchFormURL, checkHasSearchEngine
resource://activity-stream/lib/SectionsManager.jsm SectionsFeed, SectionsManager
resource://activity-stream/lib/SnippetsTestMessageProvider.jsm SnippetsTestMessageProvider
resource://activity-stream/lib/Spotlight.jsm Spotlight
resource://activity-stream/lib/Store.jsm Store
resource://activity-stream/lib/SystemTickFeed.jsm SystemTickFeed, SYSTEM_TICK_INTERVAL
resource://activity-stream/lib/TelemetryFeed.jsm TelemetryFeed
resource://activity-stream/lib/TippyTopProvider.jsm TippyTopProvider
resource://activity-stream/lib/ToolbarBadgeHub.jsm ToolbarBadgeHub, _ToolbarBadgeHub
resource://activity-stream/lib/ToolbarPanelHub.jsm ToolbarPanelHub, _ToolbarPanelHub
resource://activity-stream/lib/TopSitesFeed.jsm TopSitesFeed, DEFAULT_TOP_SITES
resource://activity-stream/lib/TopStoriesFeed.jsm TopStoriesFeed, STORIES_UPDATE_TIME, TOPICS_UPDATE_TIME, SECTION_ID, SPOC_IMPRESSION_TRACKING_PREF, REC_IMPRESSION_TRACKING_PREF, DEFAULT_RECS_EXPIRE_TIME
resource://activity-stream/lib/UTEventReporting.jsm UTEventReporting
resource://autofill/CreditCardRuleset.jsm creditCardRulesets
resource://autofill/FormAutofillHeuristics.jsm FormAutofillHeuristics
resource://autofill/FormAutofillStorage.jsm formAutofillStorage
resource://autofill/FormAutofillTelemetryUtils.jsm CreditCardTelemetry
resource://autofill/FormAutofillUtils.jsm FormAutofillUtils
resource://gre/modules/Corroborate.jsm Corroborate
resource://gre/modules/ExtensionPreferencesManager.jsm ExtensionPreferencesManager
resource://gre/modules/ExtensionStorageIDB.jsm ExtensionStorageIDB
resource://gre/modules/ExtensionStorageSyncKinto.jsm CryptoCollection, ExtensionStorageSync, EncryptionRemoteTransformer, KeyRingEncryptionRemoteTransformer, CollectionKeyEncryptionRemoteTransformer
resource://gre/modules/FormHistory.jsm FormHistory
resource://gre/modules/FxAccounts.jsm AccountState
resource://gre/modules/FxAccountsPairing.jsm FxAccountsPairingFlow
resource://gre/modules/FxAccountsWebChannel.jsm FxAccountsWebChannel, FxAccountsWebChannelHelpers
resource://gre/modules/InsecurePasswordUtils.jsm InsecurePasswordUtils
resource://gre/modules/LoginFormFactory.jsm LoginFormFactory
resource://gre/modules/LoginHelper.jsm LoginHelper
resource://gre/modules/LoginManagerChild.jsm LoginManagerChild
resource://gre/modules/LoginManagerContextMenu.jsm LoginManagerContextMenu
resource://gre/modules/LoginRecipes.jsm LoginRecipesContent
resource://gre/modules/NewPasswordModel.jsm NewPasswordModel
resource://gre/modules/PasswordGenerator.jsm PasswordGenerator
resource://gre/modules/PictureInPictureControls.jsm KEYBOARD_CONTROLS, TOGGLE_POLICIES, TOGGLE_POLICY_STRINGS
resource://gre/modules/Schemas.jsm Schemas
resource://gre/modules/ServiceWorkerCleanUp.jsm ServiceWorkerCleanUp
resource://gre/modules/SyncedBookmarksMirror.jsm SyncedBookmarksMirror
resource://gre/modules/UrlClassifierExceptionListService.jsm UrlClassifierExceptionListService
resource://gre/modules/UrlClassifierLib.jsm HTTP_FOUND, HTTP_SEE_OTHER, HTTP_TEMPORARY_REDIRECT
resource://gre/modules/addons/XPIDatabase.jsm XPIDatabase, XPIDatabaseReconcile
resource://gre/modules/handlers/HandlerList.jsm kHandlerListVersion, kHandlerList
resource://gre/modules/reflect.jsm Reflect
resource://services-common/kinto-storage-adapter.js FirefoxAdapter
resource://services-common/uptake-telemetry.js UptakeTelemetry
resource://services-sync/SyncDisconnect.jsm SyncDisconnectInternal, SyncDisconnect
resource://services-sync/engines/prefs.js isAllowedPrefName

bug 1768060 patch adds support for lexical variables in Cu.import return value, so, if we can go with it, converting var or this.foo = ... with lexical won't break not-in-tree code

Now that bug 1768060 is fixed, we can use lexical variable from Cu.import return value, and this.foo = foo pattern can be removed.
Also all other this.foo = ... pattern can be replaced with any kind of declaration, including let, const, and class.

Depends on: 1768060
Attachment #9272982 - Attachment description: WIP: Bug 1610653 - Part 1: Do not use global this property assignment to define global variable in browser/components. → Bug 1610653 - Part 1: Do not use global this property assignment to define global variable in browser/components. r?mossop!
Attachment #9272983 - Attachment description: WIP: Bug 1610653 - Part 2: Do not use global this property assignment to define global variable in browser/components/newtab. → Bug 1610653 - Part 2: Do not use global this property assignment to define global variable in browser/components/newtab. r?Mardak!
Attachment #9272984 - Attachment description: WIP: Bug 1610653 - Part 3: Do not use global this property assignment to define global variable in browser/modules. → Bug 1610653 - Part 3: Do not use global this property assignment to define global variable in browser/modules. r?Gijs!
Attachment #9272985 - Attachment description: WIP: Bug 1610653 - Part 4: Do not use global this property assignment to define global variable in netwerk/. → Bug 1610653 - Part 4: Do not use global this property assignment to define global variable in netwerk/. r?mccr8!
Attachment #9272986 - Attachment description: WIP: Bug 1610653 - Part 5: Do not use global this property assignment to define global variable in remote/marionette. → Bug 1610653 - Part 5: Do not use global this property assignment to define global variable in remote/marionette. r?#webdriver-reviewers!
Attachment #9272987 - Attachment description: WIP: Bug 1610653 - Part 6: Do not use global this property assignment to define global variable in remote/shared. → Bug 1610653 - Part 6: Do not use global this property assignment to define global variable in remote/shared. r?#webdriver-reviewers!
Attachment #9272988 - Attachment description: WIP: Bug 1610653 - Part 7: Do not use global this property assignment to define global variable in services/fxaccounts. → Bug 1610653 - Part 7: Do not use global this property assignment to define global variable in services/fxaccounts. r?markh!
Attachment #9272989 - Attachment description: WIP: Bug 1610653 - Part 8: Do not use global this property assignment to define global variable in services/sync. → Bug 1610653 - Part 8: Do not use global this property assignment to define global variable in services/sync. r?Gijs!
Attachment #9272990 - Attachment description: WIP: Bug 1610653 - Part 9: Do not use global this property assignment to define global variable in testing/modules. → Bug 1610653 - Part 9: Do not use global this property assignment to define global variable in testing/modules. r?mossop!
Attachment #9272991 - Attachment description: WIP: Bug 1610653 - Part 10: Do not use global this property assignment to define global variable in toolkit/components. → Bug 1610653 - Part 10: Do not use global this property assignment to define global variable in toolkit/components. r?Standard8!
Attachment #9272992 - Attachment description: WIP: Bug 1610653 - Part 11: Do not use global this property assignment to define global variable in toolkit/. → Bug 1610653 - Part 11: Do not use global this property assignment to define global variable in toolkit/. r?Standard8!
Attachment #9272993 - Attachment description: WIP: Bug 1610653 - Part 12: Do not use global this property assignment to define global variable in uriloader/. → Bug 1610653 - Part 12: Do not use global this property assignment to define global variable in uriloader/. r?Standard8!
Attachment #9272994 - Attachment description: WIP: Bug 1610653 - Part 13: Do not store lexical variable also to global this property in browser/components/newtab. → Bug 1610653 - Part 13: Do not store lexical variable also to global this property in browser/components/newtab. r?Mardak!
Attachment #9272995 - Attachment description: WIP: Bug 1610653 - Part 14: Do not store lexical variable also to global this property in browser/modules. → Bug 1610653 - Part 14: Do not store lexical variable also to global this property in browser/modules. r?Gijs!
Attachment #9272996 - Attachment description: WIP: Bug 1610653 - Part 15: Do not store lexical variable also to global this property in remote/cdp. → Bug 1610653 - Part 15: Do not store lexical variable also to global this property in remote/cdp. r?#webdriver-reviewers!
Attachment #9272997 - Attachment description: WIP: Bug 1610653 - Part 16: Do not store lexical variable also to global this property in remote/marionette. → Bug 1610653 - Part 16: Do not store lexical variable also to global this property in remote/marionette. r?#webdriver-reviewers!
Attachment #9272998 - Attachment description: WIP: Bug 1610653 - Part 17: Do not store lexical variable also to global this property in remote/shared/webdriver. → Bug 1610653 - Part 17: Do not store lexical variable also to global this property in remote/shared/webdriver. r?#webdriver-reviewers!
Attachment #9272999 - Attachment description: WIP: Bug 1610653 - Part 18: Do not store lexical variable also to global this property in services/common. → Bug 1610653 - Part 18: Do not store lexical variable also to global this property in services/common. r?mossop!
Attachment #9273000 - Attachment description: WIP: Bug 1610653 - Part 19: Do not store lexical variable also to global this property in toolkit/components. → Bug 1610653 - Part 19: Do not store lexical variable also to global this property in toolkit/components. r?Standard8!
Attachment #9273001 - Attachment description: WIP: Bug 1610653 - Part 20: Do not store lexical variable also to global this property in toolkit/components/extensions/ExtensionStorageSyncKinto.jsm. → Bug 1610653 - Part 20: Do not store lexical variable also to global this property in toolkit/components/extensions/ExtensionStorageSyncKinto.jsm. r?mixedpuppy!
Attachment #9273002 - Attachment description: WIP: Bug 1610653 - Part 21: Remove unnecessary global this property from BackgroundPageThumbs.jsm. → Bug 1610653 - Part 21: Remove unnecessary global this property from BackgroundPageThumbs.jsm. r?markh!
Attachment #9273003 - Attachment description: WIP: Bug 1610653 - Part 22: Remove unnecessary global this from MessageChannel.jsm. → Bug 1610653 - Part 22: Remove unnecessary global this from MessageChannel.jsm. r?mixedpuppy!

How do you find all the cases? Just looking, or do you have some linting rules to help?

bug 1607331 has a patch that checks all global this occurrences.

(In reply to Tooru Fujisawa [:arai] from comment #34)

bug 1607331 has a patch that checks all global this occurrences.

This bug is for mozilla/no-lexical-to-global and mozilla/no-this-property-assign rules.

See Also: → 1769906
Pushed by arai_a@mac.com:
https://hg.mozilla.org/integration/autoland/rev/3e33a7869c38
Part 1: Do not use global this property assignment to define global variable in browser/components. r=mossop
https://hg.mozilla.org/integration/autoland/rev/55a37af2715c
Part 2: Do not use global this property assignment to define global variable in browser/components/newtab. r=Mardak
https://hg.mozilla.org/integration/autoland/rev/117f88bb3fe2
Part 3: Do not use global this property assignment to define global variable in browser/modules. r=Gijs
https://hg.mozilla.org/integration/autoland/rev/993c2365e718
Part 4: Do not use global this property assignment to define global variable in netwerk/. r=mccr8
https://hg.mozilla.org/integration/autoland/rev/448c19f0852f
Part 5: Do not use global this property assignment to define global variable in remote/marionette. r=webdriver-reviewers,whimboo
https://hg.mozilla.org/integration/autoland/rev/21f780633529
Part 6: Do not use global this property assignment to define global variable in remote/shared. r=webdriver-reviewers,whimboo
https://hg.mozilla.org/integration/autoland/rev/b85cdf82e653
Part 7: Do not use global this property assignment to define global variable in services/fxaccounts. r=markh
https://hg.mozilla.org/integration/autoland/rev/fbc1b0f8822f
Part 8: Do not use global this property assignment to define global variable in services/sync. r=Gijs
https://hg.mozilla.org/integration/autoland/rev/4b8af697e8f1
Part 9: Do not use global this property assignment to define global variable in testing/modules. r=mossop
https://hg.mozilla.org/integration/autoland/rev/2cbdaa8212d6
Part 10: Do not use global this property assignment to define global variable in toolkit/components. r=Standard8,pip-reviewers,mhowell
https://hg.mozilla.org/integration/autoland/rev/37595d52b3b6
Part 11: Do not use global this property assignment to define global variable in toolkit/. r=Standard8,extension-reviewers,robwu
https://hg.mozilla.org/integration/autoland/rev/9a629a288cbe
Part 12: Do not use global this property assignment to define global variable in uriloader/. r=Standard8
https://hg.mozilla.org/integration/autoland/rev/17e7fa877bf9
Part 13: Do not store lexical variable also to global this property in browser/components/newtab. r=Mardak
https://hg.mozilla.org/integration/autoland/rev/5440a6b811a1
Part 14: Do not store lexical variable also to global this property in browser/modules. r=Gijs
https://hg.mozilla.org/integration/autoland/rev/37c0be10fc9a
Part 15: Do not store lexical variable also to global this property in remote/cdp. r=webdriver-reviewers,whimboo
https://hg.mozilla.org/integration/autoland/rev/e7f336d03dc1
Part 16: Do not store lexical variable also to global this property in remote/marionette. r=webdriver-reviewers,whimboo
https://hg.mozilla.org/integration/autoland/rev/98d3d796d1ce
Part 17: Do not store lexical variable also to global this property in remote/shared/webdriver. r=webdriver-reviewers,whimboo
https://hg.mozilla.org/integration/autoland/rev/5f9e6effc07b
Part 18: Do not store lexical variable also to global this property in services/common. r=mossop
https://hg.mozilla.org/integration/autoland/rev/e53750149153
Part 19: Do not store lexical variable also to global this property in toolkit/components. r=Standard8
https://hg.mozilla.org/integration/autoland/rev/0aa523e6056c
Part 20: Do not store lexical variable also to global this property in toolkit/components/extensions/ExtensionStorageSyncKinto.jsm. r=robwu
https://hg.mozilla.org/integration/autoland/rev/18d0f182dae9
Part 21: Remove unnecessary global this property from BackgroundPageThumbs.jsm. r=markh
https://hg.mozilla.org/integration/autoland/rev/de0343d8cb76
Part 22: Remove unnecessary global this from MessageChannel.jsm. r=robwu
https://hg.mozilla.org/integration/autoland/rev/5b7440a3cba0
Part 23: Stop using global this to define variable in devtools/. r=canaltinova
Pushed by csabou@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/bf6da7ec431f
Part 24: Update activity-stream.bundle.js. r=barret
Status: ASSIGNED → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 103 Branch
You need to log in before you can comment on or make changes to this bug.