Skip to content

Commit 9d92ea3

Browse files
committed
feat: support latest devtools
1 parent 747a5c4 commit 9d92ea3

File tree

5 files changed

+72
-14
lines changed

5 files changed

+72
-14
lines changed

devtools/target.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,12 @@ window.onload = function () {
3737
function resetDevtools() {
3838
const window = devtoolsIframe.contentWindow
3939
setTimeout(() => {
40-
window.runtime.loadLegacyModule('core/sdk/sdk-legacy.js').then(() => {
41-
const SDK = window.SDK
42-
for (const resourceTreeModel of SDK.TargetManager.instance().models(
43-
SDK.ResourceTreeModel
40+
window.runtime.loadLegacyModule('core/sdk/sdk.js').then(SDKModule => {
41+
for (const resourceTreeModel of SDKModule.TargetManager.TargetManager.instance().models(
42+
SDKModule.ResourceTreeModel.ResourceTreeModel
4443
)) {
4544
resourceTreeModel.dispatchEventToListeners(
46-
SDK.ResourceTreeModel.Events.WillReloadPage,
45+
SDKModule.ResourceTreeModel.Events.WillReloadPage,
4746
resourceTreeModel
4847
)
4948
}
@@ -69,5 +68,7 @@ function resetDevtools() {
6968
sendToChobitsu({ method: 'CSS.enable' })
7069
sendToChobitsu({ method: 'Overlay.enable' })
7170
sendToDevtools({ method: 'DOM.documentUpdated' })
71+
sendToChobitsu({ method: 'Page.enable' })
72+
sendToDevtools({ method: 'Page.loadEventFired' })
7273
}, 0)
7374
}

src/domains/DOM.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,12 @@ export function getTopLayerElements(): DOM.GetTopLayerElementsResponse {
307307
}
308308
}
309309

310+
export function getNodesForSubtreeByStyle(): DOM.GetNodesForSubtreeByStyleResponse {
311+
return {
312+
nodeIds: [],
313+
}
314+
}
315+
310316
function parseAttributes(str: string) {
311317
str = `<div ${str}></div>`
312318

src/domains/Input.ts

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,7 @@ export function emulateTouchFromMouseEvent(
2424
case 'mouseReleased':
2525
triggerTouchEvent('touchend', el, x, y)
2626
if (isClick) {
27-
el.dispatchEvent(
28-
new MouseEvent('click', {
29-
bubbles: true,
30-
cancelable: true,
31-
view: window,
32-
})
33-
)
27+
triggerMouseEvent('click', el, x, y)
3428
}
3529
isClick = false
3630
break
@@ -42,6 +36,47 @@ export function emulateTouchFromMouseEvent(
4236
}
4337
}
4438

39+
export function dispatchMouseEvent(params: Input.DispatchMouseEventRequest) {
40+
const { type, x, y, deltaX, deltaY } = params
41+
42+
const el = document.elementFromPoint(x, y) || document.documentElement
43+
44+
switch (type) {
45+
case 'mousePressed':
46+
isClick = true
47+
triggerMouseEvent('mousedown', el, x, y)
48+
break
49+
case 'mouseMoved':
50+
isClick = false
51+
triggerMouseEvent('mousemove', el, x, y)
52+
break
53+
case 'mouseReleased':
54+
triggerMouseEvent('mouseup', el, x, y)
55+
if (isClick) {
56+
triggerMouseEvent('click', el, x, y)
57+
}
58+
isClick = false
59+
break
60+
case 'mouseWheel':
61+
if (!isUndef(deltaX) && !isUndef(deltaY)) {
62+
triggerScroll(el, deltaX, deltaY)
63+
}
64+
break
65+
}
66+
}
67+
68+
function triggerMouseEvent(type: string, el: Element, x: number, y: number) {
69+
el.dispatchEvent(
70+
new MouseEvent(type, {
71+
bubbles: true,
72+
cancelable: true,
73+
view: window,
74+
clientX: x,
75+
clientY: y,
76+
})
77+
)
78+
}
79+
4580
function triggerTouchEvent(type: string, el: Element, x: number, y: number) {
4681
const touch = new Touch({
4782
identifier: 0,

src/domains/Storage.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import each from 'licia/each'
22
import rmCookie from 'licia/rmCookie'
33
import safeStorage from 'licia/safeStorage'
4+
import connector from '../lib/connector'
45
import { getCookies } from './Network'
56
import Protocol from 'devtools-protocol'
67
import Storage = Protocol.Storage
@@ -39,7 +40,7 @@ export function getTrustTokens(): Storage.GetTrustTokensResponse {
3940

4041
export function getStorageKeyForFrame(): Storage.GetStorageKeyForFrameResponse {
4142
return {
42-
storageKey: 'chobitsu',
43+
storageKey: location.origin,
4344
}
4445
}
4546

@@ -53,3 +54,18 @@ export function getSharedStorageMetadata(): Storage.GetSharedStorageMetadataResp
5354
},
5455
}
5556
}
57+
58+
export function setStorageBucketTracking() {
59+
connector.trigger('Storage.storageBucketCreatedOrUpdated', {
60+
bucketInfo: {
61+
bucket: {
62+
storageKey: location.origin,
63+
},
64+
durability: 'relaxed',
65+
expiration: 0,
66+
id: '0',
67+
persistent: false,
68+
quota: 0,
69+
},
70+
})
71+
}

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ chobitsu.register('Storage', {
117117
...Storage,
118118
setInterestGroupTracking: noop,
119119
setSharedStorageTracking: noop,
120-
setStorageBucketTracking: noop,
120+
trackIndexedDBForStorageKey: noop,
121121
untrackCacheStorageForOrigin: noop,
122122
untrackIndexedDBForOrigin: noop,
123123
trackCacheStorageForOrigin: noop,

0 commit comments

Comments
 (0)