blob: 3015b7678d3e95b763a1c2af0bbe5fad572ca193 [file] [log] [blame]
Avi Drissman4e1b7bc32022-09-15 14:03:501// Copyright 2013 The Chromium Authors
[email protected]c4e78d72012-03-24 22:55:412// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]de7d61ff2013-08-20 11:30:415#include "content/shell/browser/shell_application_mac.h"
[email protected]c4e78d72012-03-24 22:55:416
[email protected]a6708072012-03-27 14:10:457#include "base/auto_reset.h"
erikchen7d5f0ee2018-08-02 22:15:408#include "base/observer_list.h"
9#include "content/public/browser/native_event_processor_mac.h"
10#include "content/public/browser/native_event_processor_observer_mac.h"
[email protected]685c8af2013-08-06 03:10:1511#include "content/public/common/url_constants.h"
[email protected]de7d61ff2013-08-20 11:30:4112#include "content/shell/browser/shell.h"
13#include "content/shell/browser/shell_browser_context.h"
14#include "content/shell/browser/shell_content_browser_client.h"
[email protected]707e1c42013-07-09 21:18:5815#include "url/gurl.h"
[email protected]a6708072012-03-27 14:10:4516
Avi Drissman49e8c2b32023-04-25 20:52:1317@interface ShellCrApplication () <NativeEventProcessor>
erikchen7d5f0ee2018-08-02 22:15:4018@end
19
Avi Drissman49e8c2b32023-04-25 20:52:1320@implementation ShellCrApplication {
21 base::ObserverList<content::NativeEventProcessorObserver>::Unchecked
22 _observers;
23
24 BOOL _handlingSendEvent;
25}
[email protected]c4e78d72012-03-24 22:55:4126
27- (BOOL)isHandlingSendEvent {
Robert Liaob641dca2019-12-11 16:31:3928 return _handlingSendEvent;
[email protected]c4e78d72012-03-24 22:55:4129}
30
31- (void)sendEvent:(NSEvent*)event {
Robert Liaob641dca2019-12-11 16:31:3932 base::AutoReset<BOOL> scoper(&_handlingSendEvent, YES);
erikchen7d5f0ee2018-08-02 22:15:4033
34 content::ScopedNotifyNativeEventProcessorObserver scopedObserverNotifier(
Robert Liaob641dca2019-12-11 16:31:3935 &_observers, event);
[email protected]c4e78d72012-03-24 22:55:4136 [super sendEvent:event];
[email protected]c4e78d72012-03-24 22:55:4137}
38
39- (void)setHandlingSendEvent:(BOOL)handlingSendEvent {
Robert Liaob641dca2019-12-11 16:31:3940 _handlingSendEvent = handlingSendEvent;
[email protected]c4e78d72012-03-24 22:55:4141}
42
[email protected]f3474bb52012-04-02 16:32:3643- (IBAction)newDocument:(id)sender {
[email protected]3560b572012-04-04 20:47:3244 content::ShellBrowserContext* browserContext =
[email protected]eabbfb12013-04-05 23:28:3545 content::ShellContentBrowserClient::Get()->browser_context();
kylecharde57aa352019-10-31 02:24:2946 content::Shell::CreateNewWindow(browserContext, GURL(url::kAboutBlankURL),
47 nullptr, gfx::Size());
[email protected]f3474bb52012-04-02 16:32:3648}
49
erikchen7d5f0ee2018-08-02 22:15:4050- (void)addNativeEventProcessorObserver:
51 (content::NativeEventProcessorObserver*)observer {
Robert Liaob641dca2019-12-11 16:31:3952 _observers.AddObserver(observer);
erikchen7d5f0ee2018-08-02 22:15:4053}
54
55- (void)removeNativeEventProcessorObserver:
56 (content::NativeEventProcessorObserver*)observer {
Robert Liaob641dca2019-12-11 16:31:3957 _observers.RemoveObserver(observer);
erikchen7d5f0ee2018-08-02 22:15:4058}
59
[email protected]c4e78d72012-03-24 22:55:4160@end