Home / File/ messageHandlers.js — react Source File

messageHandlers.js — react Source File

Architecture documentation for messageHandlers.js, a javascript file in the react codebase. 6 imports, 1 dependents.

File javascript BabelCompiler Validation 6 imports 1 dependents 4 functions

Entity Profile

Dependency Diagram

graph LR
  eda1c637_7f7a_9fee_baa9_c174b535138c["messageHandlers.js"]
  cd146827_202a_fba8_b239_a991594bc85b["setExtensionIconAndPopup.js"]
  eda1c637_7f7a_9fee_baa9_c174b535138c --> cd146827_202a_fba8_b239_a991594bc85b
  368ac68f_212b_9479_f106_0b8ecb79f676["setExtensionIconAndPopup"]
  eda1c637_7f7a_9fee_baa9_c174b535138c --> 368ac68f_212b_9479_f106_0b8ecb79f676
  79ae402c_ad7a_18c8_aee3_8ab0a4bcaf3e["executeScript.js"]
  eda1c637_7f7a_9fee_baa9_c174b535138c --> 79ae402c_ad7a_18c8_aee3_8ab0a4bcaf3e
  fac85306_0344_026b_6c66_d73fb4312f91["executeScriptInMainWorld"]
  eda1c637_7f7a_9fee_baa9_c174b535138c --> fac85306_0344_026b_6c66_d73fb4312f91
  74bd19f4_2af1_7f72_caea_df13aa3e4693["utils.js"]
  eda1c637_7f7a_9fee_baa9_c174b535138c --> 74bd19f4_2af1_7f72_caea_df13aa3e4693
  55d27179_f566_db64_927b_e95655abee00["constants"]
  eda1c637_7f7a_9fee_baa9_c174b535138c --> 55d27179_f566_db64_927b_e95655abee00
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21["index.js"]
  406e0fbd_f3e8_fc3b_d05b_4922f1996e21 --> eda1c637_7f7a_9fee_baa9_c174b535138c
  style eda1c637_7f7a_9fee_baa9_c174b535138c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/* global chrome */

import {__DEBUG__} from 'react-devtools-shared/src/constants';
import setExtensionIconAndPopup from './setExtensionIconAndPopup';
import {executeScriptInMainWorld} from './executeScript';

import {EXTENSION_CONTAINED_VERSIONS} from '../utils';

export function handleReactDevToolsHookMessage(message, sender) {
  const {payload} = message;

  switch (payload?.type) {
    case 'react-renderer-attached': {
      setExtensionIconAndPopup(payload.reactBuildType, sender.tab.id);

      break;
    }
  }
}

export function handleBackendManagerMessage(message, sender) {
  const {payload} = message;

  switch (payload?.type) {
    case 'require-backends': {
      payload.versions.forEach(version => {
        if (EXTENSION_CONTAINED_VERSIONS.includes(version)) {
          executeScriptInMainWorld({
            injectImmediately: true,
            target: {tabId: sender.tab.id},
            files: [`/build/react_devtools_backend_${version}.js`],
          });
        }
      });

      break;
    }
  }
}

export function handleDevToolsPageMessage(message) {
  const {payload} = message;

  switch (payload?.type) {
    // Proxy this message from DevTools page to content script via chrome.tabs.sendMessage
    case 'fetch-file-with-cache': {
      const {
        payload: {tabId, url},
      } = message;

      if (!tabId || !url) {
        // Send a response straight away to get the Promise fulfilled.
        chrome.runtime.sendMessage({
          source: 'react-devtools-background',
          payload: {
            type: 'fetch-file-with-cache-error',
            url,
            value: null,
          },
        });
// ... (112 more lines)

Domain

Subdomains

Frequently Asked Questions

What does messageHandlers.js do?
messageHandlers.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Validation subdomain.
What functions are defined in messageHandlers.js?
messageHandlers.js defines 4 function(s): handleBackendManagerMessage, handleDevToolsPageMessage, handleFetchResourceContentScriptMessage, handleReactDevToolsHookMessage.
What does messageHandlers.js depend on?
messageHandlers.js imports 6 module(s): constants, executeScript.js, executeScriptInMainWorld, setExtensionIconAndPopup, setExtensionIconAndPopup.js, utils.js.
What files import messageHandlers.js?
messageHandlers.js is imported by 1 file(s): index.js.
Where is messageHandlers.js in the architecture?
messageHandlers.js is located at packages/react-devtools-extensions/src/background/messageHandlers.js (domain: BabelCompiler, subdomain: Validation, directory: packages/react-devtools-extensions/src/background).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free