| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
renderer just before injection to avoid races.
BUG=30937
Review URL: http://codereview.chromium.org/509032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35176 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
single-core perf regressions.
TBR=chase
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/501151
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35093 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The combined IPC means that scrolling only requires one transport DIB instead
of two. Previously, we'd use one in the ScrollRect IPC to pass up the pixels
for the exposed region, and then we'd use a second one in the PaintRect IPC to
pass up the pixels for the updated scroll bar rendering. Now all paints are
done using a single transport DIB.
Optimize RenderWidgetHostViewWin::OnPaint to only paint the damaged regions.
This means calling GetUpdateRgn and GetRegionData to enumerate the list of
damage rects. Then only those rects are copied from the backing store.
The same optimization is not done for Linux or Mac yet.
R=brettw
BUG=29591
TEST=none
Originally reviewed at http://codereview.chromium.org/506013
Review URL: http://codereview.chromium.org/509005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35078 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The intent is to allow unit-tests that use render view
to override ChildThread::CreateBridge() to provide their
own resource loading.
This is used by the upcoming translate unit-test.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/503032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35014 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=None
TEST=browser_tests.exe --gtest_filter=ExtensionApiTest.FLAKY_Bookmarks
Review URL: http://codereview.chromium.org/503053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34972 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
host can
find it to transfer to the NaCl module.
Review URL: http://codereview.chromium.org/500121
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34970 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The combined IPC means that scrolling only requires one transport DIB instead
of two. Previously, we'd use one in the ScrollRect IPC to pass up the pixels
for the exposed region, and then we'd use a second one in the PaintRect IPC to
pass up the pixels for the updated scroll bar rendering. Now all paints are
done using a single transport DIB.
Optimize RenderWidgetHostViewWin::OnPaint to only paint the damaged regions.
This means calling GetUpdateRgn and GetRegionData to enumerate the list of
damage rects. Then only those rects are copied from the backing store.
The same optimization is not done for Linux or Mac yet.
R=brettw
BUG=29591
TEST=none
Review URL: http://codereview.chromium.org/506013
TBR=darin@chromium.org
Review URL: http://codereview.chromium.org/506075
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34953 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The combined IPC means that scrolling only requires one transport DIB instead
of two. Previously, we'd use one in the ScrollRect IPC to pass up the pixels
for the exposed region, and then we'd use a second one in the PaintRect IPC to
pass up the pixels for the updated scroll bar rendering. Now all paints are
done using a single transport DIB.
Optimize RenderWidgetHostViewWin::OnPaint to only paint the damaged regions.
This means calling GetUpdateRgn and GetRegionData to enumerate the list of
damage rects. Then only those rects are copied from the backing store.
The same optimization is not done for Linux or Mac yet.
R=brettw
BUG=29591
TEST=none
Review URL: http://codereview.chromium.org/506013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34951 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a memory leak of any V8 context that used an extension API. This
mostly affected popups and tab contents, since they are the extension views that
close.
BUG=30194
Review URL: http://codereview.chromium.org/504053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34912 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Also, convert a potential crash to a NOTREACHED.
BUG=30433
TEST=see bug
Review URL: http://codereview.chromium.org/505022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34902 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=30681
TEST=None
TBR=brettw
Review URL: http://codereview.chromium.org/504048
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34867 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Added default locale to the url context
2. Removed old code that was uploading catalogs on load (to renderer)
3. Removed message bundle object from Extension class.
BUG=27361
TEST=Open Chrome with --lang=sr and load src\chrome\common\extensions\docs\examples\api\i18n\getMessage extension from chrome://extensions page. Click on icon and text in popup should be localized.
Review URL: http://codereview.chromium.org/463011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34846 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is just a partial revert of r33949.
TBR=stuartmorgan
BUG=29589
TEST=none
Review URL: http://codereview.chromium.org/502042
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34793 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
singlecorexp.
This is just a partial revert of r33949.
TBR=chase
BUG=29589
TEST=none
Review URL: http://codereview.chromium.org/503034
TBR=darin@chromium.org
Review URL: http://codereview.chromium.org/500084
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34792 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is just a partial revert of r33949.
TBR=chase
BUG=29589
TEST=none
Review URL: http://codereview.chromium.org/503034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34777 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
as we do with the page indexing. (The language detection was
previously done on demand when the extension related API was querying it.)
Once detected the language is stored on the navigation entry.
It'll be used for the upcoming translation feature.
Also I moved the existing language detection from the UI to
the file thread.
The change required few changes for the
chrome.tabs.detectLanguage extension API to still work.
BUG=None
TEST=Run the browser tests and unit-tests.
Review URL: http://codereview.chromium.org/492024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34728 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
extension processes.
BUG=29621
Review URL: http://codereview.chromium.org/505012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34668 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
implicit non-virtual public destructors.
Was originally:
Replace public nonvirtual destructors in classes with virtual members
with protected nonvirtual destructors where possible, and with
public virtual destructors where destruction of a derived class occurs.
(Excluding chrome/browser/...)
(Part 4 of http://www.gotw.ca/publications/mill18.htm
has a rationale for why public nonvirtual destructors in classes with
virtual members is dangerous.)
Patch by: Jacob Mandelson (jlmjln@gmail.com)
BUG=none
TEST=base_unittests & app_unittests
Review URL: http://codereview.chromium.org/200106
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34633 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=30144
TEST=none
Review URL: http://codereview.chromium.org/491056
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34620 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SuicideOnChannelErrorFilter::OnChannelError() does get called under certain
(unknown) circumstances, with some regularity. This causes a leak of a Mach port
when used with Breakpad.
BUG=28547
TEST=See bug.
Review URL: http://codereview.chromium.org/500010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34534 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=29709
TEST=none
Review URL: http://codereview.chromium.org/443013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34498 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
synchronous messages. WebPluginDelegateImpl can instantiate a command buffer. Removed remaining dependencies on NPAPI.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/465040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34397 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
device context design. Remove them and shorten the paths to 2D members.
Also add "reserved" void* to allow quick access to implementation data.
Review URL: http://codereview.chromium.org/490009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34359 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=34333
Review URL: http://codereview.chromium.org/463065
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34337 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
This reverts commit ea393f34b293ebf8b96bef5855b9f41faf82b192.
Review URL: http://codereview.chromium.org/492018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34334 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/463065
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34333 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test:
1. Build a (branded) Google Chrome.
2. From the command-line, run: "launchctl bslist | wc -l" and note the number.
3. Start Google Chrome on a fresh profile.
4. Once a browser window has opened, do #2 again, and note the number -- it should have increased (by 2).
5. Close the tab, and do #2 again. The number should have decreased by 1.
6. Open tabs, navigate, etc., and do #2 between each stage. Whenever a new (e.g., renderer) process is started, the number should increase (e.g., when you go to a "new" site). When a process is terminated (e.g., you close the last tab for a particular site), the number should decrease.
7. Quit, and do #2 again. Hopefully, the number should be the same as the first time.
(Note: when a renderer crashes, the number will not decrease -- so the number after quitting will not be the same as before starting. This is why this is only a stopgap. For comparison, do this on a branded Google Chrome without this patch; typically, the numbers will not decrease on renderer termination.)
BUG=28547
TEST=See above.
Review URL: http://codereview.chromium.org/484007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34318 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
R=pkasting
BUG=none
TEST=covered by unittests
Review URL: http://codereview.chromium.org/491022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34314 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
---------------
linux: theme scrollbars from GTK theme
Pick the color of the slider's thumbpart and rail from the GTK theme.
We cannot match the exact visual appearance of the GTK theme, as
rendering engines can make arbitrary changes to the actual visual
appearance. But by sampling a representative set of pixels, we ensure
that we will at least match the general color scheme.
BUG=10949
patch by <markus [at] chromium>
original review: http://codereview.chromium.org/400027/show
Review URL: http://codereview.chromium.org/479006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34285 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If javascript code puts custom toJSON functions on Array.prototype, our
extension API code detects malformed requests and kills the offending renderer.
Also, the browser can crash if a browser action popup process dies (for various
reasons, including this json serialization problem).
BUG=29283
TEST=Create an extension with a browser action popup that loads prototype.js, and then calls chrome.tabs.update().
Before this change, the popup bubble will crash, and when you click away, crash the browser too.
Review URL: http://codereview.chromium.org/466065
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34263 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RenderViewHostDelegate::View and TabContentsDelegate interfaces.
Significant changes made by this CL:
1. The keyboard event handling code has been moved from TabContentsView implementation classes into BrowserWindow implementation classes.
Please refer to this discussion thread: http://groups.google.com/group/chromium-dev/browse_thread/thread/e6e0b5cc105659b7/9953c4308bb0000c
This change makes the keyboard event flow comply with the relationship between TabContents/TabContentsView and TabContentsDelegate/BrowserWindow.
Besides it, the code is also simplified a lot, for example, the keyboard event handling code in chrome/browser/views/tab_contents/tab_contents_view_{gtk,win}.cc are now merged into one copy and moved into chrome/browser/views/frame/browser_view.cc.
2. A pre-handle phrase has been added into the keyboard event handling flow. A keyboard event will be first sent to the browser for pre-handling before being sent to the renderer. Then if the event was not handled by the renderer, it'll be sent to the browser again for post-handling.
3. The keyboard accelerator handling code of Windows and Linux ports have been optimized to get rid off extra command lookup.
4. The keyboard event message flow between the browser and the renderer is changed back to full async mode, all complex logics introduced by revision 29857 are removed.
BUG=24479, 26054, 26131, 28839
TEST=See bug reports.
Review URL: http://codereview.chromium.org/400012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34234 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
34161).
There were problems building Skia and others for the 64-bit linux versions of the
Pepper test plugin, so I have disabled building that plugin except on Windows for now
and added a TODO.
One significant addition to the previous comment lines. The flag enable_gpu=1 now
causes the build definition ENABLE_GPU=1 to allow guarding of dependent code.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/481001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34227 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
to function in circumstances where there is no Browser instance present. This is a symptom of a tab-contents view hosted in an ExternalTabContainer.The major change here is the removal of the explicit dependency on a Browser instance across all of the delegates involved when showing a pop-up API. I modified the following delegates:- ExtensionPopupHost::Delegate- TabContentsDelegate- ExtensionFunctionDispatcher::DelegateBecause the pop-up requires a Profile, and a gfx::NativeWindow, I added methods to the above interfaces to provide them.BUG=noneTEST=ExtensionApiTest.FLAKY_Popup
Review URL: http://codereview.chromium.org/434046
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34219 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
TBR=brettw
BUG=29589
TEST=none
Review URL: http://codereview.chromium.org/479015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34204 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Based on some testing on a single core machine, reducing this
number below 10 doesn't seem to help. On some of the page
cycler tests (intl2 in particular), I observed some excessive
paint rect counts (>50). Those outliers seem to explain the
perf regression observed for single core machines.
R=brettw
BUG=29589
TEST=none
Review URL: http://codereview.chromium.org/481002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34189 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
tbr=asargent
Review URL: http://codereview.chromium.org/482002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34187 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pick the color of the slider's thumbpart and rail from the GTK theme.
We cannot match the exact visual appearance of the GTK theme, as
rendering engines can make arbitrary changes to the actual visual
appearance. But by sampling a representative set of pixels, we ensure
that we will at least match the general color scheme.
BUG=10949
patch by <markus [at] chromium>
original review: http://codereview.chromium.org/400027/show
Review URL: http://codereview.chromium.org/466080
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34183 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
plugin.
This is needed because the NaCl plugin code that runs in the renderer
needs to use Pepper APIs all the time, and NaCl support has been enabled
by default for several months now. To cause an untrusted Pepper plugin
to run in the renderer one needs to specify the internalpepper flag.
I have also removed the enable_pepper flag from gyp. As the build of the
GPU process was tied to this flag, I have renamed the flag to enable_gpu.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/464074
TBR=sehr@google.com
Review URL: http://codereview.chromium.org/475004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34162 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is needed because the NaCl plugin code that runs in the renderer
needs to use Pepper APIs all the time, and NaCl support has been enabled
by default for several months now. To cause an untrusted Pepper plugin
to run in the renderer one needs to specify the --internal-pepper flag.
I have also removed the enable_pepper flag from gyp. As the build of the
GPU process was tied to this flag, I have renamed the flag to enable_gpu.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/464074
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34161 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
(downstream).
Review URL: http://codereview.chromium.org/465123
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34154 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Not yet for review.
Landing to measure perf impact, will revert immediately.
BUG=13156
TEST=unittests
Review URL: http://codereview.chromium.org/460126
TBR=thakis@chromium.org
Review URL: http://codereview.chromium.org/466088
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34147 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Not yet for review.
Landing to measure perf impact, will revert immediately.
BUG=13156
TEST=unittests
Review URL: http://codereview.chromium.org/460126
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34146 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/460151
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34123 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=29644
Review URL: http://codereview.chromium.org/466079
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34122 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"more details" link. Also add a slide transition for showing/hiding
the details.
BUG=28923
TEST=Turn off error pages in Options, navigate to
http://dev.chromium.org:8024/ and play with the "More information on
this error" link.
Review URL: http://codereview.chromium.org/463045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34083 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=28689
TEST=none
TBR=pfeldman@chromium.org
Review URL: http://codereview.chromium.org/465120
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34057 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
calculations.
Start / stop profiling commands are now sent using debugger protocol,
effectively breaking into script execution. Getting profiler log and
active modules is executed on IO thread.
BUG=28689
TEST=none
Review URL: http://codereview.chromium.org/460018
TBR=mnaganov@chromium.org
interactive_ui_tests all failed
Review URL: http://codereview.chromium.org/467043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34041 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Start / stop profiling commands are now sent using debugger protocol,
effectively breaking into script execution. Getting profiler log and
active modules is executed on IO thread.
BUG=28689
TEST=none
Review URL: http://codereview.chromium.org/460018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34040 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
types observed at NPP_HandleEvent.
Review URL: http://codereview.chromium.org/465110
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34038 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
allows the caller to specify the behaviour of the window focus when the pop-up is displayed.
I added a test for the new parameter in the ExtensionApiTest.FLAKY_Popup test. I also corrected a truncated string in the unit-test.
Because the pop-up actually uses two windows, I had to change the WidgetWin::Show() routine to also reposition the window at the top. If a window is shown and activated, it is automatically brought to the front. Because we don't activate the pop-up when we want to keep the focus in the current extension view, I had to bring it to the front so that it wouldn't be hidden behind the 'chrome-bubble' window.
BUG=none
TEST=ExtensionApiTest.FLAKY_Popup
Review URL: http://codereview.chromium.org/454019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34037 0039d316-1c4b-4281-b951-d872f2087c98
|