Index: apps/app_shim/chrome_main_app_mode_mac.mm |
diff --git a/apps/app_shim/chrome_main_app_mode_mac.mm b/apps/app_shim/chrome_main_app_mode_mac.mm |
index 18b8f9e1cfdbca32b371e69ba850be1f2bc33587..d7265b71e819fa9259e07c79de5fa614c1b0adb3 100644 |
--- a/apps/app_shim/chrome_main_app_mode_mac.mm |
+++ b/apps/app_shim/chrome_main_app_mode_mac.mm |
@@ -131,6 +131,7 @@ class AppShimController : public IPC::Listener { |
// Requests user attention. |
void OnRequestUserAttention(); |
tapted
2014/08/13 06:53:15
since this shim is "always" newer, I don't think t
jackhou1
2014/08/14 04:24:51
The shim is newer, so the older Chrome might send
tapted
2014/08/14 04:38:51
ohhhhh of course..
|
+ void OnSetUserAttention(apps::AppShimAttentionType attention_type); |
// Terminates the app shim process. |
void Close(); |
@@ -140,6 +141,7 @@ class AppShimController : public IPC::Listener { |
base::scoped_nsobject<AppShimDelegate> delegate_; |
bool launch_app_done_; |
bool ping_chrome_reply_received_; |
+ NSInteger attention_request_id_; |
DISALLOW_COPY_AND_ASSIGN(AppShimController); |
}; |
@@ -147,7 +149,8 @@ class AppShimController : public IPC::Listener { |
AppShimController::AppShimController() |
: delegate_([[AppShimDelegate alloc] init]), |
launch_app_done_(false), |
- ping_chrome_reply_received_(false) { |
+ ping_chrome_reply_received_(false), |
+ attention_request_id_(0) { |
// Since AppShimController is created before the main message loop starts, |
// NSApp will not be set, so use sharedApplication. |
[[NSApplication sharedApplication] setDelegate:delegate_]; |
@@ -282,6 +285,7 @@ bool AppShimController::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(AppShimMsg_LaunchApp_Done, OnLaunchAppDone) |
IPC_MESSAGE_HANDLER(AppShimMsg_Hide, OnHide) |
IPC_MESSAGE_HANDLER(AppShimMsg_RequestUserAttention, OnRequestUserAttention) |
+ IPC_MESSAGE_HANDLER(AppShimMsg_SetUserAttention, OnSetUserAttention) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
@@ -310,7 +314,25 @@ void AppShimController::OnHide() { |
} |
void AppShimController::OnRequestUserAttention() { |
- [NSApp requestUserAttention:NSInformationalRequest]; |
+ OnSetUserAttention(apps::APP_SHIM_ATTENTION_INFORMATIONAL); |
+} |
+ |
+void AppShimController::OnSetUserAttention( |
+ apps::AppShimAttentionType attention_type) { |
+ switch (attention_type) { |
+ case apps::APP_SHIM_ATTENTION_CANCEL: |
+ [NSApp cancelUserAttentionRequest:attention_request_id_]; |
+ attention_request_id_ = 0; |
+ break; |
+ case apps::APP_SHIM_ATTENTION_CRITICAL: |
+ attention_request_id_ = [NSApp requestUserAttention:NSCriticalRequest]; |
+ break; |
+ case apps::APP_SHIM_ATTENTION_INFORMATIONAL: |
+ attention_request_id_ = |
+ [NSApp requestUserAttention:NSInformationalRequest]; |
+ case apps::APP_SHIM_ATTENTION_NUM_TYPES: |
tapted
2014/08/13 06:53:15
You need a break; before this :o
jackhou1
2014/08/14 04:24:51
Done.
|
+ NOTREACHED(); |
+ } |
} |
void AppShimController::Close() { |