Issue #1053 - Remove android support from toolkit
Note: Does not remove support completely from toolkit/mozapps/installer or from telemetry or AppConstants.jsm
|
|
@ -2,12 +2,6 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
/*
|
|
||||||
* The version used for mobile is located at
|
|
||||||
* mobile/android/themes/core/aboutMemory.css.
|
|
||||||
* Desktop-specific stuff is at the bottom of this file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
background: -moz-Dialog;
|
background: -moz-Dialog;
|
||||||
font: message-box;
|
font: message-box;
|
||||||
|
|
|
||||||
|
|
@ -280,26 +280,18 @@ NS_IMETHODIMP nsAlertsService::CloseAlert(const nsAString& aAlertName,
|
||||||
// nsIAlertsDoNotDisturb
|
// nsIAlertsDoNotDisturb
|
||||||
NS_IMETHODIMP nsAlertsService::GetManualDoNotDisturb(bool* aRetVal)
|
NS_IMETHODIMP nsAlertsService::GetManualDoNotDisturb(bool* aRetVal)
|
||||||
{
|
{
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
return NS_ERROR_NOT_IMPLEMENTED;
|
|
||||||
#else
|
|
||||||
nsCOMPtr<nsIAlertsDoNotDisturb> alertsDND(GetDNDBackend());
|
nsCOMPtr<nsIAlertsDoNotDisturb> alertsDND(GetDNDBackend());
|
||||||
NS_ENSURE_TRUE(alertsDND, NS_ERROR_NOT_IMPLEMENTED);
|
NS_ENSURE_TRUE(alertsDND, NS_ERROR_NOT_IMPLEMENTED);
|
||||||
return alertsDND->GetManualDoNotDisturb(aRetVal);
|
return alertsDND->GetManualDoNotDisturb(aRetVal);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsAlertsService::SetManualDoNotDisturb(bool aDoNotDisturb)
|
NS_IMETHODIMP nsAlertsService::SetManualDoNotDisturb(bool aDoNotDisturb)
|
||||||
{
|
{
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
return NS_ERROR_NOT_IMPLEMENTED;
|
|
||||||
#else
|
|
||||||
nsCOMPtr<nsIAlertsDoNotDisturb> alertsDND(GetDNDBackend());
|
nsCOMPtr<nsIAlertsDoNotDisturb> alertsDND(GetDNDBackend());
|
||||||
NS_ENSURE_TRUE(alertsDND, NS_ERROR_NOT_IMPLEMENTED);
|
NS_ENSURE_TRUE(alertsDND, NS_ERROR_NOT_IMPLEMENTED);
|
||||||
|
|
||||||
nsresult rv = alertsDND->SetManualDoNotDisturb(aDoNotDisturb);
|
nsresult rv = alertsDND->SetManualDoNotDisturb(aDoNotDisturb);
|
||||||
return rv;
|
return rv;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
already_AddRefed<nsIAlertsDoNotDisturb>
|
already_AddRefed<nsIAlertsDoNotDisturb>
|
||||||
|
|
|
||||||
|
|
@ -66,13 +66,10 @@ NS_IMPL_ISUPPORTS(nsXULAlerts, nsIAlertsService, nsIAlertsDoNotDisturb, nsIAlert
|
||||||
/* static */ already_AddRefed<nsXULAlerts>
|
/* static */ already_AddRefed<nsXULAlerts>
|
||||||
nsXULAlerts::GetInstance()
|
nsXULAlerts::GetInstance()
|
||||||
{
|
{
|
||||||
// Gecko on Android does not fully support XUL windows.
|
|
||||||
#ifndef MOZ_WIDGET_ANDROID
|
|
||||||
if (!gXULAlerts) {
|
if (!gXULAlerts) {
|
||||||
gXULAlerts = new nsXULAlerts();
|
gXULAlerts = new nsXULAlerts();
|
||||||
ClearOnShutdown(&gXULAlerts);
|
ClearOnShutdown(&gXULAlerts);
|
||||||
}
|
}
|
||||||
#endif // MOZ_WIDGET_ANDROID
|
|
||||||
RefPtr<nsXULAlerts> instance = gXULAlerts.get();
|
RefPtr<nsXULAlerts> instance = gXULAlerts.get();
|
||||||
return instance.forget();
|
return instance.forget();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1125,9 +1125,6 @@ Blocklist.prototype = {
|
||||||
|
|
||||||
/* See nsIBlocklistService */
|
/* See nsIBlocklistService */
|
||||||
getPluginBlocklistState: function(plugin, appVersion, toolkitVersion) {
|
getPluginBlocklistState: function(plugin, appVersion, toolkitVersion) {
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
return Ci.nsIBlocklistService.STATE_NOT_BLOCKED;
|
|
||||||
#endif
|
|
||||||
if (!this._isBlocklistLoaded())
|
if (!this._isBlocklistLoaded())
|
||||||
this._loadBlocklist();
|
this._loadBlocklist();
|
||||||
return this._getPluginBlocklistState(plugin, this._pluginEntries,
|
return this._getPluginBlocklistState(plugin, this._pluginEntries,
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
#define NS_APPSTARTUP_CONTRACTID \
|
#define NS_APPSTARTUP_CONTRACTID \
|
||||||
"@mozilla.org/toolkit/app-startup;1"
|
"@mozilla.org/toolkit/app-startup;1"
|
||||||
|
|
||||||
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
|
#ifdef MOZ_UPDATER
|
||||||
#define NS_UPDATEPROCESSOR_CONTRACTID \
|
#define NS_UPDATEPROCESSOR_CONTRACTID \
|
||||||
"@mozilla.org/updates/update-processor;1"
|
"@mozilla.org/updates/update-processor;1"
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -170,7 +170,7 @@
|
||||||
#define NS_FAVICONSERVICE_CID \
|
#define NS_FAVICONSERVICE_CID \
|
||||||
{ 0x984e3259, 0x9266, 0x49cf, { 0xb6, 0x05, 0x60, 0xb0, 0x22, 0xa0, 0x07, 0x56 } }
|
{ 0x984e3259, 0x9266, 0x49cf, { 0xb6, 0x05, 0x60, 0xb0, 0x22, 0xa0, 0x07, 0x56 } }
|
||||||
|
|
||||||
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
|
#ifdef MOZ_UPDATER
|
||||||
#define NS_UPDATEPROCESSOR_CID \
|
#define NS_UPDATEPROCESSOR_CID \
|
||||||
{ 0xf3dcf644, 0x79e8, 0x4f59, { 0xa1, 0xbb, 0x87, 0x84, 0x54, 0x48, 0x8e, 0xf9 } }
|
{ 0xf3dcf644, 0x79e8, 0x4f59, { 0xa1, 0xbb, 0x87, 0x84, 0x54, 0x48, 0x8e, 0xf9 } }
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
#endif
|
#endif
|
||||||
#include "nsToolkitCompsCID.h"
|
#include "nsToolkitCompsCID.h"
|
||||||
#include "nsFindService.h"
|
#include "nsFindService.h"
|
||||||
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
|
#ifdef MOZ_UPDATER
|
||||||
#include "nsUpdateDriver.h"
|
#include "nsUpdateDriver.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -50,13 +50,8 @@
|
||||||
#include "NativeFileWatcherNotSupported.h"
|
#include "NativeFileWatcherNotSupported.h"
|
||||||
#endif // (XP_WIN)
|
#endif // (XP_WIN)
|
||||||
|
|
||||||
#if !defined(MOZ_WIDGET_ANDROID)
|
|
||||||
#define MOZ_HAS_TERMINATOR
|
#define MOZ_HAS_TERMINATOR
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(MOZ_HAS_TERMINATOR)
|
|
||||||
#include "nsTerminator.h"
|
#include "nsTerminator.h"
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MOZ_HAS_PERFSTATS
|
#define MOZ_HAS_PERFSTATS
|
||||||
|
|
||||||
|
|
@ -125,7 +120,7 @@ nsUrlClassifierDBServiceConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsBrowserStatusFilter)
|
NS_GENERIC_FACTORY_CONSTRUCTOR(nsBrowserStatusFilter)
|
||||||
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
|
#ifdef MOZ_UPDATER
|
||||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsUpdateProcessor)
|
NS_GENERIC_FACTORY_CONSTRUCTOR(nsUpdateProcessor)
|
||||||
#endif
|
#endif
|
||||||
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(FinalizationWitnessService, Init)
|
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(FinalizationWitnessService, Init)
|
||||||
|
|
@ -166,7 +161,7 @@ NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERSTREAMUPDATER_CID);
|
||||||
NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERUTILS_CID);
|
NS_DEFINE_NAMED_CID(NS_URLCLASSIFIERUTILS_CID);
|
||||||
#endif
|
#endif
|
||||||
NS_DEFINE_NAMED_CID(NS_BROWSERSTATUSFILTER_CID);
|
NS_DEFINE_NAMED_CID(NS_BROWSERSTATUSFILTER_CID);
|
||||||
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
|
#ifdef MOZ_UPDATER
|
||||||
NS_DEFINE_NAMED_CID(NS_UPDATEPROCESSOR_CID);
|
NS_DEFINE_NAMED_CID(NS_UPDATEPROCESSOR_CID);
|
||||||
#endif
|
#endif
|
||||||
NS_DEFINE_NAMED_CID(FINALIZATIONWITNESSSERVICE_CID);
|
NS_DEFINE_NAMED_CID(FINALIZATIONWITNESSSERVICE_CID);
|
||||||
|
|
@ -206,7 +201,7 @@ static const Module::CIDEntry kToolkitCIDs[] = {
|
||||||
{ &kNS_URLCLASSIFIERUTILS_CID, false, nullptr, nsUrlClassifierUtilsConstructor },
|
{ &kNS_URLCLASSIFIERUTILS_CID, false, nullptr, nsUrlClassifierUtilsConstructor },
|
||||||
#endif
|
#endif
|
||||||
{ &kNS_BROWSERSTATUSFILTER_CID, false, nullptr, nsBrowserStatusFilterConstructor },
|
{ &kNS_BROWSERSTATUSFILTER_CID, false, nullptr, nsBrowserStatusFilterConstructor },
|
||||||
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
|
#ifdef MOZ_UPDATER
|
||||||
{ &kNS_UPDATEPROCESSOR_CID, false, nullptr, nsUpdateProcessorConstructor },
|
{ &kNS_UPDATEPROCESSOR_CID, false, nullptr, nsUpdateProcessorConstructor },
|
||||||
#endif
|
#endif
|
||||||
{ &kFINALIZATIONWITNESSSERVICE_CID, false, nullptr, FinalizationWitnessServiceConstructor },
|
{ &kFINALIZATIONWITNESSSERVICE_CID, false, nullptr, FinalizationWitnessServiceConstructor },
|
||||||
|
|
@ -248,7 +243,7 @@ static const Module::ContractIDEntry kToolkitContracts[] = {
|
||||||
{ NS_URLCLASSIFIERUTILS_CONTRACTID, &kNS_URLCLASSIFIERUTILS_CID },
|
{ NS_URLCLASSIFIERUTILS_CONTRACTID, &kNS_URLCLASSIFIERUTILS_CID },
|
||||||
#endif
|
#endif
|
||||||
{ NS_BROWSERSTATUSFILTER_CONTRACTID, &kNS_BROWSERSTATUSFILTER_CID },
|
{ NS_BROWSERSTATUSFILTER_CONTRACTID, &kNS_BROWSERSTATUSFILTER_CID },
|
||||||
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
|
#ifdef MOZ_UPDATER
|
||||||
{ NS_UPDATEPROCESSOR_CONTRACTID, &kNS_UPDATEPROCESSOR_CID },
|
{ NS_UPDATEPROCESSOR_CONTRACTID, &kNS_UPDATEPROCESSOR_CID },
|
||||||
#endif
|
#endif
|
||||||
{ FINALIZATIONWITNESSSERVICE_CONTRACTID, &kFINALIZATIONWITNESSSERVICE_CID },
|
{ FINALIZATIONWITNESSSERVICE_CONTRACTID, &kFINALIZATIONWITNESSSERVICE_CID },
|
||||||
|
|
|
||||||
|
|
@ -61,10 +61,6 @@
|
||||||
#include <CoreFoundation/CoreFoundation.h>
|
#include <CoreFoundation/CoreFoundation.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
#include "FennecJNIWrappers.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_GTK
|
#ifdef MOZ_WIDGET_GTK
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1421,19 +1417,6 @@ nsDownloadManager::GetDefaultDownloadsDirectory(nsIFile **aResult)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#elif defined(XP_UNIX)
|
#elif defined(XP_UNIX)
|
||||||
#if defined(MOZ_WIDGET_ANDROID)
|
|
||||||
// Android doesn't have a $HOME directory, and by default we only have
|
|
||||||
// write access to /data/data/org.mozilla.{$APP} and /sdcard
|
|
||||||
char* downloadDirPath = getenv("DOWNLOADS_DIRECTORY");
|
|
||||||
if (downloadDirPath) {
|
|
||||||
rv = NS_NewNativeLocalFile(nsDependentCString(downloadDirPath),
|
|
||||||
true, getter_AddRefs(downloadDir));
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
rv = NS_ERROR_FAILURE;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
rv = dirService->Get(NS_UNIX_DEFAULT_DOWNLOAD_DIR,
|
rv = dirService->Get(NS_UNIX_DEFAULT_DOWNLOAD_DIR,
|
||||||
NS_GET_IID(nsIFile),
|
NS_GET_IID(nsIFile),
|
||||||
getter_AddRefs(downloadDir));
|
getter_AddRefs(downloadDir));
|
||||||
|
|
@ -1446,7 +1429,6 @@ nsDownloadManager::GetDefaultDownloadsDirectory(nsIFile **aResult)
|
||||||
rv = downloadDir->Append(folderName);
|
rv = downloadDir->Append(folderName);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#else
|
#else
|
||||||
rv = dirService->Get(NS_OS_HOME_DIR,
|
rv = dirService->Get(NS_OS_HOME_DIR,
|
||||||
NS_GET_IID(nsIFile),
|
NS_GET_IID(nsIFile),
|
||||||
|
|
@ -2685,14 +2667,6 @@ nsDownload::SetState(DownloadState aState)
|
||||||
case nsIDownloadManager::DOWNLOAD_DIRTY:
|
case nsIDownloadManager::DOWNLOAD_DIRTY:
|
||||||
case nsIDownloadManager::DOWNLOAD_CANCELED:
|
case nsIDownloadManager::DOWNLOAD_CANCELED:
|
||||||
case nsIDownloadManager::DOWNLOAD_FAILED:
|
case nsIDownloadManager::DOWNLOAD_FAILED:
|
||||||
#ifdef ANDROID
|
|
||||||
// If we still have a temp file, remove it
|
|
||||||
bool tempExists;
|
|
||||||
if (mTempFile && NS_SUCCEEDED(mTempFile->Exists(&tempExists)) && tempExists) {
|
|
||||||
nsresult rv = mTempFile->Remove(false);
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Transfers are finished, so break the reference cycle
|
// Transfers are finished, so break the reference cycle
|
||||||
Finalize();
|
Finalize();
|
||||||
|
|
@ -2770,7 +2744,7 @@ nsDownload::SetState(DownloadState aState)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GTK)
|
#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_GTK)
|
||||||
nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(mTarget);
|
nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(mTarget);
|
||||||
nsCOMPtr<nsIFile> file;
|
nsCOMPtr<nsIFile> file;
|
||||||
nsAutoString path;
|
nsAutoString path;
|
||||||
|
|
@ -2780,27 +2754,13 @@ nsDownload::SetState(DownloadState aState)
|
||||||
file &&
|
file &&
|
||||||
NS_SUCCEEDED(file->GetPath(path))) {
|
NS_SUCCEEDED(file->GetPath(path))) {
|
||||||
|
|
||||||
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_ANDROID)
|
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
|
||||||
// On Windows and Gtk, add the download to the system's "recent documents"
|
// On Windows and Gtk, add the download to the system's "recent documents"
|
||||||
// list, with a pref to disable.
|
// list, with a pref to disable.
|
||||||
{
|
{
|
||||||
bool addToRecentDocs = true;
|
bool addToRecentDocs = true;
|
||||||
if (pref)
|
if (pref)
|
||||||
pref->GetBoolPref(PREF_BDM_ADDTORECENTDOCS, &addToRecentDocs);
|
pref->GetBoolPref(PREF_BDM_ADDTORECENTDOCS, &addToRecentDocs);
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
if (addToRecentDocs) {
|
|
||||||
nsCOMPtr<nsIMIMEInfo> mimeInfo;
|
|
||||||
nsAutoCString contentType;
|
|
||||||
GetMIMEInfo(getter_AddRefs(mimeInfo));
|
|
||||||
|
|
||||||
if (mimeInfo)
|
|
||||||
mimeInfo->GetMIMEType(contentType);
|
|
||||||
|
|
||||||
if (jni::IsFennec()) {
|
|
||||||
java::DownloadsIntegration::ScanMedia(path, NS_ConvertUTF8toUTF16(contentType));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (addToRecentDocs && !mPrivate) {
|
if (addToRecentDocs && !mPrivate) {
|
||||||
#ifdef XP_WIN
|
#ifdef XP_WIN
|
||||||
::SHAddToRecentDocs(SHARD_PATHW, path.get());
|
::SHAddToRecentDocs(SHARD_PATHW, path.get());
|
||||||
|
|
@ -2815,7 +2775,6 @@ nsDownload::SetState(DownloadState aState)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#ifdef MOZ_ENABLE_GIO
|
#ifdef MOZ_ENABLE_GIO
|
||||||
// Use GIO to store the source URI for later display in the file manager.
|
// Use GIO to store the source URI for later display in the file manager.
|
||||||
GFile* gio_file = g_file_new_for_path(NS_ConvertUTF16toUTF8(path).get());
|
GFile* gio_file = g_file_new_for_path(NS_ConvertUTF16toUTF8(path).get());
|
||||||
|
|
|
||||||
|
|
@ -70,10 +70,6 @@ XPCOMUtils.defineLazyServiceGetter(this, "gMIMEService",
|
||||||
XPCOMUtils.defineLazyServiceGetter(this, "gExternalProtocolService",
|
XPCOMUtils.defineLazyServiceGetter(this, "gExternalProtocolService",
|
||||||
"@mozilla.org/uriloader/external-protocol-service;1",
|
"@mozilla.org/uriloader/external-protocol-service;1",
|
||||||
"nsIExternalProtocolService");
|
"nsIExternalProtocolService");
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
XPCOMUtils.defineLazyModuleGetter(this, "RuntimePermissions",
|
|
||||||
"resource://gre/modules/RuntimePermissions.jsm");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
XPCOMUtils.defineLazyGetter(this, "gParentalControlsService", function() {
|
XPCOMUtils.defineLazyGetter(this, "gParentalControlsService", function() {
|
||||||
if ("@mozilla.org/parental-controls-service;1" in Cc) {
|
if ("@mozilla.org/parental-controls-service;1" in Cc) {
|
||||||
|
|
@ -299,14 +295,10 @@ this.DownloadIntegration = {
|
||||||
aDownload.hasBlockedData) {
|
aDownload.hasBlockedData) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#if defined(MOZ_WIDGET_ANDROID)
|
|
||||||
// On Android we store all history.
|
|
||||||
return true;
|
|
||||||
#else
|
|
||||||
// On Desktop, stopped downloads for which we don't need to track the
|
// On Desktop, stopped downloads for which we don't need to track the
|
||||||
// presence of a ".part" file are only retained in the browser history.
|
// presence of a ".part" file are only retained in the browser history.
|
||||||
return false;
|
return false;
|
||||||
#endif
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -332,16 +324,8 @@ this.DownloadIntegration = {
|
||||||
} else {
|
} else {
|
||||||
directoryPath = this._getDirectory("DfltDwnld");
|
directoryPath = this._getDirectory("DfltDwnld");
|
||||||
}
|
}
|
||||||
|
|
||||||
#elifdef XP_UNIX
|
#elifdef XP_UNIX
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
// Android doesn't have a $HOME directory, and by default we only have
|
|
||||||
// write access to /data/data/org.mozilla.{$APP} and /sdcard
|
|
||||||
directoryPath = gEnvironment.get("DOWNLOADS_DIRECTORY");
|
|
||||||
if (!directoryPath) {
|
|
||||||
throw new Components.Exception("DOWNLOADS_DIRECTORY is not set.",
|
|
||||||
Cr.NS_ERROR_FILE_UNRECOGNIZED_PATH);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
// For Linux, use XDG download dir, with a fallback to Home/Downloads
|
// For Linux, use XDG download dir, with a fallback to Home/Downloads
|
||||||
// if the XDG user dirs are disabled.
|
// if the XDG user dirs are disabled.
|
||||||
try {
|
try {
|
||||||
|
|
@ -349,7 +333,6 @@ this.DownloadIntegration = {
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
directoryPath = yield this._createDownloadsDirectory("Home");
|
directoryPath = yield this._createDownloadsDirectory("Home");
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#else
|
#else
|
||||||
directoryPath = yield this._createDownloadsDirectory("Home");
|
directoryPath = yield this._createDownloadsDirectory("Home");
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -403,8 +386,6 @@ this.DownloadIntegration = {
|
||||||
let directoryPath = null;
|
let directoryPath = null;
|
||||||
#ifdef XP_MACOSX
|
#ifdef XP_MACOSX
|
||||||
directoryPath = yield this.getPreferredDownloadsDirectory();
|
directoryPath = yield this.getPreferredDownloadsDirectory();
|
||||||
#elifdef MOZ_WIDGET_ANDROID
|
|
||||||
directoryPath = yield this.getSystemDownloadsDirectory();
|
|
||||||
#else
|
#else
|
||||||
directoryPath = this._getDirectory("TmpD");
|
directoryPath = this._getDirectory("TmpD");
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -443,12 +424,7 @@ this.DownloadIntegration = {
|
||||||
* @resolves The boolean indicates to block downloads or not.
|
* @resolves The boolean indicates to block downloads or not.
|
||||||
*/
|
*/
|
||||||
shouldBlockForRuntimePermissions() {
|
shouldBlockForRuntimePermissions() {
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
return RuntimePermissions.waitForPermissions(RuntimePermissions.WRITE_EXTERNAL_STORAGE)
|
|
||||||
.then(permissionGranted => !permissionGranted);
|
|
||||||
#else
|
|
||||||
return Promise.resolve(false);
|
return Promise.resolve(false);
|
||||||
#endif
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,6 @@
|
||||||
#include "../../../../xpcom/io/CocoaFileUtils.h"
|
#include "../../../../xpcom/io/CocoaFileUtils.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
#include "FennecJNIWrappers.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_GTK
|
#ifdef MOZ_WIDGET_GTK
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -101,21 +97,15 @@ CFURLRef CreateCFURLFromNSIURI(nsIURI *aURI) {
|
||||||
nsresult DownloadPlatform::DownloadDone(nsIURI* aSource, nsIURI* aReferrer, nsIFile* aTarget,
|
nsresult DownloadPlatform::DownloadDone(nsIURI* aSource, nsIURI* aReferrer, nsIFile* aTarget,
|
||||||
const nsACString& aContentType, bool aIsPrivate)
|
const nsACString& aContentType, bool aIsPrivate)
|
||||||
{
|
{
|
||||||
#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_ANDROID) \
|
#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_GTK)
|
||||||
|| defined(MOZ_WIDGET_GTK)
|
|
||||||
|
|
||||||
nsAutoString path;
|
nsAutoString path;
|
||||||
if (aTarget && NS_SUCCEEDED(aTarget->GetPath(path))) {
|
if (aTarget && NS_SUCCEEDED(aTarget->GetPath(path))) {
|
||||||
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_ANDROID)
|
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
|
||||||
// On Windows and Gtk, add the download to the system's "recent documents"
|
// On Windows and Gtk, add the download to the system's "recent documents"
|
||||||
// list, with a pref to disable.
|
// list, with a pref to disable.
|
||||||
{
|
{
|
||||||
bool addToRecentDocs = Preferences::GetBool(PREF_BDM_ADDTORECENTDOCS);
|
bool addToRecentDocs = Preferences::GetBool(PREF_BDM_ADDTORECENTDOCS);
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
if (jni::IsFennec() && addToRecentDocs) {
|
|
||||||
java::DownloadsIntegration::ScanMedia(path, aContentType);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (addToRecentDocs && !aIsPrivate) {
|
if (addToRecentDocs && !aIsPrivate) {
|
||||||
#ifdef XP_WIN
|
#ifdef XP_WIN
|
||||||
::SHAddToRecentDocs(SHARD_PATHW, path.get());
|
::SHAddToRecentDocs(SHARD_PATHW, path.get());
|
||||||
|
|
@ -130,7 +120,7 @@ nsresult DownloadPlatform::DownloadDone(nsIURI* aSource, nsIURI* aReferrer, nsIF
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#ifdef MOZ_ENABLE_GIO
|
#ifdef MOZ_ENABLE_GIO
|
||||||
// Use GIO to store the source URI for later display in the file manager.
|
// Use GIO to store the source URI for later display in the file manager.
|
||||||
GFile* gio_file = g_file_new_for_path(NS_ConvertUTF16toUTF8(path).get());
|
GFile* gio_file = g_file_new_for_path(NS_ConvertUTF16toUTF8(path).get());
|
||||||
|
|
|
||||||
|
|
@ -69,11 +69,10 @@ if CONFIG['MOZ_WEBEXTENSIONS']:
|
||||||
|
|
||||||
DIRS += ['mozintl']
|
DIRS += ['mozintl']
|
||||||
|
|
||||||
if not CONFIG['MOZ_FENNEC']:
|
DIRS += ['narrate', 'viewsource'];
|
||||||
DIRS += ['narrate', 'viewsource'];
|
|
||||||
|
|
||||||
if CONFIG['NS_PRINTING']:
|
if CONFIG['NS_PRINTING']:
|
||||||
DIRS += ['printing']
|
DIRS += ['printing']
|
||||||
|
|
||||||
if CONFIG['BUILD_CTYPES']:
|
if CONFIG['BUILD_CTYPES']:
|
||||||
DIRS += ['ctypes']
|
DIRS += ['ctypes']
|
||||||
|
|
@ -97,13 +96,11 @@ if CONFIG['MOZ_URL_CLASSIFIER']:
|
||||||
|
|
||||||
DIRS += ['captivedetect']
|
DIRS += ['captivedetect']
|
||||||
|
|
||||||
if CONFIG['OS_TARGET'] != 'Android':
|
DIRS += ['terminator']
|
||||||
DIRS += ['terminator']
|
|
||||||
|
|
||||||
DIRS += ['build']
|
DIRS += ['build']
|
||||||
|
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
|
EXTRA_COMPONENTS += [
|
||||||
EXTRA_COMPONENTS += [
|
'nsDefaultCLH.js',
|
||||||
'nsDefaultCLH.js',
|
'nsDefaultCLH.manifest',
|
||||||
'nsDefaultCLH.manifest',
|
]
|
||||||
]
|
|
||||||
|
|
|
||||||
|
|
@ -728,26 +728,19 @@ File.prototype = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
if (SharedAll.Constants.Sys.Name != "Android") {
|
* Set the last access and modification date of the file.
|
||||||
/**
|
* The time stamp resolution is 1 second at best, but might be worse
|
||||||
* Set the last access and modification date of the file.
|
* depending on the platform.
|
||||||
* The time stamp resolution is 1 second at best, but might be worse
|
*
|
||||||
* depending on the platform.
|
* @return {promise}
|
||||||
*
|
* @rejects {TypeError}
|
||||||
* WARNING: This method is not implemented on Android. On Android,
|
* @rejects {OS.File.Error}
|
||||||
* you should use File.setDates instead.
|
*/
|
||||||
*
|
File.prototype.setDates = function(accessDate, modificationDate) {
|
||||||
* @return {promise}
|
return Scheduler.post("File_prototype_setDates",
|
||||||
* @rejects {TypeError}
|
[this._fdmsg, accessDate, modificationDate], this);
|
||||||
* @rejects {OS.File.Error}
|
};
|
||||||
*/
|
|
||||||
File.prototype.setDates = function(accessDate, modificationDate) {
|
|
||||||
return Scheduler.post("File_prototype_setDates",
|
|
||||||
[this._fdmsg, accessDate, modificationDate], this);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open a file asynchronously.
|
* Open a file asynchronously.
|
||||||
|
|
|
||||||
|
|
@ -372,14 +372,14 @@
|
||||||
// Two variants of |getwd| which allocate the memory
|
// Two variants of |getwd| which allocate the memory
|
||||||
// dynamically.
|
// dynamically.
|
||||||
|
|
||||||
// Linux/Android version
|
// Linux version
|
||||||
libc.declareLazyFFI(SysFile, "get_current_dir_name",
|
libc.declareLazyFFI(SysFile, "get_current_dir_name",
|
||||||
"get_current_dir_name", ctypes.default_abi,
|
"get_current_dir_name", ctypes.default_abi,
|
||||||
/*return*/ Type.out_path.releaseWithLazy(() =>
|
/*return*/ Type.out_path.releaseWithLazy(() =>
|
||||||
SysFile.free
|
SysFile.free
|
||||||
));
|
));
|
||||||
|
|
||||||
// MacOS/BSD version (will return NULL on Linux/Android)
|
// MacOS/BSD version (will return NULL on Linux)
|
||||||
libc.declareLazyFFI(SysFile, "getwd_auto",
|
libc.declareLazyFFI(SysFile, "getwd_auto",
|
||||||
"getwd", ctypes.default_abi,
|
"getwd", ctypes.default_abi,
|
||||||
/*return*/ Type.out_path.releaseWithLazy(() =>
|
/*return*/ Type.out_path.releaseWithLazy(() =>
|
||||||
|
|
@ -520,13 +520,13 @@
|
||||||
/*fd_out*/ Type.fd,
|
/*fd_out*/ Type.fd,
|
||||||
/*off_out*/Type.off_t.in_ptr,
|
/*off_out*/Type.off_t.in_ptr,
|
||||||
/*len*/ Type.size_t,
|
/*len*/ Type.size_t,
|
||||||
/*flags*/ Type.unsigned_int); // Linux/Android-specific
|
/*flags*/ Type.unsigned_int); // Linux-specific
|
||||||
|
|
||||||
libc.declareLazyFFI(SysFile, "statfs",
|
libc.declareLazyFFI(SysFile, "statfs",
|
||||||
"statfs", ctypes.default_abi,
|
"statfs", ctypes.default_abi,
|
||||||
/*return*/ Type.negativeone_or_nothing,
|
/*return*/ Type.negativeone_or_nothing,
|
||||||
/*path*/ Type.path,
|
/*path*/ Type.path,
|
||||||
/*buf*/ Type.statvfs.out_ptr); // Android,B2G
|
/*buf*/ Type.statvfs.out_ptr); // Other platforms
|
||||||
|
|
||||||
libc.declareLazyFFI(SysFile, "statvfs",
|
libc.declareLazyFFI(SysFile, "statvfs",
|
||||||
"statvfs", ctypes.default_abi,
|
"statvfs", ctypes.default_abi,
|
||||||
|
|
|
||||||
|
|
@ -204,10 +204,7 @@
|
||||||
* The time stamp resolution is 1 second at best, but might be worse
|
* The time stamp resolution is 1 second at best, but might be worse
|
||||||
* depending on the platform.
|
* depending on the platform.
|
||||||
*
|
*
|
||||||
* WARNING: This method is not implemented on Android/B2G. On Android/B2G,
|
* @param {Date,number=} accessDate The last access date. If numeric,
|
||||||
* you should use File.setDates instead.
|
|
||||||
*
|
|
||||||
* @param {Date,number=} accessDate The last access date. If numeric,
|
|
||||||
* milliseconds since epoch. If omitted or null, then the current date
|
* milliseconds since epoch. If omitted or null, then the current date
|
||||||
* will be used.
|
* will be used.
|
||||||
* @param {Date,number=} modificationDate The last modification date. If
|
* @param {Date,number=} modificationDate The last modification date. If
|
||||||
|
|
@ -217,14 +214,12 @@
|
||||||
* @throws {TypeError} In case of invalid parameters.
|
* @throws {TypeError} In case of invalid parameters.
|
||||||
* @throws {OS.File.Error} In case of I/O error.
|
* @throws {OS.File.Error} In case of I/O error.
|
||||||
*/
|
*/
|
||||||
if (SharedAll.Constants.Sys.Name != "Android") {
|
File.prototype.setDates = function(accessDate, modificationDate) {
|
||||||
File.prototype.setDates = function(accessDate, modificationDate) {
|
let {value, ptr} = datesToTimevals(accessDate, modificationDate);
|
||||||
let {value, ptr} = datesToTimevals(accessDate, modificationDate);
|
throw_on_negative("setDates",
|
||||||
throw_on_negative("setDates",
|
UnixFile.futimes(this.fd, ptr),
|
||||||
UnixFile.futimes(this.fd, ptr),
|
this._path);
|
||||||
this._path);
|
};
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flushes the file's buffers and causes all buffered data
|
* Flushes the file's buffers and causes all buffered data
|
||||||
|
|
@ -576,7 +571,7 @@
|
||||||
if (UnixFile.splice) {
|
if (UnixFile.splice) {
|
||||||
const BUFSIZE = 1 << 17;
|
const BUFSIZE = 1 << 17;
|
||||||
|
|
||||||
// An implementation of |pump| using |splice| (for Linux/Android)
|
// An implementation of |pump| using |splice| (for Linux)
|
||||||
pump = function pump_splice(source, dest, options = {}) {
|
pump = function pump_splice(source, dest, options = {}) {
|
||||||
let nbytes = options.nbytes > 0 ? options.nbytes : Infinity;
|
let nbytes = options.nbytes > 0 ? options.nbytes : Infinity;
|
||||||
let pipe = [];
|
let pipe = [];
|
||||||
|
|
|
||||||
|
|
@ -4,28 +4,16 @@
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
XPIDL_SOURCES += [
|
XPIDL_SOURCES += ['nsIParentalControlsService.idl']
|
||||||
'nsIParentalControlsService.idl',
|
|
||||||
]
|
|
||||||
|
|
||||||
XPIDL_MODULE = 'parentalcontrols'
|
XPIDL_MODULE = 'parentalcontrols'
|
||||||
|
|
||||||
if not CONFIG['MOZ_DISABLE_PARENTAL_CONTROLS']:
|
if not CONFIG['MOZ_DISABLE_PARENTAL_CONTROLS']:
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||||
SOURCES += [
|
SOURCES += ['nsParentalControlsServiceWin.cpp']
|
||||||
'nsParentalControlsServiceWin.cpp',
|
|
||||||
]
|
|
||||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
|
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
|
||||||
UNIFIED_SOURCES += [
|
UNIFIED_SOURCES += ['nsParentalControlsServiceCocoa.mm']
|
||||||
'nsParentalControlsServiceCocoa.mm',
|
|
||||||
]
|
|
||||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
|
||||||
UNIFIED_SOURCES += [
|
|
||||||
'nsParentalControlsServiceAndroid.cpp',
|
|
||||||
]
|
|
||||||
else:
|
else:
|
||||||
SOURCES += [
|
SOURCES += ['nsParentalControlsServiceDefault.cpp']
|
||||||
'nsParentalControlsServiceDefault.cpp',
|
|
||||||
]
|
|
||||||
|
|
||||||
FINAL_LIBRARY = 'xul'
|
FINAL_LIBRARY = 'xul'
|
||||||
|
|
|
||||||
|
|
@ -1,103 +0,0 @@
|
||||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode:nil; c-basic-offset: 2 -*- */
|
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
#include "nsParentalControlsService.h"
|
|
||||||
#include "nsString.h"
|
|
||||||
#include "nsIFile.h"
|
|
||||||
#include "FennecJNIWrappers.h"
|
|
||||||
|
|
||||||
namespace java = mozilla::java;
|
|
||||||
|
|
||||||
NS_IMPL_ISUPPORTS(nsParentalControlsService, nsIParentalControlsService)
|
|
||||||
|
|
||||||
nsParentalControlsService::nsParentalControlsService() :
|
|
||||||
mEnabled(false)
|
|
||||||
{
|
|
||||||
if (mozilla::jni::IsFennec()) {
|
|
||||||
mEnabled = java::Restrictions::IsUserRestricted();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nsParentalControlsService::~nsParentalControlsService()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsParentalControlsService::GetParentalControlsEnabled(bool *aResult)
|
|
||||||
{
|
|
||||||
*aResult = mEnabled;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsParentalControlsService::GetBlockFileDownloadsEnabled(bool *aResult)
|
|
||||||
{
|
|
||||||
// NOTE: isAllowed returns the opposite intention, so we need to flip it
|
|
||||||
bool res;
|
|
||||||
IsAllowed(nsIParentalControlsService::DOWNLOAD, NULL, &res);
|
|
||||||
*aResult = !res;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsParentalControlsService::GetLoggingEnabled(bool *aResult)
|
|
||||||
{
|
|
||||||
// Android doesn't currently have any method of logging restricted actions.
|
|
||||||
*aResult = false;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsParentalControlsService::Log(int16_t aEntryType,
|
|
||||||
bool aBlocked,
|
|
||||||
nsIURI *aSource,
|
|
||||||
nsIFile *aTarget)
|
|
||||||
{
|
|
||||||
return NS_ERROR_NOT_AVAILABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsParentalControlsService::RequestURIOverride(nsIURI *aTarget,
|
|
||||||
nsIInterfaceRequestor *aWindowContext,
|
|
||||||
bool *_retval)
|
|
||||||
{
|
|
||||||
return NS_ERROR_NOT_AVAILABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsParentalControlsService::RequestURIOverrides(nsIArray *aTargets,
|
|
||||||
nsIInterfaceRequestor *aWindowContext,
|
|
||||||
bool *_retval)
|
|
||||||
{
|
|
||||||
return NS_ERROR_NOT_AVAILABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsParentalControlsService::IsAllowed(int16_t aAction,
|
|
||||||
nsIURI *aUri,
|
|
||||||
bool *_retval)
|
|
||||||
{
|
|
||||||
nsresult rv = NS_OK;
|
|
||||||
*_retval = true;
|
|
||||||
|
|
||||||
if (!mEnabled) {
|
|
||||||
return rv;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mozilla::jni::IsFennec()) {
|
|
||||||
nsAutoCString url;
|
|
||||||
if (aUri) {
|
|
||||||
rv = aUri->GetSpec(url);
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
}
|
|
||||||
|
|
||||||
*_retval = java::Restrictions::IsAllowed(aAction,
|
|
||||||
NS_ConvertUTF8toUTF16(url));
|
|
||||||
return rv;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NS_ERROR_NOT_AVAILABLE;
|
|
||||||
}
|
|
||||||
|
|
@ -39,18 +39,14 @@ EXTRA_JS_MODULES += [
|
||||||
|
|
||||||
EXTRA_PP_JS_MODULES += ['OSCrypto.jsm']
|
EXTRA_PP_JS_MODULES += ['OSCrypto.jsm']
|
||||||
|
|
||||||
if CONFIG['OS_TARGET'] == 'Android':
|
EXTRA_COMPONENTS += [
|
||||||
EXTRA_COMPONENTS += [
|
'storage-json.js',
|
||||||
'storage-mozStorage.js',
|
]
|
||||||
]
|
|
||||||
else:
|
EXTRA_JS_MODULES += [
|
||||||
EXTRA_COMPONENTS += [
|
'LoginImport.jsm',
|
||||||
'storage-json.js',
|
'LoginStore.jsm',
|
||||||
]
|
]
|
||||||
EXTRA_JS_MODULES += [
|
|
||||||
'LoginImport.jsm',
|
|
||||||
'LoginStore.jsm',
|
|
||||||
]
|
|
||||||
|
|
||||||
if CONFIG['OS_TARGET'] == 'WINNT':
|
if CONFIG['OS_TARGET'] == 'WINNT':
|
||||||
EXTRA_JS_MODULES += [
|
EXTRA_JS_MODULES += [
|
||||||
|
|
|
||||||
|
|
@ -112,11 +112,7 @@ LoginManager.prototype = {
|
||||||
|
|
||||||
|
|
||||||
_initStorage() {
|
_initStorage() {
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
let contractID = "@mozilla.org/login-manager/storage/mozStorage;1";
|
|
||||||
#else
|
|
||||||
let contractID = "@mozilla.org/login-manager/storage/json;1";
|
let contractID = "@mozilla.org/login-manager/storage/json;1";
|
||||||
#endif
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let catMan = Cc["@mozilla.org/categorymanager;1"].
|
let catMan = Cc["@mozilla.org/categorymanager;1"].
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,7 @@ const LoginInfo =
|
||||||
const BRAND_BUNDLE = "chrome://branding/locale/brand.properties";
|
const BRAND_BUNDLE = "chrome://branding/locale/brand.properties";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constants for password prompt telemetry.
|
* Constants for password prompt telemetry. */
|
||||||
* Mirrored in mobile/android/components/LoginManagerPrompter.js */
|
|
||||||
const PROMPT_DISPLAYED = 0;
|
const PROMPT_DISPLAYED = 0;
|
||||||
|
|
||||||
const PROMPT_ADD_OR_UPDATE = 1;
|
const PROMPT_ADD_OR_UPDATE = 1;
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,7 @@ component {8aa66d77-1bbb-45a6-991e-b8f47751c291} nsLoginManagerPrompter.js
|
||||||
contract @mozilla.org/login-manager/prompter;1 {8aa66d77-1bbb-45a6-991e-b8f47751c291}
|
contract @mozilla.org/login-manager/prompter;1 {8aa66d77-1bbb-45a6-991e-b8f47751c291}
|
||||||
component {0f2f347c-1e4f-40cc-8efd-792dea70a85e} nsLoginInfo.js
|
component {0f2f347c-1e4f-40cc-8efd-792dea70a85e} nsLoginInfo.js
|
||||||
contract @mozilla.org/login-manager/loginInfo;1 {0f2f347c-1e4f-40cc-8efd-792dea70a85e}
|
contract @mozilla.org/login-manager/loginInfo;1 {0f2f347c-1e4f-40cc-8efd-792dea70a85e}
|
||||||
#ifdef ANDROID
|
|
||||||
component {8c2023b9-175c-477e-9761-44ae7b549756} storage-mozStorage.js
|
|
||||||
contract @mozilla.org/login-manager/storage/mozStorage;1 {8c2023b9-175c-477e-9761-44ae7b549756}
|
|
||||||
#else
|
|
||||||
component {c00c432d-a0c9-46d7-bef6-9c45b4d07341} storage-json.js
|
component {c00c432d-a0c9-46d7-bef6-9c45b4d07341} storage-json.js
|
||||||
contract @mozilla.org/login-manager/storage/json;1 {c00c432d-a0c9-46d7-bef6-9c45b4d07341}
|
contract @mozilla.org/login-manager/storage/json;1 {c00c432d-a0c9-46d7-bef6-9c45b4d07341}
|
||||||
#endif
|
|
||||||
component {dc6c2976-0f73-4f1f-b9ff-3d72b4e28309} crypto-SDR.js
|
component {dc6c2976-0f73-4f1f-b9ff-3d72b4e28309} crypto-SDR.js
|
||||||
contract @mozilla.org/login-manager/crypto/SDR;1 {dc6c2976-0f73-4f1f-b9ff-3d72b4e28309}
|
contract @mozilla.org/login-manager/crypto/SDR;1 {dc6c2976-0f73-4f1f-b9ff-3d72b4e28309}
|
||||||
|
|
@ -101,11 +101,7 @@ const DAY_IN_MS = 86400000; // 1 day in milliseconds
|
||||||
const MAX_SEARCH_TOKENS = 10;
|
const MAX_SEARCH_TOKENS = 10;
|
||||||
const NOOP = function noop() {};
|
const NOOP = function noop() {};
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
var supportsDeletedTable = true;
|
|
||||||
#else
|
|
||||||
var supportsDeletedTable = false;
|
var supportsDeletedTable = false;
|
||||||
#endif
|
|
||||||
|
|
||||||
var Prefs = {
|
var Prefs = {
|
||||||
initialized: false,
|
initialized: false,
|
||||||
|
|
|
||||||
|
|
@ -985,7 +985,6 @@ nsFormFillController::Focus(nsIDOMEvent* aEvent)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef ANDROID
|
|
||||||
nsCOMPtr<nsIFormControl> formControl = do_QueryInterface(mFocusedInputNode);
|
nsCOMPtr<nsIFormControl> formControl = do_QueryInterface(mFocusedInputNode);
|
||||||
MOZ_ASSERT(formControl);
|
MOZ_ASSERT(formControl);
|
||||||
|
|
||||||
|
|
@ -995,7 +994,6 @@ nsFormFillController::Focus(nsIDOMEvent* aEvent)
|
||||||
&& formControl->GetType() == NS_FORM_INPUT_PASSWORD) {
|
&& formControl->GetType() == NS_FORM_INPUT_PASSWORD) {
|
||||||
ShowPopup();
|
ShowPopup();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
mContextMenuFiredBeforeFocus = false;
|
mContextMenuFiredBeforeFocus = false;
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
|
|
||||||
|
|
@ -349,26 +349,6 @@ FormHistory.prototype = {
|
||||||
},
|
},
|
||||||
|
|
||||||
moveToDeletedTable : function moveToDeletedTable(values, params) {
|
moveToDeletedTable : function moveToDeletedTable(values, params) {
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
this.log("Moving entries to deleted table.");
|
|
||||||
|
|
||||||
let stmt;
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Move the entries to the deleted items table.
|
|
||||||
let query = "INSERT INTO moz_deleted_formhistory (guid, timeDeleted) ";
|
|
||||||
if (values) query += values;
|
|
||||||
stmt = this.dbCreateStatement(query, params);
|
|
||||||
stmt.execute();
|
|
||||||
} catch (e) {
|
|
||||||
this.log("Moving deleted entries failed: " + e);
|
|
||||||
throw e;
|
|
||||||
} finally {
|
|
||||||
if (stmt) {
|
|
||||||
stmt.reset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
},
|
},
|
||||||
|
|
||||||
get dbConnection() {
|
get dbConnection() {
|
||||||
|
|
|
||||||
|
|
@ -2213,32 +2213,8 @@ Engine.prototype = {
|
||||||
this.lazySerializeTask.arm();
|
this.lazySerializeTask.arm();
|
||||||
},
|
},
|
||||||
|
|
||||||
#ifdef ANDROID
|
|
||||||
get _defaultMobileResponseType() {
|
|
||||||
let type = URLTYPE_SEARCH_HTML;
|
|
||||||
|
|
||||||
let sysInfo = Cc["@mozilla.org/system-info;1"].getService(Ci.nsIPropertyBag2);
|
|
||||||
let isTablet = sysInfo.get("tablet");
|
|
||||||
if (isTablet && this.supportsResponseType("application/x-moz-tabletsearch")) {
|
|
||||||
// Check for a tablet-specific search URL override
|
|
||||||
type = "application/x-moz-tabletsearch";
|
|
||||||
} else if (!isTablet && this.supportsResponseType("application/x-moz-phonesearch")) {
|
|
||||||
// Check for a phone-specific search URL override
|
|
||||||
type = "application/x-moz-phonesearch";
|
|
||||||
}
|
|
||||||
|
|
||||||
delete this._defaultMobileResponseType;
|
|
||||||
return this._defaultMobileResponseType = type;
|
|
||||||
},
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// from nsISearchEngine
|
// from nsISearchEngine
|
||||||
getSubmission: function SRCH_ENG_getSubmission(aData, aResponseType, aPurpose) {
|
getSubmission: function SRCH_ENG_getSubmission(aData, aResponseType, aPurpose) {
|
||||||
#ifdef ANDROID
|
|
||||||
if (!aResponseType) {
|
|
||||||
aResponseType = this._defaultMobileResponseType;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (!aResponseType) {
|
if (!aResponseType) {
|
||||||
aResponseType = URLTYPE_SEARCH_HTML;
|
aResponseType = URLTYPE_SEARCH_HTML;
|
||||||
}
|
}
|
||||||
|
|
@ -2272,11 +2248,6 @@ Engine.prototype = {
|
||||||
|
|
||||||
// from nsISearchEngine
|
// from nsISearchEngine
|
||||||
getResultDomain: function SRCH_ENG_getResultDomain(aResponseType) {
|
getResultDomain: function SRCH_ENG_getResultDomain(aResponseType) {
|
||||||
#ifdef ANDROID
|
|
||||||
if (!aResponseType) {
|
|
||||||
aResponseType = this._defaultMobileResponseType;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (!aResponseType) {
|
if (!aResponseType) {
|
||||||
aResponseType = URLTYPE_SEARCH_HTML;
|
aResponseType = URLTYPE_SEARCH_HTML;
|
||||||
}
|
}
|
||||||
|
|
@ -2293,11 +2264,7 @@ Engine.prototype = {
|
||||||
* Returns URL parsing properties used by _buildParseSubmissionMap.
|
* Returns URL parsing properties used by _buildParseSubmissionMap.
|
||||||
*/
|
*/
|
||||||
getURLParsingInfo: function () {
|
getURLParsingInfo: function () {
|
||||||
#ifdef ANDROID
|
|
||||||
let responseType = this._defaultMobileResponseType;
|
|
||||||
#else
|
|
||||||
let responseType = URLTYPE_SEARCH_HTML;
|
let responseType = URLTYPE_SEARCH_HTML;
|
||||||
#endif
|
|
||||||
|
|
||||||
LOG("getURLParsingInfo: responseType: \"" + responseType + "\"");
|
LOG("getURLParsingInfo: responseType: \"" + responseType + "\"");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,9 +83,7 @@ namespace safebrowsing {
|
||||||
static PlatformType
|
static PlatformType
|
||||||
GetPlatformType()
|
GetPlatformType()
|
||||||
{
|
{
|
||||||
#if defined(ANDROID)
|
#if defined(XP_MACOSX)
|
||||||
return ANDROID_PLATFORM;
|
|
||||||
#elif defined(XP_MACOSX)
|
|
||||||
return OSX_PLATFORM;
|
return OSX_PLATFORM;
|
||||||
#elif defined(XP_LINUX)
|
#elif defined(XP_LINUX)
|
||||||
return LINUX_PLATFORM;
|
return LINUX_PLATFORM;
|
||||||
|
|
|
||||||
|
|
@ -599,16 +599,6 @@ function copyContentsToClipboard() {
|
||||||
let clipboard = Cc["@mozilla.org/widget/clipboard;1"]
|
let clipboard = Cc["@mozilla.org/widget/clipboard;1"]
|
||||||
.getService(Ci.nsIClipboard);
|
.getService(Ci.nsIClipboard);
|
||||||
clipboard.setData(transferable, null, clipboard.kGlobalClipboard);
|
clipboard.setData(transferable, null, clipboard.kGlobalClipboard);
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
// Present a toast notification.
|
|
||||||
let message = {
|
|
||||||
type: "Toast:Show",
|
|
||||||
message: stringBundle().GetStringFromName("textCopied"),
|
|
||||||
duration: "short"
|
|
||||||
};
|
|
||||||
Services.androidBridge.handleGeckoMessage(message);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return the plain text representation of an element. Do a little bit
|
// Return the plain text representation of an element. Do a little bit
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,6 @@
|
||||||
<td id="buildid-box"></td>
|
<td id="buildid-box"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
#ifndef ANDROID
|
|
||||||
#ifdef MOZ_UPDATER
|
#ifdef MOZ_UPDATER
|
||||||
<tr class="no-copy">
|
<tr class="no-copy">
|
||||||
<th class="column">
|
<th class="column">
|
||||||
|
|
@ -115,7 +114,6 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MOZ_UPDATER
|
#ifdef MOZ_UPDATER
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -240,7 +238,6 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
#ifndef ANDROID
|
|
||||||
<tr class="no-copy">
|
<tr class="no-copy">
|
||||||
<th class="column">
|
<th class="column">
|
||||||
&aboutSupport.appBasicsProfiles;
|
&aboutSupport.appBasicsProfiles;
|
||||||
|
|
@ -250,8 +247,6 @@
|
||||||
<a href="about:profiles">about:profiles</a>
|
<a href="about:profiles">about:profiles</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
#endif
|
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -233,17 +233,9 @@ var Settings = {
|
||||||
let elements = document.getElementsByClassName("change-data-choices-link");
|
let elements = document.getElementsByClassName("change-data-choices-link");
|
||||||
for (let el of elements) {
|
for (let el of elements) {
|
||||||
el.addEventListener("click", function() {
|
el.addEventListener("click", function() {
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
Cu.import("resource://gre/modules/Messaging.jsm");
|
|
||||||
Messaging.sendRequest({
|
|
||||||
type: "Settings:Show",
|
|
||||||
resource: "preferences_privacy",
|
|
||||||
});
|
|
||||||
#else
|
|
||||||
// Show the data choices preferences on desktop.
|
// Show the data choices preferences on desktop.
|
||||||
let mainWindow = getMainWindowWithPreferencesPane();
|
let mainWindow = getMainWindowWithPreferencesPane();
|
||||||
mainWindow.openAdvancedPreferences("dataChoicesTab");
|
mainWindow.openAdvancedPreferences("dataChoicesTab");
|
||||||
#endif
|
|
||||||
}, false);
|
}, false);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -58,9 +58,5 @@
|
||||||
</table>
|
</table>
|
||||||
<h2>Configure options</h2>
|
<h2>Configure options</h2>
|
||||||
<p>@MOZ_CONFIGURE_OPTIONS@</p>
|
<p>@MOZ_CONFIGURE_OPTIONS@</p>
|
||||||
#ifdef ANDROID
|
|
||||||
<h2>Package name</h2>
|
|
||||||
<p>@ANDROID_PACKAGE_NAME@</p>
|
|
||||||
#endif
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1115,40 +1115,8 @@ function validateFileName(aFileName)
|
||||||
aFileName = aFileName.replace(/[\<]+/g, "(");
|
aFileName = aFileName.replace(/[\<]+/g, "(");
|
||||||
aFileName = aFileName.replace(/[\>]+/g, ")");
|
aFileName = aFileName.replace(/[\>]+/g, ")");
|
||||||
}
|
}
|
||||||
else if (navigator.appVersion.indexOf("Macintosh") != -1)
|
else if (navigator.appVersion.indexOf("Macintosh") != -1) {
|
||||||
re = /[\:\/]+/g;
|
re = /[\:\/]+/g;
|
||||||
else if (navigator.appVersion.indexOf("Android") != -1) {
|
|
||||||
// On mobile devices, the filesystem may be very limited in what
|
|
||||||
// it considers valid characters. To avoid errors, we sanitize
|
|
||||||
// conservatively.
|
|
||||||
const dangerousChars = "*?<>|\":/\\[];,+=";
|
|
||||||
var processed = "";
|
|
||||||
for (var i = 0; i < aFileName.length; i++)
|
|
||||||
processed += aFileName.charCodeAt(i) >= 32 &&
|
|
||||||
!(dangerousChars.indexOf(aFileName[i]) >= 0) ? aFileName[i]
|
|
||||||
: "_";
|
|
||||||
|
|
||||||
// Last character should not be a space
|
|
||||||
processed = processed.trim();
|
|
||||||
|
|
||||||
// If a large part of the filename has been sanitized, then we
|
|
||||||
// will use a default filename instead
|
|
||||||
if (processed.replace(/_/g, "").length <= processed.length/2) {
|
|
||||||
// We purposefully do not use a localized default filename,
|
|
||||||
// which we could have done using
|
|
||||||
// ContentAreaUtils.stringBundle.GetStringFromName("DefaultSaveFileName")
|
|
||||||
// since it may contain invalid characters.
|
|
||||||
var original = processed;
|
|
||||||
processed = "download";
|
|
||||||
|
|
||||||
// Preserve a suffix, if there is one
|
|
||||||
if (original.indexOf(".") >= 0) {
|
|
||||||
var suffix = original.split(".").slice(-1)[0];
|
|
||||||
if (suffix && suffix.indexOf("_") < 0)
|
|
||||||
processed += "." + suffix;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return processed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return aFileName.replace(re, "_");
|
return aFileName.replace(re, "_");
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,8 @@ toolkit.jar:
|
||||||
#endif
|
#endif
|
||||||
content/global/aboutNetworking.js
|
content/global/aboutNetworking.js
|
||||||
content/global/aboutNetworking.xhtml
|
content/global/aboutNetworking.xhtml
|
||||||
#ifndef ANDROID
|
|
||||||
* content/global/aboutProfiles.js
|
* content/global/aboutProfiles.js
|
||||||
content/global/aboutProfiles.xhtml
|
content/global/aboutProfiles.xhtml
|
||||||
#endif
|
|
||||||
content/global/aboutServiceWorkers.js
|
content/global/aboutServiceWorkers.js
|
||||||
content/global/aboutServiceWorkers.xhtml
|
content/global/aboutServiceWorkers.xhtml
|
||||||
#ifdef MOZ_WEBRTC
|
#ifdef MOZ_WEBRTC
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,6 @@ for var in ('target',
|
||||||
DEFINES['CFLAGS'] = CONFIG['OS_CFLAGS']
|
DEFINES['CFLAGS'] = CONFIG['OS_CFLAGS']
|
||||||
DEFINES['TOPOBJDIR'] = TOPOBJDIR
|
DEFINES['TOPOBJDIR'] = TOPOBJDIR
|
||||||
|
|
||||||
if CONFIG['OS_TARGET'] == 'Android':
|
|
||||||
DEFINES['ANDROID_PACKAGE_NAME'] = CONFIG['ANDROID_PACKAGE_NAME']
|
|
||||||
|
|
||||||
if CONFIG['MOZ_ANDROID_CXX_STL'] == 'libc++':
|
if CONFIG['MOZ_ANDROID_CXX_STL'] == 'libc++':
|
||||||
DEFINES['MOZ_USE_LIBCXX'] = True
|
DEFINES['MOZ_USE_LIBCXX'] = True
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@
|
||||||
EXTRA_DEPS += $(topsrcdir)/toolkit/library/libxul.mk
|
EXTRA_DEPS += $(topsrcdir)/toolkit/library/libxul.mk
|
||||||
|
|
||||||
ifeq (Linux,$(OS_ARCH))
|
ifeq (Linux,$(OS_ARCH))
|
||||||
ifneq (Android,$(OS_TARGET))
|
|
||||||
OS_LDFLAGS += -Wl,-version-script,symverscript
|
OS_LDFLAGS += -Wl,-version-script,symverscript
|
||||||
|
|
||||||
symverscript: $(topsrcdir)/toolkit/library/symverscript.in
|
symverscript: $(topsrcdir)/toolkit/library/symverscript.in
|
||||||
|
|
@ -14,7 +13,6 @@ symverscript: $(topsrcdir)/toolkit/library/symverscript.in
|
||||||
|
|
||||||
EXTRA_DEPS += symverscript
|
EXTRA_DEPS += symverscript
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef MOZ_WEBRTC
|
ifdef MOZ_WEBRTC
|
||||||
ifeq (WINNT,$(OS_TARGET))
|
ifeq (WINNT,$(OS_TARGET))
|
||||||
|
|
|
||||||
|
|
@ -178,7 +178,7 @@ if CONFIG['OS_ARCH'] == 'WINNT':
|
||||||
'winspool',
|
'winspool',
|
||||||
]
|
]
|
||||||
|
|
||||||
if CONFIG['OS_ARCH'] == 'Linux' and CONFIG['OS_TARGET'] != 'Android':
|
if CONFIG['OS_ARCH'] == 'Linux':
|
||||||
OS_LIBS += [
|
OS_LIBS += [
|
||||||
'rt',
|
'rt',
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -51,9 +51,6 @@ XPCOMUtils.defineLazyGetter(Services, "ppmm", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
var initTable = [
|
var initTable = [
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
["androidBridge", "@mozilla.org/android/bridge;1", "nsIAndroidBridge"],
|
|
||||||
#endif
|
|
||||||
["appShell", "@mozilla.org/appshell/appShellService;1", "nsIAppShellService"],
|
["appShell", "@mozilla.org/appshell/appShellService;1", "nsIAppShellService"],
|
||||||
["cache", "@mozilla.org/network/cache-service;1", "nsICacheService"],
|
["cache", "@mozilla.org/network/cache-service;1", "nsICacheService"],
|
||||||
["cache2", "@mozilla.org/netwerk/cache-storage-service;1", "nsICacheStorageService"],
|
["cache2", "@mozilla.org/netwerk/cache-storage-service;1", "nsICacheStorageService"],
|
||||||
|
|
|
||||||
|
|
@ -105,16 +105,14 @@ EXTRA_PP_JS_MODULES += [
|
||||||
'Services.jsm',
|
'Services.jsm',
|
||||||
]
|
]
|
||||||
|
|
||||||
if 'Android' != CONFIG['OS_TARGET']:
|
|
||||||
EXTRA_PP_JS_MODULES += [
|
|
||||||
'LightweightThemeConsumer.jsm',
|
|
||||||
]
|
|
||||||
|
|
||||||
DIRS += [
|
EXTRA_PP_JS_MODULES += [
|
||||||
'subprocess',
|
'LightweightThemeConsumer.jsm',
|
||||||
]
|
]
|
||||||
else:
|
|
||||||
DEFINES['ANDROID'] = True
|
DIRS += [
|
||||||
|
'subprocess',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||||
|
|
|
||||||
|
|
@ -30,16 +30,15 @@ if CONFIG['MOZ_WEBEXTENSIONS']:
|
||||||
else:
|
else:
|
||||||
DIRS += ['mozapps/extensions']
|
DIRS += ['mozapps/extensions']
|
||||||
|
|
||||||
if CONFIG['MOZ_UPDATER'] and CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
|
if CONFIG['MOZ_UPDATER']:
|
||||||
DIRS += ['mozapps/update']
|
DIRS += ['mozapps/update']
|
||||||
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||||
if CONFIG['MOZ_UPDATER'] and CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
# Including mozapps/update/common-standalone allows the maintenance service
|
||||||
# Including mozapps/update/common-standalone allows the maintenance service
|
# to be built so the maintenance service can be used for things other than
|
||||||
# to be built so the maintenance service can be used for things other than
|
# updating applications.
|
||||||
# updating applications.
|
DIRS += [
|
||||||
DIRS += [
|
'mozapps/update/common-standalone',
|
||||||
'mozapps/update/common-standalone',
|
]
|
||||||
]
|
|
||||||
|
|
||||||
DIRS += ['xre']
|
DIRS += ['xre']
|
||||||
|
|
||||||
|
|
@ -49,5 +48,3 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
|
||||||
DIRS += ['system/osxproxy']
|
DIRS += ['system/osxproxy']
|
||||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||||
DIRS += ['system/windowsproxy']
|
DIRS += ['system/windowsproxy']
|
||||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
|
||||||
DIRS += ['system/androidproxy']
|
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,6 @@ option('--enable-systrace', env='MOZ_USE_SYSTRACE',
|
||||||
|
|
||||||
@depends('--enable-systrace', target)
|
@depends('--enable-systrace', target)
|
||||||
def systrace(value, target):
|
def systrace(value, target):
|
||||||
if value and target.os != 'Android':
|
|
||||||
die('--enable-systrace cannot be used when targeting %s',
|
|
||||||
target.os)
|
|
||||||
if value:
|
if value:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
@ -66,7 +63,7 @@ set_config('L10NBASEDIR', l10n_base)
|
||||||
# reason.
|
# reason.
|
||||||
option('--enable-default-toolkit', nargs=1,
|
option('--enable-default-toolkit', nargs=1,
|
||||||
choices=('cairo-windows', 'cairo-gtk2', 'cairo-gtk2-x11', 'cairo-gtk3',
|
choices=('cairo-windows', 'cairo-gtk2', 'cairo-gtk2-x11', 'cairo-gtk3',
|
||||||
'cairo-cocoa', 'cairo-uikit', 'cairo-android'),
|
'cairo-cocoa', 'cairo-uikit'),
|
||||||
help='Select default toolkit')
|
help='Select default toolkit')
|
||||||
|
|
||||||
@depends('--enable-default-toolkit', target)
|
@depends('--enable-default-toolkit', target)
|
||||||
|
|
@ -80,13 +77,6 @@ def toolkit(value, target):
|
||||||
platform_choices = ('cairo-cocoa',)
|
platform_choices = ('cairo-cocoa',)
|
||||||
elif target.os == 'iOS':
|
elif target.os == 'iOS':
|
||||||
platform_choices = ('cairo-uikit',)
|
platform_choices = ('cairo-uikit',)
|
||||||
elif target.os == 'Android':
|
|
||||||
if value.origin == 'implied':
|
|
||||||
# Trust values coming from imply_option() (used in
|
|
||||||
# b2g/moz.configure).
|
|
||||||
platform_choices = tuple(value)
|
|
||||||
else:
|
|
||||||
platform_choices = ('cairo-android',)
|
|
||||||
else:
|
else:
|
||||||
platform_choices = ('cairo-gtk3', 'cairo-gtk2', 'cairo-gtk2-x11')
|
platform_choices = ('cairo-gtk3', 'cairo-gtk2', 'cairo-gtk2-x11')
|
||||||
|
|
||||||
|
|
@ -185,7 +175,7 @@ set_define(gl_provider_define, True)
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
@depends(toolkit)
|
@depends(toolkit)
|
||||||
def pdf_printing(toolkit):
|
def pdf_printing(toolkit):
|
||||||
if toolkit in ('windows', 'gtk2', 'gtk3', 'android'):
|
if toolkit in ('windows', 'gtk2', 'gtk3'):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@depends(pdf_printing)
|
@depends(pdf_printing)
|
||||||
|
|
@ -207,8 +197,7 @@ option(env='MOZ_INSTRUMENT_EVENT_LOOP',
|
||||||
|
|
||||||
@depends('MOZ_INSTRUMENT_EVENT_LOOP', toolkit)
|
@depends('MOZ_INSTRUMENT_EVENT_LOOP', toolkit)
|
||||||
def instrument_event_loop(value, toolkit):
|
def instrument_event_loop(value, toolkit):
|
||||||
if value or (toolkit in ('windows', 'gtk2', 'gtk3', 'cocoa',
|
if value or (toolkit in ('windows', 'gtk2', 'gtk3', 'cocoa') and value.origin == 'default'):
|
||||||
'android') and value.origin == 'default'):
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
set_config('MOZ_INSTRUMENT_EVENT_LOOP', instrument_event_loop)
|
set_config('MOZ_INSTRUMENT_EVENT_LOOP', instrument_event_loop)
|
||||||
|
|
@ -266,8 +255,7 @@ add_old_configure_assignment('_HAVE_FREETYPE2',
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
@depends(target)
|
@depends(target)
|
||||||
def tree_freetype(target):
|
def tree_freetype(target):
|
||||||
if target.os == 'Android':
|
return None
|
||||||
return True
|
|
||||||
|
|
||||||
set_define('MOZ_TREE_FREETYPE', tree_freetype)
|
set_define('MOZ_TREE_FREETYPE', tree_freetype)
|
||||||
set_config('MOZ_TREE_FREETYPE', tree_freetype)
|
set_config('MOZ_TREE_FREETYPE', tree_freetype)
|
||||||
|
|
@ -332,7 +320,7 @@ option('--disable-ffmpeg',
|
||||||
def ffmpeg(value, target):
|
def ffmpeg(value, target):
|
||||||
enabled = bool(value)
|
enabled = bool(value)
|
||||||
if value.origin == 'default':
|
if value.origin == 'default':
|
||||||
enabled = target.os not in ('Android', 'WINNT')
|
enabled = target.os not in ('WINNT')
|
||||||
if enabled:
|
if enabled:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
@ -349,8 +337,7 @@ option('--disable-fmp4', env='MOZ_FMP4',
|
||||||
def fmp4(value, target, wmf, applemedia):
|
def fmp4(value, target, wmf, applemedia):
|
||||||
enabled = bool(value)
|
enabled = bool(value)
|
||||||
if value.origin == 'default':
|
if value.origin == 'default':
|
||||||
# target.os == 'Android' includes all B2G versions
|
enabled = wmf or applemedia
|
||||||
enabled = wmf or applemedia or target.os == 'Android'
|
|
||||||
if enabled:
|
if enabled:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
@ -390,7 +377,7 @@ set_config('MOZ_PACKAGER_FORMAT', packager_format)
|
||||||
def jar_maker_format(host, build_project):
|
def jar_maker_format(host, build_project):
|
||||||
# Multilocales for mobile/android use the same mergedirs for all locales,
|
# Multilocales for mobile/android use the same mergedirs for all locales,
|
||||||
# so we can't use symlinks for those builds.
|
# so we can't use symlinks for those builds.
|
||||||
if host.os == 'WINNT' or build_project == 'mobile/android':
|
if host.os == 'WINNT':
|
||||||
return 'flat'
|
return 'flat'
|
||||||
return 'symlink'
|
return 'symlink'
|
||||||
|
|
||||||
|
|
@ -398,23 +385,10 @@ set_config('MOZ_JAR_MAKER_FILE_FORMAT', jar_maker_format)
|
||||||
|
|
||||||
@depends(toolkit)
|
@depends(toolkit)
|
||||||
def omnijar_name(toolkit):
|
def omnijar_name(toolkit):
|
||||||
# Fennec's static resources live in the assets/ folder of the
|
return 'omni.ja'
|
||||||
# APK. Adding a path to the name here works because we only
|
|
||||||
# have one omnijar file in the final package (which is not the
|
|
||||||
# case on desktop), and necessitates some contortions during
|
|
||||||
# packaging so that the resources in the omnijar are considered
|
|
||||||
# as rooted at / and not as rooted at assets/ (which again is
|
|
||||||
# not the case on desktop: there are omnijars rooted at webrtc/,
|
|
||||||
# etc). packager.mk handles changing the rooting of the single
|
|
||||||
# omnijar.
|
|
||||||
return 'assets/omni.ja' if toolkit == 'android' else 'omni.ja'
|
|
||||||
|
|
||||||
set_config('OMNIJAR_NAME', omnijar_name)
|
set_config('OMNIJAR_NAME', omnijar_name)
|
||||||
|
|
||||||
project_flag('MOZ_ANDROID_HISTORY',
|
|
||||||
help='Enable Android History instead of Places',
|
|
||||||
set_as_define=True)
|
|
||||||
|
|
||||||
# Permissions system
|
# Permissions system
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
option(name='--disable-permissions',
|
option(name='--disable-permissions',
|
||||||
|
|
@ -667,13 +641,6 @@ set_config('MOZ_ENABLE_SKIA', skia)
|
||||||
set_define('MOZ_ENABLE_SKIA', skia)
|
set_define('MOZ_ENABLE_SKIA', skia)
|
||||||
set_define('USE_SKIA', skia)
|
set_define('USE_SKIA', skia)
|
||||||
|
|
||||||
@depends(skia, target)
|
|
||||||
def skia_android(skia, target):
|
|
||||||
if skia and target.os == 'Android':
|
|
||||||
return True
|
|
||||||
|
|
||||||
set_define('SK_BUILD_FOR_ANDROID_NDK', skia_android)
|
|
||||||
|
|
||||||
option('--disable-skia-gpu', help='Disable use of Skia-GPU')
|
option('--disable-skia-gpu', help='Disable use of Skia-GPU')
|
||||||
|
|
||||||
@depends('--disable-skia-gpu', skia, target)
|
@depends('--disable-skia-gpu', skia, target)
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
component {4399533d-08d1-458c-a87a-235f74451cfa} addonManager.js
|
component {4399533d-08d1-458c-a87a-235f74451cfa} addonManager.js
|
||||||
contract @mozilla.org/addons/integration;1 {4399533d-08d1-458c-a87a-235f74451cfa}
|
contract @mozilla.org/addons/integration;1 {4399533d-08d1-458c-a87a-235f74451cfa}
|
||||||
category update-timer addonManager @mozilla.org/addons/integration;1,getService,addon-background-update-timer,extensions.update.interval,86400
|
category update-timer addonManager @mozilla.org/addons/integration;1,getService,addon-background-update-timer,extensions.update.interval,86400
|
||||||
|
|
||||||
component {7beb3ba8-6ec3-41b4-b67c-da89b8518922} amContentHandler.js
|
component {7beb3ba8-6ec3-41b4-b67c-da89b8518922} amContentHandler.js
|
||||||
contract @mozilla.org/uriloader/content-handler;1?type=application/x-xpinstall {7beb3ba8-6ec3-41b4-b67c-da89b8518922}
|
contract @mozilla.org/uriloader/content-handler;1?type=application/x-xpinstall {7beb3ba8-6ec3-41b4-b67c-da89b8518922}
|
||||||
|
|
||||||
component {0f38e086-89a3-40a5-8ffc-9b694de1d04a} amWebInstallListener.js
|
component {0f38e086-89a3-40a5-8ffc-9b694de1d04a} amWebInstallListener.js
|
||||||
contract @mozilla.org/addons/web-install-listener;1 {0f38e086-89a3-40a5-8ffc-9b694de1d04a}
|
contract @mozilla.org/addons/web-install-listener;1 {0f38e086-89a3-40a5-8ffc-9b694de1d04a}
|
||||||
|
|
||||||
component {9df8ef2b-94da-45c9-ab9f-132eb55fddf1} amInstallTrigger.js
|
component {9df8ef2b-94da-45c9-ab9f-132eb55fddf1} amInstallTrigger.js
|
||||||
contract @mozilla.org/addons/installtrigger;1 {9df8ef2b-94da-45c9-ab9f-132eb55fddf1}
|
contract @mozilla.org/addons/installtrigger;1 {9df8ef2b-94da-45c9-ab9f-132eb55fddf1}
|
||||||
category JavaScript-global-property InstallTrigger @mozilla.org/addons/installtrigger;1
|
category JavaScript-global-property InstallTrigger @mozilla.org/addons/installtrigger;1
|
||||||
#ifndef MOZ_WIDGET_ANDROID
|
|
||||||
category addon-provider-module PluginProvider resource://gre/modules/addons/PluginProvider.jsm
|
category addon-provider-module PluginProvider resource://gre/modules/addons/PluginProvider.jsm
|
||||||
#endif
|
|
||||||
category addon-provider-module GMPProvider resource://gre/modules/addons/GMPProvider.jsm
|
category addon-provider-module GMPProvider resource://gre/modules/addons/GMPProvider.jsm
|
||||||
|
|
|
||||||
|
|
@ -10,16 +10,11 @@ EXTRA_JS_MODULES.addons += [
|
||||||
'Content.js',
|
'Content.js',
|
||||||
'GMPProvider.jsm',
|
'GMPProvider.jsm',
|
||||||
'LightweightThemeImageOptimizer.jsm',
|
'LightweightThemeImageOptimizer.jsm',
|
||||||
|
'PluginProvider.jsm',
|
||||||
'ProductAddonChecker.jsm',
|
'ProductAddonChecker.jsm',
|
||||||
'SpellCheckDictionaryBootstrap.js',
|
'SpellCheckDictionaryBootstrap.js',
|
||||||
]
|
]
|
||||||
|
|
||||||
# Don't ship unused providers on Android
|
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
|
|
||||||
EXTRA_JS_MODULES.addons += [
|
|
||||||
'PluginProvider.jsm',
|
|
||||||
]
|
|
||||||
|
|
||||||
EXTRA_PP_JS_MODULES.addons += [
|
EXTRA_PP_JS_MODULES.addons += [
|
||||||
'AddonRepository.jsm',
|
'AddonRepository.jsm',
|
||||||
'AddonUpdateChecker.jsm',
|
'AddonUpdateChecker.jsm',
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
@depends(build_project, '--help')
|
@depends(build_project, '--help')
|
||||||
def dbm_default(build_project, _):
|
def dbm_default(build_project, _):
|
||||||
return build_project not in ('mobile/android', 'b2g', 'b2g/graphene')
|
return True
|
||||||
|
|
||||||
option('--enable-dbm', default=dbm_default, help='Enable building DBM')
|
option('--enable-dbm', default=dbm_default, help='Enable building DBM')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -811,10 +811,10 @@ nsToolkitProfileService::CreateProfileInternal(nsIFile* aRootDir,
|
||||||
rv = rootDir->Create(nsIFile::DIRECTORY_TYPE, 0700);
|
rv = rootDir->Create(nsIFile::DIRECTORY_TYPE, 0700);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
rv = rootDir->SetPermissions(0700);
|
rv = rootDir->SetPermissions(0700);
|
||||||
#ifndef ANDROID
|
|
||||||
// If the profile is on the sdcard, this will fail but its non-fatal
|
// If the profile is on the sdcard, this will fail but its non-fatal
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rv = localDir->Exists(&exists);
|
rv = localDir->Exists(&exists);
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
||||||
# vim: set filetype=python:
|
|
||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
SOURCES += [
|
|
||||||
'nsAndroidSystemProxySettings.cpp',
|
|
||||||
]
|
|
||||||
|
|
||||||
FINAL_LIBRARY = 'xul'
|
|
||||||
|
|
@ -1,89 +0,0 @@
|
||||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
#include "nsIURI.h"
|
|
||||||
|
|
||||||
#include "nsISystemProxySettings.h"
|
|
||||||
#include "nsIServiceManager.h"
|
|
||||||
#include "mozilla/ModuleUtils.h"
|
|
||||||
#include "nsPrintfCString.h"
|
|
||||||
#include "nsNetCID.h"
|
|
||||||
#include "nsISupportsPrimitives.h"
|
|
||||||
#include "nsIURI.h"
|
|
||||||
|
|
||||||
#include "AndroidBridge.h"
|
|
||||||
|
|
||||||
class nsAndroidSystemProxySettings : public nsISystemProxySettings
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
NS_DECL_THREADSAFE_ISUPPORTS
|
|
||||||
NS_DECL_NSISYSTEMPROXYSETTINGS
|
|
||||||
|
|
||||||
nsAndroidSystemProxySettings() {};
|
|
||||||
nsresult Init();
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual ~nsAndroidSystemProxySettings() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
NS_IMPL_ISUPPORTS(nsAndroidSystemProxySettings, nsISystemProxySettings)
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsAndroidSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)
|
|
||||||
{
|
|
||||||
*aMainThreadOnly = true;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsAndroidSystemProxySettings::Init()
|
|
||||||
{
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsAndroidSystemProxySettings::GetPACURI(nsACString& aResult)
|
|
||||||
{
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsAndroidSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
|
|
||||||
const nsACString & aScheme,
|
|
||||||
const nsACString & aHost,
|
|
||||||
const int32_t aPort,
|
|
||||||
nsACString & aResult)
|
|
||||||
{
|
|
||||||
return mozilla::AndroidBridge::Bridge()->GetProxyForURI(aSpec, aScheme, aHost, aPort, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAndroidSystemProxySettings, Init)
|
|
||||||
|
|
||||||
#define NS_ANDROIDSYSTEMPROXYSERVICE_CID \
|
|
||||||
{0xf01f0060, 0x3708, 0x478e, \
|
|
||||||
{0xb9, 0x35, 0x3e, 0xce, 0x8b, 0xe2, 0x94, 0xb8}}
|
|
||||||
|
|
||||||
NS_DEFINE_NAMED_CID(NS_ANDROIDSYSTEMPROXYSERVICE_CID);
|
|
||||||
|
|
||||||
void test() {};
|
|
||||||
|
|
||||||
static const mozilla::Module::CIDEntry kSysProxyCIDs[] = {
|
|
||||||
{ &kNS_ANDROIDSYSTEMPROXYSERVICE_CID, false, nullptr, nsAndroidSystemProxySettingsConstructor },
|
|
||||||
{ nullptr }
|
|
||||||
};
|
|
||||||
|
|
||||||
static const mozilla::Module::ContractIDEntry kSysProxyContracts[] = {
|
|
||||||
{ NS_SYSTEMPROXYSETTINGS_CONTRACTID, &kNS_ANDROIDSYSTEMPROXYSERVICE_CID },
|
|
||||||
{ nullptr }
|
|
||||||
};
|
|
||||||
|
|
||||||
static const mozilla::Module kSysProxyModule = {
|
|
||||||
mozilla::Module::kVersion,
|
|
||||||
kSysProxyCIDs,
|
|
||||||
kSysProxyContracts
|
|
||||||
};
|
|
||||||
|
|
||||||
NSMODULE_DEFN(nsAndroidProxyModule) = &kSysProxyModule;
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Empty stub for theme CSS
|
|
||||||
*/
|
|
||||||
|
Before Width: | Height: | Size: 2.1 KiB |
|
|
@ -1,17 +0,0 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
@media not print {
|
|
||||||
/* N.B.: Remember to update ImageDocument.css in the tree or reftests may fail! */
|
|
||||||
|
|
||||||
body {
|
|
||||||
color: #eee;
|
|
||||||
background-image: url("chrome://global/skin/media/imagedoc-darknoise.png");
|
|
||||||
}
|
|
||||||
|
|
||||||
img.transparent {
|
|
||||||
background: hsl(0,0%,90%) url("chrome://global/skin/media/imagedoc-lightnoise.png");
|
|
||||||
color: #222;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-image: url("chrome://global/skin/media/imagedoc-darknoise.png");
|
|
||||||
background-color: rgb(33,33,33); /* Average color of that ^ image. */
|
|
||||||
}
|
|
||||||
|
|
||||||
video {
|
|
||||||
box-shadow: 0 0 15px #000;
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 433 B |
|
Before Width: | Height: | Size: 3 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
|
@ -1,30 +0,0 @@
|
||||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMinYMin meet" viewBox="0 0 64 64">
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="whiteGradientStops">
|
|
||||||
<stop style="stop-color:#fff;stop-opacity:.95" offset="0"/>
|
|
||||||
<stop style="stop-color:#fff;stop-opacity:.75" offset=".45"/>
|
|
||||||
<stop style="stop-color:#fff;stop-opacity:.72" offset=".55"/>
|
|
||||||
<stop style="stop-color:#fff;stop-opacity:.65" offset="1"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient x1="32" y1="0" x2="32" y2="62" id="whiteGradient" xlink:href="#whiteGradientStops" gradientUnits="userSpaceOnUse"/>
|
|
||||||
<linearGradient id="arrowGradientStops">
|
|
||||||
<stop style="stop-color:#333;stop-opacity:.5" offset="0"/>
|
|
||||||
<stop style="stop-color:#666;stop-opacity:.5" offset="1"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient x1="32" y1="16" x2="32" y2="48" id="arrowGradient" xlink:href="#arrowGradientStops" gradientUnits="userSpaceOnUse"/>
|
|
||||||
<filter x="-0.15" y="-0.15" width="1.25" height="1.25" color-interpolation-filters="sRGB" id="dropShadow">
|
|
||||||
<feDropShadow dx="0" dy="1" flood-opacity="0.5"/>
|
|
||||||
</filter>
|
|
||||||
<mask id="dropShadowMask">
|
|
||||||
<path style="fill:#fff;" d="M47.285,30.991L23.75,17.24c-0.357-0.208-0.692-0.278-0.969-0.221 C22.32,17.115,22,17.555,22,18.252v27.499c0,1.112,0.797,1.568,1.75,1.011l23.535-13.748C48.238,32.458,48.238,31.547,47.285,30.991 z M0,0v64h64V0H0z M32,60C16.536,60,4,47.464,4,32S16.536,4,32,4s28,12.536,28,28S47.464,60,32,60z"/>
|
|
||||||
</mask>
|
|
||||||
</defs>
|
|
||||||
<path mask="url(#dropShadowMask)" id="playButtonShadow" style="filter:url(#dropShadow);" d="M32,4C16.536,4,4,16.536,4,32s12.536,28,28,28s28-12.536,28-28S47.464,4,32,4z M47.285,33.014 L23.75,46.762C22.797,47.319,22,46.863,22,45.751v-27.5c0-0.697,0.32-1.137,0.781-1.232c0.277-0.058,0.612,0.012,0.969,0.221 l23.535,13.751C48.238,31.546,48.238,32.458,47.285,33.014z"/>
|
|
||||||
<path id="playButtonArrow" style="fill:url(#arrowGradient);" d="M22.781,17.019C22.32,17.114,22,17.555,22,18.251v27.5c0,1.112,0.797,1.568,1.75,1.011 l23.535-13.748c0.953-0.556,0.953-1.467,0-2.023L23.75,17.24C23.393,17.031,23.058,16.961,22.781,17.019z"/>
|
|
||||||
<path id="playButton" style="fill:url(#whiteGradient);" d="M32,4C16.536,4,4,16.536,4,32s12.536,28,28,28s28-12.536,28-28S47.464,4,32,4z M47.285,33.014 L23.75,46.762C22.797,47.319,22,46.863,22,45.751v-27.5c0-0.697,0.32-1.137,0.781-1.232c0.277-0.058,0.612,0.012,0.969,0.221 l23.535,13.751C48.238,31.546,48.238,32.458,47.285,33.014z"/>
|
|
||||||
<path id="playButtonEdgeHighlights" style="fill:white;fill-opacity:.3;" d="M32,4C16.536,4,4,16.536,4,32s12.536,28,28,28s28-12.536,28-28S47.464,4,32,4z M32,59C17.112,59,5,46.888,5,32S17.112,5,32,5s27,12.112,27,27S46.888,59,32,59z M47.789,30.127l-23.534-13.75 C23.826,16.126,23.396,16,22.976,16c-0.135,0-0.27,0.014-0.398,0.041C21.62,16.238,21,17.106,21,18.251v27.5 C21,47.075,21.812,48,22.977,48c0.423,0,0.854-0.126,1.279-0.375L47.79,33.877c0.769-0.449,1.21-1.132,1.21-1.875 S48.559,30.576,47.789,30.127z M47.285,33.014L23.75,46.762C23.474,46.924,23.211,47,22.977,47C22.402,47,22,46.541,22,45.751v-27.5 c0-0.697,0.32-1.137,0.781-1.232L22.976,17c0.233,0,0.498,0.079,0.775,0.24l23.535,13.751 C48.238,31.546,48.238,32.458,47.285,33.014z"/>
|
|
||||||
<path id="playButtonTopEdgeHighlights" style="fill:white;fill-opacity:.8;" d="M32,4C16.536,4,4,16.536,4,32c0,0.167,0.01,0.333,0.013,0.5 C4.28,17.268,16.704,5,32,5c15.296,0,27.72,12.268,27.987,27.5C59.99,32.333,60,32.167,60,32C60,16.536,47.464,4,32,4z M47.285,33.014L23.75,46.762C22.797,47.319,22,46.863,22,45.751v1c0,1.112,0.797,1.568,1.75,1.011l23.535-13.748 c0.697-0.406,0.879-1.003,0.556-1.512C47.723,32.688,47.541,32.864,47.285,33.014z"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.8 KiB |
|
|
@ -1,55 +0,0 @@
|
||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
toolkit.jar:
|
|
||||||
% skin global classic/1.0 %skin/classic/global/
|
|
||||||
# These are the CSS files that must exist
|
|
||||||
skin/classic/global/autocomplete.css (global/empty.css)
|
|
||||||
skin/classic/global/button.css (global/empty.css)
|
|
||||||
skin/classic/global/checkbox.css (global/empty.css)
|
|
||||||
skin/classic/global/dialog.css (global/empty.css)
|
|
||||||
skin/classic/global/dropmarker.css (global/empty.css)
|
|
||||||
skin/classic/global/global.css (global/empty.css)
|
|
||||||
skin/classic/global/groupbox.css (global/empty.css)
|
|
||||||
skin/classic/global/listbox.css (global/empty.css)
|
|
||||||
skin/classic/global/menu.css (global/empty.css)
|
|
||||||
skin/classic/global/menulist.css (global/empty.css)
|
|
||||||
skin/classic/global/numberbox.css (global/empty.css)
|
|
||||||
skin/classic/global/popup.css (global/empty.css)
|
|
||||||
skin/classic/global/preferences.css (global/empty.css)
|
|
||||||
skin/classic/global/progressmeter.css (global/empty.css)
|
|
||||||
skin/classic/global/radio.css (global/empty.css)
|
|
||||||
skin/classic/global/resizer.css (global/empty.css)
|
|
||||||
skin/classic/global/richlistbox.css (global/empty.css)
|
|
||||||
skin/classic/global/scale.css (global/empty.css)
|
|
||||||
skin/classic/global/scrollbox.css (global/empty.css)
|
|
||||||
skin/classic/global/spinbuttons.css (global/empty.css)
|
|
||||||
skin/classic/global/splitter.css (global/empty.css)
|
|
||||||
skin/classic/global/tabbox.css (global/empty.css)
|
|
||||||
skin/classic/global/textbox.css (global/empty.css)
|
|
||||||
skin/classic/global/toolbar.css (global/empty.css)
|
|
||||||
skin/classic/global/toolbarbutton.css (global/empty.css)
|
|
||||||
skin/classic/global/tree.css (global/empty.css)
|
|
||||||
skin/classic/global/wizard.css (global/empty.css)
|
|
||||||
skin/classic/global/scrollbars.css (global/empty.css)
|
|
||||||
|
|
||||||
skin/classic/global/media/clicktoplay-bgtexture.png (global/media/clicktoplay-bgtexture.png)
|
|
||||||
skin/classic/global/media/error.png (global/media/error.png)
|
|
||||||
skin/classic/global/media/throbber.png (global/media/throbber.png)
|
|
||||||
skin/classic/global/media/videoClickToPlayButton.svg (global/media/videoClickToPlayButton.svg)
|
|
||||||
skin/classic/global/media/TopLevelImageDocument.css (global/media/TopLevelImageDocument.css)
|
|
||||||
skin/classic/global/media/TopLevelVideoDocument.css (global/media/TopLevelVideoDocument.css)
|
|
||||||
skin/classic/global/media/imagedoc-lightnoise.png (global/media/imagedoc-lightnoise.png)
|
|
||||||
skin/classic/global/media/imagedoc-darknoise.png (global/media/imagedoc-darknoise.png)
|
|
||||||
|
|
||||||
skin/classic/global/icons/Error.png (global/icons/Error.png)
|
|
||||||
|
|
||||||
% skin mozapps classic/1.0 %skin/classic/mozapps/
|
|
||||||
skin/classic/mozapps/plugins/pluginProblem.css (mozapps/plugins/pluginProblem.css)
|
|
||||||
|
|
||||||
skin/classic/mozapps/plugins/contentPluginActivate.png (mozapps/plugins/contentPluginActivate.png)
|
|
||||||
skin/classic/mozapps/plugins/contentPluginBlocked.png (mozapps/plugins/contentPluginBlocked.png)
|
|
||||||
skin/classic/mozapps/plugins/contentPluginClose.png (mozapps/plugins/contentPluginClose.png)
|
|
||||||
skin/classic/mozapps/plugins/contentPluginCrashed.png (mozapps/plugins/contentPluginCrashed.png)
|
|
||||||
skin/classic/mozapps/plugins/contentPluginStripe.png (mozapps/plugins/contentPluginStripe.png)
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
||||||
# vim: set filetype=python:
|
|
||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
JAR_MANIFESTS += ['jar.mn']
|
|
||||||
|
Before Width: | Height: | Size: 3 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 460 B |
|
|
@ -1,196 +0,0 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
@namespace html url(http://www.w3.org/1999/xhtml);
|
|
||||||
|
|
||||||
/* These styles affect only the bound element, not other page content. */
|
|
||||||
/* Keep any changes to these styles in sync with plugin-doorhanger.inc.css */
|
|
||||||
.mainBox {
|
|
||||||
font: message-box;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
display: table;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background-color: rgb(72,72,72);
|
|
||||||
color: white;
|
|
||||||
-moz-user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hoverBox {
|
|
||||||
display: table-cell;
|
|
||||||
box-sizing: border-box;
|
|
||||||
padding: 5px;
|
|
||||||
vertical-align: middle;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
:-moz-handler-vulnerable-updatable .hoverBox:active,
|
|
||||||
:-moz-handler-vulnerable-no-update .hoverBox:active,
|
|
||||||
:-moz-handler-clicktoplay .hoverBox:active {
|
|
||||||
background-color: rgb(65, 65, 65);
|
|
||||||
}
|
|
||||||
|
|
||||||
:-moz-handler-clicktoplay .hoverBox:active .msgTapToPlay,
|
|
||||||
:-moz-handler-clicktoplay .hoverBox:active .msgClickToPlay,
|
|
||||||
:-moz-handler-vulnerable-updatable .hoverBox:active .msgTapToPlay,
|
|
||||||
:-moz-handler-vulnerable-updatable .hoverBox:active .msgClickToPlay,
|
|
||||||
:-moz-handler-vulnerable-no-update .hoverBox:active .msgTapToPlay,
|
|
||||||
:-moz-handler-vulnerable-no-update .hoverBox:active .msgClickToPlay {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
:-moz-handler-vulnerable-updatable .hoverBox,
|
|
||||||
:-moz-handler-vulnerable-no-update .hoverBox,
|
|
||||||
:-moz-handler-blocked .hoverBox,
|
|
||||||
:-moz-handler-crashed .hoverBox {
|
|
||||||
background-image: url(chrome://mozapps/skin/plugins/contentPluginStripe.png);
|
|
||||||
}
|
|
||||||
|
|
||||||
html|a {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon {
|
|
||||||
width: 48px;
|
|
||||||
height: 48px;
|
|
||||||
background-position: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
border: none;
|
|
||||||
background-color: transparent;
|
|
||||||
-moz-user-focus: ignore;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
:-moz-handler-vulnerable-updatable .icon,
|
|
||||||
:-moz-handler-vulnerable-no-update .icon {
|
|
||||||
background-image: url(chrome://mozapps/skin/plugins/contentPluginBlocked.png);
|
|
||||||
-moz-user-focus: normal;
|
|
||||||
}
|
|
||||||
:-moz-handler-blocked .icon {
|
|
||||||
background-image: url(chrome://mozapps/skin/plugins/contentPluginBlocked.png);
|
|
||||||
}
|
|
||||||
:-moz-handler-clicktoplay .icon {
|
|
||||||
background-image: url(chrome://mozapps/skin/plugins/contentPluginActivate.png);
|
|
||||||
-moz-user-focus: normal;
|
|
||||||
}
|
|
||||||
:-moz-handler-crashed .icon {
|
|
||||||
background-image: url(chrome://mozapps/skin/plugins/contentPluginCrashed.png);
|
|
||||||
}
|
|
||||||
|
|
||||||
.throbber {
|
|
||||||
padding-left: 16px; /* width of the background image */
|
|
||||||
background: url(chrome://global/skin/icons/loading.png) no-repeat;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.msgTapToPlay,
|
|
||||||
.msgClickToPlay {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media not all and (-moz-touch-enabled) {
|
|
||||||
:-moz-handler-clicktoplay .msgTapToPlay {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (-moz-touch-enabled) {
|
|
||||||
:-moz-handler-clicktoplay .msgClickToPlay {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.submitStatus div {
|
|
||||||
min-height: 19px; /* height of biggest line (with throbber) */
|
|
||||||
}
|
|
||||||
|
|
||||||
.submitComment {
|
|
||||||
width: 340px;
|
|
||||||
height: 70px;
|
|
||||||
padding: 5px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 5px;
|
|
||||||
resize: none;
|
|
||||||
font-family: inherit;
|
|
||||||
font-size: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.submitURLOptInBox {
|
|
||||||
text-align: start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.submitURLOptIn {
|
|
||||||
margin-left: -1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainBox[chromedir="rtl"] .submitURLOptIn {
|
|
||||||
margin-left: 0;
|
|
||||||
margin-right: -1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.submitButtonBox {
|
|
||||||
margin-top: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.submitButton {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainBox[chromedir="rtl"] .submitButton {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.helpIcon {
|
|
||||||
display: inline-block;
|
|
||||||
min-width: 16px;
|
|
||||||
min-height: 16px;
|
|
||||||
background: url(chrome://mozapps/skin/plugins/pluginHelp-16.png) no-repeat;
|
|
||||||
cursor: pointer;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainBox[chromedir="rtl"] .helpIcon {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.closeIcon {
|
|
||||||
display: block;
|
|
||||||
width: 16px;
|
|
||||||
height: 16px;
|
|
||||||
margin-top: 4px;
|
|
||||||
margin-inline-start: -20px;
|
|
||||||
margin-inline-end: 4px;
|
|
||||||
border: none;
|
|
||||||
background-color: transparent;
|
|
||||||
background-image: url("chrome://mozapps/skin/plugins/contentPluginClose.png");
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.closeIcon:hover {
|
|
||||||
background-position: -16px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.closeIcon:hover:active {
|
|
||||||
background-position: -32px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.action-link {
|
|
||||||
display: inline-block;
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: rgb(35, 35, 35);
|
|
||||||
padding: 2px 8px;
|
|
||||||
margin-top: 7px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.action-link:active {
|
|
||||||
background-color: rgb(20, 20, 20);
|
|
||||||
}
|
|
||||||
|
|
||||||
:-moz-handler-vulnerable-updatable .action-link {
|
|
||||||
background-color: #a81b0c;
|
|
||||||
}
|
|
||||||
:-moz-handler-vulnerable-updatable .action-link:active {
|
|
||||||
background-color: #801409;
|
|
||||||
}
|
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
# GNOME/Linux linux (toolkit/themes/linux)
|
# GNOME/Linux linux (toolkit/themes/linux)
|
||||||
# non-mac (toolkit/themes/shared/non-mac)
|
# non-mac (toolkit/themes/shared/non-mac)
|
||||||
# faststripe windows + faststripe (no native theme components)
|
# faststripe windows + faststripe (no native theme components)
|
||||||
# mobile native UIs that do not use XUL for UI
|
|
||||||
|
|
||||||
toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']
|
toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']
|
||||||
if CONFIG['MOZ_PHOENIX']:
|
if CONFIG['MOZ_PHOENIX']:
|
||||||
|
|
@ -27,8 +26,6 @@ if toolkit == 'cocoa':
|
||||||
DIRS += ['osx']
|
DIRS += ['osx']
|
||||||
elif toolkit in ('gtk2', 'gtk3'):
|
elif toolkit in ('gtk2', 'gtk3'):
|
||||||
DIRS += ['linux']
|
DIRS += ['linux']
|
||||||
elif app == 'mobile/android':
|
|
||||||
DIRS += ['mobile']
|
|
||||||
else:
|
else:
|
||||||
DIRS += ['windows']
|
DIRS += ['windows']
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,7 @@
|
||||||
skin/classic/mozapps/formautofill/requestAutocomplete.css (../../shared/formautofill/requestAutocomplete.css)
|
skin/classic/mozapps/formautofill/requestAutocomplete.css (../../shared/formautofill/requestAutocomplete.css)
|
||||||
skin/classic/mozapps/plugins/pluginProblem.css (../../shared/plugins/pluginProblem.css)
|
skin/classic/mozapps/plugins/pluginProblem.css (../../shared/plugins/pluginProblem.css)
|
||||||
skin/classic/mozapps/aboutNetworking.css (../../shared/aboutNetworking.css)
|
skin/classic/mozapps/aboutNetworking.css (../../shared/aboutNetworking.css)
|
||||||
#ifndef ANDROID
|
|
||||||
skin/classic/mozapps/aboutProfiles.css (../../shared/aboutProfiles.css)
|
skin/classic/mozapps/aboutProfiles.css (../../shared/aboutProfiles.css)
|
||||||
#endif
|
|
||||||
skin/classic/mozapps/aboutServiceWorkers.css (../../shared/aboutServiceWorkers.css)
|
skin/classic/mozapps/aboutServiceWorkers.css (../../shared/aboutServiceWorkers.css)
|
||||||
skin/classic/mozapps/plugins/contentPluginActivate.png (../../shared/plugins/contentPluginActivate.png)
|
skin/classic/mozapps/plugins/contentPluginActivate.png (../../shared/plugins/contentPluginActivate.png)
|
||||||
skin/classic/mozapps/plugins/contentPluginBlocked.png (../../shared/plugins/contentPluginBlocked.png)
|
skin/classic/mozapps/plugins/contentPluginBlocked.png (../../shared/plugins/contentPluginBlocked.png)
|
||||||
|
|
|
||||||
|
|
@ -85,12 +85,6 @@ DIRS += [
|
||||||
'/xpfe/appshell'
|
'/xpfe/appshell'
|
||||||
]
|
]
|
||||||
|
|
||||||
# This needs to be built after the gfx/ directory
|
|
||||||
# to ensure all dependencies for skia (e.g. mozalloc, xpcom)
|
|
||||||
# have been built
|
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
|
||||||
DIRS += ['/other-licenses/skia-npapi']
|
|
||||||
|
|
||||||
if CONFIG['MOZ_UNIVERSALCHARDET']:
|
if CONFIG['MOZ_UNIVERSALCHARDET']:
|
||||||
DIRS += ['/extensions/universalchardet']
|
DIRS += ['/extensions/universalchardet']
|
||||||
|
|
||||||
|
|
@ -143,7 +137,7 @@ DIRS += [
|
||||||
if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
|
if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
|
||||||
DIRS += ['/toolkit/system/gnome']
|
DIRS += ['/toolkit/system/gnome']
|
||||||
|
|
||||||
if CONFIG['ENABLE_MARIONETTE'] or CONFIG['MOZ_WIDGET_TOOLKIT'] not in ('android'):
|
if CONFIG['ENABLE_MARIONETTE']:
|
||||||
DIRS += [
|
DIRS += [
|
||||||
'/testing/firefox-ui',
|
'/testing/firefox-ui',
|
||||||
'/testing/marionette',
|
'/testing/marionette',
|
||||||
|
|
|
||||||
|
|
@ -46,11 +46,6 @@ if CONFIG['MOZ_X11']:
|
||||||
EXPORTS += ['nsX11ErrorHandler.h']
|
EXPORTS += ['nsX11ErrorHandler.h']
|
||||||
UNIFIED_SOURCES += ['nsX11ErrorHandler.cpp']
|
UNIFIED_SOURCES += ['nsX11ErrorHandler.cpp']
|
||||||
|
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
|
||||||
UNIFIED_SOURCES += [
|
|
||||||
'nsAndroidStartup.cpp',
|
|
||||||
]
|
|
||||||
|
|
||||||
UNIFIED_SOURCES += [
|
UNIFIED_SOURCES += [
|
||||||
'CreateAppData.cpp',
|
'CreateAppData.cpp',
|
||||||
'nsConsoleWriter.cpp',
|
'nsConsoleWriter.cpp',
|
||||||
|
|
@ -79,10 +74,10 @@ if CONFIG['MOZ_INSTRUMENT_EVENT_LOOP']:
|
||||||
]
|
]
|
||||||
|
|
||||||
if CONFIG['MOZ_UPDATER']:
|
if CONFIG['MOZ_UPDATER']:
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
|
DEFINES['MOZ_UPDATER'] = True
|
||||||
UNIFIED_SOURCES += [
|
UNIFIED_SOURCES += [
|
||||||
'nsUpdateDriver.cpp',
|
'nsUpdateDriver.cpp',
|
||||||
]
|
]
|
||||||
|
|
||||||
include('/ipc/chromium/chromium-config.mozbuild')
|
include('/ipc/chromium/chromium-config.mozbuild')
|
||||||
|
|
||||||
|
|
@ -98,17 +93,11 @@ for var in ('MOZ_APP_NAME',
|
||||||
'MOZ_WIDGET_TOOLKIT'):
|
'MOZ_WIDGET_TOOLKIT'):
|
||||||
DEFINES[var] = '"%s"' % CONFIG[var]
|
DEFINES[var] = '"%s"' % CONFIG[var]
|
||||||
|
|
||||||
if CONFIG['MOZ_UPDATER'] and CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
|
|
||||||
DEFINES['MOZ_UPDATER'] = True
|
|
||||||
|
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||||
DEFINES['WIN32_LEAN_AND_MEAN'] = True
|
DEFINES['WIN32_LEAN_AND_MEAN'] = True
|
||||||
DEFINES['UNICODE'] = True
|
DEFINES['UNICODE'] = True
|
||||||
DEFINES['_UNICODE'] = True
|
DEFINES['_UNICODE'] = True
|
||||||
|
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
|
||||||
DEFINES['ANDROID_PACKAGE_NAME'] = '"%s"' % CONFIG['ANDROID_PACKAGE_NAME']
|
|
||||||
|
|
||||||
if CONFIG['TARGET_XPCOM_ABI']:
|
if CONFIG['TARGET_XPCOM_ABI']:
|
||||||
DEFINES['TARGET_OS_ABI'] = '"%s_%s"' % (CONFIG['OS_TARGET'],
|
DEFINES['TARGET_OS_ABI'] = '"%s_%s"' % (CONFIG['OS_TARGET'],
|
||||||
CONFIG['TARGET_XPCOM_ABI'])
|
CONFIG['TARGET_XPCOM_ABI'])
|
||||||
|
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
#include <android/log.h>
|
|
||||||
|
|
||||||
#include <jni.h>
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <pthread.h>
|
|
||||||
|
|
||||||
#include "mozilla/jni/Utils.h"
|
|
||||||
#include "nsTArray.h"
|
|
||||||
#include "nsString.h"
|
|
||||||
#include "nsIFile.h"
|
|
||||||
#include "nsAppRunner.h"
|
|
||||||
#include "APKOpen.h"
|
|
||||||
|
|
||||||
#define LOG(args...) __android_log_print(ANDROID_LOG_INFO, MOZ_APP_NAME, args)
|
|
||||||
|
|
||||||
extern "C" NS_EXPORT void
|
|
||||||
GeckoStart(JNIEnv* env, char* data, const nsXREAppData* appData)
|
|
||||||
{
|
|
||||||
mozilla::jni::SetGeckoThreadEnv(env);
|
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
LOG("Failed to get arguments for GeckoStart\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsTArray<char *> targs;
|
|
||||||
char *arg = strtok(data, " ");
|
|
||||||
while (arg) {
|
|
||||||
targs.AppendElement(arg);
|
|
||||||
arg = strtok(nullptr, " ");
|
|
||||||
}
|
|
||||||
targs.AppendElement(static_cast<char *>(nullptr));
|
|
||||||
|
|
||||||
int result = XRE_main(targs.Length() - 1, targs.Elements(), appData, 0);
|
|
||||||
|
|
||||||
if (result)
|
|
||||||
LOG("XRE_main returned %d", result);
|
|
||||||
}
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
#include "nsAppRunner.h"
|
#include "nsAppRunner.h"
|
||||||
#include "mozilla/AppData.h"
|
#include "mozilla/AppData.h"
|
||||||
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
|
#ifdef MOZ_UPDATER
|
||||||
#include "nsUpdateDriver.h"
|
#include "nsUpdateDriver.h"
|
||||||
#endif
|
#endif
|
||||||
#include "ProfileReset.h"
|
#include "ProfileReset.h"
|
||||||
|
|
@ -187,10 +187,6 @@
|
||||||
#include "base/command_line.h"
|
#include "base/command_line.h"
|
||||||
#include "GTestRunner.h"
|
#include "GTestRunner.h"
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
#include "GeneratedJNIWrappers.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern uint32_t gRestartMode;
|
extern uint32_t gRestartMode;
|
||||||
extern void InstallSignalHandlers(const char *ProgramName);
|
extern void InstallSignalHandlers(const char *ProgramName);
|
||||||
|
|
||||||
|
|
@ -1518,9 +1514,6 @@ static nsresult LaunchChild(nsINativeAppSupport* aNative,
|
||||||
|
|
||||||
SaveToEnv("MOZ_LAUNCHED_CHILD=1");
|
SaveToEnv("MOZ_LAUNCHED_CHILD=1");
|
||||||
|
|
||||||
#if defined(MOZ_WIDGET_ANDROID)
|
|
||||||
java::GeckoAppShell::ScheduleRestart();
|
|
||||||
#else
|
|
||||||
#if defined(XP_MACOSX)
|
#if defined(XP_MACOSX)
|
||||||
CommandLineServiceMac::SetupMacCommandLine(gRestartArgc, gRestartArgv, true);
|
CommandLineServiceMac::SetupMacCommandLine(gRestartArgc, gRestartArgv, true);
|
||||||
LaunchChildMac(gRestartArgc, gRestartArgv);
|
LaunchChildMac(gRestartArgc, gRestartArgv);
|
||||||
|
|
@ -1560,7 +1553,6 @@ static nsresult LaunchChild(nsINativeAppSupport* aNative,
|
||||||
#endif // XP_UNIX
|
#endif // XP_UNIX
|
||||||
#endif // WP_WIN
|
#endif // WP_WIN
|
||||||
#endif // WP_MACOSX
|
#endif // WP_MACOSX
|
||||||
#endif // MOZ_WIDGET_ANDROID
|
|
||||||
|
|
||||||
return NS_ERROR_LAUNCHED_CHILD_PROCESS;
|
return NS_ERROR_LAUNCHED_CHILD_PROCESS;
|
||||||
}
|
}
|
||||||
|
|
@ -1654,10 +1646,7 @@ ProfileLockedDialog(nsIFile* aProfileDir, nsIFile* aProfileLocalDir,
|
||||||
|
|
||||||
if (aUnlocker) {
|
if (aUnlocker) {
|
||||||
int32_t button;
|
int32_t button;
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
java::GeckoAppShell::KillAnyZombies();
|
|
||||||
button = 0;
|
|
||||||
#else
|
|
||||||
const uint32_t flags =
|
const uint32_t flags =
|
||||||
(nsIPromptService::BUTTON_TITLE_IS_STRING *
|
(nsIPromptService::BUTTON_TITLE_IS_STRING *
|
||||||
nsIPromptService::BUTTON_POS_0) +
|
nsIPromptService::BUTTON_POS_0) +
|
||||||
|
|
@ -1669,7 +1658,6 @@ ProfileLockedDialog(nsIFile* aProfileDir, nsIFile* aProfileLocalDir,
|
||||||
killTitle, nullptr, nullptr, nullptr,
|
killTitle, nullptr, nullptr, nullptr,
|
||||||
&checkState, &button);
|
&checkState, &button);
|
||||||
NS_ENSURE_SUCCESS_LOG(rv, rv);
|
NS_ENSURE_SUCCESS_LOG(rv, rv);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (button == 0) {
|
if (button == 0) {
|
||||||
rv = aUnlocker->Unlock(nsIProfileUnlocker::FORCE_QUIT);
|
rv = aUnlocker->Unlock(nsIProfileUnlocker::FORCE_QUIT);
|
||||||
|
|
@ -1683,15 +1671,8 @@ ProfileLockedDialog(nsIFile* aProfileDir, nsIFile* aProfileLocalDir,
|
||||||
return LaunchChild(aNative);
|
return LaunchChild(aNative);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#ifdef MOZ_WIDGET_ANDROID
|
|
||||||
if (java::GeckoAppShell::UnlockProfile()) {
|
|
||||||
return NS_LockProfilePath(aProfileDir, aProfileLocalDir,
|
|
||||||
nullptr, aResult);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
rv = ps->Alert(nullptr, killTitle, killMessage);
|
rv = ps->Alert(nullptr, killTitle, killMessage);
|
||||||
NS_ENSURE_SUCCESS_LOG(rv, rv);
|
NS_ENSURE_SUCCESS_LOG(rv, rv);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return NS_ERROR_ABORT;
|
return NS_ERROR_ABORT;
|
||||||
|
|
@ -3417,7 +3398,7 @@ XREMain::XRE_mainStartup(bool* aExitFlag)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
|
#ifdef MOZ_UPDATER
|
||||||
// Check for and process any available updates
|
// Check for and process any available updates
|
||||||
nsCOMPtr<nsIFile> updRoot;
|
nsCOMPtr<nsIFile> updRoot;
|
||||||
bool persistent;
|
bool persistent;
|
||||||
|
|
|
||||||
|
|
@ -266,17 +266,9 @@ XRE_InitChildProcess(int aArgc,
|
||||||
NS_ENSURE_ARG_POINTER(aArgv[0]);
|
NS_ENSURE_ARG_POINTER(aArgv[0]);
|
||||||
MOZ_ASSERT(aChildData);
|
MOZ_ASSERT(aChildData);
|
||||||
|
|
||||||
#if !defined(MOZ_WIDGET_ANDROID)
|
|
||||||
// On non-Fennec Gecko, the GMPLoader code resides in plugin-container,
|
// On non-Fennec Gecko, the GMPLoader code resides in plugin-container,
|
||||||
// and we must forward it through to the GMP code here.
|
// and we must forward it through to the GMP code here.
|
||||||
GMPProcessChild::SetGMPLoader(aChildData->gmpLoader.get());
|
GMPProcessChild::SetGMPLoader(aChildData->gmpLoader.get());
|
||||||
#else
|
|
||||||
// On Fennec, the GMPLoader's code resides inside XUL (because for the time
|
|
||||||
// being GMPLoader relies upon NSPR, which we can't use in plugin-container
|
|
||||||
// on Android), so we create it here inside XUL and pass it to the GMP code.
|
|
||||||
UniquePtr<GMPLoader> loader = CreateGMPLoader(nullptr);
|
|
||||||
GMPProcessChild::SetGMPLoader(loader.get());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XP_WIN)
|
#if defined(XP_WIN)
|
||||||
// From the --attach-console support in nsNativeAppSupportWin.cpp, but
|
// From the --attach-console support in nsNativeAppSupportWin.cpp, but
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h> // atoi
|
#include <stdlib.h> // atoi
|
||||||
#include <sys/prctl.h>
|
#include <sys/prctl.h>
|
||||||
#ifndef ANDROID // no Android impl
|
#include <ucontext.h>
|
||||||
# include <ucontext.h>
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef XP_SOLARIS
|
#ifdef XP_SOLARIS
|
||||||
|
|
@ -172,7 +170,7 @@ static void fpehandler(int signum, siginfo_t *si, void *context)
|
||||||
*mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */
|
*mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(LINUX) && !defined(ANDROID)
|
#if defined(LINUX)
|
||||||
ucontext_t *uc = (ucontext_t *)context;
|
ucontext_t *uc = (ucontext_t *)context;
|
||||||
|
|
||||||
#if defined(__i386__)
|
#if defined(__i386__)
|
||||||
|
|
|
||||||
|
|
@ -333,7 +333,7 @@ CopyUpdaterIntoUpdateDir(nsIFile *greDir, nsIFile *appDir, nsIFile *updateDir,
|
||||||
return false;
|
return false;
|
||||||
CopyFileIntoUpdateDir(appDir, NS_LITERAL_CSTRING(UPDATER_INI), updateDir);
|
CopyFileIntoUpdateDir(appDir, NS_LITERAL_CSTRING(UPDATER_INI), updateDir);
|
||||||
#endif
|
#endif
|
||||||
#if defined(XP_UNIX) && !defined(XP_MACOSX) && !defined(ANDROID)
|
#if defined(XP_UNIX) && !defined(XP_MACOSX)
|
||||||
nsCOMPtr<nsIFile> iconDir;
|
nsCOMPtr<nsIFile> iconDir;
|
||||||
appDir->Clone(getter_AddRefs(iconDir));
|
appDir->Clone(getter_AddRefs(iconDir));
|
||||||
iconDir->AppendNative(NS_LITERAL_CSTRING("icons"));
|
iconDir->AppendNative(NS_LITERAL_CSTRING("icons"));
|
||||||
|
|
|
||||||
|
|
@ -1340,10 +1340,6 @@ nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile, bool aLocal)
|
||||||
if (!homeDir || !*homeDir)
|
if (!homeDir || !*homeDir)
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
|
|
||||||
#ifdef ANDROID /* We want (ProfD == ProfLD) on Android. */
|
|
||||||
aLocal = false;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (aLocal) {
|
if (aLocal) {
|
||||||
// If $XDG_CACHE_HOME is defined use it, otherwise use $HOME/.cache.
|
// If $XDG_CACHE_HOME is defined use it, otherwise use $HOME/.cache.
|
||||||
const char* cacheHome = getenv("XDG_CACHE_HOME");
|
const char* cacheHome = getenv("XDG_CACHE_HOME");
|
||||||
|
|
@ -1550,15 +1546,6 @@ nsXREDirProvider::AppendProfilePath(nsIFile* aFile,
|
||||||
}
|
}
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
#elif defined(ANDROID)
|
|
||||||
// The directory used for storing profiles
|
|
||||||
// The parent of this directory is set in GetUserDataDirectoryHome
|
|
||||||
// XXX: handle gAppData->profile properly
|
|
||||||
// XXXsmaug ...and the rest of the profile creation!
|
|
||||||
MOZ_ASSERT(!aAppName,
|
|
||||||
"Profile creation for external applications is not implemented!");
|
|
||||||
rv = aFile->AppendNative(nsDependentCString("mozilla"));
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
#elif defined(XP_UNIX)
|
#elif defined(XP_UNIX)
|
||||||
nsAutoCString folder;
|
nsAutoCString folder;
|
||||||
// Make it hidden (by starting with "."), except when local (the
|
// Make it hidden (by starting with "."), except when local (the
|
||||||
|
|
|
||||||