added extra/firefox

This commit is contained in:
Kevin Mihelich 2015-03-21 02:42:52 +00:00
parent 331e49b4bb
commit b3bc8450fe
9 changed files with 701 additions and 0 deletions

View file

@ -0,0 +1,375 @@
# HG changeset patch
# User Mike Hommey <mh@glandium.org>
# Date 1425858139 -32400
# Node ID 48e130d698364f246d9ab870044617fbf9e21f20
# Parent 08d7c1951e618f91863d34bddfdffe880bf78bf6
Bug 1136958 - Reintroduce pixman code path removed in bug 1097776 for --disable-skia builds. r=jmuizelaar, a=sledru
diff --git a/gfx/layers/basic/BasicCompositor.cpp b/gfx/layers/basic/BasicCompositor.cpp
--- a/gfx/layers/basic/BasicCompositor.cpp
+++ b/gfx/layers/basic/BasicCompositor.cpp
@@ -12,18 +12,23 @@
#include "gfx2DGlue.h"
#include "mozilla/gfx/2D.h"
#include "mozilla/gfx/Helpers.h"
#include "gfxUtils.h"
#include "YCbCrUtils.h"
#include <algorithm>
#include "ImageContainer.h"
#include "gfxPrefs.h"
+#ifdef MOZ_ENABLE_SKIA
#include "skia/SkCanvas.h" // for SkCanvas
#include "skia/SkBitmapDevice.h" // for SkBitmapDevice
+#else
+#define PIXMAN_DONT_DEFINE_STDINT
+#include "pixman.h" // for pixman_f_transform, etc
+#endif
namespace mozilla {
using namespace mozilla::gfx;
namespace layers {
class DataTextureSourceBasic : public DataTextureSource
, public TextureSourceBasic
@@ -172,16 +177,17 @@ DrawSurfaceWithTextureCoords(DrawTarget
// Only use REPEAT if aTextureCoords is outside (0, 0, 1, 1).
gfx::Rect unitRect(0, 0, 1, 1);
ExtendMode mode = unitRect.Contains(aTextureCoords) ? ExtendMode::CLAMP : ExtendMode::REPEAT;
FillRectWithMask(aDest, aDestRect, aSource, aFilter, DrawOptions(aOpacity),
mode, aMask, aMaskTransform, &matrix);
}
+#ifdef MOZ_ENABLE_SKIA
static SkMatrix
Matrix3DToSkia(const gfx3DMatrix& aMatrix)
{
SkMatrix transform;
transform.setAll(aMatrix._11,
aMatrix._21,
aMatrix._41,
aMatrix._12,
@@ -190,20 +196,20 @@ Matrix3DToSkia(const gfx3DMatrix& aMatri
aMatrix._14,
aMatrix._24,
aMatrix._44);
return transform;
}
static void
-SkiaTransform(DataSourceSurface* aDest,
- DataSourceSurface* aSource,
- const gfx3DMatrix& aTransform,
- const Point& aDestOffset)
+Transform(DataSourceSurface* aDest,
+ DataSourceSurface* aSource,
+ const gfx3DMatrix& aTransform,
+ const Point& aDestOffset)
{
if (aTransform.IsSingular()) {
return;
}
IntSize destSize = aDest->GetSize();
SkImageInfo destInfo = SkImageInfo::Make(destSize.width,
destSize.height,
@@ -229,16 +235,88 @@ SkiaTransform(DataSourceSurface* aDest,
SkPaint paint;
paint.setXfermodeMode(SkXfermode::kSrc_Mode);
paint.setAntiAlias(true);
paint.setFilterLevel(SkPaint::kLow_FilterLevel);
SkRect destRect = SkRect::MakeXYWH(0, 0, srcSize.width, srcSize.height);
destCanvas.drawBitmapRectToRect(src, nullptr, destRect, &paint);
}
+#else
+static pixman_transform
+Matrix3DToPixman(const gfx3DMatrix& aMatrix)
+{
+ pixman_f_transform transform;
+
+ transform.m[0][0] = aMatrix._11;
+ transform.m[0][1] = aMatrix._21;
+ transform.m[0][2] = aMatrix._41;
+ transform.m[1][0] = aMatrix._12;
+ transform.m[1][1] = aMatrix._22;
+ transform.m[1][2] = aMatrix._42;
+ transform.m[2][0] = aMatrix._14;
+ transform.m[2][1] = aMatrix._24;
+ transform.m[2][2] = aMatrix._44;
+
+ pixman_transform result;
+ pixman_transform_from_pixman_f_transform(&result, &transform);
+
+ return result;
+}
+
+static void
+Transform(DataSourceSurface* aDest,
+ DataSourceSurface* aSource,
+ const gfx3DMatrix& aTransform,
+ const Point& aDestOffset)
+{
+ IntSize destSize = aDest->GetSize();
+ pixman_image_t* dest = pixman_image_create_bits(PIXMAN_a8r8g8b8,
+ destSize.width,
+ destSize.height,
+ (uint32_t*)aDest->GetData(),
+ aDest->Stride());
+
+ IntSize srcSize = aSource->GetSize();
+ pixman_image_t* src = pixman_image_create_bits(PIXMAN_a8r8g8b8,
+ srcSize.width,
+ srcSize.height,
+ (uint32_t*)aSource->GetData(),
+ aSource->Stride());
+
+ NS_ABORT_IF_FALSE(src && dest, "Failed to create pixman images?");
+
+ pixman_transform pixTransform = Matrix3DToPixman(aTransform);
+ pixman_transform pixTransformInverted;
+
+ // If the transform is singular then nothing would be drawn anyway, return here
+ if (!pixman_transform_invert(&pixTransformInverted, &pixTransform)) {
+ pixman_image_unref(dest);
+ pixman_image_unref(src);
+ return;
+ }
+ pixman_image_set_transform(src, &pixTransformInverted);
+
+ pixman_image_composite32(PIXMAN_OP_SRC,
+ src,
+ nullptr,
+ dest,
+ aDestOffset.x,
+ aDestOffset.y,
+ 0,
+ 0,
+ 0,
+ 0,
+ destSize.width,
+ destSize.height);
+
+ pixman_image_unref(dest);
+ pixman_image_unref(src);
+}
+#endif
static inline IntRect
RoundOut(Rect r)
{
r.RoundOut();
return IntRect(r.x, r.y, r.width, r.height);
}
@@ -368,22 +446,26 @@ BasicCompositor::DrawQuad(const gfx::Rec
}
if (!aTransform.Is2D()) {
dest->Flush();
RefPtr<SourceSurface> snapshot = dest->Snapshot();
RefPtr<DataSourceSurface> source = snapshot->GetDataSurface();
RefPtr<DataSourceSurface> temp =
- Factory::CreateDataSourceSurface(RoundOut(transformBounds).Size(), SurfaceFormat::B8G8R8A8, true);
+ Factory::CreateDataSourceSurface(RoundOut(transformBounds).Size(), SurfaceFormat::B8G8R8A8
+#ifdef MOZ_ENABLE_SKIA
+ , true
+#endif
+ );
if (NS_WARN_IF(!temp)) {
return;
}
- SkiaTransform(temp, source, new3DTransform, transformBounds.TopLeft());
+ Transform(temp, source, new3DTransform, transformBounds.TopLeft());
transformBounds.MoveTo(0, 0);
buffer->DrawSurface(temp, transformBounds, transformBounds);
}
buffer->PopClip();
}
diff --git a/gfx/layers/basic/BasicLayerManager.cpp b/gfx/layers/basic/BasicLayerManager.cpp
--- a/gfx/layers/basic/BasicLayerManager.cpp
+++ b/gfx/layers/basic/BasicLayerManager.cpp
@@ -41,18 +41,23 @@
#include "nsAutoPtr.h" // for nsRefPtr
#include "nsCOMPtr.h" // for already_AddRefed
#include "nsDebug.h" // for NS_ASSERTION, etc
#include "nsISupportsImpl.h" // for gfxContext::Release, etc
#include "nsPoint.h" // for nsIntPoint
#include "nsRect.h" // for nsIntRect
#include "nsRegion.h" // for nsIntRegion, etc
#include "nsTArray.h" // for nsAutoTArray
+#ifdef MOZ_ENABLE_SKIA
#include "skia/SkCanvas.h" // for SkCanvas
#include "skia/SkBitmapDevice.h" // for SkBitmapDevice
+#else
+#define PIXMAN_DONT_DEFINE_STDINT
+#include "pixman.h" // for pixman_f_transform, etc
+#endif
class nsIWidget;
namespace mozilla {
namespace layers {
using namespace mozilla::gfx;
/**
@@ -601,16 +606,17 @@ void
BasicLayerManager::SetRoot(Layer* aLayer)
{
NS_ASSERTION(aLayer, "Root can't be null");
NS_ASSERTION(aLayer->Manager() == this, "Wrong manager");
NS_ASSERTION(InConstruction(), "Only allowed in construction phase");
mRoot = aLayer;
}
+#ifdef MOZ_ENABLE_SKIA
static SkMatrix
BasicLayerManager_Matrix3DToSkia(const gfx3DMatrix& aMatrix)
{
SkMatrix transform;
transform.setAll(aMatrix._11,
aMatrix._21,
aMatrix._41,
aMatrix._12,
@@ -619,20 +625,20 @@ BasicLayerManager_Matrix3DToSkia(const g
aMatrix._14,
aMatrix._24,
aMatrix._44);
return transform;
}
static void
-SkiaTransform(const gfxImageSurface* aDest,
- RefPtr<DataSourceSurface> aSrc,
- const gfx3DMatrix& aTransform,
- gfxPoint aDestOffset)
+Transform(const gfxImageSurface* aDest,
+ RefPtr<DataSourceSurface> aSrc,
+ const gfx3DMatrix& aTransform,
+ gfxPoint aDestOffset)
{
if (aTransform.IsSingular()) {
return;
}
IntSize destSize = ToIntSize(aDest->GetSize());
SkImageInfo destInfo = SkImageInfo::Make(destSize.width,
destSize.height,
@@ -658,16 +664,88 @@ SkiaTransform(const gfxImageSurface* aDe
SkPaint paint;
paint.setXfermodeMode(SkXfermode::kSrc_Mode);
paint.setAntiAlias(true);
paint.setFilterLevel(SkPaint::kLow_FilterLevel);
SkRect destRect = SkRect::MakeXYWH(0, 0, srcSize.width, srcSize.height);
destCanvas.drawBitmapRectToRect(src, nullptr, destRect, &paint);
}
+#else
+static pixman_transform
+BasicLayerManager_Matrix3DToPixman(const gfx3DMatrix& aMatrix)
+{
+ pixman_f_transform transform;
+
+ transform.m[0][0] = aMatrix._11;
+ transform.m[0][1] = aMatrix._21;
+ transform.m[0][2] = aMatrix._41;
+ transform.m[1][0] = aMatrix._12;
+ transform.m[1][1] = aMatrix._22;
+ transform.m[1][2] = aMatrix._42;
+ transform.m[2][0] = aMatrix._14;
+ transform.m[2][1] = aMatrix._24;
+ transform.m[2][2] = aMatrix._44;
+
+ pixman_transform result;
+ pixman_transform_from_pixman_f_transform(&result, &transform);
+
+ return result;
+}
+
+static void
+Transform(const gfxImageSurface* aDest,
+ RefPtr<DataSourceSurface> aSrc,
+ const gfx3DMatrix& aTransform,
+ gfxPoint aDestOffset)
+{
+ IntSize destSize = ToIntSize(aDest->GetSize());
+ pixman_image_t* dest = pixman_image_create_bits(aDest->Format() == gfxImageFormat::ARGB32 ? PIXMAN_a8r8g8b8 : PIXMAN_x8r8g8b8,
+ destSize.width,
+ destSize.height,
+ (uint32_t*)aDest->Data(),
+ aDest->Stride());
+
+ IntSize srcSize = aSrc->GetSize();
+ pixman_image_t* src = pixman_image_create_bits(aSrc->GetFormat() == SurfaceFormat::B8G8R8A8 ? PIXMAN_a8r8g8b8 : PIXMAN_x8r8g8b8,
+ srcSize.width,
+ srcSize.height,
+ (uint32_t*)aSrc->GetData(),
+ aSrc->Stride());
+
+ NS_ABORT_IF_FALSE(src && dest, "Failed to create pixman images?");
+
+ pixman_transform pixTransform = BasicLayerManager_Matrix3DToPixman(aTransform);
+ pixman_transform pixTransformInverted;
+
+ // If the transform is singular then nothing would be drawn anyway, return here
+ if (!pixman_transform_invert(&pixTransformInverted, &pixTransform)) {
+ pixman_image_unref(dest);
+ pixman_image_unref(src);
+ return;
+ }
+ pixman_image_set_transform(src, &pixTransformInverted);
+
+ pixman_image_composite32(PIXMAN_OP_SRC,
+ src,
+ nullptr,
+ dest,
+ aDestOffset.x,
+ aDestOffset.y,
+ 0,
+ 0,
+ 0,
+ 0,
+ destSize.width,
+ destSize.height);
+
+ pixman_image_unref(dest);
+ pixman_image_unref(src);
+}
+#endif
/**
* Transform a surface using a gfx3DMatrix and blit to the destination if
* it is efficient to do so.
*
* @param aSource Source surface.
* @param aDest Desintation context.
* @param aBounds Area represented by aSource.
@@ -699,17 +777,17 @@ Transform3D(RefPtr<SourceSurface> aSourc
aDestRect.height),
gfxImageFormat::ARGB32);
gfxPoint offset = aDestRect.TopLeft();
// Include a translation to the correct origin.
gfx3DMatrix translation = gfx3DMatrix::Translation(aBounds.x, aBounds.y, 0);
// Transform the content and offset it such that the content begins at the origin.
- SkiaTransform(destImage, aSource->GetDataSurface(), translation * aTransform, offset);
+ Transform(destImage, aSource->GetDataSurface(), translation * aTransform, offset);
// If we haven't actually drawn to aDest then return our temporary image so
// that the caller can do this.
return destImage.forget();
}
void
BasicLayerManager::PaintSelfOrChildren(PaintLayerContext& aPaintContext,

123
extra/firefox/PKGBUILD Normal file
View file

@ -0,0 +1,123 @@
# $Id$
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Jakub Schmidtke <sjakub@gmail.com>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - patch for skia FTBFS on ARM
pkgname=firefox
pkgver=36.0.3
pkgrel=1
pkgdesc="Standalone web browser from mozilla.org"
arch=('i686' 'x86_64')
license=('MPL' 'GPL' 'LGPL')
url="https://www.mozilla.org/firefox/"
depends=('gtk2' 'mozilla-common' 'libxt' 'startup-notification' 'mime-types'
'dbus-glib' 'alsa-lib' 'desktop-file-utils' 'hicolor-icon-theme'
'libvpx' 'icu' 'libevent' 'nss' 'hunspell' 'sqlite')
makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'imake'
'xorg-server-xvfb' 'libpulse' 'gst-plugins-base-libs'
'inetutils')
optdepends=('networkmanager: Location detection via available WiFi networks'
'gst-plugins-good: h.264 video'
'gst-libav: h.264 video')
install=firefox.install
options=('!emptydirs' '!makeflags')
source=(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.bz2{,.asc}
mozconfig firefox.desktop firefox-install-dir.patch vendor.js rhbz-966424.patch
firefox-fixed-loading-icon.png
48e130d69836.patch)
sha256sums=('af4a3318286ea4c8157850f48f11679c17dc7639cbd0458c18d903ea84ffcd19'
'SKIP'
'ffcb2a0ba2ed08f74931a11043717391ef380234cadccc6f0c13f1186ad80e8b'
'7eefe43ba2b4249a4ea2d04a739b80945583aaa5a3d6872a1b7ea7a3d190f882'
'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd'
'4b50e9aec03432e21b44d18c4c97b2630bace606b033f7d556c9d3e3eb0f4fa4'
'4f0046b39a8d98f6e4fc3360ec490cb2416e38c7b3e92699f7e511c206c2c961'
'68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213'
'ab2d45b70d2006b539af3ea6e6f119d8aa62ef26f9b0d9813b728f22bf7af1de')
validpgpkeys=('2B90598A745E992F315E22C58AB132963A06537A')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
prepare() {
cd mozilla-release
cp ../mozconfig .mozconfig
patch -Np1 -i ../firefox-install-dir.patch
# https://bugs.archlinux.org/task/41689
patch -Np2 -i ../rhbz-966424.patch
# https://bugzilla.mozilla.org/show_bug.cgi?id=1136958
patch -p1 -i ../48e130d69836.patch
echo -n "$_google_api_key" >google-api-key
echo "ac_add_options --with-google-api-keyfile=\"$PWD/google-api-key\"" >>.mozconfig
mkdir "$srcdir/path"
# WebRTC build tries to execute "python" and expects Python 2
ln -s /usr/bin/python2 "$srcdir/path/python"
# Use gold, as Mozilla can use some of its features, such as safe ICF
#ln -s /usr/bin/ld.gold "$srcdir/path/ld"
# configure script misdetects the preprocessor without an optimization level
# https://bugs.archlinux.org/task/34644
sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure
# Fix tab loading icon (flickers with libpng 1.6)
# https://bugzilla.mozilla.org/show_bug.cgi?id=841734
# TODO: Remove this; Firefox 36 might use CSS animations for the loading icon
# https://bugzilla.mozilla.org/show_bug.cgi?id=759252
cp "$srcdir/firefox-fixed-loading-icon.png" \
browser/themes/linux/tabbrowser/loading.png
}
build() {
cd mozilla-release
export PATH="$srcdir/path:$PATH"
export PYTHON="/usr/bin/python2"
# Do PGO
xvfb-run -a -s "-extension GLX -screen 0 1280x1024x24" \
make -f client.mk build MOZ_PGO=1
}
package() {
cd mozilla-release
make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install
install -Dm644 ../vendor.js "$pkgdir/usr/lib/firefox/browser/defaults/preferences/vendor.js"
for i in 16 22 24 32 48 256; do
install -Dm644 browser/branding/official/default$i.png \
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/firefox.png"
done
install -Dm644 browser/branding/official/content/icon64.png \
"$pkgdir/usr/share/icons/hicolor/64x64/apps/firefox.png"
install -Dm644 browser/branding/official/mozicon128.png \
"$pkgdir/usr/share/icons/hicolor/128x128/apps/firefox.png"
install -Dm644 browser/branding/official/content/about-logo.png \
"$pkgdir/usr/share/icons/hicolor/192x192/apps/firefox.png"
install -Dm644 browser/branding/official/content/about-logo@2x.png \
"$pkgdir/usr/share/icons/hicolor/384x384/apps/firefox.png"
install -Dm644 ../firefox.desktop \
"$pkgdir/usr/share/applications/firefox.desktop"
# Use system-provided dictionaries
rm -rf "$pkgdir"/usr/lib/firefox/{dictionaries,hyphenation}
ln -s /usr/share/hunspell "$pkgdir/usr/lib/firefox/dictionaries"
ln -s /usr/share/hyphen "$pkgdir/usr/lib/firefox/hyphenation"
#workaround for now
#https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf firefox "$pkgdir/usr/lib/firefox/firefox-bin"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,12 @@
diff -up firefox-29.0/mozilla-release/config/baseconfig.mk.orig firefox-29.0/mozilla-release/config/baseconfig.mk
--- mozilla-release/config/baseconfig.mk.orig 2014-04-22 15:38:52.948165295 +0200
+++ mozilla-release/config/baseconfig.mk 2014-04-22 15:42:20.387481673 +0200
@@ -4,7 +4,7 @@
# whether a normal build is happening or whether the check is running.
includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+installdir = $(libdir)/$(MOZ_APP_NAME)
sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
ifndef TOP_DIST
TOP_DIST = dist

View file

@ -0,0 +1,121 @@
[Desktop Entry]
Name=Firefox
Name[bn]=
Name[eo]=Fajrovulpo
Name[fi]=Firefox
Name[pa]=
Name[tg]=Рӯбоҳи оташин
GenericName=Web Browser
GenericName[af]=Web Blaaier
GenericName[ar]=متصفح ويب
GenericName[az]=Veb Səyyahı
GenericName[bg]=Браузър
GenericName[bn]=
GenericName[br]=Furcher ar Gwiad
GenericName[bs]=WWW Preglednik
GenericName[ca]=Fullejador web
GenericName[cs]=WWW prohlížeč
GenericName[cy]=Porydd Gwe
GenericName[da]=Browser
GenericName[de]=Web-Browser
GenericName[el]=Περιηγητής Ιστού
GenericName[eo]=TTT-legilo
GenericName[es]=Navegador web
GenericName[et]=Veebilehitseja
GenericName[eu]=Web arakatzailea
GenericName[fa]=مرورگر وب
GenericName[fi]=WWW-selain
GenericName[fo]=Alnótsfar
GenericName[fr]=Navigateur web
GenericName[gl]=Navegador Web
GenericName[he]=דפדפן אינטרנט
GenericName[hi]=
GenericName[hr]=Web preglednik
GenericName[hu]=Webböngésző
GenericName[is]=Vafri
GenericName[it]=Browser Web
GenericName[ja]=
GenericName[ko]=
GenericName[lo]=
GenericName[lt]=Žiniatinklio naršyklė
GenericName[lv]=Web Pārlūks
GenericName[mk]=Прелистувач на Интернет
GenericName[mn]=Веб-Хөтөч
GenericName[nb]=Nettleser
GenericName[nds]=Nettkieker
GenericName[nl]=Webbrowser
GenericName[nn]=Nettlesar
GenericName[nso]=Seinyakisi sa Web
GenericName[pa]=
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[ro]=Navigator de web
GenericName[ru]=Веб-браузер
GenericName[se]=Fierpmádatlogan
GenericName[sk]=Webový prehliadač
GenericName[sl]=Spletni brskalnik
GenericName[sr]=Веб претраживач
GenericName[sr@Latn]=Veb pretraživač
GenericName[ss]=Ibrawuza yeWeb
GenericName[sv]=Webbläsare
GenericName[ta]= ி
GenericName[tg]=Тафсиргари вэб
GenericName[th]=
GenericName[tr]=Web Tarayıcı
GenericName[uk]=Навігатор Тенет
GenericName[uz]=Веб-браузер
GenericName[ven]=Buronza ya Webu
GenericName[vi]=Trình duyt Web
GenericName[wa]=Betchteu waibe
GenericName[xh]=Umkhangeli zincwadi we Web
GenericName[zh_CN]=
GenericName[zh_TW]=
GenericName[zu]=Umcingi we-Web
Comment=Browse the World Wide Web
Comment[ar]=تصفح الشبكة العنكبوتية العالمية
Comment[ast]=Restola pela Rede
Comment[bn]=
Comment[ca]=Navegueu per la web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[da]=Surf på internettet
Comment[de]=Im Internet surfen
Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
Comment[es]=Navegue por la web
Comment[et]=Lehitse veebi
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
Comment[fi]=Selaa Internetin WWW-sivuja
Comment[fr]=Naviguer sur le Web
Comment[gl]=Navegar pola rede
Comment[he]=גלישה ברחבי האינטרנט
Comment[hr]=Pretražite web
Comment[hu]=A világháló böngészése
Comment[it]=Esplora il web
Comment[ja]=
Comment[ko]=
Comment[ku]=Li torê bigere
Comment[lt]=Naršykite internete
Comment[nb]=Surf på nettet
Comment[nl]=Verken het internet
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment[pl]=Przeglądanie stron WWW
Comment[pt]=Navegue na Internet
Comment[pt_BR]=Navegue na Internet
Comment[ro]=Navigați pe Internet
Comment[ru]=Доступ в Интернет
Comment[sk]=Prehliadanie internetu
Comment[sl]=Brskajte po spletu
Comment[sv]=Surfa på webben
Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
Comment[uk]=Перегляд сторінок Інтернету
Comment[vi]=Đ duyt các trang web
Comment[zh_CN]=
Comment[zh_TW]=
Exec=/usr/lib/firefox/firefox %u
Icon=firefox
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
StartupNotify=true
Categories=Network;WebBrowser;

View file

@ -0,0 +1,13 @@
post_install() {
update-desktop-database -q
gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
}
post_upgrade() {
post_install
}
post_remove() {
post_install
}

34
extra/firefox/mozconfig Normal file
View file

@ -0,0 +1,34 @@
. $topsrcdir/browser/config/mozconfig
ac_add_options --prefix=/usr
ac_add_options --libdir=/usr/lib
ac_add_options --enable-official-branding
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-system-png
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-icu
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
#ac_add_options --enable-system-cairo
ac_add_options --enable-system-pixman
# Features
ac_add_options --enable-startup-notification
ac_add_options --enable-pulseaudio
ac_add_options --enable-gstreamer=1.0
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-installer
ac_add_options --disable-debug-symbols
# vim:set ft=sh:

View file

@ -0,0 +1,14 @@
diff -up firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm
--- firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 2014-10-14 08:12:14.358697255 +0200
+++ firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm 2014-10-14 08:17:59.962181908 +0200
@@ -174,7 +174,9 @@ this.checkCert =
}
function isBuiltinToken(tokenName) {
- return tokenName == "Builtin Object Token";
+ return tokenName == "Builtin Object Token" ||
+ tokenName == "Default Trust" ||
+ tokenName == "System Trust";
}
/**

9
extra/firefox/vendor.js Normal file
View file

@ -0,0 +1,9 @@
// Use LANG environment variable to choose locale
pref("intl.locale.matchOS", true);
// Disable default browser checking.
pref("browser.shell.checkDefaultBrowser", false);
// Don't disable our bundled extensions in the application directory
pref("extensions.autoDisableScopes", 11);
pref("extensions.shownSelectionUI", true);