| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
R=ananta@chromium.org
BUG=84109
TEST=none
Review URL: http://codereview.chromium.org/6962028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86984 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix up all the callers to use the new location and namespace.
Also, delete the stub file since it isn't included by anyone more.
(Note: This was a TODO for brettw).
BUG=None
TEST=None
R=brettw@chromium.org
Review URL: http://codereview.chromium.org/6825055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81303 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
raw_scoped_refptr_mismatch_checker.h
ref_counted.cc
ref_counted.h
ref_counted_memory.cc
ref_counted_memory.h
ref_counted_unittest.cc
scoped_callback_factory.h
scoped_comptr_win.h
scoped_handle.h
scoped_native_library.cc
scoped_native_library.h
scoped_native_library_unittest.cc
scoped_nsobject.h
scoped_open_process.h
scoped_ptr.h
scoped_ptr_unittest.cc
scoped_temp_dir.cc
scoped_temp_dir.h
scoped_temp_dir_unittest.cc
scoped_vector.h
singleton.h
singleton_objc.h
singleton_unittest.cc
linked_ptr.h
linked_ptr_unittest.cc
weak_ptr.cc
weak_ptr.h
weak_ptr_unittest.cc
BUG=None
TEST=Compile
Review URL: http://codereview.chromium.org/6714032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
need to pass
the post data as well while reissuing the navigation. This ensures that a POST request is
correctly sent out at all times instead of a GET request. While the assumption is that reusing
the bind context would achieve this behavior, it does not appear to be true at all times.
While fixing this I also found that reissuing a navigation via a NavigateWithBindCtx call
causes the current chrome frame document to receive an Unload call at times, leading to
the page being rendered useless after the request finishes. We should reissue the navigation
on a new window to work around this problem.
Fixes bug http://code.google.com/p/chromium/issues/detail?id=73985
BUG=73985
TEST=As described in the bug.
Review URL: http://codereview.chromium.org/6598016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76282 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/6458004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74257 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
TEST=it compiles BUG=none
Review URL: http://codereview.chromium.org/6336010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72108 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
the base namespace. Fix several files including lock.h unnecessarily.
BUG=none
TEST=none
Original review=http://codereview.chromium.org/6142009/
Patch by leviw@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72106 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
prompts are displayed when the user browses to GCF-enabled sites, allowing the user to permanently activate, permanently decline, or temporarily decline Chrome Frame.
BUG=None
TEST=chrome_frame_unittests --gtest_filter=Ready* && chrome_frame_unittests --gtest_filter=Infobar* && setup.exe --chrome-frame --ready-mode --multi-install --system--level --chrome
Review URL: http://codereview.chromium.org/6040003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71215 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The crash happens
in the IInternetProtocol::UnlockRequest patch.
BUG=67264
TEST=none
Review URL: http://codereview.chromium.org/5895004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69582 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a small step towards making all singleton classes use the Singleton<T> pattern within their code and not expect the callers to know about it.
This CL includes all files except those under chrome/browser, chrome/net, chrome/service and third_party/WebKit (these will be done in future CLs).
Suggested files to focus for reviewers:
- joi@ for files under src/ceee
- tommi@ for files under src/chrome_frame
- maruel@ for the rest of the files.
BUG=65298
TEST=all existing tests should continue to pass.
Review URL: http://codereview.chromium.org/5581008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68577 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
non chrome frame
email site to automatically logout after logging in. ChromeFrame appends the chromeframe string
to the user agent to outgoing requests initiated from IE. However this was only done in the
protocol sink patch for top level requests. Sub requests would carry the IE user agent which
in this case would cause the web server to get confused and drop the connection.
Fix is to resurrent the IHttpNegotiate vtable patch for the protocol patch as well.
Removed the code which read the patch method from the registry and turned on the moniker
or the httpequiv patch. It is unlikely that we will need this in the future. Cleaned
up the http negotiate patch by removing references to the navigation manager and the
ReportProgress patch which is not needed anymore.
Fixes bug http://code.google.com/p/chromium/issues/detail?id=60745
Bug=60745
Review URL: http://codereview.chromium.org/4247001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64688 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
through, either because they were LOG_IF() (which I didn't search for) or they were added during the week I was changing things.
Plus a few misc. cleanup bits.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/4111002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63998 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when we
attempt to terminate the urlmon transaction with a spurious BindToObject call which
is supposed to fail but release the transaction. While this works mostly it causes
a crash in urlmon at times on IE7.
To workaround this we now save away the IInternetProtocol interface which represents
the transaction object in our bind context info structure which is maintained per bind
context and terminate the protocol when we want the transaction to be destroyed.
Fixes bug http://code.google.com/p/chromium/issues/detail?id=60370
Bug=60370
Review URL: http://codereview.chromium.org/3984006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63769 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
version of the host IE browser.
BUG=52601
TEST=[chrome_frame_unittests / UtilTests.XUaCompatibleDirectiveTest], [chrome_frame_tests / HeaderTest.*]
Review URL: http://codereview.chromium.org/3978001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63728 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
TEST=it compiles
BUG=none
Review URL: http://codereview.chromium.org/3748012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63216 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
Plus a couple misc. cleanups.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3850002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63095 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Frame should handle.
TEST=This adds a new policy list for Chrome Frame, "ChromeFrameContentTypes", which can be used to specify a list of content types that should always be rendered in Chrome Frame.
BUG=56543
Review URL: http://codereview.chromium.org/3611002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61432 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
(Note: this is a TODO in string_util.h)
BUG=None
TEST=trybots
Review URL: http://codereview.chromium.org/3594002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61166 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
that we allow switching using http header.
BUG=56269
TEST=none
Review URL: http://codereview.chromium.org/3397025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60488 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Original description:
- added detection of IE9 for ChromeFrame.IEVersion metric
- replaced ChromeFrame.FullTabLaunchType metric with ChromeFrame.LaunchType metric,
which logs more info regarding how it came to be that GCF rendered a page
(but only for the CTransaction patch)
BUG=43885
TEST=none
Review URL: http://codereview.chromium.org/3443017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60188 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Collect crash dump in the ReportData and ReportResult code path
only if chrome frame is directly at fault. We are getting too
much noise since this is high frequency intercept and quite
popular code path for crashes.
BUG=51488,44463
TEST=none
Review URL: http://codereview.chromium.org/3295008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58397 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to supporess false positive crash reports,
add ExceptionBarrierReportOnlyModule to places where we
do not wrap the sink and just call original API.
BUG=51960
Review URL: http://codereview.chromium.org/3309002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58239 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes all IPC Log methods from wstring to string. All static logging debug
data changed from wchar[] to char[].
Various string conversion/numeric headers no longer need to be included in
ipc_message_utils.h and have been removed (and added in all implementation
files that require them).
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3159013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56563 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
request is [application/xhtml+xml, image/svg, image/svg+xml, video/ogg, video/webm,video/mp4] or text/html
BUG=51982
Review URL: http://codereview.chromium.org/3107019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56398 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
reduce the amount of false positive crash reports - when exception is swallowed
and is almost always not a problem due ChromeFrame code.
BUG=51830
TBR=amit@chromium.org
Review URL: http://codereview.chromium.org/3148015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56357 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to reduce the amount of false positive crash reports - when exception is swallowed and is almost always not a problem due ChromeFrame code.
BUG=51830
Review URL: http://codereview.chromium.org/3171011
TBR=stoyan@chromium.org
Review URL: http://codereview.chromium.org/3191003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56249 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
amount of false positive crash reports - when exception is swallowed and is almost always not a problem due ChromeFrame code.
BUG=51830
Review URL: http://codereview.chromium.org/3171011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56241 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Further tighten down what URLs can be loaded in Chrome Frame.
Based on the feedback from the security review and code
inspection, restrict about: scheme only to about:blank
and about:version by default. Factor out logic blocking logic
including for URL zone checking so that all ActiveX, ActiveDoc
and NPAPI will follow the same path. As a result we now block
restricted URL zones in NPAPI instance as well.
Another side effect of this refactoring is that the registry
flag, EnableGcfProtocol, is replaced by AllowUnsafeURLs. If
If this flag is set, then all the security related checking
is turned off.
BUG=50741
TEST=By default gcf: works only for about:blank, about:version and
view-source of http and https. Setting AllowUnsafeURLs to a non
zero value should allow any URL be loaded via gcf:
Review URL: http://codereview.chromium.org/3159006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56096 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now, there are two URL lists that we support and a master REG_DWORD value ("IsDefaultRenderer" ) to switch between them.
Note that the OptInUrls key is no longer supported but the URL lists mentioned below function in the same way OptInUrls used to.
This is basically how it works:
if IsDefaultRenderer
Url list name is "RenderInHostUrls" and lists patterns that the host (IE) should render.
if not IsDefaultRenderer (i.e. it's 0)
Url list name is "RenderInGcfUrls" and lists patterns that GCF should render.
Also fixing typo :)
TEST=See description above and in bug report.
BUG= 50788
Review URL: http://codereview.chromium.org/3131003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55664 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3071012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55034 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
times.
Review URL: http://codereview.chromium.org/3038049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54979 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
string_number_conversions.
TEST=it compiles
BUG=none
Review URL: http://codereview.chromium.org/3054036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54747 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
external tab request, which comes in during window open.
We create a ProtData object instance which is mapped to the protocol with a NULL read function pointer which was used to indicate
if this is a dummy request. It appears that there are cases where we may receive a StartEx call with a reused protocol pointer.
which basically causes a crash in the context of IInternetProtocolSink::ReportData which internally calls IInternetProtocol::LockRequest,
which crashes as the transaction never started.
Fix is to invalidate the protdata mapping if the protdata has not been destroyed yet, but the underlying Transaction has been destroyed.
This can happen if the original bind context has not yet been destroyed
Fixes bug http://code.google.com/p/chromium/issues/detail?id=50814
Bug=50814,50956
Test=Subsequent CL.
Review URL: http://codereview.chromium.org/3078010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54553 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
ProtData instance.
BUG=none
TEST=fixes a potential memory leak.
Review URL: http://codereview.chromium.org/2832097
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54366 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cookies in the outgoing HTTP requests.
To achieve this we no longer issue navigations with the gcf:attach* prefix. We now issue a navigation to the current
page URL with the attach external tab suffix, which indicates that the page is forced into ChromeFrame without making
an actual HTTP request. This ensures that the new IE8 process has access to all HTTP cookies.
We need to patch IInternetProtocol::LockRequest and UnlockRequest to not call the underlying implementations for our
dummy request as this crashes in IE8 in the prebinding code path.
Fixes bug http://b/issue?id=2277519
Added tests for the CanNavigateFullTabMode helper function.
Bug=2277519
Review URL: http://codereview.chromium.org/3051018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54019 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/2824057
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52806 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/2893015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52494 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
on IHttpNegotiate patch.
Moved some code based on over-conservative assumptions to execute earlier in pipeline.
Will prevent BUG=38480 to manifest itself.
BUG=47879
Review URL: http://codereview.chromium.org/2987001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52337 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BINDSTATUS_MIMETYPEAVAILABLE.
BUG=48685
Review URL: http://codereview.chromium.org/2951006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51990 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/2822028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50750 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
TEST=chrome frame tests
Review URL: http://codereview.chromium.org/2620001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49265 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
onhttpequiv approach.
There's a ton going on here. Brief summary: I'm introducing a caching layer for top level page requests that we then use again when switching the document from mshtml to cf.
Also in this change list:
* Removing the previous way of shifting the document moniker
over to the worker thread when a new chrome document is
created. Instead we use a request cache object.
* Refactoring the part of the Bho class that offered access
to it via TLS. This was needed for better testability but
also makes (imho) the separation clearer and will possibly
help in the future if we don't have a Bho object.
* Added a bit of logging that I'd prefer to keep in there until we're confident enough with onhttpequiv.
* Enabling two previously disabled tests (the ones I added for multiple requests)
* Adding several more unit tests for the new code.
Review URL: http://codereview.chromium.org/668187
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41495 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
IInternerProtocolSink::ReportProgress
implementation as this causes the chrome frame tests to break.
TBR=stoyan
Review URL: http://codereview.chromium.org/515022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35244 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
type in our
IInternetProtocolSink::ReportProgress implementation. To determine the renderer type we
try to read the data from the IInternetProtocol interface which in turn tries to determine
the renderer type.
Fix is to check if we are in the context of determining the renderer and bail.
TBR=stoyan
Bug=31031
Review URL: http://codereview.chromium.org/518012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35234 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
installed on the machine.
Based on my debugging it looks like AdBlock gets confused because we report the mime type initally as
text/html and then swich to application/chromepage.
Fix is to attempt to determine the mime type in our IInternetProtocolSink::ReportProgress implementation.
If we fail we continue to determine the mime type in IInternetProtocolSink::ReportData.
Added a helper function CheckAndReportChromeMimeTypeForRequest which is invoked from both places.
Fixes http://code.google.com/p/chromium/issues/detail?id=31031
Bug=31031
Review URL: http://codereview.chromium.org/501181
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35227 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
performed by Chrome Frame to top-level requests only in IE.
BUG=having an iframe that requests a resource that includes the X-UA-Compatible header in the response will trigger CF taking over the page.
TEST=BUG doesn't happen anymore.
Review URL: http://codereview.chromium.org/465036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33849 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
issue where a page that uses CF would be loaded in an IFRAME on Google Images.Instead of attempting to load CF (not supported), we now defer to the host browser. Previously a blank page was displayed.TEST=Run new unit tests: FullTabModeIE_SubIFrame and FullTabModeIE_SubFrameBUG=22989
Review URL: http://codereview.chromium.org/343086
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30782 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
statically in the registry.TEST=Try disabling GCF and see if the chromeframe tag in the user agent is still set. It should not be. Also make sure you don't have an older version installed... the chromeframe tag should not be in the registry - if it is, you've got an older version still registered. This should fix the issue with going to wave.google.com after disabling chrome frame and seeing the white page of death.R=amitBUG=22760
Review URL: http://codereview.chromium.org/259025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29370 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ChromeFrame VTable patches the IInternetProtocol interface for the CLSID_HttpProtocol
and CLSID_HttpSProtocol handlers. However we were using the same VTable information to patch both
the handlers essentially overwriting the first one. While this all worked purely by chance, it
exposed a bug in IE8 where every new tab initially goes into a new process and if the chromeframe
is unloaded we would leave behind an IInternetProtocol interface in urlmon patched, which would
crash when dereferenced.
Added a check in the VTable patching code for this case.
This fixes bug http://code.google.com/p/chromium/issues/detail?id=22768
Bug=22768
Review URL: http://codereview.chromium.org/244002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27191 0039d316-1c4b-4281-b951-d872f2087c98
|
|
coming in a separate CL.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/218019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27042 0039d316-1c4b-4281-b951-d872f2087c98
|