Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Intellij Community
Commits
16094bbc
Commit
16094bbc
authored
6 years ago
by
Svetlana.Zemlyanskaya
Browse files
Options
Download
Email Patches
Plain Diff
FB-125 Don't report actions and dialogs from third-party plugins
parent
014bf68f
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
java/debugger/impl/src/com/intellij/debugger/impl/HotSwapManager.java
+1
-1
...r/impl/src/com/intellij/debugger/impl/HotSwapManager.java
platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipActionProvider.kt
+2
-2
...ij/codeInsight/daemon/impl/DaemonTooltipActionProvider.kt
platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipWithActionRenderer.kt
+1
-1
...odeInsight/daemon/impl/DaemonTooltipWithActionRenderer.kt
platform/platform-api/src/com/intellij/ide/actions/ActionsCollector.java
+13
-1
...rm-api/src/com/intellij/ide/actions/ActionsCollector.java
platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java
+1
-1
...atform-api/src/com/intellij/openapi/ui/DialogWrapper.java
platform/platform-impl/src/com/intellij/codeInsight/hint/LineTooltipRenderer.java
+2
-2
...rc/com/intellij/codeInsight/hint/LineTooltipRenderer.java
platform/platform-impl/src/com/intellij/internal/statistic/collectors/fus/actions/persistence/ActionsCollectorImpl.java
+22
-1
...lectors/fus/actions/persistence/ActionsCollectorImpl.java
platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java
+1
-1
...intellij/openapi/actionSystem/impl/ActionManagerImpl.java
platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java
+4
-1
...intellij/openapi/wm/impl/status/InfoAndProgressPanel.java
plugins/settings-repository/src/upstreamEditor.kt
+1
-1
plugins/settings-repository/src/upstreamEditor.kt
with
48 additions
and
12 deletions
+48
-12
java/debugger/impl/src/com/intellij/debugger/impl/HotSwapManager.java
+
1
-
1
View file @
16094bbc
...
...
@@ -196,6 +196,6 @@ public class HotSwapManager extends AbstractProjectComponent {
reloadClassesProgress
.
setTitle
(
DebuggerBundle
.
message
(
"progress.hotswap.reloading"
));
reloadClassesCommand
.
run
();
ActionsCollector
.
getInstance
().
record
(
"Reload Classes"
);
ActionsCollector
.
getInstance
().
record
(
"Reload Classes"
,
HotSwapManager
.
class
);
}
}
This diff is collapsed.
Click to expand it.
platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipActionProvider.kt
+
2
-
2
View file @
16094bbc
...
...
@@ -32,7 +32,7 @@ class DaemonTooltipAction(private val myFixText: String, private val myActualOff
}
override
fun
execute
(
editor
:
Editor
)
{
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.execute"
)
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.execute"
,
this
::
class
.
java
)
val
project
=
editor
.
project
?:
return
val
psiFile
=
PsiDocumentManager
.
getInstance
(
project
).
getPsiFile
(
editor
.
document
)
?:
return
...
...
@@ -52,7 +52,7 @@ class DaemonTooltipAction(private val myFixText: String, private val myActualOff
}
override
fun
showAllActions
(
editor
:
Editor
)
{
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.show.all"
)
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.show.all"
,
this
::
class
.
java
)
editor
.
caretModel
.
moveToOffset
(
myActualOffset
)
val
project
=
editor
.
project
?:
return
...
...
This diff is collapsed.
Click to expand it.
platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipWithActionRenderer.kt
+
1
-
1
View file @
16094bbc
...
...
@@ -325,7 +325,7 @@ internal class DaemonTooltipWithActionRenderer(text: String?,
}
override
fun
setSelected
(
e
:
AnActionEvent
,
state
:
Boolean
)
{
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.show.description.gear"
)
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.show.description.gear"
,
this
::
class
.
java
)
reloader
.
reload
(
state
)
}
...
...
This diff is collapsed.
Click to expand it.
platform/platform-api/src/com/intellij/ide/actions/ActionsCollector.java
+
13
-
1
View file @
16094bbc
...
...
@@ -4,6 +4,8 @@ package com.intellij.ide.actions;
import
com.intellij.openapi.components.ServiceManager
;
import
com.intellij.util.xmlb.annotations.MapAnnotation
;
import
com.intellij.util.xmlb.annotations.Tag
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
java.util.HashMap
;
import
java.util.Map
;
...
...
@@ -12,7 +14,17 @@ import java.util.Map;
* @author Konstantin Bulenkov
*/
public
abstract
class
ActionsCollector
{
public
abstract
void
record
(
String
actionId
);
/**
* Only actions from platform and JB plugins are recorded.
* If no context class is provided then nothing will be recorded.
* @deprecated
*/
public
void
record
(
String
actionId
)
{}
/**
* Only actions from platform and JB plugins are recorded.
*/
public
abstract
void
record
(
@Nullable
String
actionId
,
@NotNull
Class
context
);
public
abstract
State
getState
();
...
...
This diff is collapsed.
Click to expand it.
platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java
+
1
-
1
View file @
16094bbc
...
...
@@ -1877,7 +1877,7 @@ public abstract class DialogWrapper {
private
void
recordAction
(
String
name
,
AWTEvent
event
)
{
if
(
event
instanceof
KeyEvent
&&
ApplicationManager
.
getApplication
()
!=
null
)
{
String
shortcut
=
getKeystrokeText
(
KeyStroke
.
getKeyStrokeForEvent
((
KeyEvent
)
event
));
ActionsCollector
.
getInstance
().
record
(
name
+
" "
+
shortcut
);
ActionsCollector
.
getInstance
().
record
(
name
+
" "
+
shortcut
,
DialogWrapper
.
class
);
}
}
...
...
This diff is collapsed.
Click to expand it.
platform/platform-impl/src/com/intellij/codeInsight/hint/LineTooltipRenderer.java
+
2
-
2
View file @
16094bbc
...
...
@@ -172,7 +172,7 @@ public class LineTooltipRenderer extends ComparableObject.Impl implements Toolti
public
void
actionPerformed
(
final
AnActionEvent
e
)
{
// The tooltip gets the focus if using a screen reader and invocation through a keyboard shortcut.
hintHint
.
setRequestFocus
(
ScreenReader
.
isActive
()
&&
(
e
.
getInputEvent
()
instanceof
KeyEvent
));
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.show.description.shortcut"
);
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.show.description.shortcut"
,
this
.
getClass
()
);
reloader
.
reload
(!
expanded
);
}
});
...
...
@@ -200,7 +200,7 @@ public class LineTooltipRenderer extends ComparableObject.Impl implements Toolti
return
;
}
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.show.description.morelink"
);
ActionsCollector
.
getInstance
().
record
(
"tooltip.actions.show.description.morelink"
,
this
.
getClass
()
);
reloader
.
reload
(!
expanded
);
}
...
...
This diff is collapsed.
Click to expand it.
platform/platform-impl/src/com/intellij/internal/statistic/collectors/fus/actions/persistence/ActionsCollectorImpl.java
+
22
-
1
View file @
16094bbc
...
...
@@ -2,6 +2,10 @@
package
com.intellij.internal.statistic.collectors.fus.actions.persistence
;
import
com.intellij.ide.actions.ActionsCollector
;
import
com.intellij.ide.plugins.IdeaPluginDescriptor
;
import
com.intellij.ide.plugins.PluginManager
;
import
com.intellij.ide.plugins.PluginManagerCore
;
import
com.intellij.ide.plugins.PluginManagerMain
;
import
com.intellij.internal.statistic.beans.ConvertUsagesUtil
;
import
com.intellij.internal.statistic.eventLog.FeatureUsageLogger
;
import
com.intellij.internal.statistic.persistence.UsageStatisticsPersistenceComponent
;
...
...
@@ -9,9 +13,13 @@ import com.intellij.openapi.components.PersistentStateComponent;
import
com.intellij.openapi.components.RoamingType
;
import
com.intellij.openapi.components.State
;
import
com.intellij.openapi.components.Storage
;
import
com.intellij.openapi.extensions.PluginId
;
import
gnu.trove.THashSet
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
java.util.Set
;
/**
* @author Konstantin Bulenkov
*/
...
...
@@ -23,19 +31,32 @@ import org.jetbrains.annotations.Nullable;
}
)
public
class
ActionsCollectorImpl
extends
ActionsCollector
implements
PersistentStateComponent
<
ActionsCollector
.
State
>
{
public
void
record
(
String
actionId
)
{
private
static
final
String
DEFAULT_ID
=
"third.party.plugin.action"
;
private
final
Set
<
String
>
myJBActions
=
new
THashSet
<>();
public
void
record
(
@Nullable
String
actionId
,
@NotNull
Class
context
)
{
if
(
actionId
==
null
)
return
;
State
state
=
getState
();
if
(
state
==
null
)
return
;
String
key
=
ConvertUsagesUtil
.
escapeDescriptorName
(
actionId
);
if
(!
myJBActions
.
contains
(
key
))
{
key
=
isDevelopedByJetBrains
(
context
)
?
key
:
DEFAULT_ID
;
myJBActions
.
add
(
key
);
}
FeatureUsageLogger
.
INSTANCE
.
log
(
"actions"
,
key
);
final
Integer
count
=
state
.
myValues
.
get
(
key
);
int
value
=
count
==
null
?
1
:
count
+
1
;
state
.
myValues
.
put
(
key
,
value
);
}
private
static
boolean
isDevelopedByJetBrains
(
@NotNull
Class
aClass
)
{
final
PluginId
pluginId
=
PluginManagerCore
.
getPluginByClassName
(
aClass
.
getName
());
final
IdeaPluginDescriptor
plugin
=
PluginManager
.
getPlugin
(
pluginId
);
return
plugin
==
null
||
plugin
.
isBundled
()
||
PluginManagerMain
.
isDevelopedByJetBrains
(
plugin
);
}
private
State
myState
=
new
State
();
@Nullable
...
...
This diff is collapsed.
Click to expand it.
platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java
+
1
-
1
View file @
16094bbc
...
...
@@ -1202,7 +1202,7 @@ public final class ActionManagerImpl extends ActionManagerEx implements Disposab
}
//noinspection AssignmentToStaticFieldFromInstanceMethod
IdeaLogger
.
ourLastActionId
=
myLastPreformedActionId
;
ActionsCollectorImpl
.
getInstance
().
record
(
myLastPreformedActionId
);
ActionsCollectorImpl
.
getInstance
().
record
(
myLastPreformedActionId
,
action
.
getClass
()
);
}
for
(
AnActionListener
listener
:
myActionListeners
)
{
listener
.
beforeActionPerformed
(
action
,
dataContext
,
event
);
...
...
This diff is collapsed.
Click to expand it.
platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java
+
4
-
1
View file @
16094bbc
...
...
@@ -703,7 +703,10 @@ public class InfoAndProgressPanel extends JPanel implements CustomStatusBarWidge
}
else
{
suspender
.
suspendProcess
(
null
);
}
ActionsCollector
.
getInstance
().
record
(
suspender
.
isSuspended
()
?
"Progress Paused"
:
"Progress Resumed"
);
ActionsCollector
.
getInstance
().
record
(
suspender
.
isSuspended
()
?
"Progress Paused"
:
"Progress Resumed"
,
MyInlineProgressIndicator
.
class
);
}).
setFillBg
(
false
);
suspendButton
.
setVisible
(
false
);
...
...
This diff is collapsed.
Click to expand it.
plugins/settings-repository/src/upstreamEditor.kt
+
1
-
1
View file @
16094bbc
...
...
@@ -45,7 +45,7 @@ fun createMergeActions(project: Project?, urlTextField: TextFieldWithBrowseButto
}
override
fun
actionPerformed
(
event
:
ActionEvent
)
{
ActionsCollector
.
getInstance
().
record
(
"Ics.${getValue(Action.NAME)}"
)
ActionsCollector
.
getInstance
().
record
(
"Ics.${getValue(Action.NAME)}"
,
icsManager
::
class
.
java
)
val
repositoryWillBeCreated
=
!
icsManager
.
repositoryManager
.
isRepositoryExists
()
var
upstreamSet
=
false
try
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment