PPAPI-HOST NPAPI-PLUGIN 어댑터.
아시다시피 Adobe는 GNU/Linux 용 Flash Player 플러그인의 추가 개발을 중단했습니다. NPAPI 플러그인 버전 11.2로 최신 정보를 제공하면 5 년 동안 (2012 년 5 월 4 일에 출시 된 이후) 보안 업데이트가 발생하지만 추가 개발이 중단되었습니다. 다행스럽게도 Linux에서는 크롬 브라우저의 일부로 Linux에서 최신 버전을 사용할 수 있으며 Flash는 PPAPI 플러그인 형태로 번들로 제공됩니다. PPAPI 또는 Pepper Plugin API는 브라우저 플러그인을 위해 Chromium/Chrome 팀이 홍보하는 인터페이스입니다. 상상할 수있는 모든 기능 플러그인이 원할 수있는 NPAPI-INSPIRED이지만 상당히 다른 API입니다. 2 차원 그래픽, OpenGL ES, 글꼴 렌더링, 네트워크 액세스, 오디오 등. 크롬 브라우저가 플러그인에 제공하는 오늘날의 인터페이스라고 불리는 111 개의 기능 그룹이 있습니다. 사양은 아직 최종적이지 않지만 새로운 인터페이스 버전이 발생하고 있으며 일부 오래된 버전은 삭제됩니다. 변화율이 크게 느려졌습니다.
여러 가지 이유로 Firefox 개발자는 현재 Firefox에서 PPAPI를 구현하는 데 관심이 없습니다. 그러나 그것이 할 수 없다는 것을 의미하지는 않습니다.
이 프로젝트의 주요 목표는 PPAPI (Pepper) Flash Player를 Firefox에서 작동시키는 것입니다. 이것은 두 가지 방법으로 수행 할 수 있습니다. 첫 번째는 Firefox 자체에서 전체 PPAPI 인터페이스를 구현하는 것입니다. 다른 하나는 포장지를 구현하는 것입니다. 어떤 종류의 어댑터는 브라우저의 PPAPI 플러그인처럼 보이며 브라우저 용 NPAPI 플러그인처럼 보입니다.
첫 번째 접근 방식은 Firefox 내부에 대한 강력한 지식과 코드를 주류로 가져 오려는 추가 노력이 필요합니다. 패치 세트를 유지하는 것은 좋은 생각처럼 보이지 않습니다. 두 번째 접근법은 두 개의 API에만 집중할 수 있습니다. 그렇습니다. 그들 중 하나는 크지 만 여전히 파악할 수 있습니다. 두 번째 방법은 프로젝트에 사용됩니다. Firefox뿐만 아니라 다른 브라우저에도 도움이됩니다.
대부분 작동합니다. 모든 필수 API가 구현 된 것 같습니다.
여기에 설명되어 있습니다.
사용 가능한 모든 Pepper Plugin API 문서는 일반적으로 활성 샌드 박스 사용으로 인한 보안 향상에 대한 주장과 함께 제공됩니다. API 자체는 샌드 박스를 만들지 않고 샌드 박스 구현 만 허용한다는 점에 주목할 가치가 있습니다. 이 특정 구현은 샌드 박스를 구현하지 않습니다 . 즉, 악성 코드가 플러그인 보안을 통해 분리되면 추가 장벽이 없습니다. 이것은 NPAPI 플래시와 동일한 수준의 보안입니다.
프로젝트는 CMAKE (> = 2.8.8) 빌드 시스템을 사용하고 있습니다.
Debian/Ubuntu:
$ sudo apt-get install cmake gcc g++ pkg-config ragel libasound2-dev
libssl-dev libglib2.0-dev libpango1.0-dev libgl1-mesa-dev
libevent-dev libgtk2.0-dev libxrandr-dev libxrender-dev
libxcursor-dev libv4l-dev libgles2-mesa-dev libavcodec-dev
libva-dev libvdpau-dev libdrm-dev libicu-dev
Fedora:
$ sudo dnf install cmake gcc gcc-c++ pkgconfig ragel alsa-lib-devel openssl-devel
glib2-devel pango-devel mesa-libGL-devel libevent-devel gtk2-devel
libXrandr-devel libXrender-devel libXcursor-devel libv4l-devel
mesa-libGLES-devel ffmpeg-devel libva-devel libvdpau-devel libdrm-devel
pulseaudio-libs-devel libicu-devel
(선택 사항) Pulseaudio 지원을 활성화하려면 libpulse-dev 설치하십시오.
(선택 사항) Jack 지원을 활성화하려면 libjack-jackd2-dev 및 libsoxr-dev 설치하십시오
해당 폴더에서 루트 디렉토리에 build 하위 디렉토리를 작성하십시오.
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ make
libfreshwrapper-flashplayer.so 브라우저 플러그인 디렉토리 ( ~/.mozilla/plugins )에 넣거나 다음에 시스템 전체를 설치하십시오. # make install
기본적으로 make install 플러그인을 ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/mozilla/plugins 로 넣습니다. cmake 매개 변수 CMAKE_INSTALL_PREFIX 변경하거나 MOZPLUGIN_INSTALL_DIR 설정하여 경로를 변경할 수 있습니다.
브라우저로로드하면 libpepflashplayer.so 를 검색 할 수 있습니다. Chrome (안정/베타/불안정) 디렉토리 및 /usr/lib/pepperflashplugin-nonfree/ (Pepperflashplugin-Nonfree가 그것을 넣음). 실행하기에 충분해야하지만 그렇지 않은 경우 ~/.config/freshwrapper.conf 의 전체 경로를 지정하십시오. /data 에서 샘플 구성 파일을 찾을 수 있습니다. libpepflashplayer.so 와 함께 manifest.json 갖는 것이 좋습니다. 따라서 실제 플래시 버전은 해당 매니페스트에서 가져옵니다.
하드웨어로 인한 비디오 디코딩 코드에는 비교적 새로운 버전의 libavcodec (2013 년 1 월, 버전 54.39.0)이 필요합니다. 아직 없으면 hwdec을 WITH_HWDEC=0 으로 비활성화하지 않으면 코드가 컴파일되지 않습니다. 그렇게하려면 구성 단계 명령을 다음과 같이 변경하십시오.
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_HWDEC=0 ..
구축하더라도 하드웨어 가속화 된 비디오 디코딩은 여전히 기본적으로 비활성화되어 있습니다. 구성 파일에서 명시 적으로 활성화해야합니다.
OpenGL | es 2의 시스템 구현을 사용하는 것이 좋습니다. 구성 시간에 WITH_GLES2=0 에 cmake 명령 줄을 추가하여 각도 GLES2 에뮬레이션을 활용할 수 있습니다 ( -DWITH_GLES2=0 정확히). C ++ 11 캡슐화 컴파일러가 필요합니다.
MIT 라이센스. 전체 텍스트는 LICENSE 파일을 참조하십시오.
Directory 3rdparty/ 다른 라이센스 약관에 따라 배포 될 수있는 타사의 소스 코드를 포함합니다. 자세한 내용은 소스 코드를 참조하십시오.