зеркало из https://github.com/mozilla/pjs.git
Bug 563462 - Remove Photon bits from toolkit/ r=Mossop
This commit is contained in:
Родитель
707905a9ea
Коммит
f9f381c2e3
|
@ -44,7 +44,7 @@ VPATH = @srcdir@
|
||||||
include $(DEPTH)/config/autoconf.mk
|
include $(DEPTH)/config/autoconf.mk
|
||||||
|
|
||||||
ifdef MOZ_XUL
|
ifdef MOZ_XUL
|
||||||
ifeq (,$(filter qt beos os2 photon cocoa windows,$(MOZ_WIDGET_TOOLKIT)))
|
ifeq (,$(filter qt beos os2 cocoa windows,$(MOZ_WIDGET_TOOLKIT)))
|
||||||
DIRS = public src
|
DIRS = public src
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -58,10 +58,6 @@ ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT)))
|
||||||
CPPSRCS += nsGTKRemoteService.cpp
|
CPPSRCS += nsGTKRemoteService.cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (photon,$(MOZ_WIDGET_TOOLKIT))
|
|
||||||
CPPSRCS += nsPhRemoteService.cpp
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
|
ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
|
||||||
CPPSRCS += nsQtRemoteService.cpp
|
CPPSRCS += nsQtRemoteService.cpp
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -1,189 +0,0 @@
|
||||||
/*
|
|
||||||
* The contents of this file are subject to the Mozilla Public
|
|
||||||
* License Version 1.1 (the "License"); you may not use this file
|
|
||||||
* except in compliance with the License. You may obtain a copy of
|
|
||||||
* the License at http://www.mozilla.org/MPL/
|
|
||||||
*
|
|
||||||
* Software distributed under the License is distributed on an "AS
|
|
||||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
||||||
* implied. See the License for the specific language governing
|
|
||||||
* rights and limitations under the License.
|
|
||||||
*
|
|
||||||
* The Original Code is mozilla.org code.
|
|
||||||
*
|
|
||||||
* The Initial Developer of the Original Code is Christopher Blizzard.
|
|
||||||
* Portions created by Christopher Blizzard are Copyright (C)
|
|
||||||
* Christopher Blizzard. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
* Adrian Mardare <amardare@qnx.com>
|
|
||||||
* Max Feil <mfeil@qnx.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <nsIWidget.h>
|
|
||||||
#include <nsCOMPtr.h>
|
|
||||||
#include "nsIGenericFactory.h"
|
|
||||||
#include "nsPhRemoteService.h"
|
|
||||||
#include "nsIServiceManager.h"
|
|
||||||
#include "nsCRT.h"
|
|
||||||
|
|
||||||
#include "nsICommandLineRunner.h"
|
|
||||||
#include "nsXULAppAPI.h"
|
|
||||||
|
|
||||||
#include <Pt.h>
|
|
||||||
|
|
||||||
NS_IMPL_QUERY_INTERFACE2(nsPhRemoteService,
|
|
||||||
nsIRemoteService,
|
|
||||||
nsIObserver)
|
|
||||||
|
|
||||||
NS_IMETHODIMP_(nsrefcnt)
|
|
||||||
nsPhRemoteService::AddRef()
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP_(nsrefcnt)
|
|
||||||
nsPhRemoteService::Release()
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsPhRemoteService::Startup(const char* aAppName, const char* aProfileName)
|
|
||||||
{
|
|
||||||
NS_ASSERTION(aAppName, "Don't pass a null appname!");
|
|
||||||
|
|
||||||
if (mIsInitialized)
|
|
||||||
return NS_ERROR_ALREADY_INITIALIZED;
|
|
||||||
|
|
||||||
mIsInitialized = PR_TRUE;
|
|
||||||
mAppName = aAppName;
|
|
||||||
ToLowerCase(mAppName);
|
|
||||||
|
|
||||||
HandleCommandsFor(nsnull, nsnull);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsPhRemoteService::RegisterWindow(nsIDOMWindow* aWindow)
|
|
||||||
{
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsPhRemoteService::Shutdown()
|
|
||||||
{
|
|
||||||
if (!mIsInitialized)
|
|
||||||
return NS_ERROR_NOT_INITIALIZED;
|
|
||||||
|
|
||||||
mIsInitialized = PR_FALSE;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsPhRemoteService::Observe(nsISupports* aSubject,
|
|
||||||
const char *aTopic,
|
|
||||||
const PRUnichar *aData)
|
|
||||||
{
|
|
||||||
// This can be xpcom-shutdown or quit-application, but it's the same either
|
|
||||||
// way.
|
|
||||||
Shutdown();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define MOZ_REMOTE_MSG_TYPE 100
|
|
||||||
|
|
||||||
static void const * RemoteMsgHandler( PtConnectionServer_t *connection, void *user_data,
|
|
||||||
unsigned long type, void const *msg, unsigned len, unsigned *reply_len )
|
|
||||||
{
|
|
||||||
nsresult rv;
|
|
||||||
|
|
||||||
if( type != MOZ_REMOTE_MSG_TYPE ) return NULL;
|
|
||||||
|
|
||||||
/* we are given strings and we reply with strings */
|
|
||||||
char *response = NULL;
|
|
||||||
|
|
||||||
// parse the command
|
|
||||||
nsCOMPtr<nsICommandLineRunner> cmdline
|
|
||||||
(do_CreateInstance("@mozilla.org/toolkit/command-line;1", &rv));
|
|
||||||
if (!NS_FAILED(rv)) {
|
|
||||||
|
|
||||||
// 1) Make sure that it looks remotely valid with parens
|
|
||||||
// 2) Treat ping() immediately and specially
|
|
||||||
|
|
||||||
nsCAutoString command((char *)msg);
|
|
||||||
PRInt32 p1, p2;
|
|
||||||
p1 = command.FindChar('(');
|
|
||||||
p2 = command.FindChar(')');
|
|
||||||
|
|
||||||
if (p1 != kNotFound && p2 != kNotFound && p1 != 0 && p2 >= p1) {
|
|
||||||
command.Truncate(p1);
|
|
||||||
command.Trim(" ", PR_TRUE, PR_TRUE);
|
|
||||||
ToLowerCase(command);
|
|
||||||
|
|
||||||
//printf("Processing xremote command: %s\n", command.get());
|
|
||||||
|
|
||||||
if (!command.EqualsLiteral("ping")) {
|
|
||||||
char* argv[3] = {"dummyappname", "-remote", (char *)msg};
|
|
||||||
rv = cmdline->Init(3, argv, nsnull, nsICommandLine::STATE_REMOTE_EXPLICIT);
|
|
||||||
if (!NS_FAILED(rv)) {
|
|
||||||
rv = cmdline->Run();
|
|
||||||
if (NS_ERROR_ABORT == rv)
|
|
||||||
response = "500 command not parseable";
|
|
||||||
if (NS_FAILED(rv))
|
|
||||||
response = "509 internal error";
|
|
||||||
} else
|
|
||||||
response = "509 internal error";
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
response = "500 command not parseable";
|
|
||||||
} else
|
|
||||||
response = "509 internal error";
|
|
||||||
|
|
||||||
PtConnectionReply( connection, response ? strlen(response) : 0, response );
|
|
||||||
|
|
||||||
return ( void * ) 1; /* return any non NULL value to indicate we handled the message */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void client_connect( PtConnector_t *cntr, PtConnectionServer_t *csrvr, void *data )
|
|
||||||
{
|
|
||||||
static PtConnectionMsgHandler_t handlers[] = { { 0, RemoteMsgHandler } };
|
|
||||||
PtConnectionAddMsgHandlers( csrvr, handlers, sizeof(handlers)/sizeof(handlers[0]) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
nsPhRemoteService::HandleCommandsFor( nsIWidget *aWidget, nsIWeakReference* aWindow )
|
|
||||||
{
|
|
||||||
static PRBool ConnectorCreated = PR_FALSE;
|
|
||||||
|
|
||||||
///* ATENTIE */ printf( "aProgram=%s aProfile=%s aWidget=%p\n", aProgram?aProgram:"NULL", aProfile?aProfile:"NULL", aWidget );
|
|
||||||
|
|
||||||
if( !ConnectorCreated ) {
|
|
||||||
char RemoteServerName[128];
|
|
||||||
sprintf( RemoteServerName, "%s_RemoteServer", (char *) mAppName.get() );
|
|
||||||
/* create a connector for the remote control */
|
|
||||||
PtConnectorCreate( RemoteServerName, client_connect, NULL );
|
|
||||||
ConnectorCreated = PR_TRUE;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// {C0773E90-5799-4eff-AD03-3EBCD85624AC}
|
|
||||||
#define NS_REMOTESERVICE_CID \
|
|
||||||
{ 0xc0773e90, 0x5799, 0x4eff, { 0xad, 0x3, 0x3e, 0xbc, 0xd8, 0x56, 0x24, 0xac } }
|
|
||||||
|
|
||||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsPhRemoteService)
|
|
||||||
|
|
||||||
static const nsModuleComponentInfo components[] =
|
|
||||||
{
|
|
||||||
{ "Remote Service",
|
|
||||||
NS_REMOTESERVICE_CID,
|
|
||||||
"@mozilla.org/toolkit/remote-service;1",
|
|
||||||
nsPhRemoteServiceConstructor
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
NS_IMPL_NSGETMODULE(RemoteServiceModule, components)
|
|
|
@ -1,69 +0,0 @@
|
||||||
/* ***** BEGIN LICENSE BLOCK *****
|
|
||||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the Mozilla Public License Version
|
|
||||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
||||||
* the License. You may obtain a copy of the License at
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*
|
|
||||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
||||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
||||||
* for the specific language governing rights and limitations under the
|
|
||||||
* License.
|
|
||||||
*
|
|
||||||
* The Original Code is mozilla.org code.
|
|
||||||
*
|
|
||||||
* The Initial Developer of the Original Code is
|
|
||||||
* Christopher Blizzard. Portions created by Christopher Blizzard are Copyright (C) Christopher Blizzard. All Rights Reserved.
|
|
||||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
|
||||||
* the Initial Developer. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
* Adrian Mardare <amardare@qnx.com>
|
|
||||||
* Max Feil <mfeil@qnx.com>
|
|
||||||
*
|
|
||||||
* Alternatively, the contents of this file may be used under the terms of
|
|
||||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
||||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
||||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
||||||
* of those above. If you wish to allow use of your version of this file only
|
|
||||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
||||||
* use your version of this file under the terms of the MPL, indicate your
|
|
||||||
* decision by deleting the provisions above and replace them with the notice
|
|
||||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
||||||
* the provisions above, a recipient may use your version of this file under
|
|
||||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
||||||
*
|
|
||||||
* ***** END LICENSE BLOCK ***** */
|
|
||||||
|
|
||||||
#ifndef __nsPhRemoteService_h__
|
|
||||||
#define __nsPhRemoteService_h__
|
|
||||||
|
|
||||||
#include "nsIRemoteService.h"
|
|
||||||
#include "nsIObserver.h"
|
|
||||||
#include "nsString.h"
|
|
||||||
|
|
||||||
class nsIWeakReference;
|
|
||||||
|
|
||||||
class nsPhRemoteService : public nsIRemoteService,
|
|
||||||
public nsIObserver
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// We will be a static singleton, so don't use the ordinary methods.
|
|
||||||
NS_DECL_ISUPPORTS
|
|
||||||
NS_DECL_NSIREMOTESERVICE
|
|
||||||
NS_DECL_NSIOBSERVER
|
|
||||||
|
|
||||||
nsPhRemoteService() { mIsInitialized = PR_FALSE; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
~nsPhRemoteService() { }
|
|
||||||
|
|
||||||
void HandleCommandsFor(nsIWidget *aWidget,
|
|
||||||
nsIWeakReference* aWindow);
|
|
||||||
PRBool mIsInitialized;
|
|
||||||
nsCString mAppName;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* __nsPhRemoteService_h__ */
|
|
|
@ -795,7 +795,7 @@
|
||||||
// we need these attributes so themers don't need to create per-platform packages
|
// we need these attributes so themers don't need to create per-platform packages
|
||||||
if (screen.colorDepth > 8) { // need high color for transparency
|
if (screen.colorDepth > 8) { // need high color for transparency
|
||||||
// Exclude second-rate platforms
|
// Exclude second-rate platforms
|
||||||
this._autoScrollPopup.setAttribute("transparent", !/BeOS|OS\/2|Photon/.test(navigator.appVersion));
|
this._autoScrollPopup.setAttribute("transparent", !/BeOS|OS\/2/.test(navigator.appVersion));
|
||||||
// Enable translucency on Windows and Mac
|
// Enable translucency on Windows and Mac
|
||||||
this._autoScrollPopup.setAttribute("translucent", /Win|Mac/.test(navigator.platform));
|
this._autoScrollPopup.setAttribute("translucent", /Win|Mac/.test(navigator.platform));
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,7 +236,7 @@ COMPONENT_LIBS += \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (,$(filter qt beos os2 photon cocoa windows,$(MOZ_WIDGET_TOOLKIT)))
|
ifeq (,$(filter qt beos os2 cocoa windows,$(MOZ_WIDGET_TOOLKIT)))
|
||||||
ifdef MOZ_XUL
|
ifdef MOZ_XUL
|
||||||
COMPONENT_LIBS += fileview
|
COMPONENT_LIBS += fileview
|
||||||
DEFINES += -DMOZ_FILEVIEW
|
DEFINES += -DMOZ_FILEVIEW
|
||||||
|
@ -314,10 +314,6 @@ ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
|
||||||
COMPONENT_LIBS += widget_qt
|
COMPONENT_LIBS += widget_qt
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef MOZ_ENABLE_PHOTON
|
|
||||||
COMPONENT_LIBS += widget_photon
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef ACCESSIBILITY
|
ifdef ACCESSIBILITY
|
||||||
COMPONENT_LIBS += accessibility
|
COMPONENT_LIBS += accessibility
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -79,8 +79,6 @@
|
||||||
# define WIDGET_MODULES MODULE(nsWidgetOS2Module)
|
# define WIDGET_MODULES MODULE(nsWidgetOS2Module)
|
||||||
#elif defined(MOZ_WIDGET_GTK2)
|
#elif defined(MOZ_WIDGET_GTK2)
|
||||||
# define WIDGET_MODULES MODULE(nsWidgetGtk2Module)
|
# define WIDGET_MODULES MODULE(nsWidgetGtk2Module)
|
||||||
#elif defined(MOZ_WIDGET_PHOTON)
|
|
||||||
# define WIDGET_MODULES MODULE(nsWidgetPhModule)
|
|
||||||
#elif defined(MOZ_WIDGET_QT)
|
#elif defined(MOZ_WIDGET_QT)
|
||||||
# define WIDGET_MODULES MODULE(nsWidgetQtModule)
|
# define WIDGET_MODULES MODULE(nsWidgetQtModule)
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -492,7 +492,6 @@ MAKEFILES_widget="
|
||||||
widget/src/build/Makefile
|
widget/src/build/Makefile
|
||||||
widget/src/gtk2/Makefile
|
widget/src/gtk2/Makefile
|
||||||
widget/src/gtkxtbin/Makefile
|
widget/src/gtkxtbin/Makefile
|
||||||
widget/src/photon/Makefile
|
|
||||||
widget/src/cocoa/Makefile
|
widget/src/cocoa/Makefile
|
||||||
widget/src/os2/Makefile
|
widget/src/os2/Makefile
|
||||||
widget/src/windows/Makefile
|
widget/src/windows/Makefile
|
||||||
|
|
|
@ -175,11 +175,7 @@
|
||||||
|
|
||||||
// for X remote support
|
// for X remote support
|
||||||
#ifdef MOZ_ENABLE_XREMOTE
|
#ifdef MOZ_ENABLE_XREMOTE
|
||||||
#ifdef MOZ_WIDGET_PHOTON
|
|
||||||
#include "PhRemoteClient.h"
|
|
||||||
#else
|
|
||||||
#include "XRemoteClient.h"
|
#include "XRemoteClient.h"
|
||||||
#endif
|
|
||||||
#include "nsIRemoteService.h"
|
#include "nsIRemoteService.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -79,10 +79,6 @@
|
||||||
#include "nsToolkitCompsCID.h"
|
#include "nsToolkitCompsCID.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_PHOTON
|
|
||||||
#include <photon/PhProto.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static char _progname[1024] = "huh?";
|
static char _progname[1024] = "huh?";
|
||||||
static unsigned int _gdb_sleep_duration = 300;
|
static unsigned int _gdb_sleep_duration = 300;
|
||||||
|
|
||||||
|
@ -97,35 +93,7 @@ static const int kClientChannelFd = 3;
|
||||||
#define CRAWL_STACK_ON_SIGSEGV
|
#define CRAWL_STACK_ON_SIGSEGV
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_PHOTON
|
#if defined(CRAWL_STACK_ON_SIGSEGV)
|
||||||
void abnormal_exit_handler(int signum)
|
|
||||||
{
|
|
||||||
/* Free any shared memory that has been allocated */
|
|
||||||
PgShmemCleanup();
|
|
||||||
|
|
||||||
#if defined(DEBUG)
|
|
||||||
if ( (signum == SIGSEGV)
|
|
||||||
|| (signum == SIGILL)
|
|
||||||
|| (signum == SIGABRT)
|
|
||||||
|| (signum == SIGFPE)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
printf("prog = %s\npid = %d\nsignal = %s\n",
|
|
||||||
_progname, getpid(), strsignal(signum));
|
|
||||||
|
|
||||||
printf("Sleeping for %d seconds.\n",_gdb_sleep_duration);
|
|
||||||
printf("Type 'gdb %s %d' to attach your debugger to this thread.\n",
|
|
||||||
_progname, getpid());
|
|
||||||
|
|
||||||
sleep(_gdb_sleep_duration);
|
|
||||||
|
|
||||||
printf("Done sleeping...\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
_exit(1);
|
|
||||||
}
|
|
||||||
#elif defined(CRAWL_STACK_ON_SIGSEGV)
|
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "nsISupportsUtils.h"
|
#include "nsISupportsUtils.h"
|
||||||
|
@ -321,17 +289,7 @@ void InstallSignalHandlers(const char *ProgramName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(MOZ_WIDGET_PHOTON)
|
#if defined(CRAWL_STACK_ON_SIGSEGV)
|
||||||
/* Neutrino need this to free shared memory in case of a crash */
|
|
||||||
signal(SIGTERM, abnormal_exit_handler);
|
|
||||||
signal(SIGQUIT, abnormal_exit_handler);
|
|
||||||
signal(SIGINT, abnormal_exit_handler);
|
|
||||||
signal(SIGHUP, abnormal_exit_handler);
|
|
||||||
signal(SIGSEGV, abnormal_exit_handler);
|
|
||||||
signal(SIGILL, abnormal_exit_handler);
|
|
||||||
signal(SIGABRT, abnormal_exit_handler);
|
|
||||||
|
|
||||||
#elif defined(CRAWL_STACK_ON_SIGSEGV)
|
|
||||||
if (!getenv("XRE_NO_WINDOWS_CRASH_DIALOG")) {
|
if (!getenv("XRE_NO_WINDOWS_CRASH_DIALOG")) {
|
||||||
void (*crap_handler)(int) =
|
void (*crap_handler)(int) =
|
||||||
#ifdef MOZ_IPC
|
#ifdef MOZ_IPC
|
||||||
|
|
Загрузка…
Ссылка в новой задаче