1 # HG changeset patch |
1 # HG changeset patch |
2 # Parent 214f99f3ce4f1f8ae9b3d18da44e5d66b3105663 |
2 # Parent 372d46509a8899feb3473becff869159d01f1f4c |
3 Description: Add KDE integration to Firefox (toolkit parts) |
3 Description: Add KDE integration to Firefox (toolkit parts) |
4 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> |
4 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> |
5 Author: Lubos Lunak <lunak@suse.com> |
5 Author: Lubos Lunak <lunak@suse.com> |
6 Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 |
6 Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 |
7 https://bugzilla.novell.com/show_bug.cgi?id=170055 |
7 https://bugzilla.novell.com/show_bug.cgi?id=170055 |
44 |
44 |
45 #include "prefapi.h" |
45 #include "prefapi.h" |
46 #include "prefread.h" |
46 #include "prefread.h" |
47 #include "prefapi_private_data.h" |
47 #include "prefapi_private_data.h" |
48 |
48 |
49 @@ -1165,16 +1166,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char |
49 @@ -1154,16 +1155,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char |
50 |
50 |
51 static nsresult pref_LoadPrefsInDirList(const char *listId) |
51 static nsresult pref_LoadPrefsInDirList(const char *listId) |
52 { |
52 { |
53 nsresult rv; |
53 nsresult rv; |
54 nsCOMPtr<nsIProperties> dirSvc(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv)); |
54 nsCOMPtr<nsIProperties> dirSvc(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv)); |
79 getter_AddRefs(list)); |
79 getter_AddRefs(list)); |
80 if (!list) |
80 if (!list) |
81 return NS_OK; |
81 return NS_OK; |
82 |
82 |
83 bool hasMore; |
83 bool hasMore; |
84 @@ -1190,17 +1209,17 @@ static nsresult pref_LoadPrefsInDirList( |
84 @@ -1179,17 +1198,17 @@ static nsresult pref_LoadPrefsInDirList( |
85 |
85 |
86 nsAutoCString leaf; |
86 nsAutoCString leaf; |
87 path->GetNativeLeafName(leaf); |
87 path->GetNativeLeafName(leaf); |
88 |
88 |
89 // Do we care if a file provided by this process fails to load? |
89 // Do we care if a file provided by this process fails to load? |
98 |
98 |
99 static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name) |
99 static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name) |
100 { |
100 { |
101 nsZipItemPtr<char> manifest(jarReader, name, true); |
101 nsZipItemPtr<char> manifest(jarReader, name, true); |
102 NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE); |
102 NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE); |
103 @@ -1294,26 +1313,38 @@ static nsresult pref_InitInitialObjects( |
103 @@ -1283,26 +1302,38 @@ static nsresult pref_InitInitialObjects( |
104 /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */ |
104 /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */ |
105 static const char* specialFiles[] = { |
105 static const char* specialFiles[] = { |
106 #if defined(XP_MACOSX) |
106 #if defined(XP_MACOSX) |
107 "macprefs.js" |
107 "macprefs.js" |
108 #elif defined(XP_WIN) |
108 #elif defined(XP_WIN) |
182 self.base = base |
182 self.base = base |
183 self.flags = Flags(*flags) |
183 self.flags = Flags(*flags) |
184 diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build |
184 diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build |
185 --- a/toolkit/components/downloads/moz.build |
185 --- a/toolkit/components/downloads/moz.build |
186 +++ b/toolkit/components/downloads/moz.build |
186 +++ b/toolkit/components/downloads/moz.build |
187 @@ -52,14 +52,15 @@ if not CONFIG['MOZ_SUITE']: |
187 @@ -67,14 +67,15 @@ if not CONFIG['MOZ_SUITE']: |
188 ] |
188 ] |
189 |
189 |
190 FAIL_ON_WARNINGS = True |
190 FAIL_ON_WARNINGS = True |
191 |
191 |
192 FINAL_LIBRARY = 'xul' |
192 FINAL_LIBRARY = 'xul' |
223 |
223 |
224 #ifdef MOZ_WIDGET_ANDROID |
224 #ifdef MOZ_WIDGET_ANDROID |
225 #include "AndroidBridge.h" |
225 #include "AndroidBridge.h" |
226 #endif |
226 #endif |
227 |
227 |
228 @@ -2716,16 +2720,25 @@ nsDownload::SetState(DownloadState aStat |
228 @@ -2711,16 +2715,25 @@ nsDownload::SetState(DownloadState aStat |
229 nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID)); |
229 nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID)); |
230 |
230 |
231 // Master pref to control this function. |
231 // Master pref to control this function. |
232 bool showTaskbarAlert = true; |
232 bool showTaskbarAlert = true; |
233 if (pref) |
233 if (pref) |
249 |
249 |
250 int64_t alertIntervalUSec = alertInterval * PR_USEC_PER_MSEC; |
250 int64_t alertIntervalUSec = alertInterval * PR_USEC_PER_MSEC; |
251 int64_t goat = PR_Now() - mStartTime; |
251 int64_t goat = PR_Now() - mStartTime; |
252 showTaskbarAlert = goat > alertIntervalUSec; |
252 showTaskbarAlert = goat > alertIntervalUSec; |
253 |
253 |
254 @@ -2756,16 +2769,17 @@ nsDownload::SetState(DownloadState aStat |
254 @@ -2751,16 +2764,17 @@ nsDownload::SetState(DownloadState aStat |
255 NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title, |
255 NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title, |
256 message, !removeWhenDone, |
256 message, !removeWhenDone, |
257 mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"), |
257 mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"), |
258 mDownloadManager, EmptyString(), NS_LITERAL_STRING("auto"), |
258 mDownloadManager, EmptyString(), NS_LITERAL_STRING("auto"), |
259 EmptyString(), EmptyString(), nullptr, mPrivate); |
259 EmptyString(), EmptyString(), nullptr, mPrivate); |
270 if (fileURL && |
270 if (fileURL && |
271 NS_SUCCEEDED(fileURL->GetFile(getter_AddRefs(file))) && |
271 NS_SUCCEEDED(fileURL->GetFile(getter_AddRefs(file))) && |
272 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn |
272 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn |
273 --- a/toolkit/content/jar.mn |
273 --- a/toolkit/content/jar.mn |
274 +++ b/toolkit/content/jar.mn |
274 +++ b/toolkit/content/jar.mn |
275 @@ -57,29 +57,33 @@ toolkit.jar: |
275 @@ -60,29 +60,33 @@ toolkit.jar: |
276 content/global/viewZoomOverlay.js (viewZoomOverlay.js) |
276 content/global/viewZoomOverlay.js (viewZoomOverlay.js) |
277 *+ content/global/bindings/autocomplete.xml (widgets/autocomplete.xml) |
277 *+ content/global/bindings/autocomplete.xml (widgets/autocomplete.xml) |
278 content/global/bindings/browser.xml (widgets/browser.xml) |
278 content/global/bindings/browser.xml (widgets/browser.xml) |
279 content/global/bindings/button.xml (widgets/button.xml) |
279 content/global/bindings/button.xml (widgets/button.xml) |
280 content/global/bindings/checkbox.xml (widgets/checkbox.xml) |
280 content/global/bindings/checkbox.xml (widgets/checkbox.xml) |
308 content/global/bindings/scrollbox.xml (widgets/scrollbox.xml) |
308 content/global/bindings/scrollbox.xml (widgets/scrollbox.xml) |
309 diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml |
309 diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml |
310 new file mode 100644 |
310 new file mode 100644 |
311 --- /dev/null |
311 --- /dev/null |
312 +++ b/toolkit/content/widgets/dialog-kde.xml |
312 +++ b/toolkit/content/widgets/dialog-kde.xml |
313 @@ -0,0 +1,455 @@ |
313 @@ -0,0 +1,460 @@ |
314 +<?xml version="1.0"?> |
314 +<?xml version="1.0"?> |
315 +<!-- This Source Code Form is subject to the terms of the Mozilla Public |
315 +<!-- This Source Code Form is subject to the terms of the Mozilla Public |
316 + - License, v. 2.0. If a copy of the MPL was not distributed with this |
316 + - License, v. 2.0. If a copy of the MPL was not distributed with this |
317 + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> |
317 + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> |
318 + |
318 + |
342 + <xul:spacer anonid="spacer" flex="1"/> |
342 + <xul:spacer anonid="spacer" flex="1"/> |
343 + <xul:button dlgtype="cancel" class="dialog-button"/> |
343 + <xul:button dlgtype="cancel" class="dialog-button"/> |
344 + <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/> |
344 + <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/> |
345 +#elif XP_UNIX |
345 +#elif XP_UNIX |
346 + > |
346 + > |
347 + <xul:button dlgtype="help" class="dialog-button" hidden="true"/> |
347 + <xul:button dlgtype="help" class="dialog-button" hidden="true"/> |
348 + <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/> |
348 + <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/> |
349 + <xul:spacer anonid="spacer" flex="1"/> |
349 + <xul:spacer anonid="spacer" flex="1"/> |
350 + <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/> |
350 + <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/> |
351 + <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/> |
351 + <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/> |
352 + <xul:button dlgtype="cancel" class="dialog-button"/> |
352 + <xul:button dlgtype="cancel" class="dialog-button"/> |
424 + if (window.outerWidth == 1) { |
424 + if (window.outerWidth == 1) { |
425 + dump("Trying to position a sizeless window; caller should have called sizeToContent() or sizeTo(). See bug 75649.\n"); |
425 + dump("Trying to position a sizeless window; caller should have called sizeToContent() or sizeTo(). See bug 75649.\n"); |
426 + sizeToContent(); |
426 + sizeToContent(); |
427 + } |
427 + } |
428 + |
428 + |
429 + var xOffset = (opener.outerWidth - window.outerWidth) / 2; |
429 + if (opener) { |
430 + var yOffset = opener.outerHeight / 5; |
430 + var xOffset = (opener.outerWidth - window.outerWidth) / 2; |
431 + |
431 + var yOffset = opener.outerHeight / 5; |
432 + var newX = opener.screenX + xOffset; |
432 + |
433 + var newY = opener.screenY + yOffset; |
433 + var newX = opener.screenX + xOffset; |
|
434 + var newY = opener.screenY + yOffset; |
|
435 + } else { |
|
436 + newX = (screen.availWidth - window.outerWidth) / 2; |
|
437 + newY = (screen.availHeight - window.outerHeight) / 2; |
|
438 + } |
434 + |
439 + |
435 + // ensure the window is fully onscreen (if smaller than the screen) |
440 + // ensure the window is fully onscreen (if smaller than the screen) |
436 + if (newX < screen.availLeft) |
441 + if (newX < screen.availLeft) |
437 + newX = screen.availLeft + 20; |
442 + newX = screen.availLeft + 20; |
438 + if ((newX + window.outerWidth) > (screen.availLeft + screen.availWidth)) |
443 + if ((newX + window.outerWidth) > (screen.availLeft + screen.availWidth)) |
768 +</bindings> |
773 +</bindings> |
769 diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widgets/preferences-kde.xml |
774 diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widgets/preferences-kde.xml |
770 new file mode 100644 |
775 new file mode 100644 |
771 --- /dev/null |
776 --- /dev/null |
772 +++ b/toolkit/content/widgets/preferences-kde.xml |
777 +++ b/toolkit/content/widgets/preferences-kde.xml |
773 @@ -0,0 +1,1350 @@ |
778 @@ -0,0 +1,1357 @@ |
774 +<?xml version="1.0"?> |
779 +<?xml version="1.0"?> |
775 + |
780 + |
776 +<!DOCTYPE bindings [ |
781 +<!DOCTYPE bindings [ |
777 + <!ENTITY % preferencesDTD SYSTEM "chrome://global/locale/preferences.dtd"> |
782 + <!ENTITY % preferencesDTD SYSTEM "chrome://global/locale/preferences.dtd"> |
778 + %preferencesDTD; |
783 + %preferencesDTD; |
1392 + </content> |
1397 + </content> |
1393 + <implementation implements="nsITimerCallback"> |
1398 + <implementation implements="nsITimerCallback"> |
1394 + <constructor> |
1399 + <constructor> |
1395 + <![CDATA[ |
1400 + <![CDATA[ |
1396 + if (this.type != "child") { |
1401 + if (this.type != "child") { |
1397 + var psvc = Components.classes["@mozilla.org/preferences-service;1"] |
1402 + if (!this._instantApplyInitialized) { |
1398 + .getService(Components.interfaces.nsIPrefBranch); |
1403 + let psvc = Components.classes["@mozilla.org/preferences-service;1"] |
1399 + this.instantApply = psvc.getBoolPref("browser.preferences.instantApply"); |
1404 + .getService(Components.interfaces.nsIPrefBranch); |
|
1405 + this.instantApply = psvc.getBoolPref("browser.preferences.instantApply"); |
|
1406 + } |
1400 + if (this.instantApply) { |
1407 + if (this.instantApply) { |
1401 + var docElt = document.documentElement; |
1408 + var docElt = document.documentElement; |
1402 + var acceptButton = docElt.getButton("accept"); |
1409 + var acceptButton = docElt.getButton("accept"); |
1403 + acceptButton.hidden = true; |
1410 + acceptButton.hidden = true; |
1404 + var cancelButton = docElt.getButton("cancel"); |
1411 + var cancelButton = docElt.getButton("cancel"); |
1464 + this._fadeTimer = null; |
1471 + this._fadeTimer = null; |
1465 + } |
1472 + } |
1466 + ]]> |
1473 + ]]> |
1467 + </destructor> |
1474 + </destructor> |
1468 + |
1475 + |
|
1476 + <!-- Derived bindings can set this to true to cause us to skip |
|
1477 + reading the browser.preferences.instantApply pref in the constructor. |
|
1478 + Then they can set instantApply to their wished value. --> |
|
1479 + <field name="_instantApplyInitialized">false</field> |
|
1480 + <!-- Controls whether changed pref values take effect immediately. --> |
1469 + <field name="instantApply">false</field> |
1481 + <field name="instantApply">false</field> |
1470 + |
1482 + |
1471 + <property name="preferencePanes" |
1483 + <property name="preferencePanes" |
1472 + onget="return this.getElementsByTagName('prefpane');"/> |
1484 + onget="return this.getElementsByTagName('prefpane');"/> |
1473 + |
1485 + |
1474 + <property name="type" onget="return this.getAttribute('type');"/> |
1486 + <property name="type" onget="return this.getAttribute('type');"/> |
1475 + <property name="_paneDeck" |
1487 + <property name="_paneDeck" |
3464 |
3476 |
3465 #endif |
3477 #endif |
3466 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp |
3478 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp |
3467 --- a/xpcom/components/ManifestParser.cpp |
3479 --- a/xpcom/components/ManifestParser.cpp |
3468 +++ b/xpcom/components/ManifestParser.cpp |
3480 +++ b/xpcom/components/ManifestParser.cpp |
3469 @@ -34,16 +34,17 @@ |
3481 @@ -35,16 +35,17 @@ |
3470 |
3482 |
3471 #include "nsIConsoleService.h" |
3483 #include "nsIConsoleService.h" |
3472 #include "nsIScriptError.h" |
3484 #include "nsIScriptError.h" |
3473 #include "nsIXULAppInfo.h" |
3485 #include "nsIXULAppInfo.h" |
3474 #include "nsIXULRuntime.h" |
3486 #include "nsIXULRuntime.h" |
3482 #define XPTONLY_XPT &nsComponentManagerImpl::XPTOnlyManifestXPT |
3494 #define XPTONLY_XPT &nsComponentManagerImpl::XPTOnlyManifestXPT |
3483 #else |
3495 #else |
3484 #define XPTONLY_MANIFEST nullptr |
3496 #define XPTONLY_MANIFEST nullptr |
3485 #define XPTONLY_XPT nullptr |
3497 #define XPTONLY_XPT nullptr |
3486 #endif |
3498 #endif |
3487 @@ -489,16 +490,17 @@ ParseManifest(NSLocationType aType, File |
3499 @@ -494,16 +495,17 @@ ParseManifest(NSLocationType aType, File |
3488 NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled"); |
3500 NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled"); |
3489 NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired"); |
3501 NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired"); |
3490 NS_NAMED_LITERAL_STRING(kApplication, "application"); |
3502 NS_NAMED_LITERAL_STRING(kApplication, "application"); |
3491 NS_NAMED_LITERAL_STRING(kAppVersion, "appversion"); |
3503 NS_NAMED_LITERAL_STRING(kAppVersion, "appversion"); |
3492 NS_NAMED_LITERAL_STRING(kGeckoVersion, "platformversion"); |
3504 NS_NAMED_LITERAL_STRING(kGeckoVersion, "platformversion"); |
3500 #endif |
3512 #endif |
3501 |
3513 |
3502 NS_NAMED_LITERAL_STRING(kMain, "main"); |
3514 NS_NAMED_LITERAL_STRING(kMain, "main"); |
3503 NS_NAMED_LITERAL_STRING(kContent, "content"); |
3515 NS_NAMED_LITERAL_STRING(kContent, "content"); |
3504 |
3516 |
3505 @@ -549,44 +551,49 @@ ParseManifest(NSLocationType aType, File |
3517 @@ -554,44 +556,49 @@ ParseManifest(NSLocationType aType, File |
3506 CopyUTF8toUTF16(s, abi); |
3518 CopyUTF8toUTF16(s, abi); |
3507 abi.Insert(char16_t('_'), 0); |
3519 abi.Insert(char16_t('_'), 0); |
3508 abi.Insert(osTarget, 0); |
3520 abi.Insert(osTarget, 0); |
3509 } |
3521 } |
3510 } |
3522 } |
3550 process = kContent; |
3562 process = kContent; |
3551 } else { |
3563 } else { |
3552 process = kMain; |
3564 process = kMain; |
3553 } |
3565 } |
3554 |
3566 |
3555 @@ -681,25 +688,27 @@ ParseManifest(NSLocationType aType, File |
3567 @@ -694,25 +701,27 @@ ParseManifest(NSLocationType aType, File |
3556 TriState stOsVersion = eUnspecified; |
3568 TriState stOsVersion = eUnspecified; |
3557 TriState stOs = eUnspecified; |
3569 TriState stOs = eUnspecified; |
3558 TriState stABI = eUnspecified; |
3570 TriState stABI = eUnspecified; |
3559 TriState stProcess = eUnspecified; |
3571 TriState stProcess = eUnspecified; |
3560 #if defined(MOZ_WIDGET_ANDROID) |
3572 #if defined(MOZ_WIDGET_ANDROID) |
3578 CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, stGeckoVersion)) { |
3590 CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, stGeckoVersion)) { |
3579 continue; |
3591 continue; |
3580 } |
3592 } |
3581 |
3593 |
3582 #if defined(MOZ_WIDGET_ANDROID) |
3594 #if defined(MOZ_WIDGET_ANDROID) |
3583 @@ -749,16 +758,17 @@ ParseManifest(NSLocationType aType, File |
3595 @@ -762,16 +771,17 @@ ParseManifest(NSLocationType aType, File |
3584 } |
3596 } |
3585 |
3597 |
3586 if (!ok || |
3598 if (!ok || |
3587 stApp == eBad || |
3599 stApp == eBad || |
3588 stAppVersion == eBad || |
3600 stAppVersion == eBad || |
3599 } |
3611 } |
3600 |
3612 |
3601 diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build |
3613 diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build |
3602 --- a/xpcom/components/moz.build |
3614 --- a/xpcom/components/moz.build |
3603 +++ b/xpcom/components/moz.build |
3615 +++ b/xpcom/components/moz.build |
3604 @@ -48,12 +48,13 @@ FINAL_LIBRARY = 'xul' |
3616 @@ -46,12 +46,13 @@ FINAL_LIBRARY = 'xul' |
3605 GENERATED_INCLUDES += ['..'] |
3617 GENERATED_INCLUDES += ['..'] |
3606 LOCAL_INCLUDES += [ |
3618 LOCAL_INCLUDES += [ |
3607 '../base', |
3619 '../base', |
3608 '../build', |
3620 '../build', |
3609 '../ds', |
3621 '../ds', |
3634 #include <Carbon/Carbon.h> |
3646 #include <Carbon/Carbon.h> |
3635 #include "CocoaFileUtils.h" |
3647 #include "CocoaFileUtils.h" |
3636 #include "prmem.h" |
3648 #include "prmem.h" |
3637 #include "plbase64.h" |
3649 #include "plbase64.h" |
3638 |
3650 |
3639 @@ -1964,42 +1965,52 @@ nsLocalFile::SetPersistentDescriptor(con |
3651 @@ -1960,42 +1961,52 @@ nsLocalFile::SetPersistentDescriptor(con |
3640 return InitWithNativePath(aPersistentDescriptor); |
3652 return InitWithNativePath(aPersistentDescriptor); |
3641 #endif |
3653 #endif |
3642 } |
3654 } |
3643 |
3655 |
3644 NS_IMETHODIMP |
3656 NS_IMETHODIMP |