Skip to main content
Inspiring
September 18, 2023
Question

Working CEP Extension in two applications, but double appearance in menu

  • September 18, 2023
  • 1 reply
  • 724 views

Dear forum, I build an extension with 2 panels: one for AEFT and one for ILST. It works perfect: both applications communicate and the task is done.  Except that after installation, both panels appear in the Extensions menu of AEFT and ILST. 

 

So in After Effects i see in the Extensions menu:

- Example Panel 1

- Example Panel 2

They both open and work as Example Panel 1 (the one meant for AEFT)

 

Same in Illustrator:

- Example Panel 1

- Example Panel 2

They both open and work as Example Panel 2 (the one meant for ILST)

 

My deepest desire is to just see:

After Effects

- Example Panel 1

 

Illustrator:

- Example Panel 2

 

I assumed a mistake in the manifest, but it's almost a perfect copy of the example here

https://github.com/Adobe-CEP/CEP-Resources/blob/master/CEP_11.x/Samples/CEP_HTML_Test_Extension-10.0/CSXS/manifest.xml

but I might not see well after all this time.

 

Also, I found this post,

https://community.adobe.com/t5/premiere-pro-discussions/how-to-separate-2-feature-extensions-in-a-single-zxp-file-one-for-premiere-pro-and-one-for-audition/m-p/12950671

but I am not sure if the solution is somewhere else then the manifest, because except for the double appearance it technically works like a charm.

 

Now I'm not sure if I understand the concept correctly or if I'm overlooking something obvious. The panels both open the main vue page, there i route them to the specific app page. Again, both panels work perfect, they do communicate with eachother and with their AEFT/host.jsx and ILST/host.jsx.

 

If anyone has an idea where I go wrong, please point me in the right direction!

I will paste my manifest here:

 

<?xml version='1.0' encoding='UTF-8'?>
<ExtensionManifest ExtensionBundleId="com.example.panel" ExtensionBundleVersion="1.0.0" ExtensionBundleName="examplepanel" Version="8.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ExtensionList>
    <Extension Id="com.example.panel.aeft" Version="1.0.0" />
    <Extension Id="com.example.panel.ilst" Version="1.0.0" />

  </ExtensionList>
  <ExecutionEnvironment>
    <HostList>
              <Host Name="ILST" Version="[23,99.9]" />
              <Host Name="AEFT" Version="[16,99.9]" />
      </HostList>
    <LocaleList>
      <Locale Code="All" />
    </LocaleList>
    <RequiredRuntimeList>
      <RequiredRuntime Name="CSXS" Version="8.0" />
    </RequiredRuntimeList>
  </ExecutionEnvironment>
  <DispatchInfoList>
    <Extension Id="com.example.panel.aeft">
      <DispatchInfo>
        <Resources>
          <!-- <MainPath>./public/index-dev.html</MainPath> -->
          <MainPath>./dist/index.html</MainPath>
           <ScriptPath>./src/host/AEFT/host.jsx</ScriptPath>
          <CEFCommandLine>
            <Parameter>--disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure,NetworkService</Parameter>
            <Parameter>--disable-site-isolation-trials</Parameter>          
            <Parameter>--enable-nodejs</Parameter>
            <Parameter>--mixed-context</Parameter>
          </CEFCommandLine>
        </Resources>
        <Lifecycle>
          <AutoVisible>true</AutoVisible>
        </Lifecycle>
        <UI>
          <Type>Panel</Type>
          <Menu>Example Panel 1</Menu>
          <Geometry>
            <Size>
              <Height>100</Height>
              <Width>100</Width>
            </Size>
            <MaxSize>
              <Height>1000</Height>
              <Width>1000</Width>
            </MaxSize>
            <MinSize>
              <Height>100</Height>
              <Width>100</Width>
            </MinSize>
          </Geometry>
          <Icons />
        </UI>
      </DispatchInfo>
    </Extension>

    <Extension Id="com.example.panel.ilst">
      <DispatchInfo>
        <Resources>
          <!-- <MainPath>./public/index-dev.html</MainPath> -->
          <MainPath>./dist/index.html</MainPath>
          <ScriptPath>./src/host/ILST/host.jsx</ScriptPath>
          <CEFCommandLine>
            <Parameter>--disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure,NetworkService</Parameter>
            <Parameter>--disable-site-isolation-trials</Parameter>          
            <Parameter>--enable-nodejs</Parameter>
            <Parameter>--mixed-context</Parameter>
          </CEFCommandLine>
        </Resources>
        <Lifecycle>
          <AutoVisible>true</AutoVisible>
        </Lifecycle>
        <UI>
          <Type>Panel</Type>
          <Menu>Example Panel 2</Menu>
          <Geometry>
            <Size>
              <Height>100</Height>
              <Width>100</Width>
            </Size>
            <MaxSize>
              <Height>1000</Height>
              <Width>1000</Width>
            </MaxSize>
            <MinSize>
              <Height>100</Height>
              <Width>100</Width>
            </MinSize>
          </Geometry>
          <Icons />
        </UI>
      </DispatchInfo>
    </Extension>

  </DispatchInfoList>
</ExtensionManifest>

 

This topic has been closed for replies.

1 reply

Inspiring
September 19, 2023

I now realise that when I earlier described only one Extension in the manifest, it showed the extension in the menu only once. I changed that because the right host.jsx did not load and I thought to solve it with these two <scriptPaths> in the manifest. I will remove one and go with the js side solution

var csInterface = new CSInterface();
csInterface.hostEnvironment.appId;
// if AEFT
// else if ILST

 

Inspiring
September 19, 2023

that makes sense, because it really is just one panel. so why describe it twice in the manifest anyway.