Index: Source/core/frame/Frame.cpp |
diff --git a/Source/core/frame/Frame.cpp b/Source/core/frame/Frame.cpp |
index 05ce11401e7fe5d00669b50c267b724c022ee314..ba073ef947b4075e74068dd6c04a3f891be7deb3 100644 |
--- a/Source/core/frame/Frame.cpp |
+++ b/Source/core/frame/Frame.cpp |
@@ -55,6 +55,18 @@ namespace blink { |
using namespace HTMLNames; |
+namespace { |
+ |
+int64_t generateFrameID() |
+{ |
+ // Initialize to the current time to reduce the likelihood of generating |
+ // identifiers that overlap with those from past/future browser sessions. |
+ static int64_t next = static_cast<int64_t>(currentTime() * 1000000.0); |
+ return ++next; |
+} |
+ |
+} // namespace |
+ |
DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, frameCounter, ("Frame")); |
Frame::~Frame() |
@@ -290,6 +302,7 @@ Frame::Frame(FrameClient* client, FrameHost* host, FrameOwner* owner) |
, m_host(host) |
, m_owner(owner) |
, m_client(client) |
+ , m_frameID(generateFrameID()) |
, m_remotePlatformLayer(nullptr) |
, m_isLoading(false) |
{ |