Skip to content

Commit

Permalink
Change minimum alarm duration to 30 seconds.
Browse files Browse the repository at this point in the history
https://webkit.org/b/271400
rdar://problem/125181579

Reviewed by Brian Weinstein.

* Source/WebKit/Shared/Extensions/WebExtensionConstants.h: Added webExtensionMinimumAlarmInterval.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIAlarmsCocoa.mm:
(WebKit::WebExtensionAPIAlarms::createAlarm): Use webExtensionMinimumAlarmInterval.

Canonical link: https://commits.webkit.org/276484@main
  • Loading branch information
xeenon committed Mar 21, 2024
1 parent 82bbfe7 commit 8b5a849
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
5 changes: 4 additions & 1 deletion Source/WebKit/Shared/Extensions/WebExtensionConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,12 @@

namespace WebKit {

// MARK: Alarms
static constexpr auto webExtensionMinimumAlarmInterval = 30_s;

// MARK: Message Passing
/// This matches the maximum message length enforced by Chromium in its `MessageFromJSONString()` function.
constexpr size_t webExtensionMaxMessageLength = 1024 * 1024 * 64;
static constexpr size_t webExtensionMaxMessageLength = 1024 * 1024 * 64;

// MARK: Declarative Net Request
static constexpr size_t webExtensionDeclarativeNetRequestMaximumNumberOfStaticRulesets = 100;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
#import "Logging.h"
#import "MessageSenderInlines.h"
#import "WebExtensionAPINamespace.h"
#import "WebExtensionConstants.h"
#import "WebExtensionContextMessages.h"
#import "WebExtensionContextProxy.h"
#import "WebExtensionUtilities.h"
Expand Down Expand Up @@ -109,9 +110,9 @@
}

if (!extensionContext().inTestingMode()) {
// Enforce a minimum of 1 minute intervals outside of testing.
initialInterval = std::max(initialInterval, 1_min);
repeatInterval = repeatInterval ? std::max(repeatInterval, 1_min) : 0_s;
// Enforce a minimum interval outside of testing.
initialInterval = std::max(initialInterval, webExtensionMinimumAlarmInterval);
repeatInterval = repeatInterval ? std::max(repeatInterval, webExtensionMinimumAlarmInterval) : 0_s;
}

WebProcess::singleton().send(Messages::WebExtensionContext::AlarmsCreate(name ?: emptyAlarmName, initialInterval, repeatInterval), extensionContext().identifier());
Expand Down

0 comments on commit 8b5a849

Please sign in to comment.