Comparing FF & Opera functionality

A nice survey can be found here:

http://files.myopera.com/Rijk/blog/extensions.html

polonus

Maybe only on v3.0 Firefox can start to compete with Opera, but when that happened Opera also will be much better than now… :wink:

Hi VaMPiRiC_Cr0W,

From your comment I gathered that you like this exposé.
Opera is the browser for the search specialist.

polonus

To be honest, I don’t need any review about browsers, because I tryed all the major ones, and none have the power, speed, features and stability like Opera…

Hi V_C,

Well the absolute browser has not been developed yet. Almost any browser leaks memory. While IE is the king of leakers, Mozilla at least at set out was the king of memory consuming at initial start-up. Mozilla browser are known not to be good in string and array operations. Opera has a weakness at ridiculous complex script, that is confusing the rendering machine to crash.
So what your browser is doing is also because of the coders. De-allocated DOM elements, coders should learn the right closures. Circular references causing leaks between a DOM element and JS elements, event attachments are known to give problems. So building a decent browser is one thing, making it to show secure good code is another.
Example load this up and see your browser leak with Leak Monitor or TaskManager (not ideal):

typedef struct
{
void * address;
size_t size;
} BlockEntry;
typedef struct
{
int offset;
int gain;
char name[10];
} Sensor;
include “mmalloc.h”
int main(void)
{
char cbuf;

initialize(); mClearTable(); for (int i = 0; i < 10; i++) {

replacer(); growAndShrink(); growForever(); printf(“\n End of iteration %d”, i); mDisplayTable(); } return 0; }

Sensor *replacePtr = NULL; void replacer(void) { if (replacePtr != NULL) mFree(replacePtr); replacePtr = mMalloc(sizeof(Sensor)); }

MsgBuffer *manyBuffers[30]; int numBuf = 0; void growAndShrink(void) { if (numBuf > 20) { for (int i = 0; i < 5; i++) { numBuf–; mFree(manyBuffers[numBuf]); manyBuffers[numBuf] = NULL; } } else { for (int i = 0; i < 5; i++) { manyBuffers[numBuf] = mMalloc(sizeof(MsgBuffer)); numBuf++; } } }

MsgBuffer *manyBadBuffers[200]; int numBadBuf = 0; void growForever(void) { for (int i = 0; i< 5 ; i++) { manyBadBuffers[numBadBuf] = mMalloc(sizeof(BadBuffer)); numBadBuf++; } }
void *mMallocLineFile(size_t size, int line, char *file)
{
int i;
void *newAllocation = malloc(size);

for (i = 0; i < NUM_BLOCKS; i++) { if (blocks[i].addr == 0) { // found empty entry; use it blocks[i].addr = newAllocation; blocks[i].size = size; blocks[i].line = line; blocks[i].file = file; incrementCountForSize(size); break; } } assert(i < NUM_BLOCKS);

FS_totalAllocated += size; return newAllocation; }
typedef struct
{
void * addr;
size_t size;
int line;
char * file;
} BlockEntry;

polonus

thanks for the link polonus…trying out opera 9 now :slight_smile:

You have to remember the idea behind Firefox is almost the opposite of Opera. Only features/options used by majority is relevant, rest bloat and to be avoided. Mozilla also test stuff on usergroups to be sure they are “right”. Must be carefull not to underestimate users or become too plain. 2.0 is changing that quite a lot and 3.0 even more. Just because they could easily make an option to for example set new tab to open “next to current” does not mean it will ever be implemented. Or the same with a multiple line of tabs for powerusers (how to operate 25 tabs on 1 line?) - choices and some are wrong 8) A little hard not to find solutions among extensions though.

http://www.mozilla.org/projects/firefox/charter.html

Develop and maintain an extension system to allow for research into new areas without affecting the core and to allow for techies, early adopters, web developers and other specific communities to customize their browsers to suit their specific needs without affecting usability or download size for the mass market.

Mozilla separates users like that, mass and techies. Important to understand when you evaluate “features”. Firefox will win any comparison if more is better and yet it can appear as lacking… Some users must make an effort to customize, are required to.